@sienklogic/plan-build-run 2.54.0 → 2.55.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/CHANGELOG.md +12 -0
- package/package.json +1 -1
- package/plugins/codex-pbr/agents/audit.md +223 -0
- package/plugins/codex-pbr/agents/codebase-mapper.md +196 -0
- package/plugins/codex-pbr/agents/debugger.md +245 -0
- package/plugins/codex-pbr/agents/dev-sync.md +142 -0
- package/plugins/codex-pbr/agents/executor.md +429 -0
- package/plugins/codex-pbr/agents/general.md +131 -0
- package/plugins/codex-pbr/agents/integration-checker.md +178 -0
- package/plugins/codex-pbr/agents/plan-checker.md +253 -0
- package/plugins/codex-pbr/agents/planner.md +343 -0
- package/plugins/codex-pbr/agents/researcher.md +253 -0
- package/plugins/codex-pbr/agents/synthesizer.md +183 -0
- package/plugins/codex-pbr/agents/verifier.md +352 -0
- package/plugins/codex-pbr/commands/audit.md +5 -0
- package/plugins/codex-pbr/commands/begin.md +5 -0
- package/plugins/codex-pbr/commands/build.md +5 -0
- package/plugins/codex-pbr/commands/config.md +5 -0
- package/plugins/codex-pbr/commands/continue.md +5 -0
- package/plugins/codex-pbr/commands/dashboard.md +5 -0
- package/plugins/codex-pbr/commands/debug.md +5 -0
- package/plugins/codex-pbr/commands/discuss.md +5 -0
- package/plugins/codex-pbr/commands/do.md +5 -0
- package/plugins/codex-pbr/commands/explore.md +5 -0
- package/plugins/codex-pbr/commands/health.md +5 -0
- package/plugins/codex-pbr/commands/help.md +5 -0
- package/plugins/codex-pbr/commands/import.md +5 -0
- package/plugins/codex-pbr/commands/milestone.md +5 -0
- package/plugins/codex-pbr/commands/note.md +5 -0
- package/plugins/codex-pbr/commands/pause.md +5 -0
- package/plugins/codex-pbr/commands/plan.md +5 -0
- package/plugins/codex-pbr/commands/quick.md +5 -0
- package/plugins/codex-pbr/commands/resume.md +5 -0
- package/plugins/codex-pbr/commands/review.md +5 -0
- package/plugins/codex-pbr/commands/scan.md +5 -0
- package/plugins/codex-pbr/commands/setup.md +5 -0
- package/plugins/codex-pbr/commands/status.md +5 -0
- package/plugins/codex-pbr/commands/statusline.md +5 -0
- package/plugins/codex-pbr/commands/test.md +5 -0
- package/plugins/codex-pbr/commands/todo.md +5 -0
- package/plugins/codex-pbr/commands/undo.md +5 -0
- package/plugins/codex-pbr/references/agent-contracts.md +324 -0
- package/plugins/codex-pbr/references/agent-teams.md +54 -0
- package/plugins/codex-pbr/references/common-bug-patterns.md +13 -0
- package/plugins/codex-pbr/references/config-reference.md +552 -0
- package/plugins/codex-pbr/references/continuation-format.md +212 -0
- package/plugins/codex-pbr/references/deviation-rules.md +112 -0
- package/plugins/codex-pbr/references/git-integration.md +256 -0
- package/plugins/codex-pbr/references/integration-patterns.md +117 -0
- package/plugins/codex-pbr/references/model-profiles.md +99 -0
- package/plugins/codex-pbr/references/model-selection.md +31 -0
- package/plugins/codex-pbr/references/pbr-tools-cli.md +400 -0
- package/plugins/codex-pbr/references/plan-authoring.md +246 -0
- package/plugins/codex-pbr/references/plan-format.md +313 -0
- package/plugins/codex-pbr/references/questioning.md +235 -0
- package/plugins/codex-pbr/references/reading-verification.md +127 -0
- package/plugins/codex-pbr/references/signal-files.md +41 -0
- package/plugins/codex-pbr/references/stub-patterns.md +160 -0
- package/plugins/codex-pbr/references/ui-formatting.md +444 -0
- package/plugins/codex-pbr/references/wave-execution.md +95 -0
- package/plugins/codex-pbr/skills/audit/SKILL.md +346 -0
- package/plugins/codex-pbr/skills/begin/SKILL.md +800 -0
- package/plugins/codex-pbr/skills/build/SKILL.md +958 -0
- package/plugins/codex-pbr/skills/config/SKILL.md +267 -0
- package/plugins/codex-pbr/skills/continue/SKILL.md +172 -0
- package/plugins/codex-pbr/skills/dashboard/SKILL.md +44 -0
- package/plugins/codex-pbr/skills/debug/SKILL.md +530 -0
- package/plugins/codex-pbr/skills/discuss/SKILL.md +355 -0
- package/plugins/codex-pbr/skills/do/SKILL.md +68 -0
- package/plugins/codex-pbr/skills/explore/SKILL.md +407 -0
- package/plugins/codex-pbr/skills/health/SKILL.md +300 -0
- package/plugins/codex-pbr/skills/help/SKILL.md +229 -0
- package/plugins/codex-pbr/skills/import/SKILL.md +538 -0
- package/plugins/codex-pbr/skills/milestone/SKILL.md +620 -0
- package/plugins/codex-pbr/skills/note/SKILL.md +215 -0
- package/plugins/codex-pbr/skills/pause/SKILL.md +258 -0
- package/plugins/codex-pbr/skills/plan/SKILL.md +650 -0
- package/plugins/codex-pbr/skills/quick/SKILL.md +417 -0
- package/plugins/codex-pbr/skills/resume/SKILL.md +403 -0
- package/plugins/codex-pbr/skills/review/SKILL.md +669 -0
- package/plugins/codex-pbr/skills/scan/SKILL.md +325 -0
- package/plugins/codex-pbr/skills/setup/SKILL.md +169 -0
- package/plugins/codex-pbr/skills/shared/commit-planning-docs.md +35 -0
- package/plugins/codex-pbr/skills/shared/config-loading.md +102 -0
- package/plugins/codex-pbr/skills/shared/context-budget.md +77 -0
- package/plugins/codex-pbr/skills/shared/context-loader-task.md +86 -0
- package/plugins/codex-pbr/skills/shared/digest-select.md +79 -0
- package/plugins/codex-pbr/skills/shared/domain-probes.md +125 -0
- package/plugins/codex-pbr/skills/shared/error-reporting.md +59 -0
- package/plugins/codex-pbr/skills/shared/gate-prompts.md +388 -0
- package/plugins/codex-pbr/skills/shared/phase-argument-parsing.md +45 -0
- package/plugins/codex-pbr/skills/shared/revision-loop.md +81 -0
- package/plugins/codex-pbr/skills/shared/state-update.md +169 -0
- package/plugins/codex-pbr/skills/shared/universal-anti-patterns.md +43 -0
- package/plugins/codex-pbr/skills/status/SKILL.md +449 -0
- package/plugins/codex-pbr/skills/statusline/SKILL.md +149 -0
- package/plugins/codex-pbr/skills/test/SKILL.md +210 -0
- package/plugins/codex-pbr/skills/todo/SKILL.md +281 -0
- package/plugins/codex-pbr/skills/undo/SKILL.md +172 -0
- package/plugins/codex-pbr/templates/CONTEXT.md.tmpl +52 -0
- package/plugins/codex-pbr/templates/INTEGRATION-REPORT.md.tmpl +167 -0
- package/plugins/codex-pbr/templates/RESEARCH-SUMMARY.md.tmpl +97 -0
- package/plugins/codex-pbr/templates/ROADMAP.md.tmpl +47 -0
- package/plugins/codex-pbr/templates/SUMMARY-complex.md.tmpl +95 -0
- package/plugins/codex-pbr/templates/SUMMARY-minimal.md.tmpl +48 -0
- package/plugins/codex-pbr/templates/SUMMARY.md.tmpl +81 -0
- package/plugins/codex-pbr/templates/VERIFICATION-DETAIL.md.tmpl +117 -0
- package/plugins/codex-pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -0
- package/plugins/codex-pbr/templates/codebase/CONCERNS.md.tmpl +93 -0
- package/plugins/codex-pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -0
- package/plugins/codex-pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -0
- package/plugins/codex-pbr/templates/codebase/STACK.md.tmpl +78 -0
- package/plugins/codex-pbr/templates/codebase/STRUCTURE.md.tmpl +80 -0
- package/plugins/codex-pbr/templates/codebase/TESTING.md.tmpl +107 -0
- package/plugins/codex-pbr/templates/continue-here.md.tmpl +73 -0
- package/plugins/codex-pbr/templates/pr-body.md.tmpl +22 -0
- package/plugins/codex-pbr/templates/prompt-partials/phase-project-context.md.tmpl +37 -0
- package/plugins/codex-pbr/templates/research/ARCHITECTURE.md.tmpl +124 -0
- package/plugins/codex-pbr/templates/research/STACK.md.tmpl +71 -0
- package/plugins/codex-pbr/templates/research/SUMMARY.md.tmpl +112 -0
- package/plugins/codex-pbr/templates/research-outputs/phase-research.md.tmpl +81 -0
- package/plugins/codex-pbr/templates/research-outputs/project-research.md.tmpl +99 -0
- package/plugins/codex-pbr/templates/research-outputs/synthesis.md.tmpl +36 -0
- package/plugins/copilot-pbr/plugin.json +1 -1
- package/plugins/cursor-pbr/.cursor-plugin/plugin.json +1 -1
- package/plugins/jules-pbr/AGENTS.md +600 -0
- package/plugins/pbr/.claude-plugin/plugin.json +1 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# CONTEXT.md Template
|
|
2
|
+
|
|
3
|
+
> Referenced by: begin skill (Step 9c), discuss skill, plan skill
|
|
4
|
+
> Created during /pbr:begin. Updated by /pbr:discuss and /pbr:plan --assumptions.
|
|
5
|
+
|
|
6
|
+
## Structure
|
|
7
|
+
|
|
8
|
+
```markdown
|
|
9
|
+
# Project Context
|
|
10
|
+
|
|
11
|
+
## Locked Decisions
|
|
12
|
+
|
|
13
|
+
{Technology choices, architecture decisions, and constraints that are NON-NEGOTIABLE.
|
|
14
|
+
These MUST be honored by every plan and executor — no exceptions.}
|
|
15
|
+
|
|
16
|
+
| Decision | Rationale | Locked By |
|
|
17
|
+
|----------|-----------|-----------|
|
|
18
|
+
| {e.g., "Use TypeScript"} | {User preference, team skill} | User |
|
|
19
|
+
| {e.g., "PostgreSQL via Supabase"} | {Existing infrastructure} | User |
|
|
20
|
+
|
|
21
|
+
## User Constraints
|
|
22
|
+
|
|
23
|
+
{Budget, timeline, skill level, hosting, team size — factors that shape planning}
|
|
24
|
+
|
|
25
|
+
- {e.g., "Solo developer, no team"}
|
|
26
|
+
- {e.g., "Deploy to Hetzner VPS"}
|
|
27
|
+
- {e.g., "Must work offline"}
|
|
28
|
+
|
|
29
|
+
## Deferred Ideas
|
|
30
|
+
|
|
31
|
+
{Features explicitly moved to v2 or out-of-scope. Plans MUST NOT include these.}
|
|
32
|
+
|
|
33
|
+
| Idea | Reason Deferred |
|
|
34
|
+
|------|----------------|
|
|
35
|
+
| {feature} | {reason} |
|
|
36
|
+
|
|
37
|
+
## Claude's Discretion Areas
|
|
38
|
+
|
|
39
|
+
{Areas where the planner can make implementation choices without asking the user.
|
|
40
|
+
Document the choice made and rationale when exercised.}
|
|
41
|
+
|
|
42
|
+
| Area | Choice Made | Rationale |
|
|
43
|
+
|------|------------|-----------|
|
|
44
|
+
| {e.g., "State management library"} | {e.g., "Zustand"} | {e.g., "Lightweight, fits project size"} |
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Rules
|
|
48
|
+
|
|
49
|
+
- Locked decisions are immutable once set — only the user can change them
|
|
50
|
+
- Deferred ideas must NEVER appear in plans
|
|
51
|
+
- Discretion areas are documented when the planner exercises choice
|
|
52
|
+
- Phase-level CONTEXT.md files (in phase directories) override project-level for that phase
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
<!-- Source: agents/integration-checker.md | Purpose: Output format for cross-phase integration verification reports -->
|
|
2
|
+
|
|
3
|
+
```markdown
|
|
4
|
+
# Integration Verification Report
|
|
5
|
+
|
|
6
|
+
> Verified: {date}
|
|
7
|
+
> Phases checked: {comma-separated list of phase IDs}
|
|
8
|
+
> Status: **{INTEGRATED | GAPS_FOUND}**
|
|
9
|
+
|
|
10
|
+
## Phase Dependency Graph
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
Phase 01 (Setup) ──provides──→ Phase 02 (Auth)
|
|
14
|
+
Phase 01 (Setup) ──provides──→ Phase 03 (Core)
|
|
15
|
+
Phase 02 (Auth) ──provides──→ Phase 03 (Core)
|
|
16
|
+
Phase 02 (Auth) ──provides──→ Phase 04 (Frontend)
|
|
17
|
+
Phase 03 (Core) ──provides──→ Phase 04 (Frontend)
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## 1. Export/Import Wiring
|
|
21
|
+
|
|
22
|
+
### Export Status Summary
|
|
23
|
+
|
|
24
|
+
| Phase | Total Exports | Consumed | Orphaned | Unused Imports | Mismatched |
|
|
25
|
+
|-------|--------------|----------|----------|---------------|------------|
|
|
26
|
+
| 01 | {n} | {n} | {n} | {n} | {n} |
|
|
27
|
+
| 02 | {n} | {n} | {n} | {n} | {n} |
|
|
28
|
+
|
|
29
|
+
### Detailed Export Map
|
|
30
|
+
|
|
31
|
+
| Export | Source Phase | Source File:Line | Consumer(s) | Status |
|
|
32
|
+
|--------|------------|-----------------|-------------|--------|
|
|
33
|
+
| DatabaseConnection | 01 | src/db/conn.ts:5 | Phase 02, 03 | CONSUMED |
|
|
34
|
+
| ConfigLoader | 01 | src/config/index.ts:12 | Phase 03 | CONSUMED |
|
|
35
|
+
| ThemeProvider | 04 | src/theme/provider.tsx:8 | - | ORPHANED |
|
|
36
|
+
|
|
37
|
+
### Orphaned Exports (created but never used)
|
|
38
|
+
|
|
39
|
+
| Export | Phase | File | Line | Likely Intended Consumer |
|
|
40
|
+
|--------|-------|------|------|------------------------|
|
|
41
|
+
| {name} | {phase} | {file} | {line} | {best guess or "unknown"} |
|
|
42
|
+
|
|
43
|
+
### Unused Imports (imported but symbol never called)
|
|
44
|
+
|
|
45
|
+
| File | Imported Symbol | Source Module | Line |
|
|
46
|
+
|------|----------------|--------------|------|
|
|
47
|
+
| {file} | {symbol} | {module} | {line} |
|
|
48
|
+
|
|
49
|
+
## 2. API Coverage
|
|
50
|
+
|
|
51
|
+
### Route Coverage Matrix
|
|
52
|
+
|
|
53
|
+
| Route | Method | Handler | Frontend Caller | Auth | Status |
|
|
54
|
+
|-------|--------|---------|----------------|------|--------|
|
|
55
|
+
| /api/users | GET | users.ts:12 | UserList.tsx:34 | YES | COVERED |
|
|
56
|
+
| /api/users/:id | DELETE | users.ts:45 | - | YES | NO_CALLER |
|
|
57
|
+
| /api/settings | PUT | - | Settings.tsx:22 | - | NO_HANDLER |
|
|
58
|
+
|
|
59
|
+
### Uncovered Routes (backend exists, no frontend caller)
|
|
60
|
+
|
|
61
|
+
| Route | Method | Handler | Possible Reason |
|
|
62
|
+
|-------|--------|---------|----------------|
|
|
63
|
+
| {route} | {method} | {file:line} | {guess: future feature, admin only, etc.} |
|
|
64
|
+
|
|
65
|
+
### Missing Handlers (frontend calls, no backend route)
|
|
66
|
+
|
|
67
|
+
| Frontend File | Calls | Expected Route | Expected Method |
|
|
68
|
+
|--------------|-------|---------------|----------------|
|
|
69
|
+
| {file} | fetch('/api/X') | /api/X | GET |
|
|
70
|
+
|
|
71
|
+
## 3. Auth Protection
|
|
72
|
+
|
|
73
|
+
### Route Protection Summary
|
|
74
|
+
|
|
75
|
+
| Category | Total | Protected | Unprotected | Status |
|
|
76
|
+
|----------|-------|-----------|-------------|--------|
|
|
77
|
+
| API Routes | {n} | {n} | {n} | {OK/ISSUES} |
|
|
78
|
+
| Pages | {n} | {n} | {n} | {OK/ISSUES} |
|
|
79
|
+
| Public Routes | {n} | - | {n} | OK |
|
|
80
|
+
|
|
81
|
+
### Unprotected Routes (SECURITY ISSUES)
|
|
82
|
+
|
|
83
|
+
| Route | Method | Handler | Should Protect | Evidence |
|
|
84
|
+
|-------|--------|---------|---------------|----------|
|
|
85
|
+
| {route} | {method} | {file:line} | YES | No auth middleware in chain |
|
|
86
|
+
|
|
87
|
+
### Auth Flow Completeness
|
|
88
|
+
|
|
89
|
+
| Step | Status | Evidence |
|
|
90
|
+
|------|--------|----------|
|
|
91
|
+
| Login form exists | {YES/NO} | {file:line} |
|
|
92
|
+
| Auth API called | {YES/NO} | {file:line} |
|
|
93
|
+
| Token/session created | {YES/NO} | {file:line} |
|
|
94
|
+
| Token sent with requests | {YES/NO} | {file:line} |
|
|
95
|
+
| Auth middleware applied | {YES/NO} | {file:line} |
|
|
96
|
+
| Unauthorized redirect | {YES/NO} | {file:line} |
|
|
97
|
+
|
|
98
|
+
## 4. End-to-End Flows
|
|
99
|
+
|
|
100
|
+
### Flow 1: {Flow Name} - {STATUS}
|
|
101
|
+
|
|
102
|
+
| Step | Description | Component | Exists | Connected to Next | Evidence |
|
|
103
|
+
|------|------------|-----------|--------|-------------------|----------|
|
|
104
|
+
| 1 | {step desc} | {file} | YES | YES | import at L12, call at L45 |
|
|
105
|
+
| 2 | {step desc} | {file} | YES | NO | handler exists but not called |
|
|
106
|
+
| 3 | {step desc} | - | NO | - | File not found |
|
|
107
|
+
|
|
108
|
+
**Break point**: {If BROKEN, where exactly the chain breaks}
|
|
109
|
+
**Impact**: {What user action fails because of this break}
|
|
110
|
+
|
|
111
|
+
### Flow 2: {Flow Name} - {STATUS}
|
|
112
|
+
...
|
|
113
|
+
|
|
114
|
+
## 5. Data-Flow Propagation
|
|
115
|
+
|
|
116
|
+
### Cross-Boundary Data Flows
|
|
117
|
+
|
|
118
|
+
| Data Field | Source | Intermediate Steps | Destination | Status |
|
|
119
|
+
|------------|--------|-------------------|-------------|--------|
|
|
120
|
+
| {field name} | {origin, e.g., hook stdin `data.session_id`} | {module1:L12 → module2:L45} | {dest, e.g., metrics.jsonl `session_id`} | PROPAGATED |
|
|
121
|
+
| {field name} | {origin} | {module1:L12 → module2:L45} | {dest} | DATA_DROPPED |
|
|
122
|
+
|
|
123
|
+
### Data-Flow Issues
|
|
124
|
+
|
|
125
|
+
| Field | Dropped At | Available In Scope | Passed Instead | Fix |
|
|
126
|
+
|-------|-----------|-------------------|----------------|-----|
|
|
127
|
+
| {field} | {file:line} | `data.session_id` | `undefined` | Pass `data.session_id` |
|
|
128
|
+
|
|
129
|
+
## 6. Integration Issues Summary
|
|
130
|
+
|
|
131
|
+
### Critical Issues (system cannot function)
|
|
132
|
+
|
|
133
|
+
1. **{Issue}**: {description with evidence}
|
|
134
|
+
- Impact: {what breaks}
|
|
135
|
+
- Fix: {recommended action}
|
|
136
|
+
|
|
137
|
+
### Warnings (partial functionality)
|
|
138
|
+
|
|
139
|
+
1. **{Issue}**: {description with evidence}
|
|
140
|
+
- Impact: {what's degraded}
|
|
141
|
+
- Fix: {recommended action}
|
|
142
|
+
|
|
143
|
+
### Info (cleanup opportunities)
|
|
144
|
+
|
|
145
|
+
1. **{Issue}**: {description}
|
|
146
|
+
- Fix: {recommended action}
|
|
147
|
+
|
|
148
|
+
## 7. Integration Score
|
|
149
|
+
|
|
150
|
+
| Category | Items Checked | Passed | Failed | Score |
|
|
151
|
+
|----------|--------------|--------|--------|-------|
|
|
152
|
+
| Export wiring | {n} | {n} | {n} | {%} |
|
|
153
|
+
| API coverage | {n} | {n} | {n} | {%} |
|
|
154
|
+
| Auth protection | {n} | {n} | {n} | {%} |
|
|
155
|
+
| E2E flows | {n} | {n} | {n} | {%} |
|
|
156
|
+
| Data-flow propagation | {n} | {n} | {n} | {%} |
|
|
157
|
+
| **Overall** | {n} | {n} | {n} | **{%}** |
|
|
158
|
+
|
|
159
|
+
## Recommendations
|
|
160
|
+
|
|
161
|
+
{Prioritized list of actions to fix integration issues}
|
|
162
|
+
|
|
163
|
+
1. **[CRITICAL]** {Most important fix}
|
|
164
|
+
2. **[CRITICAL]** {Second most important}
|
|
165
|
+
3. **[WARNING]** {Important but not blocking}
|
|
166
|
+
4. ...
|
|
167
|
+
```
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Research Summary
|
|
2
|
+
|
|
3
|
+
> Synthesized: {date}
|
|
4
|
+
> Input documents: {count}
|
|
5
|
+
> Sources: {list of document names/paths}
|
|
6
|
+
|
|
7
|
+
## Executive Summary
|
|
8
|
+
|
|
9
|
+
{3-5 sentences maximum. What was researched, the single most important conclusion, and the recommended approach. This paragraph should give a planner enough context to start planning without reading further.}
|
|
10
|
+
|
|
11
|
+
## Recommended Stack
|
|
12
|
+
|
|
13
|
+
{Only include if project-level synthesis. For phase-level, skip this section.}
|
|
14
|
+
|
|
15
|
+
| Layer | Choice | Version | Confidence | Alternatives | Source |
|
|
16
|
+
|-------|--------|---------|------------|-------------|--------|
|
|
17
|
+
| Runtime | {Node.js} | {20.x} | HIGH | {Bun, Deno} | {Doc A, Doc B} |
|
|
18
|
+
| Framework | {Next.js} | {14.x} | HIGH | {Remix, Astro} | {Doc A} |
|
|
19
|
+
| Database | {PostgreSQL} | {16.x} | HIGH | {MySQL} | {Doc A, Doc C} |
|
|
20
|
+
| ORM | {Prisma} | {5.x} | MEDIUM | {Drizzle, TypeORM} | {Doc B} |
|
|
21
|
+
| Auth | {NextAuth.js} | {5.x} | MEDIUM | {Clerk, Auth0} | {Doc A} |
|
|
22
|
+
| Hosting | {Vercel} | - | MEDIUM | {AWS, Railway} | {Doc C} |
|
|
23
|
+
| Testing | {Vitest} | {1.x} | HIGH | {Jest} | {Doc B} |
|
|
24
|
+
|
|
25
|
+
### Stack Rationale
|
|
26
|
+
|
|
27
|
+
{Brief explanation of why this combination. 2-3 sentences.}
|
|
28
|
+
|
|
29
|
+
## Architecture Recommendations
|
|
30
|
+
|
|
31
|
+
{Key architectural decisions informed by research. Use bullet points.}
|
|
32
|
+
|
|
33
|
+
- **Pattern**: {Recommended pattern with rationale}
|
|
34
|
+
- **Data flow**: {How data should move through the system}
|
|
35
|
+
- **Separation**: {How to organize the code}
|
|
36
|
+
- **State**: {How to manage state}
|
|
37
|
+
|
|
38
|
+
## Key Patterns
|
|
39
|
+
|
|
40
|
+
{Patterns to follow during implementation.}
|
|
41
|
+
|
|
42
|
+
| Pattern | When to Use | Example |
|
|
43
|
+
|---------|------------|---------|
|
|
44
|
+
| {Repository} | {Database access} | {Brief code hint} |
|
|
45
|
+
| {Middleware} | {Auth, logging, validation} | {Brief code hint} |
|
|
46
|
+
| {DTO validation} | {API input/output} | {Zod schemas} |
|
|
47
|
+
|
|
48
|
+
## Pitfalls & Warnings
|
|
49
|
+
|
|
50
|
+
{Ranked by severity. These are the things most likely to cause problems.}
|
|
51
|
+
|
|
52
|
+
| # | Pitfall | Severity | Source | Mitigation |
|
|
53
|
+
|---|---------|----------|--------|------------|
|
|
54
|
+
| 1 | {Most critical pitfall} | CRITICAL | {Doc A} | {How to avoid} |
|
|
55
|
+
| 2 | {Second pitfall} | HIGH | {Doc B, Doc C} | {How to avoid} |
|
|
56
|
+
| 3 | {Third pitfall} | MEDIUM | {Doc A} | {How to avoid} |
|
|
57
|
+
|
|
58
|
+
## Contradictions Resolved
|
|
59
|
+
|
|
60
|
+
{Where input documents disagreed and how it was resolved.}
|
|
61
|
+
|
|
62
|
+
| Topic | Position A | Position B | Resolution | Basis |
|
|
63
|
+
|-------|-----------|-----------|------------|-------|
|
|
64
|
+
| {Database} | PostgreSQL (Doc A, C) | MongoDB (Doc B) | PostgreSQL | Majority + S2 source |
|
|
65
|
+
| {Auth} | JWT (Doc A, B) | Sessions (Doc C) | JWT | Majority + better for API |
|
|
66
|
+
|
|
67
|
+
{If any contradictions could not be resolved:}
|
|
68
|
+
|
|
69
|
+
### Unresolved: {Topic}
|
|
70
|
+
|
|
71
|
+
**Options**: {A} vs {B}
|
|
72
|
+
**Trade-offs**: {A is better for X, B is better for Y}
|
|
73
|
+
**Recommendation**: {best guess} `[NEEDS DECISION]`
|
|
74
|
+
|
|
75
|
+
## Open Questions
|
|
76
|
+
|
|
77
|
+
{Things that none of the research documents could definitively answer.}
|
|
78
|
+
|
|
79
|
+
1. {Question} -- Impact: {what planning/implementation is blocked by this}
|
|
80
|
+
2. {Question} -- Impact: {what planning/implementation is blocked by this}
|
|
81
|
+
|
|
82
|
+
## Additional Notes
|
|
83
|
+
|
|
84
|
+
{P3 (Nice to Know) items. Brief bullet points only.}
|
|
85
|
+
|
|
86
|
+
- {Performance tip from Doc A}
|
|
87
|
+
- {Future consideration from Doc C}
|
|
88
|
+
- {Alternative approach worth noting from Doc B}
|
|
89
|
+
|
|
90
|
+
## Sources
|
|
91
|
+
|
|
92
|
+
{Consolidated source list from all input documents.}
|
|
93
|
+
|
|
94
|
+
| # | Document | Key Contribution | Confidence |
|
|
95
|
+
|---|----------|-----------------|------------|
|
|
96
|
+
| 1 | {path/name} | {what it contributed} | {overall confidence} |
|
|
97
|
+
| 2 | {path/name} | {what it contributed} | {overall confidence} |
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Project Roadmap
|
|
2
|
+
|
|
3
|
+
> Generated: {date}
|
|
4
|
+
> Total phases: {n}
|
|
5
|
+
> Estimated plans: {n}
|
|
6
|
+
|
|
7
|
+
## Phase Overview
|
|
8
|
+
|
|
9
|
+
| Phase | Name | Goal | Plans | Wave | Status |
|
|
10
|
+
|-------|------|------|-------|------|--------|
|
|
11
|
+
| 01 | Project Setup | Development environment ready | 2 | 1 | pending |
|
|
12
|
+
| 02 | Authentication | Users can sign in | 3 | 1 | pending |
|
|
13
|
+
| 03 | Core Models | Data layer complete | 4 | 2 | pending |
|
|
14
|
+
| ... | ... | ... | ... | ... | ... |
|
|
15
|
+
|
|
16
|
+
## Dependency Graph
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
Phase 01 ──→ Phase 02 ──→ Phase 04
|
|
20
|
+
└──→ Phase 03 ──→ Phase 05
|
|
21
|
+
└──→ Phase 04
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Milestone: {project name} v1.0
|
|
27
|
+
|
|
28
|
+
**Goal:** {overall project goal from requirements}
|
|
29
|
+
**Phases:** 1 - {n}
|
|
30
|
+
|
|
31
|
+
## Phase Details
|
|
32
|
+
|
|
33
|
+
### Phase 01: Project Setup
|
|
34
|
+
|
|
35
|
+
**Goal**: {goal statement}
|
|
36
|
+
**Must-Haves**:
|
|
37
|
+
- {truth 1}
|
|
38
|
+
- {truth 2}
|
|
39
|
+
|
|
40
|
+
**Planned Plans**:
|
|
41
|
+
1. {plan name} (Wave 1, autonomous)
|
|
42
|
+
2. {plan name} (Wave 1, autonomous)
|
|
43
|
+
|
|
44
|
+
**Dependencies**: None (starting phase)
|
|
45
|
+
|
|
46
|
+
### Phase 02: Authentication
|
|
47
|
+
...
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# SUMMARY-complex.md Template
|
|
2
|
+
|
|
3
|
+
> Use when: decisions were made OR fileCount > 6
|
|
4
|
+
> Referenced by: executor agent (complex plans, architectural work)
|
|
5
|
+
|
|
6
|
+
## Frontmatter (YAML)
|
|
7
|
+
|
|
8
|
+
```yaml
|
|
9
|
+
---
|
|
10
|
+
phase: "{phase_id}"
|
|
11
|
+
plan: "{plan_id}"
|
|
12
|
+
status: "complete" # complete | partial | checkpoint
|
|
13
|
+
subsystem: "{main subsystem affected}"
|
|
14
|
+
tags:
|
|
15
|
+
- "{tag1}"
|
|
16
|
+
requires:
|
|
17
|
+
- "{plan_id}: {artifact}"
|
|
18
|
+
provides:
|
|
19
|
+
- "{export/artifact description}"
|
|
20
|
+
affects:
|
|
21
|
+
- "{affected area 1}"
|
|
22
|
+
tech_stack:
|
|
23
|
+
- "{technology used}"
|
|
24
|
+
key_files:
|
|
25
|
+
- "{file1}: {what it does}"
|
|
26
|
+
key_decisions:
|
|
27
|
+
- "{decision 1}: {rationale}"
|
|
28
|
+
patterns:
|
|
29
|
+
- "{pattern used}: {where}"
|
|
30
|
+
metrics:
|
|
31
|
+
duration_minutes: {n}
|
|
32
|
+
tasks_completed: {n}
|
|
33
|
+
tasks_total: {n}
|
|
34
|
+
commits: {n}
|
|
35
|
+
files_created: {n}
|
|
36
|
+
files_modified: {n}
|
|
37
|
+
deferred:
|
|
38
|
+
- "{thing noticed but not implemented}"
|
|
39
|
+
self_check_failures:
|
|
40
|
+
- "{failure description}"
|
|
41
|
+
architecture_notes:
|
|
42
|
+
- "{key architectural decision and why}"
|
|
43
|
+
---
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Body Structure
|
|
47
|
+
|
|
48
|
+
```markdown
|
|
49
|
+
# Plan Summary: {plan_id}
|
|
50
|
+
|
|
51
|
+
## What Was Built
|
|
52
|
+
|
|
53
|
+
{2-3 paragraph description of what was accomplished}
|
|
54
|
+
|
|
55
|
+
## Architecture Decisions
|
|
56
|
+
|
|
57
|
+
| Decision | Options Considered | Chosen | Rationale |
|
|
58
|
+
|----------|-------------------|--------|-----------|
|
|
59
|
+
| {decision} | {opt1}, {opt2} | {chosen} | {why} |
|
|
60
|
+
|
|
61
|
+
## Task Results
|
|
62
|
+
|
|
63
|
+
| Task | Status | Commit | Files | Verify |
|
|
64
|
+
|------|--------|--------|-------|--------|
|
|
65
|
+
| {task_id}: {name} | done | {hash} | {count} | passed |
|
|
66
|
+
|
|
67
|
+
## Key Implementation Details
|
|
68
|
+
|
|
69
|
+
{Important details about HOW things were implemented}
|
|
70
|
+
|
|
71
|
+
## Integration Points
|
|
72
|
+
|
|
73
|
+
{How this plan connects to other plans - imports, exports, shared state}
|
|
74
|
+
|
|
75
|
+
## Known Issues
|
|
76
|
+
|
|
77
|
+
{Issues discovered during execution}
|
|
78
|
+
|
|
79
|
+
## Dependencies Provided
|
|
80
|
+
|
|
81
|
+
{What other plans can now depend on}
|
|
82
|
+
|
|
83
|
+
## Deferred Items
|
|
84
|
+
|
|
85
|
+
{Items noticed but intentionally deferred - with rationale}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Selection Heuristic
|
|
89
|
+
|
|
90
|
+
Use this template when ANY of the following are true:
|
|
91
|
+
- Key architectural decisions were made during execution
|
|
92
|
+
- Total files created or modified > 6
|
|
93
|
+
- Deviations from the plan occurred
|
|
94
|
+
- Multiple integration points were established
|
|
95
|
+
- The plan touched shared infrastructure or patterns
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# SUMMARY-minimal.md Template
|
|
2
|
+
|
|
3
|
+
> Use when: taskCount <= 2 AND fileCount <= 3
|
|
4
|
+
> Referenced by: executor agent (quick tasks, simple plans)
|
|
5
|
+
|
|
6
|
+
## Frontmatter (YAML)
|
|
7
|
+
|
|
8
|
+
```yaml
|
|
9
|
+
---
|
|
10
|
+
phase: "{phase_id}"
|
|
11
|
+
plan: "{plan_id}"
|
|
12
|
+
status: "complete" # complete | partial | checkpoint
|
|
13
|
+
requires: []
|
|
14
|
+
provides:
|
|
15
|
+
- "{export/artifact description}"
|
|
16
|
+
key_files:
|
|
17
|
+
- "{file1}: {what it does}"
|
|
18
|
+
deferred: []
|
|
19
|
+
metrics:
|
|
20
|
+
tasks_completed: {n}
|
|
21
|
+
tasks_total: {n}
|
|
22
|
+
commits: {n}
|
|
23
|
+
---
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Body Structure
|
|
27
|
+
|
|
28
|
+
```markdown
|
|
29
|
+
# Plan Summary: {plan_id}
|
|
30
|
+
|
|
31
|
+
## What Was Built
|
|
32
|
+
|
|
33
|
+
{1 paragraph description}
|
|
34
|
+
|
|
35
|
+
## Task Results
|
|
36
|
+
|
|
37
|
+
| Task | Status | Commit | Files |
|
|
38
|
+
|------|--------|--------|-------|
|
|
39
|
+
| {task_id}: {name} | done | {hash} | {count} |
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Selection Heuristic
|
|
43
|
+
|
|
44
|
+
Use this template when ALL of the following are true:
|
|
45
|
+
- Total tasks in the plan <= 2
|
|
46
|
+
- Total files created or modified <= 3
|
|
47
|
+
- No key decisions were made
|
|
48
|
+
- No deviations from the plan occurred
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# SUMMARY.md Template
|
|
2
|
+
|
|
3
|
+
> Referenced by: executor agent, build skill, review skill
|
|
4
|
+
> Do not edit this template during execution — copy the structure into your output.
|
|
5
|
+
|
|
6
|
+
## Frontmatter (YAML)
|
|
7
|
+
|
|
8
|
+
```yaml
|
|
9
|
+
---
|
|
10
|
+
phase: "{phase_id}"
|
|
11
|
+
plan: "{plan_id}"
|
|
12
|
+
status: "complete" # complete | partial | checkpoint
|
|
13
|
+
subsystem: "{main subsystem affected}"
|
|
14
|
+
tags:
|
|
15
|
+
- "{tag1}"
|
|
16
|
+
- "{tag2}"
|
|
17
|
+
requires: # What this plan needs from other plans
|
|
18
|
+
- "{plan_id}: {artifact}"
|
|
19
|
+
provides: # What this plan produces for other plans
|
|
20
|
+
- "{export/artifact description}"
|
|
21
|
+
affects:
|
|
22
|
+
- "{affected area 1}"
|
|
23
|
+
- "{affected area 2}"
|
|
24
|
+
tech_stack:
|
|
25
|
+
- "{technology used}"
|
|
26
|
+
key_files:
|
|
27
|
+
- "{file1}: {what it does}"
|
|
28
|
+
- "{file2}: {what it does}"
|
|
29
|
+
key_decisions:
|
|
30
|
+
- "{decision 1}: {rationale}"
|
|
31
|
+
patterns:
|
|
32
|
+
- "{pattern used}: {where}"
|
|
33
|
+
metrics:
|
|
34
|
+
duration_minutes: {n}
|
|
35
|
+
tasks_completed: {n}
|
|
36
|
+
tasks_total: {n}
|
|
37
|
+
commits: {n}
|
|
38
|
+
files_created: {n}
|
|
39
|
+
files_modified: {n}
|
|
40
|
+
deferred:
|
|
41
|
+
- "{thing noticed but not implemented}"
|
|
42
|
+
self_check_failures: # Only present if self-check found issues
|
|
43
|
+
- "{failure description}"
|
|
44
|
+
---
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Body Structure
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
# Plan Summary: {plan_id}
|
|
51
|
+
|
|
52
|
+
## What Was Built
|
|
53
|
+
|
|
54
|
+
{2-3 paragraph description of what was accomplished}
|
|
55
|
+
|
|
56
|
+
## Task Results
|
|
57
|
+
|
|
58
|
+
| Task | Status | Commit | Files | Verify |
|
|
59
|
+
|------|--------|--------|-------|--------|
|
|
60
|
+
| {task_id}: {name} | done | {hash} | {count} | passed |
|
|
61
|
+
|
|
62
|
+
## Key Implementation Details
|
|
63
|
+
|
|
64
|
+
{Important details about HOW things were implemented that future plans need to know}
|
|
65
|
+
|
|
66
|
+
## Known Issues
|
|
67
|
+
|
|
68
|
+
{Any issues discovered during execution that weren't blockers but should be tracked}
|
|
69
|
+
|
|
70
|
+
## Dependencies Provided
|
|
71
|
+
|
|
72
|
+
{What other plans can now depend on — exports, files, APIs created}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Status Values
|
|
76
|
+
|
|
77
|
+
| Status | Meaning |
|
|
78
|
+
|--------|---------|
|
|
79
|
+
| `complete` | All tasks completed successfully |
|
|
80
|
+
| `partial` | Some tasks completed, execution stopped |
|
|
81
|
+
| `checkpoint` | Execution paused at a checkpoint task, waiting for human |
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
<!-- Source: agents/verifier.md | Purpose: Detailed output format for verification reports produced by the verifier agent -->
|
|
2
|
+
|
|
3
|
+
```yaml
|
|
4
|
+
---
|
|
5
|
+
phase: "{phase_id}"
|
|
6
|
+
verified: "{ISO timestamp}"
|
|
7
|
+
status: "passed" # passed | gaps_found | human_needed
|
|
8
|
+
is_re_verification: false # true if re-verifying after gap closure
|
|
9
|
+
score:
|
|
10
|
+
total_must_haves: {n}
|
|
11
|
+
verified: {n}
|
|
12
|
+
failed: {n}
|
|
13
|
+
partial: {n}
|
|
14
|
+
human_needed: {n}
|
|
15
|
+
gaps:
|
|
16
|
+
- must_have: "{description of the failed must-have}"
|
|
17
|
+
level: "{existence | substantive | wired}"
|
|
18
|
+
evidence: "{what you found}"
|
|
19
|
+
recommendation: "{specific action to fix}"
|
|
20
|
+
anti_patterns:
|
|
21
|
+
todos: {count}
|
|
22
|
+
stubs: {count}
|
|
23
|
+
console_logs: {count}
|
|
24
|
+
skipped_tests: {count}
|
|
25
|
+
hardcoded_secrets: {count}
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
# Phase Verification: {phase_name}
|
|
29
|
+
|
|
30
|
+
> Verified: {date}
|
|
31
|
+
> Status: **{STATUS}**
|
|
32
|
+
> Score: {verified}/{total} must-haves verified
|
|
33
|
+
> Re-verification: {yes/no}
|
|
34
|
+
|
|
35
|
+
## Observable Truths
|
|
36
|
+
|
|
37
|
+
| # | Truth | Status | Evidence |
|
|
38
|
+
|---|-------|--------|----------|
|
|
39
|
+
| 1 | {truth statement} | VERIFIED | {evidence summary with file paths and line numbers} |
|
|
40
|
+
| 2 | {truth statement} | FAILED | {what's wrong, what was expected, what was found} |
|
|
41
|
+
| 3 | {truth statement} | HUMAN_NEEDED | {why it can't be verified programmatically} |
|
|
42
|
+
|
|
43
|
+
## Artifact Verification
|
|
44
|
+
|
|
45
|
+
| # | Artifact | L1: Exists | L2: Substantive | L3: Wired | Status |
|
|
46
|
+
|---|----------|-----------|-----------------|-----------|--------|
|
|
47
|
+
| 1 | `{file/export}` | YES | YES (142 lines, real logic) | WIRED (imported by 3 files) | PASS |
|
|
48
|
+
| 2 | `{file/export}` | YES | STUB (TODO at L42, empty handler L67) | N/A | FAIL |
|
|
49
|
+
| 3 | `{file/export}` | YES | YES | ORPHANED (not imported anywhere) | FAIL |
|
|
50
|
+
| 4 | `{file/export}` | NO | N/A | N/A | FAIL |
|
|
51
|
+
|
|
52
|
+
## Key Link Verification
|
|
53
|
+
|
|
54
|
+
| # | Link Description | Source | Target | Status | Evidence |
|
|
55
|
+
|---|-----------------|--------|--------|--------|----------|
|
|
56
|
+
| 1 | {what connects to what} | `{source_file}` | `{target_file}` | WIRED | Import at L12, called at L45, args correct |
|
|
57
|
+
| 2 | {what connects to what} | `{source_file}` | `{target_file}` | BROKEN | Imported but never called |
|
|
58
|
+
| 3 | {what connects to what} | `{source_file}` | `{target_file}` | ARGS_WRONG | Called at L45 but passes undefined for sessionId (data.session_id in scope) |
|
|
59
|
+
|
|
60
|
+
## Gaps Found
|
|
61
|
+
|
|
62
|
+
{Only present if status is gaps_found}
|
|
63
|
+
|
|
64
|
+
### Gap 1: {Short description}
|
|
65
|
+
|
|
66
|
+
- **Must-Have**: {which must-have this gap blocks}
|
|
67
|
+
- **Level Failed**: {existence / substantive / wired}
|
|
68
|
+
- **Evidence**: {specific evidence — file paths, line numbers, command output}
|
|
69
|
+
- **Impact**: {what doesn't work because of this gap}
|
|
70
|
+
- **Recommendation**: {specific action to close this gap}
|
|
71
|
+
|
|
72
|
+
### Gap 2: {Short description}
|
|
73
|
+
...
|
|
74
|
+
|
|
75
|
+
## Human Verification Items
|
|
76
|
+
|
|
77
|
+
{Only present if there are items requiring human verification}
|
|
78
|
+
|
|
79
|
+
### Item 1: {What needs checking}
|
|
80
|
+
|
|
81
|
+
- **Must-Have**: {which must-have this relates to}
|
|
82
|
+
- **Why Manual**: {why it can't be verified automatically}
|
|
83
|
+
- **How to Test**: {step-by-step instructions}
|
|
84
|
+
- **Expected Result**: {what success looks like}
|
|
85
|
+
|
|
86
|
+
## Anti-Pattern Scan
|
|
87
|
+
|
|
88
|
+
| Pattern | Count | Severity | Files |
|
|
89
|
+
|---------|-------|----------|-------|
|
|
90
|
+
| TODO/FIXME comments | {n} | {low/medium/high} | {file list} |
|
|
91
|
+
| Stub implementations | {n} | {high} | {file list} |
|
|
92
|
+
| Console.log in production | {n} | {low} | {file list} |
|
|
93
|
+
| Skipped tests | {n} | {medium} | {file list} |
|
|
94
|
+
| Hardcoded secrets | {n} | {critical} | {file list} |
|
|
95
|
+
| Empty catch blocks | {n} | {medium} | {file list} |
|
|
96
|
+
|
|
97
|
+
## Regressions
|
|
98
|
+
|
|
99
|
+
{Only present in re-verification mode}
|
|
100
|
+
|
|
101
|
+
| # | Must-Have | Previous Status | Current Status | Evidence |
|
|
102
|
+
|---|----------|----------------|----------------|----------|
|
|
103
|
+
| 1 | {must-have} | VERIFIED | FAILED | {what changed} |
|
|
104
|
+
|
|
105
|
+
## Summary
|
|
106
|
+
|
|
107
|
+
### Phase Health
|
|
108
|
+
- **Must-haves**: {n}/{total} verified ({percentage}%)
|
|
109
|
+
- **Gaps**: {n} blocking, {n} non-blocking
|
|
110
|
+
- **Anti-patterns**: {n} total ({n} critical)
|
|
111
|
+
- **Human items**: {n} pending
|
|
112
|
+
|
|
113
|
+
### Recommendations
|
|
114
|
+
1. {Most important action to take}
|
|
115
|
+
2. {Second most important}
|
|
116
|
+
3. ...
|
|
117
|
+
```
|