REQUIRED Phase 6 of /dev workflow. Combines spec compliance and code quality checks with confidence scoring.
/plugin marketplace add edwinhu/workflows/plugin install workflows@edwinhu-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Announce: "I'm using dev-review (Phase 6) to check code quality."
Single-pass code review combining spec compliance and quality checks. Uses confidence-based filtering to report only high-priority issues.
<EXTREMELY-IMPORTANT> ## Prerequisites - Test Output GateDo NOT start review without test evidence.
Before reviewing, verify:
.claude/LEARNINGS.md contains actual test output| Valid Evidence | NOT Valid |
|---|---|
meson test output with results | "Tests should pass" |
pytest output showing PASS | "I wrote tests" |
| Screenshot of working UI | "It looks correct" |
| Playwright snapshot showing expected state | "User can verify" |
| D-Bus command output | "The feature works" |
| E2E test output with user flow verified | "Unit tests pass" (for UI changes) |
FOR USER-FACING CHANGES: Unit test evidence is INSUFFICIENT.
Before approving user-facing changes, verify:
| Change Type | Unit Evidence | E2E Evidence | Approval? |
|---|---|---|---|
| Internal refactor | ✅ | N/A | ✅ APPROVE |
| API change | ✅ | ❌ Missing | ❌ BLOCKED |
| UI change | ✅ | ❌ Missing | ❌ BLOCKED |
| User workflow | ✅ | ❌ Missing | ❌ BLOCKED |
If E2E evidence is missing for user-facing changes, return BLOCKED.
"Unit tests pass" without E2E for UI changes is NOT approvable. </EXTREMELY-IMPORTANT>
# Check LEARNINGS.md for test output
grep -E "(PASS|OK|SUCCESS|\d+ passed)" .claude/LEARNINGS.md
If no test output found, STOP and return to /dev-implement.
"It should work" is NOT evidence. Test output IS evidence. </EXTREMELY-IMPORTANT>
<EXTREMELY-IMPORTANT> ## The Iron Law of ReviewOnly report issues with >= 80% confidence. This is not negotiable.
Before reporting ANY issue, you MUST:
This applies even when:
If you catch yourself about to report a low-confidence issue, DISCARD IT. </EXTREMELY-IMPORTANT>
| Thought | Why It's Wrong | Do Instead |
|---|---|---|
| "Tests probably pass" | No evidence | Check LEARNINGS.md for output |
| "This looks wrong" | Vague suspicion isn't evidence | Find concrete proof or discard |
| "I would do it differently" | Style preference isn't a bug | Check if it violates guidelines |
| "This might cause problems" | "Might" means < 80% confidence | Find proof or discard |
| "Pre-existing but should be fixed" | Not your scope | Score it 0 and discard |
| "User can test it" | Automation likely possible | Return to implement phase |
Rate each potential issue from 0-100:
| Score | Meaning |
|---|---|
| 0 | False positive or pre-existing issue |
| 25 | Might be real, might not. Stylistic without guideline backing |
| 50 | Real issue but nitpick or rare in practice |
| 75 | Verified real issue, impacts functionality |
| 100 | Absolutely certain, confirmed with direct evidence |
CRITICAL: Only report issues with confidence >= 80.
## Code Review: [Feature/Change Name]
Reviewing: [files/scope being reviewed]
### Test Evidence Verified
- Unit tests: [PASS/FAIL/MISSING] - [paste key output line]
- Integration: [PASS/FAIL/N/A]
- UI/Visual: [Screenshot taken / Snapshot verified / N/A]
### Critical Issues (Confidence >= 90)
#### [Issue Title] (Confidence: XX)
**Location:** `file/path.ext:line_number`
**Problem:** Clear description of the issue
**Fix:**
```[language]
// Specific code fix
[Same format as Critical Issues]
Verdict: APPROVED | CHANGES REQUIRED | BLOCKED (no test evidence)
[If APPROVED] The reviewed code meets project standards. Tests pass. No issues with confidence >= 80 detected.
[If CHANGES REQUIRED] X critical issues and Y important issues must be addressed before proceeding.
[If BLOCKED] Cannot approve without test evidence. Return to /dev-implement and run tests.
## Agent Invocation
Main chat spawns Task agent:
Task(subagent_type="general-purpose"): "Review implementation against .claude/SPEC.md.
FIRST: Check .claude/LEARNINGS.md for test output. If no test output found, return BLOCKED immediately.
Single-pass review covering:
Confidence score each issue (0-100). Only report issues >= 80 confidence. Return structured output per /dev-review format."
## Honesty Requirement
<EXTREMELY-IMPORTANT>
**Approving without test evidence is LYING.**
When you say "APPROVED", you are asserting:
- Tests actually ran (not "should work")
- Test output shows PASS (not SKIP, not assumed)
- You saw the evidence (not trusting reports)
Saying "APPROVED" without test evidence is not "being efficient" - it is LYING about code quality.
**BLOCKED is honest. Fake APPROVED is fraud.**
</EXTREMELY-IMPORTANT>
## Rationalization Prevention
These thoughts mean STOP—you're about to approve dishonestly:
| Thought | Reality |
|---------|---------|
| "Tests probably pass" | Probably ≠ evidence. Check LEARNINGS.md. |
| "I saw the code, it looks right" | Looking ≠ running. Where's test output? |
| "User is waiting for approval" | User wants HONEST approval. Say BLOCKED if needed. |
| "It's a small change" | Small changes break things. Require evidence. |
| "I trust the implementer" | Trust doesn't replace verification. Check evidence. |
| "I'll approve and they can fix later" | NO. BLOCKED now or bugs ship. |
| "Review is just a formality" | Review is the LAST GATE before bugs ship. Take it seriously. |
## Quality Standards
- **Test evidence is mandatory** - no approval without test output
- Never report style preferences not backed by project guidelines
- Pre-existing issues are NOT your concern (confidence = 0)
- Each reported issue must be immediately actionable
- File paths must be absolute and include line numbers
- If unsure, the issue is below 80 confidence
## Phase Complete
**REQUIRED SUB-SKILL:** After review is APPROVED, IMMEDIATELY invoke:
Skill(skill="workflows:dev-verify")
If CHANGES REQUIRED, return to `/dev-implement` to fix issues first.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.