SKILL·6F131D

crit-cli

tomasz-tomczyk
Updated Today
1,196
97
1,196
View on GitHub
Metaautomation

About

The crit-cli skill enables programmatic creation and management of inline code review comments for multi-agent workflows. It allows publishing/unpublishing reviews, syncing with GitHub PRs/GitLab MRs, and reading crit review JSON files. Use this for headless operations rather than interactive review sessions.

Quick Install

Claude Code

Recommended
Primary
npx skills add tomasz-tomczyk/crit -a claude-code
Plugin CommandAlternative
/plugin add https://github.com/tomasz-tomczyk/crit
Git CloneAlternative
git clone https://github.com/tomasz-tomczyk/crit.git ~/.claude/skills/crit-cli

Copy and paste this command in Claude Code to install this skill

Documentation

Crit CLI reference

Use this skill for headless operations, not to start an interactive review. Comments have three scopes: line and file comments live under files.<path>.comments; review comments live in review_comments. The review file path is shown by crit status.

Read comments and select a session

crit comments
crit comments --json
crit comments --all
crit comments --plan <slug>
crit comments [path]
crit status --json

Default comment output includes unresolved review-level and file comments. Missing resolved means unresolved; only true means resolved. Read replies before acting. quote narrows the requested change, anchor locates content after edits, and drifted: true means line numbers may be approximate.

When multiple sessions match, headless commands refuse to guess. Use the sessions from crit status --json to select --session <id> for comment, comments, share, pull, or push.

Review JSON

{
  "review_comments": [
    {
      "id": "r_a1b2c3",
      "scope": "review",
      "body": "Overall feedback",
      "resolved": false,
      "replies": []
    }
  ],
  "files": {
    "src/example.go": {
      "comments": [
        {
          "id": "c_d4e5f6",
          "scope": "line",
          "start_line": 5,
          "end_line": 10,
          "body": "Inline feedback",
          "quote": "selected text",
          "anchor": "Original source lines",
          "author": "Reviewer",
          "resolved": false,
          "replies": [
            {"id": "rp_a1b2c3", "body": "Updated", "author": "OMO"}
          ]
        }
      ]
    }
  }
}

File comments use scope: "file" and start_line: 0.

Author and reply

crit comment --author 'OMO' '<review-level body>'
crit comment --author 'OMO' <path> '<file-level body>'
crit comment --author 'OMO' <path>:<line> '<body>'
crit comment --author 'OMO' <path>:<start>-<end> '<body>'
crit comment --reply-to <id> --author 'OMO' '<what changed>'

Always pass --author 'OMO'. Single-quote bodies to protect backticks and shell metacharacters. Source lines are 1-indexed file-on-disk lines, not diff line numbers. Reply bodies support markdown.

Only use --resolve when the user explicitly asks. The same restriction applies to the resolve field in JSON.

Plan-mode reviews live under ~/.crit/plans/<slug>/. Always use --plan <slug> when replying; the slug is in the feedback prompt.

crit comment --plan <slug> --reply-to <id> --author 'OMO' '<what changed>'

If an ID occurs in multiple files, disambiguate with --path <path> or the file field in a bulk entry.

Bulk comments and replies

For three or more comments, write a JSON array using the file-edit tool:

[
  {"scope": "review", "body": "Overall feedback"},
  {"path": "src/example.go", "scope": "file", "body": "File feedback"},
  {"file": "src/example.go", "line": "5-10", "body": "Inline feedback"},
  {"reply_to": "c_d4e5f6", "body": "Updated"}
]
crit comment --json --file /tmp/crit-comments.json --author 'OMO'

Bulk writes are atomic. --file - reads stdin. Each entry requires body. line accepts an integer or range string; end_line is optional. file and path are aliases. Per-entry author overrides --author. Optional quote and quote_offset describe a selected substring.

Scope is inferred: reply_to means reply; no file/path or line means review; path without a line means file; file/path plus line means line.

Forge sync

crit pull [number-or-url]
crit push --dry-run [number-or-url]
crit push --event comment [-m '<body>'] [number-or-url]
crit push --event approve [number-or-url]
crit push --event request-changes [number-or-url]
crit pull --forge gitlab <iid>

Use authenticated gh for GitHub or glab for GitLab. The current branch can supply the PR/MR number. Only post reviews when the user asks.

Sharing

crit share <file> [file...]
crit share --share-url <url> <file>
crit share --org <slug> --visibility unlisted <file>
crit unpublish [file...]

Only share or unpublish when requested. Relay the complete printed URL. Use --qr only in real monospace terminals. Organization visibility defaults to organization; other values are unlisted and public. --share-url chooses the deployment; it is required if multiple configured targets have no default. Unpublish uses the persisted delete token.

GitHub Repository

tomasz-tomczyk/crit
Path: integrations/omo/skills/crit-cli
0
agentic-codingai-agentsai-toolsclicode-reviewdeveloper-tools
FAQ

Frequently asked questions

What is the crit-cli skill?

crit-cli is a Claude Skill by tomasz-tomczyk. Skills package instructions and resources that Claude loads on demand, so Claude can perform crit-cli-related tasks without extra prompting.

How do I install crit-cli?

Use the install commands on this page: add crit-cli 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-cli belong to?

crit-cli is in the Meta category.

Is crit-cli free to use?

Yes. crit-cli is listed on AIMCP and free to install.

Related Skills

content-collections
Meta

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.

View skill
polymarket
Meta

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.

View skill
creating-opencode-plugins
Meta

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.

View skill
sglang
Meta

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.

View skill