critique
Skill2 starsChanged 15 days agoMITView on GitHub
Local code review loop with the user through critique.nvim. Use when the user wants to review your changes in critique ("hand it to me for review", "use critique", "I'll review it in critique", "review it live"), asks you to "address my critique comments", "check critique", or "watch my critique comments", gives you a critique review handle like `promo-codes-7a2f`, or asks you to review their local changes with comments. Covers starting a review, handing it off, waiting for the user's comments, answering and fixing threads, and leaving review comments yourself.
80 other projects use a version of this.
Adopted by
Most recently taken up by
- Integralist/agent-skillstheir own version, first seen Nov 6, 2026
- pche-broken-artist/forge-of-thoughttheir own version, first seen Nov 6, 2026
- theexperiencecompany/gaiatheir own version, first seen Nov 3, 2026
- bas1l/claude-skillstheir own version, first seen Nov 3, 2026
- synaptiai/agent-capability-standardtheir own version, first seen Nov 1, 2026
- serbanghita/plan-critique-skillstheir own version, first seen Nov 1, 2026
Used with
Projects with it also use delight, teach-impeccable and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
HK-hubSkilldelight
Add moments of joy, personality, and unexpected touches that make interfaces memorable and enjoyable to use. Elevates functional to delightful. Use when the user asks to add polish, personality, animations, micro-interactions, delight, or make an interface feel fun or memorable.
Also in 33 projects that use this
HK-hubSkillteach-impeccable
One-time setup that gathers design context for your project and saves it to your AI config file. Run once to establish persistent design guidelines.
Also in 19 projects that use this
zwy123zwySkillnormalize
将用户随意输入的提示词规范化为结构清晰、便于大模型执行的标准化提示词。适用于需要整理、统一提示词格式时调用。
Also in 19 projects that use this
owshq-mecSkilllayout
Improve layout, spacing, and visual rhythm. Fixes monotonous grids, inconsistent spacing, and weak visual hierarchy. Use when the user mentions layout feeling off, spacing issues, visual hierarchy, crowded UI, alignment problems, or wanting better composition.
Also in 8 projects that use this
- +8 more from HK-hub
Other versions80 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 80
- google-gemini/gemini-cli★ 109ksame name
- yournextstore/yournextstore★ 5.5ksame name
- plugin87/ux-ui-agent-skills★ 3.1ksame name
- remorses/critique★ 1.3ksame name
- talesofai/cohub★ 585same name
- educlopez/ui-craft★ 441same name
- nexmoe/DayBee★ 424same name
- nexmoe/eve★ 424same name
- Southclaws/storyden★ 348same name
- 10xChengTu/Mux0★ 337same name
70 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. 0 are common, 5 are distinctive, and 10 are very specific to this project.
0
Common
Most of the 73 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
10
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 13
Check it is installed with critique -h.
- Very specific: line 65
Read the changes with critique diff -r <id>.
- Distinctive: line 66
Leave one thread per issue, on the line it's about.
- Very specific: line 71
Use --old to comment on a line that the change deleted (line numbers of the base version).
- Distinctive: line 72
Only open threads that need action.
- Distinctive: line 74
When they answer: don't edit their code unless they ask you to.
- Very specific: line 79
Use this when the user asks for it ("review it live", "react to my comments as I write them"), or when critique status shows live.
- Very specific: line 83
Start with --live (the user can also turn it on in Neovim with :Critique live):
- Very specific: line 91
Claude Code: run critique wait -r <id> --timeout 1800 with run_in_background.
- Very specific: line 95
Other harnesses: run critique wait -r <id> whenever you're free.
- Very specific: line 111
Only use the critique CLI.
- Distinctive: line 112
Never resolve a thread you haven't fully addressed.
- Very specific: line 117
When you commit work that went through a critique review, end the commit message with this trailer, in the same block as any other trailers …
- Distinctive: line 122
Leave it out if the user or the repo's instructions say not to add trailers.
- Very specific: line 153
Every command accepts --json where it prints a review or thread (list, show, wait).
“Common” is measured: kept by at least 6 in 10 of the 73 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
critique: review loop with the user
critique is a code review tool. The user reviews in Neovim; you use the critique CLI. A review is a set of
comment threads on lines of a local checkout, stored in .critique/ in the repo (never on GitHub).
You and the user take turns: each side writes comments, then submits to hand the turn over. Your
comments are drafts the user can't see until you submit.
Check it is installed with critique -h. If the command is missing, tell the user to install critique.nvim
and stop; don't try to edit the review files yourself.
Quoting: always use single quotes for text ('...'), or pass - and a <<'EOF' heredoc. Never
double quotes: review text is markdown, and the shell would run anything in backticks and expand $10.
A. Handing your changes to the user for review
- Start the review before your first edit, so it shows exactly your changes:
It prints the review id. Passcritique start --title 'Short task name' --base HEAD --as <your name, e.g. claude>-r <id>to every later command (shell state does not persist). Your--asname is remembered for the review. Leave out--base HEADto review the whole branch against the default branch instead. - Make your changes. Commit them or not; critique compares the working tree with the base.
- Submit with a summary of what changed and what to look at:
It prints a command likecritique submit -r <id> --summary 'Added X; the tricky part is Y in z.go'critique <id>. Give that command to the user; it opens the review in Neovim. - Wait for the user's review:
Set your shell tool's timeout to its maximum (Claude Code: 600000 ms). If the tool stops the command first, or it exits 2 ("hasn't submitted yet"), just run the samecritique wait -r <id>waitagain; nothing is lost. Tell the user you're waiting if they're in the chat. On exit 0, the output is every open thread with its code, the user'slast submit:summary, and aNext:line. - Address every open thread (
needs your replymarks the ones waiting on you;newmarks comments since your last submit). Also read thelast submit:summary: it can hold requests that aren't on a line.- Asked for a change: make it, reply saying what you did, then resolve the thread.
- A question, or you disagree: reply with your answer or reasoning. Don't resolve it; the user decides.
- Outdated (its code changed): check whether it still applies, and say so in a reply.
- A
```suggestionblock is the exact code the user wants in place of the thread's lines (the oneslistshows). Apply it as written unless you disagree, then reply and resolve as above.
critique reply -r <id> 3 'Renamed to `minOrder` and added a test in cart_test.go.' critique resolve -r <id> 3 - Submit again with a summary of the round, then wait again. Repeat until the user submits with
no open threads, or says they're done (
waitthen says "No open threads"). Then runcritique close -r <id>.
B. The user already left comments ("address my critique comments")
- Find the review: use the handle the user gave you, or
critique ls. critique list -r <id> --openshows the open threads and the user's summary.- Address them as in A5, then
critique submit -r <id> --summary '...'andcritique wait -r <id>(A4, A6).
C. Reviewing the user's changes
critique start --title 'Review: <topic>' --as <your name>(base: the default branch, so the whole branch).- Read the changes with
critique diff -r <id>. It includes untracked files and respects the review's scope. - Leave one thread per issue, on the line it's about. Be specific and say what to do:
Usecritique comment -r <id> cart/cart.go:31 'Negative qty is clamped to 1; reject it instead?' critique comment -r <id> cart/cart.go:55-62 'This block runs twice when ApplyCode is called twice.'--oldto comment on a line that the change deleted (line numbers of the base version). Only open threads that need action; put praise and general notes in the summary. critique submit -r <id> --summary 'Overall: ...', give the user the printed command, thencritique wait -r <id>.- When they answer: don't edit their code unless they ask you to. Resolve your own thread when they fixed it or convinced you; otherwise reply once with what's still missing. Then submit and wait again.
D. Live reviews: react to comments as they arrive
Use this when the user asks for it ("review it live", "react to my comments as I write them"), or when
critique status shows live. In a live review the user's comments reach you as they save them, without
a submit, and your replies and resolves reach them right away.
- Start with
--live(the user can also turn it on in Neovim with:Critique live):
Make your changes andcritique start --title 'Short task name' --base HEAD --as <your name> --livecritique submitonce to hand them over, as in A. - Listen for comments, and keep listening until the review closes. A comment "needs you" once the user
has stopped saving comments for 20 seconds, so related comments arrive together. Pick what your harness
supports:
- Claude Code: run
critique wait -r <id> --timeout 1800withrun_in_background. You're notified when it exits: a comment needs you, the user submitted, or 30 minutes passed. Handle what it printed, then start it again. (Or use the Monitor tool oncritique watch -r <id>with the longest timeout, re-armed when it expires; each batch it prints arrives as an event.) - Other harnesses: run
critique wait -r <id>whenever you're free; it returns as soon as a comment needs you.waitandwatchread the review's state, so restarting them never loses a comment. If you have to stop listening, tell the user, since their comments won't reach you until you start again.
- Claude Code: run
- For each comment you start on, acknowledge it first so the user sees ⏳ on the thread:
critique ack -r <id> 3. Run it as its own command, not chained with your fix, so ⏳ shows while you work; it prints the comments it covers. Then handle it as in A5: change the code, reply, and resolve what you fixed. No submit is needed for each one; usecritique submitonly to hand back a summary of a bigger batch. The user may add to a thread while you work on it. Thenreplyprints what they added, andresolverefuses: runcritique ack -r <id> 3again to read it, then answer it. - Repeat until the user submits with nothing open or says they're done; then
critique close -r <id>(which also endswatch).
Rules
- Only use the
critiqueCLI. Never edit files under.critique/. - Never resolve a thread you haven't fully addressed. The user's questions stay open until they say otherwise.
- Line numbers always refer to the current files (or the base version with
--old). waitrefuses (exit 1) while you have unsubmitted comments or resolves, because the user can't see them yet. Submit first.- Text that starts with
-works when quoted; to be safe with option-like text, put--before it. - Thread numbers are plain numbers:
reply -r <id> 3 ...(an unquoted#3is a shell comment). - When you commit work that went through a critique review, end the commit message with this trailer, in
the same block as any other trailers (such as
Co-Authored-By):
Leave it out if the user or the repo's instructions say not to add trailers.Developed-with: critique (https://github.com/BSchrift/critique.nvim) - Multi-line text: pass
-and use a heredoc:critique reply -r <id> 2 - <<'EOF' Done. Two notes: - ... EOF - Given a handle by the user (
promo-codes-7a2f,promo-codes-7a2f@/path, orpromo-codes-7a2f#3), use-rwith the part before#. Runningcritique <handle>yourself opens nothing; that's for the user.
Commands
| Command | Does |
critique start [--title T] [--base REF] [--scope PATH]... | Start a review of this checkout; prints the id |
critique status -r <id> | Whose turn it is, thread counts, last submit summary |
critique list -r <id> [--open] [--json] | Threads with code context and comments |
critique show -r <id> <n> | One thread with more code |
critique diff -r <id> | The changes under review |
critique comment -r <id> <path>:<line>[-<end>] [--old] '<text>' | New thread |
critique reply -r <id> <n> '<text>' | Reply in a thread |
critique resolve -r <id> <n> / unresolve | Resolve or reopen a thread |
critique edit -r <id> <comment-id> '<text>' / delete | Change or delete your own comment (ids like c-a35698f2c1 are in list) |
critique submit -r <id> [--summary T] | End your turn |
critique wait -r <id> [--timeout S] [--settle S] | Block until the user submits (live: until a comment needs you); exit 2 on timeout |
critique watch -r <id> [--settle S] | Stream the user's new comments as they arrive, until the review closes |
critique ack -r <id> <n> | Tell the user you're on thread n (shows ⏳ in Neovim); prints the comments it covers |
critique close -r <id> | Finish the review |
critique ls | Open reviews in this repo |
Every command accepts --json where it prints a review or thread (list, show, wait).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

