solid-errors-reactivity-debugging — for Claude Code solid-errors-reactivity-debugging, OpenAEC-Workspace-Composer, community, for Claude Code, ide skills, claude-code, desktop-app, openaec, progressive-disclosure, skill-packages

v1.0

Acerca de este Skill

Escenario recomendado: Ideal for AI agents that need solid-errors-reactivity-debugging. Resumen localizado: ALWAYS accept props as a single object and access properties reactively. It covers aec, bim, claude-code workflows. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

Características

solid-errors-reactivity-debugging
Diagnostic Table: Symptom to Cause to Fix
--------- ------- -----
Store update has no effect Direct mutation: store.name = "x" ALWAYS use setStore("name", "x")
Props stop updating Destructured props: function Comp({ name }) ALWAYS use props.name, use

# Core Topics

OpenAEC-Foundation OpenAEC-Foundation
[2]
[0]
Updated: 3/25/2026

Killer-Skills Review

Decision support comes first. Repository text comes second.

Reference-Only Page Review Score: 10/11

This page remains useful for teams, but Killer-Skills treats it as reference material instead of a primary organic landing page.

Original recommendation layer Concrete use-case guidance Explicit limitations and caution Quality floor passed for review
Review Score
10/11
Quality Score
51
Canonical Locale
en
Detected Body Locale
en

Escenario recomendado: Ideal for AI agents that need solid-errors-reactivity-debugging. Resumen localizado: ALWAYS accept props as a single object and access properties reactively. It covers aec, bim, claude-code workflows. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

¿Por qué usar esta habilidad?

Recomendacion: solid-errors-reactivity-debugging helps agents solid-errors-reactivity-debugging. ALWAYS accept props as a single object and access properties reactively. This AI agent skill supports Claude Code

Mejor para

Escenario recomendado: Ideal for AI agents that need solid-errors-reactivity-debugging.

Casos de uso accionables for solid-errors-reactivity-debugging

Caso de uso: Applying solid-errors-reactivity-debugging
Caso de uso: Applying Diagnostic Table: Symptom to Cause to Fix
Caso de uso: Applying --------- ------- -----

! Seguridad y limitaciones

  • Limitacion: ALWAYS call the getter where you need the live value
  • Limitacion: Requires repository-specific context from the skill documentation
  • Limitacion: Works best when the underlying tools and dependencies are already configured

Why this page is reference-only

  • - Current locale does not satisfy the locale-governance contract.

Source Boundary

The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.

After The Review

Decide The Next Action Before You Keep Reading Repository Material

Killer-Skills should not stop at opening repository instructions. It should help you decide whether to install this skill, when to cross-check against trusted collections, and when to move into workflow rollout.

Labs Demo

Browser Sandbox Environment

⚡️ Ready to unleash?

Experience this Agent in a zero-setup browser environment powered by WebContainers. No installation required.

Boot Container Sandbox

FAQ & Installation Steps

These questions and steps mirror the structured data on this page for better search understanding.

? Frequently Asked Questions

What is solid-errors-reactivity-debugging?

Escenario recomendado: Ideal for AI agents that need solid-errors-reactivity-debugging. Resumen localizado: ALWAYS accept props as a single object and access properties reactively. It covers aec, bim, claude-code workflows. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

How do I install solid-errors-reactivity-debugging?

Run the command: npx killer-skills add OpenAEC-Foundation/OpenAEC-Workspace-Composer/solid-errors-reactivity-debugging. It works with Cursor, Windsurf, VS Code, Claude Code, and 19+ other IDEs.

What are the use cases for solid-errors-reactivity-debugging?

Key use cases include: Caso de uso: Applying solid-errors-reactivity-debugging, Caso de uso: Applying Diagnostic Table: Symptom to Cause to Fix, Caso de uso: Applying --------- ------- -----.

Which IDEs are compatible with solid-errors-reactivity-debugging?

This skill is compatible with Cursor, Windsurf, VS Code, Trae, Claude Code, OpenClaw, Aider, Codex, OpenCode, Goose, Cline, Roo Code, Kiro, Augment Code, Continue, GitHub Copilot, Sourcegraph Cody, and Amazon Q Developer. Use the Killer-Skills CLI for universal one-command installation.

Are there any limitations for solid-errors-reactivity-debugging?

Limitacion: ALWAYS call the getter where you need the live value. Limitacion: Requires repository-specific context from the skill documentation. Limitacion: Works best when the underlying tools and dependencies are already configured.

How To Install

  1. 1. Open your terminal

    Open the terminal or command line in your project directory.

  2. 2. Run the install command

    Run: npx killer-skills add OpenAEC-Foundation/OpenAEC-Workspace-Composer/solid-errors-reactivity-debugging. The CLI will automatically detect your IDE or AI agent and configure the skill.

  3. 3. Start using the skill

    The skill is now active. Your AI agent can use solid-errors-reactivity-debugging immediately in the current project.

! Reference-Only Mode

This page remains useful for installation and reference, but Killer-Skills no longer treats it as a primary indexable landing page. Read the review above before relying on the upstream repository instructions.

Upstream Repository Material

The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.

Upstream Source

solid-errors-reactivity-debugging

ALWAYS accept props as a single object and access properties reactively. It covers aec, bim, claude-code workflows. This AI agent skill supports Claude Code

SKILL.md
Readonly
Upstream Repository Material
The section below is imported from the upstream repository and should be treated as secondary evidence. Use the Killer-Skills review above as the primary layer for fit, risk, and installation decisions.
Supporting Evidence

solid-errors-reactivity-debugging

Quick Reference

Diagnostic Table: Symptom to Cause to Fix

SymptomCauseFix
UI never updates after signal changeSignal getter not called in JSX: {count} instead of {count()}ALWAYS call the getter: {count()}
Effect runs once, never againSignal accessed outside tracking scope (component body, event handler)Move signal access inside createEffect or JSX expression
Effect ignores some signalsConditional access / early return before signal readRead ALL signals before any conditional logic
Store property not updating in UIDestructured store property: const { name } = storeALWAYS access via store.name in JSX
Store update has no effectDirect mutation: store.name = "x"ALWAYS use setStore("name", "x")
Props stop updatingDestructured props: function Comp({ name })ALWAYS use props.name, use splitProps if needed
Value is stale in timeout/callbackSignal value captured: const v = count() then used laterCall count() at the point where you need the value
Effect works initially but stopsawait inside effect breaks synchronous trackingMove async code to a separate function; read signals before await
Memo returns stale valueMemo dependency was untracked or destructuredVerify all signal getters are called inside memo callback
Store array update not reflectedUsed store.items.push() instead of setterUse setStore("items", items.length, newItem) or produce

Critical Warnings

NEVER destructure props in the function signature — this reads values once and permanently breaks tracking. ALWAYS accept props as a single object and access properties reactively.

NEVER store a signal getter result in a variable and expect it to stay current — const v = count() captures a snapshot. ALWAYS call the getter where you need the live value.

NEVER place await before signal reads in an effect — await breaks the synchronous tracking scope. ALWAYS read all tracked signals before any await.

NEVER mutate a store directly — store.x = 5 bypasses the reactive system entirely. ALWAYS use setStore or produce.

NEVER use Array.push/splice/pop on store arrays — these mutate without notifying the reactive graph. ALWAYS use setStore with path syntax or produce.


Diagnostic Flowchart: "My UI Is Not Updating"

START: UI is not updating after state change
  |
  +--> Is the value a signal?
  |     |
  |     +--> Are you calling the getter? count() not count
  |     |     |
  |     |     +--> NO --> FIX: Add () to signal reads in JSX
  |     |     +--> YES --> Is the signal read inside a tracking scope?
  |     |                   |
  |     |                   +--> NO (component body, event handler, onMount)
  |     |                   |     --> FIX: Move read into createEffect or JSX expression
  |     |                   |
  |     |                   +--> YES --> Is there an early return or condition BEFORE the read?
  |     |                         |
  |     |                         +--> YES --> FIX: Read all signals before conditionals
  |     |                         +--> NO --> Is there an await before the read?
  |     |                               |
  |     |                               +--> YES --> FIX: Read signals before await
  |     |                               +--> NO --> Check equality: signal uses === by default
  |     |                                     --> FIX: Use { equals: false } for objects
  |
  +--> Is the value from a store?
  |     |
  |     +--> Did you destructure the store? const { x } = store
  |     |     --> FIX: Access as store.x in JSX
  |     |
  |     +--> Did you mutate directly? store.x = 5
  |     |     --> FIX: Use setStore("x", 5)
  |     |
  |     +--> Did you use Array.push/splice?
  |     |     --> FIX: Use setStore or produce
  |     |
  |     +--> Did you use setStore correctly?
  |           --> Verify path syntax: setStore("path", "to", "prop", value)
  |
  +--> Is the value from props?
        |
        +--> Did you destructure props? function Comp({ name })
        |     --> FIX: Use function Comp(props) and access props.name
        |
        +--> Did you spread props? <Child {...props} />
              --> FIX: Use splitProps/mergeProps for reactive forwarding

Tracking Scope Rules

What IS a Tracking Scope

ScopeTracks DependenciesRe-runs
createEffect(() => ...)YESWhen dependencies change
createMemo(() => ...)YESWhen dependencies change
createRenderEffect(() => ...)YESWhen dependencies change (sync)
createComputed(() => ...)YESWhen dependencies change (before render)
JSX expressions {count()}YESWhen dependencies change

What is NOT a Tracking Scope

ContextTracksWhy
Component function bodyNORuns exactly once during setup
Event handlers onClick={() => ...}NORun on demand, not reactively
onMount(() => ...)NOExplicitly non-tracking, runs once
setTimeout/setInterval callbacksNOScheduled by the browser, not SolidJS
untrack(() => ...)NODeliberately suppresses tracking
Code after awaitNOAsync breaks synchronous tracking context

Async Tracking Loss

The SolidJS reactive system tracks dependencies synchronously. Any signal read after an await is NOT tracked because the execution resumes in a new microtask outside the original tracking scope.

typescript
1// WRONG — signals after await are NOT tracked 2createEffect(async () => { 3 const response = await fetch("/api/data"); 4 console.log(count()); // NOT tracked — effect will NOT re-run when count changes 5}); 6 7// CORRECT — read all signals BEFORE await 8createEffect(() => { 9 const currentCount = count(); // Tracked 10 const url = apiUrl(); // Tracked 11 12 // Non-tracked async work in a separate scope 13 (async () => { 14 const response = await fetch(url); 15 const data = await response.json(); 16 setResult(data); 17 })(); 18});

SolidJS 2.x Debugging Differences

Aspect1.x Behavior2.x Behavior
Update timingSynchronous propagationMicrotask-batched — reads stale until flush
Debugging readsValues update immediately after setValues may appear stale until batch flushes
Immediate propagationDefault behaviorUse flush() when needed
Dev warningsManual detection onlyBuilt-in warnings for accidental top-level reads
Effect modelSingle createEffectSplit compute/apply — inspect each phase separately

When debugging 2.x: if a value appears stale immediately after setSignal(), this is expected microtask batching behavior. The value updates after the current synchronous execution completes. Use flush() only when you explicitly need immediate propagation.


Debugging Strategies

Strategy 1: Isolation Effect

Create a minimal effect that ONLY reads the suspect signal to verify it fires:

typescript
1// Step 1: Verify the signal itself updates 2createEffect(() => { 3 console.log("[DEBUG] count =", count()); 4}); 5 6// Step 2: If this fires but your UI does not, the problem is in HOW the signal 7// is accessed in your component (destructuring, conditional, async)

Strategy 2: Tracking Scope Verification

Wrap suspect code in createEffect to confirm tracking works:

typescript
1// If this logs on changes, tracking works — the bug is elsewhere 2createEffect(() => { 3 console.log("[DEBUG] store.user.name =", store.user.name); 4});

Strategy 3: solid-devtools

Install solid-devtools for visual dependency graph inspection:

bash
1npm install --save-dev solid-devtools
typescript
1// vite.config.ts 2import devtools from "solid-devtools/vite"; 3 4export default defineConfig({ 5 plugins: [devtools(), solidPlugin()], 6});
typescript
1// Entry point (index.tsx / App.tsx) 2import "solid-devtools";

The devtools browser extension shows: signal values, dependency graphs, component tree, and which computations re-run on each update.


Official Sources

Habilidades relacionadas

Looking for an alternative to solid-errors-reactivity-debugging or another community skill for your workflow? Explore these related open-source skills.

Ver todo

openclaw-release-maintainer

Logo of openclaw
openclaw

Resumen localizado: 🦞 # OpenClaw Release Maintainer Use this skill for release and publish-time workflow. It covers ai, assistant, crustacean workflows. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

333.8k
0
Inteligencia Artificial

nextjs-turbopack

[ Destacado ]
Logo of affaan-m
affaan-m

Resumen localizado: Next.js 16+ and Turbopack — incremental bundling, FS caching, dev speed, and when to use Turbopack vs webpack. It covers ai-agents, anthropic, claude workflows. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

169.5k
0
Productividad

widget-generator

Logo of f
f

Resumen localizado: Generate customizable widget plugins for the prompts.chat feed system # Widget Generator Skill This skill guides creation of widget plugins for prompts.chat . It covers ai, artificial-intelligence, awesome-list workflows. This AI agent skill supports Claude Code, Cursor, and

149.6k
0
Inteligencia Artificial

flags

Logo of vercel
vercel

Resumen localizado: The React Framework # Feature Flags Use this skill when adding or changing framework feature flags in Next.js internals. It covers blog, browser, compiler workflows. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

138.4k
0
Navegador