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

# Temas principales

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

Skill Overview

Start with fit, limitations, and setup before diving into the repository.

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

About The Source

The section below comes from the upstream repository. Use it as supporting material alongside the fit, use-case, and installation summary on this page.

Demo Labs

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 y pasos de instalación

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

? Preguntas frecuentes

¿Qué es 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.

¿Cómo instalo solid-errors-reactivity-debugging?

Ejecuta el comando: npx killer-skills add OpenAEC-Foundation/OpenAEC-Workspace-Composer/solid-errors-reactivity-debugging. Funciona con Cursor, Windsurf, VS Code, Claude Code y más de 19 IDE adicionales.

¿Cuáles son los casos de uso de solid-errors-reactivity-debugging?

Los casos de uso principales incluyen: Caso de uso: Applying solid-errors-reactivity-debugging, Caso de uso: Applying Diagnostic Table: Symptom to Cause to Fix, Caso de uso: Applying --------- ------- -----.

¿Qué IDE son compatibles con solid-errors-reactivity-debugging?

Esta skill es compatible con 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. Usa la CLI de Killer-Skills para una instalación unificada.

¿Tiene limitaciones 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.

Cómo instalar este skill

  1. 1. Abre tu terminal

    Abre la terminal o línea de comandos en el directorio de tu proyecto.

  2. 2. Ejecuta el comando de instalación

    Ejecuta: npx killer-skills add OpenAEC-Foundation/OpenAEC-Workspace-Composer/solid-errors-reactivity-debugging. La CLI detectará tu IDE o agente automáticamente y configurará la skill.

  3. 3. Empieza a usar el skill

    El skill ya está activo. Tu agente de IA puede usar solid-errors-reactivity-debugging de inmediato en el proyecto actual.

! Source Notes

This page is still useful for installation and source reference. Before using it, compare the fit, limitations, and upstream repository notes above.

Upstream Repository Material

The section below comes from the upstream repository. Use it as supporting material alongside the fit, use-case, and installation summary on this page.

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 comes from the upstream repository. Use it as supporting material alongside the fit, use-case, and installation summary on this page.
Upstream Source

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

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

pr-review

Logo of pytorch
pytorch

Resumen localizado: Usage Modes No Argument If the user invokes /pr-review with no arguments, do not perform a review . It covers autograd, deep-learning, gpu workflows. This AI agent skill supports Claude Code, Cursor, and Windsurf workflows.

98.6k
0
Desarrollador