@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,157 +1,157 @@
|
|
|
1
|
-
# Checkpoints Reference
|
|
2
|
-
|
|
3
|
-
How Plan-Build-Run uses checkpoint tasks to pause execution and involve the human.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## What Are Checkpoints?
|
|
8
|
-
|
|
9
|
-
Checkpoints are special task types that cause the executor agent to **stop execution** and return control to the orchestrator (or the human). They exist because some tasks require human judgment, manual action, or verification that cannot be automated.
|
|
10
|
-
|
|
11
|
-
Checkpoints are defined in plan task XML via the `type` attribute. When the executor encounters a checkpoint task, it follows a specific protocol depending on the checkpoint type.
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## Checkpoint Types
|
|
16
|
-
|
|
17
|
-
Plan-Build-Run supports three checkpoint types:
|
|
18
|
-
|
|
19
|
-
### checkpoint:human-verify
|
|
20
|
-
|
|
21
|
-
**Purpose**: The executor has completed work, but a human needs to visually inspect or manually test the result before proceeding.
|
|
22
|
-
|
|
23
|
-
**Executor behavior**:
|
|
24
|
-
1. Execute the task's `<action>` steps normally
|
|
25
|
-
2. Commit the changes
|
|
26
|
-
3. **STOP execution**
|
|
27
|
-
4. Return a structured `CHECKPOINT: HUMAN-VERIFY` response containing:
|
|
28
|
-
- What was done (summary of action taken)
|
|
29
|
-
- What to verify (from the task's `<done>` condition)
|
|
30
|
-
- How to verify (instructions derived from `<verify>`)
|
|
31
|
-
- Completed tasks table
|
|
32
|
-
- Remaining tasks list
|
|
33
|
-
|
|
34
|
-
**Use when**: The result requires subjective judgment (UI looks correct, behavior feels right, output makes sense) that automated verification cannot cover.
|
|
35
|
-
|
|
36
|
-
**Example scenario**: A template was created and needs visual review in the browser, or an API integration needs manual testing with real credentials.
|
|
37
|
-
|
|
38
|
-
### checkpoint:decision
|
|
39
|
-
|
|
40
|
-
**Purpose**: The plan reaches a point where a human decision is needed before the executor can continue. The task is NOT executed — execution pauses before the task starts.
|
|
41
|
-
|
|
42
|
-
**Executor behavior**:
|
|
43
|
-
1. **STOP before executing the task**
|
|
44
|
-
2. Return a structured `CHECKPOINT: DECISION` response containing:
|
|
45
|
-
- The decision that needs to be made (from `<action>`)
|
|
46
|
-
- Available options
|
|
47
|
-
- Context to help the human decide
|
|
48
|
-
- Completed tasks table
|
|
49
|
-
|
|
50
|
-
**Use when**: The plan has a fork point where different approaches are possible and the right choice depends on human preference, business context, or information the planner could not determine.
|
|
51
|
-
|
|
52
|
-
**Example scenario**: Choosing between two authentication providers, deciding whether to use a specific third-party library or build in-house.
|
|
53
|
-
|
|
54
|
-
### checkpoint:human-action
|
|
55
|
-
|
|
56
|
-
**Purpose**: The task requires something the executor cannot do — a manual step that involves the human interacting with external systems, creating accounts, or performing physical actions.
|
|
57
|
-
|
|
58
|
-
**Executor behavior**:
|
|
59
|
-
1. **STOP before executing the task**
|
|
60
|
-
2. Return a structured `CHECKPOINT: HUMAN-ACTION` response containing:
|
|
61
|
-
- What the human needs to do (from `<action>`)
|
|
62
|
-
- Step-by-step instructions
|
|
63
|
-
- Prompt to tell the executor when done
|
|
64
|
-
- Completed tasks table
|
|
65
|
-
|
|
66
|
-
**Use when**: External setup is required — creating API keys, configuring DNS, setting up OAuth applications, or any action that requires credentials or permissions the agent does not have.
|
|
67
|
-
|
|
68
|
-
**Example scenario**: The human needs to create a Discord application in the Developer Portal and paste the client ID and secret into `.env`.
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## Checkpoint in Plan Format
|
|
73
|
-
|
|
74
|
-
Checkpoints are declared in the task's `type` attribute in the plan XML:
|
|
75
|
-
|
|
76
|
-
```xml
|
|
77
|
-
<task id="02-01-T3" type="checkpoint:human-verify" tdd="false">
|
|
78
|
-
<name>Verify OAuth login flow in browser</name>
|
|
79
|
-
<files>...</files>
|
|
80
|
-
<action>...</action>
|
|
81
|
-
<verify>Open browser to localhost:3000/auth/login and complete the flow</verify>
|
|
82
|
-
<done>User can log in via Discord OAuth and see their profile</done>
|
|
83
|
-
</task>
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
Valid checkpoint type values:
|
|
87
|
-
- `checkpoint:human-verify`
|
|
88
|
-
- `checkpoint:decision`
|
|
89
|
-
- `checkpoint:human-action`
|
|
90
|
-
|
|
91
|
-
Non-checkpoint task types use `type="auto"`.
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
## Autonomous vs Non-Autonomous Plans
|
|
96
|
-
|
|
97
|
-
The plan frontmatter field `autonomous: true|false` indicates whether a plan contains checkpoint tasks:
|
|
98
|
-
|
|
99
|
-
| Value | Meaning |
|
|
100
|
-
|-------|---------|
|
|
101
|
-
| `autonomous: true` | No checkpoint tasks. The executor can complete all tasks without human intervention. |
|
|
102
|
-
| `autonomous: false` | Contains at least one checkpoint task. Execution will pause at some point. |
|
|
103
|
-
|
|
104
|
-
The build orchestrator uses this field to determine execution strategy:
|
|
105
|
-
- Autonomous plans can be executed in parallel with other autonomous plans in the same wave
|
|
106
|
-
- Non-autonomous plans may block the wave while waiting for human input
|
|
107
|
-
- The orchestrator tracks checkpoint state in `.checkpoint-manifest.json`
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
## Continuation Protocol
|
|
112
|
-
|
|
113
|
-
After a checkpoint is resolved (human provides their answer, completes their action, or confirms verification), the orchestrator spawns a **fresh continuation executor** to resume from where the checkpoint paused.
|
|
114
|
-
|
|
115
|
-
The continuation executor receives:
|
|
116
|
-
1. The full plan content
|
|
117
|
-
2. A table of completed tasks with their commit hashes
|
|
118
|
-
3. The checkpoint resolution (what the human decided or confirmed)
|
|
119
|
-
4. The task number to resume from
|
|
120
|
-
5. The same project context as the original executor
|
|
121
|
-
|
|
122
|
-
**Key rules for continuation**:
|
|
123
|
-
- The continuation executor does NOT re-execute completed tasks
|
|
124
|
-
- It reads the partial SUMMARY.md if one exists
|
|
125
|
-
- It verifies prior commits exist via `git log`
|
|
126
|
-
- It resumes from the next uncompleted task after the checkpoint
|
|
127
|
-
|
|
128
|
-
---
|
|
129
|
-
|
|
130
|
-
## Authentication Gate (Implicit Checkpoint)
|
|
131
|
-
|
|
132
|
-
The executor also supports an implicit checkpoint for authentication failures. If the executor encounters an authentication error (missing API key, expired token, invalid credentials) during any task, it immediately stops and returns a `CHECKPOINT: AUTH-GATE` response.
|
|
133
|
-
|
|
134
|
-
This is not declared in the plan — it triggers automatically when an auth error is detected. The response includes:
|
|
135
|
-
- Which task was blocked
|
|
136
|
-
- What credential is needed
|
|
137
|
-
- Where to configure it
|
|
138
|
-
- The actual error message
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
## Architectural Deviation (Implicit Checkpoint)
|
|
143
|
-
|
|
144
|
-
Similarly, if the executor discovers that the plan's approach cannot work (API changed, framework limitation, dependency conflict), it stops with a `CHECKPOINT: ARCHITECTURAL-DEVIATION` response. This follows Deviation Rule 4 from the executor's deviation handling protocol.
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## Best Practices for Planners
|
|
149
|
-
|
|
150
|
-
When creating plans that include checkpoints:
|
|
151
|
-
|
|
152
|
-
1. **Minimize checkpoint tasks** — each one pauses execution and requires human attention
|
|
153
|
-
2. **Place checkpoints at natural boundaries** — after a feature is complete, not in the middle of wiring
|
|
154
|
-
3. **Group manual actions** — combine related human actions into a single checkpoint rather than multiple stops
|
|
155
|
-
4. **Provide clear instructions** — the `<action>` and `<verify>` elements should give the human everything they need
|
|
156
|
-
5. **Consider autonomous alternatives** — if a task CAN be verified automatically, prefer `type="auto"` with a robust `<verify>` command
|
|
157
|
-
6. **Set `autonomous: false`** in the plan frontmatter when any task is a checkpoint
|
|
1
|
+
# Checkpoints Reference
|
|
2
|
+
|
|
3
|
+
How Plan-Build-Run uses checkpoint tasks to pause execution and involve the human.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## What Are Checkpoints?
|
|
8
|
+
|
|
9
|
+
Checkpoints are special task types that cause the executor agent to **stop execution** and return control to the orchestrator (or the human). They exist because some tasks require human judgment, manual action, or verification that cannot be automated.
|
|
10
|
+
|
|
11
|
+
Checkpoints are defined in plan task XML via the `type` attribute. When the executor encounters a checkpoint task, it follows a specific protocol depending on the checkpoint type.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Checkpoint Types
|
|
16
|
+
|
|
17
|
+
Plan-Build-Run supports three checkpoint types:
|
|
18
|
+
|
|
19
|
+
### checkpoint:human-verify
|
|
20
|
+
|
|
21
|
+
**Purpose**: The executor has completed work, but a human needs to visually inspect or manually test the result before proceeding.
|
|
22
|
+
|
|
23
|
+
**Executor behavior**:
|
|
24
|
+
1. Execute the task's `<action>` steps normally
|
|
25
|
+
2. Commit the changes
|
|
26
|
+
3. **STOP execution**
|
|
27
|
+
4. Return a structured `CHECKPOINT: HUMAN-VERIFY` response containing:
|
|
28
|
+
- What was done (summary of action taken)
|
|
29
|
+
- What to verify (from the task's `<done>` condition)
|
|
30
|
+
- How to verify (instructions derived from `<verify>`)
|
|
31
|
+
- Completed tasks table
|
|
32
|
+
- Remaining tasks list
|
|
33
|
+
|
|
34
|
+
**Use when**: The result requires subjective judgment (UI looks correct, behavior feels right, output makes sense) that automated verification cannot cover.
|
|
35
|
+
|
|
36
|
+
**Example scenario**: A template was created and needs visual review in the browser, or an API integration needs manual testing with real credentials.
|
|
37
|
+
|
|
38
|
+
### checkpoint:decision
|
|
39
|
+
|
|
40
|
+
**Purpose**: The plan reaches a point where a human decision is needed before the executor can continue. The task is NOT executed — execution pauses before the task starts.
|
|
41
|
+
|
|
42
|
+
**Executor behavior**:
|
|
43
|
+
1. **STOP before executing the task**
|
|
44
|
+
2. Return a structured `CHECKPOINT: DECISION` response containing:
|
|
45
|
+
- The decision that needs to be made (from `<action>`)
|
|
46
|
+
- Available options
|
|
47
|
+
- Context to help the human decide
|
|
48
|
+
- Completed tasks table
|
|
49
|
+
|
|
50
|
+
**Use when**: The plan has a fork point where different approaches are possible and the right choice depends on human preference, business context, or information the planner could not determine.
|
|
51
|
+
|
|
52
|
+
**Example scenario**: Choosing between two authentication providers, deciding whether to use a specific third-party library or build in-house.
|
|
53
|
+
|
|
54
|
+
### checkpoint:human-action
|
|
55
|
+
|
|
56
|
+
**Purpose**: The task requires something the executor cannot do — a manual step that involves the human interacting with external systems, creating accounts, or performing physical actions.
|
|
57
|
+
|
|
58
|
+
**Executor behavior**:
|
|
59
|
+
1. **STOP before executing the task**
|
|
60
|
+
2. Return a structured `CHECKPOINT: HUMAN-ACTION` response containing:
|
|
61
|
+
- What the human needs to do (from `<action>`)
|
|
62
|
+
- Step-by-step instructions
|
|
63
|
+
- Prompt to tell the executor when done
|
|
64
|
+
- Completed tasks table
|
|
65
|
+
|
|
66
|
+
**Use when**: External setup is required — creating API keys, configuring DNS, setting up OAuth applications, or any action that requires credentials or permissions the agent does not have.
|
|
67
|
+
|
|
68
|
+
**Example scenario**: The human needs to create a Discord application in the Developer Portal and paste the client ID and secret into `.env`.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Checkpoint in Plan Format
|
|
73
|
+
|
|
74
|
+
Checkpoints are declared in the task's `type` attribute in the plan XML:
|
|
75
|
+
|
|
76
|
+
```xml
|
|
77
|
+
<task id="02-01-T3" type="checkpoint:human-verify" tdd="false">
|
|
78
|
+
<name>Verify OAuth login flow in browser</name>
|
|
79
|
+
<files>...</files>
|
|
80
|
+
<action>...</action>
|
|
81
|
+
<verify>Open browser to localhost:3000/auth/login and complete the flow</verify>
|
|
82
|
+
<done>User can log in via Discord OAuth and see their profile</done>
|
|
83
|
+
</task>
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Valid checkpoint type values:
|
|
87
|
+
- `checkpoint:human-verify`
|
|
88
|
+
- `checkpoint:decision`
|
|
89
|
+
- `checkpoint:human-action`
|
|
90
|
+
|
|
91
|
+
Non-checkpoint task types use `type="auto"`.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Autonomous vs Non-Autonomous Plans
|
|
96
|
+
|
|
97
|
+
The plan frontmatter field `autonomous: true|false` indicates whether a plan contains checkpoint tasks:
|
|
98
|
+
|
|
99
|
+
| Value | Meaning |
|
|
100
|
+
|-------|---------|
|
|
101
|
+
| `autonomous: true` | No checkpoint tasks. The executor can complete all tasks without human intervention. |
|
|
102
|
+
| `autonomous: false` | Contains at least one checkpoint task. Execution will pause at some point. |
|
|
103
|
+
|
|
104
|
+
The build orchestrator uses this field to determine execution strategy:
|
|
105
|
+
- Autonomous plans can be executed in parallel with other autonomous plans in the same wave
|
|
106
|
+
- Non-autonomous plans may block the wave while waiting for human input
|
|
107
|
+
- The orchestrator tracks checkpoint state in `.checkpoint-manifest.json`
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Continuation Protocol
|
|
112
|
+
|
|
113
|
+
After a checkpoint is resolved (human provides their answer, completes their action, or confirms verification), the orchestrator spawns a **fresh continuation executor** to resume from where the checkpoint paused.
|
|
114
|
+
|
|
115
|
+
The continuation executor receives:
|
|
116
|
+
1. The full plan content
|
|
117
|
+
2. A table of completed tasks with their commit hashes
|
|
118
|
+
3. The checkpoint resolution (what the human decided or confirmed)
|
|
119
|
+
4. The task number to resume from
|
|
120
|
+
5. The same project context as the original executor
|
|
121
|
+
|
|
122
|
+
**Key rules for continuation**:
|
|
123
|
+
- The continuation executor does NOT re-execute completed tasks
|
|
124
|
+
- It reads the partial SUMMARY.md if one exists
|
|
125
|
+
- It verifies prior commits exist via `git log`
|
|
126
|
+
- It resumes from the next uncompleted task after the checkpoint
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Authentication Gate (Implicit Checkpoint)
|
|
131
|
+
|
|
132
|
+
The executor also supports an implicit checkpoint for authentication failures. If the executor encounters an authentication error (missing API key, expired token, invalid credentials) during any task, it immediately stops and returns a `CHECKPOINT: AUTH-GATE` response.
|
|
133
|
+
|
|
134
|
+
This is not declared in the plan — it triggers automatically when an auth error is detected. The response includes:
|
|
135
|
+
- Which task was blocked
|
|
136
|
+
- What credential is needed
|
|
137
|
+
- Where to configure it
|
|
138
|
+
- The actual error message
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Architectural Deviation (Implicit Checkpoint)
|
|
143
|
+
|
|
144
|
+
Similarly, if the executor discovers that the plan's approach cannot work (API changed, framework limitation, dependency conflict), it stops with a `CHECKPOINT: ARCHITECTURAL-DEVIATION` response. This follows Deviation Rule 4 from the executor's deviation handling protocol.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Best Practices for Planners
|
|
149
|
+
|
|
150
|
+
When creating plans that include checkpoints:
|
|
151
|
+
|
|
152
|
+
1. **Minimize checkpoint tasks** — each one pauses execution and requires human attention
|
|
153
|
+
2. **Place checkpoints at natural boundaries** — after a feature is complete, not in the middle of wiring
|
|
154
|
+
3. **Group manual actions** — combine related human actions into a single checkpoint rather than multiple stops
|
|
155
|
+
4. **Provide clear instructions** — the `<action>` and `<verify>` elements should give the human everything they need
|
|
156
|
+
5. **Consider autonomous alternatives** — if a task CAN be verified automatically, prefer `type="auto"` with a robust `<verify>` command
|
|
157
|
+
6. **Set `autonomous: false`** in the plan frontmatter when any task is a checkpoint
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
# Common Bug Patterns
|
|
2
|
-
|
|
3
|
-
Quick reference for the debugger agent. Check these patterns early — they cover ~80% of bugs.
|
|
4
|
-
|
|
5
|
-
| Category | Patterns to Check |
|
|
6
|
-
|----------|------------------|
|
|
7
|
-
| **Off-by-one** | Loop bounds (`<` vs `<=`), 0-based vs 1-based indexing, string slice boundaries |
|
|
8
|
-
| **Null/undefined** | Missing optional chaining (`?.`), default params, DB query returning null, OOB array access |
|
|
9
|
-
| **Async/timing** | Missing `await`, race conditions, stale closures, handlers registered before element exists |
|
|
10
|
-
| **State management** | Direct mutation vs new object, update not triggering re-render, duplicated sources of truth, stale state in closures |
|
|
11
|
-
| **Import/module** | Circular imports, default vs named export mismatch, wrong file (similar names), resolution path |
|
|
12
|
-
| **Environment** | Missing/wrong env var, dev vs prod differences, case sensitivity (Windows vs Linux paths) |
|
|
13
|
-
| **Data shape** | API response format changed, schema/model mismatch, type mismatch between layers, missing field |
|
|
1
|
+
# Common Bug Patterns
|
|
2
|
+
|
|
3
|
+
Quick reference for the debugger agent. Check these patterns early — they cover ~80% of bugs.
|
|
4
|
+
|
|
5
|
+
| Category | Patterns to Check |
|
|
6
|
+
|----------|------------------|
|
|
7
|
+
| **Off-by-one** | Loop bounds (`<` vs `<=`), 0-based vs 1-based indexing, string slice boundaries |
|
|
8
|
+
| **Null/undefined** | Missing optional chaining (`?.`), default params, DB query returning null, OOB array access |
|
|
9
|
+
| **Async/timing** | Missing `await`, race conditions, stale closures, handlers registered before element exists |
|
|
10
|
+
| **State management** | Direct mutation vs new object, update not triggering re-render, duplicated sources of truth, stale state in closures |
|
|
11
|
+
| **Import/module** | Circular imports, default vs named export mismatch, wrong file (similar names), resolution path |
|
|
12
|
+
| **Environment** | Missing/wrong env var, dev vs prod differences, case sensitivity (Windows vs Linux paths) |
|
|
13
|
+
| **Data shape** | API response format changed, schema/model mismatch, type mismatch between layers, missing field |
|