solid-errors-react-contamination

solid-errors-react-contamination is a skill for Claude Code, Codex from OpenAEC-Foundation/OpenAEC-Workspace-Composer. It costs 113 tokens per session (2,798 once invoked), scanned A, original, MIT.

A SolidJS code-review and conversion skill focused on detecting React patterns that do not work correctly with SolidJS, a JavaScript user-interface framework.

In plain words
What is it for?
Use it to review SolidJS code or convert React components, checking props, effects, state updates, dependency handling, and list rendering.
Why use it?
SolidJS tracks updates differently from React, so familiar React habits can stop data from updating or create inefficient list rendering.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/openaec-foundation/openaec-workspace-composer/solid-errors-react-contamination
Any agent
npx skills add OpenAEC-Foundation/OpenAEC-Workspace-Composer --skill solid-errors-react-contamination
Clone the repo
git clone --depth 1 https://github.com/OpenAEC-Foundation/OpenAEC-Workspace-Composer

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for solid-errors-react-contamination

README.md
[![agentmods](https://agentmods.dev/badge/skills/openaec-foundation/openaec-workspace-composer/solid-errors-react-contamination.svg)](https://agentmods.dev/skills/openaec-foundation/openaec-workspace-composer/solid-errors-react-contamination)
Your own site
<a href="https://agentmods.dev/skills/openaec-foundation/openaec-workspace-composer/solid-errors-react-contamination"><img src="https://agentmods.dev/badge/skills/openaec-foundation/openaec-workspace-composer/solid-errors-react-contamination.svg" alt="Measured on agentmods" height="20"></a>
Per session 113 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,798 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00113 $0.02798
Opus 5 $0.00056 $0.01399
Sonnet 5 $0.00023 $0.00560
Haiku 4.5 $0.00011 $0.00280

Measured 4d ago against content hash cbee394e2fdb, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

solid-errors-react-contamination scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/solidjs/solid-errors/solid-errors-react-contamination/SKILL.md · 279 lines

How it starts

The opening of the file, as written. The whole thing — 279 lines — stays where its author put it; the contents beside it link to each section on GitHub.

solid-errors-react-contamination

Critical Warnings

NEVER destructure props in SolidJS components. Destructuring severs the reactive proxy connection. The component function runs ONCE — destructured values are frozen snapshots that NEVER update. This is the #1 source of broken SolidJS code generated by AI assistants trained on React.

NEVER assume components re-render. SolidJS component functions execute exactly ONCE to set up the reactive graph. Code in the component body that depends on state changes (derived values, conditionals, logging) MUST be wrapped in reactive primitives (createMemo, createEffect) or inline JSX expressions.

NEVER use dependency arrays. SolidJS tracks dependencies automatically. There is no [deps] argument to createEffect or createMemo. Adding one is a syntax error or passes it as the initial value parameter.

NEVER return cleanup functions from effects. SolidJS uses onCleanup() as a separate call inside the effect, NOT a return value.

NEVER use Array.map() for list rendering. It recreates ALL DOM nodes on every array change. ALWAYS use <For> or <Index> components.

Quick Reference — All Anti-Patterns

ID Pattern Severity Detection
AP-001 Destructuring props CRITICAL function X({ prop } or const { x } = props
AP-002 Destructuring signal value CRITICAL const val = signal() outside JSX/effect
AP-003 useState instead of createSignal CRITICAL useState import or usage
AP-004 useEffect instead of createEffect CRITICAL useEffect import or [deps] array
AP-005 useMemo instead of createMemo HIGH useMemo import or dependency array
AP-006 Re-render assumption CRITICAL Derived values as plain variables in component body
AP-007 Conditional signal access HIGH Signal read inside if in effect
AP-008 Early return before signal access HIGH return before signal call in effect
AP-009 Storing signal in variable HIGH const x = signal() in component body
AP-010 Spreading props unsafely MEDIUM {...props} without splitProps
AP-011 Array.map for lists HIGH .map() in JSX return
AP-012 Ternary instead of Show MEDIUM {cond ? <A/> : <B/>}
AP-013 switch/case in component body HIGH switch statement in component return
AP-014 key prop on list items LOW key={...} prop in For callback
AP-015 useRef instead of let ref MEDIUM useRef import or .current access
AP-016 React.createElement assumption LOW Manual element creation calls
AP-017 children as static value HIGH props.children without children() helper
AP-018 useEffect cleanup return CRITICAL return () => cleanup in effect
AP-019 useRouter / next/router HIGH useRouter import
AP-020 useEffect for data fetching HIGH fetch inside useEffect/createEffect
AP-021 element prop on Route HIGH element={<Component/>} on Route
AP-022 getServerSideProps pattern HIGH Separate data-fetching exports
AP-023 Form onSubmit with preventDefault MEDIUM e.preventDefault() in form handler

Read the full file on GitHub · 279 lines

Files

What ships with it

3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 279 lines · 113 tokens per session scan A cbee394e2fdb

Subscribe to this mod's changes

solid-errors-react-contamination is a skill published in the GitHub repository OpenAEC-Foundation/OpenAEC-Workspace-Composer (5 stars, last pushed 5mo ago), licensed MIT. It adds 113 tokens to every session and 2,798 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

ship-release

The Massing release discipline — how to ship a verified, CI-green version-numbered release direct to main. Invoke whenever finishing a shippable change (feature, fix, doc). Covers version bump (both files), CHANGELOG/roadmap notes, the ruff/lint CI gotchas, tag, push, and CI/CodeQL verification.

ibuilder/massing · 74 tokens

security-monitoring

How to monitor and fix security issues in Massing — CodeQL alerts, dependency audits, secret scanning, and ReDoS/XXE fixes. Invoke after a push (standing directive) or when doing a hardening pass. Emphasises that a green CodeQL run != zero alerts.

ibuilder/massing · 65 tokens

verify-frontend

How to verify Massing web/viewer UI changes LIVE — full verification works; two historic "stalls" are fixed and neither was the geometry loader. Invoke when you changed apps/web and need to prove it works. Covers typecheck/lint/vitest/build, driving the real app, and honest flagging of flows you genuinely couldn't…

ibuilder/massing · 73 tokens

massing-bim

Drive a Massing BIM/AEC project from an AI agent over MCP — read a project's status, records, CDE, KPI and model-quality checks; run standards-compliance, schedule-risk, embodied-carbon, permit- readiness and drawing-QA analyses; author the IFC model with GUID-stable recipes; and draft RFIs. Use when the user asks to…

ibuilder/massing · 90 tokens

ara3d-sdk

Use when processing AEC/BIM 3D data in .NET 8 — mesh generation and transformation, SIMD-accelerated math, IFC/STEP/PLY to glTF/GLB/VIM conversion, plugin development. Ara3D-SDK: high-performance .NET 3D geometry and BIM library suite.

znlgis/opengis-skills · 70 tokens

master-builder

Reason like a master builder — one mind holding an entire built-asset project from raw land through design, construction, handover, operations, and disposition, anywhere in the world. Use whenever the user touches real estate development, construction, or the built environment: site feasibility, highest-and-best-use…

ibuilder/massing · 211 tokens