@sienklogic/plan-build-run 2.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.
Files changed (221) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/CLAUDE.md +149 -0
  3. package/LICENSE +21 -0
  4. package/README.md +247 -0
  5. package/dashboard/bin/cli.js +25 -0
  6. package/dashboard/package.json +34 -0
  7. package/dashboard/public/.gitkeep +0 -0
  8. package/dashboard/public/css/layout.css +406 -0
  9. package/dashboard/public/css/status-colors.css +98 -0
  10. package/dashboard/public/js/htmx-title.js +5 -0
  11. package/dashboard/public/js/sidebar-toggle.js +20 -0
  12. package/dashboard/src/app.js +78 -0
  13. package/dashboard/src/middleware/errorHandler.js +52 -0
  14. package/dashboard/src/middleware/notFoundHandler.js +9 -0
  15. package/dashboard/src/repositories/planning.repository.js +128 -0
  16. package/dashboard/src/routes/events.routes.js +40 -0
  17. package/dashboard/src/routes/index.routes.js +31 -0
  18. package/dashboard/src/routes/pages.routes.js +195 -0
  19. package/dashboard/src/server.js +42 -0
  20. package/dashboard/src/services/dashboard.service.js +222 -0
  21. package/dashboard/src/services/phase.service.js +167 -0
  22. package/dashboard/src/services/project.service.js +57 -0
  23. package/dashboard/src/services/roadmap.service.js +171 -0
  24. package/dashboard/src/services/sse.service.js +58 -0
  25. package/dashboard/src/services/todo.service.js +254 -0
  26. package/dashboard/src/services/watcher.service.js +48 -0
  27. package/dashboard/src/views/coming-soon.ejs +11 -0
  28. package/dashboard/src/views/error.ejs +13 -0
  29. package/dashboard/src/views/index.ejs +5 -0
  30. package/dashboard/src/views/layout.ejs +1 -0
  31. package/dashboard/src/views/partials/dashboard-content.ejs +77 -0
  32. package/dashboard/src/views/partials/footer.ejs +3 -0
  33. package/dashboard/src/views/partials/head.ejs +21 -0
  34. package/dashboard/src/views/partials/header.ejs +12 -0
  35. package/dashboard/src/views/partials/layout-bottom.ejs +15 -0
  36. package/dashboard/src/views/partials/layout-top.ejs +8 -0
  37. package/dashboard/src/views/partials/phase-content.ejs +181 -0
  38. package/dashboard/src/views/partials/phases-content.ejs +117 -0
  39. package/dashboard/src/views/partials/roadmap-content.ejs +142 -0
  40. package/dashboard/src/views/partials/sidebar.ejs +38 -0
  41. package/dashboard/src/views/partials/todo-create-content.ejs +53 -0
  42. package/dashboard/src/views/partials/todo-detail-content.ejs +38 -0
  43. package/dashboard/src/views/partials/todos-content.ejs +53 -0
  44. package/dashboard/src/views/phase-detail.ejs +5 -0
  45. package/dashboard/src/views/phases.ejs +5 -0
  46. package/dashboard/src/views/roadmap.ejs +5 -0
  47. package/dashboard/src/views/todo-create.ejs +5 -0
  48. package/dashboard/src/views/todo-detail.ejs +5 -0
  49. package/dashboard/src/views/todos.ejs +5 -0
  50. package/package.json +57 -0
  51. package/plugins/pbr/.claude-plugin/plugin.json +13 -0
  52. package/plugins/pbr/UI-CONSISTENCY-GAPS.md +61 -0
  53. package/plugins/pbr/agents/codebase-mapper.md +271 -0
  54. package/plugins/pbr/agents/debugger.md +281 -0
  55. package/plugins/pbr/agents/executor.md +407 -0
  56. package/plugins/pbr/agents/general.md +164 -0
  57. package/plugins/pbr/agents/integration-checker.md +141 -0
  58. package/plugins/pbr/agents/plan-checker.md +280 -0
  59. package/plugins/pbr/agents/planner.md +358 -0
  60. package/plugins/pbr/agents/researcher.md +363 -0
  61. package/plugins/pbr/agents/synthesizer.md +230 -0
  62. package/plugins/pbr/agents/verifier.md +454 -0
  63. package/plugins/pbr/commands/begin.md +5 -0
  64. package/plugins/pbr/commands/build.md +5 -0
  65. package/plugins/pbr/commands/config.md +5 -0
  66. package/plugins/pbr/commands/continue.md +5 -0
  67. package/plugins/pbr/commands/debug.md +5 -0
  68. package/plugins/pbr/commands/discuss.md +5 -0
  69. package/plugins/pbr/commands/explore.md +5 -0
  70. package/plugins/pbr/commands/health.md +5 -0
  71. package/plugins/pbr/commands/help.md +5 -0
  72. package/plugins/pbr/commands/import.md +5 -0
  73. package/plugins/pbr/commands/milestone.md +5 -0
  74. package/plugins/pbr/commands/note.md +5 -0
  75. package/plugins/pbr/commands/pause.md +5 -0
  76. package/plugins/pbr/commands/plan.md +5 -0
  77. package/plugins/pbr/commands/quick.md +5 -0
  78. package/plugins/pbr/commands/resume.md +5 -0
  79. package/plugins/pbr/commands/review.md +5 -0
  80. package/plugins/pbr/commands/scan.md +5 -0
  81. package/plugins/pbr/commands/setup.md +5 -0
  82. package/plugins/pbr/commands/status.md +5 -0
  83. package/plugins/pbr/commands/todo.md +5 -0
  84. package/plugins/pbr/contexts/dev.md +27 -0
  85. package/plugins/pbr/contexts/research.md +28 -0
  86. package/plugins/pbr/contexts/review.md +36 -0
  87. package/plugins/pbr/hooks/hooks.json +183 -0
  88. package/plugins/pbr/references/agent-anti-patterns.md +24 -0
  89. package/plugins/pbr/references/agent-interactions.md +134 -0
  90. package/plugins/pbr/references/agent-teams.md +54 -0
  91. package/plugins/pbr/references/checkpoints.md +157 -0
  92. package/plugins/pbr/references/common-bug-patterns.md +13 -0
  93. package/plugins/pbr/references/continuation-format.md +212 -0
  94. package/plugins/pbr/references/deviation-rules.md +112 -0
  95. package/plugins/pbr/references/git-integration.md +226 -0
  96. package/plugins/pbr/references/integration-patterns.md +117 -0
  97. package/plugins/pbr/references/model-profiles.md +99 -0
  98. package/plugins/pbr/references/model-selection.md +31 -0
  99. package/plugins/pbr/references/pbr-rules.md +193 -0
  100. package/plugins/pbr/references/plan-authoring.md +181 -0
  101. package/plugins/pbr/references/plan-format.md +283 -0
  102. package/plugins/pbr/references/planning-config.md +213 -0
  103. package/plugins/pbr/references/questioning.md +214 -0
  104. package/plugins/pbr/references/reading-verification.md +127 -0
  105. package/plugins/pbr/references/stub-patterns.md +160 -0
  106. package/plugins/pbr/references/subagent-coordination.md +119 -0
  107. package/plugins/pbr/references/ui-formatting.md +399 -0
  108. package/plugins/pbr/references/verification-patterns.md +198 -0
  109. package/plugins/pbr/references/wave-execution.md +95 -0
  110. package/plugins/pbr/scripts/auto-continue.js +80 -0
  111. package/plugins/pbr/scripts/check-dangerous-commands.js +136 -0
  112. package/plugins/pbr/scripts/check-doc-sprawl.js +102 -0
  113. package/plugins/pbr/scripts/check-phase-boundary.js +196 -0
  114. package/plugins/pbr/scripts/check-plan-format.js +270 -0
  115. package/plugins/pbr/scripts/check-roadmap-sync.js +252 -0
  116. package/plugins/pbr/scripts/check-skill-workflow.js +262 -0
  117. package/plugins/pbr/scripts/check-state-sync.js +476 -0
  118. package/plugins/pbr/scripts/check-subagent-output.js +144 -0
  119. package/plugins/pbr/scripts/config-schema.json +251 -0
  120. package/plugins/pbr/scripts/context-budget-check.js +287 -0
  121. package/plugins/pbr/scripts/event-handler.js +151 -0
  122. package/plugins/pbr/scripts/event-logger.js +92 -0
  123. package/plugins/pbr/scripts/hook-logger.js +76 -0
  124. package/plugins/pbr/scripts/hooks-schema.json +79 -0
  125. package/plugins/pbr/scripts/log-subagent.js +152 -0
  126. package/plugins/pbr/scripts/log-tool-failure.js +88 -0
  127. package/plugins/pbr/scripts/pbr-tools.js +1301 -0
  128. package/plugins/pbr/scripts/post-write-dispatch.js +66 -0
  129. package/plugins/pbr/scripts/post-write-quality.js +207 -0
  130. package/plugins/pbr/scripts/pre-bash-dispatch.js +56 -0
  131. package/plugins/pbr/scripts/pre-write-dispatch.js +62 -0
  132. package/plugins/pbr/scripts/progress-tracker.js +228 -0
  133. package/plugins/pbr/scripts/session-cleanup.js +254 -0
  134. package/plugins/pbr/scripts/status-line.js +285 -0
  135. package/plugins/pbr/scripts/suggest-compact.js +119 -0
  136. package/plugins/pbr/scripts/task-completed.js +45 -0
  137. package/plugins/pbr/scripts/track-context-budget.js +119 -0
  138. package/plugins/pbr/scripts/validate-commit.js +200 -0
  139. package/plugins/pbr/scripts/validate-plugin-structure.js +172 -0
  140. package/plugins/pbr/skills/begin/SKILL.md +545 -0
  141. package/plugins/pbr/skills/begin/templates/PROJECT.md.tmpl +33 -0
  142. package/plugins/pbr/skills/begin/templates/REQUIREMENTS.md.tmpl +18 -0
  143. package/plugins/pbr/skills/begin/templates/STATE.md.tmpl +49 -0
  144. package/plugins/pbr/skills/begin/templates/config.json.tmpl +63 -0
  145. package/plugins/pbr/skills/begin/templates/researcher-prompt.md.tmpl +19 -0
  146. package/plugins/pbr/skills/begin/templates/roadmap-prompt.md.tmpl +30 -0
  147. package/plugins/pbr/skills/begin/templates/synthesis-prompt.md.tmpl +16 -0
  148. package/plugins/pbr/skills/build/SKILL.md +962 -0
  149. package/plugins/pbr/skills/config/SKILL.md +241 -0
  150. package/plugins/pbr/skills/continue/SKILL.md +127 -0
  151. package/plugins/pbr/skills/debug/SKILL.md +489 -0
  152. package/plugins/pbr/skills/debug/templates/continuation-prompt.md.tmpl +16 -0
  153. package/plugins/pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +27 -0
  154. package/plugins/pbr/skills/discuss/SKILL.md +338 -0
  155. package/plugins/pbr/skills/discuss/templates/CONTEXT.md.tmpl +61 -0
  156. package/plugins/pbr/skills/discuss/templates/decision-categories.md +9 -0
  157. package/plugins/pbr/skills/explore/SKILL.md +362 -0
  158. package/plugins/pbr/skills/health/SKILL.md +186 -0
  159. package/plugins/pbr/skills/health/templates/check-pattern.md.tmpl +30 -0
  160. package/plugins/pbr/skills/health/templates/output-format.md.tmpl +63 -0
  161. package/plugins/pbr/skills/help/SKILL.md +140 -0
  162. package/plugins/pbr/skills/import/SKILL.md +490 -0
  163. package/plugins/pbr/skills/milestone/SKILL.md +673 -0
  164. package/plugins/pbr/skills/milestone/templates/audit-report.md.tmpl +48 -0
  165. package/plugins/pbr/skills/milestone/templates/stats-file.md.tmpl +30 -0
  166. package/plugins/pbr/skills/note/SKILL.md +212 -0
  167. package/plugins/pbr/skills/pause/SKILL.md +235 -0
  168. package/plugins/pbr/skills/pause/templates/continue-here.md.tmpl +71 -0
  169. package/plugins/pbr/skills/plan/SKILL.md +628 -0
  170. package/plugins/pbr/skills/plan/decimal-phase-calc.md +98 -0
  171. package/plugins/pbr/skills/plan/templates/checker-prompt.md.tmpl +21 -0
  172. package/plugins/pbr/skills/plan/templates/gap-closure-prompt.md.tmpl +32 -0
  173. package/plugins/pbr/skills/plan/templates/planner-prompt.md.tmpl +38 -0
  174. package/plugins/pbr/skills/plan/templates/researcher-prompt.md.tmpl +19 -0
  175. package/plugins/pbr/skills/plan/templates/revision-prompt.md.tmpl +23 -0
  176. package/plugins/pbr/skills/quick/SKILL.md +335 -0
  177. package/plugins/pbr/skills/resume/SKILL.md +388 -0
  178. package/plugins/pbr/skills/review/SKILL.md +652 -0
  179. package/plugins/pbr/skills/review/templates/debugger-prompt.md.tmpl +60 -0
  180. package/plugins/pbr/skills/review/templates/gap-planner-prompt.md.tmpl +40 -0
  181. package/plugins/pbr/skills/review/templates/verifier-prompt.md.tmpl +115 -0
  182. package/plugins/pbr/skills/scan/SKILL.md +269 -0
  183. package/plugins/pbr/skills/scan/templates/mapper-prompt.md.tmpl +201 -0
  184. package/plugins/pbr/skills/setup/SKILL.md +227 -0
  185. package/plugins/pbr/skills/shared/commit-planning-docs.md +35 -0
  186. package/plugins/pbr/skills/shared/config-loading.md +102 -0
  187. package/plugins/pbr/skills/shared/context-budget.md +40 -0
  188. package/plugins/pbr/skills/shared/context-loader-task.md +86 -0
  189. package/plugins/pbr/skills/shared/digest-select.md +79 -0
  190. package/plugins/pbr/skills/shared/domain-probes.md +125 -0
  191. package/plugins/pbr/skills/shared/error-reporting.md +79 -0
  192. package/plugins/pbr/skills/shared/gate-prompts.md +388 -0
  193. package/plugins/pbr/skills/shared/phase-argument-parsing.md +45 -0
  194. package/plugins/pbr/skills/shared/progress-display.md +53 -0
  195. package/plugins/pbr/skills/shared/revision-loop.md +81 -0
  196. package/plugins/pbr/skills/shared/state-loading.md +62 -0
  197. package/plugins/pbr/skills/shared/state-update.md +161 -0
  198. package/plugins/pbr/skills/shared/universal-anti-patterns.md +33 -0
  199. package/plugins/pbr/skills/status/SKILL.md +353 -0
  200. package/plugins/pbr/skills/todo/SKILL.md +181 -0
  201. package/plugins/pbr/templates/CONTEXT.md.tmpl +52 -0
  202. package/plugins/pbr/templates/INTEGRATION-REPORT.md.tmpl +151 -0
  203. package/plugins/pbr/templates/RESEARCH-SUMMARY.md.tmpl +97 -0
  204. package/plugins/pbr/templates/ROADMAP.md.tmpl +40 -0
  205. package/plugins/pbr/templates/SUMMARY.md.tmpl +81 -0
  206. package/plugins/pbr/templates/VERIFICATION-DETAIL.md.tmpl +116 -0
  207. package/plugins/pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -0
  208. package/plugins/pbr/templates/codebase/CONCERNS.md.tmpl +93 -0
  209. package/plugins/pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -0
  210. package/plugins/pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -0
  211. package/plugins/pbr/templates/codebase/STACK.md.tmpl +78 -0
  212. package/plugins/pbr/templates/codebase/STRUCTURE.md.tmpl +80 -0
  213. package/plugins/pbr/templates/codebase/TESTING.md.tmpl +107 -0
  214. package/plugins/pbr/templates/continue-here.md.tmpl +73 -0
  215. package/plugins/pbr/templates/prompt-partials/phase-project-context.md.tmpl +37 -0
  216. package/plugins/pbr/templates/research/ARCHITECTURE.md.tmpl +124 -0
  217. package/plugins/pbr/templates/research/STACK.md.tmpl +71 -0
  218. package/plugins/pbr/templates/research/SUMMARY.md.tmpl +112 -0
  219. package/plugins/pbr/templates/research-outputs/phase-research.md.tmpl +81 -0
  220. package/plugins/pbr/templates/research-outputs/project-research.md.tmpl +99 -0
  221. package/plugins/pbr/templates/research-outputs/synthesis.md.tmpl +36 -0
@@ -0,0 +1,181 @@
1
+ ---
2
+ name: todo
3
+ description: "File-based persistent todos. Add, list, complete — survives sessions."
4
+ allowed-tools: Read, Write, Bash, Glob, Grep
5
+ argument-hint: "add <description> | list [theme] | done <NNN>"
6
+ ---
7
+
8
+ # /pbr:todo — Persistent File-Based Todos
9
+
10
+ ## Why File-Based
11
+
12
+ Native Claude Code Tasks are session-scoped — they vanish when the conversation ends. Plan-Build-Run todos are individual `.md` files in `.planning/todos/` that persist across sessions, context resets, and compactions.
13
+
14
+ ## Subcommands
15
+
16
+ Parse `$ARGUMENTS` to determine the subcommand:
17
+
18
+ ### `add <description>`
19
+
20
+ 1. Ensure `.planning/todos/pending/` directory exists
21
+ 2. Generate NNN: scan **both** `.planning/todos/pending/` and `.planning/todos/done/` for the highest existing number, then increment by 1 (zero-padded to 3 digits)
22
+ 3. Generate slug: take the first ~4 meaningful words from the description, lowercase, hyphen-separated (e.g., "Add rate limiting to login" → `add-rate-limiting-login`)
23
+ 4. Infer theme from description (e.g., "auth" → security, "test" → testing, "UI" → frontend, "refactor" → quality)
24
+ 5. Check for duplicates — read existing pending todos, if a similar one exists, ask user via AskUserQuestion
25
+ 6. Create `.planning/todos/pending/{NNN}-{slug}.md`:
26
+
27
+ ```yaml
28
+ ---
29
+ title: "{description}"
30
+ status: pending
31
+ priority: P2
32
+ source: conversation
33
+ created: {YYYY-MM-DD}
34
+ theme: {inferred-theme}
35
+ ---
36
+
37
+ ## Goal
38
+
39
+ {description expanded into a clear goal statement}
40
+
41
+ ## Scope
42
+
43
+ {any relevant context from the current conversation, or bullet points of what's in/out of scope}
44
+
45
+ ## Acceptance Criteria
46
+
47
+ - [ ] {primary acceptance criterion derived from description}
48
+ ```
49
+
50
+ 7. Update STATE.md Pending Todos section
51
+
52
+ If the Write fails, display:
53
+ ```
54
+ ╔══════════════════════════════════════════════════════════════╗
55
+ ║ ERROR ║
56
+ ╚══════════════════════════════════════════════════════════════╝
57
+
58
+ Failed to write todo file.
59
+
60
+ **To fix:** Check that `.planning/todos/pending/` exists and is writable.
61
+ ```
62
+
63
+ 8. Confirm with branded output:
64
+ ```
65
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
66
+ PLAN-BUILD-RUN ► TODO ADDED ✓
67
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
68
+
69
+ **Todo {NNN}:** {description}
70
+
71
+ ───────────────────────────────────────────────────────────────
72
+
73
+ ## ▶ Next Up
74
+
75
+ **Work on it now** or see your task list
76
+
77
+ `/pbr:quick`
78
+
79
+ <sub>`/clear` first → fresh context window</sub>
80
+
81
+ ───────────────────────────────────────────────────────────────
82
+
83
+ **Also available:**
84
+ - `/pbr:todo list` — see all pending todos
85
+ - `/pbr:status` — see project status
86
+
87
+ ───────────────────────────────────────────────────────────────
88
+ ```
89
+
90
+ ### `list [theme]`
91
+
92
+ 1. Read all files in `.planning/todos/pending/`
93
+ 2. Parse frontmatter from each
94
+ 3. If theme filter provided, filter by theme
95
+ 4. Display as table:
96
+
97
+ ```
98
+ Pending Todos:
99
+ | # | Title | Priority | Theme | Created |
100
+ |---|-------|----------|-------|---------|
101
+ | 074 | Status-line customization options | P2 | capability | 2026-02-10 |
102
+ | 075 | Add WebSearch/WebFetch/Context7 to researcher | P2 | capability | 2026-02-10 |
103
+ ```
104
+
105
+ 5. Offer actions with branded routing:
106
+ ```
107
+ ───────────────────────────────────────────────────────────────
108
+
109
+ ## ▶ Next Up
110
+
111
+ **Pick a todo** — mark one done or start working
112
+
113
+ `/pbr:todo done <NNN>`
114
+
115
+ ───────────────────────────────────────────────────────────────
116
+
117
+ **Also available:**
118
+ - `/pbr:quick` — work on one now
119
+ - `/pbr:status` — see project status
120
+
121
+ ───────────────────────────────────────────────────────────────
122
+ ```
123
+
124
+ ### `done <NNN>`
125
+
126
+ 1. Find `.planning/todos/pending/{NNN}-*.md` (match by number prefix)
127
+ 2. If not found, display:
128
+ ```
129
+ ╔══════════════════════════════════════════════════════════════╗
130
+ ║ ERROR ║
131
+ ╚══════════════════════════════════════════════════════════════╝
132
+
133
+ Todo {NNN} not found in pending todos.
134
+
135
+ **To fix:** Run `/pbr:todo list` to see available numbers.
136
+ ```
137
+ 3. Move file to `.planning/todos/done/{NNN}-{slug}.md`
138
+ 4. Update frontmatter: set `status: done` and add `completed: {YYYY-MM-DD}`
139
+ 5. Update STATE.md
140
+ 6. Confirm with branded output:
141
+ ```
142
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
143
+ PLAN-BUILD-RUN ► TODO COMPLETED ✓
144
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
145
+
146
+ **Todo {NNN}:** {title}
147
+
148
+ ───────────────────────────────────────────────────────────────
149
+
150
+ ## ▶ Next Up
151
+
152
+ **See remaining tasks**
153
+
154
+ `/pbr:todo list`
155
+
156
+ <sub>`/clear` first → fresh context window</sub>
157
+
158
+ ───────────────────────────────────────────────────────────────
159
+
160
+ **Also available:**
161
+ - `/pbr:continue` — execute next logical step
162
+ - `/pbr:status` — see project status
163
+
164
+ ───────────────────────────────────────────────────────────────
165
+ ```
166
+
167
+ ### No arguments
168
+
169
+ Show a brief summary: count of pending todos, grouped by theme, plus usage hint.
170
+
171
+ ## State Integration
172
+
173
+ After any todo operation, update the "Pending Todos" section of STATE.md with the current count and list.
174
+
175
+ ## Git Integration
176
+
177
+ Reference: `skills/shared/commit-planning-docs.md` for the standard commit pattern.
178
+
179
+ If `planning.commit_docs: true` in config, commit todo changes:
180
+ - `docs(planning): add todo {NNN}`
181
+ - `docs(planning): complete todo {NNN}`
@@ -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,151 @@
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. Integration Issues Summary
115
+
116
+ ### Critical Issues (system cannot function)
117
+
118
+ 1. **{Issue}**: {description with evidence}
119
+ - Impact: {what breaks}
120
+ - Fix: {recommended action}
121
+
122
+ ### Warnings (partial functionality)
123
+
124
+ 1. **{Issue}**: {description with evidence}
125
+ - Impact: {what's degraded}
126
+ - Fix: {recommended action}
127
+
128
+ ### Info (cleanup opportunities)
129
+
130
+ 1. **{Issue}**: {description}
131
+ - Fix: {recommended action}
132
+
133
+ ## 6. Integration Score
134
+
135
+ | Category | Items Checked | Passed | Failed | Score |
136
+ |----------|--------------|--------|--------|-------|
137
+ | Export wiring | {n} | {n} | {n} | {%} |
138
+ | API coverage | {n} | {n} | {n} | {%} |
139
+ | Auth protection | {n} | {n} | {n} | {%} |
140
+ | E2E flows | {n} | {n} | {n} | {%} |
141
+ | **Overall** | {n} | {n} | {n} | **{%}** |
142
+
143
+ ## Recommendations
144
+
145
+ {Prioritized list of actions to fix integration issues}
146
+
147
+ 1. **[CRITICAL]** {Most important fix}
148
+ 2. **[CRITICAL]** {Second most important}
149
+ 3. **[WARNING]** {Important but not blocking}
150
+ 4. ...
151
+ ```
@@ -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,40 @@
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
+ ## Phase Details
25
+
26
+ ### Phase 01: Project Setup
27
+
28
+ **Goal**: {goal statement}
29
+ **Must-Haves**:
30
+ - {truth 1}
31
+ - {truth 2}
32
+
33
+ **Planned Plans**:
34
+ 1. {plan name} (Wave 1, autonomous)
35
+ 2. {plan name} (Wave 1, autonomous)
36
+
37
+ **Dependencies**: None (starting phase)
38
+
39
+ ### Phase 02: Authentication
40
+ ...
@@ -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 |