Comet Manual Code Review
Perform one on-demand, read-only code review of the currently selected Comet change. This entry is not a workflow phase and does not replace Build or Verify checks and reviews.
This entry is independent of review_mode. That field controls automatic reviews within the workflow; /comet-review is a single review explicitly requested by the user. Do not read, modify, or override the current change's review_mode during this invocation.
Perform read-only operations
The entire Skill invocation must remain read-only:
- Do not modify, create, or delete files.
- Do not stage, commit, switch branches, create branches, or create worktrees.
- Do not run
comet state select, comet native select, comet state set, comet state transition, phase guards, comet native next, or archive commands.
- Do not fix findings, advance phase, or update tasks, state, verification reports, or review records.
- Do not call this review a Verify pass or treat “no findings” as proof that tests passed.
Only run commands needed to read files, query state, and inspect Git diffs. Checks that might execute project code, install dependencies, or produce files are outside this entry's scope.
1. Locate the project and current change
Use read-only Git queries to find the project root. Outside a Git repository, use the current Comet project root.
Run at the project root:
comet status . --json
Read .comet/current-change.json and choose the review target in this order:
- If the file contains a valid
comet.selection.v2, use its workflow and change.
- If selection is absent and status lists exactly one unarchived Comet change, use that change for this review only; do not write selection.
- If selection is absent and several changes exist, list their names, workflows, and phases, ask the user to choose one, and end this invocation.
- If selection points to a missing, archived, or invalid change, report the stale/invalid selection and stop without repairing it.
Ignore ordinary OpenSpec changes that Comet does not manage. Do not replace the selected workflow with the default workflow merely because they differ.
2. Gather review context
Read only the context needed for this change. Keep a source path or command for each fact.
Classic
Read and follow comet-classic/reference/classic-layout.md to resolve the project's Classic logical roots.
Read the current change's proposal.md, design.md, tasks.md, and specs/*/spec.md. Also read any linked Design Doc.
Use these read-only queries for the phase, baseline, and existing evidence references:
comet state get <change-name> phase
comet state get <change-name> base_ref
comet state get <change-name> plan
comet state get <change-name> verification_report
Read the existing plan, verification report, and build/verify command checks returned by comet status . --json. Mark missing evidence as “not provided”; do not infer failure or success.
Native
Run these read-only commands:
comet native show <change-name> --json
comet native status <change-name> --details --json
Follow the returned references to read the brief, complete proposed Specs, acceptance, Builder handoff, checks, verification, risks, blockers, and verification report. Use evidence for the current candidate/iteration only. Historical iterations may explain remaining risks but must not override current state.
3. Establish the implementation diff
- Run
git status --short --untracked-files=all to list all staged, unstaged, and untracked files in the worktree.
- Use the current change's requirements, workspace binding, Git history, and worktree state to establish the most reliable relevant scope. For Classic, prefer a valid plan
base-ref; if it is absent or invalid, fall back to the state base_ref. The two values do not need to match. Only when both values are invalid is the Classic baseline missing. For Native, use the workspace relationships in state and the evidence defining the current candidate's implementation scope.
- Inspect the complete diff from the reliable baseline to the current worktree, including committed, staged, and unstaged changes. Read all untracked files belonging to this change, including source, tests, documentation, configuration, and metadata such as
SKILL.md and agents/openai.yaml. Clearly identify them as untracked.
- Exclude changes clearly belonging to other changes or unrelated user work. Ask the user only when ambiguity would materially affect the review conclusions. Otherwise, continue with the available evidence and state your scope assumptions in the report.
If the available evidence still cannot establish a reliable, verifiable baseline, review the visible worktree diff and prominently label the review scope as incomplete.
4. Perform the review
Review the requirements, tasks, and current diff, focusing only on:
- Implementation correctness and clear logic errors.
- Security, permission, and path-boundary risks.
- Error handling, compatibility, and important edge cases.
- Missing tasks or implementation that contradicts explicit requirements for this change.
- Whether tests cover the changed behavior and whether the available test evidence supports the conclusions.
Do not report style preferences, unrelated refactoring, or speculation without a concrete impact. Each finding must identify a file and line number and explain the input or situation that triggers the error or risk. Lower its severity or place it under “Open questions” when evidence is insufficient.
Use only these severity levels:
CRITICAL: security compromise, data loss, or an unusable core workflow.
IMPORTANT: a clear correctness error, missing core acceptance requirement, or likely regression.
WARNING: a real, non-blocking edge-case risk or test gap.
SUGGESTION: a concrete improvement that does not affect current correctness.
5. Report the results
List findings first, ordered by severity. Use this format:
[IMPORTANT] Short title — path/to/file.ts:123
Impact: The input or situation and the resulting error.
Evidence: The specific relationship to the diff, task, spec, or verification record.
Then include:
Review scope: workflow, change, phase, baseline, included diffs, and any scope limitations.
Evidence status: the test, build, and verification records inspected and whether they still apply to the current changes. Do not rerun tests.
Open questions: only questions that actually prevent a judgment.
Conclusion: the finding count, or an explicit “No concrete findings.”
Even with no findings, state remaining risks and checks not performed. End with this reminder:
This was a read-only manual review. It does not advance the Comet phase and cannot replace /comet-verify or Native Verify.
If the user subsequently requests fixes, treat that as a new write task: leave this Skill and resume development under the repository's current workflow rules.
1---2name: comet-review3description: Manually review the implementation diff for the current Comet change. Report correctness, security, and edge-case issues without advancing the workflow.4---56# Comet Manual Code Review78Perform one on-demand, read-only code review of the currently selected Comet change. This entry is not a workflow phase and does not replace Build or Verify checks and reviews.910This entry is independent of `review_mode`. That field controls automatic reviews within the workflow; `/comet-review` is a single review explicitly requested by the user. Do not read, modify, or override the current change's `review_mode` during this invocation.1112## Perform read-only operations1314The entire Skill invocation must remain read-only:1516- Do not modify, create, or delete files.17- Do not stage, commit, switch branches, create branches, or create worktrees.18- Do not run `comet state select`, `comet native select`, `comet state set`, `comet state transition`, phase guards, `comet native next`, or archive commands.19- Do not fix findings, advance phase, or update tasks, state, verification reports, or review records.20- Do not call this review a Verify pass or treat “no findings” as proof that tests passed.2122Only run commands needed to read files, query state, and inspect Git diffs. Checks that might execute project code, install dependencies, or produce files are outside this entry's scope.2324## 1. Locate the project and current change25261. Use read-only Git queries to find the project root. Outside a Git repository, use the current Comet project root.272. Run at the project root:2829 ```bash30 comet status . --json31 ```32333. Read `.comet/current-change.json` and choose the review target in this order:34 - If the file contains a valid `comet.selection.v2`, use its `workflow` and `change`.35 - If selection is absent and status lists exactly one unarchived Comet change, use that change for this review only; do not write selection.36 - If selection is absent and several changes exist, list their names, workflows, and phases, ask the user to choose one, and end this invocation.37 - If selection points to a missing, archived, or invalid change, report the stale/invalid selection and stop without repairing it.3839Ignore ordinary OpenSpec changes that Comet does not manage. Do not replace the selected workflow with the default workflow merely because they differ.4041## 2. Gather review context4243Read only the context needed for this change. Keep a source path or command for each fact.4445### Classic46471. Read and follow `comet-classic/reference/classic-layout.md` to resolve the project's Classic logical roots.482. Read the current change's `proposal.md`, `design.md`, `tasks.md`, and `specs/*/spec.md`. Also read any linked Design Doc.493. Use these read-only queries for the phase, baseline, and existing evidence references:5051 ```bash52 comet state get <change-name> phase53 comet state get <change-name> base_ref54 comet state get <change-name> plan55 comet state get <change-name> verification_report56 ```57584. Read the existing plan, verification report, and build/verify command checks returned by `comet status . --json`. Mark missing evidence as “not provided”; do not infer failure or success.5960### Native6162Run these read-only commands:6364```bash65comet native show <change-name> --json66comet native status <change-name> --details --json67```6869Follow the returned references to read the brief, complete proposed Specs, acceptance, Builder handoff, checks, verification, risks, blockers, and verification report. Use evidence for the current candidate/iteration only. Historical iterations may explain remaining risks but must not override current state.7071## 3. Establish the implementation diff72731. Run `git status --short --untracked-files=all` to list all staged, unstaged, and untracked files in the worktree.742. Use the current change's requirements, workspace binding, Git history, and worktree state to establish the most reliable relevant scope. For Classic, prefer a valid plan `base-ref`; if it is absent or invalid, fall back to the state `base_ref`. The two values do not need to match. Only when both values are invalid is the Classic baseline missing. For Native, use the workspace relationships in state and the evidence defining the current candidate's implementation scope.753. Inspect the complete diff from the reliable baseline to the current worktree, including committed, staged, and unstaged changes. Read all untracked files belonging to this change, including source, tests, documentation, configuration, and metadata such as `SKILL.md` and `agents/openai.yaml`. Clearly identify them as untracked.764. Exclude changes clearly belonging to other changes or unrelated user work. Ask the user only when ambiguity would materially affect the review conclusions. Otherwise, continue with the available evidence and state your scope assumptions in the report.7778If the available evidence still cannot establish a reliable, verifiable baseline, review the visible worktree diff and prominently label the review scope as incomplete.7980## 4. Perform the review8182Review the requirements, tasks, and current diff, focusing only on:8384- Implementation correctness and clear logic errors.85- Security, permission, and path-boundary risks.86- Error handling, compatibility, and important edge cases.87- Missing tasks or implementation that contradicts explicit requirements for this change.88- Whether tests cover the changed behavior and whether the available test evidence supports the conclusions.8990Do not report style preferences, unrelated refactoring, or speculation without a concrete impact. Each finding must identify a file and line number and explain the input or situation that triggers the error or risk. Lower its severity or place it under “Open questions” when evidence is insufficient.9192Use only these severity levels:9394- `CRITICAL`: security compromise, data loss, or an unusable core workflow.95- `IMPORTANT`: a clear correctness error, missing core acceptance requirement, or likely regression.96- `WARNING`: a real, non-blocking edge-case risk or test gap.97- `SUGGESTION`: a concrete improvement that does not affect current correctness.9899## 5. Report the results100101List findings first, ordered by severity. Use this format:102103```text104[IMPORTANT] Short title — path/to/file.ts:123105Impact: The input or situation and the resulting error.106Evidence: The specific relationship to the diff, task, spec, or verification record.107```108109Then include:110111- `Review scope`: workflow, change, phase, baseline, included diffs, and any scope limitations.112- `Evidence status`: the test, build, and verification records inspected and whether they still apply to the current changes. Do not rerun tests.113- `Open questions`: only questions that actually prevent a judgment.114- `Conclusion`: the finding count, or an explicit “No concrete findings.”115116Even with no findings, state remaining risks and checks not performed. End with this reminder:117118> This was a read-only manual review. It does not advance the Comet phase and cannot replace `/comet-verify` or Native Verify.119120If the user subsequently requests fixes, treat that as a new write task: leave this Skill and resume development under the repository's current workflow rules.