@sienklogic/plan-build-run 2.0.0 → 2.0.1
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 +56 -56
- package/CLAUDE.md +149 -149
- package/LICENSE +21 -21
- package/README.md +247 -247
- package/dashboard/bin/cli.js +25 -25
- package/dashboard/package.json +34 -34
- package/dashboard/public/css/layout.css +406 -406
- package/dashboard/public/css/status-colors.css +98 -98
- package/dashboard/public/js/htmx-title.js +5 -5
- package/dashboard/public/js/sidebar-toggle.js +20 -20
- package/dashboard/src/app.js +78 -78
- package/dashboard/src/middleware/errorHandler.js +52 -52
- package/dashboard/src/middleware/notFoundHandler.js +9 -9
- package/dashboard/src/repositories/planning.repository.js +128 -128
- package/dashboard/src/routes/events.routes.js +40 -40
- package/dashboard/src/routes/index.routes.js +31 -31
- package/dashboard/src/routes/pages.routes.js +245 -195
- package/dashboard/src/server.js +42 -42
- package/dashboard/src/services/dashboard.service.js +222 -222
- package/dashboard/src/services/phase.service.js +220 -167
- package/dashboard/src/services/project.service.js +57 -57
- package/dashboard/src/services/roadmap.service.js +171 -171
- package/dashboard/src/services/sse.service.js +58 -58
- package/dashboard/src/services/todo.service.js +254 -254
- package/dashboard/src/services/watcher.service.js +48 -48
- package/dashboard/src/views/coming-soon.ejs +11 -11
- package/dashboard/src/views/error.ejs +13 -13
- package/dashboard/src/views/index.ejs +5 -5
- package/dashboard/src/views/layout.ejs +1 -1
- package/dashboard/src/views/partials/dashboard-content.ejs +77 -77
- package/dashboard/src/views/partials/footer.ejs +3 -3
- package/dashboard/src/views/partials/head.ejs +21 -21
- package/dashboard/src/views/partials/header.ejs +12 -12
- package/dashboard/src/views/partials/layout-bottom.ejs +15 -15
- package/dashboard/src/views/partials/layout-top.ejs +8 -8
- package/dashboard/src/views/partials/phase-content.ejs +188 -181
- package/dashboard/src/views/partials/phase-doc-content.ejs +38 -0
- package/dashboard/src/views/partials/phases-content.ejs +117 -117
- package/dashboard/src/views/partials/roadmap-content.ejs +142 -142
- package/dashboard/src/views/partials/sidebar.ejs +38 -38
- package/dashboard/src/views/partials/todo-create-content.ejs +53 -53
- package/dashboard/src/views/partials/todo-detail-content.ejs +38 -38
- package/dashboard/src/views/partials/todos-content.ejs +53 -53
- package/dashboard/src/views/phase-detail.ejs +5 -5
- package/dashboard/src/views/phase-doc.ejs +5 -0
- package/dashboard/src/views/phases.ejs +5 -5
- package/dashboard/src/views/roadmap.ejs +5 -5
- package/dashboard/src/views/todo-create.ejs +5 -5
- package/dashboard/src/views/todo-detail.ejs +5 -5
- package/dashboard/src/views/todos.ejs +5 -5
- package/package.json +57 -57
- package/plugins/pbr/.claude-plugin/plugin.json +13 -13
- package/plugins/pbr/UI-CONSISTENCY-GAPS.md +61 -61
- package/plugins/pbr/agents/codebase-mapper.md +279 -271
- package/plugins/pbr/agents/debugger.md +281 -281
- package/plugins/pbr/agents/executor.md +428 -407
- package/plugins/pbr/agents/general.md +164 -164
- package/plugins/pbr/agents/integration-checker.md +169 -141
- package/plugins/pbr/agents/plan-checker.md +296 -280
- package/plugins/pbr/agents/planner.md +358 -358
- package/plugins/pbr/agents/researcher.md +363 -363
- package/plugins/pbr/agents/synthesizer.md +230 -230
- package/plugins/pbr/agents/verifier.md +489 -454
- package/plugins/pbr/commands/begin.md +5 -5
- package/plugins/pbr/commands/build.md +5 -5
- package/plugins/pbr/commands/config.md +5 -5
- package/plugins/pbr/commands/continue.md +5 -5
- package/plugins/pbr/commands/debug.md +5 -5
- package/plugins/pbr/commands/discuss.md +5 -5
- package/plugins/pbr/commands/explore.md +5 -5
- package/plugins/pbr/commands/health.md +5 -5
- package/plugins/pbr/commands/help.md +5 -5
- package/plugins/pbr/commands/import.md +5 -5
- package/plugins/pbr/commands/milestone.md +5 -5
- package/plugins/pbr/commands/note.md +5 -5
- package/plugins/pbr/commands/pause.md +5 -5
- package/plugins/pbr/commands/plan.md +5 -5
- package/plugins/pbr/commands/quick.md +5 -5
- package/plugins/pbr/commands/resume.md +5 -5
- package/plugins/pbr/commands/review.md +5 -5
- package/plugins/pbr/commands/scan.md +5 -5
- package/plugins/pbr/commands/setup.md +5 -5
- package/plugins/pbr/commands/status.md +5 -5
- package/plugins/pbr/commands/todo.md +5 -5
- package/plugins/pbr/contexts/dev.md +27 -27
- package/plugins/pbr/contexts/research.md +28 -28
- package/plugins/pbr/contexts/review.md +36 -36
- package/plugins/pbr/hooks/hooks.json +183 -183
- package/plugins/pbr/references/agent-anti-patterns.md +24 -24
- package/plugins/pbr/references/agent-interactions.md +134 -134
- package/plugins/pbr/references/agent-teams.md +54 -54
- package/plugins/pbr/references/checkpoints.md +157 -157
- package/plugins/pbr/references/common-bug-patterns.md +13 -13
- package/plugins/pbr/references/config-reference.md +441 -0
- package/plugins/pbr/references/continuation-format.md +212 -212
- package/plugins/pbr/references/deviation-rules.md +112 -112
- package/plugins/pbr/references/git-integration.md +226 -226
- package/plugins/pbr/references/integration-patterns.md +117 -117
- package/plugins/pbr/references/model-profiles.md +99 -99
- package/plugins/pbr/references/model-selection.md +31 -31
- package/plugins/pbr/references/pbr-rules.md +193 -193
- package/plugins/pbr/references/plan-authoring.md +181 -181
- package/plugins/pbr/references/plan-format.md +287 -283
- package/plugins/pbr/references/planning-config.md +213 -213
- package/plugins/pbr/references/questioning.md +214 -214
- package/plugins/pbr/references/reading-verification.md +127 -127
- package/plugins/pbr/references/stub-patterns.md +160 -160
- package/plugins/pbr/references/subagent-coordination.md +119 -119
- package/plugins/pbr/references/ui-formatting.md +461 -399
- package/plugins/pbr/references/verification-patterns.md +198 -198
- package/plugins/pbr/references/wave-execution.md +95 -95
- package/plugins/pbr/scripts/auto-continue.js +80 -80
- package/plugins/pbr/scripts/check-dangerous-commands.js +136 -136
- package/plugins/pbr/scripts/check-doc-sprawl.js +102 -102
- package/plugins/pbr/scripts/check-phase-boundary.js +196 -196
- package/plugins/pbr/scripts/check-plan-format.js +270 -270
- package/plugins/pbr/scripts/check-roadmap-sync.js +322 -252
- package/plugins/pbr/scripts/check-skill-workflow.js +262 -262
- package/plugins/pbr/scripts/check-state-sync.js +476 -476
- package/plugins/pbr/scripts/check-subagent-output.js +144 -144
- package/plugins/pbr/scripts/config-schema.json +251 -251
- package/plugins/pbr/scripts/context-budget-check.js +287 -287
- package/plugins/pbr/scripts/event-handler.js +151 -151
- package/plugins/pbr/scripts/event-logger.js +92 -92
- package/plugins/pbr/scripts/hook-logger.js +80 -76
- package/plugins/pbr/scripts/hooks-schema.json +79 -79
- package/plugins/pbr/scripts/log-subagent.js +164 -152
- package/plugins/pbr/scripts/log-tool-failure.js +88 -88
- package/plugins/pbr/scripts/pbr-tools.js +1378 -1301
- package/plugins/pbr/scripts/post-write-dispatch.js +66 -66
- package/plugins/pbr/scripts/post-write-quality.js +207 -207
- package/plugins/pbr/scripts/pre-bash-dispatch.js +86 -56
- package/plugins/pbr/scripts/pre-write-dispatch.js +97 -62
- package/plugins/pbr/scripts/progress-tracker.js +281 -228
- package/plugins/pbr/scripts/run-hook.js +92 -0
- package/plugins/pbr/scripts/session-cleanup.js +254 -254
- package/plugins/pbr/scripts/status-line.js +288 -285
- package/plugins/pbr/scripts/suggest-compact.js +119 -119
- package/plugins/pbr/scripts/task-completed.js +45 -45
- package/plugins/pbr/scripts/track-context-budget.js +149 -119
- package/plugins/pbr/scripts/validate-commit.js +200 -200
- package/plugins/pbr/scripts/validate-plugin-structure.js +183 -172
- package/plugins/pbr/scripts/validate-task.js +106 -0
- package/plugins/pbr/skills/begin/SKILL.md +594 -545
- package/plugins/pbr/skills/begin/templates/PROJECT.md.tmpl +33 -33
- package/plugins/pbr/skills/begin/templates/REQUIREMENTS.md.tmpl +18 -18
- package/plugins/pbr/skills/begin/templates/STATE.md.tmpl +49 -49
- package/plugins/pbr/skills/begin/templates/config.json.tmpl +64 -63
- package/plugins/pbr/skills/begin/templates/researcher-prompt.md.tmpl +19 -19
- package/plugins/pbr/skills/begin/templates/roadmap-prompt.md.tmpl +30 -30
- package/plugins/pbr/skills/begin/templates/synthesis-prompt.md.tmpl +16 -16
- package/plugins/pbr/skills/build/SKILL.md +943 -962
- package/plugins/pbr/skills/config/SKILL.md +256 -241
- package/plugins/pbr/skills/continue/SKILL.md +164 -127
- package/plugins/pbr/skills/debug/SKILL.md +515 -489
- package/plugins/pbr/skills/debug/templates/continuation-prompt.md.tmpl +16 -16
- package/plugins/pbr/skills/debug/templates/initial-investigation-prompt.md.tmpl +27 -27
- package/plugins/pbr/skills/discuss/SKILL.md +347 -338
- package/plugins/pbr/skills/discuss/templates/CONTEXT.md.tmpl +61 -61
- package/plugins/pbr/skills/discuss/templates/decision-categories.md +9 -9
- package/plugins/pbr/skills/explore/SKILL.md +378 -362
- package/plugins/pbr/skills/health/SKILL.md +221 -186
- package/plugins/pbr/skills/health/templates/check-pattern.md.tmpl +30 -30
- package/plugins/pbr/skills/health/templates/output-format.md.tmpl +63 -63
- package/plugins/pbr/skills/help/SKILL.md +155 -140
- package/plugins/pbr/skills/import/SKILL.md +504 -490
- package/plugins/pbr/skills/milestone/SKILL.md +704 -673
- package/plugins/pbr/skills/milestone/templates/audit-report.md.tmpl +48 -48
- package/plugins/pbr/skills/milestone/templates/stats-file.md.tmpl +30 -30
- package/plugins/pbr/skills/note/SKILL.md +231 -212
- package/plugins/pbr/skills/pause/SKILL.md +249 -235
- package/plugins/pbr/skills/pause/templates/continue-here.md.tmpl +71 -71
- package/plugins/pbr/skills/plan/SKILL.md +685 -628
- package/plugins/pbr/skills/plan/decimal-phase-calc.md +98 -98
- package/plugins/pbr/skills/plan/templates/checker-prompt.md.tmpl +21 -21
- package/plugins/pbr/skills/plan/templates/gap-closure-prompt.md.tmpl +32 -32
- package/plugins/pbr/skills/plan/templates/planner-prompt.md.tmpl +38 -38
- package/plugins/pbr/skills/plan/templates/researcher-prompt.md.tmpl +19 -19
- package/plugins/pbr/skills/plan/templates/revision-prompt.md.tmpl +23 -23
- package/plugins/pbr/skills/quick/SKILL.md +354 -335
- package/plugins/pbr/skills/resume/SKILL.md +402 -388
- package/plugins/pbr/skills/review/SKILL.md +686 -652
- package/plugins/pbr/skills/review/templates/debugger-prompt.md.tmpl +60 -60
- package/plugins/pbr/skills/review/templates/gap-planner-prompt.md.tmpl +40 -40
- package/plugins/pbr/skills/review/templates/verifier-prompt.md.tmpl +115 -115
- package/plugins/pbr/skills/scan/SKILL.md +304 -269
- package/plugins/pbr/skills/scan/templates/mapper-prompt.md.tmpl +201 -201
- package/plugins/pbr/skills/setup/SKILL.md +253 -227
- package/plugins/pbr/skills/shared/commit-planning-docs.md +35 -35
- package/plugins/pbr/skills/shared/config-loading.md +102 -102
- package/plugins/pbr/skills/shared/context-budget.md +40 -40
- package/plugins/pbr/skills/shared/context-loader-task.md +86 -86
- package/plugins/pbr/skills/shared/digest-select.md +79 -79
- package/plugins/pbr/skills/shared/domain-probes.md +125 -125
- package/plugins/pbr/skills/shared/error-reporting.md +79 -79
- package/plugins/pbr/skills/shared/gate-prompts.md +388 -388
- package/plugins/pbr/skills/shared/phase-argument-parsing.md +45 -45
- package/plugins/pbr/skills/shared/progress-display.md +53 -53
- package/plugins/pbr/skills/shared/revision-loop.md +81 -81
- package/plugins/pbr/skills/shared/state-loading.md +62 -62
- package/plugins/pbr/skills/shared/state-update.md +161 -161
- package/plugins/pbr/skills/shared/universal-anti-patterns.md +33 -33
- package/plugins/pbr/skills/status/SKILL.md +367 -353
- package/plugins/pbr/skills/todo/SKILL.md +198 -181
- package/plugins/pbr/templates/CONTEXT.md.tmpl +52 -52
- package/plugins/pbr/templates/INTEGRATION-REPORT.md.tmpl +151 -151
- package/plugins/pbr/templates/RESEARCH-SUMMARY.md.tmpl +97 -97
- package/plugins/pbr/templates/ROADMAP.md.tmpl +40 -40
- package/plugins/pbr/templates/SUMMARY.md.tmpl +81 -81
- package/plugins/pbr/templates/VERIFICATION-DETAIL.md.tmpl +116 -116
- package/plugins/pbr/templates/codebase/ARCHITECTURE.md.tmpl +98 -98
- package/plugins/pbr/templates/codebase/CONCERNS.md.tmpl +93 -93
- package/plugins/pbr/templates/codebase/CONVENTIONS.md.tmpl +104 -104
- package/plugins/pbr/templates/codebase/INTEGRATIONS.md.tmpl +78 -78
- package/plugins/pbr/templates/codebase/STACK.md.tmpl +78 -78
- package/plugins/pbr/templates/codebase/STRUCTURE.md.tmpl +80 -80
- package/plugins/pbr/templates/codebase/TESTING.md.tmpl +107 -107
- package/plugins/pbr/templates/continue-here.md.tmpl +73 -73
- package/plugins/pbr/templates/prompt-partials/phase-project-context.md.tmpl +37 -37
- package/plugins/pbr/templates/research/ARCHITECTURE.md.tmpl +124 -124
- package/plugins/pbr/templates/research/STACK.md.tmpl +71 -71
- package/plugins/pbr/templates/research/SUMMARY.md.tmpl +112 -112
- package/plugins/pbr/templates/research-outputs/phase-research.md.tmpl +81 -81
- package/plugins/pbr/templates/research-outputs/project-research.md.tmpl +99 -99
- package/plugins/pbr/templates/research-outputs/synthesis.md.tmpl +36 -36
|
@@ -1,212 +1,212 @@
|
|
|
1
|
-
# Continuation Protocol
|
|
2
|
-
|
|
3
|
-
How to spawn a fresh executor agent to continue from a checkpoint or partial completion.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Why Fresh Agents
|
|
8
|
-
|
|
9
|
-
When an executor hits a checkpoint, it STOPS and returns. A new, fresh agent must be spawned to continue because:
|
|
10
|
-
1. The checkpoint may require user input that changes the execution path
|
|
11
|
-
2. Context isolation prevents accumulated state from causing issues
|
|
12
|
-
3. Fresh agents have full context budget for remaining work
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## Lean Continuation State File
|
|
17
|
-
|
|
18
|
-
Instead of inlining all prior context into the continuation prompt, the build skill writes a compact state file to disk. The continuation executor reads this file + the original PLAN.md, keeping the prompt lean.
|
|
19
|
-
|
|
20
|
-
### File Location
|
|
21
|
-
|
|
22
|
-
```
|
|
23
|
-
.planning/phases/{NN}-{slug}/.continuation-state.json
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
### Schema
|
|
27
|
-
|
|
28
|
-
```json
|
|
29
|
-
{
|
|
30
|
-
"plan_id": "02-01",
|
|
31
|
-
"completed_tasks": [
|
|
32
|
-
{
|
|
33
|
-
"id": "02-01-T1",
|
|
34
|
-
"commit": "abc1234",
|
|
35
|
-
"files": ["src/auth/discord.ts", "src/auth/types.ts"]
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
"id": "02-01-T2",
|
|
39
|
-
"commit": "def5678",
|
|
40
|
-
"files": ["src/middleware/auth.ts"]
|
|
41
|
-
}
|
|
42
|
-
],
|
|
43
|
-
"checkpoint": {
|
|
44
|
-
"task": "02-01-T3",
|
|
45
|
-
"type": "human-verify",
|
|
46
|
-
"resolution": "passed"
|
|
47
|
-
},
|
|
48
|
-
"resume_at": "02-01-T3"
|
|
49
|
-
}
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### Fields
|
|
53
|
-
|
|
54
|
-
| Field | Type | Description |
|
|
55
|
-
|-------|------|-------------|
|
|
56
|
-
| `plan_id` | string | The plan being executed |
|
|
57
|
-
| `completed_tasks` | array | Tasks completed before checkpoint. Each has `id`, `commit` hash, and `files` changed. |
|
|
58
|
-
| `checkpoint` | object | The checkpoint that triggered continuation. `task` = task ID, `type` = checkpoint type, `resolution` = user's response. |
|
|
59
|
-
| `resume_at` | string | Task ID to resume execution from |
|
|
60
|
-
|
|
61
|
-
### How the Build Skill Uses It
|
|
62
|
-
|
|
63
|
-
**Writing** (when executor hits a checkpoint):
|
|
64
|
-
1. Executor returns checkpoint info to the build orchestrator
|
|
65
|
-
2. Build orchestrator writes `.continuation-state.json` with completed tasks, checkpoint details, and resume point
|
|
66
|
-
3. Build orchestrator prompts user for checkpoint resolution
|
|
67
|
-
4. Build orchestrator updates `checkpoint.resolution` with user's response
|
|
68
|
-
|
|
69
|
-
**Reading** (when spawning continuation executor):
|
|
70
|
-
1. Build orchestrator reads `.continuation-state.json` from disk
|
|
71
|
-
2. Build orchestrator reads the original PLAN.md from disk
|
|
72
|
-
3. Build orchestrator constructs a lean continuation prompt referencing both files
|
|
73
|
-
4. Continuation executor reads `.continuation-state.json` itself to verify prior commits
|
|
74
|
-
|
|
75
|
-
This approach replaces inlining the full completed-tasks table into the prompt, saving significant context budget on plans with many tasks or multiple checkpoints.
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
## Continuation Context Structure
|
|
80
|
-
|
|
81
|
-
The continuation prompt must include:
|
|
82
|
-
|
|
83
|
-
### 1. Completed Tasks Table
|
|
84
|
-
|
|
85
|
-
A table of all tasks completed before the checkpoint, with their commit hashes:
|
|
86
|
-
|
|
87
|
-
```markdown
|
|
88
|
-
| Task ID | Task Name | Commit | Files Changed | Status |
|
|
89
|
-
|---------|-----------|--------|---------------|--------|
|
|
90
|
-
| 02-01-T1 | Create auth module | abc1234 | src/auth/discord.ts, src/auth/types.ts | complete |
|
|
91
|
-
| 02-01-T2 | Add auth middleware | def5678 | src/middleware/auth.ts | complete |
|
|
92
|
-
| 02-01-T3 | Wire OAuth callback | — | — | checkpoint |
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### 2. Resume Task Number
|
|
96
|
-
|
|
97
|
-
Which task to resume from:
|
|
98
|
-
- If the checkpoint task needs to be RE-EXECUTED with user input: resume at the checkpoint task
|
|
99
|
-
- If the checkpoint task was completed and the next task is blocked: resume at the NEXT task
|
|
100
|
-
|
|
101
|
-
### 3. User Response
|
|
102
|
-
|
|
103
|
-
The user's response to the checkpoint:
|
|
104
|
-
- For `decision`: which option they chose
|
|
105
|
-
- For `human-verify`: whether they passed or failed each item
|
|
106
|
-
- For `human-action`: confirmation that the action was taken
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
## Continuation Prompt Template
|
|
111
|
-
|
|
112
|
-
```
|
|
113
|
-
You are the executor agent. Continue executing a plan from a checkpoint.
|
|
114
|
-
|
|
115
|
-
<plan>
|
|
116
|
-
[Inline the FULL PLAN.md content — all tasks, not just remaining ones]
|
|
117
|
-
</plan>
|
|
118
|
-
|
|
119
|
-
<completed_tasks>
|
|
120
|
-
The following tasks have already been completed. DO NOT re-execute them.
|
|
121
|
-
Verify their commits exist before proceeding.
|
|
122
|
-
|
|
123
|
-
| Task ID | Task Name | Commit | Status |
|
|
124
|
-
|---------|-----------|--------|--------|
|
|
125
|
-
| {id} | {name} | {hash} | complete |
|
|
126
|
-
| {id} | {name} | {hash} | complete |
|
|
127
|
-
| {id} | {name} | — | checkpoint |
|
|
128
|
-
</completed_tasks>
|
|
129
|
-
|
|
130
|
-
<checkpoint_resolution>
|
|
131
|
-
Checkpoint type: {human-verify | decision | human-action | architectural-change}
|
|
132
|
-
User response: {the user's response to the checkpoint}
|
|
133
|
-
|
|
134
|
-
{For decision: "User chose Option {X}: {description}"}
|
|
135
|
-
{For human-verify: "User confirmed: {pass/fail per item}"}
|
|
136
|
-
{For human-action: "User confirms action completed: {what they did}"}
|
|
137
|
-
{For architectural-change: "User approved approach: {new approach}"}
|
|
138
|
-
</checkpoint_resolution>
|
|
139
|
-
|
|
140
|
-
<resume_instructions>
|
|
141
|
-
Resume execution at Task {N}.
|
|
142
|
-
{If checkpoint task should be re-executed: "Re-execute Task {N} with the user's input."}
|
|
143
|
-
{If checkpoint task is done: "Skip Task {N} and continue from Task {N+1}."}
|
|
144
|
-
</resume_instructions>
|
|
145
|
-
|
|
146
|
-
<project_context>
|
|
147
|
-
[Same project context as original spawn — config, CONTEXT.md, STATE.md]
|
|
148
|
-
</project_context>
|
|
149
|
-
|
|
150
|
-
<prior_work_this_phase>
|
|
151
|
-
[Include all SUMMARY.md files from other completed plans in this phase]
|
|
152
|
-
</prior_work_this_phase>
|
|
153
|
-
|
|
154
|
-
Instructions:
|
|
155
|
-
1. Verify completed task commits exist: git log --oneline -n {count}
|
|
156
|
-
2. If commits are missing, STOP and return error
|
|
157
|
-
3. Resume execution at Task {N}
|
|
158
|
-
4. Create atomic commits for each remaining task
|
|
159
|
-
5. Write SUMMARY.md when complete (include ALL tasks — completed and newly executed)
|
|
160
|
-
6. Run self-check
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
## Verification Before Resuming
|
|
166
|
-
|
|
167
|
-
The continuation agent MUST verify prior work before continuing:
|
|
168
|
-
|
|
169
|
-
```bash
|
|
170
|
-
# Check that expected commits exist
|
|
171
|
-
git log --oneline -n {expected_commit_count}
|
|
172
|
-
|
|
173
|
-
# Check that expected files exist
|
|
174
|
-
ls -la {each file from completed tasks}
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
If verification fails:
|
|
178
|
-
- STOP immediately
|
|
179
|
-
- Report which commits/files are missing
|
|
180
|
-
- DO NOT attempt to re-create them (that's the orchestrator's job)
|
|
181
|
-
|
|
182
|
-
---
|
|
183
|
-
|
|
184
|
-
## SUMMARY.md for Continued Plans
|
|
185
|
-
|
|
186
|
-
The final SUMMARY.md must include ALL tasks — both pre-checkpoint and post-checkpoint:
|
|
187
|
-
|
|
188
|
-
```markdown
|
|
189
|
-
## Task Results
|
|
190
|
-
|
|
191
|
-
### Task 1: {name}
|
|
192
|
-
- **Commit**: `{hash}` - {message}
|
|
193
|
-
- **Status**: complete (pre-checkpoint)
|
|
194
|
-
|
|
195
|
-
### Task 2: {name}
|
|
196
|
-
- **Commit**: `{hash}` - {message}
|
|
197
|
-
- **Status**: complete (pre-checkpoint)
|
|
198
|
-
|
|
199
|
-
### Task 3: {name} (checkpoint: {type})
|
|
200
|
-
- **Checkpoint resolution**: {user response}
|
|
201
|
-
- **Commit**: `{hash}` - {message}
|
|
202
|
-
- **Status**: complete (post-checkpoint)
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
---
|
|
206
|
-
|
|
207
|
-
## Multiple Checkpoints
|
|
208
|
-
|
|
209
|
-
If a plan has multiple checkpoint tasks:
|
|
210
|
-
- Each checkpoint requires a separate continuation agent spawn
|
|
211
|
-
- The completed_tasks table grows with each continuation
|
|
212
|
-
- Each continuation verifies ALL prior commits, not just the most recent
|
|
1
|
+
# Continuation Protocol
|
|
2
|
+
|
|
3
|
+
How to spawn a fresh executor agent to continue from a checkpoint or partial completion.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Why Fresh Agents
|
|
8
|
+
|
|
9
|
+
When an executor hits a checkpoint, it STOPS and returns. A new, fresh agent must be spawned to continue because:
|
|
10
|
+
1. The checkpoint may require user input that changes the execution path
|
|
11
|
+
2. Context isolation prevents accumulated state from causing issues
|
|
12
|
+
3. Fresh agents have full context budget for remaining work
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Lean Continuation State File
|
|
17
|
+
|
|
18
|
+
Instead of inlining all prior context into the continuation prompt, the build skill writes a compact state file to disk. The continuation executor reads this file + the original PLAN.md, keeping the prompt lean.
|
|
19
|
+
|
|
20
|
+
### File Location
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
.planning/phases/{NN}-{slug}/.continuation-state.json
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Schema
|
|
27
|
+
|
|
28
|
+
```json
|
|
29
|
+
{
|
|
30
|
+
"plan_id": "02-01",
|
|
31
|
+
"completed_tasks": [
|
|
32
|
+
{
|
|
33
|
+
"id": "02-01-T1",
|
|
34
|
+
"commit": "abc1234",
|
|
35
|
+
"files": ["src/auth/discord.ts", "src/auth/types.ts"]
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"id": "02-01-T2",
|
|
39
|
+
"commit": "def5678",
|
|
40
|
+
"files": ["src/middleware/auth.ts"]
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"checkpoint": {
|
|
44
|
+
"task": "02-01-T3",
|
|
45
|
+
"type": "human-verify",
|
|
46
|
+
"resolution": "passed"
|
|
47
|
+
},
|
|
48
|
+
"resume_at": "02-01-T3"
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Fields
|
|
53
|
+
|
|
54
|
+
| Field | Type | Description |
|
|
55
|
+
|-------|------|-------------|
|
|
56
|
+
| `plan_id` | string | The plan being executed |
|
|
57
|
+
| `completed_tasks` | array | Tasks completed before checkpoint. Each has `id`, `commit` hash, and `files` changed. |
|
|
58
|
+
| `checkpoint` | object | The checkpoint that triggered continuation. `task` = task ID, `type` = checkpoint type, `resolution` = user's response. |
|
|
59
|
+
| `resume_at` | string | Task ID to resume execution from |
|
|
60
|
+
|
|
61
|
+
### How the Build Skill Uses It
|
|
62
|
+
|
|
63
|
+
**Writing** (when executor hits a checkpoint):
|
|
64
|
+
1. Executor returns checkpoint info to the build orchestrator
|
|
65
|
+
2. Build orchestrator writes `.continuation-state.json` with completed tasks, checkpoint details, and resume point
|
|
66
|
+
3. Build orchestrator prompts user for checkpoint resolution
|
|
67
|
+
4. Build orchestrator updates `checkpoint.resolution` with user's response
|
|
68
|
+
|
|
69
|
+
**Reading** (when spawning continuation executor):
|
|
70
|
+
1. Build orchestrator reads `.continuation-state.json` from disk
|
|
71
|
+
2. Build orchestrator reads the original PLAN.md from disk
|
|
72
|
+
3. Build orchestrator constructs a lean continuation prompt referencing both files
|
|
73
|
+
4. Continuation executor reads `.continuation-state.json` itself to verify prior commits
|
|
74
|
+
|
|
75
|
+
This approach replaces inlining the full completed-tasks table into the prompt, saving significant context budget on plans with many tasks or multiple checkpoints.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Continuation Context Structure
|
|
80
|
+
|
|
81
|
+
The continuation prompt must include:
|
|
82
|
+
|
|
83
|
+
### 1. Completed Tasks Table
|
|
84
|
+
|
|
85
|
+
A table of all tasks completed before the checkpoint, with their commit hashes:
|
|
86
|
+
|
|
87
|
+
```markdown
|
|
88
|
+
| Task ID | Task Name | Commit | Files Changed | Status |
|
|
89
|
+
|---------|-----------|--------|---------------|--------|
|
|
90
|
+
| 02-01-T1 | Create auth module | abc1234 | src/auth/discord.ts, src/auth/types.ts | complete |
|
|
91
|
+
| 02-01-T2 | Add auth middleware | def5678 | src/middleware/auth.ts | complete |
|
|
92
|
+
| 02-01-T3 | Wire OAuth callback | — | — | checkpoint |
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 2. Resume Task Number
|
|
96
|
+
|
|
97
|
+
Which task to resume from:
|
|
98
|
+
- If the checkpoint task needs to be RE-EXECUTED with user input: resume at the checkpoint task
|
|
99
|
+
- If the checkpoint task was completed and the next task is blocked: resume at the NEXT task
|
|
100
|
+
|
|
101
|
+
### 3. User Response
|
|
102
|
+
|
|
103
|
+
The user's response to the checkpoint:
|
|
104
|
+
- For `decision`: which option they chose
|
|
105
|
+
- For `human-verify`: whether they passed or failed each item
|
|
106
|
+
- For `human-action`: confirmation that the action was taken
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Continuation Prompt Template
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
You are the executor agent. Continue executing a plan from a checkpoint.
|
|
114
|
+
|
|
115
|
+
<plan>
|
|
116
|
+
[Inline the FULL PLAN.md content — all tasks, not just remaining ones]
|
|
117
|
+
</plan>
|
|
118
|
+
|
|
119
|
+
<completed_tasks>
|
|
120
|
+
The following tasks have already been completed. DO NOT re-execute them.
|
|
121
|
+
Verify their commits exist before proceeding.
|
|
122
|
+
|
|
123
|
+
| Task ID | Task Name | Commit | Status |
|
|
124
|
+
|---------|-----------|--------|--------|
|
|
125
|
+
| {id} | {name} | {hash} | complete |
|
|
126
|
+
| {id} | {name} | {hash} | complete |
|
|
127
|
+
| {id} | {name} | — | checkpoint |
|
|
128
|
+
</completed_tasks>
|
|
129
|
+
|
|
130
|
+
<checkpoint_resolution>
|
|
131
|
+
Checkpoint type: {human-verify | decision | human-action | architectural-change}
|
|
132
|
+
User response: {the user's response to the checkpoint}
|
|
133
|
+
|
|
134
|
+
{For decision: "User chose Option {X}: {description}"}
|
|
135
|
+
{For human-verify: "User confirmed: {pass/fail per item}"}
|
|
136
|
+
{For human-action: "User confirms action completed: {what they did}"}
|
|
137
|
+
{For architectural-change: "User approved approach: {new approach}"}
|
|
138
|
+
</checkpoint_resolution>
|
|
139
|
+
|
|
140
|
+
<resume_instructions>
|
|
141
|
+
Resume execution at Task {N}.
|
|
142
|
+
{If checkpoint task should be re-executed: "Re-execute Task {N} with the user's input."}
|
|
143
|
+
{If checkpoint task is done: "Skip Task {N} and continue from Task {N+1}."}
|
|
144
|
+
</resume_instructions>
|
|
145
|
+
|
|
146
|
+
<project_context>
|
|
147
|
+
[Same project context as original spawn — config, CONTEXT.md, STATE.md]
|
|
148
|
+
</project_context>
|
|
149
|
+
|
|
150
|
+
<prior_work_this_phase>
|
|
151
|
+
[Include all SUMMARY.md files from other completed plans in this phase]
|
|
152
|
+
</prior_work_this_phase>
|
|
153
|
+
|
|
154
|
+
Instructions:
|
|
155
|
+
1. Verify completed task commits exist: git log --oneline -n {count}
|
|
156
|
+
2. If commits are missing, STOP and return error
|
|
157
|
+
3. Resume execution at Task {N}
|
|
158
|
+
4. Create atomic commits for each remaining task
|
|
159
|
+
5. Write SUMMARY.md when complete (include ALL tasks — completed and newly executed)
|
|
160
|
+
6. Run self-check
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## Verification Before Resuming
|
|
166
|
+
|
|
167
|
+
The continuation agent MUST verify prior work before continuing:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
# Check that expected commits exist
|
|
171
|
+
git log --oneline -n {expected_commit_count}
|
|
172
|
+
|
|
173
|
+
# Check that expected files exist
|
|
174
|
+
ls -la {each file from completed tasks}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
If verification fails:
|
|
178
|
+
- STOP immediately
|
|
179
|
+
- Report which commits/files are missing
|
|
180
|
+
- DO NOT attempt to re-create them (that's the orchestrator's job)
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## SUMMARY.md for Continued Plans
|
|
185
|
+
|
|
186
|
+
The final SUMMARY.md must include ALL tasks — both pre-checkpoint and post-checkpoint:
|
|
187
|
+
|
|
188
|
+
```markdown
|
|
189
|
+
## Task Results
|
|
190
|
+
|
|
191
|
+
### Task 1: {name}
|
|
192
|
+
- **Commit**: `{hash}` - {message}
|
|
193
|
+
- **Status**: complete (pre-checkpoint)
|
|
194
|
+
|
|
195
|
+
### Task 2: {name}
|
|
196
|
+
- **Commit**: `{hash}` - {message}
|
|
197
|
+
- **Status**: complete (pre-checkpoint)
|
|
198
|
+
|
|
199
|
+
### Task 3: {name} (checkpoint: {type})
|
|
200
|
+
- **Checkpoint resolution**: {user response}
|
|
201
|
+
- **Commit**: `{hash}` - {message}
|
|
202
|
+
- **Status**: complete (post-checkpoint)
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## Multiple Checkpoints
|
|
208
|
+
|
|
209
|
+
If a plan has multiple checkpoint tasks:
|
|
210
|
+
- Each checkpoint requires a separate continuation agent spawn
|
|
211
|
+
- The completed_tasks table grows with each continuation
|
|
212
|
+
- Each continuation verifies ALL prior commits, not just the most recent
|
|
@@ -1,112 +1,112 @@
|
|
|
1
|
-
# Deviation Rules
|
|
2
|
-
|
|
3
|
-
When execution doesn't go exactly as planned, these 5 rules govern what the executor can do on its own versus what requires user approval.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Rule 1: Bug Discovered
|
|
8
|
-
|
|
9
|
-
**Trigger**: Verify command fails due to a bug in the code just written.
|
|
10
|
-
|
|
11
|
-
**Action**: Auto-fix the bug, re-run verify. If it passes, commit as normal. Note the bug and fix in SUMMARY.md under "Deviations".
|
|
12
|
-
|
|
13
|
-
**Limit**: 3 fix attempts maximum. After 3 failures, STOP and return error with failing verify output.
|
|
14
|
-
|
|
15
|
-
**Approval needed**: No
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## Rule 2: Missing Dependency
|
|
20
|
-
|
|
21
|
-
**Trigger**: Action or verify fails because a package/dependency is not installed.
|
|
22
|
-
|
|
23
|
-
**Action**: Auto-install the dependency using the project's package manager. Continue execution.
|
|
24
|
-
|
|
25
|
-
**Commit**: Include dependency installation in the task's commit (e.g., package.json, package-lock.json changes).
|
|
26
|
-
|
|
27
|
-
**Limit**: Only install dependencies directly referenced in the plan's `<action>` or clearly required by the code being written. Do NOT install "nice-to-have" packages.
|
|
28
|
-
|
|
29
|
-
**Approval needed**: No
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
## Rule 3: Critical Gap
|
|
34
|
-
|
|
35
|
-
**Trigger**: While implementing, a critical gap is noticed that would cause runtime errors — missing error handling, null checks, input validation for security.
|
|
36
|
-
|
|
37
|
-
**Action**: Add the minimal necessary code. Note it in SUMMARY.md under "Deviations".
|
|
38
|
-
|
|
39
|
-
**Limit**: This is for preventing crashes and security holes ONLY. Not for adding features, improving UX, or refactoring.
|
|
40
|
-
|
|
41
|
-
**Examples of valid critical gaps**:
|
|
42
|
-
- Missing null check that would cause runtime crash
|
|
43
|
-
- Unhandled promise rejection
|
|
44
|
-
- SQL injection vulnerability
|
|
45
|
-
- Missing input sanitization
|
|
46
|
-
- Missing error boundary
|
|
47
|
-
|
|
48
|
-
**Examples that are NOT critical gaps (use Rule 5 instead)**:
|
|
49
|
-
- Better error messages
|
|
50
|
-
- Input validation for UX (e.g., email format)
|
|
51
|
-
- Performance optimization
|
|
52
|
-
- Code organization improvements
|
|
53
|
-
|
|
54
|
-
**Approval needed**: No
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
## Rule 4: Architectural Change
|
|
59
|
-
|
|
60
|
-
**Trigger**: The plan's approach won't work as specified. The architecture needs to change. A fundamental assumption was wrong.
|
|
61
|
-
|
|
62
|
-
**Action**: STOP immediately. Return a checkpoint-style response describing:
|
|
63
|
-
- What the plan says to do
|
|
64
|
-
- Why it won't work
|
|
65
|
-
- What the alternative would be
|
|
66
|
-
- Which tasks are affected
|
|
67
|
-
|
|
68
|
-
**DO NOT** make architectural changes without approval. DO NOT try to "make it work" with hacks.
|
|
69
|
-
|
|
70
|
-
**Examples**:
|
|
71
|
-
- Plan says to use library X, but it doesn't support the required feature
|
|
72
|
-
- Plan assumes a REST API, but the service only has GraphQL
|
|
73
|
-
- Plan's database schema won't support the required queries
|
|
74
|
-
- Plan's authentication approach conflicts with the framework
|
|
75
|
-
|
|
76
|
-
**Approval needed**: YES — full stop, present to user
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## Rule 5: Scope Creep
|
|
81
|
-
|
|
82
|
-
**Trigger**: While implementing, something is noticed that would be nice to have, could be improved, or is related but not in the plan.
|
|
83
|
-
|
|
84
|
-
**Action**: Log it in SUMMARY.md under "Deferred Ideas". DO NOT implement it. Continue with the plan as written.
|
|
85
|
-
|
|
86
|
-
**Examples**:
|
|
87
|
-
- "This could use caching" -> Deferred
|
|
88
|
-
- "The error messages could be better" -> Deferred
|
|
89
|
-
- "This should have pagination" -> Deferred
|
|
90
|
-
- "The existing code has a bug unrelated to this plan" -> Deferred (unless it blocks the plan)
|
|
91
|
-
- "This API should have rate limiting" -> Deferred
|
|
92
|
-
- "The UI could use loading states" -> Deferred
|
|
93
|
-
|
|
94
|
-
**Approval needed**: No (just log and continue)
|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
|
|
98
|
-
## Decision Tree
|
|
99
|
-
|
|
100
|
-
```
|
|
101
|
-
Execution deviates from plan
|
|
102
|
-
|
|
|
103
|
-
├─ Code bug? ──────────────── Rule 1: Auto-fix (3 attempts)
|
|
104
|
-
|
|
|
105
|
-
├─ Missing package? ──────── Rule 2: Auto-install
|
|
106
|
-
|
|
|
107
|
-
├─ Security/crash risk? ──── Rule 3: Minimal fix + note
|
|
108
|
-
|
|
|
109
|
-
├─ Architecture wrong? ───── Rule 4: STOP + checkpoint
|
|
110
|
-
|
|
|
111
|
-
└─ Nice to have? ─────────── Rule 5: Log + continue
|
|
112
|
-
```
|
|
1
|
+
# Deviation Rules
|
|
2
|
+
|
|
3
|
+
When execution doesn't go exactly as planned, these 5 rules govern what the executor can do on its own versus what requires user approval.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Rule 1: Bug Discovered
|
|
8
|
+
|
|
9
|
+
**Trigger**: Verify command fails due to a bug in the code just written.
|
|
10
|
+
|
|
11
|
+
**Action**: Auto-fix the bug, re-run verify. If it passes, commit as normal. Note the bug and fix in SUMMARY.md under "Deviations".
|
|
12
|
+
|
|
13
|
+
**Limit**: 3 fix attempts maximum. After 3 failures, STOP and return error with failing verify output.
|
|
14
|
+
|
|
15
|
+
**Approval needed**: No
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Rule 2: Missing Dependency
|
|
20
|
+
|
|
21
|
+
**Trigger**: Action or verify fails because a package/dependency is not installed.
|
|
22
|
+
|
|
23
|
+
**Action**: Auto-install the dependency using the project's package manager. Continue execution.
|
|
24
|
+
|
|
25
|
+
**Commit**: Include dependency installation in the task's commit (e.g., package.json, package-lock.json changes).
|
|
26
|
+
|
|
27
|
+
**Limit**: Only install dependencies directly referenced in the plan's `<action>` or clearly required by the code being written. Do NOT install "nice-to-have" packages.
|
|
28
|
+
|
|
29
|
+
**Approval needed**: No
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Rule 3: Critical Gap
|
|
34
|
+
|
|
35
|
+
**Trigger**: While implementing, a critical gap is noticed that would cause runtime errors — missing error handling, null checks, input validation for security.
|
|
36
|
+
|
|
37
|
+
**Action**: Add the minimal necessary code. Note it in SUMMARY.md under "Deviations".
|
|
38
|
+
|
|
39
|
+
**Limit**: This is for preventing crashes and security holes ONLY. Not for adding features, improving UX, or refactoring.
|
|
40
|
+
|
|
41
|
+
**Examples of valid critical gaps**:
|
|
42
|
+
- Missing null check that would cause runtime crash
|
|
43
|
+
- Unhandled promise rejection
|
|
44
|
+
- SQL injection vulnerability
|
|
45
|
+
- Missing input sanitization
|
|
46
|
+
- Missing error boundary
|
|
47
|
+
|
|
48
|
+
**Examples that are NOT critical gaps (use Rule 5 instead)**:
|
|
49
|
+
- Better error messages
|
|
50
|
+
- Input validation for UX (e.g., email format)
|
|
51
|
+
- Performance optimization
|
|
52
|
+
- Code organization improvements
|
|
53
|
+
|
|
54
|
+
**Approval needed**: No
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Rule 4: Architectural Change
|
|
59
|
+
|
|
60
|
+
**Trigger**: The plan's approach won't work as specified. The architecture needs to change. A fundamental assumption was wrong.
|
|
61
|
+
|
|
62
|
+
**Action**: STOP immediately. Return a checkpoint-style response describing:
|
|
63
|
+
- What the plan says to do
|
|
64
|
+
- Why it won't work
|
|
65
|
+
- What the alternative would be
|
|
66
|
+
- Which tasks are affected
|
|
67
|
+
|
|
68
|
+
**DO NOT** make architectural changes without approval. DO NOT try to "make it work" with hacks.
|
|
69
|
+
|
|
70
|
+
**Examples**:
|
|
71
|
+
- Plan says to use library X, but it doesn't support the required feature
|
|
72
|
+
- Plan assumes a REST API, but the service only has GraphQL
|
|
73
|
+
- Plan's database schema won't support the required queries
|
|
74
|
+
- Plan's authentication approach conflicts with the framework
|
|
75
|
+
|
|
76
|
+
**Approval needed**: YES — full stop, present to user
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Rule 5: Scope Creep
|
|
81
|
+
|
|
82
|
+
**Trigger**: While implementing, something is noticed that would be nice to have, could be improved, or is related but not in the plan.
|
|
83
|
+
|
|
84
|
+
**Action**: Log it in SUMMARY.md under "Deferred Ideas". DO NOT implement it. Continue with the plan as written.
|
|
85
|
+
|
|
86
|
+
**Examples**:
|
|
87
|
+
- "This could use caching" -> Deferred
|
|
88
|
+
- "The error messages could be better" -> Deferred
|
|
89
|
+
- "This should have pagination" -> Deferred
|
|
90
|
+
- "The existing code has a bug unrelated to this plan" -> Deferred (unless it blocks the plan)
|
|
91
|
+
- "This API should have rate limiting" -> Deferred
|
|
92
|
+
- "The UI could use loading states" -> Deferred
|
|
93
|
+
|
|
94
|
+
**Approval needed**: No (just log and continue)
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Decision Tree
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
Execution deviates from plan
|
|
102
|
+
|
|
|
103
|
+
├─ Code bug? ──────────────── Rule 1: Auto-fix (3 attempts)
|
|
104
|
+
|
|
|
105
|
+
├─ Missing package? ──────── Rule 2: Auto-install
|
|
106
|
+
|
|
|
107
|
+
├─ Security/crash risk? ──── Rule 3: Minimal fix + note
|
|
108
|
+
|
|
|
109
|
+
├─ Architecture wrong? ───── Rule 4: STOP + checkpoint
|
|
110
|
+
|
|
|
111
|
+
└─ Nice to have? ─────────── Rule 5: Log + continue
|
|
112
|
+
```
|