skills/critique/SKILL.md
Git diff viewer. Renders diffs as web pages, images, and PDFs with syntax highlighting. Use this skill when working with critique for showing diffs, generating diff URLs, or selective hunk staging.
npx skillsauth add remorses/kimaki critiqueInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Git diff viewer that renders diffs as web pages, images, and PDFs with syntax highlighting.
Agents running in headless environments (kimaki on Discord, openclaw on Slack/Telegram) have no terminal to show diffs. critique uploads diffs to critique.work and returns a shareable URL you can paste into chat. Users click the link and see a syntax-highlighted split-view diff with mobile support and dark/light mode — no install needed.
Always run critique --help first to see the latest flags and commands. The help output is the source of truth.
Always pass a title to describe what the diff contains.
# Working tree changes
critique --web "Add retry logic to database connections"
# Staged changes
critique --staged --web "Refactor auth middleware"
# Branch diff (three-dot: changes since diverging from base)
critique main...HEAD --web "Feature branch changes"
critique main...feature-branch --web "Compare branches"
# Last N commits
critique HEAD~3 --web "Recent changes"
# Specific commit
critique --commit HEAD --web "Latest commit"
critique --commit abc1234 --web "Fix race condition"
# Filter to specific files
critique --web "API changes" --filter "src/api.ts" --filter "src/utils.ts"
# JSON output for programmatic use (returns {url, id, files})
critique --web "Deploy changes" --json
Share the returned URL with the user so they can see the diff.
critique --pdf # working tree to PDF
critique --staged --pdf # staged changes
critique main...HEAD --pdf # branch diff
critique --commit HEAD --pdf # single commit
critique --pdf output.pdf # custom filename
critique --pdf --pdf-page-size a4-portrait # page size options
critique main...HEAD --pdf --open # open in viewer
critique --image # renders to /tmp as WebP
critique main...HEAD --image # branch diff as images
When multiple agents work on the same repo, each agent should only commit its own changes. critique hunks lets you stage individual hunks instead of whole files — like a scriptable git add -p.
# List hunks with stable IDs
critique hunks list
critique hunks list --filter "src/**/*.ts"
# Stage specific hunks by ID
critique hunks add 'src/main.ts:@-10,6+10,7'
critique hunks add 'src/main.ts:@-10,6+10,7' 'src/utils.ts:@-5,3+5,4'
Hunk ID format: file:@-oldStart,oldLines+newStart,newLines — derived from the @@ diff header, stable across runs.
Typical workflow:
critique hunks list # see all unstaged hunks
critique hunks add 'file:@-10,6+10,7' # stage only your hunks
git commit -m "your changes" # commit separately
Every --web upload also stores the raw unified diff. Append .patch to any critique URL to get it:
# View the raw patch
curl https://critique.work/v/<id>.patch
# Apply the patch to current repo
curl -s https://critique.work/v/<id>.patch | git apply
# Reverse the patch (undo the changes)
curl -s https://critique.work/v/<id>.patch | git apply --reverse
Useful when an agent shares a critique URL and you want to programmatically apply or revert those changes.
bunx critique or global critique--web URLs expire after 7 days (content-hashed, same diff = same URL)development
Opinionated TypeScript npm package template for ESM packages. Enforces src→dist builds with tsc, strict TypeScript defaults, explicit exports, and publish-safe package metadata. Use this when creating or updating any npm package in this repo.
documentation
Best practices for creating a SKILL.md file. Covers file structure, frontmatter, writing style, and where to place skills in a repository. Use when the user wants to create a new skill, update an existing skill, write a SKILL.md, or asks how skills work.
documentation
Best practices for creating a SKILL.md file. Covers file structure, frontmatter, writing style, and where to place skills in a repository. Use when the user wants to create a new skill, update an existing skill, write a SKILL.md, or asks how skills work.
tools
Centralized state management pattern using Zustand vanilla stores. One immutable state atom, functional transitions via setState(), and a single subscribe() for all reactive side effects. Based on Rich Hickey's "Simple Made Easy" principles: prefer values over mutable state, derive instead of cache, centralize transitions, and push side effects to the edges. Resource co-location in the same store is also valid when lifecycle management is safer that way. Also covers state encapsulation: keeping state local to its owner (closures, plugins, factory functions) so it doesn't leak across the app, reducing the blast radius of mutations. Also covers event sourcing: keeping a bounded event buffer and deriving state with pure functions instead of mutable flags, making event handlers easy to test and reason about. Use this skill when building any stateful TypeScript application (servers, extensions, CLIs, relays) to keep state simple, testable, and easy to reason about. ALWAYS read this skill when a project uses zustand/vanilla for state management outside of React.