About
The crit-story skill generates structured story documentation only when explicitly invoked via `/crit-story` or direct request. It fetches and follows a runtime authoring guide to produce JSON-formatted output, operating independently from regular code review workflows. Developers should use this specifically for story generation, not for general PR reviews or diff analysis.
Quick Install
Claude Code
Recommendednpx skills add tomasz-tomczyk/crit -a claude-code/plugin add https://github.com/tomasz-tomczyk/critgit clone https://github.com/tomasz-tomczyk/crit.git ~/.claude/skills/crit-storyCopy and paste this command in Claude Code to install this skill
Documentation
Author a crit story with crit story
This is a sibling skill to /crit — it does not run inside the normal review
loop. Invoke it deliberately only when the user explicitly asks for story
generation; do not infer it from generic review, PR, or diff-review requests.
Step 1: Fetch the guide
crit story --guide
This prints the resolved authoring guide (the user's customized version if
they have one — always invoke this at runtime rather than reusing this
skill's own prose) followed by --- and the JSON schema for the fields you
must emit. Read and follow that guide's principles and JSON shape exactly —
it is the source of truth, not this file.
Step 2: Write the prep file
crit story --prep /tmp/crit-story-prep.txt
This writes the full, untrimmed diff (commit messages + every hunk with its
(file_path, old_start) id) to the given path and prints the path. Read
that file — the diff is never inlined into the guide prompt.
Step 3: Author the story JSON
Following the guide from Step 1, cluster hunks by theme (not by file) and
write a JSON object with only prologue, chapters, and support to a
temp file, e.g. /tmp/crit-story.json. Do not include version,
generated_at, agent, base_sha, head_sha, scope_fingerprint, or
coverage — crit fills those in.
Step 4: Ingest
crit story --story-file /tmp/crit-story.json
Exit 0 means the story was saved (crit opens the browser to show it). Exit 1 means it was rejected — the coverage report (missing/duplicated hunks) is printed to stdout as JSON on every attempt, success or failure. If rejected:
duplicatednon-empty: a hunk is claimed by two chapters (or a chapter and support). Decide where it belongs and re-ingest.missingnon-empty withauto_repaired: trueon exit 0: crit already back-filled the omissions intosupport[]. Optionally re-author to place them deliberately.- A drift error ("diff changed since prep"): re-run
crit story --prepand re-author from the fresh prep file.
What this skill does NOT do
- It does not call
crit comment,crit push, orcrit share— those are separate flows. - It does not produce review-level human comments.
- It does not run as part of the generic
/critreview loop.
GitHub Repository
Frequently asked questions
What is the crit-story skill?
crit-story is a Claude Skill by tomasz-tomczyk. Skills package instructions and resources that Claude loads on demand, so Claude can perform crit-story-related tasks without extra prompting.
How do I install crit-story?
Use the install commands on this page: add crit-story to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.
What category does crit-story belong to?
crit-story is in the Meta category, tagged general.
Is crit-story free to use?
Yes. crit-story is listed on AIMCP and free to install.
Related Skills
This skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.
This skill enables developers to build applications with the Polymarket prediction markets platform, including API integration for trading and market data. It also provides real-time data streaming via WebSocket to monitor live trades and market activity. Use it for implementing trading strategies or creating tools that process live market updates.
This skill helps developers create OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It provides the plugin structure, event API specifications, and implementation patterns for JavaScript/TypeScript modules. Use it when you need to intercept, monitor, or extend the OpenCode AI assistant's lifecycle with custom event-driven logic.
SGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.
