@thierrynakoa/fire-flow 10.0.0
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/.claude-plugin/plugin.json +64 -0
- package/ARCHITECTURE-DIAGRAM.md +440 -0
- package/COMMAND-REFERENCE.md +172 -0
- package/DOMINION-FLOW-OVERVIEW.md +421 -0
- package/LICENSE +21 -0
- package/QUICK-START.md +351 -0
- package/README.md +398 -0
- package/TROUBLESHOOTING.md +264 -0
- package/agents/fire-codebase-mapper.md +484 -0
- package/agents/fire-debugger.md +535 -0
- package/agents/fire-executor.md +949 -0
- package/agents/fire-fact-checker.md +276 -0
- package/agents/fire-learncoding-explainer.md +237 -0
- package/agents/fire-learncoding-walker.md +147 -0
- package/agents/fire-planner.md +675 -0
- package/agents/fire-project-researcher.md +155 -0
- package/agents/fire-research-synthesizer.md +166 -0
- package/agents/fire-researcher.md +723 -0
- package/agents/fire-reviewer.md +499 -0
- package/agents/fire-roadmapper.md +203 -0
- package/agents/fire-verifier.md +880 -0
- package/bin/cli.js +208 -0
- package/commands/fire-0-orient.md +476 -0
- package/commands/fire-1-new.md +281 -0
- package/commands/fire-1a-discuss.md +455 -0
- package/commands/fire-2-plan.md +527 -0
- package/commands/fire-3-execute.md +1303 -0
- package/commands/fire-4-verify.md +845 -0
- package/commands/fire-5-handoff.md +515 -0
- package/commands/fire-6-resume.md +501 -0
- package/commands/fire-7-review.md +409 -0
- package/commands/fire-add-new-skill.md +598 -0
- package/commands/fire-analytics.md +499 -0
- package/commands/fire-assumptions.md +78 -0
- package/commands/fire-autonomous.md +528 -0
- package/commands/fire-brainstorm.md +413 -0
- package/commands/fire-complete-milestone.md +270 -0
- package/commands/fire-dashboard.md +375 -0
- package/commands/fire-debug.md +663 -0
- package/commands/fire-discover.md +616 -0
- package/commands/fire-double-check.md +460 -0
- package/commands/fire-execute-plan.md +182 -0
- package/commands/fire-learncoding.md +242 -0
- package/commands/fire-loop-resume.md +272 -0
- package/commands/fire-loop-stop.md +198 -0
- package/commands/fire-loop.md +1168 -0
- package/commands/fire-map-codebase.md +313 -0
- package/commands/fire-new-milestone.md +356 -0
- package/commands/fire-reflect.md +235 -0
- package/commands/fire-research.md +246 -0
- package/commands/fire-search.md +330 -0
- package/commands/fire-security-audit-repo.md +293 -0
- package/commands/fire-security-scan.md +484 -0
- package/commands/fire-session-summary.md +252 -0
- package/commands/fire-skills-diff.md +506 -0
- package/commands/fire-skills-history.md +388 -0
- package/commands/fire-skills-rollback.md +408 -0
- package/commands/fire-skills-sync.md +470 -0
- package/commands/fire-test.md +520 -0
- package/commands/fire-todos.md +335 -0
- package/commands/fire-transition.md +186 -0
- package/commands/fire-update.md +312 -0
- package/commands/fire-verify-uat.md +146 -0
- package/commands/fire-vuln-scan.md +493 -0
- package/hooks/hooks.json +16 -0
- package/hooks/run-hook.cmd +69 -0
- package/hooks/run-hook.sh +8 -0
- package/hooks/run-session-end.cmd +49 -0
- package/hooks/run-session-end.sh +7 -0
- package/hooks/session-end.sh +90 -0
- package/hooks/session-start.sh +111 -0
- package/package.json +52 -0
- package/plugin.json +7 -0
- package/references/auto-skill-extraction.md +136 -0
- package/references/behavioral-directives.md +365 -0
- package/references/blocker-tracking.md +155 -0
- package/references/checkpoints.md +165 -0
- package/references/circuit-breaker.md +410 -0
- package/references/context-engineering.md +587 -0
- package/references/decision-time-guidance.md +289 -0
- package/references/error-classification.md +326 -0
- package/references/execution-mode-intelligence.md +242 -0
- package/references/git-integration.md +217 -0
- package/references/honesty-protocols.md +304 -0
- package/references/integration-architecture.md +470 -0
- package/references/issue-to-pr-pipeline.md +150 -0
- package/references/metrics-and-trends.md +234 -0
- package/references/playwright-e2e-testing.md +326 -0
- package/references/questioning.md +125 -0
- package/references/research-improvements.md +110 -0
- package/references/skills-usage-guide.md +429 -0
- package/references/tdd.md +131 -0
- package/references/testing-enforcement.md +192 -0
- package/references/ui-brand.md +383 -0
- package/references/validation-checklist.md +456 -0
- package/references/verification-patterns.md +187 -0
- package/references/warrior-principles.md +173 -0
- package/skills-library/SKILLS-INDEX.md +588 -0
- package/skills-library/_general/frontend/html-visual-reports.md +292 -0
- package/skills-library/_general/methodology/debug-swarm-researcher-escape-hatch.md +240 -0
- package/skills-library/_general/methodology/learncoding-agentic-pattern.md +114 -0
- package/skills-library/_general/methodology/shell-autonomous-loop-fixplan.md +238 -0
- package/skills-library/basics/api-rest-basics.md +162 -0
- package/skills-library/basics/env-variables.md +96 -0
- package/skills-library/basics/error-handling-basics.md +125 -0
- package/skills-library/basics/git-commit-conventions.md +106 -0
- package/skills-library/basics/readme-template.md +108 -0
- package/skills-library/common-tasks/async-await-patterns.md +157 -0
- package/skills-library/common-tasks/auth-jwt-basics.md +164 -0
- package/skills-library/common-tasks/database-schema-design.md +166 -0
- package/skills-library/common-tasks/file-upload-basics.md +166 -0
- package/skills-library/common-tasks/form-validation.md +159 -0
- package/skills-library/debugging/FAILURE_TAXONOMY_CLASSIFICATION.md +117 -0
- package/skills-library/debugging/THREE_AGENT_HYPOTHESIS_DEBUGGING.md +86 -0
- package/skills-library/methodology/BREATH_BASED_PARALLEL_EXECUTION.md +678 -0
- package/skills-library/methodology/CONFIDENCE_GATED_EXECUTION.md +243 -0
- package/skills-library/methodology/EVIDENCE_BASED_VALIDATION.md +308 -0
- package/skills-library/methodology/MULTI_PERSPECTIVE_CODE_REVIEW.md +330 -0
- package/skills-library/methodology/PATH_VERIFICATION_GATE.md +211 -0
- package/skills-library/methodology/REFLEXION_MEMORY_PATTERN.md +183 -0
- package/skills-library/methodology/RESEARCH_BACKED_WORKFLOW_UPGRADE.md +263 -0
- package/skills-library/methodology/SABBATH_REST_PATTERN.md +267 -0
- package/skills-library/methodology/STONE_AND_SCAFFOLD.md +220 -0
- package/skills-library/performance/cache-augmented-generation.md +172 -0
- package/skills-library/quality-safety/debugging-steps.md +147 -0
- package/skills-library/quality-safety/deployment-checklist.md +155 -0
- package/skills-library/quality-safety/security-checklist.md +204 -0
- package/skills-library/quality-safety/testing-basics.md +180 -0
- package/skills-library/security/agent-security-scanner.md +445 -0
- package/skills-library/specialists/api-architecture/api-designer.md +49 -0
- package/skills-library/specialists/api-architecture/graphql-architect.md +49 -0
- package/skills-library/specialists/api-architecture/mcp-developer.md +51 -0
- package/skills-library/specialists/api-architecture/microservices-architect.md +50 -0
- package/skills-library/specialists/api-architecture/websocket-engineer.md +48 -0
- package/skills-library/specialists/backend/django-expert.md +52 -0
- package/skills-library/specialists/backend/fastapi-expert.md +52 -0
- package/skills-library/specialists/backend/laravel-specialist.md +52 -0
- package/skills-library/specialists/backend/nestjs-expert.md +51 -0
- package/skills-library/specialists/backend/rails-expert.md +53 -0
- package/skills-library/specialists/backend/spring-boot-engineer.md +56 -0
- package/skills-library/specialists/data-ml/fine-tuning-expert.md +48 -0
- package/skills-library/specialists/data-ml/ml-pipeline.md +47 -0
- package/skills-library/specialists/data-ml/pandas-pro.md +47 -0
- package/skills-library/specialists/data-ml/rag-architect.md +51 -0
- package/skills-library/specialists/data-ml/spark-engineer.md +47 -0
- package/skills-library/specialists/frontend/angular-architect.md +52 -0
- package/skills-library/specialists/frontend/flutter-expert.md +51 -0
- package/skills-library/specialists/frontend/nextjs-developer.md +54 -0
- package/skills-library/specialists/frontend/react-native-expert.md +50 -0
- package/skills-library/specialists/frontend/vue-expert.md +51 -0
- package/skills-library/specialists/infrastructure/chaos-engineer.md +74 -0
- package/skills-library/specialists/infrastructure/cloud-architect.md +70 -0
- package/skills-library/specialists/infrastructure/database-optimizer.md +64 -0
- package/skills-library/specialists/infrastructure/devops-engineer.md +70 -0
- package/skills-library/specialists/infrastructure/kubernetes-specialist.md +52 -0
- package/skills-library/specialists/infrastructure/monitoring-expert.md +70 -0
- package/skills-library/specialists/infrastructure/sre-engineer.md +70 -0
- package/skills-library/specialists/infrastructure/terraform-engineer.md +51 -0
- package/skills-library/specialists/languages/cpp-pro.md +74 -0
- package/skills-library/specialists/languages/csharp-developer.md +69 -0
- package/skills-library/specialists/languages/dotnet-core-expert.md +54 -0
- package/skills-library/specialists/languages/golang-pro.md +51 -0
- package/skills-library/specialists/languages/java-architect.md +49 -0
- package/skills-library/specialists/languages/javascript-pro.md +68 -0
- package/skills-library/specialists/languages/kotlin-specialist.md +68 -0
- package/skills-library/specialists/languages/php-pro.md +49 -0
- package/skills-library/specialists/languages/python-pro.md +52 -0
- package/skills-library/specialists/languages/react-expert.md +51 -0
- package/skills-library/specialists/languages/rust-engineer.md +50 -0
- package/skills-library/specialists/languages/sql-pro.md +56 -0
- package/skills-library/specialists/languages/swift-expert.md +69 -0
- package/skills-library/specialists/languages/typescript-pro.md +51 -0
- package/skills-library/specialists/platform/atlassian-mcp.md +52 -0
- package/skills-library/specialists/platform/embedded-systems.md +53 -0
- package/skills-library/specialists/platform/game-developer.md +53 -0
- package/skills-library/specialists/platform/salesforce-developer.md +53 -0
- package/skills-library/specialists/platform/shopify-expert.md +49 -0
- package/skills-library/specialists/platform/wordpress-pro.md +49 -0
- package/skills-library/specialists/quality/code-documenter.md +51 -0
- package/skills-library/specialists/quality/code-reviewer.md +67 -0
- package/skills-library/specialists/quality/debugging-wizard.md +51 -0
- package/skills-library/specialists/quality/fullstack-guardian.md +51 -0
- package/skills-library/specialists/quality/legacy-modernizer.md +50 -0
- package/skills-library/specialists/quality/playwright-expert.md +65 -0
- package/skills-library/specialists/quality/spec-miner.md +56 -0
- package/skills-library/specialists/quality/test-master.md +65 -0
- package/skills-library/specialists/security/secure-code-guardian.md +55 -0
- package/skills-library/specialists/security/security-reviewer.md +53 -0
- package/skills-library/specialists/workflow/architecture-designer.md +53 -0
- package/skills-library/specialists/workflow/cli-developer.md +70 -0
- package/skills-library/specialists/workflow/feature-forge.md +65 -0
- package/skills-library/specialists/workflow/prompt-engineer.md +54 -0
- package/skills-library/specialists/workflow/the-fool.md +62 -0
- package/templates/ASSUMPTIONS.md +125 -0
- package/templates/BLOCKERS.md +73 -0
- package/templates/DECISION_LOG.md +116 -0
- package/templates/UAT.md +96 -0
- package/templates/blueprint.md +94 -0
- package/templates/brainstorm.md +185 -0
- package/templates/conscience.md +92 -0
- package/templates/fire-handoff.md +159 -0
- package/templates/metrics.md +67 -0
- package/templates/phase-prompt.md +142 -0
- package/templates/record.md +131 -0
- package/templates/review-report.md +117 -0
- package/templates/skills-index.md +157 -0
- package/templates/verification.md +149 -0
- package/templates/vision.md +79 -0
- package/validation-config.yml +793 -0
- package/version.json +7 -0
- package/workflows/execute-phase.md +732 -0
- package/workflows/handoff-session.md +678 -0
- package/workflows/new-project.md +578 -0
- package/workflows/plan-phase.md +592 -0
- package/workflows/verify-phase.md +874 -0
|
@@ -0,0 +1,845 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Verify phase completion with must-haves and 70-point validation
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /fire-4-verify
|
|
6
|
+
|
|
7
|
+
> Verify phase N with combined must-haves and WARRIOR 70-point validation
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
Perform comprehensive verification of a completed phase by combining Dominion Flow's goal-backward must-haves verification with 70-point quality validation checklist. Generates a detailed verification report and routes to gap closure if needed.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Arguments
|
|
18
|
+
|
|
19
|
+
```yaml
|
|
20
|
+
arguments:
|
|
21
|
+
phase_number:
|
|
22
|
+
required: true
|
|
23
|
+
type: integer
|
|
24
|
+
description: "Phase number to verify (e.g., 1, 2, 3)"
|
|
25
|
+
example: "/fire-4-verify 3"
|
|
26
|
+
|
|
27
|
+
optional_flags:
|
|
28
|
+
--detailed: "Include verbose output for all checks"
|
|
29
|
+
--quick: "Run only critical checks (must-haves + security)"
|
|
30
|
+
--report-only: "Generate report without routing to gap closure"
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Process
|
|
36
|
+
|
|
37
|
+
### Step 1: Load Verification Context
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”
|
|
41
|
+
DOMINION FLOW > PHASE {N} VERIFICATION
|
|
42
|
+
â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”â”
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Load Context:**
|
|
46
|
+
```markdown
|
|
47
|
+
@.planning/CONSCIENCE.md
|
|
48
|
+
@.planning/phases/{N}-{name}/*.BLUEPRINT.md # All plans
|
|
49
|
+
@.planning/phases/{N}-{name}/*-RECORD.md # All summaries
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Extract:**
|
|
53
|
+
- All must_haves from plan frontmatter
|
|
54
|
+
- All warrior_validation items from plans
|
|
55
|
+
- Skills applied during execution
|
|
56
|
+
- Key files created/modified
|
|
57
|
+
|
|
58
|
+
### Step 2: Spawn fire-verifier
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
â—† Spawning fire-verifier for Phase {N}...
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Verifier Context:**
|
|
65
|
+
```markdown
|
|
66
|
+
<verification_scope>
|
|
67
|
+
Phase: {N} - {name}
|
|
68
|
+
Plans to Verify: {list}
|
|
69
|
+
Total Must-Haves: {count}
|
|
70
|
+
WARRIOR Checks: 70 items across 8 categories
|
|
71
|
+
</verification_scope>
|
|
72
|
+
|
|
73
|
+
<must_haves>
|
|
74
|
+
{Aggregated must_haves from all plans}
|
|
75
|
+
</must_haves>
|
|
76
|
+
|
|
77
|
+
<warrior_checklist>
|
|
78
|
+
@references/validation-checklist.md
|
|
79
|
+
</warrior_checklist>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Step 2.5: Spawn fire-reviewer in parallel (v8.0)
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
IF --quick flag NOT set:
|
|
86
|
+
|
|
87
|
+
â—† Spawning fire-reviewer alongside fire-verifier...
|
|
88
|
+
|
|
89
|
+
Task(subagent_type="fire-reviewer", prompt="""
|
|
90
|
+
<review_scope>
|
|
91
|
+
Phase: {N} - {name}
|
|
92
|
+
Review Depth: normal
|
|
93
|
+
</review_scope>
|
|
94
|
+
|
|
95
|
+
<files_to_review>
|
|
96
|
+
{key_files from all RECORD.md frontmatter}
|
|
97
|
+
</files_to_review>
|
|
98
|
+
|
|
99
|
+
<plan_intent>
|
|
100
|
+
{Quick Summary from each RECORD.md}
|
|
101
|
+
</plan_intent>
|
|
102
|
+
|
|
103
|
+
<simplicity_mandate>STRICT</simplicity_mandate>
|
|
104
|
+
|
|
105
|
+
Output to: .planning/phases/{N}-{name}/{N}-REVIEW.md
|
|
106
|
+
""")
|
|
107
|
+
|
|
108
|
+
ELSE:
|
|
109
|
+
# --quick mode: skip review, only run critical checks
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### Step 3: Must-Haves Verification
|
|
113
|
+
|
|
114
|
+
**Verify Truths:**
|
|
115
|
+
Observable behaviors that must be demonstrable.
|
|
116
|
+
|
|
117
|
+
```markdown
|
|
118
|
+
### Truths Verification
|
|
119
|
+
|
|
120
|
+
| Truth Statement | Verification Command | Result |
|
|
121
|
+
|-----------------|---------------------|--------|
|
|
122
|
+
| {statement} | {command} | PASS/FAIL |
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Example:**
|
|
126
|
+
```bash
|
|
127
|
+
# Truth: "User can paginate through results"
|
|
128
|
+
curl -s "http://localhost:3000/api/products?limit=5" | jq '.data | length'
|
|
129
|
+
# Expected: 5
|
|
130
|
+
# Result: PASS
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
**Verify Artifacts:**
|
|
134
|
+
Files must exist with expected exports and contents.
|
|
135
|
+
|
|
136
|
+
```markdown
|
|
137
|
+
### Artifacts Verification
|
|
138
|
+
|
|
139
|
+
| File | Exports | Contains | Result |
|
|
140
|
+
|------|---------|----------|--------|
|
|
141
|
+
| {path} | {exports} | {patterns} | PASS/FAIL |
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
**Example:**
|
|
145
|
+
```bash
|
|
146
|
+
# Artifact: server/services/pagination.service.ts exports paginate
|
|
147
|
+
grep -n "export.*paginate" server/services/pagination.service.ts
|
|
148
|
+
# Expected: Match found
|
|
149
|
+
# Result: PASS
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**Verify Key Links:**
|
|
153
|
+
Components must be properly wired together.
|
|
154
|
+
|
|
155
|
+
```markdown
|
|
156
|
+
### Key Links Verification
|
|
157
|
+
|
|
158
|
+
| From | To | Via | Result |
|
|
159
|
+
|------|----|----|--------|
|
|
160
|
+
| {component-a} | {component-b} | {integration} | PASS/FAIL |
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**Example:**
|
|
164
|
+
```bash
|
|
165
|
+
# Key Link: products-route uses pagination-service
|
|
166
|
+
grep -n "import.*pagination" server/routes/products.ts
|
|
167
|
+
grep -n "paginate" server/routes/products.ts
|
|
168
|
+
# Expected: Both match
|
|
169
|
+
# Result: PASS
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Step 4: WARRIOR 70-Point Validation
|
|
173
|
+
|
|
174
|
+
**Categories (8 total, 70 checks):**
|
|
175
|
+
|
|
176
|
+
#### Code Quality (6 checks)
|
|
177
|
+
```bash
|
|
178
|
+
# 1. Project builds without errors
|
|
179
|
+
npm run build
|
|
180
|
+
|
|
181
|
+
# 2. No TypeScript errors
|
|
182
|
+
npm run typecheck
|
|
183
|
+
|
|
184
|
+
# 3. ESLint compliance
|
|
185
|
+
npm run lint
|
|
186
|
+
|
|
187
|
+
# 4. No console.logs in production code
|
|
188
|
+
grep -r "console.log" src/ --include="*.ts" --include="*.tsx" | grep -v ".test." | wc -l
|
|
189
|
+
# Expected: 0
|
|
190
|
+
|
|
191
|
+
# 5. Code comments present on complex functions
|
|
192
|
+
# Manual check or AST analysis
|
|
193
|
+
|
|
194
|
+
# 6. Functions have JSDoc/TSDoc
|
|
195
|
+
# Manual check or documentation tool
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
#### Testing (5 checks)
|
|
199
|
+
```bash
|
|
200
|
+
# 1. Unit tests passing
|
|
201
|
+
npm run test
|
|
202
|
+
|
|
203
|
+
# 2. Integration tests passing
|
|
204
|
+
npm run test:integration
|
|
205
|
+
|
|
206
|
+
# 3. Coverage > threshold (default 80%)
|
|
207
|
+
npm run test:coverage
|
|
208
|
+
|
|
209
|
+
# 4. No skipped tests
|
|
210
|
+
grep -r "\.skip\|xit\|xdescribe" **/*.test.* | wc -l
|
|
211
|
+
# Expected: 0
|
|
212
|
+
|
|
213
|
+
# 5. Manual testing complete
|
|
214
|
+
# Checkpoint verification
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
#### Security (8 checks)
|
|
218
|
+
```bash
|
|
219
|
+
# 1. No hardcoded credentials
|
|
220
|
+
grep -rE "(password|secret|key)\s*=\s*['\"][^'\"]+['\"]" src/ | grep -v ".test." | wc -l
|
|
221
|
+
# Expected: 0
|
|
222
|
+
|
|
223
|
+
# 2. Input validation implemented
|
|
224
|
+
# Check for validation middleware/schemas
|
|
225
|
+
|
|
226
|
+
# 3. SQL injection prevention
|
|
227
|
+
# Check for parameterized queries
|
|
228
|
+
|
|
229
|
+
# 4. XSS protection
|
|
230
|
+
# Check for output encoding
|
|
231
|
+
|
|
232
|
+
# 5. HTTPS enforced
|
|
233
|
+
# Check for SSL/TLS configuration
|
|
234
|
+
|
|
235
|
+
# 6. CORS configured properly
|
|
236
|
+
# Check CORS middleware settings
|
|
237
|
+
|
|
238
|
+
# 7. Rate limiting active
|
|
239
|
+
# Check for rate limiting middleware
|
|
240
|
+
|
|
241
|
+
# 8. Auth tokens secure (httpOnly, secure flags)
|
|
242
|
+
# Check cookie configuration
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
#### Performance (6 checks)
|
|
246
|
+
```bash
|
|
247
|
+
# 1. Page load times < threshold
|
|
248
|
+
# Lighthouse or manual measurement
|
|
249
|
+
|
|
250
|
+
# 2. Database queries optimized
|
|
251
|
+
# Check for N+1, missing indexes
|
|
252
|
+
|
|
253
|
+
# 3. No N+1 queries
|
|
254
|
+
# Query logging analysis
|
|
255
|
+
|
|
256
|
+
# 4. Indexes exist on queried columns
|
|
257
|
+
# Database schema inspection
|
|
258
|
+
|
|
259
|
+
# 5. No memory leaks
|
|
260
|
+
# Memory profiling
|
|
261
|
+
|
|
262
|
+
# 6. API response times < 200ms
|
|
263
|
+
# Load testing or manual measurement
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
#### Documentation (4 checks)
|
|
267
|
+
```bash
|
|
268
|
+
# 1. README current
|
|
269
|
+
# Manual check
|
|
270
|
+
|
|
271
|
+
# 2. API documentation complete
|
|
272
|
+
# Check swagger/OpenAPI spec
|
|
273
|
+
|
|
274
|
+
# 3. Setup instructions work
|
|
275
|
+
# Manual verification
|
|
276
|
+
|
|
277
|
+
# 4. Code comments explain "why" not "what"
|
|
278
|
+
# Manual review
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
#### Database (5 checks)
|
|
282
|
+
```bash
|
|
283
|
+
# 1. Migrations up to date
|
|
284
|
+
npm run db:migrate:status
|
|
285
|
+
|
|
286
|
+
# 2. Schema matches models
|
|
287
|
+
npm run db:validate
|
|
288
|
+
|
|
289
|
+
# 3. Backup strategy documented
|
|
290
|
+
# Manual check
|
|
291
|
+
|
|
292
|
+
# 4. Connection pooling configured
|
|
293
|
+
# Check database config
|
|
294
|
+
|
|
295
|
+
# 5. Transactions used appropriately
|
|
296
|
+
# Code review
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
#### API Design (6 checks)
|
|
300
|
+
```bash
|
|
301
|
+
# 1. RESTful conventions followed
|
|
302
|
+
# Manual review
|
|
303
|
+
|
|
304
|
+
# 2. Versioning implemented
|
|
305
|
+
# Check for /v1/ or header versioning
|
|
306
|
+
|
|
307
|
+
# 3. Error responses consistent
|
|
308
|
+
# Test error endpoints
|
|
309
|
+
|
|
310
|
+
# 4. Pagination on list endpoints
|
|
311
|
+
# Check list endpoints
|
|
312
|
+
|
|
313
|
+
# 5. Authentication required where needed
|
|
314
|
+
# Check protected routes
|
|
315
|
+
|
|
316
|
+
# 6. Rate limiting per endpoint
|
|
317
|
+
# Check rate limit config
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
#### Infrastructure (4 checks)
|
|
321
|
+
```bash
|
|
322
|
+
# 1. Environment variables documented
|
|
323
|
+
# Check .env.example
|
|
324
|
+
|
|
325
|
+
# 2. Docker/deployment config present
|
|
326
|
+
# Check Dockerfile, docker-compose
|
|
327
|
+
|
|
328
|
+
# 3. CI/CD pipeline configured
|
|
329
|
+
# Check .github/workflows or equivalent
|
|
330
|
+
|
|
331
|
+
# 4. Logging implemented
|
|
332
|
+
# Check logging configuration
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
#### E2E Testing - Playwright (10 checks)
|
|
336
|
+
```bash
|
|
337
|
+
# 1. Playwright installed and configured
|
|
338
|
+
npx playwright --version
|
|
339
|
+
ls playwright.config.{ts,js}
|
|
340
|
+
|
|
341
|
+
# 2. Browsers installed
|
|
342
|
+
npx playwright install --dry-run
|
|
343
|
+
|
|
344
|
+
# 3. Critical user flows covered (login, signup, core CRUD)
|
|
345
|
+
# Check E2E test files exist
|
|
346
|
+
|
|
347
|
+
# 4. All E2E tests pass
|
|
348
|
+
npx playwright test
|
|
349
|
+
|
|
350
|
+
# 5. Cross-browser testing (chromium + firefox)
|
|
351
|
+
npx playwright test --project=chromium
|
|
352
|
+
npx playwright test --project=firefox
|
|
353
|
+
|
|
354
|
+
# 6. Mobile viewport coverage
|
|
355
|
+
# Check for mobile viewport project or responsive checks
|
|
356
|
+
|
|
357
|
+
# 7. API response assertions in E2E tests
|
|
358
|
+
# Check tests validate API responses, not just UI
|
|
359
|
+
|
|
360
|
+
# 8. Visual regression baselines
|
|
361
|
+
npx playwright test --update-snapshots
|
|
362
|
+
|
|
363
|
+
# 9. Test isolation (no shared state)
|
|
364
|
+
npx playwright test --shard=1/3
|
|
365
|
+
|
|
366
|
+
# 10. No console errors during E2E runs
|
|
367
|
+
# Check via Playwright MCP: browser_console_messages level=error
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
### Step 5: Generate Verification Report
|
|
371
|
+
|
|
372
|
+
**Create:** `.planning/phases/{N}-{name}/{N}-VERIFICATION.md`
|
|
373
|
+
|
|
374
|
+
```markdown
|
|
375
|
+
# Verification Report: Phase {N}
|
|
376
|
+
|
|
377
|
+
## Summary
|
|
378
|
+
- **Must-Haves:** {X}/{Y} PASSED
|
|
379
|
+
- **WARRIOR Validation:** {X}/70 PASSED
|
|
380
|
+
- **Overall Status:** PASSED | PASSED WITH GAPS | FAILED
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
## Must-Haves: {X}/{Y} {STATUS}
|
|
385
|
+
|
|
386
|
+
### Truths
|
|
387
|
+
| # | Statement | Command | Result |
|
|
388
|
+
|---|-----------|---------|--------|
|
|
389
|
+
| 1 | {statement} | {command} | ✓ PASS |
|
|
390
|
+
| 2 | {statement} | {command} | ✗ FAIL |
|
|
391
|
+
|
|
392
|
+
### Artifacts
|
|
393
|
+
| # | File | Exports | Contains | Result |
|
|
394
|
+
|---|------|---------|----------|--------|
|
|
395
|
+
| 1 | {path} | {exports} | {patterns} | ✓ PASS |
|
|
396
|
+
|
|
397
|
+
### Key Links
|
|
398
|
+
| # | From | To | Via | Result |
|
|
399
|
+
|---|------|----|----|--------|
|
|
400
|
+
| 1 | {a} | {b} | {via} | ✓ PASS |
|
|
401
|
+
|
|
402
|
+
---
|
|
403
|
+
|
|
404
|
+
## WARRIOR Validation: {X}/70 {STATUS}
|
|
405
|
+
|
|
406
|
+
### Code Quality (6/6) ✓
|
|
407
|
+
- [x] Project builds without errors
|
|
408
|
+
- [x] No TypeScript errors
|
|
409
|
+
- [x] ESLint compliance
|
|
410
|
+
- [x] No console.logs in production
|
|
411
|
+
- [x] Code comments present
|
|
412
|
+
- [x] Functions have JSDoc
|
|
413
|
+
|
|
414
|
+
### Testing (4/5) âš
|
|
415
|
+
- [x] Unit tests passing
|
|
416
|
+
- [x] Integration tests passing
|
|
417
|
+
- [x] Coverage > 80% (current: 94%)
|
|
418
|
+
- [x] No skipped tests
|
|
419
|
+
- [ ] E2E tests passing (deferred)
|
|
420
|
+
|
|
421
|
+
### Security (8/8) ✓
|
|
422
|
+
[All checks passing]
|
|
423
|
+
|
|
424
|
+
### Performance (6/6) ✓
|
|
425
|
+
[All checks passing]
|
|
426
|
+
|
|
427
|
+
### Documentation (4/4) ✓
|
|
428
|
+
[All checks passing]
|
|
429
|
+
|
|
430
|
+
### Database (5/5) ✓
|
|
431
|
+
[All checks passing]
|
|
432
|
+
|
|
433
|
+
### API Design (6/6) ✓
|
|
434
|
+
[All checks passing]
|
|
435
|
+
|
|
436
|
+
### Infrastructure (4/4) ✓
|
|
437
|
+
[All checks passing]
|
|
438
|
+
|
|
439
|
+
---
|
|
440
|
+
|
|
441
|
+
## Gaps Identified
|
|
442
|
+
|
|
443
|
+
### Gap 1: E2E Tests (Minor)
|
|
444
|
+
- **Category:** Testing
|
|
445
|
+
- **Impact:** Low (unit + integration coverage sufficient)
|
|
446
|
+
- **Recommendation:** Defer to Phase {N+2} per roadmap
|
|
447
|
+
- **Action:** Document in CONSCIENCE.md, proceed
|
|
448
|
+
|
|
449
|
+
### Gap 2: {name} (if any)
|
|
450
|
+
[Details]
|
|
451
|
+
|
|
452
|
+
---
|
|
453
|
+
|
|
454
|
+
## Verification Decision
|
|
455
|
+
|
|
456
|
+
**Status:** APPROVED ✓ | APPROVED WITH GAPS ⚠| REJECTED ✗
|
|
457
|
+
|
|
458
|
+
**Recommendation:** {next step}
|
|
459
|
+
|
|
460
|
+
---
|
|
461
|
+
|
|
462
|
+
*Verified: {timestamp}*
|
|
463
|
+
*Verifier: fire-verifier*
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
### Step 5.5: Merge Verification + Review Results (v8.0)
|
|
467
|
+
|
|
468
|
+
```
|
|
469
|
+
IF reviewer was spawned (--quick NOT set):
|
|
470
|
+
Read .planning/phases/{N}-{name}/{N}-REVIEW.md
|
|
471
|
+
|
|
472
|
+
Apply combined verdict matrix (same as fire-3-execute Step 8.5):
|
|
473
|
+
|
|
474
|
+
PASSED requires BOTH:
|
|
475
|
+
- verifier: APPROVED (warrior >= 49/70)
|
|
476
|
+
- reviewer: APPROVE (no CRITICAL, <3 HIGH)
|
|
477
|
+
|
|
478
|
+
Any BLOCK from reviewer downgrades result to PASSED WITH GAPS minimum.
|
|
479
|
+
|
|
480
|
+
DISAGREEMENT HANDLING:
|
|
481
|
+
Verifier PASSED + Reviewer BLOCK:
|
|
482
|
+
→ Downgrade to PASSED WITH GAPS
|
|
483
|
+
→ "Code passes functional checks but has quality/simplicity issues."
|
|
484
|
+
|
|
485
|
+
Verifier FAILED + Reviewer APPROVE:
|
|
486
|
+
→ Keep FAILED (functional correctness takes priority)
|
|
487
|
+
→ "Code is clean but doesn't work."
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
### Step 5.75: Dual-Verification — Read from Authoritative Source (v11.0)
|
|
491
|
+
|
|
492
|
+
> **Research basis (v11.0):** Failure pattern mining (8 instances of silent persistence
|
|
493
|
+
> failures across multiple projects) — write operations appear to succeed but changes
|
|
494
|
+
> don't persist. Root causes: column name mismatches, missing server handlers,
|
|
495
|
+
> computed fields silently zeroing on UPDATE. The fix: verify by READING from the
|
|
496
|
+
> authoritative source, not trusting the write response.
|
|
497
|
+
|
|
498
|
+
For each must-have that involves a data write (create, update, delete):
|
|
499
|
+
|
|
500
|
+
```
|
|
501
|
+
FOR each must_have WHERE type == "data_persistence":
|
|
502
|
+
|
|
503
|
+
1. WRITE: Execute the operation (already done by executor)
|
|
504
|
+
|
|
505
|
+
2. READ: Query the authoritative data source directly
|
|
506
|
+
- Database: SELECT from the actual table, not the API response
|
|
507
|
+
- File: Read the file back, don't trust the write return value
|
|
508
|
+
- API: GET the resource after POST/PUT, compare fields
|
|
509
|
+
|
|
510
|
+
3. COMPARE: Verify the written values match expected values
|
|
511
|
+
field_by_field_check:
|
|
512
|
+
FOR each field in expected_values:
|
|
513
|
+
IF source_value != expected_value:
|
|
514
|
+
FLAG: "Silent persistence failure: {field} expected={expected} actual={actual}"
|
|
515
|
+
|
|
516
|
+
4. REPORT:
|
|
517
|
+
IF all fields match: PASS (verified at source)
|
|
518
|
+
IF mismatches found: FAIL with specific field-level report
|
|
519
|
+
```
|
|
520
|
+
|
|
521
|
+
**Common silent failure patterns to check:**
|
|
522
|
+
- `firstName` vs `first_name` column mismatch (frontend sends camelCase, DB uses snake_case)
|
|
523
|
+
- Computed/JOINed fields sent to UPDATE that silently zero the value
|
|
524
|
+
- API returns `{ success: true }` but handler doesn't actually call the DB
|
|
525
|
+
- Frontend shows optimistic update but server rejected the change
|
|
526
|
+
|
|
527
|
+
**Skip condition:** Must-haves that are purely UI/display or configuration (no data writes).
|
|
528
|
+
|
|
529
|
+
### Step 6: Route Based on Results
|
|
530
|
+
|
|
531
|
+
**If PASSED (all checks):**
|
|
532
|
+
```
|
|
533
|
+
â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•—
|
|
534
|
+
║ ✓ VERIFICATION PASSED ║
|
|
535
|
+
â• â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•£
|
|
536
|
+
â•‘ â•‘
|
|
537
|
+
â•‘ Phase {N} - {name} â•‘
|
|
538
|
+
â•‘ â•‘
|
|
539
|
+
║ Must-Haves: {X}/{X} ✓ ║
|
|
540
|
+
â•' WARRIOR Validation: 70/70 âœ" â•'
|
|
541
|
+
â•' Code Review: {verdict} ({findings summary}) â•'
|
|
542
|
+
â•' Simplicity: {N} over-engineering flags â•'
|
|
543
|
+
â•' â•'
|
|
544
|
+
â•' â†' Phase {N} is COMPLETE â•‘
|
|
545
|
+
║ → Ready for `/fire-2-plan {N+1}` or `/fire-5-handoff` ║
|
|
546
|
+
â•‘ â•‘
|
|
547
|
+
╚â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
548
|
+
```
|
|
549
|
+
|
|
550
|
+
**If PASSED WITH GAPS:**
|
|
551
|
+
```
|
|
552
|
+
â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•—
|
|
553
|
+
â•‘ âš VERIFICATION PASSED WITH GAPS â•‘
|
|
554
|
+
â• â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•£
|
|
555
|
+
â•‘ â•‘
|
|
556
|
+
â•‘ Phase {N} - {name} â•‘
|
|
557
|
+
â•‘ â•‘
|
|
558
|
+
â•‘ Must-Haves: {X}/{Y} (1 gap) â•‘
|
|
559
|
+
â•' WARRIOR Validation: 65/70 (2 gaps) â•'
|
|
560
|
+
â•' Code Review: {verdict} ({findings summary}) â•'
|
|
561
|
+
â•' Simplicity: {N} over-engineering flags â•'
|
|
562
|
+
â•' â•'
|
|
563
|
+
â•' Gaps: â•‘
|
|
564
|
+
â•‘ âš E2E tests not implemented (deferred) â•‘
|
|
565
|
+
â•‘ âš API versioning incomplete â•‘
|
|
566
|
+
â•‘ â•‘
|
|
567
|
+
â•‘ Options: â•‘
|
|
568
|
+
â•‘ A) Accept gaps and proceed: `/fire-2-plan {N+1}` â•‘
|
|
569
|
+
â•‘ B) Close gaps: `/fire-2-plan {N} --gaps` â•‘
|
|
570
|
+
â•‘ C) Create handoff with gaps noted: `/fire-5-handoff` â•‘
|
|
571
|
+
â•‘ â•‘
|
|
572
|
+
╚â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
**If FAILED:**
|
|
576
|
+
```
|
|
577
|
+
â•”â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•—
|
|
578
|
+
║ ✗ VERIFICATION FAILED ║
|
|
579
|
+
â• â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•£
|
|
580
|
+
â•‘ â•‘
|
|
581
|
+
â•‘ Phase {N} - {name} â•‘
|
|
582
|
+
â•‘ â•‘
|
|
583
|
+
â•‘ Must-Haves: {X}/{Y} FAILED â•‘
|
|
584
|
+
â•' WARRIOR Validation: {X}/70 FAILED â•'
|
|
585
|
+
â•' Code Review: {verdict} ({findings summary}) â•'
|
|
586
|
+
â•' Simplicity: {N} over-engineering flags â•'
|
|
587
|
+
â•' â•'
|
|
588
|
+
â•' Critical Failures: â•‘
|
|
589
|
+
║ ✗ Truth: "User can log in" - Not verified ║
|
|
590
|
+
║ ✗ Security: Hardcoded credentials found ║
|
|
591
|
+
║ ✗ Testing: Coverage 45% (required 80%) ║
|
|
592
|
+
â•‘ â•‘
|
|
593
|
+
â•‘ Action Required: â•‘
|
|
594
|
+
║ → Run `/fire-2-plan {N} --gaps` to create gap closure plan ║
|
|
595
|
+
â•‘ â•‘
|
|
596
|
+
╚â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
|
|
597
|
+
```
|
|
598
|
+
|
|
599
|
+
### Step 7: Update CONSCIENCE.md
|
|
600
|
+
|
|
601
|
+
```markdown
|
|
602
|
+
## WARRIOR Integration
|
|
603
|
+
- Validation Status: Phase {N} {result} {X}/70 checks
|
|
604
|
+
- Gaps: {list or "None"}
|
|
605
|
+
- Last verified: {timestamp}
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
### Step 7.25: Post-Verification State Transition (v10.0 — Automatic Routing)
|
|
609
|
+
|
|
610
|
+
> **Research basis (v10.0):** Internal gap analysis — after verification completes, the user
|
|
611
|
+
> must manually decide what to do next. This creates a decision bottleneck. Automatic routing
|
|
612
|
+
> based on verification result eliminates the gap between "verified" and "next action."
|
|
613
|
+
> SICA (Self-Improving Coding Agent, ICLR 2025) confirms: automated iteration loops
|
|
614
|
+
> outperform manual checkpoint-and-continue by eliminating human latency.
|
|
615
|
+
|
|
616
|
+
**AUTOMATIC routing based on verification result (no user input needed):**
|
|
617
|
+
|
|
618
|
+
```
|
|
619
|
+
SWITCH verification_result:
|
|
620
|
+
|
|
621
|
+
CASE "PASSED" (score >= 63/70, all must-haves green):
|
|
622
|
+
# Phase is complete — advance
|
|
623
|
+
1. Update CONSCIENCE.md: phase status = COMPLETE
|
|
624
|
+
2. IF next phase exists in VISION.md:
|
|
625
|
+
→ Display: "Phase {N} PASSED. Auto-advancing to Phase {N+1}."
|
|
626
|
+
→ Suggest: "/fire-2-plan {N+1}"
|
|
627
|
+
3. IF no next phase (milestone complete):
|
|
628
|
+
→ Display: "Milestone COMPLETE. Ready for /fire-5-handoff."
|
|
629
|
+
→ Suggest: "/fire-5-handoff"
|
|
630
|
+
|
|
631
|
+
CASE "PASSED_WITH_GAPS" (must-haves green, score 49-62/70):
|
|
632
|
+
# Gaps are non-critical — route based on gap severity
|
|
633
|
+
gap_severity = classify_gaps(gaps_list):
|
|
634
|
+
COSMETIC (docs, comments, minor style) → auto-advance, log deferred
|
|
635
|
+
FUNCTIONAL (missing tests, edge cases) → suggest gap closure plan
|
|
636
|
+
SECURITY (any security gap) → BLOCK, force gap closure
|
|
637
|
+
|
|
638
|
+
IF all gaps COSMETIC:
|
|
639
|
+
→ Display: "Phase {N} PASSED with cosmetic gaps (deferred)."
|
|
640
|
+
→ Auto-advance same as PASSED
|
|
641
|
+
ELSE:
|
|
642
|
+
→ Display: "Phase {N} has {N} functional gaps. Close before advancing?"
|
|
643
|
+
→ Suggest: "/fire-2-plan {N} --gaps"
|
|
644
|
+
|
|
645
|
+
CASE "FAILED" (missing must-haves OR score < 49/70):
|
|
646
|
+
# Phase needs re-work — auto-create gap closure plan
|
|
647
|
+
1. Extract failed checks into gap list
|
|
648
|
+
2. Display: "Phase {N} FAILED. Creating gap closure plan."
|
|
649
|
+
3. Auto-generate: /fire-2-plan {N} --gaps --from-failures "{failed_checks}"
|
|
650
|
+
4. Do NOT advance — loop back to execute → verify
|
|
651
|
+
```
|
|
652
|
+
|
|
653
|
+
**State transition diagram:**
|
|
654
|
+
|
|
655
|
+
```
|
|
656
|
+
PASSED ──────────→ /fire-2-plan {N+1} (next phase)
|
|
657
|
+
└→ /fire-5-handoff (if last phase)
|
|
658
|
+
|
|
659
|
+
PASSED_WITH_GAPS
|
|
660
|
+
├─ cosmetic ──→ auto-advance (gaps deferred)
|
|
661
|
+
└─ functional → /fire-2-plan {N} --gaps
|
|
662
|
+
|
|
663
|
+
FAILED ─────────→ /fire-2-plan {N} --gaps --from-failures
|
|
664
|
+
(loop: plan → execute → verify until PASSED)
|
|
665
|
+
```
|
|
666
|
+
|
|
667
|
+
### Step 7.5: Evolutionary Skill Extraction (v5.0 — Auto-Triggered)
|
|
668
|
+
|
|
669
|
+
**Research basis:** SAGE (2025) — 8.9% higher completion, 26% fewer steps via skill augmentation
|
|
670
|
+
|
|
671
|
+
After successful verification (PASS or PASS WITH GAPS), scan the phase for extractable patterns:
|
|
672
|
+
|
|
673
|
+
```
|
|
674
|
+
IF verification_status != "FAILED":
|
|
675
|
+
|
|
676
|
+
# 1. Scan execution summaries for skill candidates
|
|
677
|
+
FOR each RECORD.md in phase:
|
|
678
|
+
Analyze:
|
|
679
|
+
- Novel code patterns created
|
|
680
|
+
- Debugging strategies that worked
|
|
681
|
+
- Architectural decisions made
|
|
682
|
+
- Workarounds applied
|
|
683
|
+
|
|
684
|
+
# 2. Filter for reusable patterns (from Evolutionary Skill Synthesis)
|
|
685
|
+
candidates = patterns WHERE:
|
|
686
|
+
- Pattern is generalizable (not project-specific)
|
|
687
|
+
- Pattern solved a non-trivial problem
|
|
688
|
+
- Pattern involved >3 files OR >30 minutes of work
|
|
689
|
+
- Pattern required research or multiple attempts
|
|
690
|
+
|
|
691
|
+
# 3. For each candidate, create quarantine skill
|
|
692
|
+
IF candidates.length > 0:
|
|
693
|
+
FOR each candidate:
|
|
694
|
+
Generate skill document (problem, solution, code example, tags)
|
|
695
|
+
Save to: ~/.claude/plugins/warrior-workflow/skills-library/_quarantine/{name}.md
|
|
696
|
+
Security scan: no exec(), eval(), hardcoded credentials
|
|
697
|
+
|
|
698
|
+
Display:
|
|
699
|
+
"+--------------------------------------------------------------+"
|
|
700
|
+
"| SKILL CANDIDATES DISCOVERED |"
|
|
701
|
+
"+--------------------------------------------------------------+"
|
|
702
|
+
"| |"
|
|
703
|
+
"| {N} new skill candidates from Phase {phase}: |"
|
|
704
|
+
"| 1. {name} — {category} — {one-sentence description} |"
|
|
705
|
+
"| 2. {name} — {category} — {one-sentence description} |"
|
|
706
|
+
"| |"
|
|
707
|
+
"| Location: skills-library/_quarantine/ |"
|
|
708
|
+
"| Review: /fire-search --quarantine |"
|
|
709
|
+
"| Approve: Move to proper category directory |"
|
|
710
|
+
"| |"
|
|
711
|
+
"+--------------------------------------------------------------+"
|
|
712
|
+
|
|
713
|
+
ELSE:
|
|
714
|
+
Display: "No new skill candidates found in this phase."
|
|
715
|
+
```
|
|
716
|
+
|
|
717
|
+
**Quarantine lifecycle:**
|
|
718
|
+
- `_quarantine/` → User reviews → Approved → Move to category dir
|
|
719
|
+
- `_quarantine/` → User reviews → Rejected → Delete
|
|
720
|
+
- Auto-promoted after 3+ successful uses across 2+ projects
|
|
721
|
+
|
|
722
|
+
### Step 7.6: Hindsight for Failed Verifications (v6.0 — ECHO)
|
|
723
|
+
|
|
724
|
+
> **Research basis:** ECHO (Oct 2025) — Hindsight optimization. When verification finds
|
|
725
|
+
> failures that are then fixed, generate "what should have been done" as a synthetic
|
|
726
|
+
> positive example. Pre-seed utility_score at 0.8 (high value — these are hard-won lessons).
|
|
727
|
+
|
|
728
|
+
After verification finds must-have failures AND the fix is subsequently applied:
|
|
729
|
+
|
|
730
|
+
```
|
|
731
|
+
IF verification_status == "FAILED" OR verification_status == "PASS_WITH_GAPS":
|
|
732
|
+
|
|
733
|
+
FOR each must_have that failed:
|
|
734
|
+
# 1. Record what was expected vs what happened
|
|
735
|
+
gap_record = {
|
|
736
|
+
feature: "{feature name from must-have}",
|
|
737
|
+
expected: "{what the must-have required}",
|
|
738
|
+
actual: "{what verification found instead}",
|
|
739
|
+
category: "{missing | broken | incomplete}"
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
# 2. After fix is applied (by /fire-3-execute --gaps or manual fix):
|
|
743
|
+
# Generate hindsight lesson
|
|
744
|
+
hindsight = generate:
|
|
745
|
+
"VERIFICATION HINDSIGHT — Phase {N}: {feature}
|
|
746
|
+
|
|
747
|
+
## The Gap
|
|
748
|
+
Must-have: {expected}
|
|
749
|
+
Reality: {actual}
|
|
750
|
+
Category: {category}
|
|
751
|
+
|
|
752
|
+
## The Lesson
|
|
753
|
+
When building {feature type}, ensure {specific thing to check}
|
|
754
|
+
because {why it was missed — root cause of the gap}.
|
|
755
|
+
|
|
756
|
+
## Prevention Pattern
|
|
757
|
+
During planning: {what should have been in the plan}
|
|
758
|
+
During execution: {what check would have caught this}
|
|
759
|
+
During review: {what self-judge question would have flagged this}"
|
|
760
|
+
|
|
761
|
+
# 3. Save and index
|
|
762
|
+
Save to: .planning/phases/{N}-{name}/hindsight-{feature-slug}.md
|
|
763
|
+
|
|
764
|
+
cd ~/.claude/memory
|
|
765
|
+
npm run index-file -- ".planning/phases/{N}-{name}/hindsight-{feature-slug}.md"
|
|
766
|
+
|
|
767
|
+
# 4. Pre-seed utility score at 0.8 (verification lessons are high-value)
|
|
768
|
+
npm run track-usage -- --source ".planning/phases/{N}-{name}/hindsight-{feature-slug}.md" --helpful true
|
|
769
|
+
|
|
770
|
+
Display:
|
|
771
|
+
"+--------------------------------------------------------------+"
|
|
772
|
+
"| VERIFICATION HINDSIGHT GENERATED |"
|
|
773
|
+
"+--------------------------------------------------------------+"
|
|
774
|
+
"| |"
|
|
775
|
+
"| {N} lesson(s) from failed must-haves: |"
|
|
776
|
+
"| 1. {feature}: {one-sentence lesson} |"
|
|
777
|
+
"| 2. {feature}: {one-sentence lesson} |"
|
|
778
|
+
"| |"
|
|
779
|
+
"| Indexed into vector memory (utility: 0.8) |"
|
|
780
|
+
"| Future plans will find these via episodic recall. |"
|
|
781
|
+
"| |"
|
|
782
|
+
"+--------------------------------------------------------------+"
|
|
783
|
+
```
|
|
784
|
+
|
|
785
|
+
**Why pre-seed at 0.8:** Verification failures represent hard-won knowledge. They are
|
|
786
|
+
lessons discovered only after building and testing — the most valuable kind of memory.
|
|
787
|
+
By pre-seeding utility at 0.8, two-phase retrieval (Gap 5) will prioritize these
|
|
788
|
+
over generic code snippets, ensuring future phases learn from past mistakes.
|
|
789
|
+
|
|
790
|
+
---
|
|
791
|
+
|
|
792
|
+
## Agent Spawning Instructions
|
|
793
|
+
|
|
794
|
+
### fire-verifier
|
|
795
|
+
|
|
796
|
+
**Agent File:** `@agents/fire-verifier.md`
|
|
797
|
+
|
|
798
|
+
**Context:**
|
|
799
|
+
```markdown
|
|
800
|
+
<phase_context>
|
|
801
|
+
Phase: {N} - {name}
|
|
802
|
+
Plans: {list}
|
|
803
|
+
</phase_context>
|
|
804
|
+
|
|
805
|
+
<must_haves>
|
|
806
|
+
{Aggregated from all plans}
|
|
807
|
+
</must_haves>
|
|
808
|
+
|
|
809
|
+
<warrior_checklist>
|
|
810
|
+
@references/validation-checklist.md
|
|
811
|
+
</warrior_checklist>
|
|
812
|
+
```
|
|
813
|
+
|
|
814
|
+
**Verifier Outputs:**
|
|
815
|
+
- `{N}-VERIFICATION.md`
|
|
816
|
+
- Gap analysis
|
|
817
|
+
- Recommendations
|
|
818
|
+
|
|
819
|
+
---
|
|
820
|
+
|
|
821
|
+
## Success Criteria
|
|
822
|
+
|
|
823
|
+
### Required Outputs
|
|
824
|
+
- [ ] All must-haves verified
|
|
825
|
+
- [ ] All WARRIOR checks executed
|
|
826
|
+
- [ ] `{N}-VERIFICATION.md` created
|
|
827
|
+
- [ ] `{N}-REVIEW.md` created (if --quick not set) (v8.0)
|
|
828
|
+
- [ ] Combined verdict evaluated — both verifier and reviewer must agree (v8.0)
|
|
829
|
+
- [ ] CONSCIENCE.md updated with verification status
|
|
830
|
+
- [ ] Clear routing to next action
|
|
831
|
+
|
|
832
|
+
### Completion Criteria
|
|
833
|
+
- **PASS:** All must-haves + >=63/70 WARRIOR checks
|
|
834
|
+
- **PASS WITH GAPS:** All must-haves + >=49/70 WARRIOR checks
|
|
835
|
+
- **FAIL:** Missing must-haves OR <49/70 WARRIOR checks
|
|
836
|
+
|
|
837
|
+
---
|
|
838
|
+
|
|
839
|
+
## References
|
|
840
|
+
|
|
841
|
+
- **Agent:** `@agents/fire-verifier.md` - Verification agent (functional checks)
|
|
842
|
+
- **Agent:** `@agents/fire-reviewer.md` - Review agent (quality + simplicity) (v8.0)
|
|
843
|
+
- **Template:** `@templates/verification.md` - Report template
|
|
844
|
+
- **Checklist:** `@references/validation-checklist.md` - 70-point checklist
|
|
845
|
+
- **Brand:** `@references/ui-brand.md` - Visual output standards
|