MCP HubMCP Hub
SKILL·C61DFB

crit-cli

tomasz-tomczyk
Actualizado 28 days ago
5 vistas
990
74
990
Ver en GitHub
Documentaciónautomation

Acerca de

La habilidad crit-cli permite la creación y gestión programática de comentarios de revisión de código mediante comandos CLI, soportando flujos de trabajo multiagente en artefactos compartidos. Permite publicar/retirar revisiones, sincronizar con PRs de GitHub y trabajar con el formato de archivo JSON de revisión crit. Úsela para operaciones de revisión automatizadas, no para sesiones de revisión interactivas que son manejadas por el flujo de trabajo `/crit.md`.

Instalación rápida

Claude Code

Recomendado
Principal
npx skills add tomasz-tomczyk/crit -a claude-code
Comando PluginAlternativo
/plugin add https://github.com/tomasz-tomczyk/crit
Git CloneAlternativo
git clone https://github.com/tomasz-tomczyk/crit.git ~/.claude/skills/crit-cli

Copia y pega este comando en Claude Code para instalar esta habilidad

Documentación

Crit CLI Reference

If a plan was just written and the user said /crit.md or crit, invoke the /crit.md workflow — do not use this reference skill. 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.

Review file format

{
  "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": "Cline" }
      ]
    }
  ],
  "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": [
            { "id": "rp_c7d8e9", "body": "Fixed by extracting to helper", "author": "Cline" }
          ]
        }
      ]
    }
  }
}

Field rules:

  • resolved: false or missing — both mean unresolved. Only true means resolved.
  • quote (optional): the specific text the reviewer selected — narrows scope within the line range. Focus changes on the quoted text rather than the entire range.
  • anchor (line comments): full text of the commented lines when placed. When edits shift line numbers, locate content by anchor rather than trusting start_line/end_line.
  • drifted: true: original content was removed or heavily rewritten — line numbers are approximate at best.
  • Unresolved comments may have replies — read them before acting.

Authoring comments

# Review-level (general feedback)
crit comment --author 'Cline' '<body>'

# File-level (whole file, no line numbers)
crit comment --author 'Cline' <path> '<body>'

# Line (single line or range)
crit comment --author 'Cline' <path>:<line> '<body>'
crit comment --author 'Cline' <path>:<start>-<end> '<body>'

# Reply to an existing comment
crit comment --reply-to <id> --author 'Cline' '<body>'

Hard rules:

  • Always pass --author 'Cline' so comments are attributed correctly.
  • Always single-quote the body — double quotes break on backticks and shell metachars.
  • Line numbers reference the file on disk (1-indexed), not diff line numbers.
  • Reply bodies support markdown — use code fences and inline code where helpful.
  • Only pass --resolve when the user explicitly asks. Never resolve proactively. Same rule applies to the resolve field in --json mode.

Bulk commenting (3+ comments)

Use --json for atomicity (single write, no partial state) and speed (one process). The JSON can come from stdin or --file <path>:

# stdin — fine for short, single-line bodies:
echo '[
  {"body": "overall feedback", "scope": "review"},
  {"path": "session.go", "body": "restructure", "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"},
  {"reply_to": "r_f1e2d3", "body": "Done"}
]' | crit comment --json --author 'Cline'

For multi-paragraph bodies, prefer --file. A literal newline inside a "body" string breaks JSON parsing, and shell-quoted heredocs make this easy to introduce by accident. Write the JSON to a temp file (use your file-edit tool), then:

crit comment --json --file /tmp/crit-bulk.json --author 'Cline'

--file - is an explicit "read stdin" if you ever need it.

Per-entry schema:

FieldTypeRequiredNotes
file / pathstringline/file commentsRelative path. path alone (no line) → file-level.
lineint/stringline comments42 or "45-47"
end_lineintoptionalDefaults to line
bodystringalways
authorstringoptionalPer-entry override; falls back to --author
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.

Multi-file disambiguation

Comment IDs are unique per session, but the same ID can collide across files. If crit comment errors with "comment found in multiple files", disambiguate with --path:

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

In --json mode, set the file field on the entry. Review-level IDs (r_…) are globally unique and never need this.

Plan-mode comments

Plan reviews (via crit plan or the ExitPlanMode hook) store the review file in ~/.crit/plans/<slug>/. Always pass --plan <slug> — without it, crit comment looks in the project root and won't find the comments. The slug is shown in the review feedback prompt.

crit comment --plan my-plan-2026-03-23 --reply-to c_a1b2c3 --author 'Cline' 'Updated the plan'

GitHub PR Integration

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 gh CLI installed and authenticated. PR number is auto-detected from the current branch.

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

Sharing

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
  • Always relay the output — copy the URL (and QR if used) into your response. Don't make the user dig through tool output.
  • --qr is terminal-only — skip in mobile apps, web chat UIs, or anywhere Unicode block characters won't render correctly.
  • --org <slug> shares under an organization. Visibility defaults to organization (members only). Override with --visibility (organization, unlisted, public).
  • If a review file exists, comments for the shared files are included automatically.
  • Unpublish uses the persisted delete token in the review file — no extra args needed.

Repositorio GitHub

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

Preguntas frecuentes

¿Qué es el Skill crit-cli?

crit-cli es un Skill de Claude creado por tomasz-tomczyk. Los Skills agrupan instrucciones y recursos que Claude carga cuando los necesita para realizar tareas relacionadas con crit-cli sin indicaciones adicionales.

¿Cómo instalo crit-cli?

Usa los comandos de instalación de esta página: añade crit-cli a Claude Code como plugin o clona su repositorio en tu directorio de skills y reinicia Claude para cargarlo.

¿A qué categoría pertenece crit-cli?

crit-cli pertenece a la categoría Documentación.

¿Se puede usar crit-cli gratis?

Sí. crit-cli aparece en AIMCP y se puede instalar gratis.

Habilidades relacionadas

railway-docs
Documentación

Esta habilidad obtiene la documentación actual de Railway para responder preguntas sobre características, funcionalidad o URLs específicas de documentación. Garantiza que los desarrolladores reciban información precisa y actualizada directamente de las fuentes oficiales de Railway. Úsala cuando los usuarios pregunten cómo funciona Railway o hagan referencia a la documentación de Railway.

Ver habilidad
n8n-code-python
Documentación

Esta Skill de Claude proporciona orientación experta para escribir código Python en los nodos Code de n8n, específicamente para usar la biblioteca estándar de Python y trabajar con la sintaxis especial de n8n como `_input`, `_json` y `_node`. Ayuda a los desarrolladores a comprender las limitaciones de Python dentro de n8n y recomienda usar JavaScript para la mayoría de los flujos de trabajo, mientras ofrece soluciones en Python para necesidades específicas de transformación de datos.

Ver habilidad
archon
Documentación

La habilidad Archon proporciona búsqueda semántica con tecnología RAG y gestión de proyectos a través de una API REST. Úsala para consultar documentación, gestionar proyectos/tareas jerárquicos y realizar recuperación de conocimiento con capacidades de carga de documentos. Prioriza siempre a Archon en primer lugar al buscar en documentación externa antes de utilizar otras fuentes.

Ver habilidad
n8n-code-javascript
Documentación

Esta habilidad de Claude proporciona orientación experta para escribir código JavaScript en los nodos de Código de n8n. Cubre sintaxis esencial específica de n8n como las variables `$input`/`$json`, ayudantes HTTP y manejo de DateTime, mientras soluciona errores comunes. Úsela al desarrollar flujos de trabajo en n8n que requieran procesamiento personalizado de JavaScript en los nodos de Código.

Ver habilidad