Skip to content
Back to skills

Ccstate

ASecurity

Apply ccstate patterns for reactive values, commands, HTTP responses, and async or DOM ownership

  • 1,153 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 2, 2026
ai-agentsreacttestingapiperformance

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 23, 2026

npx -y skills add vm0-ai/vm0 --skill ccstate --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ccstate?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ccstate
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vm0-ai-ccstate/badge)](https://www.skillsdirectory.com/skills/vm0-ai-ccstate)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ccstate
description: Apply ccstate patterns for reactive values, commands, HTTP responses, and async or DOM ownership
---

# ccstate

Read the reference matching the changed behavior; API work does not require the
React/DOM reference unless it also changes that surface.

| Task                                                              | Reference                                   |
| ----------------------------------------------------------------- | ------------------------------------------- |
| `computed`, memoization, function-valued state, reactive fetches  | [Reactive values](references/reactivity.md) |
| API client status handling and `accept`                           | [HTTP](references/http.md)                  |
| AbortSignal ownership, cancellation, debouncing, detached cleanup | [Lifecycle](references/lifecycle.md)        |
| DOM callbacks, page signals, refs and ref cleanup                 | [React and DOM](references/react.md)        |
| Shared command logic and signal factories                         | [Commands](references/commands.md)          |

## Boundaries

- Keep derivation in `computed` and semantic actions in commands. Do not create
  signals or mutate the store during React render.
- Every async operation needs an owner and cancellation path. Await finite work
  or return its promise inside signals. Start background loops with `setLoop`
  or `setAbly*Loop$`; those primitives own `detach(..., Reason.Daemon)` internally.
  Use `waitLoopUntil` / `waitAbly*LoopUntil$` when subsequent work needs completion.
  Non-periodic background work uses `detach(promise, reason, description)` with
  the owner's signal, in `signals/` as well as in views. Do not silence work
  with `void`.
- `resetSignal()` provides mutual exclusion. Add a parent when the work belongs
  to a page/route lifetime; parentless use still needs an explicit owner that
  cancels it. The lifecycle reference defines both valid patterns.
- Use `accept` with a non-empty status list for `apiClient$` calls. Preserve
  structured HTTP errors and use the view's loadable state for lifecycle UI.
- Route setup owns `pageSignal$`. Preserve stable callback refs and `onRef`
  cleanup returns.

See [effects](../../../docs/effect.md), [cache](../../../docs/cache.md), and
[Platform tests](../../../docs/testing/app-testing.md) for the relevant broader
contracts. For performance investigations, use
[React measurements](../../../docs/react-commit.md).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…