skills/df-implement-review/SKILL.md
Review implementation results for goal achievement and code quality. Supports both Plan-backed review and planless diff review. ⚠️ MUST use when: (1) Wopal delegates rook to review fae implementation output, (2) Prompt contains "review_type: implementation", (3) Prompt contains changed code file list or Plan path + implementation scope, (4) Any code review request from Wopal. 🔴 Trigger even when user does not explicitly mention "review" if the task involves verifying implementation results. This skill is rook-exclusive (only rook agent can load it).
npx skillsauth add sampx/agent-tools df-implement-reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Review implementation results to verify explicit goals when they exist and to scan for technical defects and debt.
Determine the mode before reviewing:
| Mode | Trigger | Primary responsibility | |------|---------|------------------------| | Plan-backed review | Prompt includes Plan path, explicit truths, or must_haves | Verify implementation against explicit truths + scan technical defects | | Planless diff review | Prompt includes changed files, working tree diff, commit, or commit range but no Plan | Review the supplied changes for technical defects and debt only |
Critical rule: In planless diff review, do NOT infer product requirements from your own taste. Business logic belongs to the user and Wopal unless the prompt explicitly requests business-logic review.
Your core scope in code review is:
| Category | What to look for |
|----------|------------------|
| bug / regression | Logic errors, missing edge-case handling, broken branches, type/runtime mismatches, silent regressions |
| security | Injection, XSS, unsafe deserialization, missing validation, accidental secret exposure |
| tests | Missing coverage for changed behavior, skipped/placeholder assertions, weak assertions, redundant tests that fail to protect behavior |
| duplication / extraction | Repeated logic that should reasonably be extracted into shared helpers/modules because it creates maintenance drift or bug risk |
| conventions | Violations of AGENTS.md, local project rules, established patterns, or required config/typing/logging conventions |
| general debt | TODO/FIXME stubs, placeholders, dead code, fake dynamic behavior, brittle wiring |
Do not treat these as defects unless the prompt explicitly asks for them:
If you discover a plausible severe logic risk while reviewing code, report it in a separate section: Serious Logic Risks (Discuss with User).
Use this section only when all are true:
file:line evidenceDefault rule: Serious logic risks do not affect PASS / REVISE / BLOCK unless:
# 审查报告
## 概要
- 审查类型: Code
- 判定: PASS | REVISE | BLOCK
- 统计: Blocker N / Warning N / Info N
## Blocker
### B-01: {Issue Title}
- 位置: `path/to/file:line`
- 代码: `{具体代码片段}`
- 问题: {为什么阻碍目标达成}
- 修复建议: {具体可执行的修复方案}
## Warning
{Warning 项,格式同 Blocker}
## Info
{Info 项,可省略 file:line}
## Serious Logic Risks (Discuss with User)
{Only for severe logic risks that need Wopal + user discussion. Do not use this section for ordinary preferences.}
## Requirement Questions
{Only for requirement ambiguity or product choices that cannot be judged from code alone.}
## Positive Findings
- {已验证通过的亮点项}
## UNCOVERED STEPS / NEEDS_HUMAN
{Only when context/time constraints prevented full coverage}
Blocker requirements:
file:lineWarning requirements:
file:lineInfo can omit: Location and code, but must be specific suggestion
Serious Logic Risk requirements:
file:linefiles_to_read, working tree diff, commit, or commit range from promptAGENTS.md / local config when neededCRITICAL: All workflow steps MUST be completed before outputting any report.
At review start, create TodoWrite items for each step:
[ ] 1. Determine mode + exact scope[ ] 2. Read all changed files / diffs[ ] 3. Plan truth verification (only when Plan-backed)[ ] 4. Technical scan — bug/security/duplication/conventions/debt[ ] 5. Test quality audit[ ] 6. Consolidated report — all findings gatheredDuring review, mark only ONE in_progress at a time. Mark completed immediately after step-specific work is done.
FORBIDDEN to output final report (PASS / REVISE / BLOCK) while any step is still pending or in_progress. Wopal uses your todo completion rate to track review progress.
FORBIDDEN to stop after the first serious issue. A Blocker means severity, not permission to skip the remaining files.
Context low fallback: If context is running out → output a partial report with an explicit UNCOVERED STEPS section.
Tests often hide the biggest debt. Check:
| Pattern | Why it's debt | Check |
|---------|---------------|-------|
| Skipped/disabled tests | Requirements not proven | grep tool: pattern: 'skip\(|xit|xdescribe|\.skip|@pytest\.mark\.skip|t\.Skip' |
| Circular proofs | System generates its own expected values | Read test file, check if expected values come from the same system under test |
| Placeholder assertions | expect(true).toBe(true) — always passes | grep tool: pattern: 'expect\(true\)|expect\(false\)|expect\(1\)|expect\("test"\)' |
| Weak assertions | Only check existence, not behavior | grep tool: pattern: 'toBeDefined|toBeTruthy|toBeFalsy|not\.toBeNull' |
| Missing assertions | No assertions in test file | grep tool: pattern: 'expect|assert' — zero hits = empty test shell |
| Redundant tests | Many tests repeat the same happy path without protecting changed branches | Read changed tests and look for repeated assertions that do not cover distinct behavior |
In planless review, ask: does the changed behavior have enough tests to catch regression? In all modes, ask: are the tests proving behavior, or just creating noise?
Blocker if: Test file exists for requirement but all tests are skipped/disabled or assertions are placeholders.
Warning if: Coverage for the changed branch is missing, or tests are obviously duplicated while key branches remain untested.
Flag duplication only when it creates real maintenance cost or drift risk.
Good reasons to flag:
Do not flag:
| Mode | When to use | What it checks |
|------|-------------|----------------|
| standard | Default | Goal verification + pattern scanning |
| deep | Complex changes | Cross-file call chains + import graph + type consistency |
Prompt should specify depth: standard | deep. Default to standard.
For detailed verification patterns, stub detection, and test audit procedures:
@references/review-rubric.md
Key sections:
Plan truth: "User can send a message"
Code found:
// components/Chat.tsx:45
const handleSubmit = (e) => {
e.preventDefault()
console.log(data) // Only logs
}
Finding:
components/Chat.tsx:45-47console.log(data)fetch('/api/messages', { method: 'POST', body: data })Plan truth: "Messages are fetched from database"
Code found:
// api/messages/route.ts:12
export async function GET() {
return Response.json([]) // Empty array, no DB query
}
Finding:
api/messages/route.ts:12return Response.json([])const messages = await prisma.message.findMany() before returnCode found:
// src/a.ts
const normalized = input.trim().toLowerCase()
if (!normalized) throw new Error("empty")
// src/b.ts
const normalized = input.trim().toLowerCase()
if (!normalized) throw new Error("empty")
Finding:
src/a.ts:1-2, src/b.ts:1-2const normalized = input.trim().toLowerCase()normalizeInput() if both modules are meant to follow the same ruleCode found:
// src/jobs/purge.ts:18
await deleteAllUserContent(userId)
Finding:
src/jobs/purge.ts:18await deleteAllUserContent(userId)Test file: tests/chat.test.ts
Code found:
describe('Chat', () => {
it.skip('sends message', () => { ... }) // Skipped
it('renders', () => {
expect(true).toBe(true) // Placeholder assertion
})
})
Finding:
tests/chat.test.ts:5-7it.skip('sends message', ...)expect(mockFetch).toHaveBeenCalledWith('/api/messages')ALWAYS:
file:line evidence for Blocker/WarningNEVER:
This skill is loaded by rook agent. Workflow:
review_type: implementationRevision loop limit: Max 3 rounds of REVISE/BLOCK per implementation.
| Verdict | Condition | |---------|-----------| | PASS | All truths verified, no Blocker, Warning ≤ 2 | | REVISE | Warning ≥ 3 or Info ≥ 5, no Blocker | | BLOCK | ≥ 1 Blocker found within technical scope |
| Evidence Level | Required for |
|----------------|--------------|
| file:line + code snippet | Blocker, Warning |
| Specific description | Info |
| Test Debt Pattern | Severity | |-------------------|----------| | All tests skipped/disabled | Blocker | | Circular/placeholder assertions | Blocker | | Missing assertions | Warning | | Weak assertions (existence only) | Info |
Serious Logic Risks and Requirement Questions do not change the verdict by default.
tools
Configure ellamaka, a fork of OpenCode with wopal-space mode. MUST use for any task about ellamaka config, agent frontmatter, permission rules, model/provider selection, formatter settings, config loading order, or why config changes are ignored. Trigger on requests about ellamaka or opencode config files, agent permission overrides, restricting subagents, custom/plugin tool permissions (e.g. wopal_task_*), disabling tools, configuring providers or models, formatter setup, config precedence or layering, or debugging settings that do not take effect. Use this skill even when the user says "opencode" if the actual runtime, config path, or behavior is ellamaka. Prefer this skill whenever the answer depends on the difference between ellamaka and upstream opencode, including wopal-space config loading, plugin tool permissions, or agent frontmatter precedence.
development
Plan quality verification for dev-flow. Goal-backward analysis ensures plans WILL achieve their stated goal before execution burns context. ⚠️ MUST use when: (1) Reviewing Plan quality before approve (2) Wopal completes Plan writing and needs quality gate (3) User asks to "check plan", "verify plan", "review plan" (4) Plan enters planning status and needs pre-execution validation 🔴 Trigger automatically when Plan is ready for review, even if user doesn't explicitly say "review". Agent: rook (read-only verification subagent) Mode: verification, not execution
tools
Foundation rules for how Wopal collaborates with sub-agents such as fae and rook. ⚠️ MUST load before ANY delegation — covers delegation tool APIs, task lifecycle, notifications, status handling, and recovery. 🔴 Trigger: "delegate", "let fae implement", "fae task", "rook review", "check task status", "cancel task", "abort task", "agent collaboration", "委派", "让 fae 执行", "fae 任务", "rook 审查", "检查状态", or any intent to hand work to a sub-agent. 🔴 Never delegate without loading this skill first. Skipping it is serious negligence. Note: this skill does not include workflow-specific prompt templates such as dev-flow templates. Those belong to the corresponding workflow skills.
tools
Manage parallel workstreams — list, create, switch, status, progress, complete, and resume