@sienklogic/plan-build-run 2.45.0 → 2.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/package.json +1 -1
- package/plugins/copilot-pbr/plugin.json +1 -1
- package/plugins/copilot-pbr/skills/build/SKILL.md +15 -116
- package/plugins/copilot-pbr/skills/milestone/SKILL.md +1 -29
- package/plugins/cursor-pbr/.cursor-plugin/plugin.json +1 -1
- package/plugins/cursor-pbr/skills/build/SKILL.md +15 -116
- package/plugins/cursor-pbr/skills/milestone/SKILL.md +1 -29
- package/plugins/pbr/.claude-plugin/plugin.json +1 -1
- package/plugins/pbr/scripts/check-state-sync.js +1 -1
- package/plugins/pbr/scripts/lib/context.js +218 -0
- package/plugins/pbr/scripts/lib/core.js +1 -1
- package/plugins/pbr/scripts/lib/init.js +126 -1
- package/plugins/pbr/scripts/lib/phase.js +203 -5
- package/plugins/pbr/scripts/lib/reference.js +236 -0
- package/plugins/pbr/scripts/lib/state.js +1 -1
- package/plugins/pbr/scripts/pbr-tools.js +60 -4
- package/plugins/pbr/skills/build/SKILL.md +15 -116
- package/plugins/pbr/skills/build/templates/continuation-prompt.md.tmpl +26 -0
- package/plugins/pbr/skills/build/templates/executor-prompt.md.tmpl +55 -0
- package/plugins/pbr/skills/build/templates/inline-verifier-prompt.md.tmpl +18 -0
- package/plugins/pbr/skills/milestone/SKILL.md +1 -29
- package/plugins/pbr/skills/milestone/templates/integration-checker-prompt.md.tmpl +25 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,33 @@ All notable changes to Plan-Build-Run will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.47.0](https://github.com/SienkLogic/plan-build-run/compare/plan-build-run-v2.46.0...plan-build-run-v2.47.0) (2026-03-01)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **52-01:** extract 3 inline executor prompts from build/SKILL.md to tmpl files ([e5db296](https://github.com/SienkLogic/plan-build-run/commit/e5db2966dfc53fc8b7534cce6257880ebc7438f9))
|
|
14
|
+
* **52-01:** replace inline prompts with template references in build and milestone SKILL.md ([04b7d0f](https://github.com/SienkLogic/plan-build-run/commit/04b7d0ff19bba67c8a0a620fbaaacf189f1055be))
|
|
15
|
+
|
|
16
|
+
## [2.46.0](https://github.com/SienkLogic/plan-build-run/compare/plan-build-run-v2.45.0...plan-build-run-v2.46.0) (2026-03-01)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
* **51-01:** implement initStateBundle in lib/init.js ([0e1b103](https://github.com/SienkLogic/plan-build-run/commit/0e1b1038953c974266f36af9a8ecd08e5f54dc13))
|
|
22
|
+
* **51-01:** wire state-bundle into pbr-tools.js dispatch ([7092b58](https://github.com/SienkLogic/plan-build-run/commit/7092b58aa3376bc858bfa7ff69b68e0e3b96b9f1))
|
|
23
|
+
* **51-02:** add milestoneStats function and milestone-stats CLI command ([d962ad2](https://github.com/SienkLogic/plan-build-run/commit/d962ad27510ece26b14a2439f50c9d5dde21a491))
|
|
24
|
+
* **51-03:** create lib/reference.js with listHeadings, extractSection, resolveReferencePath, referenceGet ([5f5e340](https://github.com/SienkLogic/plan-build-run/commit/5f5e340381d61aa450ef2afebaa0d6c8b3b55546))
|
|
25
|
+
* **51-03:** wire reference subcommand into pbr-tools.js dispatch with --section and --list flags ([b638ed9](https://github.com/SienkLogic/plan-build-run/commit/b638ed9d8a7ecefec56bd5ae88d555ad9dd5e906))
|
|
26
|
+
* **51-04:** create lib/context.js with contextTriage function ([e77982e](https://github.com/SienkLogic/plan-build-run/commit/e77982ed220fb17fe911e1e3d6323570b8309044))
|
|
27
|
+
* **51-04:** wire context-triage dispatch into pbr-tools.js ([2f6fcb4](https://github.com/SienkLogic/plan-build-run/commit/2f6fcb4a8212f43fa84d3b01a74234cee46fe80a))
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### Bug Fixes
|
|
31
|
+
|
|
32
|
+
* **51-04:** remove unused test imports to fix lint errors ([a7e90e0](https://github.com/SienkLogic/plan-build-run/commit/a7e90e0533448d8be4a13a74711b52da0ec993d0))
|
|
33
|
+
* **tools:** fix planIndex regex to match PLAN-NN.md naming convention ([a4aadc1](https://github.com/SienkLogic/plan-build-run/commit/a4aadc1f95baeaa285b722d3d88ea607a4addd59))
|
|
34
|
+
|
|
8
35
|
## [2.45.0](https://github.com/SienkLogic/plan-build-run/compare/plan-build-run-v2.44.0...plan-build-run-v2.45.0) (2026-03-01)
|
|
9
36
|
|
|
10
37
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pbr",
|
|
3
3
|
"displayName": "Plan-Build-Run",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.47.0",
|
|
5
5
|
"description": "Plan-Build-Run — Structured development workflow for GitHub Copilot CLI. Solves context rot through disciplined agent delegation, structured planning, atomic execution, and goal-backward verification.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "SienkLogic",
|
|
@@ -298,65 +298,15 @@ Reference: `references/model-selection.md` for full details.
|
|
|
298
298
|
4. Read prior SUMMARY.md files from the same phase (completed plans in earlier waves)
|
|
299
299
|
5. Read `.planning/config.json`
|
|
300
300
|
|
|
301
|
-
Construct the executor prompt:
|
|
301
|
+
Construct the executor prompt by reading `skills/build/templates/executor-prompt.md.tmpl` and filling in all `{placeholder}` values:
|
|
302
302
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
1. .planning/phases/{NN}-{slug}/{plan_id}-PLAN.md — the full plan with task details
|
|
309
|
-
2. .planning/CONTEXT.md — locked decisions and constraints (if exists)
|
|
310
|
-
3. .planning/STATE.md — current project state and progress
|
|
311
|
-
</files_to_read>
|
|
312
|
-
|
|
313
|
-
<plan_summary>
|
|
314
|
-
[Inline only the ## Summary section from PLAN.md]
|
|
315
|
-
</plan_summary>
|
|
316
|
-
|
|
317
|
-
<plan_file>
|
|
318
|
-
.planning/phases/{NN}-{slug}/{plan_id}-PLAN.md
|
|
319
|
-
</plan_file>
|
|
320
|
-
|
|
321
|
-
<project_context>
|
|
322
|
-
Project root: {absolute path to project root}
|
|
323
|
-
Platform: {win32|linux|darwin}
|
|
324
|
-
|
|
325
|
-
Config:
|
|
326
|
-
commit_format: {commit_format from config}
|
|
327
|
-
tdd_mode: {tdd_mode from config}
|
|
328
|
-
atomic_commits: {atomic_commits from config}
|
|
303
|
+
- `{NN}-{slug}` — phase directory (e.g., `02-authentication`)
|
|
304
|
+
- `{plan_id}` — plan being executed (e.g., `02-01`)
|
|
305
|
+
- `{commit_format}`, `{tdd_mode}`, `{atomic_commits}` — from loaded config
|
|
306
|
+
- File paths: absolute paths to project root, config.json, STATE.md, CONTEXT.md
|
|
307
|
+
- `{prior_work table rows}` — one row per completed plan in this phase
|
|
329
308
|
|
|
330
|
-
|
|
331
|
-
- Config: {absolute path to config.json}
|
|
332
|
-
- State: {absolute path to STATE.md}
|
|
333
|
-
{If CONTEXT.md exists:}
|
|
334
|
-
- Project context (locked decisions): {absolute path to CONTEXT.md}
|
|
335
|
-
</project_context>
|
|
336
|
-
|
|
337
|
-
<prior_work>
|
|
338
|
-
Completed plans in this phase:
|
|
339
|
-
| Plan | Status | Commits | Summary File |
|
|
340
|
-
|------|--------|---------|-------------|
|
|
341
|
-
| {plan_id} | complete | {hash1}, {hash2} | {absolute path to SUMMARY.md} |
|
|
342
|
-
|
|
343
|
-
Read any SUMMARY file via Read tool if you need details on what prior plans produced.
|
|
344
|
-
</prior_work>
|
|
345
|
-
|
|
346
|
-
Execute all tasks in the plan sequentially. For each task:
|
|
347
|
-
0. Read the full plan file from the path in <plan_file> to get task details
|
|
348
|
-
1. Execute the <action> steps
|
|
349
|
-
2. Run the <verify> commands
|
|
350
|
-
3. Create an atomic commit with format: {commit_format}
|
|
351
|
-
4. Record the commit hash
|
|
352
|
-
|
|
353
|
-
After all tasks complete:
|
|
354
|
-
1. Write SUMMARY.md to .planning/phases/{NN}-{slug}/SUMMARY-{plan_id}.md
|
|
355
|
-
2. Run self-check (verify files exist, commits exist, verify commands still pass)
|
|
356
|
-
3. Return your SUMMARY.md content as your final response
|
|
357
|
-
|
|
358
|
-
If you hit a checkpoint task, STOP and return the checkpoint response format immediately.
|
|
359
|
-
```
|
|
309
|
+
Use the filled template as the Task() prompt.
|
|
360
310
|
|
|
361
311
|
**Spawn strategy based on config:**
|
|
362
312
|
|
|
@@ -478,37 +428,7 @@ For each plan that completed successfully in this wave:
|
|
|
478
428
|
1. Read the plan's SUMMARY.md to get `key_files` (the files this plan created/modified)
|
|
479
429
|
2. Display to the user: `◐ Spawning inline verifier for plan {plan_id}...`
|
|
480
430
|
|
|
481
|
-
Spawn
|
|
482
|
-
|
|
483
|
-
<!-- NOTE: This is a targeted inline check (existence/substantiveness/wiring for specific files),
|
|
484
|
-
NOT the full must-have verifier. The canonical full verifier prompt lives in
|
|
485
|
-
agents/verifier.md and is templated via skills/review/templates/verifier-prompt.md.tmpl.
|
|
486
|
-
Keep this lightweight prompt distinct from the full verifier. -->
|
|
487
|
-
|
|
488
|
-
```
|
|
489
|
-
Task({
|
|
490
|
-
agent_type: "pbr:verifier",
|
|
491
|
-
model: "haiku",
|
|
492
|
-
prompt: "<files_to_read>
|
|
493
|
-
CRITICAL: Read these files BEFORE any other action:
|
|
494
|
-
1. .planning/phases/{NN}-{slug}/{plan_id}-PLAN.md — must-haves to verify against
|
|
495
|
-
2. .planning/phases/{NN}-{slug}/SUMMARY-{plan_id}.md — what the executor claims was built
|
|
496
|
-
3. .planning/phases/{NN}-{slug}/VERIFICATION.md — prior verification results (if exists)
|
|
497
|
-
</files_to_read>
|
|
498
|
-
|
|
499
|
-
Targeted inline verification for plan {plan_id}.
|
|
500
|
-
|
|
501
|
-
Verify ONLY these files: {comma-separated key_files list}
|
|
502
|
-
|
|
503
|
-
For each file, check three layers:
|
|
504
|
-
1. Existence — does the file exist?
|
|
505
|
-
2. Substantiveness — is it more than a stub? (>10 lines, no TODO/FIXME placeholders)
|
|
506
|
-
3. Wiring — is it imported/used by at least one other file?
|
|
507
|
-
|
|
508
|
-
Report PASS or FAIL with a one-line reason per file.
|
|
509
|
-
Write nothing to disk — just return your results as text."
|
|
510
|
-
})
|
|
511
|
-
```
|
|
431
|
+
Spawn `Task({ agent_type: "pbr:verifier", model: "haiku", prompt: ... })`. Read `skills/build/templates/inline-verifier-prompt.md.tmpl` and fill in `{NN}-{slug}`, `{plan_id}`, and `{comma-separated key_files list}` (key_files from PLAN.md frontmatter). Use the filled template as the `prompt` value.
|
|
512
432
|
|
|
513
433
|
3. If verifier reports FAIL for any file:
|
|
514
434
|
- Present the failure to the user: "Inline verify failed for plan {plan_id}: {details}"
|
|
@@ -608,36 +528,15 @@ Checkpoint in Plan {id}, Task {N}: {checkpoint type}
|
|
|
608
528
|
|
|
609
529
|
Reference: `references/continuation-format.md` for the continuation protocol.
|
|
610
530
|
|
|
611
|
-
|
|
612
|
-
You are the executor agent. Continue executing a plan from a checkpoint.
|
|
613
|
-
|
|
614
|
-
<plan_summary>
|
|
615
|
-
[Inline only the ## Summary section from PLAN.md]
|
|
616
|
-
</plan_summary>
|
|
531
|
+
Read `skills/build/templates/continuation-prompt.md.tmpl` and fill in:
|
|
617
532
|
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
533
|
+
- `{NN}-{slug}`, `{plan_id}` — current phase and plan
|
|
534
|
+
- `{plan_summary}` — the ## Summary section from PLAN.md
|
|
535
|
+
- `{task table rows}` — one row per task with completion status
|
|
536
|
+
- `{user's response}` — the checkpoint resolution from Step 3
|
|
537
|
+
- `{project context key-values}` — config values + file paths
|
|
621
538
|
|
|
622
|
-
|
|
623
|
-
| Task | Commit | Status |
|
|
624
|
-
|------|--------|--------|
|
|
625
|
-
| {task_name} | {hash} | complete |
|
|
626
|
-
| {task_name} | {hash} | complete |
|
|
627
|
-
| {checkpoint_task} | — | checkpoint |
|
|
628
|
-
</completed_tasks>
|
|
629
|
-
|
|
630
|
-
<checkpoint_resolution>
|
|
631
|
-
User response to checkpoint: {user's response}
|
|
632
|
-
Resume at: Task {N+1} (or re-execute checkpoint task with user's answer)
|
|
633
|
-
</checkpoint_resolution>
|
|
634
|
-
|
|
635
|
-
<project_context>
|
|
636
|
-
{Same lean context as original spawn — config key-values + file paths, not inlined bodies}
|
|
637
|
-
</project_context>
|
|
638
|
-
|
|
639
|
-
Continue execution from the checkpoint. Skip completed tasks. Process the checkpoint resolution, then continue with remaining tasks. Write SUMMARY.md when done.
|
|
640
|
-
```
|
|
539
|
+
Use the filled template as the Task() prompt.
|
|
641
540
|
|
|
642
541
|
#### 6e-ii. CI Gate (after wave completion, conditional)
|
|
643
542
|
|
|
@@ -535,35 +535,7 @@ Verify milestone completion with cross-phase integration checks.
|
|
|
535
535
|
|
|
536
536
|
Display to the user: `◐ Spawning integration checker...`
|
|
537
537
|
|
|
538
|
-
Spawn `Task(agent_type: "pbr:integration-checker")`
|
|
539
|
-
|
|
540
|
-
```
|
|
541
|
-
You are integration-checker. Perform cross-phase integration verification.
|
|
542
|
-
|
|
543
|
-
<files_to_read>
|
|
544
|
-
CRITICAL: Read these files BEFORE any other action:
|
|
545
|
-
1. .planning/ROADMAP.md — phase structure, goals, and dependencies
|
|
546
|
-
2. .planning/phases/{NN}-{slug}/SUMMARY.md — for each milestone phase (read all)
|
|
547
|
-
</files_to_read>
|
|
548
|
-
|
|
549
|
-
Milestone: {version or "current"}
|
|
550
|
-
Phases to check: {list of phase directories}
|
|
551
|
-
|
|
552
|
-
Instructions:
|
|
553
|
-
1. Read all SUMMARY.md files for the milestone phases
|
|
554
|
-
2. Build a dependency graph from provides/affects/requires fields
|
|
555
|
-
3. Verify integration points:
|
|
556
|
-
a. Every "requires" in a later phase is "provided" by an earlier phase
|
|
557
|
-
b. Every "affects" target still exists and hasn't been broken
|
|
558
|
-
c. No circular dependencies
|
|
559
|
-
d. No orphaned provides (things built but never consumed)
|
|
560
|
-
4. Check for:
|
|
561
|
-
- Broken imports/references between phases
|
|
562
|
-
- API contract mismatches
|
|
563
|
-
- Missing error handling at integration points
|
|
564
|
-
- Configuration inconsistencies
|
|
565
|
-
5. Return findings as a structured report
|
|
566
|
-
```
|
|
538
|
+
Spawn `Task(agent_type: "pbr:integration-checker")`. Read `skills/milestone/templates/integration-checker-prompt.md.tmpl`, fill in `{version or "current"}`, `{list of phase directories}`, and `{phase SUMMARY.md paths}`, then use the filled template as the Task() prompt.
|
|
567
539
|
|
|
568
540
|
4. **Check integration-checker completion:**
|
|
569
541
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pbr",
|
|
3
3
|
"displayName": "Plan-Build-Run",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.47.0",
|
|
5
5
|
"description": "Plan-Build-Run — Structured development workflow for Cursor. Solves context rot through disciplined subagent delegation, structured planning, atomic execution, and goal-backward verification.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "SienkLogic",
|
|
@@ -299,65 +299,15 @@ Reference: `references/model-selection.md` for full details.
|
|
|
299
299
|
4. Read prior SUMMARY.md files from the same phase (completed plans in earlier waves)
|
|
300
300
|
5. Read `.planning/config.json`
|
|
301
301
|
|
|
302
|
-
Construct the executor prompt:
|
|
302
|
+
Construct the executor prompt by reading `skills/build/templates/executor-prompt.md.tmpl` and filling in all `{placeholder}` values:
|
|
303
303
|
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
1. .planning/phases/{NN}-{slug}/{plan_id}-PLAN.md — the full plan with task details
|
|
310
|
-
2. .planning/CONTEXT.md — locked decisions and constraints (if exists)
|
|
311
|
-
3. .planning/STATE.md — current project state and progress
|
|
312
|
-
</files_to_read>
|
|
313
|
-
|
|
314
|
-
<plan_summary>
|
|
315
|
-
[Inline only the ## Summary section from PLAN.md]
|
|
316
|
-
</plan_summary>
|
|
317
|
-
|
|
318
|
-
<plan_file>
|
|
319
|
-
.planning/phases/{NN}-{slug}/{plan_id}-PLAN.md
|
|
320
|
-
</plan_file>
|
|
321
|
-
|
|
322
|
-
<project_context>
|
|
323
|
-
Project root: {absolute path to project root}
|
|
324
|
-
Platform: {win32|linux|darwin}
|
|
325
|
-
|
|
326
|
-
Config:
|
|
327
|
-
commit_format: {commit_format from config}
|
|
328
|
-
tdd_mode: {tdd_mode from config}
|
|
329
|
-
atomic_commits: {atomic_commits from config}
|
|
304
|
+
- `{NN}-{slug}` — phase directory (e.g., `02-authentication`)
|
|
305
|
+
- `{plan_id}` — plan being executed (e.g., `02-01`)
|
|
306
|
+
- `{commit_format}`, `{tdd_mode}`, `{atomic_commits}` — from loaded config
|
|
307
|
+
- File paths: absolute paths to project root, config.json, STATE.md, CONTEXT.md
|
|
308
|
+
- `{prior_work table rows}` — one row per completed plan in this phase
|
|
330
309
|
|
|
331
|
-
|
|
332
|
-
- Config: {absolute path to config.json}
|
|
333
|
-
- State: {absolute path to STATE.md}
|
|
334
|
-
{If CONTEXT.md exists:}
|
|
335
|
-
- Project context (locked decisions): {absolute path to CONTEXT.md}
|
|
336
|
-
</project_context>
|
|
337
|
-
|
|
338
|
-
<prior_work>
|
|
339
|
-
Completed plans in this phase:
|
|
340
|
-
| Plan | Status | Commits | Summary File |
|
|
341
|
-
|------|--------|---------|-------------|
|
|
342
|
-
| {plan_id} | complete | {hash1}, {hash2} | {absolute path to SUMMARY.md} |
|
|
343
|
-
|
|
344
|
-
Read any SUMMARY file via Read tool if you need details on what prior plans produced.
|
|
345
|
-
</prior_work>
|
|
346
|
-
|
|
347
|
-
Execute all tasks in the plan sequentially. For each task:
|
|
348
|
-
0. Read the full plan file from the path in <plan_file> to get task details
|
|
349
|
-
1. Execute the <action> steps
|
|
350
|
-
2. Run the <verify> commands
|
|
351
|
-
3. Create an atomic commit with format: {commit_format}
|
|
352
|
-
4. Record the commit hash
|
|
353
|
-
|
|
354
|
-
After all tasks complete:
|
|
355
|
-
1. Write SUMMARY.md to .planning/phases/{NN}-{slug}/SUMMARY-{plan_id}.md
|
|
356
|
-
2. Run self-check (verify files exist, commits exist, verify commands still pass)
|
|
357
|
-
3. Return your SUMMARY.md content as your final response
|
|
358
|
-
|
|
359
|
-
If you hit a checkpoint task, STOP and return the checkpoint response format immediately.
|
|
360
|
-
```
|
|
310
|
+
Use the filled template as the Task() prompt.
|
|
361
311
|
|
|
362
312
|
**Spawn strategy based on config:**
|
|
363
313
|
|
|
@@ -479,37 +429,7 @@ For each plan that completed successfully in this wave:
|
|
|
479
429
|
1. Read the plan's SUMMARY.md to get `key_files` (the files this plan created/modified)
|
|
480
430
|
2. Display to the user: `◐ Spawning inline verifier for plan {plan_id}...`
|
|
481
431
|
|
|
482
|
-
Spawn
|
|
483
|
-
|
|
484
|
-
<!-- NOTE: This is a targeted inline check (existence/substantiveness/wiring for specific files),
|
|
485
|
-
NOT the full must-have verifier. The canonical full verifier prompt lives in
|
|
486
|
-
agents/verifier.md and is templated via skills/review/templates/verifier-prompt.md.tmpl.
|
|
487
|
-
Keep this lightweight prompt distinct from the full verifier. -->
|
|
488
|
-
|
|
489
|
-
```
|
|
490
|
-
Task({
|
|
491
|
-
agent_type: "pbr:verifier",
|
|
492
|
-
model: "haiku",
|
|
493
|
-
prompt: "<files_to_read>
|
|
494
|
-
CRITICAL: Read these files BEFORE any other action:
|
|
495
|
-
1. .planning/phases/{NN}-{slug}/{plan_id}-PLAN.md — must-haves to verify against
|
|
496
|
-
2. .planning/phases/{NN}-{slug}/SUMMARY-{plan_id}.md — what the executor claims was built
|
|
497
|
-
3. .planning/phases/{NN}-{slug}/VERIFICATION.md — prior verification results (if exists)
|
|
498
|
-
</files_to_read>
|
|
499
|
-
|
|
500
|
-
Targeted inline verification for plan {plan_id}.
|
|
501
|
-
|
|
502
|
-
Verify ONLY these files: {comma-separated key_files list}
|
|
503
|
-
|
|
504
|
-
For each file, check three layers:
|
|
505
|
-
1. Existence — does the file exist?
|
|
506
|
-
2. Substantiveness — is it more than a stub? (>10 lines, no TODO/FIXME placeholders)
|
|
507
|
-
3. Wiring — is it imported/used by at least one other file?
|
|
508
|
-
|
|
509
|
-
Report PASS or FAIL with a one-line reason per file.
|
|
510
|
-
Write nothing to disk — just return your results as text."
|
|
511
|
-
})
|
|
512
|
-
```
|
|
432
|
+
Spawn `Task({ agent_type: "pbr:verifier", model: "haiku", prompt: ... })`. Read `skills/build/templates/inline-verifier-prompt.md.tmpl` and fill in `{NN}-{slug}`, `{plan_id}`, and `{comma-separated key_files list}` (key_files from PLAN.md frontmatter). Use the filled template as the `prompt` value.
|
|
513
433
|
|
|
514
434
|
3. If verifier reports FAIL for any file:
|
|
515
435
|
- Present the failure to the user: "Inline verify failed for plan {plan_id}: {details}"
|
|
@@ -609,36 +529,15 @@ Checkpoint in Plan {id}, Task {N}: {checkpoint type}
|
|
|
609
529
|
|
|
610
530
|
Reference: `references/continuation-format.md` for the continuation protocol.
|
|
611
531
|
|
|
612
|
-
|
|
613
|
-
You are the executor agent. Continue executing a plan from a checkpoint.
|
|
614
|
-
|
|
615
|
-
<plan_summary>
|
|
616
|
-
[Inline only the ## Summary section from PLAN.md]
|
|
617
|
-
</plan_summary>
|
|
532
|
+
Read `skills/build/templates/continuation-prompt.md.tmpl` and fill in:
|
|
618
533
|
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
534
|
+
- `{NN}-{slug}`, `{plan_id}` — current phase and plan
|
|
535
|
+
- `{plan_summary}` — the ## Summary section from PLAN.md
|
|
536
|
+
- `{task table rows}` — one row per task with completion status
|
|
537
|
+
- `{user's response}` — the checkpoint resolution from Step 3
|
|
538
|
+
- `{project context key-values}` — config values + file paths
|
|
622
539
|
|
|
623
|
-
|
|
624
|
-
| Task | Commit | Status |
|
|
625
|
-
|------|--------|--------|
|
|
626
|
-
| {task_name} | {hash} | complete |
|
|
627
|
-
| {task_name} | {hash} | complete |
|
|
628
|
-
| {checkpoint_task} | — | checkpoint |
|
|
629
|
-
</completed_tasks>
|
|
630
|
-
|
|
631
|
-
<checkpoint_resolution>
|
|
632
|
-
User response to checkpoint: {user's response}
|
|
633
|
-
Resume at: Task {N+1} (or re-execute checkpoint task with user's answer)
|
|
634
|
-
</checkpoint_resolution>
|
|
635
|
-
|
|
636
|
-
<project_context>
|
|
637
|
-
{Same lean context as original spawn — config key-values + file paths, not inlined bodies}
|
|
638
|
-
</project_context>
|
|
639
|
-
|
|
640
|
-
Continue execution from the checkpoint. Skip completed tasks. Process the checkpoint resolution, then continue with remaining tasks. Write SUMMARY.md when done.
|
|
641
|
-
```
|
|
540
|
+
Use the filled template as the Task() prompt.
|
|
642
541
|
|
|
643
542
|
#### 6e-ii. CI Gate (after wave completion, conditional)
|
|
644
543
|
|
|
@@ -536,35 +536,7 @@ Verify milestone completion with cross-phase integration checks.
|
|
|
536
536
|
|
|
537
537
|
Display to the user: `◐ Spawning integration checker...`
|
|
538
538
|
|
|
539
|
-
Spawn `Task(agent_type: "pbr:integration-checker")`
|
|
540
|
-
|
|
541
|
-
```
|
|
542
|
-
You are integration-checker. Perform cross-phase integration verification.
|
|
543
|
-
|
|
544
|
-
<files_to_read>
|
|
545
|
-
CRITICAL: Read these files BEFORE any other action:
|
|
546
|
-
1. .planning/ROADMAP.md — phase structure, goals, and dependencies
|
|
547
|
-
2. .planning/phases/{NN}-{slug}/SUMMARY.md — for each milestone phase (read all)
|
|
548
|
-
</files_to_read>
|
|
549
|
-
|
|
550
|
-
Milestone: {version or "current"}
|
|
551
|
-
Phases to check: {list of phase directories}
|
|
552
|
-
|
|
553
|
-
Instructions:
|
|
554
|
-
1. Read all SUMMARY.md files for the milestone phases
|
|
555
|
-
2. Build a dependency graph from provides/affects/requires fields
|
|
556
|
-
3. Verify integration points:
|
|
557
|
-
a. Every "requires" in a later phase is "provided" by an earlier phase
|
|
558
|
-
b. Every "affects" target still exists and hasn't been broken
|
|
559
|
-
c. No circular dependencies
|
|
560
|
-
d. No orphaned provides (things built but never consumed)
|
|
561
|
-
4. Check for:
|
|
562
|
-
- Broken imports/references between phases
|
|
563
|
-
- API contract mismatches
|
|
564
|
-
- Missing error handling at integration points
|
|
565
|
-
- Configuration inconsistencies
|
|
566
|
-
5. Return findings as a structured report
|
|
567
|
-
```
|
|
539
|
+
Spawn `Task(agent_type: "pbr:integration-checker")`. Read `skills/milestone/templates/integration-checker-prompt.md.tmpl`, fill in `{version or "current"}`, `{list of phase directories}`, and `{phase SUMMARY.md paths}`, then use the filled template as the Task() prompt.
|
|
568
540
|
|
|
569
541
|
4. **Check integration-checker completion:**
|
|
570
542
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pbr",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.47.0",
|
|
4
4
|
"description": "Plan-Build-Run — Structured development workflow for Claude Code. Solves context rot through disciplined subagent delegation, structured planning, atomic execution, and goal-backward verification.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "SienkLogic",
|
|
@@ -67,7 +67,7 @@ function extractPhaseNum(dirName) {
|
|
|
67
67
|
function countPhaseArtifacts(phaseDir) {
|
|
68
68
|
try {
|
|
69
69
|
const files = fs.readdirSync(phaseDir);
|
|
70
|
-
const plans = files.filter(f =>
|
|
70
|
+
const plans = files.filter(f => /PLAN.*\.md$/i.test(f));
|
|
71
71
|
const summaries = files.filter(f => /SUMMARY.*\.md$/.test(f) || /.*SUMMARY.*\.md$/.test(f));
|
|
72
72
|
|
|
73
73
|
// Filter for summaries that have status: complete in frontmatter
|