Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
日本語の概要は準備中です。原文の説明を表示しています。
Use when the user says "review this", "check my code", or wants feedback on changes. Reviews for correctness, quality, security, and coding standards.
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
Use this skill when:
DRY as a checklist word produced findings nobody could act on: it names a
principle, not a decision, and it has no answer for the case where two copies
should stay. Replace it with a verdict.
Classify the finding against
redundancy-taxonomy —
implementation, knowledge, or representation — and record one verdict from that
document's list. keep-duplicated and de-abstract are successful outcomes; a
finding with no recorded verdict stays open. Knowledge, policy, contract and
delivery-authority duplication outrank clone percentage: two copies of a
decision diverge into a bug, two copies of a loop usually do not.
Diff-aware, always. The finding is duplication this change introduces, or duplication on a surface it touches. Pre-existing duplication is baseline — it is named once if the reviewer thinks it matters and it never fails an unrelated change. A review that reds a diff against debt it did not create is a review nobody will run twice.
For comments, labels, tooltips, placeholders and empty states, run the Information Delta Test from the same document rather than judging text volume. A reduction that removes an accessibility name is a defect, not a cleanup.
Naming is the same dimension pointed the other way: a diff that introduces a
second term for a concept the tree already names is the finding, and an existing
split is baseline. The classes and the canonicalize-term / keep-distinct
verdicts are in the same document.
A change is complete when the concept changed everywhere, not when the named file compiles. Two shapes to check, both of which the file-level review misses:
A closed set gained or lost a member (enum, union, literal type, state
machine, role or permission set, schema enum, DB check constraint). List the
consumers and their status — every switch / match / if-chain over the type,
every lookup table keyed by it, every validator, serializer, schema, fixture and
translation key. A default branch that silently absorbs the new member is a
missing case, not a handled one. Procedure:
downstream-changes-mechanics.
A shared behaviour moved and its siblings did not. A defect fixed in one place is presumed to recur until searched: name the exact wrong construct, grep the tree, and report the count — zero is a real answer and worth stating, because it distinguishes "this was unique" from "nobody looked".
Diff-aware on the same terms as redundancy: the finding is a concept this change left half-migrated. Pre-existing incompleteness elsewhere is baseline.
When the diff creates a class, component, service or hook rather than
changing one, the question is whether it needed to exist: what was searched,
what was found, and why composing or extending the incumbent was rejected. An
answer, not a ceremony — and the thresholds for when repetition actually earns
an abstraction are in
component-oriented-and-oop-development.
Per-domain checklists live in checklists/, loaded on demand — a review
carries only the depth the change needs (progressive disclosure; a dependency
bump does not pay for the backend security table). Detect the change-type from
the diff's file paths, then read the matching file:
| Change-type | File-pattern signal (any match) | Checklist |
|---|---|---|
| dependency (expedited) | ONLY composer.json/*.lock, package.json/lockfiles, pyproject.toml, go.mod/go.sum, Cargo.toml/*.lock | checklists/dependency.md |
| migration / database | **/migrations/**, **/*migration*, schema files, query-heavy data-access code | checklists/database.md |
| frontend / UI | *.tsx, *.jsx, *.vue, *.blade.php, *.css, components/**, resources/views/** | checklists/frontend.md |
| infra / IaC / CI | *.tf, Dockerfile*, k8s/**, *.yaml under .github/workflows/, Pulumi/Ansible | checklists/infra.md |
| test-only | ONLY tests/**, *.test.*, *.spec.*, *Test.php | checklists/test-only.md |
| docs-only | ONLY *.md, docs/** | checklists/docs.md |
| backend / default | anything else (server-side logic) | checklists/backend.md |
A diff spanning several types loads each matching checklist; a mixed diff is never downgraded to the expedited path (a lockfile bump plus code is backend
checklists/*.md file MUST be reachable from a row above.Framework-specific conventions defer to the carve-outs: PHP / Laravel →
laravel, laravel-validation,
eloquent, pest-testing,
blade-ui, php-coder;
Symfony → symfony-workflow; Next.js / TS →
nextjs-patterns, react-shadcn-ui.
❓ until satisfiedSome changes are unverifiable from source; when a gate fires the verdict is
❓, not approval — ask for the missing evidence:
❓ (rendered result unverifiable from source).❓ (behaviour coverage unconfirmable).❓.Pick depth from diff size, override upward on risk:
| Diff / surface size | Depth | What it means |
|---|---|---|
| SMALL (single file / few lines) | DEEP | Read every line; trace each branch. |
| MEDIUM (a feature, several files) | FOCUSED | Deep on changed logic + its callers; skim the rest. |
| LARGE (sweeping / many files) | SURGICAL | Deep on the risk-bearing files; explicitly bound the rest as un-deep-reviewed. |
Risk triggers force HIGH depth regardless of diff size: auth / crypto,
external calls / SSRF, removal of a validation or authz check, money /
tenant-boundary code. blast-radius-analyzer
is one input to sizing; the depth policy + coverage-honesty line are this
skill's addition. Every review ends with a Coverage & confidence line
(deep-reviewed vs skimmed/bounded-out files + confidence) — silent partial
coverage reads as full coverage.
fix-pr-comments
reply rounds apply.parallelizable: files; council lenses), give each an independently
shuffled file order (deterministic seed per session, logged for replay) so
a fixed order does not correlate their blind spots. Single-reviewer → no shuffle.MEASURED, and the result is a null — 2026-08-23. This control is prose and nothing in
the package implements it. That is now true for a recorded reason rather than by
omission: the pre-registered question — does rotating reviewer order change the finding set
on a frozen corpus, by more than 15 % — cannot be answered from the corpus that exists.
agents/evidence/reviews/ holds 123 findings artifacts, and none of them records the file
order it was produced under, so the counterfactual is not recoverable; re-running reviewers
produces fresh judgements in which ordering is confounded with run-to-run variance. Full
null, with its reopening condition: agents/evidence/review-rotation-prereg-and-null.md.
A reduced-power crossover was considered and refused — it would risk a false closure on a
control this paragraph still specifies.
quality.local_auto_run: true: run the project's quality pipeline (see the stack carve-out for the exact commands — PHP: quality-tools) and tests via the project's runner (make test, npm test, pytest, go test ./..., or the project's wrapper script). Under the default (false / missing): skip both — remote CI on the PR is the gate.git diff origin/main..HEAD.Constraint: understand each comment fully before touching code, verify it against codebase reality, and implement one item at a time (test each). Restate anything ambiguous in your own words — or ask. Push back with technical reasoning when a suggestion is unsound for this codebase rather than complying reflexively.
If any item is unclear, STOP — do not implement anything yet. Items may be related; partial understanding leads to wrong implementation.
Internal team feedback (trusted colleagues):
External / Copilot / bot feedback (less context):
Push back when:
How: Use technical reasoning, not defensiveness. Reference working tests/code.
Constraint: clarify anything unclear before implementing, fix one item at a time (test each), and reply in each review thread — not as a top-level PR comment. Triage first (blocking → simple → complex) so blockers land first; gh pr view --comments lists the threads.
# Reply to a specific review comment thread
gh api repos/{owner}/{repo}/pulls/comments/{comment_id}/replies \
-f body="Fixed in latest commit."
After completing a review, run
judge-artifact-completeness
with rubric pr-review-score to verify evidence-fit, risk/blast-radius
coverage, and migration/rollback completeness. Invoke when the review is
high-risk or the user asks for a completeness check — not by default.
Validate, then emit these parts in order:
YES / NOT-SURE (❓, a metadata gate fired or coverage bounded) / NO, plus Tier-1 blocker/suggestion counts.Full template, governance-conflict scan (status-aware over docs/decisions/,
incl. draft ADRs; guarded git blame reviewer hint), and the security-class
deep-verify path → checklists/producing-the-review.md.
Tally-vs-reasoned boundary. Finding-level review uses reasoned validation (each finding stands on its own traced reason); option-level decisions use the council stance tally (
ai-council). Never cross-apply — no resolving a bug finding by counting votes, no resolving a design option by reasoned-validating one take. Mirrored inai-councilso the boundary is grep-checkable from both sides.
Group related findings; skip what the linter / type-checker already catches.
Before creating a PR or presenting code changes, run the adversarial-review skill.
Focus on the "Code changes / Refactoring" attack questions.
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.
日本語の概要は準備中です。原文の説明を表示しています。
Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'.
日本語の概要は準備中です。原文の説明を表示しています。
Use when capturing an architectural decision — file naming, next ADR number, Status / Context / Decision / Consequences, index regen; fires even without saying 'ADR'.
日本語の概要は準備中です。原文の説明を表示しています。
Adversarial critique — devil's advocate, stress-test, honest teardown ('poke holes', 'be brutal', 'was hältst du davon'); explicit request only. Routine code or design review → code-review.
日本語の概要は準備中です。原文の説明を表示しています。
Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure.
日本語の概要は準備中です。原文の説明を表示しています。
Use for an adversarial red-team / blue-team / auditor review of an AI agent's CONFIG + behaviour (rules, skills, MCP, hooks, permissions) — attack-chain → defensive-gap list, not a code audit.
日本語の概要は準備中です。原文の説明を表示しています。