prizmkit 1.1.100 → 1.1.102

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 (317) hide show
  1. package/bin/create-prizmkit.js +4 -4
  2. package/bundled/VERSION.json +3 -3
  3. package/bundled/dev-pipeline/.env.example +3 -3
  4. package/bundled/dev-pipeline/README.md +110 -90
  5. package/bundled/dev-pipeline/assets/prizm-dev-team-integration.md +1 -1
  6. package/bundled/dev-pipeline/cli.py +27 -0
  7. package/bundled/dev-pipeline/prizmkit_runtime/__init__.py +13 -0
  8. package/bundled/dev-pipeline/prizmkit_runtime/__main__.py +9 -0
  9. package/bundled/dev-pipeline/prizmkit_runtime/cli.py +193 -0
  10. package/bundled/dev-pipeline/prizmkit_runtime/commands.py +313 -0
  11. package/bundled/dev-pipeline/prizmkit_runtime/compat.py +32 -0
  12. package/bundled/dev-pipeline/prizmkit_runtime/config.py +410 -0
  13. package/bundled/dev-pipeline/prizmkit_runtime/daemon.py +478 -0
  14. package/bundled/dev-pipeline/prizmkit_runtime/gitops.py +734 -0
  15. package/bundled/dev-pipeline/prizmkit_runtime/heartbeat.py +256 -0
  16. package/bundled/dev-pipeline/prizmkit_runtime/interoperability.py +109 -0
  17. package/bundled/dev-pipeline/prizmkit_runtime/paths.py +110 -0
  18. package/bundled/dev-pipeline/prizmkit_runtime/processes.py +373 -0
  19. package/bundled/dev-pipeline/prizmkit_runtime/reset.py +389 -0
  20. package/bundled/dev-pipeline/prizmkit_runtime/runner_bookkeeping.py +51 -0
  21. package/bundled/dev-pipeline/prizmkit_runtime/runner_classification.py +179 -0
  22. package/bundled/dev-pipeline/prizmkit_runtime/runner_models.py +355 -0
  23. package/bundled/dev-pipeline/prizmkit_runtime/runner_prompts.py +118 -0
  24. package/bundled/dev-pipeline/prizmkit_runtime/runner_recovery.py +187 -0
  25. package/bundled/dev-pipeline/prizmkit_runtime/runner_status.py +153 -0
  26. package/bundled/dev-pipeline/prizmkit_runtime/runners.py +425 -0
  27. package/bundled/dev-pipeline/prizmkit_runtime/sessions.py +560 -0
  28. package/bundled/dev-pipeline/prizmkit_runtime/status.py +71 -0
  29. package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +51 -36
  30. package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +20 -5
  31. package/bundled/dev-pipeline/scripts/generate-recovery-prompt.py +2 -2
  32. package/bundled/dev-pipeline/scripts/parse-stream-progress.py +39 -0
  33. package/bundled/dev-pipeline/templates/agent-prompts/dev-implement.md +8 -2
  34. package/bundled/dev-pipeline/templates/agent-prompts/reviewer-review.md +1 -1
  35. package/bundled/dev-pipeline/templates/bootstrap-prompt.md +6 -2
  36. package/bundled/dev-pipeline/templates/bootstrap-tier1.md +14 -6
  37. package/bundled/dev-pipeline/templates/bootstrap-tier2.md +14 -4
  38. package/bundled/dev-pipeline/templates/bootstrap-tier3.md +14 -4
  39. package/bundled/dev-pipeline/templates/sections/context-budget-rules.md +2 -0
  40. package/bundled/dev-pipeline/templates/sections/log-size-awareness.md +9 -30
  41. package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-agent-suffix.md +15 -7
  42. package/bundled/dev-pipeline/templates/sections/phase-implement-agent.md +42 -29
  43. package/bundled/dev-pipeline/templates/sections/phase-implement-full.md +41 -39
  44. package/bundled/dev-pipeline/templates/sections/phase-implement-lite.md +8 -17
  45. package/bundled/dev-pipeline/templates/sections/phase-prizmkit-test.md +2 -2
  46. package/bundled/dev-pipeline/templates/sections/phase-review-agent.md +1 -3
  47. package/bundled/dev-pipeline/templates/sections/phase-review-full.md +1 -3
  48. package/bundled/dev-pipeline/templates/sections/phase0-test-baseline.md +3 -8
  49. package/bundled/dev-pipeline/templates/sections/test-failure-recovery-agent.md +6 -2
  50. package/bundled/dev-pipeline/templates/sections/test-failure-recovery-lite.md +5 -1
  51. package/bundled/dev-pipeline/tests/test_auto_skip.py +436 -14
  52. package/bundled/dev-pipeline/tests/test_generate_bootstrap_prompt.py +115 -7
  53. package/bundled/dev-pipeline/tests/test_generate_bugfix_prompt.py +40 -0
  54. package/bundled/dev-pipeline/tests/test_python_runner_parity.py +1226 -0
  55. package/bundled/dev-pipeline/tests/test_unified_cli.py +1045 -0
  56. package/bundled/skills/_metadata.json +1 -1
  57. package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +29 -34
  58. package/bundled/skills/bugfix-pipeline-launcher/references/configuration.md +6 -5
  59. package/bundled/skills/feature-pipeline-launcher/SKILL.md +29 -35
  60. package/bundled/skills/feature-pipeline-launcher/references/configuration.md +7 -6
  61. package/bundled/skills/feature-workflow/SKILL.md +3 -6
  62. package/bundled/skills/recovery-workflow/SKILL.md +23 -32
  63. package/bundled/skills/refactor-pipeline-launcher/SKILL.md +29 -35
  64. package/bundled/skills/refactor-pipeline-launcher/references/configuration.md +7 -6
  65. package/bundled/skills/refactor-workflow/SKILL.md +3 -6
  66. package/bundled/templates/hooks/commit-intent.json +2 -2
  67. package/bundled/templates/hooks/diff-prizm-docs.py +226 -0
  68. package/bundled/templates/hooks/prizm-pre-commit.py +45 -0
  69. package/bundled/templates/hooks/validate-prizm-docs.py +240 -0
  70. package/package.json +1 -1
  71. package/src/config.js +42 -19
  72. package/src/external-skills.js +14 -14
  73. package/src/index.js +3 -6
  74. package/src/manifest.js +11 -5
  75. package/src/metadata.js +7 -18
  76. package/src/platforms.js +25 -0
  77. package/src/prompts.js +0 -12
  78. package/src/runtimes.js +18 -11
  79. package/src/scaffold.js +144 -122
  80. package/src/upgrade.js +12 -3
  81. package/bundled/dev-pipeline/launch-bugfix-daemon.sh +0 -500
  82. package/bundled/dev-pipeline/launch-feature-daemon.sh +0 -657
  83. package/bundled/dev-pipeline/launch-refactor-daemon.sh +0 -502
  84. package/bundled/dev-pipeline/lib/branch.sh +0 -326
  85. package/bundled/dev-pipeline/lib/common.sh +0 -1476
  86. package/bundled/dev-pipeline/lib/heartbeat.sh +0 -469
  87. package/bundled/dev-pipeline/reset-bug.sh +0 -425
  88. package/bundled/dev-pipeline/reset-feature.sh +0 -436
  89. package/bundled/dev-pipeline/reset-refactor.sh +0 -423
  90. package/bundled/dev-pipeline/run-bugfix.sh +0 -1430
  91. package/bundled/dev-pipeline/run-feature.sh +0 -1718
  92. package/bundled/dev-pipeline/run-recovery.sh +0 -648
  93. package/bundled/dev-pipeline/run-refactor.sh +0 -1463
  94. package/bundled/dev-pipeline/tests/test-path-resolution.sh +0 -100
  95. package/bundled/dev-pipeline-windows/.env.example +0 -36
  96. package/bundled/dev-pipeline-windows/README.md +0 -30
  97. package/bundled/dev-pipeline-windows/SCHEMA_ANALYSIS.md +0 -533
  98. package/bundled/dev-pipeline-windows/assets/feature-list-example.json +0 -146
  99. package/bundled/dev-pipeline-windows/assets/prizm-dev-team-integration.md +0 -137
  100. package/bundled/dev-pipeline-windows/launch-bugfix-daemon.ps1 +0 -9
  101. package/bundled/dev-pipeline-windows/launch-feature-daemon.ps1 +0 -9
  102. package/bundled/dev-pipeline-windows/launch-refactor-daemon.ps1 +0 -9
  103. package/bundled/dev-pipeline-windows/lib/branch.ps1 +0 -235
  104. package/bundled/dev-pipeline-windows/lib/common.ps1 +0 -991
  105. package/bundled/dev-pipeline-windows/lib/daemon.ps1 +0 -140
  106. package/bundled/dev-pipeline-windows/lib/pipeline.ps1 +0 -1051
  107. package/bundled/dev-pipeline-windows/lib/reset.ps1 +0 -121
  108. package/bundled/dev-pipeline-windows/reset-bug.ps1 +0 -10
  109. package/bundled/dev-pipeline-windows/reset-feature.ps1 +0 -10
  110. package/bundled/dev-pipeline-windows/reset-refactor.ps1 +0 -10
  111. package/bundled/dev-pipeline-windows/run-bugfix.ps1 +0 -9
  112. package/bundled/dev-pipeline-windows/run-feature.ps1 +0 -9
  113. package/bundled/dev-pipeline-windows/run-recovery.ps1 +0 -179
  114. package/bundled/dev-pipeline-windows/run-refactor.ps1 +0 -9
  115. package/bundled/dev-pipeline-windows/scripts/check-session-status.py +0 -301
  116. package/bundled/dev-pipeline-windows/scripts/continuation.py +0 -374
  117. package/bundled/dev-pipeline-windows/scripts/detect-stuck.py +0 -530
  118. package/bundled/dev-pipeline-windows/scripts/generate-bootstrap-prompt.py +0 -2279
  119. package/bundled/dev-pipeline-windows/scripts/generate-bugfix-prompt.py +0 -763
  120. package/bundled/dev-pipeline-windows/scripts/generate-recovery-prompt.py +0 -805
  121. package/bundled/dev-pipeline-windows/scripts/generate-refactor-prompt.py +0 -841
  122. package/bundled/dev-pipeline-windows/scripts/init-bugfix-pipeline.py +0 -316
  123. package/bundled/dev-pipeline-windows/scripts/init-dev-team.py +0 -134
  124. package/bundled/dev-pipeline-windows/scripts/init-pipeline.py +0 -382
  125. package/bundled/dev-pipeline-windows/scripts/init-refactor-pipeline.py +0 -399
  126. package/bundled/dev-pipeline-windows/scripts/parse-stream-progress.py +0 -1362
  127. package/bundled/dev-pipeline-windows/scripts/patch-completion-notes.py +0 -191
  128. package/bundled/dev-pipeline-windows/scripts/prizmkit-test-gate.py +0 -446
  129. package/bundled/dev-pipeline-windows/scripts/update-bug-status.py +0 -1121
  130. package/bundled/dev-pipeline-windows/scripts/update-checkpoint.py +0 -173
  131. package/bundled/dev-pipeline-windows/scripts/update-feature-status.py +0 -1789
  132. package/bundled/dev-pipeline-windows/scripts/update-refactor-status.py +0 -1327
  133. package/bundled/dev-pipeline-windows/scripts/utils.py +0 -542
  134. package/bundled/dev-pipeline-windows/templates/agent-prompts/critic-plan-challenge.md +0 -7
  135. package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-fix.md +0 -7
  136. package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-implement.md +0 -65
  137. package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-resume.md +0 -5
  138. package/bundled/dev-pipeline-windows/templates/agent-prompts/reviewer-review.md +0 -7
  139. package/bundled/dev-pipeline-windows/templates/bootstrap-prompt.md +0 -73
  140. package/bundled/dev-pipeline-windows/templates/bootstrap-tier1.md +0 -589
  141. package/bundled/dev-pipeline-windows/templates/bootstrap-tier2.md +0 -710
  142. package/bundled/dev-pipeline-windows/templates/bootstrap-tier3.md +0 -791
  143. package/bundled/dev-pipeline-windows/templates/bug-fix-list-schema.json +0 -263
  144. package/bundled/dev-pipeline-windows/templates/bugfix-bootstrap-prompt.md +0 -326
  145. package/bundled/dev-pipeline-windows/templates/feature-list-schema.json +0 -237
  146. package/bundled/dev-pipeline-windows/templates/refactor-bootstrap-prompt.md +0 -340
  147. package/bundled/dev-pipeline-windows/templates/refactor-list-schema.json +0 -270
  148. package/bundled/dev-pipeline-windows/templates/sections/ac-verification-checklist.md +0 -7
  149. package/bundled/dev-pipeline-windows/templates/sections/checkpoint-system.md +0 -91
  150. package/bundled/dev-pipeline-windows/templates/sections/context-budget-rules.md +0 -34
  151. package/bundled/dev-pipeline-windows/templates/sections/critical-paths-agent.md +0 -10
  152. package/bundled/dev-pipeline-windows/templates/sections/critical-paths-full.md +0 -12
  153. package/bundled/dev-pipeline-windows/templates/sections/critical-paths-lite.md +0 -7
  154. package/bundled/dev-pipeline-windows/templates/sections/directory-convention-agent.md +0 -8
  155. package/bundled/dev-pipeline-windows/templates/sections/directory-convention-full.md +0 -9
  156. package/bundled/dev-pipeline-windows/templates/sections/directory-convention-lite.md +0 -6
  157. package/bundled/dev-pipeline-windows/templates/sections/failure-capture.md +0 -21
  158. package/bundled/dev-pipeline-windows/templates/sections/feature-context.md +0 -21
  159. package/bundled/dev-pipeline-windows/templates/sections/log-size-awareness.md +0 -41
  160. package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification-auto.md +0 -283
  161. package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification-opencli.md +0 -112
  162. package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification.md +0 -168
  163. package/bundled/dev-pipeline-windows/templates/sections/phase-commit-full.md +0 -82
  164. package/bundled/dev-pipeline-windows/templates/sections/phase-commit.md +0 -75
  165. package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-agent-suffix.md +0 -23
  166. package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-base.md +0 -14
  167. package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-lite-suffix.md +0 -19
  168. package/bundled/dev-pipeline-windows/templates/sections/phase-critic-plan-full.md +0 -63
  169. package/bundled/dev-pipeline-windows/templates/sections/phase-critic-plan.md +0 -42
  170. package/bundled/dev-pipeline-windows/templates/sections/phase-implement-agent.md +0 -44
  171. package/bundled/dev-pipeline-windows/templates/sections/phase-implement-full.md +0 -59
  172. package/bundled/dev-pipeline-windows/templates/sections/phase-implement-lite.md +0 -39
  173. package/bundled/dev-pipeline-windows/templates/sections/phase-plan-agent.md +0 -27
  174. package/bundled/dev-pipeline-windows/templates/sections/phase-plan-lite.md +0 -27
  175. package/bundled/dev-pipeline-windows/templates/sections/phase-prizmkit-test.md +0 -39
  176. package/bundled/dev-pipeline-windows/templates/sections/phase-review-agent.md +0 -35
  177. package/bundled/dev-pipeline-windows/templates/sections/phase-review-full.md +0 -35
  178. package/bundled/dev-pipeline-windows/templates/sections/phase-specify-plan-full.md +0 -73
  179. package/bundled/dev-pipeline-windows/templates/sections/phase0-init.md +0 -13
  180. package/bundled/dev-pipeline-windows/templates/sections/phase0-test-baseline.md +0 -21
  181. package/bundled/dev-pipeline-windows/templates/sections/session-context.md +0 -5
  182. package/bundled/dev-pipeline-windows/templates/sections/subagent-timeout-recovery.md +0 -6
  183. package/bundled/dev-pipeline-windows/templates/sections/task-contract.md +0 -34
  184. package/bundled/dev-pipeline-windows/templates/sections/test-failure-recovery-agent.md +0 -48
  185. package/bundled/dev-pipeline-windows/templates/sections/test-failure-recovery-lite.md +0 -48
  186. package/bundled/dev-pipeline-windows/templates/session-status-schema.json +0 -83
  187. package/bundled/skills-windows/app-planner/SKILL.md +0 -296
  188. package/bundled/skills-windows/app-planner/assets/app-design-guide.md +0 -101
  189. package/bundled/skills-windows/app-planner/references/architecture-decisions.md +0 -52
  190. package/bundled/skills-windows/app-planner/references/brainstorm-guide.md +0 -101
  191. package/bundled/skills-windows/app-planner/references/frontend-design-guide.md +0 -71
  192. package/bundled/skills-windows/app-planner/references/infrastructure-convention-discovery.md +0 -108
  193. package/bundled/skills-windows/app-planner/references/project-brief-guide.md +0 -82
  194. package/bundled/skills-windows/app-planner/references/project-conventions-discovery.md +0 -59
  195. package/bundled/skills-windows/app-planner/references/project-state-detection.md +0 -90
  196. package/bundled/skills-windows/app-planner/references/red-team-checklist.md +0 -40
  197. package/bundled/skills-windows/app-planner/references/rules/backend/derivation-rules.md +0 -619
  198. package/bundled/skills-windows/app-planner/references/rules/backend/fixed-rules.md +0 -285
  199. package/bundled/skills-windows/app-planner/references/rules/backend/question-bank.md +0 -249
  200. package/bundled/skills-windows/app-planner/references/rules/backend/question-manifest.json +0 -46
  201. package/bundled/skills-windows/app-planner/references/rules/backend/template.md +0 -173
  202. package/bundled/skills-windows/app-planner/references/rules/database/derivation-rules.md +0 -382
  203. package/bundled/skills-windows/app-planner/references/rules/database/fixed-rules.md +0 -211
  204. package/bundled/skills-windows/app-planner/references/rules/database/question-bank.md +0 -184
  205. package/bundled/skills-windows/app-planner/references/rules/database/question-manifest.json +0 -39
  206. package/bundled/skills-windows/app-planner/references/rules/database/template.md +0 -158
  207. package/bundled/skills-windows/app-planner/references/rules/frontend/derivation-rules.md +0 -820
  208. package/bundled/skills-windows/app-planner/references/rules/frontend/fixed-rules.md +0 -188
  209. package/bundled/skills-windows/app-planner/references/rules/frontend/question-bank.md +0 -319
  210. package/bundled/skills-windows/app-planner/references/rules/frontend/question-manifest.json +0 -51
  211. package/bundled/skills-windows/app-planner/references/rules/frontend/template.md +0 -339
  212. package/bundled/skills-windows/app-planner/references/rules/mobile/derivation-rules.md +0 -649
  213. package/bundled/skills-windows/app-planner/references/rules/mobile/fixed-rules.md +0 -290
  214. package/bundled/skills-windows/app-planner/references/rules/mobile/question-bank.md +0 -232
  215. package/bundled/skills-windows/app-planner/references/rules/mobile/question-manifest.json +0 -47
  216. package/bundled/skills-windows/app-planner/references/rules/mobile/template.md +0 -175
  217. package/bundled/skills-windows/app-planner/references/rules-configuration.md +0 -46
  218. package/bundled/skills-windows/bug-fix-workflow/SKILL.md +0 -379
  219. package/bundled/skills-windows/bug-fix-workflow/references/bug-diagnosis.md +0 -41
  220. package/bundled/skills-windows/bug-planner/SKILL.md +0 -402
  221. package/bundled/skills-windows/bug-planner/assets/bug-confirmation-template.md +0 -43
  222. package/bundled/skills-windows/bug-planner/references/critic-and-verification.md +0 -44
  223. package/bundled/skills-windows/bug-planner/references/error-recovery.md +0 -73
  224. package/bundled/skills-windows/bug-planner/references/input-formats.md +0 -53
  225. package/bundled/skills-windows/bug-planner/references/schema-validation.md +0 -25
  226. package/bundled/skills-windows/bug-planner/references/severity-rules.md +0 -16
  227. package/bundled/skills-windows/bug-planner/scripts/validate-bug-list.py +0 -322
  228. package/bundled/skills-windows/bugfix-pipeline-launcher/SKILL.md +0 -304
  229. package/bundled/skills-windows/bugfix-pipeline-launcher/references/configuration.md +0 -84
  230. package/bundled/skills-windows/feature-pipeline-launcher/SKILL.md +0 -381
  231. package/bundled/skills-windows/feature-pipeline-launcher/references/configuration.md +0 -67
  232. package/bundled/skills-windows/feature-pipeline-launcher/scripts/preflight-check.py +0 -462
  233. package/bundled/skills-windows/feature-planner/SKILL.md +0 -397
  234. package/bundled/skills-windows/feature-planner/assets/evaluation-guide.md +0 -64
  235. package/bundled/skills-windows/feature-planner/assets/planning-guide.md +0 -214
  236. package/bundled/skills-windows/feature-planner/references/browser-interaction.md +0 -59
  237. package/bundled/skills-windows/feature-planner/references/completeness-review.md +0 -57
  238. package/bundled/skills-windows/feature-planner/references/decomposition-patterns.md +0 -75
  239. package/bundled/skills-windows/feature-planner/references/error-recovery.md +0 -90
  240. package/bundled/skills-windows/feature-planner/references/incremental-feature-planning.md +0 -112
  241. package/bundled/skills-windows/feature-planner/references/new-project-planning.md +0 -85
  242. package/bundled/skills-windows/feature-planner/scripts/validate-and-generate.py +0 -1020
  243. package/bundled/skills-windows/feature-workflow/SKILL.md +0 -374
  244. package/bundled/skills-windows/feature-workflow/references/brainstorm-guide.md +0 -137
  245. package/bundled/skills-windows/prizm-kit/SKILL.md +0 -93
  246. package/bundled/skills-windows/prizmkit-code-review/SKILL.md +0 -161
  247. package/bundled/skills-windows/prizmkit-code-review/references/dev-agent-prompt.md +0 -30
  248. package/bundled/skills-windows/prizmkit-code-review/references/review-report-template.md +0 -31
  249. package/bundled/skills-windows/prizmkit-code-review/references/reviewer-agent-prompt.md +0 -66
  250. package/bundled/skills-windows/prizmkit-code-review/scripts/check_loop.py +0 -186
  251. package/bundled/skills-windows/prizmkit-committer/SKILL.md +0 -89
  252. package/bundled/skills-windows/prizmkit-deploy/SKILL.md +0 -444
  253. package/bundled/skills-windows/prizmkit-deploy/references/ci-cd-workflows.md +0 -115
  254. package/bundled/skills-windows/prizmkit-deploy/references/cloud-platform-deploy.md +0 -93
  255. package/bundled/skills-windows/prizmkit-deploy/references/data-safety-examples.md +0 -120
  256. package/bundled/skills-windows/prizmkit-deploy/references/database-setup.md +0 -46
  257. package/bundled/skills-windows/prizmkit-deploy/references/deploy-config-schema.md +0 -148
  258. package/bundled/skills-windows/prizmkit-deploy/references/deploy-history-schema.md +0 -62
  259. package/bundled/skills-windows/prizmkit-deploy/references/deployment-modes.md +0 -50
  260. package/bundled/skills-windows/prizmkit-deploy/references/direct-upload.md +0 -26
  261. package/bundled/skills-windows/prizmkit-deploy/references/dns-setup.md +0 -42
  262. package/bundled/skills-windows/prizmkit-deploy/references/docker-deploy.md +0 -31
  263. package/bundled/skills-windows/prizmkit-deploy/references/firewall-setup.md +0 -37
  264. package/bundled/skills-windows/prizmkit-deploy/references/live-validation-notes.md +0 -21
  265. package/bundled/skills-windows/prizmkit-deploy/references/nginx-blue-green.md +0 -59
  266. package/bundled/skills-windows/prizmkit-deploy/references/ssh-bootstrap-flow.md +0 -49
  267. package/bundled/skills-windows/prizmkit-deploy/references/ssh-execution-flow.md +0 -41
  268. package/bundled/skills-windows/prizmkit-deploy/references/ssh-takeover.md +0 -20
  269. package/bundled/skills-windows/prizmkit-deploy/references/ssl-setup.md +0 -56
  270. package/bundled/skills-windows/prizmkit-implement/SKILL.md +0 -71
  271. package/bundled/skills-windows/prizmkit-init/SKILL.md +0 -356
  272. package/bundled/skills-windows/prizmkit-init/assets/project-brief-template.md +0 -82
  273. package/bundled/skills-windows/prizmkit-init/references/config-schema.md +0 -70
  274. package/bundled/skills-windows/prizmkit-init/references/rules/layer-detection.md +0 -41
  275. package/bundled/skills-windows/prizmkit-init/references/tech-stack-catalog.md +0 -13
  276. package/bundled/skills-windows/prizmkit-init/references/update-supplement.md +0 -9
  277. package/bundled/skills-windows/prizmkit-plan/SKILL.md +0 -102
  278. package/bundled/skills-windows/prizmkit-plan/assets/plan-template.md +0 -115
  279. package/bundled/skills-windows/prizmkit-plan/assets/spec-template.md +0 -73
  280. package/bundled/skills-windows/prizmkit-plan/references/clarify-guide.md +0 -67
  281. package/bundled/skills-windows/prizmkit-plan/references/examples.md +0 -85
  282. package/bundled/skills-windows/prizmkit-plan/references/verification-checklist.md +0 -60
  283. package/bundled/skills-windows/prizmkit-prizm-docs/SKILL.md +0 -129
  284. package/bundled/skills-windows/prizmkit-prizm-docs/assets/prizm-docs-format.md +0 -613
  285. package/bundled/skills-windows/prizmkit-prizm-docs/references/op-init.md +0 -45
  286. package/bundled/skills-windows/prizmkit-prizm-docs/references/op-rebuild.md +0 -15
  287. package/bundled/skills-windows/prizmkit-prizm-docs/references/op-status.md +0 -14
  288. package/bundled/skills-windows/prizmkit-prizm-docs/references/op-update.md +0 -19
  289. package/bundled/skills-windows/prizmkit-prizm-docs/references/op-validate.md +0 -17
  290. package/bundled/skills-windows/prizmkit-retrospective/SKILL.md +0 -87
  291. package/bundled/skills-windows/prizmkit-retrospective/references/knowledge-injection-steps.md +0 -50
  292. package/bundled/skills-windows/prizmkit-retrospective/references/structural-sync-steps.md +0 -43
  293. package/bundled/skills-windows/prizmkit-test/SKILL.md +0 -227
  294. package/bundled/skills-windows/prizmkit-test/references/boundary-coverage-protocol.md +0 -220
  295. package/bundled/skills-windows/prizmkit-test/references/examples.md +0 -143
  296. package/bundled/skills-windows/prizmkit-test/references/service-boundary-test-catalog.md +0 -225
  297. package/bundled/skills-windows/prizmkit-test/references/test-generation-steps.md +0 -109
  298. package/bundled/skills-windows/prizmkit-test/references/test-report-template.md +0 -111
  299. package/bundled/skills-windows/prizmkit-test/scripts/validate_boundary_report.py +0 -347
  300. package/bundled/skills-windows/recovery-workflow/SKILL.md +0 -355
  301. package/bundled/skills-windows/recovery-workflow/evals/evals.json +0 -46
  302. package/bundled/skills-windows/recovery-workflow/references/detection.md +0 -58
  303. package/bundled/skills-windows/recovery-workflow/scripts/detect-recovery-state.py +0 -544
  304. package/bundled/skills-windows/refactor-pipeline-launcher/SKILL.md +0 -346
  305. package/bundled/skills-windows/refactor-pipeline-launcher/references/configuration.md +0 -72
  306. package/bundled/skills-windows/refactor-planner/SKILL.md +0 -398
  307. package/bundled/skills-windows/refactor-planner/assets/planning-guide.md +0 -292
  308. package/bundled/skills-windows/refactor-planner/references/behavior-preservation.md +0 -301
  309. package/bundled/skills-windows/refactor-planner/references/fast-path.md +0 -59
  310. package/bundled/skills-windows/refactor-planner/references/planning-phases.md +0 -135
  311. package/bundled/skills-windows/refactor-planner/references/refactor-scoping-guide.md +0 -221
  312. package/bundled/skills-windows/refactor-planner/scripts/validate-and-generate-refactor.py +0 -858
  313. package/bundled/skills-windows/refactor-workflow/SKILL.md +0 -343
  314. package/bundled/skills-windows/refactor-workflow/references/brainstorm-guide.md +0 -116
  315. package/bundled/templates/hooks/diff-prizm-docs.sh +0 -158
  316. package/bundled/templates/hooks/prizm-pre-commit.sh +0 -108
  317. package/bundled/templates/hooks/validate-prizm-docs.sh +0 -139
@@ -1,791 +0,0 @@
1
- # Dev-Pipeline Session Bootstrap — Tier 3 (Full Team)
2
-
3
- ## Session Context
4
-
5
- - **Feature ID**: {{FEATURE_ID}} | **Session**: {{SESSION_ID}} | **Run**: {{RUN_ID}}
6
- - **Complexity**: {{COMPLEXITY}}
7
- - **Init**: {{INIT_DONE}} | Artifacts: spec={{HAS_SPEC}} plan={{HAS_PLAN}}
8
-
9
- ## Your Mission
10
-
11
- You are the **session orchestrator**. Implement Feature {{FEATURE_ID}}: "{{FEATURE_TITLE}}".
12
-
13
- **CRITICAL**: You MUST NOT exit until ALL work is complete and committed. When you spawn normal work subagents, wait for each to finish (run_in_background=false). Do NOT spawn work agents in background and exit — that kills the session.
14
-
15
- **Tier 3 — Full Team**: For complex features, use the full pipeline (Phase 0–6) with Dev + Reviewer agents spawned via the Agent tool.
16
-
17
- **Agent spawn failure policy (all Agent tool calls)**:
18
- - If spawning Dev, Reviewer, or Critic fails with team/config/lock errors, retry at most once.
19
- - If the second attempt fails, do not keep spawning variants and do not enter artifact polling for Implementation Log, challenge report, or review report markers.
20
- - Use the documented inline/recovery fallback for that phase: write the required report yourself where possible, complete remaining Dev work directly in the orchestrator when safe, or write `failure-log.md` with the spawn error and last observable state before stopping for recovery.
21
- - Apply the same cap to any re-spawn for report repair or resume prompts; do not burn multiple minutes on identical team/config/lock failures.
22
-
23
- ### Feature Description
24
-
25
- {{FEATURE_DESCRIPTION}}
26
-
27
- {{USER_CONTEXT}}
28
-
29
- ### Acceptance Criteria
30
-
31
- {{ACCEPTANCE_CRITERIA}}
32
-
33
- ### Project Brief
34
-
35
- > Product ideas checklist from planning. Lines marked [x] are already implemented. When your feature touches any [ ] item, ensure alignment. After implementation, mark relevant items [x] and append the key file/directory paths.
36
-
37
- {{PROJECT_BRIEF}}
38
-
39
- ### Dependencies (Already Completed)
40
-
41
- {{COMPLETED_DEPENDENCIES}}
42
-
43
- ### App Global Context
44
-
45
- {{GLOBAL_CONTEXT}}
46
-
47
- ## ⚠️ Context Budget Rules (CRITICAL — read before any phase)
48
-
49
- You are running in **headless non-interactive mode** with a FINITE context window. Exceeding it will crash the session and lose all work. Follow these rules strictly:
50
-
51
- 0. **NON-INTERACTIVE MODE** — There is NO human on the other end. NEVER ask for user confirmation, NEVER wait for user input, NEVER use interactive prompts (e.g. "Would you like me to…"). If a skill has an interactive step (e.g. offer remediation, ask for approval), skip it and proceed autonomously. Make decisions based on the data available and move forward.
52
-
53
- 1. **context-snapshot.md is your single source of truth** — After Phase 1-2 builds it, ALWAYS read context-snapshot.md instead of re-reading individual source files
54
- 2. **Never re-read your own writes** — After you create/modify a file, do NOT read it back to verify. Trust your write was correct.
55
- 3. **Stay focused** — Do NOT explore code unrelated to this feature. No curiosity-driven reads.
56
- 4. **One task at a time** — In Phase 4 (implement), complete and test one task before starting the next.
57
- 5. **Minimize tool output** — Never load full command output into context. First capture to a temp file (`& { <command> } 2>&1 | Tee-Object (Join-Path $env:TEMP "out.txt") | Select-Object -Last 20`), then scan the first/last lines to identify relevant fields, and use targeted filtering (`Select-String`, regex matching, PowerShell object filtering) to extract only the information needed for the current task. Only read the filtered result — never the raw full output.
58
- 6. **No intermediate commits** — Do NOT run `git add`/`git commit` during Phase 1-5. All changes are committed once at the end in Phase 6 via `/prizmkit-committer`.
59
- 7. **Batch independent operations** — Issue multiple independent `Write`/`Read` calls in a single message turn when they have no dependencies. Combine multiple directory creations into one `New-Item -ItemType Directory -Force` command. Never run `npm test` twice just to apply a different Select-String filter — capture output to `(Join-Path $env:TEMP "test-out.txt")` once and use Select-String on the file.
60
-
61
- ---
62
-
63
- {{LOG_SIZE_AWARENESS}}
64
- ---
65
-
66
- ## PrizmKit Directory Convention
67
-
68
- ```
69
- .prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md ← orchestrator writes Sections 1-4; Dev appends Implementation Log; Reviewer appends Review Notes
70
- .prizmkit/specs/{{FEATURE_SLUG}}/spec.md
71
- .prizmkit/specs/{{FEATURE_SLUG}}/plan.md ← includes Tasks section
72
- ```
73
-
74
- **`context-snapshot.md`** is the shared knowledge base. Orchestrator writes Sections 1-4; Dev appends Implementation Log; Reviewer appends Review Notes. This eliminates redundant I/O across all agents.
75
-
76
- ---
77
-
78
- ## Subagent Timeout Recovery
79
-
80
- If any agent times out:
81
- 1. `Get-ChildItem -LiteralPath ".prizmkit/specs/{{FEATURE_SLUG}}/" -ErrorAction SilentlyContinue` — check what exists
82
- 2. If `context-snapshot.md` exists: open recovery prompt with `"Read .prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md for project context and any Implementation Log/Review Notes from previous agents. Run git diff HEAD to see actual code changes already made. Do NOT re-read individual source files unless the File Manifest directs you to."` + only remaining steps + `model: "lite"`
83
- 3. Max 2 retries per phase. After 2 failures, orchestrator completes the work directly and appends a Recovery Note to context-snapshot.md.
84
-
85
- ---
86
-
87
- ## Execution
88
-
89
- ### PowerShell Python Helper
90
-
91
- Define this helper once in the active PowerShell session before running PrizmKit Python scripts:
92
-
93
- ```powershell
94
- function Invoke-PrizmPython {
95
- param([Parameter(ValueFromRemainingArguments = $true)][string[]]$Arguments)
96
- $python = Get-Command python -ErrorAction SilentlyContinue
97
- if ($python) {
98
- & $python.Source -c 'import sys; raise SystemExit(0 if sys.version_info[0] == 3 else 1)' *> $null
99
- if ($LASTEXITCODE -eq 0) {
100
- & $python.Source @Arguments
101
- return
102
- }
103
- }
104
- $py = Get-Command py -ErrorAction SilentlyContinue
105
- if ($py) {
106
- & $py.Source -3 -c 'import sys; raise SystemExit(0 if sys.version_info[0] == 3 else 1)' *> $null
107
- if ($LASTEXITCODE -eq 0) {
108
- & $py.Source -3 @Arguments
109
- return
110
- }
111
- }
112
- throw "Python 3 is required. Install Python and ensure python or py is in PATH."
113
- }
114
- ```
115
-
116
-
117
- {{IF_INIT_NEEDED}}
118
- ### Phase 0: Project Bootstrap
119
- - Run `/prizmkit-init` (invoke the prizmkit-init skill)
120
- - Run `Invoke-PrizmPython {{INIT_SCRIPT_PATH}} --project-root {{PROJECT_ROOT}} --feature-id {{FEATURE_ID}} --feature-slug {{FEATURE_SLUG}}`
121
- - **CP-0**: Verify `.prizmkit/prizm-docs/root.prizm`, `.prizmkit/config.json` exist
122
- {{END_IF_INIT_NEEDED}}
123
- {{IF_INIT_DONE}}
124
- ### Phase 0: Record Test Baseline & Detect Test Commands
125
-
126
- **Step 1 — Detect test commands**: You know this project's tech stack. Identify ALL test commands that apply (e.g., `go test ./...`, `npm test`, `cargo test`, `pytest`, `make test`, etc.). Record them as `TEST_CMDS`.
127
-
128
- **Step 2 — Record pre-existing failure baseline**:
129
- ```powershell
130
- & { {{TEST_CMD}} } 2>&1 | Tee-Object (Join-Path $env:TEMP "test-baseline.txt") | Select-Object -Last 20
131
- ```
132
- Save the list of **pre-existing failing tests** (if any) as `BASELINE_FAILURES`. These are known failures that existed before this session — Dev must NOT be blamed for them, but must list them in COMPLETION_SIGNAL.
133
-
134
- > **⚠️ Test Output Rule**: Always capture test output to a temp file (`Tee-Object (Join-Path $env:TEMP "test-out.txt")`). Then use Select-String on the file instead of re-running the suite.
135
- {{END_IF_INIT_DONE}}
136
-
137
- ### Step 1: Initialize
138
-
139
- 1. Run init script:
140
- `Invoke-PrizmPython {{INIT_SCRIPT_PATH}} --project-root {{PROJECT_ROOT}} --feature-id {{FEATURE_ID}} --feature-slug {{FEATURE_SLUG}}`
141
-
142
- 2. Check for existing artifacts:
143
- `Get-ChildItem -LiteralPath ".prizmkit/specs/{{FEATURE_SLUG}}/" -ErrorAction SilentlyContinue`
144
-
145
- {{IF_FRESH_START}}
146
- ```powershell
147
- Invoke-PrizmPython {{INIT_SCRIPT_PATH}} --project-root {{PROJECT_ROOT}} --feature-id {{FEATURE_ID}} --feature-slug {{FEATURE_SLUG}}
148
- ```
149
- {{END_IF_FRESH_START}}
150
-
151
- ### Phase 1-2: Specify + Plan — Orchestrator (you)
152
-
153
- Check existing artifacts first:
154
- ```powershell
155
- Get-ChildItem -LiteralPath ".prizmkit/specs/{{FEATURE_SLUG}}/" -ErrorAction SilentlyContinue
156
- ```
157
-
158
- - Both (spec.md, plan.md) exist → **SKIP to CP-1**
159
- - `context-snapshot.md` exists → use it directly, skip Phase 1
160
- - Some missing → generate only missing files
161
-
162
- Before planning, check whether feature code already exists in the project (search in source directories identified from `root.prizm` or the project tree scan):
163
- ```powershell
164
- Get-ChildItem -Path . -Recurse -File -Include *.js,*.ts,*.py,*.go,*.java,*.rb,*.rs -ErrorAction SilentlyContinue |
165
- Where-Object { $_.FullName -notmatch '\\(node_modules|\.git|dist|build|vendor|\.prizmkit)\\' } |
166
- Select-String -Pattern "{{FEATURE_SLUG}}" -List |
167
- Select-Object -First 20 -ExpandProperty Path
168
- ```
169
-
170
- Record result as `EXISTING_CODE` (list of files, or empty).
171
-
172
- If `EXISTING_CODE` is non-empty: your spec/plan/tasks must reflect this existing implementation — document what exists, identify gaps, do NOT re-implement what is already done.
173
-
174
- **Step A — Build Context Snapshot** (skip if `context-snapshot.md` already exists):
175
-
176
- 1. Read `.prizmkit/prizm-docs/root.prizm` and relevant L1/L2 prizm docs
177
- 2. Detect source code directories: read KEY_FILES and STRUCTURE sections from `root.prizm` to identify where source code lives (e.g. `src/`, `app/`, `lib/`, `cmd/`, `packages/`, or project root). If `root.prizm` is missing, scan the project tree:
178
- ```powershell
179
- Get-ChildItem -Path . -Recurse -File -Depth 2 -Include *.js,*.ts,*.py,*.go,*.java,*.rb,*.rs -ErrorAction SilentlyContinue |
180
- Where-Object { $_.FullName -notmatch '\\(node_modules|\.git|dist|build|vendor)\\' } |
181
- Select-Object -First 30 -ExpandProperty FullName
182
- ```
183
- Identify the top-level source directories from the results.
184
- 3. Scan the detected source directories for files related to this feature; read each one
185
- 4. Write `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md`:
186
- - **Section 1 — Feature Brief**: feature description (2-3 lines) + acceptance criteria (copy from above)
187
- - **Section 2 — Verification Gates**: copy the gate checklist from the Task Contract above
188
- - **Section 3 — Key TRAPS & RULES**: extract only relevant TRAPS/RULES from prizm-docs that apply to files in this scope. Do NOT copy full L0/L1/L2 content.
189
- - **Section 4 — File Manifest**: For each file relevant to this feature, list: file path, why it's needed (modify/reference/test), key interface signatures (function names + params + return types). Do NOT include full file content — agents read files on-demand. Format:
190
- ### Files to Modify
191
- | File | Why Needed | Key Interfaces |
192
- |------|-----------|----------------|
193
- | `<source-dir>/config.js` | Add runtime config layer | `config` (Zod object), `configSchema` |
194
-
195
- ### Files for Reference
196
- | File | Why Needed | Key Interfaces |
197
- |------|-----------|----------------|
198
- | `<source-dir>/security/permission-guard.js` | Permission check integration | `checkCommandPermission(userId, cmd)` |
199
-
200
- ### Known TRAPS (from .prizmkit/prizm-docs/)
201
- - <trap entries extracted from L1/L2 docs>
202
- 4. Confirm: `Test-Path -LiteralPath ".prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md"`
203
-
204
- **After Step A**: Use context-snapshot.md Section 4 File Manifest to guide targeted file reads. Do NOT scan directories or read unrelated files.
205
-
206
- **Step B — Planning Artifacts** (generate only missing files):
207
-
208
- ```powershell
209
- @(".prizmkit/specs/{{FEATURE_SLUG}}/spec.md", ".prizmkit/specs/{{FEATURE_SLUG}}/plan.md") | ForEach-Object { if (Test-Path -LiteralPath $_) { $_ } }
210
- ```
211
-
212
- - spec.md missing: Run `/prizmkit-plan` → generate spec.md. Resolve any `[NEEDS CLARIFICATION]` markers using the feature description — do NOT pause for interactive input.
213
- - plan.md missing: Run `/prizmkit-plan` → generate plan.md (architecture, components, interface design, data model, testing strategy, risk assessment, and Tasks section with `[ ]` checkboxes)
214
-
215
- > All files go under `.prizmkit/specs/{{FEATURE_SLUG}}/`. Confirm each with `Test-Path` after writing.
216
-
217
- **Database Design Gate** (if feature involves data persistence — new tables, schema changes, new entities):
218
- Before proceeding past CP-1, verify:
219
- 1. Plan.md Data Model section references existing schema/model files (scan for `*.prisma`, `*.sql`, `migrations/`, `models/`, `*.entity.*` files; read them if not already in context-snapshot)
220
- 2. All new tables/fields follow existing naming conventions, ID strategy, timestamp patterns, and constraint style
221
- 3. No `[NEEDS CLARIFICATION]` remains in Data Model section — resolve by reading existing code and making a conservative choice that matches existing patterns. Document the resolution in plan.md.
222
- 4. If a DB design decision genuinely cannot be resolved from existing code alone, document the assumption made and flag it in the Implementation Log for user review.
223
-
224
- **CP-1**: Both spec.md and plan.md exist.
225
-
226
- ### Phase 3: Analyze — Reviewer Agent
227
-
228
- Spawn Reviewer agent (Agent tool, subagent_type="prizm-dev-team-reviewer", mode="plan", run_in_background=false).
229
-
230
- Spawn failure cap: for team/config/lock errors, retry at most once for this Reviewer spawn. If the second attempt fails, do not poll for report artifacts; fix/check the plan inline or write `failure-log.md` before stopping for recovery.
231
-
232
- Prompt:
233
- > "Read {{REVIEWER_SUBAGENT_PATH}}. For feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}):
234
- > 1. Read `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` FIRST — Section 3 has TRAPS/RULES, Section 4 has file manifest.
235
- > 2. Cross-check `spec.md` and `plan.md` (including Tasks section) for consistency.
236
- > 3. Before flagging CRITICAL or HIGH issues, read the relevant source files listed in the File Manifest to verify.
237
- > Report: CRITICAL, HIGH, MEDIUM issues found (or 'No issues found')."
238
-
239
- Wait for Reviewer to return.
240
- - If CRITICAL issues found: fix them yourself — read `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` for full project context. Fix ONLY the listed CRITICAL issues in spec.md/plan.md. Then re-run analyze (max 1 round).
241
-
242
- **CP-2**: No CRITICAL issues.
243
-
244
- {{IF_CRITIC_ENABLED}}
245
- ### Phase 3.5: Plan Challenge — Critic Agent(s)
246
-
247
- **Guard**: Verify critic agent file exists before spawning:
248
- ```powershell
249
- if (Test-Path -LiteralPath "{{CRITIC_SUBAGENT_PATH}}") { "CRITIC:READY" } else { "CRITIC:MISSING" }
250
- ```
251
- If CRITIC:MISSING — skip Phase 3.5 entirely and proceed to Phase 4. Log: "Critic agent not installed — skipping Plan Challenge."
252
-
253
- **Choose ONE path based on `{{CRITIC_COUNT}}`:**
254
-
255
- **If {{CRITIC_COUNT}} = 1 → Single Critic** (skip to CP-2.5 after this):
256
-
257
- Spawn Critic agent (Agent tool, subagent_type="prizm-dev-team-critic", mode="plan", run_in_background=false).
258
-
259
- Spawn failure cap: for team/config/lock errors, retry at most once for this Critic spawn. If the second attempt fails, do not poll for challenge reports; perform the plan challenge inline and record the fallback.
260
-
261
- Prompt:
262
- > "Read {{CRITIC_SUBAGENT_PATH}}. For feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}):
263
- > **MODE: Plan Challenge**
264
- > 1. Read `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` FIRST — Section 3 has TRAPS/RULES, Section 4 has file manifest.
265
- > 2. Read `.prizmkit/prizm-docs/root.prizm` and relevant L1/L2 docs for affected modules.
266
- > 3. Read existing source files in the modules this plan touches.
267
- > 4. Challenge plan.md against the project's existing architecture, patterns, and style.
268
- > Write `.prizmkit/specs/{{FEATURE_SLUG}}/challenge-report.md` with findings (or 'No significant challenges')."
269
-
270
- **If {{CRITIC_COUNT}} = 3 → Multi-Critic Voting** (skip Single Critic above):
271
-
272
- **IMPORTANT**: Spawn all 3 Critics in PARALLEL (issue all 3 Agent tool calls in the SAME message turn). Do NOT wait for one before spawning the next.
273
-
274
- Spawn Critic-A, Critic-B, Critic-C simultaneously (each with mode="plan", run_in_background=false):
275
-
276
- Critic-A prompt (append to base prompt above):
277
- > "**Focus Lens: Architecture & Scalability.** Prioritize: architectural pattern fit, scalability implications, over-engineering risks, component boundary design.
278
- > Write `.prizmkit/specs/{{FEATURE_SLUG}}/challenge-report-A.md`."
279
-
280
- Critic-B prompt (append to base prompt above):
281
- > "**Focus Lens: Data Model & Edge Cases.** Prioritize: data model design fit, entity relationships, edge cases in business logic, missing boundary conditions.
282
- > Write `.prizmkit/specs/{{FEATURE_SLUG}}/challenge-report-B.md`."
283
-
284
- Critic-C prompt (append to base prompt above):
285
- > "**Focus Lens: Security & Performance.** Prioritize: security attack surface, authentication/authorization gaps, performance bottlenecks, resource leaks.
286
- > Write `.prizmkit/specs/{{FEATURE_SLUG}}/challenge-report-C.md`."
287
-
288
- Spawn failure cap: for team/config/lock errors, each Critic retries at most once. If 2 or more Critics fail to spawn after retry, perform the plan challenge inline and record the fallback.
289
-
290
- After all critics return, read all 3 reports:
291
- - Challenge raised by **2/3 or more** critics → **must respond** (adjust plan or justify why not)
292
- - Challenge raised by **1/3 only** → logged in context-snapshot but not blocking
293
- - Max 1 plan revision round.
294
-
295
- **CP-2.5**: Plan challenges reviewed and resolved.
296
- {{END_IF_CRITIC_ENABLED}}
297
-
298
- ### Phase 4: Implement — Dev Agent
299
-
300
- **Build artifacts rule** (passed to Dev): After any build/compile command (`go build`, `npm run build`, `tsc`, etc.), ensure the output binary or build directory is in `.gitignore`. Never commit compiled binaries, build output, or generated artifacts.
301
-
302
- Before spawning Dev, check plan.md Tasks section:
303
- ```powershell
304
- if (Test-Path -LiteralPath ".prizmkit/specs/{{FEATURE_SLUG}}/plan.md") {
305
- (Select-String -Path ".prizmkit/specs/{{FEATURE_SLUG}}/plan.md" -Pattern '^- \[ \]' -ErrorAction SilentlyContinue).Count
306
- } else {
307
- 0
308
- }
309
- ```
310
- - If result is `0` (all tasks already `[x]`) → **SKIP Phase 4**, go directly to Phase 5. Do NOT spawn Dev.
311
- - If result is non-zero → spawn Dev agent below.
312
-
313
- Spawn Dev agent (Agent tool, subagent_type="prizm-dev-team-dev", run_in_background=false).
314
-
315
- Spawn failure cap: for team/config/lock errors, retry at most once for this Dev spawn. If the second attempt fails, do not poll for `## Implementation Log`; write `failure-log.md` and either implement remaining tasks directly in the orchestrator or stop for recovery.
316
-
317
- Prompt:
318
- > "Read {{DEV_SUBAGENT_PATH}}. Implement feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}).
319
- > **IMPORTANT**: Read `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` FIRST — Section 3 has TRAPS/RULES, Section 4 has File Manifest with paths and interfaces.
320
- > ⚠️ DO NOT re-read source files already listed in Section 4 File Manifest unless you need implementation detail beyond the interface summary.
321
- > 1. Read `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` for full context.
322
- > 2. Run `/prizmkit-implement` to execute the tasks in plan.md. Run tests with: `{{TEST_CMD}}`. Known baseline failures (pre-existing, not your fault): `{{BASELINE_FAILURES}}`.
323
- > 3. If plan.md has more than 5 tasks: update durable checkpoints/artifacts after every 3 tasks, minimize output, and rely on runner continuation if context overflow occurs. In an interactive Claude Code session operated manually outside the headless pipeline, `/compact` may be used as an optional convenience only.
324
- > 4. After implement completes, verify the '## Implementation Log' section was written to context-snapshot.md.
325
- > 5. Do NOT execute any git commands (no git add/commit/reset/push).
326
- > Do NOT exit until all tasks are [x] and the '## Implementation Log' section is written in context-snapshot.md."
327
-
328
- **Gate Check — Implementation Log**:
329
- After Dev agent returns, verify the Implementation Log was written:
330
- ```powershell
331
- if (Select-String -Path ".prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md" -Pattern "## Implementation Log" -Quiet -ErrorAction SilentlyContinue) { "GATE:PASS" } else { "GATE:MISSING" }
332
- ```
333
- If GATE:MISSING — send message to Dev (re-spawn if needed): "Write the '## Implementation Log' section to context-snapshot.md before I can proceed to review. Include: files changed/created, key decisions, deviations from plan, notable discoveries."
334
-
335
- Wait for Dev to return. **If Dev times out before all tasks are `[x]`**:
336
- 1. Check progress: `(Select-String -Path ".prizmkit/specs/{{FEATURE_SLUG}}/plan.md" -Pattern '^- \[ \]' -ErrorAction SilentlyContinue).Count`
337
- 2. If any tasks remain: re-spawn Dev with this recovery prompt:
338
- > "Read {{DEV_SUBAGENT_PATH}}. You are resuming implementation of feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}).
339
- > 1. Read `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` — Section 4 has File Manifest, 'Implementation Log' (if present) shows what was already done.
340
- > 2. Run `git diff HEAD` to see actual code changes already made.
341
- > 3. Run `/prizmkit-implement` to complete the remaining `[ ]` tasks. Run tests with: `{{TEST_CMD}}`.
342
- > 4. Do NOT execute any git commands."
343
- 3. Max 2 recovery retries. After 2 failures, orchestrator implements remaining tasks directly.
344
-
345
- All tasks `[x]`, tests pass.
346
-
347
- ### Scoped Feature Test Gate — PrizmKit Test
348
-
349
- Run `/prizmkit-test scope=this-change artifact_dir=.prizmkit/specs/{{FEATURE_SLUG}}/` after implementation and before review/commit.
350
-
351
- Before invoking the skill, create `.prizmkit/specs/{{FEATURE_SLUG}}/.prizmkit-test-started` so stale reports are ignored.
352
-
353
- Gate requirements:
354
- - Generate or update tests only for this feature's changed files, changed public interfaces, and acceptance criteria.
355
- - Do NOT use `.prizmkit/bugfix/` or `.prizmkit/refactor/` artifact directories.
356
- - Record unrelated historical gaps under `Out of Scope Gaps`; do not generate tests for them and do not fail this feature because of them.
357
- - Accept only a current-run `.prizmkit/test/*/test-report.md` whose `Scope` mode is `this-change`, whose `Artifact Dir` matches `.prizmkit/specs/{{FEATURE_SLUG}}/`, whose `Verdict` is `PASS`, whose `Boundary Completion Gate` reports `Completion gate passed: yes` with zero `Boundary-missing` and zero `Happy-path-only`, and whose `Boundary Validation` result is `passed`.
358
- - Only after a valid `PASS`, write the report path to `.prizmkit/specs/{{FEATURE_SLUG}}/test-report-path.txt` and append a 3-5 bullet `## PrizmKit Test Gate` summary to `context-snapshot.md`.
359
- - If the report verdict is `NEEDS_FIXES`, fix in-scope implementation/test issues and rerun `/prizmkit-test`. If the report is `BLOCKED`, missing, stale, or for the wrong scope/artifact dir, write `failure-log.md` and stop for recovery.
360
-
361
- ### Phase 5: Review — Reviewer Agent
362
-
363
- Spawn Reviewer agent (Agent tool, subagent_type="prizm-dev-team-reviewer", run_in_background=false).
364
-
365
- Spawn failure cap: for team/config/lock errors, retry at most once for this Reviewer spawn. If the second attempt fails, do not poll for `review-report.md`; write `failure-log.md` with the spawn error and last observable state before stopping or performing an inline fallback.
366
-
367
- Prompt:
368
- > "Read {{REVIEWER_SUBAGENT_PATH}}. For feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}):
369
- > 1. Read `.prizmkit/specs/{{FEATURE_SLUG}}/spec.md` for goals and acceptance criteria
370
- > 2. Read `.prizmkit/specs/{{FEATURE_SLUG}}/plan.md` for architecture decisions and completed tasks
371
- > 3. Read `.prizmkit/specs/{{FEATURE_SLUG}}/test-report-path.txt`, then read the referenced `/prizmkit-test` report. Review generated/updated tests, `In-Scope Failures`, `Baseline Failures`, `Out of Scope Gaps`, boundary coverage if present, and the report verdict.
372
- > 4. Run /prizmkit-code-review with artifact_dir=.prizmkit/specs/{{FEATURE_SLUG}}/. The skill runs an internal review-fix loop (Reviewer → filter → Dev fix, max 3 rounds) and writes review-report.md.
373
- > 5. Do NOT run test suites — the Orchestrator already ran prizmkit-test. Focus on code review and fix strategy.
374
- > Report: verdict (PASS/NEEDS_FIXES), number of rounds, findings fixed/rejected."
375
-
376
- Wait for Reviewer to return.
377
-
378
- **Gate Check — Review Report**:
379
- After Reviewer agent returns, verify the review report was written:
380
- ```powershell
381
- if (Select-String -Path ".prizmkit/specs/{{FEATURE_SLUG}}/review-report.md" -Pattern "## Verdict" -Quiet -ErrorAction SilentlyContinue) { "GATE:PASS" } else { "GATE:MISSING" }
382
- ```
383
- If GATE:MISSING:
384
- - Do not re-spawn Reviewer or re-run `/prizmkit-code-review` in an unbounded report-repair loop.
385
- - Perform one bounded status check; retry at most once: inspect Reviewer output, code-review skill output, `review-report.md` path, and any Reviewer/Dev spawn messages.
386
- - If the missing report is caused by team/config/lock errors from Reviewer or the internal code-review loop, write `failure-log.md` with the spawn/skill error and last observable state.
387
- - If the report is still missing after that single check/retry, either perform a safe inline fallback review and write `review-report.md` with `## Verdict`, or stop with a clear recovery failure.
388
-
389
- Read `review-report.md` and check the Verdict:
390
- - `PASS` → proceed to next phase
391
- - `NEEDS_FIXES` → the skill exhausted its max rounds; log the remaining findings and proceed
392
-
393
- **CP-3**: Review complete.
394
-
395
- {{IF_BROWSER_INTERACTION}}
396
- ### Phase 5.5: Browser Verification — MANDATORY
397
-
398
- You MUST execute this phase. Do NOT skip it.
399
-
400
- **Browser Tool**: {{BROWSER_TOOL}}
401
-
402
- {{IF_BROWSER_TOOL_PLAYWRIGHT}}
403
- **Using: playwright-cli**
404
-
405
- **CRITICAL CONSTRAINT — playwright-cli ONLY, NO Playwright MCP**:
406
- - You MUST use `playwright-cli` (the CLI tool) for ALL browser interactions in this phase
407
- - **NEVER** use Playwright MCP server, Playwright MCP tools, or any MCP-based browser automation
408
- - If you have Playwright MCP configured, IGNORE it entirely — use the CLI command `playwright-cli` exclusively
409
- - All browser actions go through `playwright-cli <command>` in the PowerShell tool, not through any MCP tool call
410
-
411
- **Step 0 — Playwright CLI Readiness Check (BLOCKING — must pass before any browser action)**:
412
-
413
- 0a. Check if `playwright-cli` is installed:
414
- ```powershell
415
- $playwright = Get-Command playwright-cli -ErrorAction SilentlyContinue
416
- if ($playwright) { playwright-cli --version } else { "NOT_INSTALLED" }
417
- ```
418
- If output is `NOT_INSTALLED`, install it:
419
- ```powershell
420
- npm install -g @playwright/cli@latest
421
- ```
422
- Then verify installation succeeded:
423
- ```powershell
424
- playwright-cli --version
425
- ```
426
- If installation fails, log the error in context-snapshot.md under `## Browser Verification: SKIPPED — playwright-cli installation failed` and proceed to the next phase. Do NOT attempt browser verification without playwright-cli.
427
-
428
- 0b. Learn playwright-cli usage (run once per session to understand available commands):
429
- ```powershell
430
- playwright-cli --help
431
- ```
432
- Use this output to determine the correct commands for your verification steps. Do NOT guess command syntax — refer to the help output.
433
-
434
- 0c. Check if playwright-cli skill is installed for the current AI platform:
435
- ```powershell
436
- $currentPlatform = "unknown"
437
- $skillDir = $null
438
- if (Get-Command claude -ErrorAction SilentlyContinue) {
439
- $currentPlatform = "claude"
440
- $skillDir = Join-Path $HOME ".claude\skills"
441
- } elseif (Get-Command cbc -ErrorAction SilentlyContinue) {
442
- $currentPlatform = "codebuddy"
443
- $skillDir = Join-Path $HOME ".cbc\skills"
444
- }
445
-
446
- $skillExists = $false
447
- if ($skillDir) {
448
- $directSkill = Join-Path $skillDir "playwright-cli"
449
- $matchingSkills = Get-ChildItem -Path $skillDir -Filter "playwright*" -ErrorAction SilentlyContinue
450
- $skillExists = (Test-Path -LiteralPath $directSkill) -or [bool]$matchingSkills
451
- }
452
- if ($skillExists) { "SKILL_EXISTS" } else { "SKILL_MISSING" }
453
- ```
454
- If `SKILL_MISSING`:
455
- ```powershell
456
- playwright-cli install --skills
457
- ```
458
- If the current platform is NOT claude, move the installed skill files to the correct location:
459
- ```powershell
460
- $claudeSkillDir = Join-Path $HOME ".claude\skills"
461
- $sourceSkill = Join-Path $claudeSkillDir "playwright-cli"
462
- if ($currentPlatform -ne "claude" -and $currentPlatform -ne "unknown" -and $skillDir -and (Test-Path -LiteralPath $sourceSkill)) {
463
- New-Item -ItemType Directory -Force -Path $skillDir | Out-Null
464
- Copy-Item -Recurse -Force -Path $sourceSkill -Destination $skillDir
465
- "Moved playwright-cli skill from claude to $currentPlatform"
466
- }
467
- ```
468
-
469
- 0d. Read the installed playwright-cli skill for workflow guidance:
470
- After skill installation, read the skill's SKILL.md to understand recommended workflows and patterns. Use these patterns to construct your verification flow — do NOT invent your own patterns if the skill provides them.
471
-
472
- **Step 1 — Start Dev Server**:
473
-
474
- You know this project's tech stack. Detect and start the dev server yourself:
475
-
476
- 1. Identify the dev server start command from project config (`package.json` scripts, `Makefile`, `docker-compose.yml`, etc.)
477
- 2. **Detect the dev server port** — use the pre-detected port from pipeline if available, otherwise extract from project config. Do NOT hardcode or guess the port:
478
- ```powershell
479
- $DEV_PORT = "{{DEV_PORT}}"
480
- if ($DEV_PORT -eq "{{DEV_PORT}}" -or [string]::IsNullOrWhiteSpace($DEV_PORT)) {
481
- $detectedPort = ""
482
- if (Test-Path -LiteralPath "package.json") {
483
- $detectedPort = node -e "const p=require('./package.json'); const s=(p.scripts?.dev) || ''; const m=s.match(/-p\s+(\d+)/); console.log(m?m[1]:'')"
484
- }
485
- if (-not $detectedPort -and $env:NEXT_PUBLIC_SITE_URL -match ':([0-9]+)') {
486
- $detectedPort = $Matches[1]
487
- }
488
- if ($detectedPort) { $DEV_PORT = $detectedPort } else { $DEV_PORT = "3000" }
489
- }
490
- "Detected DEV_PORT=$DEV_PORT"
491
- ```
492
- 3. Verify the port is available and start the dev server in the background, capturing its process id:
493
- ```powershell
494
- $portBusy = Get-NetTCPConnection -LocalPort ([int]$DEV_PORT) -ErrorAction SilentlyContinue
495
- if ($portBusy) { "PORT_IN_USE" } else { "PORT_FREE" }
496
- $devServerCommand = "<start-command>"
497
- $server = Start-Process -FilePath "powershell" -ArgumentList @("-NoProfile", "-Command", $devServerCommand) -PassThru
498
- $DEV_SERVER_PID = $server.Id
499
- ```
500
-
501
- Wait for server to be ready: poll `http://localhost:$DEV_PORT` until it returns 200 or 302 (max 30 seconds, 2s interval):
502
- ```powershell
503
- $ready = $false
504
- for ($i = 0; $i -lt 15; $i++) {
505
- try {
506
- $response = Invoke-WebRequest -Uri "http://localhost:$DEV_PORT" -UseBasicParsing -TimeoutSec 2
507
- if ($response.StatusCode -in @(200, 302)) { $ready = $true; break }
508
- } catch {
509
- Start-Sleep -Seconds 2
510
- }
511
- }
512
- if (-not $ready) { "DEV_SERVER_NOT_READY" }
513
- ```
514
- 4. Open the app in playwright-cli: `playwright-cli open "http://localhost:$DEV_PORT"`
515
- 5. If the page requires authentication, use playwright-cli to register a test user and log in first
516
-
517
- **Step 2 — Verification**:
518
-
519
- Use `playwright-cli snapshot` on the running app to discover actual element refs, then verify these goals:
520
- {{BROWSER_VERIFY_STEPS}}
521
-
522
- Construct your verification workflow based on:
523
- 1. The playwright-cli skill documentation (read in Step 0d)
524
- 2. The `playwright-cli --help` output (captured in Step 0b)
525
- 3. The current task's Verification Gates and implemented features
526
-
527
- Decide the concrete playwright-cli actions (click, fill, snapshot, screenshot, etc.) yourself based on the snapshot output and your knowledge of the implemented code. The goals above describe WHAT to verify — you determine HOW using playwright-cli commands.
528
-
529
- Take a final screenshot for evidence: `playwright-cli screenshot`
530
-
531
- **Step 3 — Cleanup (REQUIRED — you started it, you stop it)**:
532
-
533
- 1. Close the playwright-cli browser: `playwright-cli close`
534
- 2. Stop the dev server process and any remaining process bound to the dev server port:
535
- ```powershell
536
- if ($DEV_SERVER_PID) { Stop-Process -Id $DEV_SERVER_PID -Force -ErrorAction SilentlyContinue }
537
- Get-NetTCPConnection -LocalPort ([int]$DEV_PORT) -ErrorAction SilentlyContinue |
538
- Select-Object -ExpandProperty OwningProcess -Unique |
539
- ForEach-Object { Stop-Process -Id $_ -Force -ErrorAction SilentlyContinue }
540
- ```
541
-
542
- {{END_IF_BROWSER_TOOL_PLAYWRIGHT}}
543
- {{IF_BROWSER_TOOL_OPENCLI}}
544
- **Using: opencli** (reuses Chrome logged-in sessions)
545
-
546
- **CRITICAL CONSTRAINT — opencli browser ONLY**:
547
- - You MUST use `opencli browser` for ALL browser interactions in this phase
548
- - All browser actions go through `opencli browser <command>` in the PowerShell tool
549
-
550
- **Step 0 — OpenCLI Readiness Check (BLOCKING)**:
551
-
552
- 0a. Check if `opencli` is installed:
553
- ```powershell
554
- $opencli = Get-Command opencli -ErrorAction SilentlyContinue
555
- if ($opencli) { opencli --version } else { "NOT_INSTALLED" }
556
- ```
557
- If `NOT_INSTALLED`: `npm install -g @jackwener/opencli@latest`. If installation fails, log `## Browser Verification: SKIPPED — opencli installation failed` and proceed.
558
-
559
- 0b. Verify Browser Bridge: `opencli doctor`. If fails, log skip and proceed.
560
-
561
- 0c. Learn usage:
562
- ```powershell
563
- opencli browser --help 2>$null
564
- if ($LASTEXITCODE -ne 0) { opencli --help }
565
- ```
566
-
567
- **Step 1 — Start Dev Server**: use the same port detection and server lifecycle pattern as the playwright-cli path:
568
- ```powershell
569
- $DEV_PORT = "{{DEV_PORT}}"
570
- if ($DEV_PORT -eq "{{DEV_PORT}}" -or [string]::IsNullOrWhiteSpace($DEV_PORT)) {
571
- $detectedPort = ""
572
- if (Test-Path -LiteralPath "package.json") {
573
- $detectedPort = node -e "const p=require('./package.json'); const s=(p.scripts?.dev) || ''; const m=s.match(/-p\s+(\d+)/); console.log(m?m[1]:'')"
574
- }
575
- if (-not $detectedPort -and $env:NEXT_PUBLIC_SITE_URL -match ':([0-9]+)') {
576
- $detectedPort = $Matches[1]
577
- }
578
- if ($detectedPort) { $DEV_PORT = $detectedPort } else { $DEV_PORT = "3000" }
579
- }
580
- "Detected DEV_PORT=$DEV_PORT"
581
- ```
582
- ```powershell
583
- $portBusy = Get-NetTCPConnection -LocalPort ([int]$DEV_PORT) -ErrorAction SilentlyContinue
584
- if ($portBusy) { "PORT_IN_USE" } else { "PORT_FREE" }
585
- $devServerCommand = "<start-command>"
586
- $server = Start-Process -FilePath "powershell" -ArgumentList @("-NoProfile", "-Command", $devServerCommand) -PassThru
587
- $DEV_SERVER_PID = $server.Id
588
- ```
589
-
590
- Wait for server to be ready: poll `http://localhost:$DEV_PORT` until it returns 200 or 302 (max 30 seconds, 2s interval):
591
- ```powershell
592
- $ready = $false
593
- for ($i = 0; $i -lt 15; $i++) {
594
- try {
595
- $response = Invoke-WebRequest -Uri "http://localhost:$DEV_PORT" -UseBasicParsing -TimeoutSec 2
596
- if ($response.StatusCode -in @(200, 302)) { $ready = $true; break }
597
- } catch {
598
- Start-Sleep -Seconds 2
599
- }
600
- }
601
- if (-not $ready) { "DEV_SERVER_NOT_READY" }
602
- ```
603
-
604
- Start server, wait for ready, then:
605
- ```powershell
606
- opencli browser open "http://localhost:$DEV_PORT"
607
- if ($LASTEXITCODE -eq 0) { opencli browser state }
608
- ```
609
-
610
- **Step 2 — Verification**:
611
-
612
- Use `opencli browser state` to discover elements with `[N]` indices, then verify:
613
- {{BROWSER_VERIFY_STEPS}}
614
-
615
- Chain commands in PowerShell with semicolons and inspect each result, for example: `opencli browser click <N>; opencli browser wait time 1; opencli browser state`
616
-
617
- **Step 3 — Cleanup**:
618
- 1. `opencli browser close`
619
- 2. Stop the dev server process and any remaining process bound to the dev server port:
620
- ```powershell
621
- if ($DEV_SERVER_PID) { Stop-Process -Id $DEV_SERVER_PID -Force -ErrorAction SilentlyContinue }
622
- Get-NetTCPConnection -LocalPort ([int]$DEV_PORT) -ErrorAction SilentlyContinue |
623
- Select-Object -ExpandProperty OwningProcess -Unique |
624
- ForEach-Object { Stop-Process -Id $_ -Force -ErrorAction SilentlyContinue }
625
- ```
626
-
627
- {{END_IF_BROWSER_TOOL_OPENCLI}}
628
- {{IF_BROWSER_TOOL_AUTO}}
629
- **Tool Selection**: Choose the best browser tool at runtime.
630
-
631
- **Step 0 — Detect available tools**:
632
- ```powershell
633
- "=== playwright-cli ==="
634
- $playwright = Get-Command playwright-cli -ErrorAction SilentlyContinue
635
- if ($playwright) { playwright-cli --version } else { "NOT_INSTALLED" }
636
- "=== opencli ==="
637
- $opencli = Get-Command opencli -ErrorAction SilentlyContinue
638
- if ($opencli) { opencli --version } else { "NOT_INSTALLED" }
639
- if ($opencli) {
640
- opencli doctor 2>$null
641
- if ($LASTEXITCODE -ne 0) { "OPENCLI_BRIDGE_FAILED" }
642
- }
643
- ```
644
-
645
- **Decision table**:
646
- | Condition | Tool |
647
- |-----------|------|
648
- | Only playwright-cli available | playwright-cli |
649
- | Only opencli available (doctor passes) | opencli |
650
- | Both — local dev server, forms, components | playwright-cli |
651
- | Both — needs real login state (OAuth/SSO) | opencli |
652
- | Both — third-party integration verification | opencli |
653
- | Neither available | Install playwright-cli as default |
654
-
655
- Then follow the corresponding tool's workflow above (Steps 1-3).
656
-
657
- {{END_IF_BROWSER_TOOL_AUTO}}
658
-
659
- **Step 4 — Reporting**:
660
-
661
- Append results to `context-snapshot.md`:
662
- ```
663
- ## Browser Verification
664
- Tool: <playwright-cli or opencli>
665
- URL: http://localhost:$DEV_PORT
666
- Dev Server Command: <actual command used>
667
- Tool version: <version>
668
- Steps executed: [list of commands used]
669
- Screenshot: [path]
670
- Result: PASS / FAIL (reason)
671
- Server cleanup: confirmed
672
- Browser cleanup: confirmed
673
- ```
674
-
675
- If verification fails, log the failure details but continue to commit. Failures do NOT block the commit, but you MUST attempt verification and MUST clean up the dev server.
676
- {{END_IF_BROWSER_INTERACTION}}
677
-
678
- ### Phase 6: Retrospective & Commit (SINGLE COMMIT) — DO NOT SKIP
679
-
680
- **Bug Fix Documentation Policy**:
681
- - DEFAULT: Run `/prizmkit-retrospective` with structural sync only (update file counts, interfaces, dependencies). Skip knowledge injection.
682
- - UPDATE DOCS (run full retrospective — Job 1 + Job 2) when bug fix causes: interface signature changes, dependency additions/removals, observable behavior changes to existing features, or newly discovered TRAPs.
683
- - Simple bugs: No new spec.md/plan.md needed. Use fast path.
684
- - Complex bugs (multi-module, cascading): Use `/prizmkit-plan` with `artifact_dir=.prizmkit/bugfix/<BUG_ID>/`.
685
- - Commit prefix: `fix(<scope>):` (not `feat:`).
686
-
687
- **6a.** Check if feature already committed:
688
- ```powershell
689
- git log --oneline | Select-String -Pattern "{{FEATURE_ID}}" | Select-Object -First 3
690
- ```
691
- - If a commit for `{{FEATURE_ID}}` already exists → **skip 6d** (do NOT run /prizmkit-committer, do NOT run git reset, do NOT stage or unstage anything). Proceed directly to 6e Final verification.
692
- - If no existing commit → proceed normally with 6b–6d.
693
-
694
- **6b.** Run `/prizmkit-retrospective` (**before commit**, maintains `.prizmkit/prizm-docs/` architecture index):
695
- - **Structural sync**: update KEY_FILES/INTERFACES/DEPENDENCIES/file counts for changed modules
696
- - **Architecture knowledge** (feature sessions only): extract TRAPS, RULES, DECISIONS from completed work into `.prizmkit/prizm-docs/`
697
- - **L2 coverage check**: For any module/sub-module with source files created or significantly modified in this session but no L2 `.prizm` doc — evaluate whether L2 is warranted and create if so. The current session has the best context for accurate KEY_FILES, TRAPS, and DECISIONS.
698
- - Stage doc changes: `git add .prizmkit/prizm-docs/`
699
- ⚠️ Do NOT commit here. Only stage.
700
- - **For bug-fix sessions**: structural sync (Job 1) by default. Run knowledge injection (Job 2) when the fix causes interface signature changes, dependency additions/removals, observable behavior changes, or reveals new TRAPs
701
-
702
- **6c.** Stage all feature code explicitly (NEVER use `git add -A` or `git add .`):
703
- ```powershell
704
- git add <specific-files-created-or-modified>
705
- git add .prizmkit/prizm-docs/
706
- ```
707
-
708
- **6d.** Run `/prizmkit-committer` → THE ONLY commit for this feature:
709
- `feat({{FEATURE_ID}}): {{FEATURE_TITLE}}`
710
- This single commit includes: feature code + tests + .prizmkit/prizm-docs/ updates. Do NOT push.
711
- - MANDATORY: commit must be done via `/prizmkit-committer` skill. Do NOT run manual `git add`/`git commit` as a substitute.
712
- - Do NOT run `update-feature-status.py` here — the pipeline runner handles feature-list.json updates automatically after session exit.
713
-
714
- **6e.** Final verification:
715
- ```powershell
716
- git status --short
717
- ```
718
- Working tree MUST be clean after this step. If any feature-related files remain, stage them into the SAME commit via `git add <file>; if ($LASTEXITCODE -eq 0) { git commit --amend --no-edit }`, do NOT create a separate commit.
719
-
720
- **Exception**: `session-summary.md` in the artifact directory is a local cross-session artifact generated by `/prizmkit-committer` — it is NOT committed to git. Ignore it in the clean-tree check.
721
-
722
- **6f.** Write completion summary for downstream dependency context:
723
-
724
- Write `.prizmkit/specs/{{FEATURE_SLUG}}/completion-summary.json` with the key changes from this session. This file is NOT committed to git — the pipeline runner reads it to propagate context to dependent features.
725
-
726
- ```json
727
- {
728
- "completion_notes": [
729
- "<each item: one key change, API, model, or integration point that downstream features may need>",
730
- "Example: Added User model (id, email, password_hash, display_name) in prisma/schema.prisma",
731
- "Example: POST /api/auth/register and POST /api/auth/login endpoints in src/api/auth.ts",
732
- "Example: Auth middleware in src/middleware/auth.ts — validates JWT on protected routes"
733
- ]
734
- }
735
- ```
736
-
737
- Rules for writing completion notes:
738
- - Focus on **what downstream features need to know**: new APIs, models, exported functions, key file paths
739
- - Each note should be self-contained and concise (one line, under 120 characters preferred)
740
- - Include 3-8 notes covering the most important changes
741
- - Do NOT include test files, config changes, or internal implementation details unless they affect other features
742
- - If this feature has no downstream dependents, still write the summary (it serves as documentation)
743
-
744
- ## Critical Paths
745
-
746
- | Resource | Path |
747
- |----------|------|
748
- | Feature Artifacts Dir | `.prizmkit/specs/{{FEATURE_SLUG}}/` |
749
- | Context Snapshot | `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` |
750
- | Team Config | `{{TEAM_CONFIG_PATH}}` |
751
- | Dev Agent Def | {{DEV_SUBAGENT_PATH}} |
752
- | Reviewer Agent Def | {{REVIEWER_SUBAGENT_PATH}} |
753
- {{IF_CRITIC_ENABLED}}
754
- | Critic Agent Def | {{CRITIC_SUBAGENT_PATH}} |
755
- {{END_IF_CRITIC_ENABLED}}
756
- | Project Root | {{PROJECT_ROOT}} |
757
- | Feature List Path | {{FEATURE_LIST_PATH}} |
758
-
759
- ## Failure Capture Protocol
760
-
761
- If you encounter an unrecoverable error, context overflow, or are about to exit without completing all phases:
762
-
763
- 1. Write `.prizmkit/specs/{{FEATURE_SLUG}}/failure-log.md` BEFORE exiting:
764
- ```
765
- FAILURE_TYPE: timeout | test_failure | review_rejected | context_overflow | unknown
766
- PHASE: <Get-Command phase failed>
767
- ROOT_CAUSE: <1-2 sentence explanation>
768
- ATTEMPTED: <approaches already tried>
769
- SUGGESTION: <what the next session should try differently>
770
- DISCOVERED_TRAPS:
771
- - [CRITICAL|HIGH|LOW] <gotcha discovered during this failed session> | FIX: <approach>
772
- ```
773
-
774
- 2. This file is intentionally lightweight — write it BEFORE context runs out.
775
-
776
- **Lifecycle**: failure-log.md is a temporary cross-session artifact. Do NOT commit it to git. After a successful session (all phases complete + commit done), delete it:
777
- ```powershell
778
- Remove-Item -Force -ErrorAction SilentlyContinue .prizmkit/specs/{{FEATURE_SLUG}}/failure-log.md
779
- ```
780
-
781
- ## Reminders
782
-
783
- - Tier 3: full team — Dev (implementation) → Reviewer (review) — spawn agents directly via Agent tool
784
- - context-snapshot.md is append-only: orchestrator writes Sections 1-4, Dev appends Implementation Log, Reviewer appends Review Notes
785
- - Gate checks enforce Implementation Log and Review Notes are written before proceeding
786
- - Do NOT use `run_in_background=true` when spawning normal work agents; headless recovery is handled by runner continuation from durable checkpoints/artifacts
787
- - Commit phase must use `/prizmkit-committer`; do NOT replace with manual git commit commands
788
- - Do NOT run `git add`/`git commit` during Phase 1-5 — all changes are committed once in Phase 6
789
- - If any files remain after the commit, amend the existing commit — do NOT create a follow-up commit
790
- - When staging files, always use explicit file names — NEVER use `git add -A` or `git add .`
791
- - On timeout: check snapshot → model:lite → remaining steps only → max 2 retries → orchestrator fallback