prizmkit 1.1.153 → 1.1.155

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/bundled/VERSION.json +3 -3
  2. package/bundled/adapters/codex/skill-adapter.js +1 -1
  3. package/bundled/adapters/pi/skill-adapter.js +2 -1
  4. package/bundled/dev-pipeline/.env.example +2 -6
  5. package/bundled/dev-pipeline/README.md +120 -113
  6. package/bundled/dev-pipeline/assets/skill-subagent-integration.md +1 -1
  7. package/bundled/dev-pipeline/prizmkit_runtime/checkpoint_state.py +355 -15
  8. package/bundled/dev-pipeline/prizmkit_runtime/cli.py +189 -110
  9. package/bundled/dev-pipeline/prizmkit_runtime/commands.py +146 -111
  10. package/bundled/dev-pipeline/prizmkit_runtime/daemon.py +4 -20
  11. package/bundled/dev-pipeline/prizmkit_runtime/gitops.py +48 -14
  12. package/bundled/dev-pipeline/prizmkit_runtime/interoperability.py +0 -1
  13. package/bundled/dev-pipeline/prizmkit_runtime/paths.py +0 -3
  14. package/bundled/dev-pipeline/prizmkit_runtime/reset.py +122 -15
  15. package/bundled/dev-pipeline/prizmkit_runtime/reset_preserve.py +1 -1
  16. package/bundled/dev-pipeline/prizmkit_runtime/runner_classification.py +50 -2
  17. package/bundled/dev-pipeline/prizmkit_runtime/runner_models.py +1 -10
  18. package/bundled/dev-pipeline/prizmkit_runtime/runner_prompts.py +3 -3
  19. package/bundled/dev-pipeline/prizmkit_runtime/runners.py +139 -74
  20. package/bundled/dev-pipeline/prizmkit_runtime/runtime_commit.py +482 -0
  21. package/bundled/dev-pipeline/prizmkit_runtime/status.py +106 -1
  22. package/bundled/dev-pipeline/prizmkit_runtime/test_result.py +64 -11
  23. package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +145 -367
  24. package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +91 -62
  25. package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +105 -69
  26. package/bundled/dev-pipeline/scripts/init-bugfix-pipeline.py +2 -2
  27. package/bundled/dev-pipeline/scripts/prompt_framework.py +36 -41
  28. package/bundled/dev-pipeline/scripts/update-bug-status.py +197 -71
  29. package/bundled/dev-pipeline/scripts/update-checkpoint.py +77 -16
  30. package/bundled/dev-pipeline/scripts/update-feature-status.py +46 -121
  31. package/bundled/dev-pipeline/scripts/update-refactor-status.py +46 -123
  32. package/bundled/dev-pipeline/scripts/utils.py +119 -0
  33. package/bundled/dev-pipeline/templates/bootstrap-prompt.md +22 -27
  34. package/bundled/dev-pipeline/templates/bootstrap-tier3.md +71 -104
  35. package/bundled/dev-pipeline/templates/bug-fix-list-schema.json +3 -2
  36. package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +59 -111
  37. package/bundled/dev-pipeline/templates/refactor-bootstrap-prompt.md +37 -72
  38. package/bundled/dev-pipeline/templates/sections/artifact-manifest.md +39 -0
  39. package/bundled/dev-pipeline/templates/sections/bugfix-critical-paths.md +3 -1
  40. package/bundled/dev-pipeline/templates/sections/bugfix-phase-commit-report.md +8 -25
  41. package/bundled/dev-pipeline/templates/sections/bugfix-phase-diagnose-plan.md +3 -3
  42. package/bundled/dev-pipeline/templates/sections/bugfix-phase-implement.md +2 -2
  43. package/bundled/dev-pipeline/templates/sections/bugfix-phase-review.md +3 -3
  44. package/bundled/dev-pipeline/templates/sections/bugfix-phase-test.md +2 -2
  45. package/bundled/dev-pipeline/templates/sections/bugfix-reminders.md +4 -4
  46. package/bundled/dev-pipeline/templates/sections/bugfix-session-context.md +0 -1
  47. package/bundled/dev-pipeline/templates/sections/checkpoint-system.md +7 -4
  48. package/bundled/dev-pipeline/templates/sections/context-budget-rules.md +14 -27
  49. package/bundled/dev-pipeline/templates/sections/feature-completion-summary.md +20 -0
  50. package/bundled/dev-pipeline/templates/sections/phase-commit-full.md +8 -71
  51. package/bundled/dev-pipeline/templates/sections/phase-implement-full.md +7 -7
  52. package/bundled/dev-pipeline/templates/sections/phase-prizmkit-test.md +3 -3
  53. package/bundled/dev-pipeline/templates/sections/phase-review-full.md +4 -4
  54. package/bundled/dev-pipeline/templates/sections/phase-specify-plan-full.md +5 -17
  55. package/bundled/dev-pipeline/templates/sections/refactor-critical-paths.md +3 -1
  56. package/bundled/dev-pipeline/templates/sections/refactor-phase-commit-report.md +10 -23
  57. package/bundled/dev-pipeline/templates/sections/refactor-phase-implement.md +2 -2
  58. package/bundled/dev-pipeline/templates/sections/refactor-phase-plan.md +2 -2
  59. package/bundled/dev-pipeline/templates/sections/refactor-phase-review.md +3 -3
  60. package/bundled/dev-pipeline/templates/sections/refactor-phase-test.md +2 -2
  61. package/bundled/dev-pipeline/templates/sections/refactor-reminders.md +7 -7
  62. package/bundled/dev-pipeline/templates/sections/refactor-session-context.md +0 -1
  63. package/bundled/dev-pipeline/templates/sections/retrospective.md +12 -0
  64. package/bundled/dev-pipeline/templates/sections/runtime-commit-handoff.md +35 -0
  65. package/bundled/dev-pipeline/templates/session-status-schema.json +45 -62
  66. package/bundled/dev-pipeline/tests/test_auto_skip.py +111 -32
  67. package/bundled/dev-pipeline/tests/test_checkpoint_state.py +617 -30
  68. package/bundled/dev-pipeline/tests/test_generate_bootstrap_prompt.py +262 -194
  69. package/bundled/dev-pipeline/tests/test_generate_bugfix_prompt.py +62 -23
  70. package/bundled/dev-pipeline/tests/test_generate_refactor_prompt.py +76 -28
  71. package/bundled/dev-pipeline/tests/test_python_runner_parity.py +281 -206
  72. package/bundled/dev-pipeline/tests/test_recovery_workflow.py +322 -0
  73. package/bundled/dev-pipeline/tests/test_reset_modes.py +935 -0
  74. package/bundled/dev-pipeline/tests/test_reset_preserve.py +5 -7
  75. package/bundled/dev-pipeline/tests/test_runtime_commit.py +608 -0
  76. package/bundled/dev-pipeline/tests/test_unified_cli.py +617 -188
  77. package/bundled/skills/_metadata.json +9 -9
  78. package/bundled/skills/app-planner/SKILL.md +3 -3
  79. package/bundled/skills/app-planner/references/generated-plan-review.md +2 -1
  80. package/bundled/skills/app-planner/references/rules/backend/derivation-rules.md +56 -64
  81. package/bundled/skills/app-planner/references/rules/backend/fixed-rules.md +85 -240
  82. package/bundled/skills/app-planner/references/rules/backend/question-bank.md +25 -25
  83. package/bundled/skills/app-planner/references/rules/backend/question-manifest.json +16 -7
  84. package/bundled/skills/app-planner/references/rules/backend/template.md +74 -92
  85. package/bundled/skills/app-planner/references/rules/database/derivation-rules.md +93 -93
  86. package/bundled/skills/app-planner/references/rules/database/fixed-rules.md +66 -173
  87. package/bundled/skills/app-planner/references/rules/database/question-bank.md +31 -26
  88. package/bundled/skills/app-planner/references/rules/database/question-manifest.json +13 -4
  89. package/bundled/skills/app-planner/references/rules/database/template.md +76 -98
  90. package/bundled/skills/app-planner/references/rules/frontend/derivation-rules.md +68 -95
  91. package/bundled/skills/app-planner/references/rules/frontend/fixed-rules.md +93 -166
  92. package/bundled/skills/app-planner/references/rules/frontend/question-bank.md +46 -36
  93. package/bundled/skills/app-planner/references/rules/frontend/question-manifest.json +11 -2
  94. package/bundled/skills/app-planner/references/rules/frontend/template.md +79 -257
  95. package/bundled/skills/app-planner/references/rules/mobile/derivation-rules.md +91 -99
  96. package/bundled/skills/app-planner/references/rules/mobile/fixed-rules.md +73 -246
  97. package/bundled/skills/app-planner/references/rules/mobile/question-bank.md +17 -17
  98. package/bundled/skills/app-planner/references/rules/mobile/question-manifest.json +17 -2
  99. package/bundled/skills/app-planner/references/rules/mobile/template.md +73 -85
  100. package/bundled/skills/app-planner/references/rules-configuration.md +133 -65
  101. package/bundled/skills/app-planner/scripts/validate-rules-configuration.py +291 -0
  102. package/bundled/skills/bug-planner/references/schema-validation.md +1 -1
  103. package/bundled/skills/bug-planner/scripts/validate-bug-list.py +1 -1
  104. package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +21 -13
  105. package/bundled/skills/feature-pipeline-launcher/SKILL.md +22 -14
  106. package/bundled/skills/prizmkit/SKILL.md +17 -18
  107. package/bundled/skills/prizmkit/references/workflow-state-protocol.md +22 -18
  108. package/bundled/skills/prizmkit-code-review/SKILL.md +22 -58
  109. package/bundled/skills/prizmkit-code-review/references/independent-code-review.md +6 -6
  110. package/bundled/skills/prizmkit-code-review/references/review-report-template.md +2 -2
  111. package/bundled/skills/prizmkit-committer/SKILL.md +82 -132
  112. package/bundled/skills/prizmkit-deploy/SKILL.md +27 -11
  113. package/bundled/skills/prizmkit-deploy/assets/deploy-document-template.md +89 -0
  114. package/bundled/skills/prizmkit-deploy/references/ci-cd-workflows.md +44 -14
  115. package/bundled/skills/prizmkit-deploy/references/cloud-platform-deploy.md +19 -3
  116. package/bundled/skills/prizmkit-deploy/references/database-setup.md +22 -12
  117. package/bundled/skills/prizmkit-deploy/references/deploy-config-schema.md +3 -1
  118. package/bundled/skills/prizmkit-deploy/references/deploy-history-schema.md +22 -6
  119. package/bundled/skills/prizmkit-deploy/references/deploy-metadata-schema.json +49 -0
  120. package/bundled/skills/prizmkit-deploy/references/live-validation-notes.md +1 -1
  121. package/bundled/skills/prizmkit-deploy/references/pending-input-schema.json +164 -0
  122. package/bundled/skills/prizmkit-deploy/references/ssh-adapter-flow.md +9 -8
  123. package/bundled/skills/prizmkit-deploy/references/ssh-execution-flow.md +6 -6
  124. package/bundled/skills/prizmkit-implement/SKILL.md +30 -66
  125. package/bundled/skills/prizmkit-implement/references/implementation-subagent-procedure.md +4 -4
  126. package/bundled/skills/prizmkit-init/SKILL.md +4 -0
  127. package/bundled/skills/prizmkit-plan/SKILL.md +21 -64
  128. package/bundled/skills/prizmkit-plan/references/artifact-identity.md +38 -0
  129. package/bundled/skills/prizmkit-plan/references/independent-plan-review.md +4 -4
  130. package/bundled/skills/prizmkit-plan/references/review-plan-spec-loop.md +5 -5
  131. package/bundled/skills/prizmkit-prizm-docs/SKILL.md +11 -1
  132. package/bundled/skills/prizmkit-retrospective/SKILL.md +63 -77
  133. package/bundled/skills/prizmkit-retrospective/references/knowledge-injection-steps.md +3 -3
  134. package/bundled/skills/prizmkit-retrospective/references/retrospective-result-schema.json +138 -0
  135. package/bundled/skills/prizmkit-retrospective/references/structural-sync-steps.md +17 -23
  136. package/bundled/skills/prizmkit-test/SKILL.md +64 -51
  137. package/bundled/skills/prizmkit-test/references/boundary-contract-and-test-double-guidance.md +206 -0
  138. package/bundled/skills/prizmkit-test/references/independent-test-review.md +17 -9
  139. package/bundled/skills/prizmkit-test/references/test-coverage-model.md +45 -21
  140. package/bundled/skills/prizmkit-test/references/test-report-template.md +20 -13
  141. package/bundled/skills/prizmkit-workflow/SKILL.md +35 -37
  142. package/bundled/skills/prizmkit-workflow/references/artifact-identity.md +34 -0
  143. package/bundled/skills/prizmkit-workflow/references/workflow-state-protocol.md +22 -18
  144. package/bundled/skills/recovery-workflow/SKILL.md +9 -6
  145. package/bundled/skills/recovery-workflow/evals/evals.json +2 -2
  146. package/bundled/skills/recovery-workflow/references/detection.md +7 -6
  147. package/bundled/skills/recovery-workflow/scripts/detect-recovery-state.py +16 -6
  148. package/bundled/skills/refactor-pipeline-launcher/SKILL.md +21 -13
  149. package/bundled/templates/project-memory-template.md +19 -11
  150. package/package.json +1 -1
  151. package/src/scaffold.js +33 -22
  152. package/bundled/dev-pipeline/prizmkit_runtime/runner_recovery.py +0 -228
  153. package/bundled/dev-pipeline/scripts/generate-recovery-prompt.py +0 -767
  154. package/bundled/dev-pipeline/templates/sections/bugfix-artifacts.md +0 -16
  155. package/bundled/dev-pipeline/templates/sections/bugfix-session-status.md +0 -31
  156. package/bundled/dev-pipeline/templates/sections/critical-paths-agent.md +0 -7
  157. package/bundled/dev-pipeline/templates/sections/critical-paths-lite.md +0 -7
  158. package/bundled/dev-pipeline/templates/sections/directory-convention-agent.md +0 -9
  159. package/bundled/dev-pipeline/templates/sections/directory-convention-lite.md +0 -6
  160. package/bundled/dev-pipeline/templates/sections/headless-commit-authorization.md +0 -15
  161. package/bundled/dev-pipeline/templates/sections/phase-commit.md +0 -61
  162. package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-agent-suffix.md +0 -24
  163. package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-lite-suffix.md +0 -12
  164. package/bundled/dev-pipeline/templates/sections/phase-implement-agent.md +0 -44
  165. package/bundled/dev-pipeline/templates/sections/phase-implement-lite.md +0 -25
  166. package/bundled/dev-pipeline/templates/sections/phase-plan-agent.md +0 -20
  167. package/bundled/dev-pipeline/templates/sections/phase-plan-lite.md +0 -20
  168. package/bundled/dev-pipeline/templates/sections/phase-review-agent.md +0 -20
  169. package/bundled/dev-pipeline/templates/sections/refactor-artifacts.md +0 -17
  170. package/bundled/dev-pipeline/templates/sections/refactor-session-status.md +0 -28
  171. package/bundled/dev-pipeline/templates/sections/test-failure-recovery-agent.md +0 -52
  172. package/bundled/dev-pipeline/templates/sections/test-failure-recovery-lite.md +0 -52
  173. package/bundled/skills/prizmkit-code-review/references/workflow-state-protocol.md +0 -174
  174. package/bundled/skills/prizmkit-committer/references/workflow-state-protocol.md +0 -174
  175. package/bundled/skills/prizmkit-implement/references/workflow-state-protocol.md +0 -174
  176. package/bundled/skills/prizmkit-plan/references/workflow-state-protocol.md +0 -174
  177. package/bundled/skills/prizmkit-retrospective/references/workflow-state-protocol.md +0 -174
  178. package/bundled/skills/prizmkit-test/references/external-contract-mock-guidance.md +0 -119
@@ -1,5 +1,5 @@
1
1
  {
2
- "frameworkVersion": "1.1.153",
3
- "bundledAt": "2026-07-26T05:44:00.463Z",
4
- "bundledFrom": "54bad91"
2
+ "frameworkVersion": "1.1.155",
3
+ "bundledAt": "2026-07-27T14:17:49.935Z",
4
+ "bundledFrom": "330ce51"
5
5
  }
@@ -53,7 +53,7 @@ export function convertSkill(skillContent, skillName) {
53
53
  }
54
54
  );
55
55
 
56
- const codexNote = `> Codex project install: when instructions mention a PrizmKit slash command such as \`/prizmkit-plan\`, read and execute the matching project skill at \`.agents/skills/prizmkit-plan/SKILL.md\`.\n>\n> Codex interaction compatibility: when this skill or any referenced PrizmKit file says \`AskUserQuestion\`, use Codex \`request_user_input\` if it is available. If the current Codex surface does not expose \`request_user_input\`, including Default mode, ask the same question directly in chat and wait for explicit user input. Tool unavailability is not permission to choose defaults. If a source instruction asks more questions than Codex allows in one call, split them into multiple calls while preserving order. Only true headless/non-interactive runs, such as \`codex exec\` automation with no conversational user available, may skip interaction and choose documented defaults; never silently choose defaults in an interactive session.\n\n`;
56
+ const codexNote = `> Codex project install: an explicitly named PrizmKit Skill resolves to the same command name under \`.agents/skills/<command-name>/SKILL.md\`.\n>\n> Codex interaction compatibility: when this skill or any referenced PrizmKit file says \`AskUserQuestion\`, use Codex \`request_user_input\` if it is available. If the current Codex surface does not expose \`request_user_input\`, including Default mode, ask the same question directly in chat and wait for explicit user input. Tool unavailability is not permission to choose defaults. If a source instruction asks more questions than Codex allows in one call, split them into multiple calls while preserving order. Only true headless/non-interactive runs, such as \`codex exec\` automation with no conversational user available, may skip interaction and choose documented defaults; never silently choose defaults in an interactive session.\n\n`;
57
57
 
58
58
  return buildMarkdown(frontmatter, codexNote + convertedBody);
59
59
  }
@@ -12,7 +12,8 @@ export function convertSkill(skillContent, skillName) {
12
12
  const { frontmatter, body } = parseFrontmatter(skillContent);
13
13
  if (!frontmatter.name) frontmatter.name = skillName;
14
14
  const convertedBody = applyPiInteractionCompatibility(body)
15
+ .replace(/\/(prizmkit-[a-z0-9-]+)/g, '/skill:$1')
15
16
  .replace(/\$\{SKILL_DIR\}/g, `.pi/skills/${skillName}`);
16
- const note = `> Pi project install: invoke this skill with \`/skill:${skillName}\`. When instructions mention a PrizmKit slash command such as \`/prizmkit-plan\`, load and execute the matching project skill with \`/skill:prizmkit-plan\` from \`.pi/skills/prizmkit-plan/SKILL.md\`.\n>\n> Pi interaction compatibility: in interactive sessions, ask required questions directly in chat and wait for explicit user input. Only true headless runs may use documented conservative defaults.\n\n`;
17
+ const note = `> Pi project install: invoke this skill with \`/skill:${skillName}\`. An explicitly named PrizmKit Skill uses \`/skill:<same-name>\` and its project definition at \`.pi/skills/<same-name>/SKILL.md\`.\n>\n> Pi interaction compatibility: in interactive sessions, ask required questions directly in chat and wait for explicit user input. Only true headless runs may use documented conservative defaults.\n\n`;
17
18
  return buildMarkdown(frontmatter, note + convertedBody);
18
19
  }
@@ -1,12 +1,12 @@
1
1
  # PrizmKit Dev-Pipeline Environment Configuration
2
2
  # ================================================
3
3
  # Copy this file to .prizmkit/.env and uncomment the variables you want to set.
4
- # The Python runtime CLI (cli.py feature, cli.py bugfix, etc.) automatically
4
+ # The operation-first Python runtime CLI (cli.py run feature, cli.py run bugfix, etc.) automatically
5
5
  # load .prizmkit/.env via prizmkit_runtime/config.py.
6
6
  #
7
7
  # Priority: Environment variables set before script execution ALWAYS take
8
8
  # precedence over values in .prizmkit/.env. This means you can still do:
9
- # MODEL=claude-opus-4 python3 ./.prizmkit/dev-pipeline/cli.py feature run
9
+ # MODEL=claude-opus-4 python3 ./.prizmkit/dev-pipeline/cli.py run feature
10
10
  # and it will override the .prizmkit/.env value.
11
11
  #
12
12
  # If .prizmkit/.env does not exist, all defaults apply — no error is raised.
@@ -25,10 +25,6 @@
25
25
  # MAX_RETRIES=3 # Max retry attempts per task before marking failed
26
26
  # VERBOSE=1 # Verbose logging (1=on, 0=off)
27
27
 
28
- # ─── Feature Pipeline Only ────────────────────────────────────────────
29
- # PIPELINE_MODE= # Override pipeline mode for all features: lite|standard|full
30
- # Unset = auto-detect from estimated_complexity
31
-
32
28
  # ─── Refactor Pipeline Only ──────────────────────────────────────────
33
29
  # STRICT_BEHAVIOR_CHECK=1 # Enable strict behavior-preservation gates for refactor tasks (1=on, 0=off)
34
30
 
@@ -14,21 +14,20 @@ Autonomous development pipeline that drives iterative AI CLI sessions through Pr
14
14
 
15
15
  ### Unified Python CLI prerequisites
16
16
 
17
- - Python 3.10+ for the unified Python CLI skeleton under `dev-pipeline/cli.py`
18
- - No third-party Python runtime packages are required by the CLI skeleton
19
- - The existing Python runtime is canonical for behavior while parity-based Python porting proceeds
17
+ - Python 3.10+ for the canonical Python CLI under `dev-pipeline/cli.py`
18
+ - No third-party Python runtime packages are required
19
+ - The Python runtime is the sole behavior source; retired shell and PowerShell wrappers are not compatibility entrypoints
20
20
 
21
- Inspect the transition command surface without invoking legacy shell wrappers:
21
+ Inspect the operation-first command surface without dispatching runtime behavior:
22
22
 
23
23
  ```bash
24
24
  python3 dev-pipeline/cli.py --help
25
- python3 dev-pipeline/cli.py diagnostics paths
26
- python3 dev-pipeline/cli.py diagnostics entrypoints
27
- python3 dev-pipeline/cli.py feature describe
28
- python3 dev-pipeline/cli.py daemon feature describe
25
+ python3 dev-pipeline/cli.py run --help
26
+ python3 dev-pipeline/cli.py status --help
27
+ python3 dev-pipeline/cli.py diagnostics ai-cli
29
28
  ```
30
29
 
31
- The unified CLI currently describes command contracts for feature, bugfix, refactor, recovery, reset, daemon, status, and diagnostics flows. It is an architecture skeleton and transition layer; it does not yet replace the shell implementation for runtime behavior.
30
+ The public namespaces are `run`, `status`, `reset`, `daemon`, `diagnostics`, and `helper`. Standard `--help` is the only command-description interface; family names are targets, not top-level namespaces.
32
31
 
33
32
  ## Quick Start
34
33
 
@@ -42,10 +41,10 @@ python3 .prizmkit/dev-pipeline/scripts/init-pipeline.py \
42
41
  --state-dir .prizmkit/state/features
43
42
 
44
43
  # 3. Run the pipeline (foreground, Ctrl+C to pause, re-run to resume)
45
- python3 ./.prizmkit/dev-pipeline/cli.py feature run .prizmkit/plans/feature-list.json
44
+ python3 ./.prizmkit/dev-pipeline/cli.py run feature .prizmkit/plans/feature-list.json
46
45
 
47
46
  # 4. Check progress at any time (from another terminal)
48
- python3 ./.prizmkit/dev-pipeline/cli.py feature status .prizmkit/plans/feature-list.json
47
+ python3 ./.prizmkit/dev-pipeline/cli.py status feature .prizmkit/plans/feature-list.json
49
48
 
50
49
  # 5. Or run as a background daemon
51
50
  python3 ./.prizmkit/dev-pipeline/cli.py daemon feature start .prizmkit/plans/feature-list.json
@@ -55,24 +54,24 @@ python3 ./.prizmkit/dev-pipeline/cli.py daemon feature start .prizmkit/plans/fea
55
54
 
56
55
  ## Python Runtime CLI Reference
57
56
 
58
- ### `cli.py feature` — Feature Pipeline Runner
57
+ ### `cli.py run feature` — Feature Pipeline Runner
59
58
 
60
- Main entry point. Drives the full feature development pipeline.
59
+ Main foreground entry point for the feature pipeline.
61
60
 
62
61
  ```bash
63
- python3 ./cli.py feature run [.prizmkit/plans/feature-list.json] # Run all features
64
- python3 ./cli.py feature run <feature-id> [options] # Run a single feature (F-NNN)
65
- python3 ./cli.py feature status [.prizmkit/plans/feature-list.json] # Show pipeline status
66
- python3 ./cli.py reset feature # Clear all state in state/
67
- python3 ./cli.py feature test-cli # Test AI CLI detection
68
- python3 ./cli.py feature help # Show usage help
62
+ python3 ./cli.py run feature [.prizmkit/plans/feature-list.json] # Run all features
63
+ python3 ./cli.py run feature <feature-id> [options] # Run a single feature (F-NNN)
64
+ python3 ./cli.py status feature [.prizmkit/plans/feature-list.json] # Show feature status
65
+ python3 ./cli.py reset feature <feature-id> --state-only # Recover causal state without Git/artifact cleanup
66
+ python3 ./cli.py diagnostics ai-cli # Inspect AI CLI resolution
67
+ python3 ./cli.py run feature --help # Show parser-owned usage help
69
68
  ```
70
69
 
71
70
  **Single-feature options:**
72
71
 
73
72
  | Option | Description |
74
73
  |--------|-------------|
75
- | `--dry-run` | Generate bootstrap prompt only, don't spawn AI session |
74
+ | `--dry-run` | Render and validate one disposable Prompt preview without changing Git, task status, checkout, checkpoint, or session state |
76
75
  | `--resume-phase N` | Resume from specific phase number |
77
76
  | `--no-reset` | Don't reset feature artifacts before running |
78
77
 
@@ -80,67 +79,82 @@ python3 ./cli.py feature help # Show usage hel
80
79
 
81
80
  ```bash
82
81
  # Run all features
83
- python3 ./.prizmkit/dev-pipeline/cli.py feature run .prizmkit/plans/feature-list.json
82
+ python3 ./.prizmkit/dev-pipeline/cli.py run feature .prizmkit/plans/feature-list.json
84
83
 
85
84
  # Run a single feature
86
- python3 ./.prizmkit/dev-pipeline/cli.py feature run F-007
85
+ python3 ./.prizmkit/dev-pipeline/cli.py run feature F-007
87
86
 
88
- # Dry run — inspect the generated prompt without spawning a session
89
- python3 ./.prizmkit/dev-pipeline/cli.py feature run F-007 --dry-run
87
+ # Dry run — validate a disposable prompt preview without spawning a session or changing task state
88
+ python3 ./.prizmkit/dev-pipeline/cli.py run feature F-007 --dry-run
90
89
 
91
90
  # Resume from Phase 6 (implementation)
92
- python3 ./.prizmkit/dev-pipeline/cli.py feature run .prizmkit/plans/feature-list.json --resume-phase 6
91
+ python3 ./.prizmkit/dev-pipeline/cli.py run feature .prizmkit/plans/feature-list.json --resume-phase 6
93
92
  ```
94
93
 
95
94
  If `.prizmkit/plans/feature-list.json` path is omitted, defaults to `.prizmkit/plans/feature-list.json` in the project root.
96
95
 
97
96
  ---
98
97
 
99
- ### `cli.py reset feature`Reset Feature Recovery State
98
+ ### `cli.py reset <family>`Explicit Recovery and Cleanup Modes
100
99
 
101
- Reset is state-only and never starts execution. `--run` is unsupported; invoke `feature run` separately after a successful reset.
100
+ Reset never starts execution and rejects `--run`; invoke the matching `run <family>` command separately. Every invocation must select exactly one mode before the runtime will inspect mutable pipeline state or Git resources.
102
101
 
103
102
  ```bash
104
- python3 ./cli.py reset feature <feature-id> [--clean] [.prizmkit/plans/feature-list.json]
105
- python3 ./cli.py reset feature --failed --preserve-runtime [.prizmkit/plans/feature-list.json]
103
+ python3 ./cli.py reset <family> <item-id> --state-only [list-path]
104
+ python3 ./cli.py reset <family> --state-only --all [list-path]
105
+ python3 ./cli.py reset <family> <item-id-or-range> --fresh-checkout [list-path]
106
+ python3 ./cli.py reset <family> <--auto-skipped|--failed|--stalled> --fresh-checkout [list-path]
107
+ python3 ./cli.py reset <family> <item-id-or-range> --clean [list-path]
108
+ python3 ./cli.py reset <family> <--auto-skipped|--failed|--stalled> --clean [list-path]
109
+ python3 ./cli.py reset <family> --failed --preserve-runtime [list-path]
106
110
  ```
107
111
 
108
- | Flag | Description |
109
- |------|-------------|
110
- | `--clean` | Delete the task branch, session history, and `.prizmkit/specs/{slug}/` artifacts |
111
- | `--failed --preserve-runtime` | Restore every failed chain in the list while retaining checkout identity, branches/worktrees, sessions, checkpoints, artifacts, and WIP |
112
+ | Mode | Selector and effect |
113
+ |------|---------------------|
114
+ | `--state-only` | Requires one ID or explicit `--all`. Resets supported blocking roots and only causal `auto_skipped` descendants whose full blocker set is recovered; preserves checkout identity, branches/worktrees, source changes, checkpoints, and artifact/session files. Feature/Refactor roots are `failed` or `skipped`; Bugfix additionally supports `needs_info`. |
115
+ | `--fresh-checkout` | Requires one ID, range, or supported status filter. Performs the former standard reset, may discard active-checkout WIP, and publishes a new checkout boundary without deleting the task branch. |
116
+ | `--clean` | Accepts the fresh-checkout selectors and additionally deletes task branches, session history, continuation summaries, and task artifacts. |
117
+ | `--failed --preserve-runtime` | Whole-list failed-only recovery. Retains runtime history, valid checkout identity, branches/worktrees, checkpoints, artifacts, and WIP; a missing recorded branch is replaced from its local base and implementation-and-later checkpoints are rewound. |
112
118
 
113
- `--preserve-runtime` requires `--failed` and cannot be combined with `--clean`, an item ID/range, or another reset filter. It restores every `failed` root plus causal `auto_skipped` descendants, clears code/infrastructure retry counters, and marks continuation pending without clearing existing history or failure metadata. Valid checkout/branch/worktree/checkpoint identity is reused unchanged; when the recorded branch is missing, reset creates a replacement from the recorded base, retains old artifacts for reference, and rewinds implementation-and-later checkpoint stages to `pending`.
119
+ State-only rejects ranges and status filters. Preserve-runtime rejects IDs, ranges, `--all`, clean, other modes, and other filters. Missing modes, conflicting modes, unsupported selectors, and malformed causal dependency state fail before mutation.
114
120
 
115
121
  **Examples:**
116
122
 
117
123
  ```bash
118
- # Preserve all failed runtime chains, then execute separately
119
- python3 ./.prizmkit/dev-pipeline/cli.py reset feature --failed --preserve-runtime
120
- python3 ./.prizmkit/dev-pipeline/cli.py feature run .prizmkit/plans/feature-list.json
124
+ # Recover one causal state chain without changing Git/checkpoints/artifact files
125
+ python3 ./.prizmkit/dev-pipeline/cli.py reset feature F-007 --state-only
126
+ python3 ./.prizmkit/dev-pipeline/cli.py run feature F-007
121
127
 
122
- # Fresh single-feature reset, then execute separately
123
- python3 ./.prizmkit/dev-pipeline/cli.py reset feature F-007
124
- python3 ./.prizmkit/dev-pipeline/cli.py feature run F-007
128
+ # Recover all causal state chains
129
+ python3 ./.prizmkit/dev-pipeline/cli.py reset bugfix --state-only --all
130
+ python3 ./.prizmkit/dev-pipeline/cli.py run bugfix .prizmkit/plans/bug-fix-list.json
125
131
 
126
- # Destructive clean reset, then execute separately
132
+ # Preserve all failed runtime chains
133
+ python3 ./.prizmkit/dev-pipeline/cli.py reset refactor --failed --preserve-runtime
134
+ python3 ./.prizmkit/dev-pipeline/cli.py run refactor .prizmkit/plans/refactor-list.json
135
+
136
+ # Publish a fresh checkout boundary
137
+ python3 ./.prizmkit/dev-pipeline/cli.py reset feature F-007 --fresh-checkout
138
+ python3 ./.prizmkit/dev-pipeline/cli.py run feature F-007
139
+
140
+ # Destructive clean reset
127
141
  python3 ./.prizmkit/dev-pipeline/cli.py reset feature F-007 --clean my-features.json
128
- python3 ./.prizmkit/dev-pipeline/cli.py feature run F-007 my-features.json
142
+ python3 ./.prizmkit/dev-pipeline/cli.py run feature F-007 my-features.json
129
143
  ```
130
144
 
131
145
  ---
132
146
 
133
147
  ### `cli.py daemon feature` — Feature Pipeline Daemon
134
148
 
135
- Manages `cli.py feature` as a background daemon process with PID tracking and log consolidation. Designed for invocation from AI skill sessions.
149
+ Manages `cli.py run feature` as a background daemon process with PID tracking and log consolidation. Designed for invocation from AI skill sessions.
136
150
 
137
151
  ```bash
138
- python3 ./cli.py daemon feature start [.prizmkit/plans/feature-list.json] [--mode <mode>] [--env "KEY=VAL ..."]
152
+ python3 ./cli.py daemon feature start [.prizmkit/plans/feature-list.json] [--env "KEY=VAL ..."]
139
153
  python3 ./cli.py daemon feature stop
140
154
  python3 ./cli.py daemon feature status
141
155
  python3 ./cli.py daemon feature logs [--lines N] [--follow]
142
- python3 ./cli.py daemon feature restart [.prizmkit/plans/feature-list.json] [--mode <mode>] [--env "KEY=VAL ..."]
143
- python3 ./cli.py daemon feature help
156
+ python3 ./cli.py daemon feature restart [.prizmkit/plans/feature-list.json] [--env "KEY=VAL ..."]
157
+ python3 ./cli.py daemon feature --help
144
158
  ```
145
159
 
146
160
  | Subcommand | Description |
@@ -151,13 +165,10 @@ python3 ./cli.py daemon feature help
151
165
  | `logs` | View pipeline logs. `--follow` for live tail, `--lines N` for last N lines |
152
166
  | `restart` | Stop + start |
153
167
 
154
- **`--mode` options:** `lite`, `standard`, `full`
155
-
156
168
  **`--env` format:** Pass environment variables as a quoted string:
157
169
 
158
170
  ```bash
159
171
  python3 ./.prizmkit/dev-pipeline/cli.py daemon feature start .prizmkit/plans/feature-list.json \
160
- --mode standard \
161
172
  --env "MAX_RETRIES=5 MODEL=claude-sonnet-4.6"
162
173
  ```
163
174
 
@@ -183,19 +194,19 @@ python3 ./.prizmkit/dev-pipeline/cli.py daemon feature start .prizmkit/plans/fea
183
194
 
184
195
  ---
185
196
 
186
- ### `cli.py bugfix` — Bug-Fix Pipeline Runner
197
+ ### `cli.py run bugfix` — Bug-Fix Pipeline Runner
187
198
 
188
- Equivalent to `cli.py feature` but for the bug-fix pipeline.
199
+ Uses the same operation-first foreground contract as `cli.py run feature`.
189
200
 
190
201
  ```bash
191
- python3 ./cli.py bugfix run [.prizmkit/plans/bug-fix-list.json] # Run all bugs
192
- python3 ./cli.py bugfix run <bug-id> [options] # Run single bug (B-NNN)
193
- python3 ./cli.py bugfix status [.prizmkit/plans/bug-fix-list.json] # Show status
194
- python3 ./cli.py reset bugfix # Clear all bugfix state
195
- python3 ./cli.py bugfix help
202
+ python3 ./cli.py run bugfix [.prizmkit/plans/bug-fix-list.json] # Run all bugs
203
+ python3 ./cli.py run bugfix <bug-id> [options] # Run single bug (B-NNN)
204
+ python3 ./cli.py status bugfix [.prizmkit/plans/bug-fix-list.json] # Show status
205
+ python3 ./cli.py reset bugfix <bug-id> --state-only # Recover causal Bugfix state
206
+ python3 ./cli.py run bugfix --help
196
207
  ```
197
208
 
198
- **Single-bug options:** `--dry-run` (same as `cli.py feature`)
209
+ **Single-bug options:** `--dry-run` (same as `cli.py run feature`)
199
210
 
200
211
  Processes bugs by: **severity** (critical > high > medium > low) then **priority** (high > medium > low).
201
212
 
@@ -203,7 +214,7 @@ Processes bugs by: **severity** (critical > high > medium > low) then **priority
203
214
 
204
215
  ### `cli.py daemon bugfix` — Bug-Fix Pipeline Daemon
205
216
 
206
- Identical interface to `cli.py daemon feature` but manages `cli.py bugfix` in background.
217
+ Identical interface to `cli.py daemon feature` but manages `cli.py run bugfix` in background.
207
218
 
208
219
  ```bash
209
220
  python3 ./cli.py daemon bugfix start [.prizmkit/plans/bug-fix-list.json] [--env "KEY=VAL ..."]
@@ -289,19 +300,18 @@ python3 scripts/generate-bootstrap-prompt.py \
289
300
  --resume-phase <n|null> \
290
301
  --output <path> \
291
302
  [--state-dir <path>] \
292
- [--template <path>] \
293
- [--mode lite|standard|full]
303
+ [--template <path>]
294
304
  ```
295
305
 
296
306
  **Prompt assembly:**
297
307
 
298
308
  | Condition | Prompt Source | Behavior |
299
309
  |-----------|---------------|----------|
300
- | `templates/sections/` exists and no `--template` | Modular sections | Uses the full/tier3-equivalent guidance for every `estimated_complexity` value |
310
+ | `templates/sections/` exists and no `--template` | Modular sections | Uses one canonical complete lifecycle guidance profile |
301
311
  | Custom `--template <path>` supplied | Caller template | Renders the explicit template with legacy placeholder/conditional support |
302
- | Sections unavailable and no custom template | `bootstrap-tier3.md`, then `bootstrap-prompt.md` | Monolithic compatibility fallback; never defaults to retired reduced-tier templates |
312
+ | Canonical sections unavailable and no custom template | none | Fail closed; do not launch a partial or stale autonomous prompt |
303
313
 
304
- `estimated_complexity` remains in feature metadata and rendered Session Context for planning summaries and compatibility, but it no longer chooses a reduced prompt template.
314
+ `estimated_complexity` remains in feature metadata and rendered Session Context for planning and ordering, but it does not choose a prompt tier.
305
315
 
306
316
  **Output (JSON to stdout):**
307
317
 
@@ -309,12 +319,11 @@ python3 scripts/generate-bootstrap-prompt.py \
309
319
  { "success": true, "output_path": "/absolute/path/prompt.md", "model": "claude-sonnet-4.6" }
310
320
  ```
311
321
 
312
- The `model` field is extracted from the feature's `"model"` field in .prizmkit/plans/feature-list.json (empty string if not specified). Used by `cli.py feature` to set `--model` on the AI CLI.
322
+ The `model` field is extracted from the feature's `"model"` field in .prizmkit/plans/feature-list.json (empty string if not specified). Used by `cli.py run feature` to set `--model` on the AI CLI.
313
323
 
314
324
  **Conditional blocks resolved for explicit legacy templates:**
315
325
  - `{{IF_RESUME}}` / `{{IF_FRESH_START}}` — Resume vs fresh start
316
326
  - `{{IF_INIT_NEEDED}}` / `{{IF_INIT_DONE}}` — PrizmKit init status
317
- - `{{IF_MODE_LITE}}` / `{{IF_MODE_STANDARD}}` / `{{IF_MODE_FULL}}` — Compatibility mode blocks
318
327
 
319
328
  ---
320
329
 
@@ -531,10 +540,9 @@ Also exports: `log_info`, `log_warn`, `log_error`, `log_success` (with timestamp
531
540
 
532
541
  | Variable | Default | Used By | Description |
533
542
  |----------|---------|---------|-------------|
534
- | `MAX_RETRIES` | `3` | cli.py feature | Max retry attempts per feature before marking as failed |
535
- | `PIPELINE_MODE` | (auto) | cli.py feature, cli.py daemon feature | Override mode for all features: `lite\|standard\|full` |
536
- | `DEV_BRANCH` | auto-generated | cli.py feature | Custom git branch name (default: `dev/{feature-id}-{timestamp}`) |
537
- | `AUTO_PUSH` | `0` | cli.py feature | Set to `1` to auto-push branch to remote after successful session |
543
+ | `MAX_RETRIES` | `3` | cli.py run feature | Max retry attempts per feature before marking as failed |
544
+ | `DEV_BRANCH` | auto-generated | cli.py run feature | Custom git branch name (default: `dev/{feature-id}-{timestamp}`) |
545
+ | `AUTO_PUSH` | `0` | cli.py run feature | Set to `1` to auto-push branch to remote after successful session |
538
546
 
539
547
  ### AI CLI Configuration
540
548
 
@@ -542,27 +550,26 @@ Also exports: `log_info`, `log_warn`, `log_error`, `log_success` (with timestamp
542
550
  |----------|---------|---------|-------------|
543
551
  | `AI_CLI` | auto-detect | Python runtime | AI CLI command name. Auto-detects `cbc`, `claude`, or `codex` |
544
552
  | `PRIZMKIT_PLATFORM` | auto-detect | Python runtime | Platform hint for custom/wrapped AI CLI commands: `codebuddy`, `claude`, or `codex` |
545
- | `MODEL` | (none) | cli.py feature, cli.py bugfix | AI model fallback. Overridden by per-feature `model` field. See [Model Selection](#model-selection) |
553
+ | `MODEL` | (none) | cli.py run feature, cli.py run bugfix | AI model fallback. Overridden by per-feature `model` field. See [Model Selection](#model-selection) |
546
554
  | `CODEBUDDY_CLI` | (deprecated) | Python runtime | Legacy alias for `AI_CLI`. Prefer `AI_CLI` |
547
- | `VERBOSE` | `0` | cli.py feature | Set to `1` to enable `--verbose` on AI CLI |
555
+ | `VERBOSE` | `0` | cli.py run feature | Set to `1` to enable `--verbose` on AI CLI |
548
556
 
549
557
  ### Monitoring & Logging
550
558
 
551
559
  | Variable | Default | Used By | Description |
552
560
  |----------|---------|---------|-------------|
553
- | `HEARTBEAT_INTERVAL` | `30` | cli.py feature | Seconds between heartbeat log output |
554
- | `HEARTBEAT_STALE_THRESHOLD` | `600` | cli.py feature | Seconds before a session is considered stale/stuck |
561
+ | `HEARTBEAT_INTERVAL` | `30` | cli.py run feature | Seconds between heartbeat log output |
562
+ | `HEARTBEAT_STALE_THRESHOLD` | `600` | cli.py run feature | Seconds before a session is considered stale/stuck |
555
563
 
556
564
  **Examples:**
557
565
 
558
566
  ```bash
559
567
  # All env vars in one invocation
560
568
  MAX_RETRIES=5 MODEL=claude-sonnet-4.6 VERBOSE=1 \
561
- python3 ./.prizmkit/dev-pipeline/cli.py feature run .prizmkit/plans/feature-list.json
569
+ python3 ./.prizmkit/dev-pipeline/cli.py run feature .prizmkit/plans/feature-list.json
562
570
 
563
571
  # Via daemon with --env
564
572
  python3 ./.prizmkit/dev-pipeline/cli.py daemon feature start .prizmkit/plans/feature-list.json \
565
- --mode standard \
566
573
  --env "MAX_RETRIES=5 AUTO_PUSH=1"
567
574
  ```
568
575
 
@@ -598,23 +605,23 @@ Specify a model for individual features in `.prizmkit/plans/feature-list.json`:
598
605
 
599
606
  ```bash
600
607
  # All features without a per-feature model use Sonnet
601
- MODEL=claude-sonnet-4.6 python3 ./.prizmkit/dev-pipeline/cli.py feature run .prizmkit/plans/feature-list.json
608
+ MODEL=claude-sonnet-4.6 python3 ./.prizmkit/dev-pipeline/cli.py run feature .prizmkit/plans/feature-list.json
602
609
 
603
610
  # Destructively reset, then retry with Opus as a separate run
604
611
  python3 ./.prizmkit/dev-pipeline/cli.py reset feature F-007 --clean
605
- MODEL=claude-opus-4.6 python3 ./.prizmkit/dev-pipeline/cli.py feature run F-007
612
+ MODEL=claude-opus-4.6 python3 ./.prizmkit/dev-pipeline/cli.py run feature F-007
606
613
 
607
- # Test which model the CLI is using
608
- MODEL=claude-sonnet-4.6 python3 ./.prizmkit/dev-pipeline/cli.py feature test-cli
614
+ # Inspect the resolved global AI CLI and model
615
+ MODEL=claude-sonnet-4.6 python3 ./.prizmkit/dev-pipeline/cli.py diagnostics ai-cli
609
616
  ```
610
617
 
611
618
  ### Dry-Run Model Verification
612
619
 
613
- Use `--dry-run` to verify which model will be used without spawning a session:
620
+ Use `--dry-run` to verify which model will be used without spawning a session or persisting Git/task/checkpoint changes:
614
621
 
615
622
  ```bash
616
- python3 ./.prizmkit/dev-pipeline/cli.py feature run F-017 --dry-run
617
- # Output includes: "Feature Model: claude-opus-4.6"
623
+ python3 ./.prizmkit/dev-pipeline/cli.py run feature F-017 --dry-run
624
+ # Output includes: "Dry-run Prompt validated ... model=claude-opus-4.6"
618
625
  ```
619
626
 
620
627
  ### Common Model IDs
@@ -652,15 +659,15 @@ To permanently configure, create `.prizmkit/config.json`:
652
659
  Or override per-invocation:
653
660
 
654
661
  ```bash
655
- AI_CLI=claude python3 ./.prizmkit/dev-pipeline/cli.py feature run .prizmkit/plans/feature-list.json
662
+ AI_CLI=claude python3 ./.prizmkit/dev-pipeline/cli.py run feature .prizmkit/plans/feature-list.json
656
663
  ```
657
664
 
658
- ### Testing AI CLI (`test-cli`)
665
+ ### AI CLI Diagnostics
659
666
 
660
667
  ```bash
661
- python3 ./.prizmkit/dev-pipeline/cli.py feature test-cli
662
- MODEL=claude-sonnet-4.6 python3 ./.prizmkit/dev-pipeline/cli.py feature test-cli
663
- AI_CLI=cbc python3 ./.prizmkit/dev-pipeline/cli.py feature test-cli
668
+ python3 ./.prizmkit/dev-pipeline/cli.py diagnostics ai-cli
669
+ MODEL=claude-sonnet-4.6 python3 ./.prizmkit/dev-pipeline/cli.py diagnostics ai-cli
670
+ AI_CLI=cbc python3 ./.prizmkit/dev-pipeline/cli.py diagnostics ai-cli
664
671
  ```
665
672
 
666
673
  ---
@@ -670,7 +677,7 @@ AI_CLI=cbc python3 ./.prizmkit/dev-pipeline/cli.py feature test-cli
670
677
  ### Feature Pipeline Execution Flow
671
678
 
672
679
  ```
673
- cli.py feature run command
680
+ cli.py run feature command
674
681
  |
675
682
  +- detect-stuck.py # Check for stale/stuck sessions
676
683
  +- update-feature-status.py # get_next: find next runnable feature
@@ -693,17 +700,17 @@ cli.py feature run command
693
700
 
694
701
  ### Unified Feature Prompt Execution
695
702
 
696
- Feature bootstrap prompts use the same full/tier3-equivalent modular section composition for every feature task. Complexity metadata is still retained for planning, summaries, dependency/status compatibility, and rendered Session Context, but it no longer reduces prompt guidance.
703
+ Feature bootstrap prompts use one canonical modular section composition for every task. Complexity metadata remains available for planning, summaries, dependency/status compatibility, and rendered Session Context, but it does not alter prompt guidance.
697
704
 
698
705
  | Feature metadata | Normal prompt source | Execution guidance |
699
706
  |------------------|----------------------|--------------------|
700
- | `estimated_complexity: low` | `templates/sections/` full composition | Main orchestrator builds context, plans, implements directly, runs review/test/browser/commit gates |
701
- | `estimated_complexity: medium` | `templates/sections/` full composition | Same full guidance |
702
- | `estimated_complexity: high` / `critical` | `templates/sections/` full composition | Same full guidance |
707
+ | `estimated_complexity: low` | `templates/sections/` canonical composition | Plan implement review configured verification test → report → retrospective → Runtime commit handoff |
708
+ | `estimated_complexity: medium` | `templates/sections/` canonical composition | Same complete guidance |
709
+ | `estimated_complexity: high` / `critical` | `templates/sections/` canonical composition | Same complete guidance |
703
710
 
704
- Monolithic compatibility fallback uses `bootstrap-tier3.md` before `bootstrap-prompt.md` only when sections are unavailable and no custom `--template` was supplied.
711
+ Missing canonical sections fail closed. An explicit `--template` remains available only for caller-supplied compatibility templates.
705
712
 
706
- **Self-evolve mode:** Uses the same full feature prompt guidance with additional framework guardrails supplied by the feature context.
713
+ **Self-evolve tasks:** Use the same canonical feature prompt with additional framework guardrails supplied by the feature context.
707
714
 
708
715
  ### Feature Dependency Resolution
709
716
 
@@ -749,14 +756,14 @@ cat .prizmkit/state/features/F-003/sessions/F-003-*/logs/session.log | less
749
756
  ### Pause & Resume
750
757
 
751
758
  - **Ctrl+C** triggers graceful shutdown — current state is saved
752
- - **Re-running** `python3 ./cli.py feature run` resumes from where it left off (completed features skipped)
753
- - Force resume from a phase: `python3 ./cli.py feature run .prizmkit/plans/feature-list.json --resume-phase 6`
759
+ - **Re-running** `python3 ./cli.py run feature` resumes from where it left off (completed features skipped)
760
+ - Force resume from a phase: `python3 ./cli.py run feature .prizmkit/plans/feature-list.json --resume-phase 6`
754
761
 
755
762
  ### Manual Intervention
756
763
 
757
764
  ```bash
758
765
  # Check what failed
759
- python3 ./.prizmkit/dev-pipeline/cli.py feature status .prizmkit/plans/feature-list.json
766
+ python3 ./.prizmkit/dev-pipeline/cli.py status feature .prizmkit/plans/feature-list.json
760
767
 
761
768
  # Review session logs
762
769
  cat .prizmkit/state/features/F-XXX/sessions/*/logs/session.log
@@ -774,7 +781,7 @@ python3 .prizmkit/dev-pipeline/scripts/update-feature-status.py \
774
781
  --feature-id F-XXX --action reset
775
782
 
776
783
  # Resume
777
- python3 ./.prizmkit/dev-pipeline/cli.py feature run .prizmkit/plans/feature-list.json
784
+ python3 ./.prizmkit/dev-pipeline/cli.py run feature .prizmkit/plans/feature-list.json
778
785
  ```
779
786
 
780
787
  ---
@@ -788,17 +795,17 @@ The bug fix pipeline provides the same autonomous outer-loop as the feature pipe
788
795
  ```bash
789
796
  # 1. Generate bug fix list (via bug-planner skill)
790
797
  # 2. Run foreground
791
- python3 ./.prizmkit/dev-pipeline/cli.py bugfix run .prizmkit/plans/bug-fix-list.json
798
+ python3 ./.prizmkit/dev-pipeline/cli.py run bugfix .prizmkit/plans/bug-fix-list.json
792
799
  # 3. Or as daemon
793
800
  python3 ./.prizmkit/dev-pipeline/cli.py daemon bugfix start .prizmkit/plans/bug-fix-list.json
794
801
  # 4. Check progress
795
- python3 ./.prizmkit/dev-pipeline/cli.py bugfix status .prizmkit/plans/bug-fix-list.json
802
+ python3 ./.prizmkit/dev-pipeline/cli.py status bugfix .prizmkit/plans/bug-fix-list.json
796
803
  ```
797
804
 
798
805
  ### Bug Fix Execution Flow
799
806
 
800
807
  ```
801
- cli.py bugfix run command
808
+ cli.py run bugfix command
802
809
  |
803
810
  +- update-bug-status.py # get_next (severity -> priority order)
804
811
  +- generate-bugfix-prompt.py # Build prompt from template
@@ -851,13 +858,12 @@ cli.py bugfix run command
851
858
 
852
859
  ```
853
860
  .prizmkit/dev-pipeline/
854
- +-- cli.py feature # Main pipeline runner (features)
855
- +-- cli.py reset feature # Reset & retry failed feature
856
- +-- cli.py reset feature # Reset/clean feature for re-execution
857
- +-- cli.py daemon feature # Background daemon for feature pipeline
858
- +-- cli.py bugfix # Bug-fix pipeline runner
859
- +-- cli.py reset bugfix # Reset & retry failed bug
860
- +-- cli.py daemon bugfix # Background daemon for bugfix pipeline
861
+ +-- cli.py run <family> # Foreground feature/bugfix/refactor runners
862
+ +-- cli.py status <family|all> # Read-only family or aggregate status
863
+ +-- cli.py reset <family> # Explicit state-only/fresh/clean/preserve reset modes
864
+ +-- cli.py daemon <family> # Background daemon lifecycle
865
+ +-- cli.py diagnostics <action> # Paths, entrypoints, version, and AI CLI resolution
866
+ +-- cli.py helper # Low-level cross-platform helper commands
861
867
  +-- README.md # This file
862
868
  +-- .gitignore # Ignores .prizmkit/state/, __pycache__/
863
869
  |
@@ -880,10 +886,11 @@ cli.py bugfix run command
880
886
  | +-- parse-stream-progress.py # Real-time stream-json progress parser
881
887
  |
882
888
  +-- templates/
883
- | +-- sections/ # Modular feature prompt sections (normal full guidance path)
884
- | +-- bootstrap-tier3.md # Legacy monolithic full prompt fallback
885
- | +-- bootstrap-prompt.md # Last-resort monolithic fallback
886
- | +-- bugfix-bootstrap-prompt.md # Bug-fix session prompt template
889
+ | +-- sections/ # Canonical modular prompt sections
890
+ | +-- bootstrap-tier3.md # Explicit custom-template compatibility fixture
891
+ | +-- bootstrap-prompt.md # Minimal explicit compatibility template
892
+ | +-- bugfix-bootstrap-prompt.md # Bugfix explicit compatibility template
893
+ | +-- refactor-bootstrap-prompt.md # Refactor explicit compatibility template
887
894
  | +-- feature-list-schema.json # JSON schema for .prizmkit/plans/feature-list.json
888
895
  | +-- bug-fix-list-schema.json # JSON schema for .prizmkit/plans/bug-fix-list.json
889
896
  | +-- session-status-schema.json # JSON schema for session-status.json
@@ -945,7 +952,7 @@ Check `set -e` interactions. All python invocations in the main loop should have
945
952
  Verify CLI is functional: `claude -p "test" --dangerously-skip-permissions`, `echo "test" | cbc --print -y`, or `echo "test" | codex --ask-for-approval never --sandbox danger-full-access exec --skip-git-repo-check -`
946
953
 
947
954
  ### "PIPELINE_BLOCKED" loops
948
- All remaining features have unmet dependencies. Use `python3 ./cli.py feature status` to find the blocking feature, then reset or manually complete it.
955
+ All remaining features have unmet dependencies. Use `python3 ./cli.py status feature` to find the blocking feature, then reset or manually complete it.
949
956
 
950
957
  ### Feature marked as "crashed"
951
958
  Session exited without `session-status.json`. Pipeline retries up to `MAX_RETRIES` times automatically.
@@ -15,7 +15,7 @@ Skill behavior is owned by canonical skills:
15
15
  ```text
16
16
  dev-pipeline (outer loop)
17
17
  |
18
- +-- cli.py feature/bugfix/refactor Python runtime CLI — picks next item, starts CLI
18
+ +-- cli.py run <family> Python runtime CLI — picks next item, starts CLI
19
19
  +-- scripts/ Python state and prompt management scripts
20
20
  +-- templates/ Session prompt templates and sections
21
21
  |