MCP HubMCP Hub
SKILL·ADEDF9

crit-cli

tomasz-tomczyk
更新日 27 days ago
5 閲覧
979
74
979
GitHubで表示
メタautomation

について

crit-cliスキルは、コードレビューコメントとワークフローのプログラムによる作成・管理を可能にし、GitHub PRとの同期やレビューJSONファイルの処理を含みます。このスキルは、対話型ループなしでcritレビューを操作する必要があるマルチエージェントシステムや自動化プロセス向けに設計されています。主な操作には、レビューの公開/非公開、GitHubへのプッシュ/プル、およびインラインコメントのプログラムによる作成が含まれます。

クイックインストール

Claude Code

推奨
メイン
npx skills add tomasz-tomczyk/crit -a claude-code
プラグインコマンド代替
/plugin add https://github.com/tomasz-tomczyk/crit
Git クローン代替
git clone https://github.com/tomasz-tomczyk/crit.git ~/.claude/skills/crit-cli

このコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします

ドキュメント

Crit CLI Reference

If a plan was just written and the user said "crit" or "review", use the $crit skill instead — it covers the full review loop. This skill covers CLI operations like crit comment, crit pull/push, and crit share.

Comments have three scopes:

  • Line comments (scope: "line") — tied to specific lines, stored in files.<path>.comments
  • File comments (scope: "file") — about a file overall, stored in files.<path>.comments with start_line: 0
  • Review comments (scope: "review") — general feedback, stored in the top-level review_comments array

The review file path is shown by crit status.

Reading comments

When crit completes a review round, read stdout and follow its instructions. Unresolved comments are often embedded in that prompt as JSON. Check stderr for approved: true or approved: false.

When you need to read comments separately:

crit comments            # human-readable, unresolved only (default)
crit comments --json     # flat JSON for agents
crit comments --all      # include resolved comments
crit comments --plan <slug>   # plan reviews
crit comments [path]     # explicit review.json or .crit directory

Review-level comments are listed first — easy to miss in raw review.json. Uses the same review resolution as crit comment (--output, --plan, daemon session).

Multiple active sessions

When more than one review session matches the current directory and branch, crit comment refuses to guess. Run crit status (or crit status --json) to list every active session, then target the intended review explicitly:

crit comment --session <id> --author <name> <path>:<line> <body>
crit comment --session <id> --json --file comments.json --author <name>

The JSON status output exposes the candidates in sessions.

Use read_file on the path printed by crit. Example structure:

{
  "review_comments": [
    {
      "id": "r_f1e2d3",
      "body": "Overall the architecture looks good",
      "scope": "review",
      "author": "User Name",
      "resolved": false,
      "replies": [
        { "id": "rp_b4a5c6", "body": "Thanks, addressed the minor issues", "author": "Grok" }
      ]
    }
  ],
  "files": {
    "path/to/file.go": {
      "comments": [
        {
          "id": "c_a1b2c3",
          "start_line": 5,
          "end_line": 10,
          "body": "Comment text",
          "quote": "the specific words selected",
          "anchor": "The sessions table needs a complete rewrite...",
          "author": "User Name",
          "resolved": false,
          "replies": [ ... ]
        }
      ]
    }
  }
}

Field rules:

  • resolved: false or missing both mean unresolved. Only true means resolved.
  • quote (optional): the exact text the reviewer highlighted.
  • anchor (line comments): the full text of the commented lines at the time the comment was placed. Use the anchor to locate content after edits.
  • drifted: true: content was removed or heavily rewritten — treat line numbers as approximate.
  • Unresolved comments may have replies — read them before acting.
<important if="you are authoring or replying to comments via crit comment">

Use run_terminal_cmd with the following patterns. Always pass --author 'Grok'.

# Review-level (general feedback)
crit comment --author 'Grok' 'Overall feedback here'

# File-level (whole file, no line numbers)
crit comment --author 'Grok' path/to/file.md 'The whole file needs X'

# Line (single line or range)
crit comment --author 'Grok' path/to/file.go:42 'Missing null check'
crit comment --author 'Grok' path/to/file.go:50-55 'Extract to helper'

# Reply to an existing comment
crit comment --reply-to <id> --author 'Grok' 'Fixed — added the helper and tests'

Hard rules:

  • Always pass --author 'Grok'.
  • Always single-quote the body in the shell command (double quotes break on backticks, $, etc.).
  • Line numbers are 1-indexed file lines on disk (not diff lines).
  • Reply bodies support full markdown.
  • Only pass --resolve when the user explicitly asks you to. </important>
<important if="you are leaving 3+ comments in one operation">

Use --json for atomicity and speed. Two ways to feed JSON:

# Short bodies — pipe via stdin
echo '[
  {"body": "overall feedback", "scope": "review"},
  {"path": "session.go", "body": "restructure the round logic", "scope": "file"},
  {"file": "src/auth.go", "line": 42, "body": "Missing null check"},
  {"file": "src/auth.go", "line": "50-55", "body": "Extract to helper"},
  {"reply_to": "c_a1b2c3", "body": "Fixed — added null check"}
]' | crit comment --json --author 'Grok'

Prefer --file <path> for any multi-paragraph body (shell quoting of newlines in JSON is fragile). Write the JSON with write, then point crit at it:

crit comment --json --file /tmp/replies.json --author 'Grok'

--file - reads stdin (same as omitting the flag).

Per-entry schema:

FieldTypeRequiredNotes
file / pathstringline/file commentsRelative path. path alone → file-level.
lineint/stringline comments42 or "45-47"
end_lineintoptionalDefaults to line
bodystringalways
authorstringoptionalPer-entry override
scopestringoptional"review" / "file" — usually inferred
reply_tostringrepliesComment ID (c_… or r_…)
resolvebooloptionalOnly when user explicitly asks

Scope inference (when scope omitted): has reply_to → reply; no file/path and no line → review-level; path but no line → file-level; file/path + line → line. </important>

<important if="crit comment errored with 'comment found in multiple files'">

Comment IDs are unique per session, but the same ID can appear in multiple files. Disambiguate with --path:

crit comment --reply-to c_a1b2c3 --path src/auth.go --author 'Grok' 'Fixed the null check'

In --json mode, set the file field on the entry. Review-level IDs (r_…) are globally unique. </important>

<important if="you are responding to plan-mode comments (review file under ~/.crit/plans/)">

Plan reviews (via crit plan or the exit_plan_mode hook) store the review file in ~/.crit/plans/<slug>/. Always pass --plan <slug> — without it crit comment looks in the project root and will not find the comments. The slug is shown in the review feedback prompt and in the output of crit plan-hook.

crit comment --plan my-plan-2026-05-14 --reply-to c_a1b2c3 --author 'Grok' 'Updated the plan'

When you are in a Grok plan-mode session, the plan file itself lives at ~/.grok/sessions/<cwd>/<session-id>/plan.md. The --plan <slug> flag tells crit comment which Crit-managed review file to write to. </important>

<important if="you are syncing with a GitHub PR (pull or push)">
crit pull [pr-number]                                    # Fetch PR review comments into the review file
crit push [--dry-run] [--event <type>] [-m <msg>] [pr]   # Post review comments as a GitHub PR review

Requires the gh CLI installed and authenticated. PR number is auto-detected from the current branch (or you can pass it explicitly).

--event values: comment (default), approve, request-changes. -m adds a review-level body message. </important>

<important if="the user asked to share, get a URL, get a QR code, or unpublish a review">
crit share <file> [file...]                          # Upload and print URL
crit share --qr <file>                               # Also print QR code (terminal only)
crit share --org <slug> <file>                       # Share under an organization
crit share --org <slug> --visibility unlisted <file> # Org share with explicit visibility
crit unpublish [file...]                              # Remove shared review
  • No server needed — reads files directly from disk. If a review file exists, comments for the shared files are included automatically.
  • Always relay the output — copy the URL (and QR if used) into your response.
  • --qr is terminal-only — skip in web/chat UIs where block characters won't render.
  • --org <slug> shares under an organization. Visibility defaults to organization (members only). Override with --visibility (organization, unlisted, public).
  • Unpublish uses the persisted delete token in the review file — no extra args needed. </important>

Review file location quick reference

  • Normal git/files mode: ~/.crit/reviews/<key>.json
  • Plan mode (via crit plan or hook): ~/.crit/plans/<slug>/review.json (the current.md symlink points at the latest plan version)
  • The exact path is always printed by the crit command and by crit status --json.

Use read_file on the printed path, then act on the review_comments and per-file comments arrays as described above.

This reference skill is automatically available whenever the agent needs to manipulate Crit comments or reviews programmatically. Pair it with the main crit skill when the user wants the interactive browser review experience.

GitHub リポジトリ

tomasz-tomczyk/crit
パス: integrations/grok/skills/crit-cli
0
agentic-codingai-agentsai-toolsclicode-reviewdeveloper-tools
FAQ

よくある質問

crit-cli Skillとは何ですか?

crit-cli はtomasz-tomczyk が作成した Claude Skillです。Skillは、Claudeが必要に応じて読み込む指示とリソースをまとめ、追加の指示なしで crit-cli に関連するタスクを実行できるようにします。

crit-cli をインストールするには?

このページのインストールコマンドを使用してください。crit-cli をプラグインとして Claude Code に追加するか、リポジトリを skills ディレクトリにクローンし、Claudeを再起動してSkillを読み込みます。

crit-cli はどのカテゴリに属しますか?

crit-cli は メタ カテゴリに属します。

crit-cli は無料で利用できますか?

はい。crit-cli は AIMCP に掲載されており、無料でインストールできます。

関連スキル

content-collections
メタ

このスキルは、Content Collections(Markdown/MDXファイルを型安全なデータコレクションに変換するTypeScriptファーストのツール)の本番環境でテストされた設定を提供します。Zodバリデーションによる型安全性を実現し、ブログ、ドキュメントサイト、コンテンツ重視のVite + Reactアプリケーション構築時にご利用ください。Viteプラグインの設定、MDXコンパイルから、デプロイ最適化、スキーマバリデーションまで、すべてを網羅しています。

スキルを見る
polymarket
メタ

このスキルは、開発者がPolymarket予測市場プラットフォームを活用したアプリケーション構築を可能にします。API統合による取引や市場データの取得に加え、WebSocketを介したリアルタイムデータストリーミングにより、ライブ取引や市場活動を監視できます。取引戦略の実装や、ライブ市場更新を処理するツールの作成にご利用ください。

スキルを見る
creating-opencode-plugins
メタ

このスキルは、開発者がコマンド、ファイル、LSP操作など25種類以上のイベントタイプにフックするOpenCodeプラグインを作成することを支援します。JavaScript/TypeScriptモジュール向けに、プラグイン構造、イベントAPI仕様、および実装パターンを提供します。カスタムイベント駆動ロジックでOpenCode AIアシスタントのライフサイクルをインターセプト、監視、または拡張する必要がある場合にご利用ください。

スキルを見る
sglang
メタ

SGLangは、高性能なLLMサービングフレームワークであり、RadixAttentionプレフィックスキャッシュを活用したJSON、正規表現、エージェントワークフロー向けの高速で構造化された生成を特長とします。特にプレフィックスが繰り返されるタスクにおいて、大幅に高速な推論を実現し、複雑な構造化出力やマルチターン対話に最適です。制約付きデコードが必要な場合や、広範なプレフィックス共有を伴うアプリケーションを構築する場合は、vLLMなどの代替案ではなくSGLangを選択してください。

スキルを見る