vowdemon/jolt/use-jolt
Claude Code and agent skill by vowdemon/jolt
- community
Checking that the SKILL.md file is still in the repository.
Use when modeling reactive state in Dart with Jolt — owning mutable state with signals, deriving values from other reactive reads, reacting to changes with effects or watchers, or bridging reactive state with Future / Stream / async loading.
Install
npx vskill@latest install vowdemon/jolt/use-joltSKILL.md
Use Jolt
Jolt state models are ordinary Dart objects built from a small reactive core: own state with Signal, derive values with Computed, react with Effect or Watcher, and bind related lifetimes with EffectScope.
When to Use
- The user wants reactive signals with automatic dependency tracking.
- The user wants to derive values from signals with
Computedorderived. - The user wants side effects, transition callbacks, cleanup, or lifecycle with
Effect, Watcher, or EffectScope.
- The user wants to extend signal behavior with collection signals, readonly
views, read/write helpers, conversion wrappers, or storage-backed state.
- The user wants signals to interact with
Future,Stream, async loading
state, or imperative waits.
- The user wants compact state management without code generation, global
containers, or manual subscription wiring.
- The task mentions
Signal,Computed,Effect,Watcher,EffectScope,
Readable, Writable, Readonly, WritableComputed, AsyncSignal, ListSignal, MapSignal, SetSignal, IterableSignal, PersistSignal, ConvertComputed, batch, untracked, triggerTracked, peek, stream, or until.
Quick Start
Start with the smallest model that expresses the state and derivations. Use Signal for source state, Computed for values that follow from other reads, and ordinary methods for writes.
Core Choice Table
| Need | Use | |
|---|---|---|
| Owned mutable state | Signal<T> | |
| Lazy mutable state | Signal.lazy<T>() | |
| Read interface | Readable<T> | |
| Read/write interface | Writable<T> | |
| Read-only wrapper or constant value | Readonly<T> | |
| Derived read-only value | Computed<T> or readable.derived(...) | |
| Derived value with write-back | WritableComputed<T> | |
| Reversible conversion over writable state | ConvertComputed<T, U> | |
| Reactive mutable collection | ListSignal, MapSignal, SetSignal | |
| Derived iterable view | IterableSignal<T> | |
| Run work after reactive values change | Effect | |
| Compare previous and next values | Watcher<T> | |
| Dispose related reactions together | EffectScope | |
| Update multiple signals as one settled change | batch(...) | |
| Read without subscribing | peek or untracked(...) | |
| Touch tracked values without keeping the caller subscribed | triggerTracked(...) | |
| Async source and loading/success/error state | AsyncSignal<T>, AsyncState<T>, FutureSource, StreamSource | |
| Stream-style output from a readable | readable.stream or readable.listen(...) | |
| Await a reactive condition | Until<T>, readable.until(...), untilWhen(...), untilChanged(...) | |
| Storage-backed signal | PersistSignal<T> | |
| Debug metadata and hooks | JoltDebugOption, JoltDebug |
Reference Files
Read the focused reference that matches the user's task:
| File | Use when | |
|---|---|---|
references/signal.md | Modeling owned state, read surfaces, lazy signals, notifications, and collection signals. | |
references/computed.md | Deriving values, equality, previous values, advanced computed variants, and pure getter rules. | |
references/effect.md | Running reactive work, lazy effects, cleanup, detach, and disposal. | |
references/watcher.md | Previous/next transitions, when, immediate/once watchers, pause/resume, and ignored updates. | |
references/effect-scope.md | Grouped lifecycle, scope cleanup, detached scopes, and ownership boundaries. | |
references/async.md | Async loading state, futures, streams, source replacement, and AsyncState mapping. | |
references/until.md | Awaiting reactive conditions with Until, cancellation, and scope attachment. | |
references/tricks.md | Persistence helpers, readonly views, conversion wrappers, and storage patterns. | |
references/advanced.md | batch, untracked, stream/listen utilities, debugging, and low-level extension points. |
Automatic Tracking
Tracked reads happen through .value inside an active reactive context:
| Form | Behavior | |
|---|---|---|
source.value | Reads and subscribes the active reactive context. | |
source.peek | Reads without subscribing. | |
untracked(() => source.value) | Runs a block without recording dependencies. |
Use batch when one command mutates several signals and observers should see one final state:
Derive And React
Use Computed when a value follows from reactive reads. Keep computed getters pure: no timers, requests, logging, persistence, controller mutations, or signal writes.
Use Effect when something should happen because current reactive values changed. Use cleanup for resources owned by one run, and dispose manually created effects.
Use Watcher when the callback needs the previous and next values, custom transition filtering, pause/resume, or once semantics.
Use EffectScope when a screen, request, route, test, or temporary workflow owns several reactions and cleanup callbacks together.
Integration Points
- Use collection signals when in-place
List,Map, orSetmutation is the
normal API and should notify dependents.
- Use
AsyncSignalwhen loading, success, and error are part of the state. - Use readable stream/listen utilities when an external API expects
Streamor
callback-style updates; cancel subscriptions when the bridge ends.
- Use
untilutilities when imperative code must wait for a reactive condition. - Use persistence helpers when storage belongs to the signal model.
- Use
Readonly<T>when an API needs a Jolt object that cannot write through
the exposed surface.
Common Mistakes
- Creating a signal for state that should be derived with
Computed. - Putting side effects inside
Computed. - Reading
.valuewhen the read is incidental; usepeekoruntracked. - Forgetting to dispose effects, watchers, scopes, waits, or stream
subscriptions.
- Using
Watcherwhen anEffectonly needs current values. - Mutating ordinary
List,Map, orSetin place inside aSignalwithout
calling notify or using collection signals.
Source Navigation
Read the current source before answering API-sensitive questions.
| Area | Files | |
|---|---|---|
| Public exports | packages/jolt/lib/jolt.dart, packages/jolt/lib/core.dart | |
| Read/write interfaces | packages/jolt/lib/src/core/interface.dart, packages/jolt/lib/src/utils/readable.dart, packages/jolt/lib/src/utils/writable.dart | |
| Signal state | packages/jolt/lib/src/jolt/signal.dart, packages/jolt/lib/src/jolt/readonly.dart | |
| Derived state | packages/jolt/lib/src/jolt/computed.dart | |
| Effects and lifecycle | packages/jolt/lib/src/jolt/effect.dart, packages/jolt/lib/src/jolt/watcher.dart, packages/jolt/lib/src/jolt/effect_scope.dart | |
| Tracking and batching | packages/jolt/lib/src/jolt/track.dart, packages/jolt/lib/src/jolt/batch.dart | |
| Collections | packages/jolt/lib/src/jolt/collection/ | |
| Async, stream, wait, persistence | packages/jolt/lib/src/jolt/async.dart, packages/jolt/lib/src/utils/, packages/jolt/lib/src/tricks/persist_signal.dart | |
| Tutorials | packages/jolt/doc/en/ | |
| Core tests | packages/jolt/test/ |
For public examples, import package:jolt/jolt.dart. Use src/ imports only when maintaining package internals.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/use-jolt/SKILL.md
Popularity
- Repository stars
- 101
- Repository forks
- 2
- 7-day trend score
- 23
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/vowdemon/jolt/use-jolt)