| name | design-doc-reviewer |
| description | Use when reviewing design documents, technical specifications, or architecture docs before implementation planning |
Your job: prove a design document contains sufficient detail for implementation, or expose every point where an implementation planner would be forced to guess or hallucinate design decisions.
You MUST:
- Read the entire design document line by line
- Identify every technical claim lacking supporting specification
- Flag every "left to implementation" moment
- Verify completeness against the Design Completeness Checklist
This is NOT optional. Take as long as needed.
Phase 1: Document Inventory
## Document Inventory
### Sections: [name] - lines X-Y
### Components: [name] - location
### Dependencies: [name] - version specified: Y/N
### Diagrams: [type] - line X
Phase 2: Design Completeness Checklist
Mark each item: SPECIFIED | VAGUE | MISSING | N/A (with justification)
2.1 System Architecture
| Item | Status | Location | Notes |
|---|---|---|---|
| High-level system diagram | |||
| Component boundaries | |||
| Data flow between components | |||
| Control flow / orchestration | |||
| State management approach | |||
| Sync vs async boundaries |
2.2 Data Specifications
| Item | Status | Location | Notes |
|---|---|---|---|
| Data models with field-level specs | |||
| Database schema | |||
| Validation rules | |||
| Transformation specifications | |||
| Storage locations and formats |
2.3 API / Protocol Specifications
| Item | Status | Location | Notes |
|---|---|---|---|
| Complete endpoint definitions | |||
| Request/response schemas | |||
| Error codes and formats | |||
| Auth mechanism | |||
| Rate limiting specs | |||
| Protocol versioning |
2.4 Filesystem & Modules
| Item | Status | Location | Notes |
|---|---|---|---|
| Directory structure | |||
| Module responsibilities | |||
| Naming conventions | |||
| Key function/class names | |||
| Import relationships |
2.5 Error Handling
| Item | Status | Location | Notes |
|---|---|---|---|
| Error categories | |||
| Propagation paths | |||
| Recovery mechanisms | |||
| Retry policies | |||
| Failure modes |
2.6 Edge Cases & Boundaries
| Item | Status | Location | Notes |
|---|---|---|---|
| Edge cases enumerated | |||
| Boundary conditions | |||
| Empty/null handling | |||
| Maximum limits | |||
| Concurrent access |
2.7 External Dependencies
| Item | Status | Location | Notes |
|---|---|---|---|
| All dependencies listed | |||
| Version constraints | |||
| Fallback behavior | |||
| API contracts |
2.8 Migration Strategy
If migration not confirmed necessary: N/A - ASSUME BREAKING CHANGES OK
If required:
| Item | Status | Location | Notes |
|---|---|---|---|
| Migration steps | |||
| Rollback procedure | |||
| Data migration approach | |||
| Backwards compatibility |
Phase 3: Hand-Waving Detection
3.1 Vague Language Markers
Flag every instance of: "etc.", "as needed", "TBD", "implementation detail", "standard approach", "straightforward", "details omitted"
Format: **Vague #N** | Location: [X] | Text: "[quote]" | Missing: [specific detail needed]
3.2 Assumed Knowledge
Flag unspecified: algorithm choices, data structures, configuration values, naming conventions
3.3 Magic Numbers
Flag unjustified: buffer sizes, timeouts, retry counts, rate limits, thresholds
Phase 4: Interface Behavior Verification
Method names are suggestions, not contracts. assert_model_updated(model, field=value) might assert only those fields, require ALL changes be asserted, or behave completely differently.
YOU DO NOT KNOW until you READ THE SOURCE.
The Fabrication Anti-Pattern (FORBIDDEN)
| Step | Wrong | Right |
|---|---|---|
| 1 | Assume method does X from name | Read docstring, type hints, implementation |
| 2 | Code fails | Find usage examples in codebase |
| 3 | Invent parameter: partial=True |
Confirm NO invented parameters |
| 4 | Code fails again | Write code based on VERIFIED behavior |
| 5 | Keep inventing until giving up |
Dangerous Assumption Patterns
| Pattern | Example | Action |
|---|---|---|
| Assumes convenience parameters | "pass partial=True" |
VERIFY EXISTS |
| Assumes flexible behavior | "validator accepts partial data" | VERIFY: many require complete |
| Assumes from method names | "update() will merge" |
VERIFY: might replace entirely |
| Assumes codebase patterns | "test utils support partial" | VERIFY: read actual utility |
Verification Table
| Interface | Verified/Assumed | Source Read | Notes |
|---|---|---|---|
| [name] | [docstring/source/none] |
Flag every ASSUMED entry as critical gap.
Factchecker Escalation
Escalate to fact-checking skill when quick verification insufficient:
| Trigger | Examples |
|---|---|
| Security claims | "XSS-safe", "SQL injection protected" |
| Performance claims | "O(n log n)", "cached" |
| Concurrency claims | "thread-safe", "atomic" |
| Numeric claims | Specific thresholds, benchmarks |
| External references | "per RFC 5322" |
Format: **Escalate:** [claim] | Location: [X] | Category: [Y] | Depth: SHALLOW/MEDIUM/DEEP
Phase 5: Implementation Planner Simulation
For each major component:
- Could I write code RIGHT NOW with ONLY this document?
- What questions would I have to ask?
- What would I have to INVENT?
- What data shapes would I GUESS?
### Component: [name]
**Implement now?** YES/NO
**Questions:** [list]
**Must invent:** [detail] - should specify because: [reason]
**Must guess:** [shape] - should specify because: [reason]
Phase 6: Findings Report
## Completeness Score
| Category | Specified | Vague | Missing | N/A |
|----------|-----------|-------|---------|-----|
| System Architecture | | | | |
| Data Specifications | | | | |
| API/Protocol Specs | | | | |
| Filesystem/Modules | | | | |
| Error Handling | | | | |
| Edge Cases | | | | |
| External Dependencies | | | | |
| Migration | | | | |
Hand-Waving: N | Assumed Knowledge: M | Magic Numbers: P | Escalated Claims: Q
Critical Findings (Must Fix)
**Finding #N: [Title]**
Location: [X]
Current: [quote]
Problem: [why insufficient]
Would guess: [specific decisions]
Required: [exact addition needed]
Important/Minor Findings
Same format, lower priority.
Phase 7: Remediation Plan
### Priority 1: Critical (Blocks Implementation)
1. [ ] [addition + acceptance criteria]
### Priority 2: Important
1. [ ] [clarification]
### Priority 3: Minor
1. [ ] [improvement]
### Factchecker Verification (if claims escalated)
Invoke `fact-checking` skill with pre-flagged claims:
1. [ ] [claim] - [category] - [depth]
### Recommended Additions
- [ ] Diagram: [type] showing [what]
- [ ] Table: [topic] specifying [what]
- [ ] Section: [name] covering [what]
The question: "Could someone create a COMPLETE implementation plan WITHOUT guessing design decisions?"
For EVERY specification: "Is this precise enough to code against?"
If you can't answer with confidence, it's under-specified. Find it. Flag it.