code-review — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited code-review (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Reviews must be performed by agents with fresh context. The generator (the agent that wrote the code) must never evaluate its own output. This separation prevents self-evaluation bias — the tendency to see what you intended to write rather than what you actually wrote.
The cardinal rule: Don't let the same model grade its own exam.
the implementer's explanation
do not ask the implementer
This separation is enforced structurally by dispatching review agents as independent subagents with no access to the orchestrator's conversation.
All review comments use the Conventional Comments format (https://conventionalcomments.org). Every comment MUST include a specific file:line reference.
Critique the code, not the coder. Assume competence. The same finding can read as collaborative or hostile depending on phrasing:
| Avoid (person-directed) | Prefer (code-directed) |
|---|---|
| "Your approach is adding unnecessary complexity." | "The complexity this adds isn't worth the result." |
| "You're not handling the null case." | "The null case isn't handled here." |
| "This doesn't make any sense." | "I can't follow what this branch is doing — clarify?" |
the rationale for the next reader of the diff.
issue: for findings that materially affect correctness,security, or maintainability. Use suggestion: or nitpick: for preferences.
style problem. When the count climbs past ~10 substantive comments, propose splitting the change or escalating the design conversation out of the review tool.
Every comment body MUST begin with the label and decoration wrapped in **...** so GitHub renders it bold. Copy the format in the examples below literally — including the asterisks — into the comment body you emit.
issue (blocking): Identifies a defect that must be fixed before approval.
**issue (blocking):** This query interpolates user input without parameterization.
file: src/api/users.ts:42suggestion (non-blocking): Proposes an improvement. The author may accept or decline.
**suggestion (non-blocking):** Consider extracting this validation into a shared utility.
file: src/handlers/create.ts:18nitpick (non-blocking): Minor style or naming observation. Never blocks approval.
**nitpick (non-blocking):** "data" is too vague — consider "userProfile" to match the domain.
file: src/models/types.ts:7| Reviewer | Gate Type | Blocks Ship? |
|---|---|---|
security-reviewer | HARD | Yes — critical or high findings are non-negotiable |
verifier | HARD | Yes — tests must pass, build must succeed |
code-reviewer | HARD | Yes — blocking issues must be resolved |
ux-reviewer | AUTO-FIX | REQUEST CHANGES is auto-applied in the loop (a major); only COMMENT notes may reach you |
technical-writer | ADVISORY | No — findings recorded, pipeline proceeds |
do not block.
IMPLEMENT. No override.
IMPLEMENT. No override — quality issues must be resolved before shipping.
Test-quality flags. Test files are part of the diff. Walk every changed *test* / *spec* / __tests__/* file against the rules in skills/test-first-development/SKILL.md ("Test Style Rules"). The following anti-patterns are suggestion: individually and issue: when they appear across multiple tests:
called without verifying observable state
real or fake equivalent
contract
sleep() for synchronizationif, loops, string-building) that can carry the samebug as the code
testProcessOrder_2) rather than behaviors(refundsCardOnPartialFailure)
in the loop, not surfaced to the user.
There is no single "blocker/critical/major/minor" scale — reviewers raise findings in three different vocabularies (Conventional Comments issue/suggestion/nitpick, security CRITICAL/HIGH/MEDIUM/LOW, and the APPROVE/REQUEST CHANGES/COMMENT verdict). This table is the authoritative map from any of those onto the action the orchestrator takes. Every finding lands in exactly one tier.
| Tier | Findings in this tier | Action |
|---|---|---|
| Blocking | issue (blocking), code-reviewer REQUEST CHANGES, security CRITICAL/HIGH, any verifier failure | Auto-fixed in the loop. Never surfaced to the user. |
| Major | suggestion (non-blocking), security MEDIUM, ux-reviewer REQUEST CHANGES | Auto-fixed in the loop. Never surfaced to the user. |
| Minor and below | nitpick (non-blocking), security LOW, technical-writer GAPS, any COMMENT-level note | Surfaced to the user for a decision — but only after Blocking and Major are clean. |
The consult guard (non-negotiable). While any Blocking or Major finding remains unresolved, the orchestrator MUST NOT present findings to the user or ask which ones to address. It loops the implementer automatically. The user is consulted exclusively for the remaining Minor-and-below findings, and only once the loop has driven Blocking and Major to zero. A consult prompt that lists a blocking or major finding is a defect.
When multiple reviewers produce verdicts, aggregate them into a single pipeline gate decision:
to IMPLEMENT automatically, with no consult.
present them to the user, who decides. If none remain, proceed to SHIP.
The loop continues until Blocking and Major are zero, capped at 5 rounds; at the cap, escalate with the full unresolved-findings summary.
Blocking and Major failures are never aggregated away and never surfaced for triage. A single CRITICAL security finding blocks shipping regardless of how many other reviewers approved.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.