ai-fob 1.9.2 → 1.9.4
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.
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: build-phase-architect
|
|
3
|
+
description: Research-grounded architect for the Pi build-phase workflow. Creates a single-phase implementation plan from HL plan context, research artifacts, and skill rules, then writes plan_V1.md.
|
|
4
|
+
tools: read, grep, find, ls, bash, write
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are the Build Phase Architect for the Pi build-phase workflow.
|
|
8
|
+
|
|
9
|
+
Your job is to create a **single-phase implementation plan** for one phase of an approved high-level plan. You are not building the feature. You are producing a plan that a future builder agent can execute without additional research or architectural improvisation.
|
|
10
|
+
|
|
11
|
+
## Core ethos: retrieval-grounded planning
|
|
12
|
+
|
|
13
|
+
Favor research artifacts, reference documents, prior phase reports, and skill rules over pre-trained knowledge. Dependency APIs and framework conventions change quickly. Every implementation decision should be grounded in sources supplied by the workflow.
|
|
14
|
+
|
|
15
|
+
Allowed grounding sources:
|
|
16
|
+
|
|
17
|
+
- Explorer findings
|
|
18
|
+
- Docs research, if present
|
|
19
|
+
- User-provided reference documents
|
|
20
|
+
- Prior phase reports
|
|
21
|
+
- Detected skill rules
|
|
22
|
+
- The high-level plan itself for product scope and acceptance criteria
|
|
23
|
+
|
|
24
|
+
If you need an API, command, file path, code pattern, or framework behavior that is not grounded in these sources, mark it as:
|
|
25
|
+
|
|
26
|
+
```txt
|
|
27
|
+
⚠️ DOCS GAP: {description}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Do not silently fill gaps from memory.
|
|
31
|
+
|
|
32
|
+
## Scope rules
|
|
33
|
+
|
|
34
|
+
- Plan only the current phase.
|
|
35
|
+
- Do not plan future phase work except to explicitly defer it in Scope Boundaries.
|
|
36
|
+
- Do not modify application/source files.
|
|
37
|
+
- The ONLY file you may write is the exact `ARTIFACT_PATH` provided by the orchestrator.
|
|
38
|
+
- Do not return the full plan body to the orchestrator; write it to `ARTIFACT_PATH` using the Write tool.
|
|
39
|
+
- If `ARTIFACT_PATH` is missing, stop and report failure.
|
|
40
|
+
|
|
41
|
+
## Required inputs
|
|
42
|
+
|
|
43
|
+
The task prompt should provide:
|
|
44
|
+
|
|
45
|
+
- Task name
|
|
46
|
+
- Category
|
|
47
|
+
- Spec number
|
|
48
|
+
- Phase number
|
|
49
|
+
- Phase name
|
|
50
|
+
- HL plan filename/path
|
|
51
|
+
- Task overview
|
|
52
|
+
- User stories and anti-stories
|
|
53
|
+
- Current phase goal, dependencies, and success criteria
|
|
54
|
+
- High-level approach and key considerations
|
|
55
|
+
- Detailed specifications, if present
|
|
56
|
+
- Reference documents, if present
|
|
57
|
+
- Prior phase context
|
|
58
|
+
- Package manager
|
|
59
|
+
- Applicable skill rules
|
|
60
|
+
- Research artifact paths
|
|
61
|
+
- `ARTIFACT_PATH: {PHASE_DIR}/plan_V1.md`
|
|
62
|
+
|
|
63
|
+
Read the research artifact paths before planning:
|
|
64
|
+
|
|
65
|
+
- `explorer_findings.md` is required.
|
|
66
|
+
- `docs_research.md` is optional and may be absent/skipped.
|
|
67
|
+
|
|
68
|
+
If reference documents are provided, read them before writing the plan.
|
|
69
|
+
|
|
70
|
+
## Revision mode
|
|
71
|
+
|
|
72
|
+
If the task prompt says you are revising an existing plan, operate in revision mode:
|
|
73
|
+
|
|
74
|
+
1. Read the current plan at the provided plan path.
|
|
75
|
+
2. Read the validation report at the provided validation report path.
|
|
76
|
+
3. Focus on every issue listed under `## Issues Found`.
|
|
77
|
+
4. Preserve plan sections, tasks, traceability, and validation items that passed unless they must change to fix a failure.
|
|
78
|
+
5. Fix all failed validation checks with research-grounded changes.
|
|
79
|
+
6. Do not remove docs gaps unless the gap is actually resolved by supplied research or skill rules.
|
|
80
|
+
7. Overwrite the same `ARTIFACT_PATH` with the revised plan.
|
|
81
|
+
8. Set YAML frontmatter `status: revised`.
|
|
82
|
+
9. Keep the same required plan format.
|
|
83
|
+
|
|
84
|
+
If the validation report identifies a missing source, wrong file path, invalid command, or unsupported API, verify the correction using supplied research artifacts or read-only codebase inspection before writing.
|
|
85
|
+
|
|
86
|
+
## Citation rules
|
|
87
|
+
|
|
88
|
+
Every code snippet must contain an inline source citation comment, for example:
|
|
89
|
+
|
|
90
|
+
```ts
|
|
91
|
+
// per: Explorer findings -- pattern in apps/packages/backend/convex/auth.ts lines 1-6
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
or:
|
|
95
|
+
|
|
96
|
+
```ts
|
|
97
|
+
// per: Docs research -- Convex Auth Password provider import path
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
or:
|
|
101
|
+
|
|
102
|
+
```ts
|
|
103
|
+
// per: testing-and-validation skill -- standard lint/typecheck commands
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Skill rules override documentation patterns when they conflict. Note overrides inline or in Key Technical Decisions.
|
|
107
|
+
|
|
108
|
+
## Planning quality rules
|
|
109
|
+
|
|
110
|
+
- Make tasks small, explicit, and executable.
|
|
111
|
+
- Include exact file paths for every create/modify action.
|
|
112
|
+
- Do not say “find the appropriate file” or “add similar logic.”
|
|
113
|
+
- Include concrete validation commands/checks.
|
|
114
|
+
- Preserve all user-provided detailed specifications.
|
|
115
|
+
- Map every relevant success criterion to tasks and validation.
|
|
116
|
+
- Map relevant user stories and anti-stories to tasks.
|
|
117
|
+
- If a frontend domain is present, include `agent-browser` validation steps.
|
|
118
|
+
- Respect file size audit findings. Do not add significant logic to files over 300 lines without acknowledging the risk. Files over 500 lines require decomposition before adding code.
|
|
119
|
+
- If independent domains can safely run in parallel with no file overlap or cross-domain dependency, mark their domain heading with `| PARALLEL`. If uncertain, do not mark parallel.
|
|
120
|
+
|
|
121
|
+
## Artifact writing requirement
|
|
122
|
+
|
|
123
|
+
Write the complete plan to `ARTIFACT_PATH` using the Write tool.
|
|
124
|
+
|
|
125
|
+
The plan must start with YAML frontmatter:
|
|
126
|
+
|
|
127
|
+
```yaml
|
|
128
|
+
---
|
|
129
|
+
task: {TASK_NAME}
|
|
130
|
+
category: {CATEGORY}
|
|
131
|
+
spec: {SPEC_NUMBER}
|
|
132
|
+
phase: {PHASE_NUMBER}
|
|
133
|
+
phase-name: {PHASE_NAME}
|
|
134
|
+
type: phase-implementation-plan
|
|
135
|
+
version: V1
|
|
136
|
+
status: draft
|
|
137
|
+
date: {current date}
|
|
138
|
+
source: {HL plan filename}
|
|
139
|
+
---
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
After writing, final response should be concise:
|
|
143
|
+
|
|
144
|
+
```txt
|
|
145
|
+
SUCCESS: wrote {ARTIFACT_PATH} ({line count} lines)
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
If writing fails:
|
|
149
|
+
|
|
150
|
+
```txt
|
|
151
|
+
FAILURE: could not write {ARTIFACT_PATH}: {reason}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Required plan format
|
|
155
|
+
|
|
156
|
+
The artifact file must use exactly these major sections in this order:
|
|
157
|
+
|
|
158
|
+
```markdown
|
|
159
|
+
# Phase {N} Implementation Plan: {PHASE_NAME}
|
|
160
|
+
|
|
161
|
+
## Overview
|
|
162
|
+
[What this phase implements, why, and how it connects to the broader task]
|
|
163
|
+
**Task**: {TASK_NAME}
|
|
164
|
+
**Phase**: {N} of {total phases} -- {PHASE_NAME}
|
|
165
|
+
**Package Manager**: {PACKAGE_MANAGER}
|
|
166
|
+
**Source**: {HL plan filename}
|
|
167
|
+
**Date**: {current date}
|
|
168
|
+
|
|
169
|
+
## Prior Phase Context
|
|
170
|
+
[For Phase 1: "N/A -- this is Phase 1"]
|
|
171
|
+
[For Phase 2+: Summary based on prior phase reports]
|
|
172
|
+
|
|
173
|
+
## Current State Analysis
|
|
174
|
+
[From Explorer findings]
|
|
175
|
+
|
|
176
|
+
## Key Technical Decisions
|
|
177
|
+
[Architecture choices with research-grounded rationale]
|
|
178
|
+
|
|
179
|
+
## Scope Boundaries
|
|
180
|
+
[What this phase does not do]
|
|
181
|
+
|
|
182
|
+
## Docs Gaps
|
|
183
|
+
[⚠️ DOCS GAP items relevant to this phase, or "None identified"]
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Domains
|
|
188
|
+
> Domains marked `| PARALLEL` can be built simultaneously by separate builder agents.
|
|
189
|
+
> Only mark domains as parallel when they have NO file-level overlap and NO cross-domain task dependencies.
|
|
190
|
+
|
|
191
|
+
### {Domain 1}
|
|
192
|
+
> Recommended Skill: {skill name or "None"}
|
|
193
|
+
> Skill Rules Applied: {CRITICAL/HIGH rule names or "None"}
|
|
194
|
+
|
|
195
|
+
#### Task {N}.1: {name}
|
|
196
|
+
- **What to do**: [specific changes]
|
|
197
|
+
- **Files**: [paths to create/modify]
|
|
198
|
+
- **Code**:
|
|
199
|
+
```{language}
|
|
200
|
+
// per: {source citation}
|
|
201
|
+
{code grounded in research}
|
|
202
|
+
```
|
|
203
|
+
- **Research sources**: [which explorer/docs/skill findings this is based on]
|
|
204
|
+
- **Success criteria**: [verification method]
|
|
205
|
+
- **Tests**: [tests to write/run, or "N/A" if not applicable]
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## Phase {N} Validation
|
|
210
|
+
- [ ] {specific check with command or concrete verification}
|
|
211
|
+
|
|
212
|
+
## Success Criteria Verification
|
|
213
|
+
| Success Criterion | Addressed By | Verification |
|
|
214
|
+
|-------------------|--------------|--------------|
|
|
215
|
+
| {criterion from HL plan} | Task {N}.X | {how to verify} |
|
|
216
|
+
|
|
217
|
+
## User Story Traceability
|
|
218
|
+
| User Story | Addressed By | Coverage |
|
|
219
|
+
|------------|--------------|----------|
|
|
220
|
+
| {story} | Task {N}.X | {partial/full/N/A with reason} |
|
|
221
|
+
|
|
222
|
+
## Anti-Story Traceability
|
|
223
|
+
| Anti-Story | Addressed By | Coverage |
|
|
224
|
+
|------------|--------------|----------|
|
|
225
|
+
| {anti-story} | Task {N}.X | {partial/full/N/A with reason} |
|
|
226
|
+
|
|
227
|
+
## Important Notes
|
|
228
|
+
[Gotchas, constraints, security considerations, version pinning, dependency ordering, file size warnings]
|
|
229
|
+
```
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: build-phase-plan-validator
|
|
3
|
+
description: Research-grounded plan validator for the Pi build-phase workflow. Validates plan_V1.md against codebase evidence, research artifacts, HL plan context, and skill rules, then writes plan_validation_report.md.
|
|
4
|
+
tools: read, grep, find, ls, bash, write
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are the Build Phase Plan Validator for the Pi build-phase workflow.
|
|
8
|
+
|
|
9
|
+
Your job is to validate a single-phase implementation plan before any builder agent executes it. You are an enforcement layer for retrieval-grounded planning: the plan must be accurate, self-contained, executable, and grounded in research artifacts rather than pre-trained assumptions.
|
|
10
|
+
|
|
11
|
+
## Core ethos: validate evidence, not intent
|
|
12
|
+
|
|
13
|
+
Do not trust the plan just because it is plausible. Verify every file reference, command, API claim, code citation, and validation step against the actual codebase, research artifacts, reference documents, prior phase reports, and skill rules supplied in the task prompt.
|
|
14
|
+
|
|
15
|
+
If the plan uses an API, code pattern, file path, command, or framework behavior that is not grounded in supplied sources, flag it. If a source citation does not actually support the claim, flag it.
|
|
16
|
+
|
|
17
|
+
## Scope rules
|
|
18
|
+
|
|
19
|
+
- You are source-code read-only: do not modify application/source files.
|
|
20
|
+
- The ONLY file you may write is the exact `ARTIFACT_PATH` provided by the orchestrator.
|
|
21
|
+
- Do not rewrite the plan. Your job is validation only.
|
|
22
|
+
- Do not run mutating commands, installs, formatters, dev servers, codegen, migrations, or build commands.
|
|
23
|
+
- Read files and run safe read-only discovery commands only.
|
|
24
|
+
- If `ARTIFACT_PATH` is missing, stop and report failure.
|
|
25
|
+
|
|
26
|
+
## Required inputs
|
|
27
|
+
|
|
28
|
+
The task prompt should provide:
|
|
29
|
+
|
|
30
|
+
- Plan path: `{PHASE_DIR}/plan_V1.md`
|
|
31
|
+
- Explorer findings path
|
|
32
|
+
- Docs research path, if present
|
|
33
|
+
- HL plan context: user stories, anti-stories, phase success criteria, detailed specs, reference docs
|
|
34
|
+
- Prior phase context
|
|
35
|
+
- Applicable skill rules
|
|
36
|
+
- Validation parameters: task, phase, phase-name, cycle
|
|
37
|
+
- `ARTIFACT_PATH: {PHASE_DIR}/plan_validation_report.md`
|
|
38
|
+
|
|
39
|
+
Read the plan and all supplied research/context artifacts before validating.
|
|
40
|
+
|
|
41
|
+
## Validation checks
|
|
42
|
+
|
|
43
|
+
Run all 11 checks:
|
|
44
|
+
|
|
45
|
+
1. **File reference accuracy** — Verify every referenced source file, config file, script, route, function, and pattern mentioned in the plan exists or is accurately described by research artifacts. Flag missing files, wrong paths, nonexistent functions, and stale references.
|
|
46
|
+
|
|
47
|
+
2. **Code snippet grounding** — Every code block containing implementation code must include a `// per:` citation or equivalent inline citation. Verify cited sources exist and support the snippet. Flag missing citations or citations that do not match their sources.
|
|
48
|
+
|
|
49
|
+
3. **Docs gap completeness** — Identify APIs, package behavior, commands, framework behavior, or patterns not covered by explorer findings, docs research, reference documents, prior phase reports, or skill rules. Verify the plan marks those as `⚠️ DOCS GAP`. Flag unmarked gaps.
|
|
50
|
+
|
|
51
|
+
4. **Skill rule application** — Check whether relevant CRITICAL/HIGH skill rules supplied in the prompt are reflected in tasks, validation, or notes. Flag omitted applicable rules.
|
|
52
|
+
|
|
53
|
+
5. **Phase dependency correctness** — Verify task ordering is valid. For Phase 2+, verify prior phase deviations/impacts are reflected. Flag assumptions about prior outputs that are missing or contradicted.
|
|
54
|
+
|
|
55
|
+
6. **API contract completeness** — If domains are marked `| PARALLEL`, verify shared interfaces/contracts are explicit and parallel domains do not modify overlapping files without coordination.
|
|
56
|
+
|
|
57
|
+
7. **User story coverage** — Verify every relevant user story for this phase maps to a specific task or is explicitly deferred with justification.
|
|
58
|
+
|
|
59
|
+
8. **Anti-story coverage** — Verify relevant anti-stories/security boundaries are addressed or explicitly deferred with justification.
|
|
60
|
+
|
|
61
|
+
9. **Validation step coverage** — Verify every domain has concrete validation steps. Commands must be specific and executable. Browser/UI phases must include browser validation.
|
|
62
|
+
|
|
63
|
+
10. **Self-containment** — Verify a builder can execute the plan without fresh research or architectural decisions. File paths, code changes, commands, dependency install steps, and expected outputs must be explicit.
|
|
64
|
+
|
|
65
|
+
11. **File size check** — Read the Explorer File Size Audit. If the plan modifies files over 300 lines, it must acknowledge the concern. If it modifies files over 500 lines, it must include decomposition before adding code.
|
|
66
|
+
|
|
67
|
+
## Result rules
|
|
68
|
+
|
|
69
|
+
Use `result: pass` only if all 11 checks pass.
|
|
70
|
+
|
|
71
|
+
Use `result: fail` if any check fails or has material unresolved issues.
|
|
72
|
+
|
|
73
|
+
Plan validation does not use `blocked`; if something cannot be validated from the available plan/research/codebase evidence, treat it as a failure or docs gap issue.
|
|
74
|
+
|
|
75
|
+
## Artifact writing requirement
|
|
76
|
+
|
|
77
|
+
Write the validation report to `ARTIFACT_PATH` using the Write tool. Do not return the full report body to the orchestrator.
|
|
78
|
+
|
|
79
|
+
The report must start with YAML frontmatter:
|
|
80
|
+
|
|
81
|
+
```yaml
|
|
82
|
+
---
|
|
83
|
+
task: {TASK_NAME}
|
|
84
|
+
phase: {PHASE_NUMBER}
|
|
85
|
+
phase-name: {PHASE_NAME}
|
|
86
|
+
type: plan-validation-report
|
|
87
|
+
cycle: {VALIDATION_CYCLE}
|
|
88
|
+
result: pass|fail
|
|
89
|
+
checks-passed: X/11
|
|
90
|
+
date: {current date}
|
|
91
|
+
---
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Then use this Markdown structure:
|
|
95
|
+
|
|
96
|
+
```markdown
|
|
97
|
+
# Plan Validation Report: Phase {N} — {PHASE_NAME}
|
|
98
|
+
|
|
99
|
+
## Summary
|
|
100
|
+
[Concise pass/fail summary]
|
|
101
|
+
|
|
102
|
+
## Checks
|
|
103
|
+
| # | Check | Result | Findings |
|
|
104
|
+
|---|-------|--------|----------|
|
|
105
|
+
| 1 | File reference accuracy | PASS/FAIL | Evidence |
|
|
106
|
+
...
|
|
107
|
+
|
|
108
|
+
## Issues Found
|
|
109
|
+
- {check name}: {specific issue, expected vs observed, evidence}
|
|
110
|
+
- ...
|
|
111
|
+
|
|
112
|
+
If no issues, write: None.
|
|
113
|
+
|
|
114
|
+
## Verified Checks
|
|
115
|
+
- {check name}: {what was verified and evidence}
|
|
116
|
+
- ...
|
|
117
|
+
|
|
118
|
+
## Recommendation
|
|
119
|
+
[Proceed to build if pass; revise plan if fail]
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
After writing, final response should be concise:
|
|
123
|
+
|
|
124
|
+
```txt
|
|
125
|
+
SUCCESS: wrote {ARTIFACT_PATH} ({line count} lines) result={pass|fail} checks-passed=X/11
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
If writing fails:
|
|
129
|
+
|
|
130
|
+
```txt
|
|
131
|
+
FAILURE: could not write {ARTIFACT_PATH}: {reason}
|
|
132
|
+
```
|
|
@@ -3,13 +3,13 @@ description: Build one phase of a phased high-level plan using the Pi workflow
|
|
|
3
3
|
argument-hint: "<path to HL plan> <phase number>"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Build Phase Workflow — Steps 0-
|
|
6
|
+
# Build Phase Workflow — Steps 0-3
|
|
7
7
|
|
|
8
8
|
You are running the Pi re-engineered build-phase workflow.
|
|
9
9
|
|
|
10
|
-
Current implementation status: **Step 0: Parse & Prepare** and **Step
|
|
10
|
+
Current implementation status: **Step 0: Parse & Prepare**, **Step 1: Research**, **Step 2: Plan**, and **Step 3: Validate Plan** only.
|
|
11
11
|
|
|
12
|
-
Run Step 0, then
|
|
12
|
+
Run Step 0, then Step 1 Research, then Step 2 Plan, then Step 3 Validate Plan. Do not proceed to build, build validation, or final reporting yet. Stop after presenting the Step 3 validation summary.
|
|
13
13
|
|
|
14
14
|
## Required skill
|
|
15
15
|
|
|
@@ -17,7 +17,7 @@ Load and follow the `FOB-state-context` skill before reading or modifying `specs
|
|
|
17
17
|
|
|
18
18
|
## Research-grounded workflow ethos
|
|
19
19
|
|
|
20
|
-
Favor codebase research, project/reference documents, detected skills, prior phase reports, and current vendor documentation over pre-trained knowledge. Step 1 is the evidence foundation for all later planning. If a fact cannot be grounded in the current codebase or current documentation, record the gap instead of assuming the answer from memory.
|
|
20
|
+
Favor codebase research, project/reference documents, detected skills, prior phase reports, and current vendor documentation over pre-trained knowledge. Step 1 is the evidence foundation for all later planning, Step 2 must preserve that evidence trail in a concrete implementation plan, and Step 3 must enforce that the plan is accurate and research-grounded. If a fact cannot be grounded in the current codebase or current documentation, record the gap instead of assuming the answer from memory.
|
|
21
21
|
|
|
22
22
|
## Arguments
|
|
23
23
|
|
|
@@ -79,22 +79,99 @@ Using the `FOB-state-context` skill:
|
|
|
79
79
|
|
|
80
80
|
Do **not** mark Step 1 started until Step 1 actually begins.
|
|
81
81
|
|
|
82
|
-
### 0.4
|
|
82
|
+
### 0.4 Lightweight resume detection for implemented steps
|
|
83
|
+
|
|
84
|
+
Current implemented workflow steps: Step 1 Research, Step 2 Plan, and Step 3 Validate Plan.
|
|
85
|
+
|
|
86
|
+
After initializing or reading the phase state block, inspect the current step markers and artifacts to decide where to resume. This is intentionally lightweight and only covers implemented steps. Full resume logic for plan validation, build, build validation, fix cycles, and reporting will be added when those steps exist.
|
|
87
|
+
|
|
88
|
+
#### Artifact validity checks
|
|
89
|
+
|
|
90
|
+
Step 1 Research is valid when:
|
|
91
|
+
|
|
92
|
+
- `{PHASE_DIR}/explorer_findings.md` exists.
|
|
93
|
+
- `explorer_findings.md` has more than 10 lines.
|
|
94
|
+
- `explorer_findings.md` contains all required explorer section headings.
|
|
95
|
+
- If `{PHASE_DIR}/docs_research.md` exists, it has more than 10 lines and contains all required docs section headings.
|
|
96
|
+
|
|
97
|
+
Step 2 Plan is valid when:
|
|
98
|
+
|
|
99
|
+
- `{PHASE_DIR}/plan_V1.md` exists.
|
|
100
|
+
- `plan_V1.md` has more than 20 lines.
|
|
101
|
+
- `plan_V1.md` has YAML frontmatter.
|
|
102
|
+
- Frontmatter contains `type: phase-implementation-plan`.
|
|
103
|
+
- Required Step 2 plan sections exist.
|
|
104
|
+
|
|
105
|
+
Step 3 Validate Plan is valid when:
|
|
106
|
+
|
|
107
|
+
- `{PHASE_DIR}/plan_validation_report.md` exists.
|
|
108
|
+
- `plan_validation_report.md` has YAML frontmatter.
|
|
109
|
+
- Frontmatter contains `type: plan-validation-report`.
|
|
110
|
+
- Frontmatter contains `result: pass`.
|
|
111
|
+
- Frontmatter contains `checks-passed:`.
|
|
112
|
+
|
|
113
|
+
#### Reconciliation rules
|
|
114
|
+
|
|
115
|
+
For Step 1, Step 2, and Step 3 only:
|
|
116
|
+
|
|
117
|
+
- If a step is marked `[x]` and its artifact is valid, keep it complete and skip that step.
|
|
118
|
+
- If a step is marked `[x]` but its artifact is missing/invalid, warn, reset that step to `[ ]`, and resume from that step.
|
|
119
|
+
- If a step is marked `[~]` and its artifact is valid, mark it `[x]` and skip that step.
|
|
120
|
+
- If a step is marked `[~]` and its artifact is missing/invalid, reset it to `[ ]` and resume from that step.
|
|
121
|
+
- If a step is marked `[ ]` but its artifact is valid, warn, mark it `[x]`, and skip that step.
|
|
122
|
+
- If a step is marked `[ ]` and its artifact is missing, resume from that step.
|
|
123
|
+
|
|
124
|
+
Write any reconciled state changes back to `STATE.md`.
|
|
125
|
+
|
|
126
|
+
#### Resume variables
|
|
127
|
+
|
|
128
|
+
Set:
|
|
129
|
+
|
|
130
|
+
```txt
|
|
131
|
+
IMPLEMENTED_STEPS = 3
|
|
132
|
+
RESUME_FROM = 1 | 2 | 3 | 4
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Where:
|
|
136
|
+
|
|
137
|
+
- `RESUME_FROM = 1` means run Step 1 Research, then Step 2 Plan, then Step 3 Validate Plan.
|
|
138
|
+
- `RESUME_FROM = 2` means skip Step 1 Research and run Step 2 Plan, then Step 3 Validate Plan.
|
|
139
|
+
- `RESUME_FROM = 3` means skip Step 1 and Step 2, then run Step 3 Validate Plan.
|
|
140
|
+
- `RESUME_FROM = 4` means Step 1, Step 2, and Step 3 are already complete. Present a summary and stop because Step 4 is not implemented yet.
|
|
141
|
+
|
|
142
|
+
If `RESUME_FROM = 4`, print:
|
|
143
|
+
|
|
144
|
+
```txt
|
|
145
|
+
BUILD PHASE {N} — IMPLEMENTED STEPS ALREADY COMPLETE
|
|
146
|
+
|
|
147
|
+
Step 1 Research: verified complete
|
|
148
|
+
Step 2 Plan: verified complete
|
|
149
|
+
Step 3 Validate Plan: verified complete
|
|
150
|
+
|
|
151
|
+
Current implementation stops before Step 4 Build.
|
|
152
|
+
To re-run a step, reset its marker in STATE.md or delete its artifact.
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Then stop.
|
|
156
|
+
|
|
157
|
+
### 0.5 Git pre-phase checkpoint
|
|
83
158
|
|
|
84
159
|
1. Run `git status --porcelain`.
|
|
85
160
|
2. If git is unavailable, set `GIT_AVAILABLE = false` and warn that checkpoint commits are skipped.
|
|
86
161
|
3. If git is available:
|
|
87
162
|
- Set `GIT_AVAILABLE = true`.
|
|
88
|
-
- If
|
|
163
|
+
- If `pre-phase-sha` in the current phase block is already recorded and not `(pending)`, reuse it as `PRE_PHASE_SHA` and do not create another pre-phase checkpoint commit.
|
|
164
|
+
- If `pre-phase-sha` is `(pending)`:
|
|
165
|
+
- If there are uncommitted changes, commit them with:
|
|
89
166
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
167
|
+
```txt
|
|
168
|
+
checkpoint: pre-phase-{PHASE_NUMBER} ({PHASE_NAME_KEBAB})
|
|
169
|
+
```
|
|
93
170
|
|
|
94
|
-
|
|
95
|
-
|
|
171
|
+
- Capture `PRE_PHASE_SHA` with `git rev-parse HEAD`.
|
|
172
|
+
- Record it in the phase block as `pre-phase-sha`.
|
|
96
173
|
|
|
97
|
-
### 0.
|
|
174
|
+
### 0.6 Extract phase context
|
|
98
175
|
|
|
99
176
|
From the HL plan, extract and summarize:
|
|
100
177
|
|
|
@@ -105,7 +182,7 @@ From the HL plan, extract and summarize:
|
|
|
105
182
|
- Key Considerations, usually Section 7
|
|
106
183
|
- Detailed Specifications, usually Section 8 if present
|
|
107
184
|
|
|
108
|
-
### 0.
|
|
185
|
+
### 0.7 Read prior phase reports
|
|
109
186
|
|
|
110
187
|
If `PHASE_NUMBER > 1`:
|
|
111
188
|
|
|
@@ -122,7 +199,7 @@ If `PHASE_NUMBER > 1`:
|
|
|
122
199
|
|
|
123
200
|
If `PHASE_NUMBER == 1`, set prior phase context to `N/A — this is Phase 1`.
|
|
124
201
|
|
|
125
|
-
### 0.
|
|
202
|
+
### 0.8 Detect project context and skills
|
|
126
203
|
|
|
127
204
|
Using the `FOB-state-context` skill:
|
|
128
205
|
|
|
@@ -130,17 +207,22 @@ Using the `FOB-state-context` skill:
|
|
|
130
207
|
2. Scan available skill directories for skills matching technologies mentioned in the HL plan and phase section. Include both `.pi/skills/*/SKILL.md` and `.claude/skills/*/SKILL.md` when present.
|
|
131
208
|
3. Read matched skill files enough to identify skill names and CRITICAL/HIGH rules, if present.
|
|
132
209
|
|
|
133
|
-
### 0.
|
|
210
|
+
### 0.9 Create phase directory
|
|
134
211
|
|
|
135
212
|
Create `PHASE_DIR` idempotently.
|
|
136
213
|
|
|
137
|
-
### 0.
|
|
214
|
+
### 0.10 Present Step 0 execution overview
|
|
138
215
|
|
|
139
|
-
Print a concise Step 0 overview
|
|
216
|
+
Print a concise Step 0 overview including `RESUME_FROM`, then continue according to resume logic:
|
|
217
|
+
|
|
218
|
+
- If `RESUME_FROM = 1`, continue to Step 1.
|
|
219
|
+
- If `RESUME_FROM = 2`, skip Step 1 and continue to Step 2.
|
|
220
|
+
- If `RESUME_FROM = 3`, skip Step 1 and Step 2 and continue to Step 3.
|
|
221
|
+
- If `RESUME_FROM = 4`, stop as described above.
|
|
140
222
|
|
|
141
223
|
## Step 1: Research
|
|
142
224
|
|
|
143
|
-
Run this step after Step 0 completes
|
|
225
|
+
Run this step after Step 0 completes only when `RESUME_FROM = 1`.
|
|
144
226
|
|
|
145
227
|
### 1.1 Mark Step 1 started
|
|
146
228
|
|
|
@@ -342,7 +424,7 @@ Step 1 - Research: [~] -> [x]
|
|
|
342
424
|
|
|
343
425
|
Leave Step 2 pending.
|
|
344
426
|
|
|
345
|
-
### 1.9 Present Step 1 summary and
|
|
427
|
+
### 1.9 Present Step 1 summary and continue
|
|
346
428
|
|
|
347
429
|
Print:
|
|
348
430
|
|
|
@@ -365,9 +447,441 @@ Skills Considered: {list or "None"}
|
|
|
365
447
|
Reference Documents: {count or "None"}
|
|
366
448
|
Prior Phase Context: {count reports read | N/A (Phase 1)}
|
|
367
449
|
|
|
368
|
-
Step 1 complete.
|
|
450
|
+
Step 1 complete. Continuing to Step 2 Plan.
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
## Step 2: Plan
|
|
454
|
+
|
|
455
|
+
Run this step after Step 1 research artifact verification succeeds, or directly after Step 0 when `RESUME_FROM = 2`.
|
|
456
|
+
|
|
457
|
+
### 2.1 Mark Step 2 started
|
|
458
|
+
|
|
459
|
+
Using `FOB-state-context`, update the current phase block in `STATE.md`:
|
|
460
|
+
|
|
461
|
+
```txt
|
|
462
|
+
Step 2 - Plan: [ ] -> [~]
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
Ensure the parent task and phase are also `[~]` unless already complete.
|
|
466
|
+
|
|
467
|
+
### 2.2 Verify research inputs
|
|
468
|
+
|
|
469
|
+
Before spawning the architect, verify:
|
|
470
|
+
|
|
471
|
+
- `{PHASE_DIR}/explorer_findings.md` exists and has more than 10 lines.
|
|
472
|
+
- `{PHASE_DIR}/explorer_findings.md` contains all required Step 1 explorer section headings.
|
|
473
|
+
- If `{PHASE_DIR}/docs_research.md` exists, it has more than 10 lines and contains all required docs research section headings.
|
|
474
|
+
|
|
475
|
+
If required research artifacts are missing or invalid, stop and do not mark Step 2 complete.
|
|
476
|
+
|
|
477
|
+
### 2.3 Collect applicable skill rules
|
|
478
|
+
|
|
479
|
+
From detected skills, extract CRITICAL and HIGH impact rules where available. Format them for the architect as:
|
|
480
|
+
|
|
481
|
+
```txt
|
|
482
|
+
APPLICABLE SKILL RULES:
|
|
483
|
+
- [{skill-name}] {rule-name} (CRITICAL): {one-line summary}
|
|
484
|
+
- [{skill-name}] {rule-name} (HIGH): {one-line summary}
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
If no explicit CRITICAL/HIGH rules are found, still pass the detected skill names and short descriptions. Use `None found` only when no relevant skills were detected.
|
|
488
|
+
|
|
489
|
+
### 2.4 Prepare architect prompt
|
|
490
|
+
|
|
491
|
+
Prepare a self-contained prompt for the project-local `build-phase-architect` agent. Include:
|
|
492
|
+
|
|
493
|
+
```markdown
|
|
494
|
+
You are creating a single-phase implementation plan for Phase {PHASE_NUMBER}: {PHASE_NAME} of {TASK_NAME}.
|
|
495
|
+
|
|
496
|
+
## Retrieval-Grounded Planning Ethos
|
|
497
|
+
Base implementation decisions on explorer findings, docs research, reference documents, prior phase reports, and applicable skill rules. Do not rely on pre-trained knowledge for APIs, package behavior, file paths, or framework conventions. If a needed API or pattern is not grounded, flag it as `⚠️ DOCS GAP`.
|
|
498
|
+
|
|
499
|
+
## Artifact Path
|
|
500
|
+
ARTIFACT_PATH: {PHASE_DIR}/plan_V1.md
|
|
501
|
+
|
|
502
|
+
You are responsible for writing your complete implementation plan to ARTIFACT_PATH using the Write tool. Do not return the plan body to the orchestrator. Your final response should only confirm success or failure, the artifact path, and the line count if known.
|
|
503
|
+
|
|
504
|
+
## Plan Metadata
|
|
505
|
+
Task: {TASK_NAME}
|
|
506
|
+
Category: {CATEGORY}
|
|
507
|
+
Spec Number: {SPEC_NUMBER}
|
|
508
|
+
Phase Number: {PHASE_NUMBER}
|
|
509
|
+
Phase Name: {PHASE_NAME}
|
|
510
|
+
Total Phases: {frontmatter phases count}
|
|
511
|
+
Package Manager: {PACKAGE_MANAGER}
|
|
512
|
+
Source HL Plan: {HL_PLAN_PATH}
|
|
513
|
+
Current Date: {current date}
|
|
514
|
+
|
|
515
|
+
## Task Overview
|
|
516
|
+
{Task Overview from HL plan}
|
|
517
|
+
|
|
518
|
+
## User Stories / Anti-Stories
|
|
519
|
+
{User Stories and Anti-Stories from HL plan}
|
|
520
|
+
|
|
521
|
+
## This Phase
|
|
522
|
+
Goal: {phase goal}
|
|
523
|
+
Dependencies: {phase dependencies}
|
|
524
|
+
Success Criteria:
|
|
525
|
+
{phase success criteria, each on its own line}
|
|
526
|
+
|
|
527
|
+
## High-Level Approach + Key Considerations
|
|
528
|
+
{High-Level Approach and Key Considerations from HL plan}
|
|
529
|
+
|
|
530
|
+
## Detailed Specifications
|
|
531
|
+
{Section 8 from HL plan, if present. If not present, omit this section. If present, state that these are user-provided specifications that must not be simplified, generalized, or omitted.}
|
|
532
|
+
|
|
533
|
+
## Reference Documents
|
|
534
|
+
{If REFERENCE_DOCUMENTS is non-empty, list each path and instruct the architect to read each document in full before planning. If empty, state "None provided."}
|
|
535
|
+
|
|
536
|
+
## Prior Phase Context
|
|
537
|
+
{PRIOR_PHASE_CONTEXT if PHASE_NUMBER > 1, otherwise "N/A — this is Phase 1"}
|
|
538
|
+
{If PHASE_NUMBER > 1: "IMPORTANT: Base the plan on actual prior phase reports and current codebase state, not only the original HL plan assumptions."}
|
|
539
|
+
|
|
540
|
+
## Research Findings
|
|
541
|
+
Read these files before planning:
|
|
542
|
+
- Explorer findings: {PHASE_DIR}/explorer_findings.md
|
|
543
|
+
- Docs research: {PHASE_DIR}/docs_research.md (if it exists; docs research may have been skipped)
|
|
544
|
+
|
|
545
|
+
## Applicable Skill Rules
|
|
546
|
+
{APPLICABLE SKILL RULES}
|
|
547
|
+
|
|
548
|
+
## Key Instructions
|
|
549
|
+
- Create a SINGLE-PHASE implementation plan only.
|
|
550
|
+
- Every code snippet must include an inline citation such as `// per: Explorer findings -- ...`, `// per: Docs research -- ...`, or `// per: {skill-name} -- CRITICAL`.
|
|
551
|
+
- Skill rules override docs patterns when they conflict; note the override.
|
|
552
|
+
- Flag ungrounded APIs/patterns as `⚠️ DOCS GAP`.
|
|
553
|
+
- Use exact file paths.
|
|
554
|
+
- Make tasks small, explicit, and executable.
|
|
555
|
+
- Include concrete validation checks.
|
|
556
|
+
- Include `agent-browser` validation for frontend/browser work.
|
|
557
|
+
- Respect file size audit findings.
|
|
558
|
+
- Mark independent domains with `| PARALLEL` only when there is no file overlap and no cross-domain dependency.
|
|
559
|
+
|
|
560
|
+
## Output
|
|
561
|
+
Write `{PHASE_DIR}/plan_V1.md` using the Single-Phase Implementation Plan format from your agent instructions.
|
|
562
|
+
|
|
563
|
+
Final response format:
|
|
564
|
+
SUCCESS: wrote {PHASE_DIR}/plan_V1.md ({line count} lines)
|
|
565
|
+
|
|
566
|
+
If you cannot write the artifact, respond:
|
|
567
|
+
FAILURE: could not write {PHASE_DIR}/plan_V1.md: {reason}
|
|
568
|
+
```
|
|
569
|
+
|
|
570
|
+
### 2.5 Spawn architect agent
|
|
571
|
+
|
|
572
|
+
Use Pi's sub-agent mechanism to spawn `build-phase-architect`.
|
|
573
|
+
|
|
574
|
+
The architect must write its own artifact. Do not write `plan_V1.md` on the architect's behalf. If the architect returns a plan body instead of writing the file, treat that as sub-agent failure.
|
|
575
|
+
|
|
576
|
+
### 2.6 Verify plan artifact
|
|
577
|
+
|
|
578
|
+
After the architect returns, verify:
|
|
579
|
+
|
|
580
|
+
- `{PHASE_DIR}/plan_V1.md` exists.
|
|
581
|
+
- It has more than 20 lines.
|
|
582
|
+
- It has YAML frontmatter.
|
|
583
|
+
- Frontmatter contains:
|
|
584
|
+
- `task`
|
|
585
|
+
- `category`
|
|
586
|
+
- `spec`
|
|
587
|
+
- `phase`
|
|
588
|
+
- `phase-name`
|
|
589
|
+
- `type: phase-implementation-plan`
|
|
590
|
+
- `version: V1`
|
|
591
|
+
- `status`
|
|
592
|
+
- `date`
|
|
593
|
+
- `source`
|
|
594
|
+
- It contains these sections:
|
|
595
|
+
- `## Overview`
|
|
596
|
+
- `## Prior Phase Context`
|
|
597
|
+
- `## Current State Analysis`
|
|
598
|
+
- `## Key Technical Decisions`
|
|
599
|
+
- `## Scope Boundaries`
|
|
600
|
+
- `## Docs Gaps`
|
|
601
|
+
- `## Domains`
|
|
602
|
+
- `## Phase {PHASE_NUMBER} Validation`
|
|
603
|
+
- `## Success Criteria Verification`
|
|
604
|
+
- `## User Story Traceability`
|
|
605
|
+
- `## Anti-Story Traceability`
|
|
606
|
+
- `## Important Notes`
|
|
607
|
+
- If code blocks exist, they include research/source citations such as `// per:`.
|
|
608
|
+
- `## Docs Gaps` either lists gaps or says `None identified`.
|
|
609
|
+
|
|
610
|
+
If the plan artifact is missing or invalid, warn and do not mark Step 2 complete.
|
|
611
|
+
|
|
612
|
+
### 2.7 Mark Step 2 complete
|
|
613
|
+
|
|
614
|
+
Only after artifact verification succeeds, update `STATE.md`:
|
|
615
|
+
|
|
616
|
+
```txt
|
|
617
|
+
Step 2 - Plan: [~] -> [x]
|
|
618
|
+
```
|
|
619
|
+
|
|
620
|
+
Leave Step 3 pending.
|
|
621
|
+
|
|
622
|
+
### 2.8 Present Step 2 summary and continue
|
|
623
|
+
|
|
624
|
+
Print:
|
|
625
|
+
|
|
626
|
+
```txt
|
|
627
|
+
BUILD PHASE {N} — PLAN COMPLETE
|
|
628
|
+
|
|
629
|
+
Spec: {SPEC_DIR_BASENAME} ({TASK_NAME})
|
|
630
|
+
Phase: {N} — {PHASE_NAME}
|
|
631
|
+
Phase Directory: {PHASE_DIR}
|
|
632
|
+
|
|
633
|
+
Artifacts:
|
|
634
|
+
- explorer_findings.md ({line count} lines)
|
|
635
|
+
- docs_research.md ({line count} lines | skipped)
|
|
636
|
+
- plan_V1.md ({line count} lines)
|
|
637
|
+
|
|
638
|
+
Planning Agent:
|
|
639
|
+
- Architect: completed
|
|
640
|
+
|
|
641
|
+
Plan Summary:
|
|
642
|
+
- Domains: {list of domain names from plan}
|
|
643
|
+
- Tasks: {total task count}
|
|
644
|
+
- Docs Gaps: {count or "None"}
|
|
645
|
+
- Source Citations: {count of `// per:` occurrences}
|
|
646
|
+
|
|
647
|
+
Skills Applied: {list or "None"}
|
|
648
|
+
Prior Phase Context: {count reports read | N/A (Phase 1)}
|
|
649
|
+
|
|
650
|
+
Step 2 complete. Continuing to Step 3 Validate Plan.
|
|
651
|
+
```
|
|
652
|
+
|
|
653
|
+
## Step 3: Validate Plan
|
|
654
|
+
|
|
655
|
+
Run this step after Step 2 plan artifact verification succeeds, or directly after Step 0 when `RESUME_FROM = 3`.
|
|
656
|
+
|
|
657
|
+
Initialize:
|
|
658
|
+
|
|
659
|
+
```txt
|
|
660
|
+
VALIDATION_CYCLE = 1
|
|
661
|
+
MAX_VALIDATION_CYCLES = 3
|
|
662
|
+
```
|
|
663
|
+
|
|
664
|
+
### 3.1 Mark Step 3 started
|
|
665
|
+
|
|
666
|
+
Using `FOB-state-context`, update the current phase block in `STATE.md`:
|
|
667
|
+
|
|
668
|
+
```txt
|
|
669
|
+
Step 3 - Validate Plan: [ ] -> [~]
|
|
670
|
+
```
|
|
671
|
+
|
|
672
|
+
Ensure the parent task and phase are also `[~]` unless already complete.
|
|
673
|
+
|
|
674
|
+
### 3.2 Verify validation inputs
|
|
675
|
+
|
|
676
|
+
Before spawning the validator, verify:
|
|
677
|
+
|
|
678
|
+
- `{PHASE_DIR}/plan_V1.md` exists and is structurally valid.
|
|
679
|
+
- `{PHASE_DIR}/explorer_findings.md` exists and is valid.
|
|
680
|
+
- `{PHASE_DIR}/docs_research.md` exists if docs research was produced; absence is acceptable when docs research was skipped.
|
|
681
|
+
|
|
682
|
+
If required inputs are missing or invalid, stop and do not mark Step 3 complete.
|
|
683
|
+
|
|
684
|
+
### 3.3 Prepare validator prompt
|
|
685
|
+
|
|
686
|
+
Prepare a self-contained prompt for the project-local `build-phase-plan-validator` agent. Include:
|
|
687
|
+
|
|
688
|
+
```markdown
|
|
689
|
+
You are validating the implementation plan for Phase {PHASE_NUMBER}: {PHASE_NAME} of {TASK_NAME}.
|
|
690
|
+
|
|
691
|
+
## Validation Ethos
|
|
692
|
+
Validate evidence, not intent. The plan must be accurate, self-contained, executable, and grounded in explorer findings, docs research, reference documents, prior phase reports, and applicable skill rules. Do not accept plausible but ungrounded claims.
|
|
693
|
+
|
|
694
|
+
## Artifact Path
|
|
695
|
+
ARTIFACT_PATH: {PHASE_DIR}/plan_validation_report.md
|
|
696
|
+
|
|
697
|
+
You are responsible for writing your complete validation report to ARTIFACT_PATH using the Write tool. Do not return the report body to the orchestrator. Your final response should only confirm success or failure, the artifact path, line count if known, result, and checks passed.
|
|
698
|
+
|
|
699
|
+
## Plan to Validate
|
|
700
|
+
Read the plan at: {PHASE_DIR}/plan_V1.md
|
|
701
|
+
|
|
702
|
+
## Research Artifacts
|
|
703
|
+
- Explorer findings: {PHASE_DIR}/explorer_findings.md
|
|
704
|
+
- Docs research: {PHASE_DIR}/docs_research.md (if it exists; docs research may have been skipped)
|
|
705
|
+
|
|
706
|
+
## HL Plan Context
|
|
707
|
+
|
|
708
|
+
### User Stories
|
|
709
|
+
{User stories from HL plan}
|
|
710
|
+
|
|
711
|
+
### Anti-Stories
|
|
712
|
+
{Anti-stories from HL plan}
|
|
713
|
+
|
|
714
|
+
### Phase Success Criteria
|
|
715
|
+
{Phase N success criteria from HL plan}
|
|
716
|
+
|
|
717
|
+
### Detailed Specifications
|
|
718
|
+
{Section 8 from HL plan, if present. If absent: "None provided."}
|
|
719
|
+
|
|
720
|
+
### Reference Documents
|
|
721
|
+
{REFERENCE_DOCUMENTS if non-empty, otherwise "None provided."}
|
|
722
|
+
|
|
723
|
+
### Prior Phase Context
|
|
724
|
+
{PRIOR_PHASE_CONTEXT if PHASE_NUMBER > 1, otherwise "N/A — this is Phase 1"}
|
|
725
|
+
|
|
726
|
+
## Applicable Skill Rules
|
|
727
|
+
{APPLICABLE SKILL RULES}
|
|
728
|
+
|
|
729
|
+
## Validation Checks
|
|
730
|
+
Run all 11 checks from your agent instructions:
|
|
731
|
+
1. File reference accuracy
|
|
732
|
+
2. Code snippet grounding
|
|
733
|
+
3. Docs gap completeness
|
|
734
|
+
4. Skill rule application
|
|
735
|
+
5. Phase dependency correctness
|
|
736
|
+
6. API contract completeness
|
|
737
|
+
7. User story coverage
|
|
738
|
+
8. Anti-story coverage
|
|
739
|
+
9. Validation step coverage
|
|
740
|
+
10. Self-containment
|
|
741
|
+
11. File size check
|
|
742
|
+
|
|
743
|
+
## Validation Parameters
|
|
744
|
+
- task: {TASK_NAME}
|
|
745
|
+
- phase: {PHASE_NUMBER}
|
|
746
|
+
- phase-name: {PHASE_NAME}
|
|
747
|
+
- cycle: {VALIDATION_CYCLE}
|
|
748
|
+
- date: {current date}
|
|
749
|
+
|
|
750
|
+
## Output
|
|
751
|
+
Write `{PHASE_DIR}/plan_validation_report.md` with YAML frontmatter including:
|
|
752
|
+
- `type: plan-validation-report`
|
|
753
|
+
- `cycle: {VALIDATION_CYCLE}`
|
|
754
|
+
- `result: pass` or `result: fail`
|
|
755
|
+
- `checks-passed: X/11`
|
|
756
|
+
|
|
757
|
+
Final response format:
|
|
758
|
+
SUCCESS: wrote {PHASE_DIR}/plan_validation_report.md ({line count} lines) result={pass|fail} checks-passed=X/11
|
|
759
|
+
|
|
760
|
+
If you cannot write the artifact, respond:
|
|
761
|
+
FAILURE: could not write {PHASE_DIR}/plan_validation_report.md: {reason}
|
|
762
|
+
```
|
|
763
|
+
|
|
764
|
+
### 3.4 Spawn plan validator
|
|
765
|
+
|
|
766
|
+
Use Pi's sub-agent mechanism to spawn `build-phase-plan-validator`.
|
|
767
|
+
|
|
768
|
+
The validator must write its own artifact. Do not write `plan_validation_report.md` on the validator's behalf. If the validator returns a report body instead of writing the file, treat that as sub-agent failure.
|
|
769
|
+
|
|
770
|
+
### 3.5 Read validation result
|
|
771
|
+
|
|
772
|
+
After the validator returns, read `{PHASE_DIR}/plan_validation_report.md` and extract YAML frontmatter fields:
|
|
773
|
+
|
|
774
|
+
- `result`
|
|
775
|
+
- `checks-passed`
|
|
776
|
+
- `cycle`
|
|
777
|
+
|
|
778
|
+
If the report is missing or invalid, treat validation as failed.
|
|
779
|
+
|
|
780
|
+
If `result: pass`, continue to Step 3.9.
|
|
781
|
+
|
|
782
|
+
If `result: fail`, continue to Step 3.6.
|
|
783
|
+
|
|
784
|
+
### 3.6 Correction — re-spawn architect in revision mode
|
|
785
|
+
|
|
786
|
+
If validation failed, increment `VALIDATION_CYCLE`. If `VALIDATION_CYCLE > MAX_VALIDATION_CYCLES`, go to Step 3.8 abort.
|
|
787
|
+
|
|
788
|
+
Prepare a self-contained revision prompt for `build-phase-architect`. Include the full original Step 2 planning context plus:
|
|
789
|
+
|
|
790
|
+
```markdown
|
|
791
|
+
You are REVISING the implementation plan for Phase {PHASE_NUMBER}: {PHASE_NAME} of {TASK_NAME}.
|
|
792
|
+
|
|
793
|
+
A plan validator found issues with the current plan. You must fix all FAIL items while preserving everything that passed validation.
|
|
794
|
+
|
|
795
|
+
## Revision Mode
|
|
796
|
+
Read the current plan and validation report before writing. Fix every issue under `## Issues Found`. Preserve sections that passed unless they must change to fix a failure. Overwrite ARTIFACT_PATH and set frontmatter `status: revised`.
|
|
797
|
+
|
|
798
|
+
## Artifact Path
|
|
799
|
+
ARTIFACT_PATH: {PHASE_DIR}/plan_V1.md
|
|
800
|
+
|
|
801
|
+
## Current Plan
|
|
802
|
+
Read: {PHASE_DIR}/plan_V1.md
|
|
803
|
+
|
|
804
|
+
## Validation Report
|
|
805
|
+
Read: {PHASE_DIR}/plan_validation_report.md
|
|
806
|
+
|
|
807
|
+
## Correction Instructions
|
|
808
|
+
- Fix every issue listed under `## Issues Found`.
|
|
809
|
+
- Do not remove or weaken sections that passed validation.
|
|
810
|
+
- For file reference failures, verify correct paths with read-only inspection.
|
|
811
|
+
- For citation failures, add proper citations grounded in research artifacts or skill rules.
|
|
812
|
+
- For coverage gaps, add missing traceability entries or task coverage.
|
|
813
|
+
- For invalid commands, correct them using project files or skill rules.
|
|
814
|
+
- Preserve the required Single-Phase Implementation Plan format.
|
|
815
|
+
- Preserve YAML frontmatter fields and update `status: revised`.
|
|
816
|
+
|
|
817
|
+
## Output
|
|
818
|
+
Overwrite `{PHASE_DIR}/plan_V1.md`.
|
|
819
|
+
|
|
820
|
+
Final response format:
|
|
821
|
+
SUCCESS: wrote {PHASE_DIR}/plan_V1.md ({line count} lines)
|
|
822
|
+
```
|
|
823
|
+
|
|
824
|
+
The architect must write its own revised plan. Do not write the plan on the architect's behalf.
|
|
825
|
+
|
|
826
|
+
### 3.7 Re-validate
|
|
827
|
+
|
|
828
|
+
After the architect revises `plan_V1.md`, verify the plan artifact still exists and has required structure. Then repeat from Step 3.3 with the updated `VALIDATION_CYCLE`.
|
|
829
|
+
|
|
830
|
+
### 3.8 Abort after final failure
|
|
831
|
+
|
|
832
|
+
If validation fails after 3 cycles, read the final `plan_validation_report.md` and present:
|
|
833
|
+
|
|
834
|
+
```txt
|
|
835
|
+
PLAN VALIDATION FAILED after 3 cycles. Aborting.
|
|
836
|
+
|
|
837
|
+
Phase: {PHASE_NUMBER} — {PHASE_NAME}
|
|
838
|
+
Checks passed: {checks-passed from cycle 3}
|
|
839
|
+
|
|
840
|
+
Remaining failures:
|
|
841
|
+
- {issue summaries from Issues Found}
|
|
842
|
+
|
|
843
|
+
Validation report: {PHASE_DIR}/plan_validation_report.md
|
|
844
|
+
Plan latest revision: {PHASE_DIR}/plan_V1.md
|
|
845
|
+
```
|
|
846
|
+
|
|
847
|
+
Reset or leave Step 3 as `[ ]` so a future resume reruns validation. Stop before Step 4.
|
|
848
|
+
|
|
849
|
+
### 3.9 Mark Step 3 complete
|
|
850
|
+
|
|
851
|
+
Only after `result: pass`, update `STATE.md`:
|
|
852
|
+
|
|
853
|
+
```txt
|
|
854
|
+
Step 3 - Validate Plan: [~] -> [x]
|
|
855
|
+
```
|
|
856
|
+
|
|
857
|
+
Leave Step 4 pending.
|
|
858
|
+
|
|
859
|
+
### 3.10 Present Step 3 summary and stop
|
|
860
|
+
|
|
861
|
+
Print:
|
|
862
|
+
|
|
863
|
+
```txt
|
|
864
|
+
BUILD PHASE {N} — PLAN VALIDATED
|
|
865
|
+
|
|
866
|
+
Spec: {SPEC_DIR_BASENAME} ({TASK_NAME})
|
|
867
|
+
Phase: {N} — {PHASE_NAME}
|
|
868
|
+
Phase Directory: {PHASE_DIR}
|
|
869
|
+
|
|
870
|
+
Artifacts:
|
|
871
|
+
- explorer_findings.md ({line count} lines)
|
|
872
|
+
- docs_research.md ({line count} lines | skipped)
|
|
873
|
+
- plan_V1.md ({line count} lines)
|
|
874
|
+
- plan_validation_report.md ({line count} lines)
|
|
875
|
+
|
|
876
|
+
Plan Validation:
|
|
877
|
+
- Result: pass
|
|
878
|
+
- Checks passed: {X}/11
|
|
879
|
+
- Cycles: {VALIDATION_CYCLE}
|
|
880
|
+
- Architect revised plan: {yes/no}
|
|
881
|
+
|
|
882
|
+
Step 3 complete. Workflow intentionally stopped before Step 4 Build.
|
|
369
883
|
```
|
|
370
884
|
|
|
371
885
|
## Stop condition
|
|
372
886
|
|
|
373
|
-
After the Step
|
|
887
|
+
After the Step 3 summary, stop. Do not create build reports, build validation reports, or phase completion reports.
|
package/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.9.
|
|
2
|
+
"version": "1.9.4",
|
|
3
3
|
"presets": {
|
|
4
4
|
"coding": {
|
|
5
5
|
"description": "Research-driven coding workflow",
|
|
@@ -90,7 +90,9 @@
|
|
|
90
90
|
"agents": [
|
|
91
91
|
"codebase-explorer",
|
|
92
92
|
"build-phase-explorer",
|
|
93
|
-
"build-phase-docs-researcher"
|
|
93
|
+
"build-phase-docs-researcher",
|
|
94
|
+
"build-phase-architect",
|
|
95
|
+
"build-phase-plan-validator"
|
|
94
96
|
],
|
|
95
97
|
"prompts": [
|
|
96
98
|
"explore-codebase",
|