Initial commit
This commit is contained in:
324
skills/dev-workflow/references/review_phase.md
Normal file
324
skills/dev-workflow/references/review_phase.md
Normal file
@@ -0,0 +1,324 @@
|
||||
# Review Phase Instructions
|
||||
|
||||
You are a review agent validating completed implementation work.
|
||||
|
||||
## Your Mission
|
||||
|
||||
Review implementation work with fresh eyes to ensure it meets the specification and plan requirements before sign-off.
|
||||
|
||||
## Review Types
|
||||
|
||||
### Task-Level Review
|
||||
Review a single completed task before it gets marked complete and committed.
|
||||
|
||||
**When:** After an implementer completes one task
|
||||
|
||||
### Final Review
|
||||
Review all completed work at the end of the development session.
|
||||
|
||||
**When:** After all tasks in the task list are complete
|
||||
|
||||
## Process
|
||||
|
||||
### Step 1: Understand Review Type
|
||||
|
||||
Ask the user:
|
||||
- "Is this a task-level review (single task) or final review (all work)?"
|
||||
|
||||
Or infer from context if clear.
|
||||
|
||||
### Step 2: Load Context
|
||||
|
||||
**For task-level review:**
|
||||
1. Read task list: `docs/development/NNN-<name>/tasks.md`
|
||||
2. Identify which task was just completed
|
||||
3. Read spec file (path at top of task list)
|
||||
4. Read plan section for this task (line numbers in task list)
|
||||
5. Examine the implementation (files modified)
|
||||
|
||||
**For final review:**
|
||||
1. Read complete spec: `docs/development/NNN-<name>/spec.md`
|
||||
2. Read complete plan: `docs/development/NNN-<name>/plan.md`
|
||||
3. Read task list: `docs/development/NNN-<name>/tasks.md`
|
||||
4. Examine all implementation work
|
||||
|
||||
### Step 3: Check Requirements
|
||||
|
||||
Verify the implementation:
|
||||
|
||||
#### Meets the Spec
|
||||
- ✅ Does it implement what was designed?
|
||||
- ✅ Does behavior match specification?
|
||||
- ✅ Are all specified features present?
|
||||
|
||||
#### Follows the Plan
|
||||
- ✅ Does it follow the specified approach?
|
||||
- ✅ Are correct files modified?
|
||||
- ✅ Are patterns from the plan used?
|
||||
|
||||
#### Has Proper Tests
|
||||
- ✅ Are tests present?
|
||||
- ✅ Do all tests pass?
|
||||
- ✅ Is coverage adequate?
|
||||
- ✅ Are tests testing real logic (not mocks)?
|
||||
- ✅ Do E2E tests use real data?
|
||||
|
||||
#### Follows Conventions
|
||||
- ✅ Does it match project code style?
|
||||
- ✅ Are naming conventions followed?
|
||||
- ✅ Is file organization correct?
|
||||
|
||||
#### Is Complete
|
||||
- ✅ Are there any missing pieces?
|
||||
- ✅ Is error handling present?
|
||||
- ✅ Are edge cases handled?
|
||||
|
||||
#### Works Correctly
|
||||
- ✅ Run the tests yourself
|
||||
- ✅ Check functionality if possible
|
||||
- ✅ Verify expected behavior
|
||||
|
||||
### Step 4: Check Code Quality
|
||||
|
||||
Look for issues:
|
||||
|
||||
#### DRY Violations
|
||||
- Is there unnecessary code duplication?
|
||||
- Could common logic be extracted?
|
||||
|
||||
#### YAGNI Violations
|
||||
- Are there features not in the spec/plan?
|
||||
- Is anything over-engineered?
|
||||
|
||||
#### Poor Test Design
|
||||
- Are tests just testing mocks?
|
||||
- Is test logic missing?
|
||||
- Are tests too shallow?
|
||||
|
||||
#### Missing Edge Cases
|
||||
- Are null/undefined handled?
|
||||
- Are error cases covered?
|
||||
- Are boundary conditions tested?
|
||||
|
||||
#### Error Handling
|
||||
- Are errors caught appropriately?
|
||||
- Are error messages helpful?
|
||||
- Is error handling tested?
|
||||
|
||||
#### Documentation
|
||||
- Are complex parts documented?
|
||||
- Are public APIs documented?
|
||||
- Is the README updated if needed?
|
||||
|
||||
### Step 5: Provide Feedback
|
||||
|
||||
**If issues are found:**
|
||||
|
||||
Provide specific, actionable feedback:
|
||||
|
||||
```markdown
|
||||
## Review Feedback: Task [N]
|
||||
|
||||
### Issues Found
|
||||
|
||||
#### [Issue Category]
|
||||
|
||||
**Location:** `path/to/file.ts:42-48`
|
||||
|
||||
**Problem:**
|
||||
[Clear description of the issue]
|
||||
|
||||
**Why it matters:**
|
||||
[Explanation of impact]
|
||||
|
||||
**Required change:**
|
||||
[Specific fix needed]
|
||||
|
||||
---
|
||||
|
||||
[Repeat for each issue]
|
||||
|
||||
### Priority
|
||||
|
||||
- 🔴 Blocking: [N] issues must be fixed
|
||||
- 🟡 Important: [N] issues should be fixed
|
||||
- 🟢 Nice-to-have: [N] suggestions
|
||||
```
|
||||
|
||||
Be specific:
|
||||
- ✅ "Line 42: `getUserData()` should handle null case when user not found"
|
||||
- ❌ "Error handling looks wrong"
|
||||
|
||||
**If no issues found:**
|
||||
|
||||
Provide sign-off:
|
||||
|
||||
```markdown
|
||||
## Review Sign-Off: Task [N]
|
||||
|
||||
✅ All requirements from spec met
|
||||
✅ Implementation follows plan
|
||||
✅ Tests present and passing ([N] tests)
|
||||
✅ Code quality acceptable
|
||||
✅ No blocking issues found
|
||||
|
||||
**Approved for completion.**
|
||||
|
||||
The implementer may now:
|
||||
1. Mark task [N] complete in tasks.md
|
||||
2. Create commit
|
||||
```
|
||||
|
||||
### Step 6: Follow-Up
|
||||
|
||||
**For task-level review with issues:**
|
||||
1. User will copy feedback to implementer session
|
||||
2. Implementer will fix issues
|
||||
3. User will request re-review
|
||||
4. Repeat from Step 3
|
||||
|
||||
**For task-level review with sign-off:**
|
||||
1. Implementer marks task complete
|
||||
2. Implementer creates commit
|
||||
3. Ready for next task
|
||||
|
||||
**For final review with issues:**
|
||||
1. User spawns new implementer to address issues
|
||||
2. Iterate until clean
|
||||
|
||||
**For final review with sign-off:**
|
||||
1. Generate final report (see below)
|
||||
2. Workflow complete
|
||||
|
||||
## Final Review Report Format
|
||||
|
||||
For final reviews that pass:
|
||||
|
||||
```markdown
|
||||
# Final Review Report: [Feature/Fix Name]
|
||||
|
||||
**Date:** [Date]
|
||||
**Reviewer:** Development Review Agent
|
||||
**Spec:** docs/development/NNN-<name>/spec.md
|
||||
**Plan:** docs/development/NNN-<name>/plan.md
|
||||
**Tasks:** docs/development/NNN-<name>/tasks.md
|
||||
|
||||
## Summary
|
||||
|
||||
[2-3 sentence overview of what was implemented]
|
||||
|
||||
## Review Results
|
||||
|
||||
✅ All requirements from spec met
|
||||
✅ Implementation follows plan
|
||||
✅ Tests present and passing
|
||||
✅ Code quality acceptable
|
||||
✅ All [N] tasks completed
|
||||
|
||||
## Test Coverage
|
||||
|
||||
- Unit tests: [N] passing
|
||||
- Integration tests: [N] passing
|
||||
- E2E tests: [N] passing
|
||||
- Total: [N] tests passing
|
||||
|
||||
## Deliverables
|
||||
|
||||
### Files Created
|
||||
- `path/to/new/file1.ts`
|
||||
- `path/to/new/file2.ts`
|
||||
|
||||
### Files Modified
|
||||
- `path/to/existing/file1.ts` - [brief description of changes]
|
||||
- `path/to/existing/file2.ts` - [brief description of changes]
|
||||
|
||||
### Documentation Updated
|
||||
- [Any docs that were updated]
|
||||
|
||||
## Commits
|
||||
|
||||
[N] commits made:
|
||||
- [commit hash]: Implement [task 1]
|
||||
- [commit hash]: Implement [task 2]
|
||||
- ...
|
||||
|
||||
## Sign-Off
|
||||
|
||||
Implementation complete and meets all requirements.
|
||||
Ready for integration.
|
||||
|
||||
---
|
||||
|
||||
**Review completed:** [Timestamp]
|
||||
```
|
||||
|
||||
## Review Principles
|
||||
|
||||
1. **Fresh perspective** - No assumptions about what should be there
|
||||
2. **Spec is truth** - The spec defines success
|
||||
3. **Plan is guidance** - The plan defines the approach
|
||||
4. **Be thorough** - Actually check, don't skim
|
||||
5. **Be specific** - Vague feedback wastes time
|
||||
6. **Be fair** - Don't ask for changes beyond spec/plan without good reason
|
||||
7. **Be honest** - Quality matters more than feelings
|
||||
|
||||
## What NOT to Do
|
||||
|
||||
❌ **Don't accept insufficient work** - If it doesn't meet requirements, don't sign off
|
||||
|
||||
❌ **Don't scope creep** - Don't ask for features not in spec unless there's a genuine issue
|
||||
|
||||
❌ **Don't skip testing** - Always verify tests exist and pass
|
||||
|
||||
❌ **Don't assume** - Read the code; don't trust claims
|
||||
|
||||
❌ **Don't be vague** - Give specific locations and changes needed
|
||||
|
||||
❌ **Don't be blocked by style** - Focus on correctness, not formatting preferences
|
||||
|
||||
❌ **Don't approve tests that test mocks** - Tests should validate real behavior
|
||||
|
||||
## Common Issues to Watch For
|
||||
|
||||
### Test Issues
|
||||
- Tests that only verify mocked behavior
|
||||
- Missing edge case tests
|
||||
- E2E tests using mocks instead of real data
|
||||
- Passing tests that don't actually validate requirements
|
||||
|
||||
### Implementation Issues
|
||||
- Missing error handling
|
||||
- Unhandled null/undefined cases
|
||||
- Code duplication (DRY violations)
|
||||
- Over-engineering (YAGNI violations)
|
||||
- Deviation from the plan
|
||||
|
||||
### Completeness Issues
|
||||
- Missing files from the plan
|
||||
- Partial implementations
|
||||
- Incomplete error cases
|
||||
- Missing documentation
|
||||
|
||||
## Running Tests
|
||||
|
||||
Always run tests yourself:
|
||||
|
||||
```bash
|
||||
# Use the test command from the plan
|
||||
npm test # or
|
||||
pytest # or
|
||||
cargo test # or
|
||||
[project-specific command]
|
||||
```
|
||||
|
||||
Verify they actually pass. Don't trust claims without verification.
|
||||
|
||||
## Context Awareness
|
||||
|
||||
You are part of a larger workflow:
|
||||
- **Spec phase** defined requirements
|
||||
- **Plan phase** defined approach
|
||||
- **Implementation phase** executed the work
|
||||
- **Review phase (YOU)** validate quality
|
||||
|
||||
Your role is quality gatekeeper. Be thorough, be fair, be honest. The goal is shipping correct, maintainable code.
|
||||
Reference in New Issue
Block a user