Skip to main content

code-review

Use when the user says review this, check my changes, look at this PR or diff, or before merging. Reviews a concrete change across correctness, security, performance, and test coverage, then adversarially verifies each finding before reporting it. Part of codex-goat.

Informations de source

Dépôt
hypnguyen1209/codex-goat
Dernière activité de la source
15 septembre 2026 à 08:14
Langue détectée de SKILL.md
anglais
Étoiles
1
Forks
0

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
code-review
description
Use when the user says review this, check my changes, look at this PR or diff, or before merging. Reviews a concrete change across correctness, security, performance, and test coverage, then adversarially verifies each finding before reporting it. Part of codex-goat.
# $code-review Find defects in a change and report only the ones that survive an attempt to refute them. ## Entry contract `$code-review` is independently invocable. It needs a change, never a plan. | Requirement | How it can be satisfied | | --- | --- | | `changed-scope` | Uncommitted changes in the working tree, **or** a commit range, branch, or explicit file list given inline | ```sh goat contract code-review ``` If nothing is uncommitted and no scope was given, ask which scope to review. Do not default to reviewing the entire repository — a review with no boundary produces a list nobody reads. ## Method ### 1. Fix the scope ```sh git status --porcelain git diff --stat # uncommitted git diff --stat main...HEAD # branch scope goat state set --stage code-review --status active --summary "<scope>" ``` State the scope in the report. Every finding must sit inside it. ### 2. Read the change with intent Read the full diff plus enough surrounding context to judge it. A hunk read in isolation produces confident nonsense. ### 3. Review each dimension Run all five. Skipping one silently is worse than reporting it as not applicable. | Dimension | Looking for | | --- | --- | | **Correctness** | Wrong logic, unhandled cases, off-by-one, null/undefined, race conditions, error paths that swallow failures, resource leaks | | **Security** | Injection, path traversal, unvalidated input crossing a trust boundary, secrets in code or logs, authz gaps, unsafe deserialization | | **Performance** | N+1 queries, work inside loops that belongs outside, unbounded growth, blocking I/O on a hot path, missing pagination | | **Test coverage** | New behavior with no test, changed behavior with unchanged tests, tests asserting mocks instead of behavior, deleted assertions | | **Omission** | What the diff implies but does not contain: a mirrored implementation left unsynced (a second runtime, a generated copy), a doc row or changelog entry that now lies, a sibling script whose regex no longer matches, a caller of a changed signature. Refuting a finding catches false positives; this row is the only one that hunts false negatives | ### 4. Refute every finding before reporting it For each candidate, argue **against** it before you write it down: - Is this reachable in real usage, with real inputs? - Is it already handled by a caller, a type, or a framework guarantee? - Can I write the concrete failing input? Drop anything you cannot give a concrete failure scenario for. A review of six real defects beats a review of thirty maybes, and the thirty-item list trains people to ignore reviews. ### 5. Report Save to `.goat/reviews/<slug>.md`, ordered most severe first: ```markdown ## <severity>: <one-line claim> - Where: `path/to/file.ts:123` - Failure: <concrete inputs or state -> wrong output, crash, or exposure> - Why real: <why the obvious defense does not cover it> - Fix: <smallest correct change> ``` Severities: **critical** (data loss, security, corruption) · **high** (wrong behavior on a real path) · **medium** (wrong behavior on an edge path) · **low** (maintainability). Then close: ```sh goat state set --stage code-review --status complete --artifact .goat/reviews/<slug>.md \ --summary "<n> findings across <scope>" ``` The report file **is** the proof for this stage — `goat status` opens the path you recorded, and a path that is not on disk reports `complete*`. You also ran the project's linter (see [Out of scope](#out-of-scope)), so record that too; a command is stronger proof than a document: ```sh goat ledger evidence --stage code-review --exit <code> -- <the linter you ran> ``` ### 6. Say so when it is clean "No findings that survived verification across correctness, security, performance, and test coverage in `<scope>`" is a complete, valuable review. Do not invent findings to justify the run. ## Out of scope Style and formatting the project's own linter already enforces. Run the linter; do not hand-review what a tool decides. Report a lint failure as one finding, not thirty. ## Handoff - `$ultragoal` — fix the findings with evidence per fix. - `$ultraqa` — when findings point at runtime behavior rather than code shape.
Voir sur GitHub