Skip to content
Back to skills

Aid Review

ASecurity

Review an existing artifact against criteria and return findings and recommendations in one pass -- code, a diff, a design, a pull request, a ticket, a document, a UI, whatever you name. Use this skill when you want a second opinion before something lands. It is read-only apart from its findings ledger: it never plans and halts. Every finding cites a Knowledge Base document or a file and line. The review is produced in a clean context and independently verified before you see it, and nothing ...

  • 6 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
code-qualitygoshellbashgitsecurity

Works with

  • terminal
  • mcp

Security analysis

A100/100

Scanned November 7, 2026

npx -y skills add AndreVianna/aid-methodology --skill aid-review --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Aid Review?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Aid Review
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/andrevianna-aid-review/badge)](https://www.skillsdirectory.com/skills/andrevianna-aid-review)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: aid-review
description: >
  Review an existing artifact against criteria and return findings and recommendations in
  one pass -- code, a diff, a design, a pull request, a ticket, a document, a UI, whatever
  you name. Use this skill when you want a second opinion before something lands. It is
  read-only apart from its findings ledger: it never plans and halts. Every finding cites a
  Knowledge Base document or a file and line. The review is produced in a clean context and
  independently verified before you see it, and nothing is published to a pull request,
  ticket or document until you approve. It does not fix anything -- findings hand off to
  `/aid-fix`.
allowed-tools: Read Glob Grep Bash Shell Terminal Write Edit Agent
argument-hint: "[target] -- what to review (a file/dir, PR link, ticket id, work-NNN, 'my changes', or a described target)"
---

# Review (run now, produce findings)

`/aid-review` performs a review **now** and returns **grade + findings +
recommendations**. It is the adversarial sibling of `/aid-ask`: both are single-shot,
grounded, cited, and never plan-and-halt -- review evaluates an existing artifact against
criteria, where `/aid-ask` answers a free-form question.

- **Not a numbered pipeline phase.** It runs on demand; it does not enter the
  Discover->Execute flow and never routes to `/aid-execute`.
- **Read-only except:** the findings ledger (a `.temp` artifact) and, only after
  your approval, a publish to the reviewed target (a PR/ticket comment, doc notes).
  It never edits the reviewed code/design itself and never fixes -- fixing is
  `/aid-fix`'s job.

State machine: **INTAKE -> REVIEW -> VERIFY (loop) -> PRESENT-FINDINGS [human] ->
PUBLISH (on approval) -> DONE**. Print the state-entry line on entry to each state
(`[State: NAME] -- {one-line purpose}`), the convention every AID skill uses.

---

## State: INTAKE

Purpose: resolve the target + criteria, pick the path, allocate the work folder.

### Step 1 -- require a target

If the argument is empty, ask exactly one bootstrapping question and wait:

```
What do you want to review? Point me at a file/dir, a PR, a ticket id, a
work-NNN, "my changes", or describe the target.
```

### Step 2 -- pick the path (fast vs guided)

**Fast path** -- the prompt carries an explicit, resolvable target whose review method
is unambiguous. Record the target, method, and tentative delivery; go straight to REVIEW.

| Signal | Method | Tentative delivery |
|---|---|---|
| PR link / `#123` | diff review | PR comment(s) via `gh` |
| ticket id (`PROJ-45`) | assess ticket content | ticket comment via `/aid-update-ticket` |
| file / dir path | static review vs KB + coding-standards | findings report |
| "my changes" / working tree / staged | working-diff review | findings report |
| commit SHA / range / branch | diff review | findings report or PR comment |
| `work-NNN` or an AID artifact (REQUIREMENTS/SPEC/PLAN/DETAIL) | review vs its acceptance criteria + KB | findings in the work folder |
| a KB doc (`.aid/knowledge/*.md`) | review vs the KB-authoring rubric | findings report |

**Guided path** -- target open-ended (a UI, a BDD-scenario set, "is my auth sound?"),
or a fast trigger that does not resolve (file absent, ticket id but no catalogued
connector, PR # with no repo context). Interpret the request and form a plan -- *what*
you will review, *how* (method + any tool/MCP needed to gather evidence), and *where*
findings will be delivered -- **present the plan and wait for the user to confirm or
correct** before spending review effort.

### Step 3 -- criteria

Derive the review criteria from the KB (`coding-standards.md`, `architecture.md`, and
the artifact's own acceptance criteria if it is AID work) plus anything the user named.
Fast path: implicit. Guided path: part of the plan the user confirms.

### Step 4 -- classify complexity (sets model + effort)

- **Simple** (one small file, a short doc, a tiny diff) -> dispatch `aid-reviewer` at
  **model `sonnet`, effort `low`/`medium`**; single light VERIFY pass.
- **Standard/complex** (a full PR, a design, security/perf, multi-file) -> **model
  `opus`, effort `high`**; full VERIFY loop.
  Verifier tier is always >= reviewer tier.

### Step 5 -- allocate the work folder + STATE

**Consult the Work Initiation Gate first**
(`.aid/runtime/templates/work-initiation-gate.md`): run
`bash .aid/runtime/scripts/works/enumerate-works.sh` (main tree + every git worktree).
Empty output -> proceed with the allocation below, no prompt. Works exist -> ask the
gate's single new-vs-continuation question with the enumerated list; on **continuation**
the gate routes to the chosen work's resume door and this skill **STOPs (allocates
nothing)**; on **new work**, allocate below.

**Resolve `<work-id>`** as `work-{NNN+1}`, where `NNN` is the maximum `work-NNN` numeric
prefix across every record the enumeration above already returned (cross-worktree by
construction -- never re-scan a local `.aid/works/` glob for this number; gate `§ 3a` step
1; `work-001` if none). Derive a short kebab-case slug from the target.

**Create and enter the worktree, before authoring anything** (gate `§ 3a` step 2):
`bash .aid/runtime/scripts/works/worktree-lifecycle.sh create <work-id> <name>` --
idempotent; prints the worktree's absolute path on success/no-op; on a non-zero exit or an
empty path, surface the error and **STOP** (do not allocate on the current, possibly
`master`, tree); on success, enter the resolved path (host-native `EnterWorktree` where
available, else cwd + surface -- `worktree-lifecycle.md § Step 2`).

**Only now**, inside the entered worktree, create `.aid/works/work-NNN-<slug>/` (reusing
the `<work-id>` resolved above). Copy `.aid/runtime/templates/work-state-template.yml` to
`.aid/works/work-NNN-<slug>/STATE.yml` and write the opening frontmatter (direct edit):
`pipeline.path: lite`, `initiator: aid-review`, `lifecycle: Running`, `active_skill:
aid-review`, `started`/`updated` timestamps. Leave the 7-phase `phase` scalar at its
template value -- a standalone review is not a pipeline run and does not drive it
(specs/aid-review.md 10). The work-level git worktree is created and entered above by the
gate's `§ 3a` step -- mandatory per FR1, no longer optional.

**Advance:** REVIEW.

---

## State: REVIEW

Purpose: gather evidence and produce the grounded findings ledger.

1. **Gather evidence** the confirmed method needs, using whatever tools/MCP the plan
   calls for -- `git diff` for a PR/commit/working-tree, `Read`/`Grep` for a file/dir,
   the browser MCP to capture a UI, or -- for a ticket target -- fetch it by invoking
   `/aid-read-ticket [<connector>:]<ticket-id>` (the connector resolution and host-MCP fetch
   live there, feature-001; no direct-fetch recipe is re-implemented here; skip silently if no
   matching connector is catalogued).
2. **Dispatch `aid-reviewer` once, in a clean context** (model+effort from INTAKE Step
   4), with the standard one-off five-section brief per
   `.aid/runtime/templates/reviewer-dispatch.md` One-off reviews:
   `ARTIFACTS UNDER REVIEW` / `CONTEXT` / `RUBRIC` / `OUT OF SCOPE` / `OUT-OF-SCOPE
   FINDINGS POLICY`. The **RUBRIC MUST mandate** reading `.aid/knowledge/` + the relevant
   source and **citing a KB doc or a `file:line` in every finding's Evidence cell**.
   The reviewer writes the global 7-column ledger
   (`.aid/runtime/templates/reviewer-ledger-schema.md`:
   `# | Severity | Status | Doc | Line | Description | Evidence`) to
   `.aid/.temp/review-pending/<work>-review.md`.

**Advance:** VERIFY.

---

## State: VERIFY  (who reviews the reviewer)

Purpose: ensure the review is grounded, correct, and complete before the human sees it.

1. **Mechanical grounding check** (no dispatch): reject any finding row whose `Evidence`
   cell is empty -- an ungrounded finding never reaches the human.
2. **Adversarial verification** -- dispatch a *second* `aid-reviewer` in a clean context
   (never sees the first reviewer's reasoning) to independently check each finding
   against KB + source: flag ungrounded / hallucinated / mis-severity findings, and any
   material **gap** (a real issue the first pass missed). It writes a review-quality
   ledger to `.aid/.temp/review-pending/<work>-verify.md`.
3. **Grade the review:** `bash .aid/runtime/scripts/grade.sh --explain <verify-ledger>`.
   If it is not clean, loop back to REVIEW so the first reviewer revises (drop ungrounded
   findings, add missed ones). **Circuit-breaker: 3 cycles** -> write
   `.aid/works/{work}/IMPEDIMENT-review.md`, set STATE `lifecycle: Blocked` with a block reason,
   and surface it instead of looping.

Note: the *target's* grade (`grade.sh --explain` on the review ledger) is computed for
the presentation as information only -- it does NOT drive a fix loop here.

**Advance:** PRESENT-FINDINGS.

---

## State: PRESENT-FINDINGS  (always a hard stop -- human final say)

Set STATE `lifecycle: Paused-Awaiting-Input`. Present:

- the **target grade** (from `grade.sh` on the review ledger) -- informational;
- the **verified findings**, severity-ranked, each with its `file:line` / KB evidence;
- **recommendations**, and a **printed suggestion** to act: "N issues found -- run
  `/aid-fix` (or `/aid-update`) to address them" (review never starts the fix itself);
- the **proposed delivery action + the exact comment/notes text** that would be posted.

Then STOP and await the human's decision (approve / edit the text / choose a different
delivery / do not publish). Nothing is posted to any external target until they approve.

**Advance:** PUBLISH on approval; otherwise DONE.

---

## State: PUBLISH  (only on approval)

Deliver by the method appropriate to the target, chosen by judgment (not a hardcoded
enum): a PR comment via `gh`; a ticket comment via `/aid-update-ticket comment
[<connector>:]<ticket-id> <text>` (still user-authorized -- the approval just given at
PRESENT-FINDINGS is what authorizes this call, and the skill previews the exact payload again
at its own CONFIRM before posting); a findings report in the work folder (+ optional
inline-comment suggestions) for code; inline notes for a document. **Graceful fallback:** no PR /
no catalogued connector / unknown target -> present the exact text for the human to paste.
Publishing is optional and never blocks DONE.

**Advance:** DONE.

---

## State: DONE

Set STATE `lifecycle: Completed`, `updated` now, append a `## Lifecycle History` row.
Leave the findings ledger on disk (`.aid/.temp/review-pending/<work>-review.md`) so a
follow-up `/aid-fix` can consume it. Keep the work folder as the audit record.

---

## Constraints

- **KB + source grounding is enforced** (VERIFY step 1 + the reviewer RUBRIC): no finding
  without a KB/source cite.
- **Clean context:** the REVIEW and VERIFY dispatches never share context; the verifier
  never sees the reviewer's reasoning.
- **Reviews are always a sub-agent dispatch** (`aid-reviewer`), never inline.
- **Human final say before any external commit** (PRESENT-FINDINGS).
- **Read-only** on the reviewed artifact; never fixes (hand off to `/aid-fix`).
- **Tracking:** write STATE `lifecycle` at every transition (`Running` at INTAKE, the
  gate pauses, terminal `Completed`/`Blocked` at the end).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.