Content
71%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
A dense, highly actionable library reference: nearly all content is executable, library-specific code and gotchas with essentially no padding, organized in a logical setup-to-advanced sequence with error-recovery patterns. Its main defects are a broken progressive-disclosure chain — all four referenced documentation files are missing from the bundle — plus small completeness nits (useStore missing from the import list, a version-specific model ID that will age).
Suggestions
Ship the referenced files (skill/skill.md, skill/api-reference.md, skill/examples.md, skill/refactoring.md) inside the skill bundle, or repoint the 'Full Documentation' links to files that actually exist alongside SKILL.md — currently all four references dangle.
Add useStore to the import statement in 'Key React Hooks' (or note it comes from 'stackpack-state/react') so the hook examples are copy-paste complete.
Replace the version-specific model ID 'claude-sonnet-4-6' in the actor example with a placeholder or a pointer to current model IDs so the skill does not go stale.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Quotes: 'Schema is the single source of truth...', 'No other dependencies. Zod is bundled...', the 5 Primitives table, and dense code blocks throughout. The body is lean and assumes Claude's competence — no React or state-management basics are explained, and every section teaches the library's own model — but the hardcoded 'model: 'claude-sonnet-4-6'' is version-sensitive information that will go stale, a minor instance of tokens that could be trimmed (anchor 4 rather than 5's 'every token earns its place'). | 4 / 5 |
Actionability | Quotes: 'npm install stackpack-state', the full defineStore template, 'const { update } = useStore<TodosState>('todos')', 'const result = await store.optimistic({...})'. Guidance is real, executable TypeScript (not pseudocode) covering the common cases — store definition, reads, writes, presence, gates, undo, optimistic rollback, actors — matching anchor 5's coverage; however it lands at anchor 4 ('minor gaps') because 'useStore' is used in the hooks section but is missing from the import statement at the top, so that block is not fully copy-paste ready. | 4 / 5 |
Workflow Clarity | The body flows in a clear sequence — Quick Start (install/imports) → conceptual model ('Every state decision maps to one of these') → store template → hooks → undo/optimistic → actors → pitfalls — with error-recovery patterns ('if (!result.success) showToast(...)', '{ skipUndo: true }' for gate-controlling mutations) and a gotchas checklist. It sits at anchor 4 rather than 5 because there is no explicit step-by-step workflow for the skill's own declared use case (migration from useState/Redux/Zustand/Jotai/XState), which is deferred entirely to skill/refactoring.md, and no validation checkpoints — though none are strictly required since no destructive or batch operations are instructed. | 4 / 5 |
Progressive Disclosure | Quotes: 'read skill/skill.md — Pattern catalog, decision trees, 10+ store patterns', 'skill/api-reference.md — Every hook, component, and type signature', 'skill/examples.md', 'skill/refactoring.md'. The body itself is a well-organized, well-signaled overview with one-level-deep references that would match anchor 5's shape, but scored against the actual bundle: none of these referenced files exist in the bundle (no skill/, references/, scripts/, or assets/ directories), so the disclosure chain is broken and the pointers are unverifiable — a real organizational gap that drops it to anchor 3 ('could be better organized; references present but...'). | 3 / 5 |
Total | 15 / 20 Passed |