Borrowing it
Nothing to install: this file belongs to jerseycheese/Narraitor. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/jerseycheese/Narraitor/main/.claude/skills/narraitor-storybook-app-parity/SKILL.mdgit clone --depth 1 https://github.com/jerseycheese/NarraitorWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jerseycheese/narraitor/narraitor-storybook-app-parity)<a href="https://agentmods.dev/skills/jerseycheese/narraitor/narraitor-storybook-app-parity"><img src="https://agentmods.dev/badge/skills/jerseycheese/narraitor/narraitor-storybook-app-parity/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/jerseycheese/narraitor/narraitor-storybook-app-parity"><img src="https://agentmods.dev/badge/skills/jerseycheese/narraitor/narraitor-storybook-app-parity.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00088 | $0.01278 |
| Opus 5 | $0.00044 | $0.00639 |
| Sonnet 5 | $0.00018 | $0.00256 |
| Haiku 4.5 | $0.00009 | $0.00128 |
Grade A, and why
narraitor-storybook-app-parity scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 69 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Storybook <-> app parity
1. Purpose
Storybook (ADR-012) is the canonical surface for what components should look like — and simultaneously the most common source of false confidence about how they behave. This skill defines the promotion ladder and the parity checks between tiers.
2. When to use
Storybook/app disagreements; authoring stories; reviewing "component is done" claims; promoting a component into a real route.
3. When not to use
- Pure visual-token drift within one surface →
narraitor-debugging-playbooktheming row. - Deciding to ship a feature →
narraitor-feature-experiment-lifecycle(parity is one of its gates).
4. Inputs required
The component, its stories (src/stories/), its real usage site(s), and the store slices it reads.
5. Procedure
The promotion ladder — a component holds exactly one status:
S0 renders-in-isolation-only (story exists, mock props) <- BLOCKING status
S1 mock-data-only (story seeds stores via withStores; MSW answers /api) <- BLOCKING status
S2 integrated (works in the running app with real hydrated IndexedDB state)
S3 QA-verified (exercised in a real flow incl. failure paths; evidence recorded)
"Done" requires >= S2 with evidence; user-facing features require S3. S0/S1 are legitimate development states but BLOCK any done/integrated claim.
Parity checklist (run when promoting or when tiers disagree):
- Prop/data parity — story args vs what the app actually passes. Diff the real call site, not the README.
- State parity —
withStoresseed shape vs real store shape after hydration. Stores are NOT auto-reset between stories; a story can pass by leeching a previous story's seed. Seed every dependency explicitly. - Render parity — same state → same output. If not: environment differences (Next Image, fonts,
themeInitScript, missing provider/context in the app tree). - Interaction parity — events update real stores in the app, not just Storybook actions. Click it in the app; watch the store slice change (IndexedDB db
narraitor-state). - Network parity — MSW canned responses (
.storybook/msw/handlers.ts) are happy-path only. The real route can return errors, malformed payloads, or take seconds (timeout ceiling 120s). Exercise loading/error/empty in the APP, not only as story variants. - Runtime semantics — hydration (component renders pre-hydration in the app; Storybook seeds synchronously so it never sees that window), App Router navigation (Storybook mocks the router as a logger), and multi-second AI latency.
- Perf parity — no re-render storm in the app that Storybook's isolated tree hides (React DevTools profiler on the real route when the component subscribes to hot stores like narrativeStore).
- Cross-context — light and dark (
colorSchemetoolbar in Storybook,narraitor-color-schemein the app) + mobile viewport; for data components, >= 2 worlds/characters. There's one design system since ADR-013, so light/dark is the whole matrix.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 69 lines · 88 tokens per session scan A 5f6cb3a07535
narraitor-storybook-app-parity is a skill published in the GitHub repository jerseycheese/Narraitor (30 stars, last pushed today), licensed MIT. It adds 88 tokens to every session and 1,278 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
next-cache-components-optimizer
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…
next-partial-prefetching-optimizer
Optimize what selected Next.js client navigations include before the click under Partial Prefetching. Use after Cache Components and Partial Prefetching are adopted when the user wants selected URL-specific UI to be instant, wants reusable content to wait for navigation, or needs to choose between default, viewport…
react-patterns
React 18/19 patterns including hooks discipline, server/client component boundaries, Suspense + error boundaries, form actions, data fetching, state management decision trees, and accessibility-first composition. Use when writing or reviewing React components.
compiler-port
Port a compiler pass from TypeScript to Rust. Gathers context, plans the port, implements in a subagent with test-fix loop, then reviews.
break
Renders a component you choose in every state and scenario on a temporary page and stress tests it.
visual-qa
MUST USE after building/changing any UI or when asked whether a page, component, or TUI looks right. Rigorous visual QA across web/page and terminal UIs. Prefer browser:control-in-app-browser for unauthenticated browser/page QA in Codex, then Playwright/agent-browser/dev-browser. Captures screenshot/TUI evidence with…