About
The crit-story skill generates structured code review narratives by analyzing diffs and clustering changes thematically. It operates exclusively when explicitly invoked via `/skill:crit-story` or direct request, never auto-triggering from general review prompts. The skill follows a guided workflow that produces JSON output with prologue, thematic chapters, and supporting evidence.
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
Author the story in-session, then continue the interactive Crit review loop.
Do not run bare crit story unless the user asks for the agent_cmd path.
1. Read the guide and diff
crit story --guide
crit story --prep /tmp/crit-story-prep.txt
The guide prints the user's resolved authoring instructions followed by ---
and the JSON schema. Follow it rather than assuming this skill contains the
current guide. Read the prep file for the full diff and its
(file_path, old_start) hunk identifiers.
2. Author and ingest
Use the write tool to write /tmp/crit-story.json. Cluster hunks by theme,
not by file, following the guide. Emit only prologue, chapters, and
support; Crit fills in metadata and coverage.
crit story --story-file /tmp/crit-story.json
Inspect the JSON coverage report on every attempt. Exit 1 means rejection:
fix duplicate or missing hunk assignments and re-ingest. A drift error means
the diff changed; fetch fresh prep and re-author. Exit 0 with
auto_repaired: true means omissions were back-filled into support.
3. Reconnect and await Finish Review
Ingest opens the browser and exits; it does not wait for the human.
Run bare crit through omp's bash tool as an asynchronous job:
{"command":"crit","async":true,"timeout":0}
Save the returned job ID. timeout: 0 disables the default five-minute
command deadline; async: true alone does not. If asynchronous jobs are
unavailable, use foreground bash with timeout: 0.
Do not use a named service for this finite review-round command.
Relay the review URL verbatim; if omitted from startup output, read
proc://<job-id> once. Use wait when no independent work remains.
Completion also auto-delivers. A running snapshot or unrelated message
is not completion: keep waiting until this job exits.
Do not poll process output or the review file, hold an eval cell open,
read feedback early, or ask the user to type a reply to signal Finish Review.
4. Address feedback and repeat
Read the command output and follow the finish prompt; check for
approved: true or approved: false. omp merges stdout and stderr.
Retrieve omitted output through proc://<job-id> or its artifact:// link.
A command failure is not approval; report the error rather than proceeding.
If approved, stop. Otherwise read every unresolved comment and its replies,
including review-level comments. Use quote and anchor rather than stale
line numbers when edits have moved the content.
Address comments against the actual source files. Do not regenerate or edit the saved story JSON unless the user explicitly asks.
crit comment --reply-to <id> --author 'omp' '<what changed>'
crit comment --json --file /tmp/crit-story-replies.json --author 'omp'
Write bulk reply JSON with the write tool; each entry has reply_to
and body. Do not use --resolve unless explicitly requested.
For mid-round re-entry, use crit comments --json.
Run the next-round command printed on stdout with the same asynchronous
bash pattern and timeout: 0. Tell the user only that you replied in Crit
and the changes are ready for review. Do not repeat your replies or list the
comments in chat. Await command completion, and repeat this step until
approved.
Do not call crit push or crit share unless the user asks.
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.
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.
