@sienklogic/plan-build-run 2.46.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 CHANGED
@@ -5,6 +5,14 @@ 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
+
8
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)
9
17
 
10
18
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sienklogic/plan-build-run",
3
- "version": "2.46.0",
3
+ "version": "2.47.0",
4
4
  "description": "Plan it, Build it, Run it — structured development workflow for Claude Code",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pbr",
3
3
  "displayName": "Plan-Build-Run",
4
- "version": "2.46.0",
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
- You are the executor agent. Execute the following plan.
305
-
306
- <files_to_read>
307
- CRITICAL: Read these files BEFORE any other action:
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
- Available context files (read via Read tool as needed):
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 a lightweight verifier:
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
- <plan_file>
619
- .planning/phases/{NN}-{slug}/{plan_id}-PLAN.md
620
- </plan_file>
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
- <completed_tasks>
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")` with:
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.46.0",
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
- You are the executor agent. Execute the following plan.
306
-
307
- <files_to_read>
308
- CRITICAL: Read these files BEFORE any other action:
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
- Available context files (read via Read tool as needed):
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 a lightweight verifier:
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
- <plan_file>
620
- .planning/phases/{NN}-{slug}/{plan_id}-PLAN.md
621
- </plan_file>
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
- <completed_tasks>
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")` with:
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.46.0",
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",
@@ -300,65 +300,15 @@ Reference: `references/model-selection.md` for full details.
300
300
  4. Read prior SUMMARY.md files from the same phase (completed plans in earlier waves)
301
301
  5. Read `.planning/config.json`
302
302
 
303
- Construct the executor prompt:
303
+ Construct the executor prompt by reading `skills/build/templates/executor-prompt.md.tmpl` and filling in all `{placeholder}` values:
304
304
 
305
- ```
306
- You are the executor agent. Execute the following plan.
307
-
308
- <files_to_read>
309
- CRITICAL: Read these files BEFORE any other action:
310
- 1. .planning/phases/{NN}-{slug}/{plan_id}-PLAN.md — the full plan with task details
311
- 2. .planning/CONTEXT.md — locked decisions and constraints (if exists)
312
- 3. .planning/STATE.md — current project state and progress
313
- </files_to_read>
314
-
315
- <plan_summary>
316
- [Inline only the ## Summary section from PLAN.md]
317
- </plan_summary>
318
-
319
- <plan_file>
320
- .planning/phases/{NN}-{slug}/{plan_id}-PLAN.md
321
- </plan_file>
322
-
323
- <project_context>
324
- Project root: {absolute path to project root}
325
- Platform: {win32|linux|darwin}
326
-
327
- Config:
328
- commit_format: {commit_format from config}
329
- tdd_mode: {tdd_mode from config}
330
- atomic_commits: {atomic_commits from config}
305
+ - `{NN}-{slug}` — phase directory (e.g., `02-authentication`)
306
+ - `{plan_id}` plan being executed (e.g., `02-01`)
307
+ - `{commit_format}`, `{tdd_mode}`, `{atomic_commits}` — from loaded config
308
+ - File paths: absolute paths to project root, config.json, STATE.md, CONTEXT.md
309
+ - `{prior_work table rows}` one row per completed plan in this phase
331
310
 
332
- Available context files (read via Read tool as needed):
333
- - Config: {absolute path to config.json}
334
- - State: {absolute path to STATE.md}
335
- {If CONTEXT.md exists:}
336
- - Project context (locked decisions): {absolute path to CONTEXT.md}
337
- </project_context>
338
-
339
- <prior_work>
340
- Completed plans in this phase:
341
- | Plan | Status | Commits | Summary File |
342
- |------|--------|---------|-------------|
343
- | {plan_id} | complete | {hash1}, {hash2} | {absolute path to SUMMARY.md} |
344
-
345
- Read any SUMMARY file via Read tool if you need details on what prior plans produced.
346
- </prior_work>
347
-
348
- Execute all tasks in the plan sequentially. For each task:
349
- 0. Read the full plan file from the path in <plan_file> to get task details
350
- 1. Execute the <action> steps
351
- 2. Run the <verify> commands
352
- 3. Create an atomic commit with format: {commit_format}
353
- 4. Record the commit hash
354
-
355
- After all tasks complete:
356
- 1. Write SUMMARY.md to .planning/phases/{NN}-{slug}/SUMMARY-{plan_id}.md
357
- 2. Run self-check (verify files exist, commits exist, verify commands still pass)
358
- 3. Return your SUMMARY.md content as your final response
359
-
360
- If you hit a checkpoint task, STOP and return the checkpoint response format immediately.
361
- ```
311
+ Use the filled template as the Task() prompt.
362
312
 
363
313
  **Spawn strategy based on config:**
364
314
 
@@ -480,37 +430,7 @@ For each plan that completed successfully in this wave:
480
430
  1. Read the plan's SUMMARY.md to get `key_files` (the files this plan created/modified)
481
431
  2. Display to the user: `◐ Spawning inline verifier for plan {plan_id}...`
482
432
 
483
- Spawn a lightweight verifier:
484
-
485
- <!-- NOTE: This is a targeted inline check (existence/substantiveness/wiring for specific files),
486
- NOT the full must-have verifier. The canonical full verifier prompt lives in
487
- agents/verifier.md and is templated via skills/review/templates/verifier-prompt.md.tmpl.
488
- Keep this lightweight prompt distinct from the full verifier. -->
489
-
490
- ```
491
- Task({
492
- subagent_type: "pbr:verifier",
493
- model: "haiku",
494
- prompt: "<files_to_read>
495
- CRITICAL: Read these files BEFORE any other action:
496
- 1. .planning/phases/{NN}-{slug}/{plan_id}-PLAN.md — must-haves to verify against
497
- 2. .planning/phases/{NN}-{slug}/SUMMARY-{plan_id}.md — what the executor claims was built
498
- 3. .planning/phases/{NN}-{slug}/VERIFICATION.md — prior verification results (if exists)
499
- </files_to_read>
500
-
501
- Targeted inline verification for plan {plan_id}.
502
-
503
- Verify ONLY these files: {comma-separated key_files list}
504
-
505
- For each file, check three layers:
506
- 1. Existence — does the file exist?
507
- 2. Substantiveness — is it more than a stub? (>10 lines, no TODO/FIXME placeholders)
508
- 3. Wiring — is it imported/used by at least one other file?
509
-
510
- Report PASS or FAIL with a one-line reason per file.
511
- Write nothing to disk — just return your results as text."
512
- })
513
- ```
433
+ Spawn `Task({ subagent_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.
514
434
 
515
435
  3. If verifier reports FAIL for any file:
516
436
  - Present the failure to the user: "Inline verify failed for plan {plan_id}: {details}"
@@ -610,36 +530,15 @@ Checkpoint in Plan {id}, Task {N}: {checkpoint type}
610
530
 
611
531
  Reference: `references/continuation-format.md` for the continuation protocol.
612
532
 
613
- ```
614
- You are the executor agent. Continue executing a plan from a checkpoint.
615
-
616
- <plan_summary>
617
- [Inline only the ## Summary section from PLAN.md]
618
- </plan_summary>
533
+ Read `skills/build/templates/continuation-prompt.md.tmpl` and fill in:
619
534
 
620
- <plan_file>
621
- .planning/phases/{NN}-{slug}/{plan_id}-PLAN.md
622
- </plan_file>
535
+ - `{NN}-{slug}`, `{plan_id}` — current phase and plan
536
+ - `{plan_summary}` — the ## Summary section from PLAN.md
537
+ - `{task table rows}` — one row per task with completion status
538
+ - `{user's response}` — the checkpoint resolution from Step 3
539
+ - `{project context key-values}` — config values + file paths
623
540
 
624
- <completed_tasks>
625
- | Task | Commit | Status |
626
- |------|--------|--------|
627
- | {task_name} | {hash} | complete |
628
- | {task_name} | {hash} | complete |
629
- | {checkpoint_task} | — | checkpoint |
630
- </completed_tasks>
631
-
632
- <checkpoint_resolution>
633
- User response to checkpoint: {user's response}
634
- Resume at: Task {N+1} (or re-execute checkpoint task with user's answer)
635
- </checkpoint_resolution>
636
-
637
- <project_context>
638
- {Same lean context as original spawn — config key-values + file paths, not inlined bodies}
639
- </project_context>
640
-
641
- Continue execution from the checkpoint. Skip completed tasks. Process the checkpoint resolution, then continue with remaining tasks. Write SUMMARY.md when done.
642
- ```
541
+ Use the filled template as the Task() prompt.
643
542
 
644
543
  #### 6e-ii. CI Gate (after wave completion, conditional)
645
544
 
@@ -0,0 +1,26 @@
1
+ You are the executor agent. Continue executing a plan from a checkpoint.
2
+
3
+ <plan_summary>
4
+ {plan_summary}
5
+ </plan_summary>
6
+
7
+ <plan_file>
8
+ .planning/phases/{NN}-{slug}/{plan_id}-PLAN.md
9
+ </plan_file>
10
+
11
+ <completed_tasks>
12
+ | Task | Commit | Status |
13
+ |------|--------|--------|
14
+ {task table rows}
15
+ </completed_tasks>
16
+
17
+ <checkpoint_resolution>
18
+ User response to checkpoint: {user's response}
19
+ Resume at: Task {N+1} (or re-execute checkpoint task with user's answer)
20
+ </checkpoint_resolution>
21
+
22
+ <project_context>
23
+ {project context key-values}
24
+ </project_context>
25
+
26
+ Continue execution from the checkpoint. Skip completed tasks. Process the checkpoint resolution, then continue with remaining tasks. Write SUMMARY.md when done.
@@ -0,0 +1,55 @@
1
+ You are the executor agent. Execute the following plan.
2
+
3
+ <files_to_read>
4
+ CRITICAL: Read these files BEFORE any other action:
5
+ 1. .planning/phases/{NN}-{slug}/{plan_id}-PLAN.md — the full plan with task details
6
+ 2. .planning/CONTEXT.md — locked decisions and constraints (if exists)
7
+ 3. .planning/STATE.md — current project state and progress
8
+ </files_to_read>
9
+
10
+ <plan_summary>
11
+ [Inline only the ## Summary section from PLAN.md]
12
+ </plan_summary>
13
+
14
+ <plan_file>
15
+ .planning/phases/{NN}-{slug}/{plan_id}-PLAN.md
16
+ </plan_file>
17
+
18
+ <project_context>
19
+ Project root: {absolute path to project root}
20
+ Platform: {win32|linux|darwin}
21
+
22
+ Config:
23
+ commit_format: {commit_format}
24
+ tdd_mode: {tdd_mode}
25
+ atomic_commits: {atomic_commits}
26
+
27
+ Available context files (read via Read tool as needed):
28
+ - Config: {absolute path to config.json}
29
+ - State: {absolute path to STATE.md}
30
+ {If CONTEXT.md exists:}
31
+ - Project context (locked decisions): {absolute path to CONTEXT.md}
32
+ </project_context>
33
+
34
+ <prior_work>
35
+ Completed plans in this phase:
36
+ | Plan | Status | Commits | Summary File |
37
+ |------|--------|---------|-------------|
38
+ | {prior_work table rows} |
39
+
40
+ Read any SUMMARY file via Read tool if you need details on what prior plans produced.
41
+ </prior_work>
42
+
43
+ Execute all tasks in the plan sequentially. For each task:
44
+ 0. Read the full plan file from the path in <plan_file> to get task details
45
+ 1. Execute the <action> steps
46
+ 2. Run the <verify> commands
47
+ 3. Create an atomic commit with format: {commit_format}
48
+ 4. Record the commit hash
49
+
50
+ After all tasks complete:
51
+ 1. Write SUMMARY.md to .planning/phases/{NN}-{slug}/SUMMARY-{plan_id}.md
52
+ 2. Run self-check (verify files exist, commits exist, verify commands still pass)
53
+ 3. Return your SUMMARY.md content as your final response
54
+
55
+ If you hit a checkpoint task, STOP and return the checkpoint response format immediately.
@@ -0,0 +1,18 @@
1
+ <files_to_read>
2
+ CRITICAL: Read these files BEFORE any other action:
3
+ 1. .planning/phases/{NN}-{slug}/{plan_id}-PLAN.md — must-haves to verify against
4
+ 2. .planning/phases/{NN}-{slug}/SUMMARY-{plan_id}.md — what the executor claims was built
5
+ 3. .planning/phases/{NN}-{slug}/VERIFICATION.md — prior verification results (if exists)
6
+ </files_to_read>
7
+
8
+ Targeted inline verification for plan {plan_id}.
9
+
10
+ Verify ONLY these files: {comma-separated key_files list}
11
+
12
+ For each file, check three layers:
13
+ 1. Existence — does the file exist?
14
+ 2. Substantiveness — is it more than a stub? (>10 lines, no TODO/FIXME placeholders)
15
+ 3. Wiring — is it imported/used by at least one other file?
16
+
17
+ Report PASS or FAIL with a one-line reason per file.
18
+ Write nothing to disk — just return your results as text.
@@ -540,35 +540,7 @@ Verify milestone completion with cross-phase integration checks.
540
540
 
541
541
  Display to the user: `◐ Spawning integration checker...`
542
542
 
543
- Spawn `Task(subagent_type: "pbr:integration-checker")` with:
544
-
545
- ```
546
- You are integration-checker. Perform cross-phase integration verification.
547
-
548
- <files_to_read>
549
- CRITICAL: Read these files BEFORE any other action:
550
- 1. .planning/ROADMAP.md — phase structure, goals, and dependencies
551
- 2. .planning/phases/{NN}-{slug}/SUMMARY.md — for each milestone phase (read all)
552
- </files_to_read>
553
-
554
- Milestone: {version or "current"}
555
- Phases to check: {list of phase directories}
556
-
557
- Instructions:
558
- 1. Read all SUMMARY.md files for the milestone phases
559
- 2. Build a dependency graph from provides/affects/requires fields
560
- 3. Verify integration points:
561
- a. Every "requires" in a later phase is "provided" by an earlier phase
562
- b. Every "affects" target still exists and hasn't been broken
563
- c. No circular dependencies
564
- d. No orphaned provides (things built but never consumed)
565
- 4. Check for:
566
- - Broken imports/references between phases
567
- - API contract mismatches
568
- - Missing error handling at integration points
569
- - Configuration inconsistencies
570
- 5. Return findings as a structured report
571
- ```
543
+ Spawn `Task(subagent_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.
572
544
 
573
545
  4. **Check integration-checker completion:**
574
546
 
@@ -0,0 +1,25 @@
1
+ You are integration-checker. Perform cross-phase integration verification.
2
+
3
+ <files_to_read>
4
+ CRITICAL: Read these files BEFORE any other action:
5
+ 1. .planning/ROADMAP.md — phase structure, goals, and dependencies
6
+ 2. .planning/phases/{NN}-{slug}/SUMMARY.md — for each milestone phase (read all)
7
+ </files_to_read>
8
+
9
+ Milestone: {version or "current"}
10
+ Phases to check: {list of phase directories}
11
+
12
+ Instructions:
13
+ 1. Read all SUMMARY.md files for the milestone phases
14
+ 2. Build a dependency graph from provides/affects/requires fields
15
+ 3. Verify integration points:
16
+ a. Every "requires" in a later phase is "provided" by an earlier phase
17
+ b. Every "affects" target still exists and hasn't been broken
18
+ c. No circular dependencies
19
+ d. No orphaned provides (things built but never consumed)
20
+ 4. Check for:
21
+ - Broken imports/references between phases
22
+ - API contract mismatches
23
+ - Missing error handling at integration points
24
+ - Configuration inconsistencies
25
+ 5. Return findings as a structured report