fraim-framework 2.0.55 → 2.0.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/registry/ai-manager-rules/customer-development-phases/phase1-customer-profiling.md +101 -0
- package/dist/registry/ai-manager-rules/customer-development-phases/phase2-platform-discovery.md +235 -0
- package/dist/registry/ai-manager-rules/customer-development-phases/phase3-prospect-qualification.md +243 -0
- package/dist/registry/ai-manager-rules/customer-development-phases/phase4-inventory-compilation.md +206 -0
- package/dist/registry/ai-manager-rules/user-survey-phases/phase1-survey-scoping.md +60 -0
- package/dist/registry/ai-manager-rules/user-survey-phases/phase2-survey-build-linkedin.md +23 -0
- package/dist/registry/ai-manager-rules/user-survey-phases/phase3-survey-build-reddit.md +22 -0
- package/dist/registry/ai-manager-rules/user-survey-phases/phase4-survey-build-x.md +21 -0
- package/dist/registry/ai-manager-rules/user-survey-phases/phase5-survey-build-facebook.md +19 -0
- package/dist/registry/ai-manager-rules/user-survey-phases/phase6-survey-build-custom.md +15 -0
- package/dist/registry/ai-manager-rules/user-survey-phases/phase7-survey-dispatch.md +45 -0
- package/dist/registry/templates/bootstrap/ARCHITECTURE-TEMPLATE.md +53 -0
- package/dist/registry/templates/bootstrap/CODE-QUALITY-REPORT-TEMPLATE.md +37 -0
- package/dist/registry/templates/bootstrap/TEST-COVERAGE-REPORT-TEMPLATE.md +35 -0
- package/dist/registry/templates/business-development/IDEATION-REPORT-TEMPLATE.md +29 -0
- package/dist/registry/templates/business-development/PRICING-STRATEGY-TEMPLATE.md +126 -0
- package/dist/registry/templates/customer-development/customer-interview-template.md +99 -0
- package/dist/registry/templates/customer-development/customer-persona-template.md +69 -0
- package/dist/registry/templates/customer-development/follow-up-email-templates.md +132 -0
- package/dist/registry/templates/customer-development/insight-analysis-template.md +74 -0
- package/dist/registry/templates/customer-development/prospect-inventory-template.csv +3 -0
- package/dist/registry/templates/customer-development/search-strategy-template.md +123 -0
- package/dist/registry/templates/customer-development/strategic-recommendations-template.md +53 -0
- package/dist/registry/templates/customer-development/thank-you-email-template.html +124 -0
- package/dist/registry/templates/customer-development/thank-you-note-template.md +16 -0
- package/dist/registry/templates/customer-development/triage-log-template.md +278 -0
- package/dist/registry/templates/customer-development/weekly-newsletter-template.html +204 -0
- package/dist/registry/templates/evidence/Design-Evidence.md +30 -0
- package/dist/registry/templates/evidence/Implementation-BugEvidence.md +94 -0
- package/dist/registry/templates/evidence/Implementation-FeatureEvidence.md +129 -0
- package/dist/registry/templates/evidence/Spec-Evidence.md +19 -0
- package/dist/registry/templates/help/HelpNeeded.md +14 -0
- package/dist/registry/templates/legal/NDA-TEMPLATE.md +170 -0
- package/dist/registry/templates/legal/PATENT-TEMPLATE.md +372 -0
- package/dist/registry/templates/legal/TRADEMARK-TEMPLATE.md +339 -0
- package/dist/registry/templates/legal/contract-review-checklist.md +193 -0
- package/dist/registry/templates/legal/review-report-template.md +198 -0
- package/dist/registry/templates/legal/saas-terms-template.md +174 -0
- package/dist/registry/templates/legal/sow-template.md +117 -0
- package/dist/registry/templates/legal/template-variables.md +131 -0
- package/dist/registry/templates/marketing/DOMAIN-REGISTRATION-TEMPLATE.md +194 -0
- package/dist/registry/templates/marketing/HBR-ARTICLE-TEMPLATE.md +66 -0
- package/dist/registry/templates/marketing/STORYTELLING-TEMPLATE.md +130 -0
- package/dist/registry/templates/marketing/WEBSITE-TEMPLATE.md +262 -0
- package/dist/registry/templates/marketing/github-pages-workflow.yml +64 -0
- package/dist/registry/templates/replicate/implementation-checklist.md +39 -0
- package/dist/registry/templates/replicate/use-cases-template.md +88 -0
- package/dist/registry/templates/retrospective/RETROSPECTIVE-TEMPLATE.md +55 -0
- package/dist/registry/templates/specs/BUGSPEC-TEMPLATE.md +37 -0
- package/dist/registry/templates/specs/FEATURESPEC-TEMPLATE.md +66 -0
- package/dist/registry/templates/specs/TECHSPEC-TEMPLATE.md +39 -0
- package/dist/registry/workflows/bootstrap/create-architecture.md +38 -0
- package/dist/registry/workflows/bootstrap/detect-broken-windows.md +300 -0
- package/dist/registry/workflows/bootstrap/evaluate-code-quality.md +35 -0
- package/dist/registry/workflows/bootstrap/verify-test-coverage.md +36 -0
- package/dist/registry/workflows/brainstorming/blue-sky-brainstorming.md +211 -0
- package/dist/registry/workflows/brainstorming/codebase-brainstorming.md +165 -0
- package/dist/registry/workflows/business-development/create-business-plan.md +737 -0
- package/dist/registry/workflows/business-development/ideate-business-opportunity.md +55 -0
- package/dist/registry/workflows/business-development/price-product.md +325 -0
- package/dist/registry/workflows/compliance/detect-compliance-requirements.md +78 -0
- package/dist/registry/workflows/compliance/generate-audit-evidence.md +75 -0
- package/dist/registry/workflows/compliance/soc2-evidence-generator.md +332 -0
- package/dist/registry/workflows/customer-development/insight-analysis.md +156 -0
- package/dist/registry/workflows/customer-development/insight-triage.md +938 -0
- package/dist/registry/workflows/customer-development/interview-preparation.md +452 -0
- package/dist/registry/workflows/customer-development/linkedin-outreach.md +593 -0
- package/dist/registry/workflows/customer-development/strategic-brainstorming.md +146 -0
- package/dist/registry/workflows/customer-development/thank-customers.md +203 -0
- package/dist/registry/workflows/customer-development/user-survey-dispatch.md +60 -0
- package/dist/registry/workflows/customer-development/users-to-target.md +112 -0
- package/dist/registry/workflows/customer-development/weekly-newsletter.md +366 -0
- package/dist/registry/workflows/deploy/cloud-deployment.md +310 -0
- package/dist/registry/workflows/improve-fraim/contribute.md +32 -0
- package/dist/registry/workflows/improve-fraim/file-issue.md +32 -0
- package/dist/registry/workflows/learning/build-skillset.md +212 -0
- package/dist/registry/workflows/learning/synthesize-learnings.md +284 -0
- package/dist/registry/workflows/legal/contract-review-analysis.md +382 -0
- package/dist/registry/workflows/legal/nda.md +69 -0
- package/dist/registry/workflows/legal/patent-filing.md +76 -0
- package/dist/registry/workflows/legal/saas-contract-development.md +213 -0
- package/dist/registry/workflows/legal/trademark-filing.md +77 -0
- package/dist/registry/workflows/marketing/content-creation.md +37 -0
- package/dist/registry/workflows/marketing/convert-to-pdf.md +235 -0
- package/dist/registry/workflows/marketing/create-modern-website.md +456 -0
- package/dist/registry/workflows/marketing/domain-registration.md +323 -0
- package/dist/registry/workflows/marketing/hbr-article.md +73 -0
- package/dist/registry/workflows/marketing/launch-checklist.md +37 -0
- package/dist/registry/workflows/marketing/marketing-strategy.md +45 -0
- package/dist/registry/workflows/marketing/storytelling.md +65 -0
- package/dist/registry/workflows/performance/analyze-performance.md +65 -0
- package/dist/registry/workflows/product-building/design.md +103 -0
- package/dist/registry/workflows/product-building/implement.md +74 -0
- package/dist/registry/workflows/product-building/iterate-on-pr-comments.md +70 -0
- package/dist/registry/workflows/product-building/prep-issue.md +41 -0
- package/dist/registry/workflows/product-building/prototype.md +65 -0
- package/dist/registry/workflows/product-building/resolve.md +168 -0
- package/dist/registry/workflows/product-building/retrospect.md +86 -0
- package/dist/registry/workflows/product-building/spec.md +181 -0
- package/dist/registry/workflows/product-building/test.md +125 -0
- package/dist/registry/workflows/productivity-report/productivity-report.md +263 -0
- package/dist/registry/workflows/quality-assurance/browser-validation.md +221 -0
- package/dist/registry/workflows/quality-assurance/iterative-improvement-cycle.md +562 -0
- package/dist/registry/workflows/replicate/replicate-discovery.md +336 -0
- package/dist/registry/workflows/replicate/replicate-to-issues.md +324 -0
- package/dist/registry/workflows/reviewer/review-implementation-vs-design-spec.md +638 -0
- package/dist/registry/workflows/reviewer/review-implementation-vs-feature-spec.md +675 -0
- package/dist/registry/workflows/startup-credits/aws-activate-application.md +535 -0
- package/dist/registry/workflows/startup-credits/google-cloud-application.md +647 -0
- package/dist/registry/workflows/startup-credits/microsoft-azure-application.md +538 -0
- package/dist/src/ai-manager/ai-manager.js +4 -6
- package/dist/tests/test-users-to-target-workflow.js +2 -2
- package/package.json +1 -1
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase1-customer-profiling.md +0 -11
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase1-survey-scoping.md +0 -11
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase2-platform-discovery.md +0 -11
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase2-survey-build-linkedin.md +0 -11
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase3-prospect-qualification.md +0 -11
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase3-survey-build-reddit.md +0 -11
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase4-inventory-compilation.md +0 -11
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase4-survey-build-x.md +0 -11
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase5-survey-build-facebook.md +0 -11
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase6-survey-build-custom.md +0 -11
- package/registry/stubs/workflows/customer-development/ai-coach-phases/phase7-survey-dispatch.md +0 -11
- package/registry/stubs/workflows/customer-development/templates/customer-persona-template.md +0 -11
- package/registry/stubs/workflows/customer-development/templates/search-strategy-template.md +0 -11
|
@@ -0,0 +1,675 @@
|
|
|
1
|
+
# Review Implementation vs Feature Spec
|
|
2
|
+
|
|
3
|
+
## INTENT
|
|
4
|
+
To systematically verify that the implementation solves the customer problem and delivers the user experience described in the feature spec, ensuring functional completeness and user value.
|
|
5
|
+
|
|
6
|
+
## PRINCIPLES
|
|
7
|
+
- **User-Centric Validation**: Every user scenario must work as specified
|
|
8
|
+
- **Problem-Solution Fit**: Implementation must solve the customer problem
|
|
9
|
+
- **Experience Fidelity**: UI/UX must match feature spec and mocks
|
|
10
|
+
- **Validation Plan Execution**: All validation methods must be executed
|
|
11
|
+
- **End-to-End Testing**: Complete user workflows must be validated with authentication
|
|
12
|
+
|
|
13
|
+
## REVIEW WORKFLOW
|
|
14
|
+
|
|
15
|
+
### Step 1: Issue Identification and Evidence Loading
|
|
16
|
+
- Get {issue_number} from context
|
|
17
|
+
|
|
18
|
+
**GitHub Repository Context**: Before using GitHub MCP tools, read the local `.fraim/config.json` file to get the repository context:
|
|
19
|
+
- Use `git.repoOwner` for the GitHub repository owner
|
|
20
|
+
- Use `git.repoName` for the GitHub repository name
|
|
21
|
+
- These values are required for GitHub MCP API calls (owner/repo parameters)
|
|
22
|
+
|
|
23
|
+
- Verify issue has `status:design-review-passed` label
|
|
24
|
+
- Locate feature spec: `docs/feature specs/{issue}-*.md`
|
|
25
|
+
- If feature spec doesn't exist: ⚠️ Check if this is a bug fix (may not have feature spec). If feature, BLOCKER - request spec phase first.
|
|
26
|
+
- **Load Design Review Summary**: Read `docs/evidence/{issue}-design-review-summary.md`
|
|
27
|
+
- If summary doesn't exist: ❌ BLOCKER - Design review must complete first
|
|
28
|
+
- Review summary to understand what was approved in design review
|
|
29
|
+
- **Load Implementation Evidence**: Read `docs/evidence/{issue}-implementation-evidence.md`
|
|
30
|
+
- Review evidence for functional/user experience aspects
|
|
31
|
+
- **Check for Existing Feedback**: Check if `docs/evidence/{issue}-feature-reviewer-feedback.md` exists
|
|
32
|
+
- If exists, this is an iteration (check iteration count)
|
|
33
|
+
- Track iteration number (max 3 iterations)
|
|
34
|
+
|
|
35
|
+
### Step 2: Feature Spec Analysis
|
|
36
|
+
**MUST read and extract:**
|
|
37
|
+
- Customer problem statement
|
|
38
|
+
- Customer's desired outcome
|
|
39
|
+
- User experience workflow (step-by-step)
|
|
40
|
+
- Validation Plan (all validation methods)
|
|
41
|
+
- UI mocks (if applicable): `docs/feature specs/mocks/{issue}-*.png` (or similar)
|
|
42
|
+
- Alternatives considered (verify chosen approach)
|
|
43
|
+
|
|
44
|
+
**Create a checklist mapping:**
|
|
45
|
+
- List each step in user experience workflow
|
|
46
|
+
- List each validation method from Validation Plan
|
|
47
|
+
- List each UI mock element (if applicable)
|
|
48
|
+
- This becomes your review checklist
|
|
49
|
+
|
|
50
|
+
### Step 3: Customer Problem Verification
|
|
51
|
+
**Verify implementation solves the problem:**
|
|
52
|
+
- [ ] Read customer problem statement from spec
|
|
53
|
+
- [ ] Understand desired outcome from spec
|
|
54
|
+
- [ ] Verify implementation addresses the problem
|
|
55
|
+
- Check code solves the stated problem
|
|
56
|
+
- Verify solution matches desired outcome
|
|
57
|
+
- [ ] Check if solution matches chosen alternative (if alternatives documented)
|
|
58
|
+
- Review alternatives table in spec
|
|
59
|
+
- Verify implementation matches chosen approach
|
|
60
|
+
- Note if different approach was used (and why)
|
|
61
|
+
|
|
62
|
+
**Document findings:**
|
|
63
|
+
- Problem Statement: [from spec]
|
|
64
|
+
- Desired Outcome: [from spec]
|
|
65
|
+
- Solution Status: ✅ Addresses problem / ❌ Doesn't address problem
|
|
66
|
+
- Notes: [any concerns or deviations]
|
|
67
|
+
|
|
68
|
+
### Step 3.5: Authentication Setup for End-to-End Testing
|
|
69
|
+
**🚨 CRITICAL: Set up authentication before testing user workflows**
|
|
70
|
+
|
|
71
|
+
**Determine if authentication is needed:**
|
|
72
|
+
- [ ] Check if user experience workflow requires authentication
|
|
73
|
+
- [ ] Check if validation plan includes browser/UI validation
|
|
74
|
+
- [ ] Check if feature requires logged-in user state
|
|
75
|
+
|
|
76
|
+
**If authentication is needed, choose one approach:**
|
|
77
|
+
|
|
78
|
+
#### Option A: Request Credentials (if applicable)
|
|
79
|
+
- [ ] **When to use**: If OAuth/SSO automation is not possible or if testing requires specific test accounts
|
|
80
|
+
- [ ] Ask user: "I need credentials to test the end-to-end user workflow. Please provide:"
|
|
81
|
+
- Username/email
|
|
82
|
+
- Password (or test account credentials)
|
|
83
|
+
- Any additional auth requirements (2FA, etc.)
|
|
84
|
+
- [ ] Store credentials securely (do not commit to repo)
|
|
85
|
+
- [ ] Use credentials to authenticate during testing
|
|
86
|
+
- [ ] Document: "Using provided credentials for end-to-end testing"
|
|
87
|
+
|
|
88
|
+
#### Option B: Cookie-Driven Browser Session (preferred for UI features)
|
|
89
|
+
- [ ] **When to use**: For UI features that require authentication - this is the preferred method
|
|
90
|
+
- [ ] Ask user: "I need to test the end-to-end user workflow. Please log in to the application in a browser session I can access, so I can validate the complete user experience. Once you're logged in, I'll use that session for all my validations."
|
|
91
|
+
- [ ] **Wait for user confirmation**: User logs in manually (complies with OAuth ToS, avoids bot detection)
|
|
92
|
+
- [ ] **Verify login state**:
|
|
93
|
+
- Navigate to application URL
|
|
94
|
+
- Check for authenticated state (user menu, profile icon, etc.)
|
|
95
|
+
- Take snapshot to verify login succeeded
|
|
96
|
+
- [ ] **Session persistence**:
|
|
97
|
+
- Browser MCP tools automatically maintain cookies between invocations
|
|
98
|
+
- Or use Playwright with `storageState` to save/load auth state
|
|
99
|
+
- Session persists for all subsequent validations
|
|
100
|
+
- [ ] Document: "Using cookie-driven browser session for end-to-end testing (user logged in manually)"
|
|
101
|
+
|
|
102
|
+
**Browser Session Setup (if using Option B):**
|
|
103
|
+
|
|
104
|
+
**Using Browser MCP Tools (if available):**
|
|
105
|
+
- Browser MCP tools (like `browser_navigate`, `browser_snapshot`) automatically maintain session state
|
|
106
|
+
- Cookies persist between browser invocations
|
|
107
|
+
- User logs in once, agent can reuse session for all validations
|
|
108
|
+
- Reference: Read `workflows/customer-development/linkedin-outreach.md` (via `get_fraim_file`) to see this pattern
|
|
109
|
+
- **Process**:
|
|
110
|
+
1. Use `browser_navigate` to open application
|
|
111
|
+
2. Use `browser_snapshot` to check if already logged in
|
|
112
|
+
3. If not logged in, ask user to log in manually
|
|
113
|
+
4. Use `browser_wait_for` to detect login success (e.g., wait for "Dashboard" text)
|
|
114
|
+
5. Verify with `browser_snapshot` - should see authenticated UI elements
|
|
115
|
+
6. Session automatically persists for future browser operations
|
|
116
|
+
|
|
117
|
+
**Using Playwright (if MCP tools not available):**
|
|
118
|
+
- Use Playwright with `storageState` to save/load authentication
|
|
119
|
+
- Reference: Look for authentication setup and Playwright configuration in the project's test files.
|
|
120
|
+
- **Process**:
|
|
121
|
+
1. Launch browser: `chromium.launch()`
|
|
122
|
+
2. Create context: `browser.newContext()`
|
|
123
|
+
3. Navigate to application
|
|
124
|
+
4. Ask user to log in manually in the browser window
|
|
125
|
+
5. Wait for login success (check URL or UI elements)
|
|
126
|
+
6. Save auth state: `context.storageState({ path: 'auth-state.json' })`
|
|
127
|
+
7. Reuse auth state in future: `browser.newContext({ storageState: 'auth-state.json' })`
|
|
128
|
+
|
|
129
|
+
**Setup Steps (General):**
|
|
130
|
+
1. Ask user: "I need to test the end-to-end user workflow. Please log in to the application now. I'll wait for you to complete the login."
|
|
131
|
+
2. Wait for user confirmation that login is complete
|
|
132
|
+
3. Verify login: Navigate to authenticated page, check for user menu/profile/authenticated UI
|
|
133
|
+
4. Document: "Using authenticated browser session for end-to-end validation (user logged in manually)"
|
|
134
|
+
5. Reuse session for all subsequent workflow validations
|
|
135
|
+
6. Take screenshots at key validation points to show authenticated state
|
|
136
|
+
|
|
137
|
+
**Verification:**
|
|
138
|
+
- [ ] Test authentication works: Navigate to protected page
|
|
139
|
+
- [ ] Verify user is logged in (check for user menu, profile, etc.)
|
|
140
|
+
- [ ] Confirm session persists across multiple page navigations
|
|
141
|
+
- [ ] Document authentication method used in review evidence
|
|
142
|
+
|
|
143
|
+
**If authentication setup fails:**
|
|
144
|
+
- [ ] Document what prevented authentication
|
|
145
|
+
- [ ] Ask user for alternative approach
|
|
146
|
+
- [ ] Note in review: "End-to-end testing limited due to authentication setup"
|
|
147
|
+
- [ ] Proceed with available validation methods
|
|
148
|
+
|
|
149
|
+
### Step 4: User Experience Validation
|
|
150
|
+
**For each step in the user experience workflow:**
|
|
151
|
+
|
|
152
|
+
- [ ] **Step Identified**: Map each workflow step from spec
|
|
153
|
+
- [ ] **Implementation Verified**: Check code implements the step
|
|
154
|
+
- Search codebase for relevant code
|
|
155
|
+
- Verify UI components exist (if UI feature)
|
|
156
|
+
- Verify API endpoints exist (if API feature)
|
|
157
|
+
- [ ] **Functionality Tested**: Actually test the step (browser, API, etc.)
|
|
158
|
+
- Use authenticated browser session (from Step 3.5)
|
|
159
|
+
- Navigate through workflow step-by-step
|
|
160
|
+
- Verify each step works as described
|
|
161
|
+
- [ ] **Result Verified**: Ensure step works as described
|
|
162
|
+
- Check actual behavior matches spec description
|
|
163
|
+
- Verify data appears correctly (not just UI renders)
|
|
164
|
+
- Take screenshots at key points
|
|
165
|
+
|
|
166
|
+
**Example for UI feature (with authentication):**
|
|
167
|
+
- Step: "User clicks on tab X"
|
|
168
|
+
- [ ] Verify tab X exists in UI code
|
|
169
|
+
- [ ] **Use authenticated browser session** (from Step 3.5)
|
|
170
|
+
- [ ] Navigate to page, click tab X
|
|
171
|
+
- [ ] Verify tab X actually works (not just exists)
|
|
172
|
+
- [ ] Take screenshot for evidence
|
|
173
|
+
- Step: "User sees list Y"
|
|
174
|
+
- [ ] Verify list Y is rendered
|
|
175
|
+
- [ ] **Use authenticated browser session** to check list Y
|
|
176
|
+
- [ ] Check list Y shows correct data (verify data matches expected)
|
|
177
|
+
- [ ] Verify list Y matches spec description
|
|
178
|
+
- [ ] Take screenshot showing list Y with data
|
|
179
|
+
|
|
180
|
+
**Example for API feature:**
|
|
181
|
+
- Step: "Call API A with params X, Y, Z"
|
|
182
|
+
- [ ] Verify API endpoint exists
|
|
183
|
+
- [ ] Test with curl: `curl -X POST /api/a -d '{"x":..., "y":..., "z":...}'`
|
|
184
|
+
- [ ] Verify response matches expected outcome
|
|
185
|
+
- [ ] Include curl output in evidence
|
|
186
|
+
|
|
187
|
+
**Document findings:**
|
|
188
|
+
- Create table: Step | Description | Status | Evidence | Notes
|
|
189
|
+
|
|
190
|
+
### Step 5: UI Mock Compliance (if applicable)
|
|
191
|
+
**If feature spec includes UI mocks:**
|
|
192
|
+
- [ ] Locate mocks: `docs/feature specs/mocks/{issue}-*.png` (or similar)
|
|
193
|
+
- [ ] Compare implementation to mocks
|
|
194
|
+
- Open implementation in browser (with authentication)
|
|
195
|
+
- Compare layout to mock
|
|
196
|
+
- Compare components to mock
|
|
197
|
+
- Compare interactions to mock
|
|
198
|
+
- [ ] Verify layout matches
|
|
199
|
+
- Check positioning, spacing, colors
|
|
200
|
+
- Verify responsive behavior (if specified)
|
|
201
|
+
- [ ] Verify components match
|
|
202
|
+
- Check all components from mock exist
|
|
203
|
+
- Verify component styling matches
|
|
204
|
+
- [ ] Verify interactions match
|
|
205
|
+
- Test interactions described in spec
|
|
206
|
+
- Verify behavior matches mock expectations
|
|
207
|
+
- [ ] Document any intentional deviations with rationale
|
|
208
|
+
- Note if deviations are acceptable
|
|
209
|
+
- Explain why deviations exist
|
|
210
|
+
|
|
211
|
+
**Document findings:**
|
|
212
|
+
- Create table: Mock Element | Spec | Implementation | Match | Notes
|
|
213
|
+
|
|
214
|
+
### Step 6: Validation Plan Execution
|
|
215
|
+
**For each validation method in feature spec Validation Plan:**
|
|
216
|
+
- [ ] **Method Identified**: Map each validation method from spec
|
|
217
|
+
- [ ] **Execution Verified**: Check evidence shows method was executed
|
|
218
|
+
- Look in PR evidence for validation results
|
|
219
|
+
- Check for screenshots, curl outputs, test results
|
|
220
|
+
- [ ] **Result Verified**: Ensure validation actually passed
|
|
221
|
+
- Check evidence shows success, not just attempt
|
|
222
|
+
- Verify no "pending" or "TODO" markers
|
|
223
|
+
- [ ] **Evidence Quality**: Verify evidence is complete (screenshots, curl output, etc.)
|
|
224
|
+
- Screenshots for UI validation
|
|
225
|
+
- Curl outputs for API validation
|
|
226
|
+
- Database queries for data validation
|
|
227
|
+
|
|
228
|
+
**Validation methods typically include:**
|
|
229
|
+
- Browser validation (UI testing) - **REQUIRES authentication if feature needs login**
|
|
230
|
+
- API validation (curl/Postman) - May require auth tokens
|
|
231
|
+
- Database validation (check data state)
|
|
232
|
+
- User workflow validation (end-to-end) - **REQUIRES full authentication setup**
|
|
233
|
+
|
|
234
|
+
**For browser/UI validation with authentication:**
|
|
235
|
+
- [ ] Use authenticated browser session from Step 3.5
|
|
236
|
+
- [ ] Navigate through complete user workflow
|
|
237
|
+
- [ ] Verify each step works as described in spec
|
|
238
|
+
- [ ] Take screenshots at key points
|
|
239
|
+
- [ ] Verify data appears correctly (not just UI renders)
|
|
240
|
+
- [ ] Test error states if applicable
|
|
241
|
+
- [ ] Document any issues found during end-to-end testing
|
|
242
|
+
|
|
243
|
+
**Document findings:**
|
|
244
|
+
- Create table: Validation Method | Required | Executed | Result | Evidence | Auth Status
|
|
245
|
+
|
|
246
|
+
### Step 7: Edge Cases, Negative Cases, and Error Handling
|
|
247
|
+
**🚨 CRITICAL: Validate both positive and negative scenarios**
|
|
248
|
+
|
|
249
|
+
#### Positive Case Validation (Already in Step 4)
|
|
250
|
+
- [ ] All user workflow steps work (from Step 4)
|
|
251
|
+
- [ ] Success states work correctly
|
|
252
|
+
|
|
253
|
+
#### Negative Case Validation (What Shouldn't Work)
|
|
254
|
+
**For each user workflow step, test negative scenarios:**
|
|
255
|
+
- [ ] **Invalid Input Handling**: Test with invalid/malformed inputs
|
|
256
|
+
- Example: Empty fields, wrong data types, out-of-range values
|
|
257
|
+
- Verify feature rejects invalid inputs gracefully
|
|
258
|
+
- Verify error messages are clear and actionable
|
|
259
|
+
- [ ] **Unauthorized Access**: Test with wrong permissions/authentication
|
|
260
|
+
- Example: Try to access feature without login (if required)
|
|
261
|
+
- Example: Try to access another user's data
|
|
262
|
+
- Verify proper error handling (401, 403, etc.)
|
|
263
|
+
- [ ] **Missing Data Scenarios**: Test with missing required data
|
|
264
|
+
- Example: Required fields not provided
|
|
265
|
+
- Example: Dependencies not set up
|
|
266
|
+
- Verify feature handles missing data gracefully
|
|
267
|
+
- [ ] **Boundary Conditions**: Test at limits/edges
|
|
268
|
+
- Example: Maximum/minimum values, empty lists, null states
|
|
269
|
+
- Verify feature handles boundaries correctly
|
|
270
|
+
- [ ] **Concurrent Operations**: Test simultaneous actions (if applicable)
|
|
271
|
+
- Example: Multiple users accessing same resource
|
|
272
|
+
- Verify no race conditions or data corruption
|
|
273
|
+
|
|
274
|
+
**Document findings:**
|
|
275
|
+
- Create table: Negative Scenario | Tested | Result | Error Handling | Notes
|
|
276
|
+
|
|
277
|
+
#### Edge Cases from Spec
|
|
278
|
+
- [ ] Review alternatives considered in spec
|
|
279
|
+
- Read alternatives table from spec
|
|
280
|
+
- Understand why chosen approach was selected
|
|
281
|
+
- [ ] Verify chosen approach is implemented
|
|
282
|
+
- Check code matches chosen alternative
|
|
283
|
+
- Verify not using discarded alternatives
|
|
284
|
+
- [ ] Check if edge cases from spec are handled
|
|
285
|
+
- Review spec for edge case mentions
|
|
286
|
+
- Verify edge cases are handled in code
|
|
287
|
+
- Test each edge case explicitly
|
|
288
|
+
|
|
289
|
+
**Document findings:**
|
|
290
|
+
- Create table: Edge Case | From Spec | Tested | Result | Notes
|
|
291
|
+
|
|
292
|
+
#### Error Handling Validation
|
|
293
|
+
- [ ] **Error Messages**: Verify error messages are user-friendly
|
|
294
|
+
- Test error scenarios and check messages
|
|
295
|
+
- Verify messages explain what went wrong
|
|
296
|
+
- Verify messages suggest how to fix (if applicable)
|
|
297
|
+
- [ ] **Error States**: Verify error states match spec descriptions
|
|
298
|
+
- Check UI shows appropriate error states
|
|
299
|
+
- Verify error states don't break the UI
|
|
300
|
+
- Verify users can recover from errors
|
|
301
|
+
- [ ] **Error Logging**: Verify errors are logged appropriately
|
|
302
|
+
- Check server logs for error details
|
|
303
|
+
- Verify errors don't expose sensitive information
|
|
304
|
+
- Verify errors are actionable for debugging
|
|
305
|
+
|
|
306
|
+
**Document findings:**
|
|
307
|
+
- Error Handling: ✅ User-friendly / ❌ Confusing
|
|
308
|
+
- Error States: ✅ Match spec / ❌ Don't match
|
|
309
|
+
- Error Logging: ✅ Appropriate / ❌ Missing or excessive
|
|
310
|
+
|
|
311
|
+
### Step 8: Functional Completeness Check
|
|
312
|
+
**Verify feature is functionally complete:**
|
|
313
|
+
- [ ] All user workflow steps work
|
|
314
|
+
- Test complete workflow end-to-end
|
|
315
|
+
- Verify no broken steps
|
|
316
|
+
- [ ] No broken links or missing functionality
|
|
317
|
+
- Check all links work
|
|
318
|
+
- Verify no 404s or missing pages
|
|
319
|
+
- [ ] **Positive Cases Work**: Success scenarios function correctly
|
|
320
|
+
- Test all success paths
|
|
321
|
+
- Verify success feedback is clear
|
|
322
|
+
- Verify data is saved/updated correctly
|
|
323
|
+
- [ ] **Negative Cases Handled**: Invalid inputs rejected gracefully
|
|
324
|
+
- Test invalid inputs (from Step 7)
|
|
325
|
+
- Verify proper error handling
|
|
326
|
+
- Verify no crashes or data corruption
|
|
327
|
+
- [ ] **Edge Cases Handled**: Boundary conditions work correctly
|
|
328
|
+
- Test edge cases (from Step 7)
|
|
329
|
+
- Verify feature handles limits correctly
|
|
330
|
+
- Verify no unexpected behavior at boundaries
|
|
331
|
+
- [ ] **Error Recovery**: Users can recover from errors
|
|
332
|
+
- Test error scenarios
|
|
333
|
+
- Verify users can retry or fix issues
|
|
334
|
+
- Verify no dead-end error states
|
|
335
|
+
|
|
336
|
+
**Document findings:**
|
|
337
|
+
- Positive Cases: ✅ All working / ❌ Some broken
|
|
338
|
+
- Negative Cases: ✅ Handled gracefully / ❌ Not handled
|
|
339
|
+
- Edge Cases: ✅ Handled / ❌ Issues found
|
|
340
|
+
- Error Recovery: ✅ Users can recover / ❌ Dead-ends found
|
|
341
|
+
|
|
342
|
+
### Step 9: Evidence Quality Review
|
|
343
|
+
**Verify validation evidence quality:**
|
|
344
|
+
- [ ] All validation methods have evidence
|
|
345
|
+
- Check each method from validation plan has evidence
|
|
346
|
+
- Verify evidence is complete
|
|
347
|
+
- [ ] Evidence shows actual execution (not just "tested")
|
|
348
|
+
- Check for screenshots, curl outputs, test results
|
|
349
|
+
- Verify evidence shows real execution
|
|
350
|
+
- [ ] Screenshots/recordings for UI features
|
|
351
|
+
- Check screenshots show actual UI
|
|
352
|
+
- Verify screenshots show authenticated state (if applicable)
|
|
353
|
+
- [ ] API outputs for API features
|
|
354
|
+
- Check curl outputs are included
|
|
355
|
+
- Verify responses match expected
|
|
356
|
+
- [ ] Database state for data features
|
|
357
|
+
- Check database queries/results included
|
|
358
|
+
- Verify data state matches expected
|
|
359
|
+
|
|
360
|
+
**Document findings:**
|
|
361
|
+
- List any missing evidence
|
|
362
|
+
- Note if evidence quality is sufficient
|
|
363
|
+
|
|
364
|
+
### Step 10: Review Decision and Feedback Creation
|
|
365
|
+
|
|
366
|
+
**Check Iteration Count:**
|
|
367
|
+
- If `docs/evidence/{issue}-feature-reviewer-feedback.md` exists, check iteration number
|
|
368
|
+
- Maximum 3 iterations allowed
|
|
369
|
+
- If iteration 3 and still issues: ❌ REJECT (max iterations reached)
|
|
370
|
+
|
|
371
|
+
**Options:**
|
|
372
|
+
- ✅ **APPROVE**: All user scenarios work, problem solved, evidence complete
|
|
373
|
+
- ❌ **REJECT**: User scenarios broken, problem not solved, or evidence incomplete (after max iterations)
|
|
374
|
+
- ⚠️ **REQUEST CHANGES**: Minor UX issues or missing validations (iteration < 3)
|
|
375
|
+
|
|
376
|
+
**If REQUEST CHANGES (iteration < 3):**
|
|
377
|
+
- **Create Feedback Document**: Create `docs/evidence/{issue}-feature-reviewer-feedback.md`
|
|
378
|
+
- Use template below for feedback structure
|
|
379
|
+
- List specific blockers with evidence locations
|
|
380
|
+
- Provide actionable feedback for each issue
|
|
381
|
+
- Include iteration number
|
|
382
|
+
- Label issue `status:wip` (remove `status:design-review-passed`)
|
|
383
|
+
- Add PR comment referencing feedback document
|
|
384
|
+
- Implementation agent must address feedback and update evidence
|
|
385
|
+
- Implementation agent re-submits by marking `status:design-review-passed` again
|
|
386
|
+
|
|
387
|
+
**If REJECT (max iterations reached):**
|
|
388
|
+
- Create final feedback document with all remaining issues
|
|
389
|
+
- Label issue `status:wip` (remove `status:design-review-passed`)
|
|
390
|
+
- Add PR comment with final rejection notice
|
|
391
|
+
- Implementation agent must address all issues before re-submission
|
|
392
|
+
|
|
393
|
+
**If APPROVE:**
|
|
394
|
+
- **Create Final Summary**: Create `docs/evidence/{issue}-feature-review-summary.md`
|
|
395
|
+
- Summarize what was reviewed and approved
|
|
396
|
+
- Include key findings and evidence locations
|
|
397
|
+
- Confirm feature is ready for merge
|
|
398
|
+
- Label issue `status:feature-review-passed` (remove `status:design-review-passed`)
|
|
399
|
+
- Add PR comment confirming feature spec compliance
|
|
400
|
+
- Issue ready for final approval/merge
|
|
401
|
+
|
|
402
|
+
## FEEDBACK DOCUMENT TEMPLATE
|
|
403
|
+
|
|
404
|
+
Create `docs/evidence/{issue}-feature-reviewer-feedback.md`:
|
|
405
|
+
|
|
406
|
+
```markdown
|
|
407
|
+
# Feature Review Feedback - Issue #{issue}
|
|
408
|
+
|
|
409
|
+
## Iteration Information
|
|
410
|
+
- Iteration Number: {1, 2, or 3}
|
|
411
|
+
- Review Date: {date}
|
|
412
|
+
- Reviewer: Feature Spec Review Agent
|
|
413
|
+
|
|
414
|
+
## Review Summary
|
|
415
|
+
- Feature Spec Location: `docs/feature specs/{issue}-*.md`
|
|
416
|
+
- Design Review Summary: `docs/evidence/{issue}-design-review-summary.md`
|
|
417
|
+
- Evidence Reviewed: `docs/evidence/{issue}-implementation-evidence.md`
|
|
418
|
+
- Overall Status: ⚠️ REQUEST CHANGES
|
|
419
|
+
|
|
420
|
+
## Issues Found
|
|
421
|
+
|
|
422
|
+
### Critical Blockers (Must Fix)
|
|
423
|
+
1. **Issue Title**
|
|
424
|
+
- **Location**: [UI component, API endpoint, or workflow step]
|
|
425
|
+
- **Problem**: [Specific problem description]
|
|
426
|
+
- **Expected**: [What feature spec requires]
|
|
427
|
+
- **Found**: [What implementation has]
|
|
428
|
+
- **Action Required**: [Specific fix needed]
|
|
429
|
+
|
|
430
|
+
2. **Issue Title**
|
|
431
|
+
- [Same structure]
|
|
432
|
+
|
|
433
|
+
### User Experience Issues
|
|
434
|
+
1. **Workflow Step**: Step name
|
|
435
|
+
- **Feature Spec Section**: [Section reference]
|
|
436
|
+
- **Problem**: [What doesn't work]
|
|
437
|
+
- **Action Required**: [What needs to be fixed]
|
|
438
|
+
|
|
439
|
+
### UI Mock Compliance Issues
|
|
440
|
+
1. **Mock Element**: Element name
|
|
441
|
+
- **Mock Location**: `docs/feature specs/mocks/{issue}-*.png`
|
|
442
|
+
- **Problem**: [What doesn't match]
|
|
443
|
+
- **Action Required**: [What needs to be updated]
|
|
444
|
+
|
|
445
|
+
### Validation Plan Issues
|
|
446
|
+
1. **Missing Validation**: Method name
|
|
447
|
+
- **Feature Spec Validation Plan**: [Reference]
|
|
448
|
+
- **Action Required**: [What validation needs to be executed]
|
|
449
|
+
|
|
450
|
+
### Customer Problem Issues
|
|
451
|
+
1. **Problem Not Solved**: [Description]
|
|
452
|
+
- **Feature Spec Problem**: [Reference]
|
|
453
|
+
- **Action Required**: [What needs to be fixed]
|
|
454
|
+
|
|
455
|
+
### Negative Case Issues
|
|
456
|
+
1. **Invalid Input Not Handled**: [Scenario]
|
|
457
|
+
- **Problem**: Feature doesn't reject invalid inputs gracefully
|
|
458
|
+
- **Expected**: Clear error message, no crashes
|
|
459
|
+
- **Action Required**: Add input validation and error handling
|
|
460
|
+
|
|
461
|
+
2. **Unauthorized Access Not Blocked**: [Scenario]
|
|
462
|
+
- **Problem**: Feature allows unauthorized access
|
|
463
|
+
- **Expected**: Proper 401/403 errors
|
|
464
|
+
- **Action Required**: Add authorization checks
|
|
465
|
+
|
|
466
|
+
3. **Missing Data Not Handled**: [Scenario]
|
|
467
|
+
- **Problem**: Feature crashes or behaves incorrectly with missing data
|
|
468
|
+
- **Expected**: Graceful handling with clear error messages
|
|
469
|
+
- **Action Required**: Add null/undefined checks
|
|
470
|
+
|
|
471
|
+
### Edge Case Issues
|
|
472
|
+
1. **Edge Case Not Handled**: [Edge case from spec]
|
|
473
|
+
- **Feature Spec Section**: [Reference]
|
|
474
|
+
- **Problem**: [What doesn't work]
|
|
475
|
+
- **Action Required**: [What needs to be fixed]
|
|
476
|
+
|
|
477
|
+
### Error Handling Issues
|
|
478
|
+
1. **Error Messages Not User-Friendly**: [Error scenario]
|
|
479
|
+
- **Problem**: Error messages are technical or confusing
|
|
480
|
+
- **Expected**: Clear, actionable error messages
|
|
481
|
+
- **Action Required**: Improve error messages
|
|
482
|
+
|
|
483
|
+
2. **Error Recovery Not Possible**: [Error scenario]
|
|
484
|
+
- **Problem**: Users can't recover from errors (dead-end)
|
|
485
|
+
- **Expected**: Users can retry or fix issues
|
|
486
|
+
- **Action Required**: Add error recovery paths
|
|
487
|
+
|
|
488
|
+
## Action Items for Implementation Agent
|
|
489
|
+
- [ ] Fix critical blocker 1
|
|
490
|
+
- [ ] Fix critical blocker 2
|
|
491
|
+
- [ ] Fix user experience issue X
|
|
492
|
+
- [ ] Update UI to match mock Y
|
|
493
|
+
- [ ] Execute missing validation Z
|
|
494
|
+
- [ ] Update evidence document with fixes
|
|
495
|
+
|
|
496
|
+
## Next Steps
|
|
497
|
+
1. Implementation agent addresses all feedback items
|
|
498
|
+
2. Implementation agent updates `docs/evidence/{issue}-implementation-evidence.md`
|
|
499
|
+
3. Implementation agent marks issue `status:design-review-passed` again
|
|
500
|
+
4. Feature review agent will re-review (iteration {next_number})
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
## FINAL SUMMARY TEMPLATE (When Approving)
|
|
504
|
+
|
|
505
|
+
Create `docs/evidence/{issue}-feature-review-summary.md` when approving:
|
|
506
|
+
|
|
507
|
+
```markdown
|
|
508
|
+
# Feature Review Summary - Issue #{issue}
|
|
509
|
+
|
|
510
|
+
## Review Outcome
|
|
511
|
+
- Status: ✅ APPROVED
|
|
512
|
+
- Iterations: {number} (1-3)
|
|
513
|
+
- Feature Spec Location: `docs/feature specs/{issue}-*.md`
|
|
514
|
+
|
|
515
|
+
## What Was Reviewed
|
|
516
|
+
- Customer Problem: ✅ Solved
|
|
517
|
+
- User Experience: All X steps working ✅
|
|
518
|
+
- Validation Plan: All Y methods executed ✅
|
|
519
|
+
- UI Mocks: Match ✅ (if applicable)
|
|
520
|
+
- Authentication: Set up and working ✅
|
|
521
|
+
|
|
522
|
+
## Key Findings
|
|
523
|
+
- Customer problem is solved
|
|
524
|
+
- All user workflow steps work correctly
|
|
525
|
+
- All validation methods executed with evidence
|
|
526
|
+
- UI matches mocks (if applicable)
|
|
527
|
+
- End-to-end testing completed with authentication
|
|
528
|
+
|
|
529
|
+
## Evidence Locations
|
|
530
|
+
- Implementation Evidence: `docs/evidence/{issue}-implementation-evidence.md`
|
|
531
|
+
- Design Review Summary: `docs/evidence/{issue}-design-review-summary.md`
|
|
532
|
+
- Validation Evidence: [locations]
|
|
533
|
+
- Screenshots: [locations]
|
|
534
|
+
|
|
535
|
+
## Final Status
|
|
536
|
+
- Technical Review: ✅ Passed (from design review)
|
|
537
|
+
- Functional Review: ✅ Passed (this review)
|
|
538
|
+
- Ready for merge: ✅ Yes
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
## REVIEW EVIDENCE TEMPLATE (PR Comment)
|
|
542
|
+
|
|
543
|
+
Add this as a PR comment:
|
|
544
|
+
|
|
545
|
+
```markdown
|
|
546
|
+
# Feature Spec Review - Issue #{issue}
|
|
547
|
+
|
|
548
|
+
## Feature Spec Compliance Summary
|
|
549
|
+
- Feature Spec Location: `docs/feature specs/{issue}-*.md`
|
|
550
|
+
- Customer Problem: Solved ✅/❌
|
|
551
|
+
- User Experience: Complete X/Y steps ✅/❌
|
|
552
|
+
- Validation Plan: X/Y methods executed ✅/❌
|
|
553
|
+
- UI Mocks: Match ✅/❌ (if applicable)
|
|
554
|
+
|
|
555
|
+
## Detailed Findings
|
|
556
|
+
|
|
557
|
+
### Customer Problem Verification
|
|
558
|
+
- Problem Statement: [from spec]
|
|
559
|
+
- Desired Outcome: [from spec]
|
|
560
|
+
- Solution Status: ✅ Addresses problem / ❌ Doesn't address problem
|
|
561
|
+
- Notes: [any concerns]
|
|
562
|
+
|
|
563
|
+
### Authentication Setup
|
|
564
|
+
- Method Used: [Credentials provided / Cookie-driven browser session]
|
|
565
|
+
- Status: ✅ Authenticated / ❌ Failed / ⚠️ Partial
|
|
566
|
+
- Notes: [Any authentication issues encountered]
|
|
567
|
+
|
|
568
|
+
### User Experience Workflow Validation
|
|
569
|
+
| Step | Description | Status | Evidence | Notes |
|
|
570
|
+
|------|-------------|--------|----------|-------|
|
|
571
|
+
| 1 | User clicks tab X | ✅ | Screenshot | Works correctly (tested with auth) |
|
|
572
|
+
| 2 | User sees list Y | ❌ | Missing | List not rendering (tested with auth) |
|
|
573
|
+
| 3 | User approves item Z | ⚠️ | Partial | Works but slow (tested with auth) |
|
|
574
|
+
|
|
575
|
+
### UI Mock Compliance (if applicable)
|
|
576
|
+
| Mock Element | Spec | Implementation | Match | Notes |
|
|
577
|
+
|--------------|------|----------------|-------|-------|
|
|
578
|
+
| Layout | [description] | [description] | ✅ | Matches |
|
|
579
|
+
| Component X | [description] | [description] | ❌ | Missing feature Y |
|
|
580
|
+
|
|
581
|
+
### Validation Plan Execution
|
|
582
|
+
| Validation Method | Required | Executed | Result | Evidence | Auth Status |
|
|
583
|
+
|------------------|----------|----------|--------|----------|-------------|
|
|
584
|
+
| Browser validation | Yes | ✅ | Pass | Screenshot in PR | ✅ Authenticated |
|
|
585
|
+
| API validation | Yes | ❌ | Missing | No curl output | ⚠️ Auth token missing |
|
|
586
|
+
| Database validation | Yes | ✅ | Pass | DB query results | N/A |
|
|
587
|
+
| End-to-end workflow | Yes | ✅ | Pass | Full workflow screenshots | ✅ Cookie session |
|
|
588
|
+
|
|
589
|
+
### Edge Cases, Negative Cases, and Error Handling
|
|
590
|
+
- Alternatives Considered: ✅ Matches chosen approach
|
|
591
|
+
- Edge Cases: ✅ All tested / ⚠️ Some not tested / ❌ Issues found
|
|
592
|
+
- Negative Cases: ✅ All tested / ⚠️ Some not tested / ❌ Issues found
|
|
593
|
+
- Error Handling: ✅ User-friendly / ❌ Confusing
|
|
594
|
+
- Error Recovery: ✅ Users can recover / ❌ Dead-ends found
|
|
595
|
+
|
|
596
|
+
### Functional Completeness
|
|
597
|
+
- All Workflow Steps: ✅ Working
|
|
598
|
+
- Broken Links: ✅ None found
|
|
599
|
+
- Positive Cases: ✅ All working
|
|
600
|
+
- Negative Cases: ✅ Handled gracefully / ❌ Not handled
|
|
601
|
+
- Edge Cases: ✅ Handled / ❌ Issues found
|
|
602
|
+
- Error States: ✅ Handled gracefully
|
|
603
|
+
- Error Recovery: ✅ Users can recover / ❌ Dead-ends found
|
|
604
|
+
- Success States: ✅ Work correctly
|
|
605
|
+
|
|
606
|
+
### Evidence Quality
|
|
607
|
+
- Validation Evidence: ✅ Complete
|
|
608
|
+
- Screenshots: ✅ Included for UI features
|
|
609
|
+
- API Outputs: ⚠️ Missing for some endpoints
|
|
610
|
+
- Database State: ✅ Included
|
|
611
|
+
|
|
612
|
+
## Decision
|
|
613
|
+
✅ APPROVE / ❌ REJECT / ⚠️ REQUEST CHANGES
|
|
614
|
+
|
|
615
|
+
## Feedback Document
|
|
616
|
+
- Location: `docs/evidence/{issue}-feature-reviewer-feedback.md`
|
|
617
|
+
- Iteration: {1, 2, or 3}
|
|
618
|
+
|
|
619
|
+
## Blockers (if any)
|
|
620
|
+
1. User workflow step X doesn't work (tested with authentication)
|
|
621
|
+
2. Validation method Y not executed
|
|
622
|
+
3. UI doesn't match mock Z
|
|
623
|
+
4. Customer problem not actually solved
|
|
624
|
+
|
|
625
|
+
## Next Steps (if REQUEST CHANGES)
|
|
626
|
+
- [ ] Implementation agent addresses feedback in `docs/evidence/{issue}-feature-reviewer-feedback.md`
|
|
627
|
+
- [ ] Implementation agent updates `docs/evidence/{issue}-implementation-evidence.md`
|
|
628
|
+
- [ ] Implementation agent marks `status:design-review-passed` for re-review
|
|
629
|
+
- [ ] Feature review agent will re-review (max 3 iterations)
|
|
630
|
+
```
|
|
631
|
+
|
|
632
|
+
## EXAMPLES
|
|
633
|
+
|
|
634
|
+
### Good: Complete Review
|
|
635
|
+
```
|
|
636
|
+
Issue #533: Feature Spec Review
|
|
637
|
+
✅ Customer Problem: Solved
|
|
638
|
+
✅ User Experience: 5/5 steps working
|
|
639
|
+
✅ Validation Plan: 4/4 methods executed
|
|
640
|
+
✅ UI Mocks: Match
|
|
641
|
+
✅ Authentication: Cookie session working
|
|
642
|
+
Decision: ✅ APPROVE
|
|
643
|
+
```
|
|
644
|
+
|
|
645
|
+
### Bad: Incomplete Review
|
|
646
|
+
```
|
|
647
|
+
Issue #533: Feature Spec Review
|
|
648
|
+
❌ Customer Problem: Not fully addressed
|
|
649
|
+
⚠️ User Experience: 3/5 steps working (2 broken)
|
|
650
|
+
❌ Validation Plan: 2/4 methods executed (2 missing)
|
|
651
|
+
❌ UI Mocks: Don't match
|
|
652
|
+
Decision: ❌ REJECT
|
|
653
|
+
Blockers: Broken workflow steps, missing validations
|
|
654
|
+
```
|
|
655
|
+
|
|
656
|
+
## INTEGRATION
|
|
657
|
+
|
|
658
|
+
### Status Label Flow
|
|
659
|
+
```
|
|
660
|
+
status:design-review-passed
|
|
661
|
+
↓ (Feature Spec Review)
|
|
662
|
+
status:feature-review-passed (or status:wip if rejected)
|
|
663
|
+
↓ (Final approval)
|
|
664
|
+
Ready for merge
|
|
665
|
+
```
|
|
666
|
+
|
|
667
|
+
### After This Review
|
|
668
|
+
- If APPROVE: Issue ready for final approval/merge
|
|
669
|
+
- If REJECT: Issue returns to implementation (status:wip)
|
|
670
|
+
- Implementation agent addresses blockers and re-submits
|
|
671
|
+
|
|
672
|
+
### Relationship to Design Spec Review
|
|
673
|
+
- Design Spec Review validates technical correctness
|
|
674
|
+
- Feature Spec Review validates user value and experience
|
|
675
|
+
- Both must pass for issue to be complete
|