prizmkit 1.1.99 → 1.1.101

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 (321) 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 +345 -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 +147 -0
  26. package/bundled/dev-pipeline/prizmkit_runtime/runners.py +422 -0
  27. package/bundled/dev-pipeline/prizmkit_runtime/sessions.py +552 -0
  28. package/bundled/dev-pipeline/prizmkit_runtime/status.py +71 -0
  29. package/bundled/dev-pipeline/scripts/check-session-status.py +74 -1
  30. package/bundled/dev-pipeline/scripts/continuation.py +374 -0
  31. package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +64 -52
  32. package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +35 -25
  33. package/bundled/dev-pipeline/scripts/generate-recovery-prompt.py +2 -2
  34. package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +15 -20
  35. package/bundled/dev-pipeline/scripts/parse-stream-progress.py +185 -16
  36. package/bundled/dev-pipeline/scripts/update-bug-status.py +214 -6
  37. package/bundled/dev-pipeline/scripts/update-feature-status.py +237 -6
  38. package/bundled/dev-pipeline/scripts/update-refactor-status.py +214 -6
  39. package/bundled/dev-pipeline/templates/agent-prompts/dev-implement.md +8 -2
  40. package/bundled/dev-pipeline/templates/bootstrap-prompt.md +4 -0
  41. package/bundled/dev-pipeline/templates/bootstrap-tier1.md +14 -5
  42. package/bundled/dev-pipeline/templates/bootstrap-tier2.md +16 -6
  43. package/bundled/dev-pipeline/templates/bootstrap-tier3.md +16 -6
  44. package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +1 -1
  45. package/bundled/dev-pipeline/templates/refactor-bootstrap-prompt.md +3 -3
  46. package/bundled/dev-pipeline/templates/sections/context-budget-rules.md +2 -0
  47. package/bundled/dev-pipeline/templates/sections/log-size-awareness.md +13 -69
  48. package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-agent-suffix.md +15 -7
  49. package/bundled/dev-pipeline/templates/sections/phase-implement-agent.md +42 -29
  50. package/bundled/dev-pipeline/templates/sections/phase-implement-full.md +41 -39
  51. package/bundled/dev-pipeline/templates/sections/test-failure-recovery-agent.md +4 -0
  52. package/bundled/dev-pipeline/templates/sections/test-failure-recovery-lite.md +4 -0
  53. package/bundled/dev-pipeline/templates/session-status-schema.json +1 -1
  54. package/bundled/dev-pipeline/tests/conftest.py +1 -0
  55. package/bundled/dev-pipeline/tests/test_auto_skip.py +932 -0
  56. package/bundled/dev-pipeline/tests/test_generate_bootstrap_prompt.py +207 -0
  57. package/bundled/dev-pipeline/tests/test_generate_bugfix_prompt.py +100 -0
  58. package/bundled/dev-pipeline/tests/test_generate_refactor_prompt.py +43 -0
  59. package/bundled/dev-pipeline/tests/test_python_runner_parity.py +1138 -0
  60. package/bundled/dev-pipeline/tests/test_unified_cli.py +1045 -0
  61. package/bundled/skills/_metadata.json +1 -1
  62. package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +29 -34
  63. package/bundled/skills/bugfix-pipeline-launcher/references/configuration.md +6 -5
  64. package/bundled/skills/feature-pipeline-launcher/SKILL.md +29 -35
  65. package/bundled/skills/feature-pipeline-launcher/references/configuration.md +7 -6
  66. package/bundled/skills/feature-workflow/SKILL.md +3 -6
  67. package/bundled/skills/recovery-workflow/SKILL.md +23 -32
  68. package/bundled/skills/refactor-pipeline-launcher/SKILL.md +29 -35
  69. package/bundled/skills/refactor-pipeline-launcher/references/configuration.md +7 -6
  70. package/bundled/skills/refactor-workflow/SKILL.md +3 -6
  71. package/bundled/templates/hooks/commit-intent.json +2 -2
  72. package/bundled/templates/hooks/diff-prizm-docs.py +226 -0
  73. package/bundled/templates/hooks/prizm-pre-commit.py +45 -0
  74. package/bundled/templates/hooks/validate-prizm-docs.py +240 -0
  75. package/package.json +1 -1
  76. package/src/config.js +33 -12
  77. package/src/index.js +3 -6
  78. package/src/manifest.js +3 -2
  79. package/src/metadata.js +7 -18
  80. package/src/prompts.js +0 -12
  81. package/src/runtimes.js +18 -11
  82. package/src/scaffold.js +133 -116
  83. package/src/upgrade.js +1 -1
  84. package/bundled/dev-pipeline/launch-bugfix-daemon.sh +0 -500
  85. package/bundled/dev-pipeline/launch-feature-daemon.sh +0 -657
  86. package/bundled/dev-pipeline/launch-refactor-daemon.sh +0 -502
  87. package/bundled/dev-pipeline/lib/branch.sh +0 -326
  88. package/bundled/dev-pipeline/lib/common.sh +0 -1257
  89. package/bundled/dev-pipeline/lib/heartbeat.sh +0 -469
  90. package/bundled/dev-pipeline/reset-bug.sh +0 -395
  91. package/bundled/dev-pipeline/reset-feature.sh +0 -406
  92. package/bundled/dev-pipeline/reset-refactor.sh +0 -393
  93. package/bundled/dev-pipeline/run-bugfix.sh +0 -1315
  94. package/bundled/dev-pipeline/run-feature.sh +0 -1602
  95. package/bundled/dev-pipeline/run-recovery.sh +0 -648
  96. package/bundled/dev-pipeline/run-refactor.sh +0 -1348
  97. package/bundled/dev-pipeline/scripts/monitor-log.sh +0 -104
  98. package/bundled/dev-pipeline/tests/test-path-resolution.sh +0 -100
  99. package/bundled/dev-pipeline-windows/.env.example +0 -36
  100. package/bundled/dev-pipeline-windows/README.md +0 -30
  101. package/bundled/dev-pipeline-windows/SCHEMA_ANALYSIS.md +0 -533
  102. package/bundled/dev-pipeline-windows/assets/feature-list-example.json +0 -146
  103. package/bundled/dev-pipeline-windows/assets/prizm-dev-team-integration.md +0 -137
  104. package/bundled/dev-pipeline-windows/launch-bugfix-daemon.ps1 +0 -9
  105. package/bundled/dev-pipeline-windows/launch-feature-daemon.ps1 +0 -9
  106. package/bundled/dev-pipeline-windows/launch-refactor-daemon.ps1 +0 -9
  107. package/bundled/dev-pipeline-windows/lib/branch.ps1 +0 -235
  108. package/bundled/dev-pipeline-windows/lib/common.ps1 +0 -829
  109. package/bundled/dev-pipeline-windows/lib/daemon.ps1 +0 -140
  110. package/bundled/dev-pipeline-windows/lib/pipeline.ps1 +0 -967
  111. package/bundled/dev-pipeline-windows/lib/reset.ps1 +0 -87
  112. package/bundled/dev-pipeline-windows/reset-bug.ps1 +0 -9
  113. package/bundled/dev-pipeline-windows/reset-feature.ps1 +0 -9
  114. package/bundled/dev-pipeline-windows/reset-refactor.ps1 +0 -9
  115. package/bundled/dev-pipeline-windows/run-bugfix.ps1 +0 -9
  116. package/bundled/dev-pipeline-windows/run-feature.ps1 +0 -9
  117. package/bundled/dev-pipeline-windows/run-recovery.ps1 +0 -179
  118. package/bundled/dev-pipeline-windows/run-refactor.ps1 +0 -9
  119. package/bundled/dev-pipeline-windows/scripts/check-session-status.py +0 -228
  120. package/bundled/dev-pipeline-windows/scripts/detect-stuck.py +0 -530
  121. package/bundled/dev-pipeline-windows/scripts/generate-bootstrap-prompt.py +0 -2282
  122. package/bundled/dev-pipeline-windows/scripts/generate-bugfix-prompt.py +0 -767
  123. package/bundled/dev-pipeline-windows/scripts/generate-recovery-prompt.py +0 -805
  124. package/bundled/dev-pipeline-windows/scripts/generate-refactor-prompt.py +0 -845
  125. package/bundled/dev-pipeline-windows/scripts/init-bugfix-pipeline.py +0 -316
  126. package/bundled/dev-pipeline-windows/scripts/init-dev-team.py +0 -134
  127. package/bundled/dev-pipeline-windows/scripts/init-pipeline.py +0 -382
  128. package/bundled/dev-pipeline-windows/scripts/init-refactor-pipeline.py +0 -399
  129. package/bundled/dev-pipeline-windows/scripts/monitor-log.ps1 +0 -102
  130. package/bundled/dev-pipeline-windows/scripts/parse-stream-progress.py +0 -1232
  131. package/bundled/dev-pipeline-windows/scripts/patch-completion-notes.py +0 -191
  132. package/bundled/dev-pipeline-windows/scripts/prizmkit-test-gate.py +0 -446
  133. package/bundled/dev-pipeline-windows/scripts/update-bug-status.py +0 -913
  134. package/bundled/dev-pipeline-windows/scripts/update-checkpoint.py +0 -173
  135. package/bundled/dev-pipeline-windows/scripts/update-feature-status.py +0 -1558
  136. package/bundled/dev-pipeline-windows/scripts/update-refactor-status.py +0 -1119
  137. package/bundled/dev-pipeline-windows/scripts/utils.py +0 -542
  138. package/bundled/dev-pipeline-windows/templates/agent-prompts/critic-plan-challenge.md +0 -7
  139. package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-fix.md +0 -7
  140. package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-implement.md +0 -65
  141. package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-resume.md +0 -5
  142. package/bundled/dev-pipeline-windows/templates/agent-prompts/reviewer-review.md +0 -7
  143. package/bundled/dev-pipeline-windows/templates/bootstrap-prompt.md +0 -73
  144. package/bundled/dev-pipeline-windows/templates/bootstrap-tier1.md +0 -589
  145. package/bundled/dev-pipeline-windows/templates/bootstrap-tier2.md +0 -710
  146. package/bundled/dev-pipeline-windows/templates/bootstrap-tier3.md +0 -791
  147. package/bundled/dev-pipeline-windows/templates/bug-fix-list-schema.json +0 -263
  148. package/bundled/dev-pipeline-windows/templates/bugfix-bootstrap-prompt.md +0 -326
  149. package/bundled/dev-pipeline-windows/templates/feature-list-schema.json +0 -237
  150. package/bundled/dev-pipeline-windows/templates/refactor-bootstrap-prompt.md +0 -340
  151. package/bundled/dev-pipeline-windows/templates/refactor-list-schema.json +0 -270
  152. package/bundled/dev-pipeline-windows/templates/sections/ac-verification-checklist.md +0 -7
  153. package/bundled/dev-pipeline-windows/templates/sections/checkpoint-system.md +0 -91
  154. package/bundled/dev-pipeline-windows/templates/sections/context-budget-rules.md +0 -34
  155. package/bundled/dev-pipeline-windows/templates/sections/critical-paths-agent.md +0 -10
  156. package/bundled/dev-pipeline-windows/templates/sections/critical-paths-full.md +0 -12
  157. package/bundled/dev-pipeline-windows/templates/sections/critical-paths-lite.md +0 -7
  158. package/bundled/dev-pipeline-windows/templates/sections/directory-convention-agent.md +0 -8
  159. package/bundled/dev-pipeline-windows/templates/sections/directory-convention-full.md +0 -9
  160. package/bundled/dev-pipeline-windows/templates/sections/directory-convention-lite.md +0 -6
  161. package/bundled/dev-pipeline-windows/templates/sections/failure-capture.md +0 -21
  162. package/bundled/dev-pipeline-windows/templates/sections/feature-context.md +0 -21
  163. package/bundled/dev-pipeline-windows/templates/sections/log-size-awareness.md +0 -78
  164. package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification-auto.md +0 -283
  165. package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification-opencli.md +0 -112
  166. package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification.md +0 -168
  167. package/bundled/dev-pipeline-windows/templates/sections/phase-commit-full.md +0 -82
  168. package/bundled/dev-pipeline-windows/templates/sections/phase-commit.md +0 -75
  169. package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-agent-suffix.md +0 -23
  170. package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-base.md +0 -14
  171. package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-lite-suffix.md +0 -19
  172. package/bundled/dev-pipeline-windows/templates/sections/phase-critic-plan-full.md +0 -63
  173. package/bundled/dev-pipeline-windows/templates/sections/phase-critic-plan.md +0 -42
  174. package/bundled/dev-pipeline-windows/templates/sections/phase-implement-agent.md +0 -44
  175. package/bundled/dev-pipeline-windows/templates/sections/phase-implement-full.md +0 -59
  176. package/bundled/dev-pipeline-windows/templates/sections/phase-implement-lite.md +0 -39
  177. package/bundled/dev-pipeline-windows/templates/sections/phase-plan-agent.md +0 -27
  178. package/bundled/dev-pipeline-windows/templates/sections/phase-plan-lite.md +0 -27
  179. package/bundled/dev-pipeline-windows/templates/sections/phase-prizmkit-test.md +0 -39
  180. package/bundled/dev-pipeline-windows/templates/sections/phase-review-agent.md +0 -35
  181. package/bundled/dev-pipeline-windows/templates/sections/phase-review-full.md +0 -35
  182. package/bundled/dev-pipeline-windows/templates/sections/phase-specify-plan-full.md +0 -73
  183. package/bundled/dev-pipeline-windows/templates/sections/phase0-init.md +0 -13
  184. package/bundled/dev-pipeline-windows/templates/sections/phase0-test-baseline.md +0 -21
  185. package/bundled/dev-pipeline-windows/templates/sections/session-context.md +0 -5
  186. package/bundled/dev-pipeline-windows/templates/sections/subagent-timeout-recovery.md +0 -6
  187. package/bundled/dev-pipeline-windows/templates/sections/task-contract.md +0 -34
  188. package/bundled/dev-pipeline-windows/templates/sections/test-failure-recovery-agent.md +0 -48
  189. package/bundled/dev-pipeline-windows/templates/sections/test-failure-recovery-lite.md +0 -48
  190. package/bundled/dev-pipeline-windows/templates/session-status-schema.json +0 -83
  191. package/bundled/skills-windows/app-planner/SKILL.md +0 -296
  192. package/bundled/skills-windows/app-planner/assets/app-design-guide.md +0 -101
  193. package/bundled/skills-windows/app-planner/references/architecture-decisions.md +0 -52
  194. package/bundled/skills-windows/app-planner/references/brainstorm-guide.md +0 -101
  195. package/bundled/skills-windows/app-planner/references/frontend-design-guide.md +0 -71
  196. package/bundled/skills-windows/app-planner/references/infrastructure-convention-discovery.md +0 -108
  197. package/bundled/skills-windows/app-planner/references/project-brief-guide.md +0 -82
  198. package/bundled/skills-windows/app-planner/references/project-conventions-discovery.md +0 -59
  199. package/bundled/skills-windows/app-planner/references/project-state-detection.md +0 -90
  200. package/bundled/skills-windows/app-planner/references/red-team-checklist.md +0 -40
  201. package/bundled/skills-windows/app-planner/references/rules/backend/derivation-rules.md +0 -619
  202. package/bundled/skills-windows/app-planner/references/rules/backend/fixed-rules.md +0 -285
  203. package/bundled/skills-windows/app-planner/references/rules/backend/question-bank.md +0 -249
  204. package/bundled/skills-windows/app-planner/references/rules/backend/question-manifest.json +0 -46
  205. package/bundled/skills-windows/app-planner/references/rules/backend/template.md +0 -173
  206. package/bundled/skills-windows/app-planner/references/rules/database/derivation-rules.md +0 -382
  207. package/bundled/skills-windows/app-planner/references/rules/database/fixed-rules.md +0 -211
  208. package/bundled/skills-windows/app-planner/references/rules/database/question-bank.md +0 -184
  209. package/bundled/skills-windows/app-planner/references/rules/database/question-manifest.json +0 -39
  210. package/bundled/skills-windows/app-planner/references/rules/database/template.md +0 -158
  211. package/bundled/skills-windows/app-planner/references/rules/frontend/derivation-rules.md +0 -820
  212. package/bundled/skills-windows/app-planner/references/rules/frontend/fixed-rules.md +0 -188
  213. package/bundled/skills-windows/app-planner/references/rules/frontend/question-bank.md +0 -319
  214. package/bundled/skills-windows/app-planner/references/rules/frontend/question-manifest.json +0 -51
  215. package/bundled/skills-windows/app-planner/references/rules/frontend/template.md +0 -339
  216. package/bundled/skills-windows/app-planner/references/rules/mobile/derivation-rules.md +0 -649
  217. package/bundled/skills-windows/app-planner/references/rules/mobile/fixed-rules.md +0 -290
  218. package/bundled/skills-windows/app-planner/references/rules/mobile/question-bank.md +0 -232
  219. package/bundled/skills-windows/app-planner/references/rules/mobile/question-manifest.json +0 -47
  220. package/bundled/skills-windows/app-planner/references/rules/mobile/template.md +0 -175
  221. package/bundled/skills-windows/app-planner/references/rules-configuration.md +0 -46
  222. package/bundled/skills-windows/bug-fix-workflow/SKILL.md +0 -379
  223. package/bundled/skills-windows/bug-fix-workflow/references/bug-diagnosis.md +0 -41
  224. package/bundled/skills-windows/bug-planner/SKILL.md +0 -402
  225. package/bundled/skills-windows/bug-planner/assets/bug-confirmation-template.md +0 -43
  226. package/bundled/skills-windows/bug-planner/references/critic-and-verification.md +0 -44
  227. package/bundled/skills-windows/bug-planner/references/error-recovery.md +0 -73
  228. package/bundled/skills-windows/bug-planner/references/input-formats.md +0 -53
  229. package/bundled/skills-windows/bug-planner/references/schema-validation.md +0 -25
  230. package/bundled/skills-windows/bug-planner/references/severity-rules.md +0 -16
  231. package/bundled/skills-windows/bug-planner/scripts/validate-bug-list.py +0 -322
  232. package/bundled/skills-windows/bugfix-pipeline-launcher/SKILL.md +0 -304
  233. package/bundled/skills-windows/bugfix-pipeline-launcher/references/configuration.md +0 -84
  234. package/bundled/skills-windows/feature-pipeline-launcher/SKILL.md +0 -381
  235. package/bundled/skills-windows/feature-pipeline-launcher/references/configuration.md +0 -67
  236. package/bundled/skills-windows/feature-pipeline-launcher/scripts/preflight-check.py +0 -462
  237. package/bundled/skills-windows/feature-planner/SKILL.md +0 -397
  238. package/bundled/skills-windows/feature-planner/assets/evaluation-guide.md +0 -64
  239. package/bundled/skills-windows/feature-planner/assets/planning-guide.md +0 -214
  240. package/bundled/skills-windows/feature-planner/references/browser-interaction.md +0 -59
  241. package/bundled/skills-windows/feature-planner/references/completeness-review.md +0 -57
  242. package/bundled/skills-windows/feature-planner/references/decomposition-patterns.md +0 -75
  243. package/bundled/skills-windows/feature-planner/references/error-recovery.md +0 -90
  244. package/bundled/skills-windows/feature-planner/references/incremental-feature-planning.md +0 -112
  245. package/bundled/skills-windows/feature-planner/references/new-project-planning.md +0 -85
  246. package/bundled/skills-windows/feature-planner/scripts/validate-and-generate.py +0 -1020
  247. package/bundled/skills-windows/feature-workflow/SKILL.md +0 -374
  248. package/bundled/skills-windows/feature-workflow/references/brainstorm-guide.md +0 -137
  249. package/bundled/skills-windows/prizm-kit/SKILL.md +0 -93
  250. package/bundled/skills-windows/prizmkit-code-review/SKILL.md +0 -161
  251. package/bundled/skills-windows/prizmkit-code-review/references/dev-agent-prompt.md +0 -30
  252. package/bundled/skills-windows/prizmkit-code-review/references/review-report-template.md +0 -31
  253. package/bundled/skills-windows/prizmkit-code-review/references/reviewer-agent-prompt.md +0 -66
  254. package/bundled/skills-windows/prizmkit-code-review/scripts/check_loop.py +0 -186
  255. package/bundled/skills-windows/prizmkit-committer/SKILL.md +0 -89
  256. package/bundled/skills-windows/prizmkit-deploy/SKILL.md +0 -444
  257. package/bundled/skills-windows/prizmkit-deploy/references/ci-cd-workflows.md +0 -115
  258. package/bundled/skills-windows/prizmkit-deploy/references/cloud-platform-deploy.md +0 -93
  259. package/bundled/skills-windows/prizmkit-deploy/references/data-safety-examples.md +0 -120
  260. package/bundled/skills-windows/prizmkit-deploy/references/database-setup.md +0 -46
  261. package/bundled/skills-windows/prizmkit-deploy/references/deploy-config-schema.md +0 -148
  262. package/bundled/skills-windows/prizmkit-deploy/references/deploy-history-schema.md +0 -62
  263. package/bundled/skills-windows/prizmkit-deploy/references/deployment-modes.md +0 -50
  264. package/bundled/skills-windows/prizmkit-deploy/references/direct-upload.md +0 -26
  265. package/bundled/skills-windows/prizmkit-deploy/references/dns-setup.md +0 -42
  266. package/bundled/skills-windows/prizmkit-deploy/references/docker-deploy.md +0 -31
  267. package/bundled/skills-windows/prizmkit-deploy/references/firewall-setup.md +0 -37
  268. package/bundled/skills-windows/prizmkit-deploy/references/live-validation-notes.md +0 -21
  269. package/bundled/skills-windows/prizmkit-deploy/references/nginx-blue-green.md +0 -59
  270. package/bundled/skills-windows/prizmkit-deploy/references/ssh-bootstrap-flow.md +0 -49
  271. package/bundled/skills-windows/prizmkit-deploy/references/ssh-execution-flow.md +0 -41
  272. package/bundled/skills-windows/prizmkit-deploy/references/ssh-takeover.md +0 -20
  273. package/bundled/skills-windows/prizmkit-deploy/references/ssl-setup.md +0 -56
  274. package/bundled/skills-windows/prizmkit-implement/SKILL.md +0 -71
  275. package/bundled/skills-windows/prizmkit-init/SKILL.md +0 -356
  276. package/bundled/skills-windows/prizmkit-init/assets/project-brief-template.md +0 -82
  277. package/bundled/skills-windows/prizmkit-init/references/config-schema.md +0 -70
  278. package/bundled/skills-windows/prizmkit-init/references/rules/layer-detection.md +0 -41
  279. package/bundled/skills-windows/prizmkit-init/references/tech-stack-catalog.md +0 -13
  280. package/bundled/skills-windows/prizmkit-init/references/update-supplement.md +0 -9
  281. package/bundled/skills-windows/prizmkit-plan/SKILL.md +0 -102
  282. package/bundled/skills-windows/prizmkit-plan/assets/plan-template.md +0 -115
  283. package/bundled/skills-windows/prizmkit-plan/assets/spec-template.md +0 -73
  284. package/bundled/skills-windows/prizmkit-plan/references/clarify-guide.md +0 -67
  285. package/bundled/skills-windows/prizmkit-plan/references/examples.md +0 -85
  286. package/bundled/skills-windows/prizmkit-plan/references/verification-checklist.md +0 -60
  287. package/bundled/skills-windows/prizmkit-prizm-docs/SKILL.md +0 -129
  288. package/bundled/skills-windows/prizmkit-prizm-docs/assets/prizm-docs-format.md +0 -613
  289. package/bundled/skills-windows/prizmkit-prizm-docs/references/op-init.md +0 -45
  290. package/bundled/skills-windows/prizmkit-prizm-docs/references/op-rebuild.md +0 -15
  291. package/bundled/skills-windows/prizmkit-prizm-docs/references/op-status.md +0 -14
  292. package/bundled/skills-windows/prizmkit-prizm-docs/references/op-update.md +0 -19
  293. package/bundled/skills-windows/prizmkit-prizm-docs/references/op-validate.md +0 -17
  294. package/bundled/skills-windows/prizmkit-retrospective/SKILL.md +0 -87
  295. package/bundled/skills-windows/prizmkit-retrospective/references/knowledge-injection-steps.md +0 -50
  296. package/bundled/skills-windows/prizmkit-retrospective/references/structural-sync-steps.md +0 -43
  297. package/bundled/skills-windows/prizmkit-test/SKILL.md +0 -227
  298. package/bundled/skills-windows/prizmkit-test/references/boundary-coverage-protocol.md +0 -220
  299. package/bundled/skills-windows/prizmkit-test/references/examples.md +0 -143
  300. package/bundled/skills-windows/prizmkit-test/references/service-boundary-test-catalog.md +0 -225
  301. package/bundled/skills-windows/prizmkit-test/references/test-generation-steps.md +0 -109
  302. package/bundled/skills-windows/prizmkit-test/references/test-report-template.md +0 -111
  303. package/bundled/skills-windows/prizmkit-test/scripts/validate_boundary_report.py +0 -347
  304. package/bundled/skills-windows/recovery-workflow/SKILL.md +0 -355
  305. package/bundled/skills-windows/recovery-workflow/evals/evals.json +0 -46
  306. package/bundled/skills-windows/recovery-workflow/references/detection.md +0 -58
  307. package/bundled/skills-windows/recovery-workflow/scripts/detect-recovery-state.py +0 -544
  308. package/bundled/skills-windows/refactor-pipeline-launcher/SKILL.md +0 -346
  309. package/bundled/skills-windows/refactor-pipeline-launcher/references/configuration.md +0 -72
  310. package/bundled/skills-windows/refactor-planner/SKILL.md +0 -398
  311. package/bundled/skills-windows/refactor-planner/assets/planning-guide.md +0 -292
  312. package/bundled/skills-windows/refactor-planner/references/behavior-preservation.md +0 -301
  313. package/bundled/skills-windows/refactor-planner/references/fast-path.md +0 -59
  314. package/bundled/skills-windows/refactor-planner/references/planning-phases.md +0 -135
  315. package/bundled/skills-windows/refactor-planner/references/refactor-scoping-guide.md +0 -221
  316. package/bundled/skills-windows/refactor-planner/scripts/validate-and-generate-refactor.py +0 -858
  317. package/bundled/skills-windows/refactor-workflow/SKILL.md +0 -343
  318. package/bundled/skills-windows/refactor-workflow/references/brainstorm-guide.md +0 -116
  319. package/bundled/templates/hooks/diff-prizm-docs.sh +0 -158
  320. package/bundled/templates/hooks/prizm-pre-commit.sh +0 -108
  321. package/bundled/templates/hooks/validate-prizm-docs.sh +0 -139
@@ -1,322 +0,0 @@
1
- #!/usr/bin/env python3
2
- """
3
- Validate and generate .prizmkit/plans/bug-fix-list.json files
4
- for the dev-pipeline system.
5
-
6
- Commands:
7
- validate Validate an existing bug-fix-list.json
8
- generate Validate a draft JSON and generate final bug-fix-list.json with defaults
9
-
10
- Usage:
11
- python3 validate-bug-list.py validate .prizmkit/plans/bug-fix-list.json [--feature-list .prizmkit/plans/feature-list.json]
12
- python3 validate-bug-list.py generate --input draft.json --output .prizmkit/plans/bug-fix-list.json
13
-
14
- Exit codes:
15
- 0 = valid / generated
16
- 1 = validation errors found
17
- 2 = file not found or JSON parse error
18
-
19
- Python 3.6+ required. No external dependencies.
20
- """
21
-
22
- import argparse
23
- import json
24
- import sys
25
- import os
26
- import re
27
- from datetime import datetime, timezone
28
-
29
- VALID_SEVERITIES = {"critical", "high", "medium", "low"}
30
- VALID_SOURCE_TYPES = {"stack_trace", "user_report", "failed_test", "log_pattern", "monitoring_alert"}
31
- VALID_VERIFICATION_TYPES = {"automated", "manual", "hybrid"}
32
- VALID_STATUSES = {"pending", "triaging", "reproducing", "fixing", "verifying", "completed", "failed", "needs_info", "skipped"}
33
- BUG_ID_PATTERN = re.compile(r"^B-\d{3}$")
34
- SCHEMA_VERSION = "dev-pipeline-bug-fix-list-v1"
35
-
36
-
37
- def _err(msg):
38
- """Print an error message to stderr."""
39
- print("ERROR: {}".format(msg), file=sys.stderr)
40
-
41
-
42
- def _warn(msg):
43
- """Print a warning message to stderr."""
44
- print("WARN: {}".format(msg), file=sys.stderr)
45
-
46
-
47
- def _info(msg):
48
- """Print an informational message to stderr."""
49
- print("INFO: {}".format(msg), file=sys.stderr)
50
-
51
-
52
- def _load_json(path):
53
- """Load and return parsed JSON from a file. Returns (data, error_string)."""
54
- if not os.path.isfile(path):
55
- return None, "File not found: {}".format(path)
56
- try:
57
- with open(path, "r", encoding="utf-8") as f:
58
- data = json.load(f)
59
- return data, None
60
- except json.JSONDecodeError as e:
61
- return None, "Invalid JSON in {}: {}".format(path, e)
62
- except Exception as e:
63
- return None, "Cannot read {}: {}".format(path, e)
64
-
65
-
66
- def _write_json(path, data):
67
- """Write data as pretty-printed JSON to path. Creates parent dirs if needed."""
68
- parent = os.path.dirname(os.path.abspath(path))
69
- if parent and not os.path.isdir(parent):
70
- os.makedirs(parent, exist_ok=True)
71
- with open(path, "w", encoding="utf-8") as f:
72
- json.dump(data, f, indent=2, ensure_ascii=False)
73
- f.write("\n")
74
-
75
-
76
- def validate(data, feature_ids=None):
77
- """Validate a parsed bug-fix-list data structure.
78
-
79
- Returns a dict with keys: valid, errors, warnings, stats.
80
- """
81
- errors = []
82
- warnings = []
83
-
84
- # Top-level required fields
85
- if "$schema" not in data:
86
- errors.append("Missing required field: $schema")
87
- elif data["$schema"] != SCHEMA_VERSION:
88
- errors.append("Invalid $schema: expected '{}', got '{}'".format(SCHEMA_VERSION, data["$schema"]))
89
-
90
- if not data.get("project_name"):
91
- errors.append("Missing or empty required field: project_name")
92
-
93
- bugs = data.get("bugs", [])
94
- if not bugs or not isinstance(bugs, list):
95
- errors.append("Missing or empty required field: bugs")
96
- return {
97
- "valid": False,
98
- "errors": errors,
99
- "warnings": warnings,
100
- "stats": {"total_bugs": 0, "severity_distribution": {}},
101
- }
102
-
103
- # Per-bug validation
104
- seen_ids = set()
105
- severity_counts = {}
106
-
107
- for i, bug in enumerate(bugs):
108
- prefix = "bugs[{}]".format(i)
109
-
110
- # Required fields
111
- bug_id = bug.get("id", "")
112
- if not bug_id:
113
- errors.append("{}: missing required field 'id'".format(prefix))
114
- elif not BUG_ID_PATTERN.match(bug_id):
115
- errors.append("{}: id '{}' does not match pattern B-NNN".format(prefix, bug_id))
116
-
117
- if bug_id in seen_ids:
118
- errors.append("{}: duplicate bug id '{}'".format(prefix, bug_id))
119
- seen_ids.add(bug_id)
120
-
121
- if not bug.get("title"):
122
- errors.append("{} ({}): missing required field 'title'".format(prefix, bug_id))
123
-
124
- if not bug.get("description"):
125
- errors.append("{} ({}): missing required field 'description'".format(prefix, bug_id))
126
-
127
- severity = bug.get("severity", "")
128
- if severity not in VALID_SEVERITIES:
129
- errors.append("{} ({}): invalid severity '{}' — must be one of {}".format(
130
- prefix, bug_id, severity, sorted(VALID_SEVERITIES)))
131
- else:
132
- severity_counts[severity] = severity_counts.get(severity, 0) + 1
133
-
134
- # error_source
135
- error_source = bug.get("error_source", {})
136
- source_type = error_source.get("type", "") if isinstance(error_source, dict) else ""
137
- if source_type not in VALID_SOURCE_TYPES:
138
- errors.append("{} ({}): invalid error_source.type '{}' — must be one of {}".format(
139
- prefix, bug_id, source_type, sorted(VALID_SOURCE_TYPES)))
140
-
141
- # verification_type
142
- vtype = bug.get("verification_type", "")
143
- if vtype not in VALID_VERIFICATION_TYPES:
144
- errors.append("{} ({}): invalid verification_type '{}' — must be one of {}".format(
145
- prefix, bug_id, vtype, sorted(VALID_VERIFICATION_TYPES)))
146
-
147
- # acceptance_criteria
148
- ac = bug.get("acceptance_criteria", [])
149
- if not ac or not isinstance(ac, list):
150
- errors.append("{} ({}): missing or empty acceptance_criteria array".format(prefix, bug_id))
151
-
152
- # status
153
- status = bug.get("status", "")
154
- if status not in VALID_STATUSES:
155
- errors.append("{} ({}): invalid status '{}' — must be one of {}".format(
156
- prefix, bug_id, status, sorted(VALID_STATUSES)))
157
-
158
- # Priority validation (optional field)
159
- priority = bug.get("priority")
160
- if priority is not None:
161
- if priority not in ("high", "medium", "low"):
162
- errors.append("{} ({}): invalid priority '{}' — must be one of 'high', 'medium', 'low'".format(
163
- prefix, bug_id, priority))
164
-
165
- return {
166
- "valid": len(errors) == 0,
167
- "errors": errors,
168
- "warnings": warnings,
169
- "stats": {
170
- "total_bugs": len(bugs),
171
- "severity_distribution": severity_counts,
172
- },
173
- }
174
-
175
-
176
- def cmd_validate(args):
177
- """Handle the 'validate' command."""
178
- bug_list = args.input
179
- feature_list = args.feature_list
180
-
181
- data, load_err = _load_json(bug_list)
182
- if load_err:
183
- _err(load_err)
184
- return 2
185
-
186
- # Load feature-list.json (optional, for cross-reference)
187
- if feature_list:
188
- fl_data, fl_err = _load_json(feature_list)
189
- if not fl_data:
190
- _warn("Could not load feature-list.json at {}: {}".format(feature_list, fl_err))
191
-
192
- result = validate(data)
193
-
194
- # Print results to stdout
195
- print(json.dumps(result, indent=2, ensure_ascii=False))
196
-
197
- if result["valid"]:
198
- bug_count = result["stats"]["total_bugs"]
199
- sev = result["stats"]["severity_distribution"]
200
- sev_str = ", ".join("{}={}".format(k, v) for k, v in sorted(sev.items()))
201
- _info("VALIDATION PASSED — {} bugs ({})".format(bug_count, sev_str))
202
- return 0
203
- else:
204
- _err("VALIDATION FAILED — {} error(s), {} warning(s)".format(
205
- len(result["errors"]), len(result["warnings"])))
206
- for e in result["errors"]:
207
- _err(" ERROR: {}".format(e))
208
- for w in result["warnings"]:
209
- _warn(" WARN: {}".format(w))
210
- return 1
211
-
212
-
213
- def cmd_generate(args):
214
- """Handle the 'generate' command.
215
-
216
- Loads a draft JSON (produced by AI), fills in defaults, validates,
217
- and writes the final bug-fix-list.json.
218
- """
219
- # Load draft (supports stdin via '-')
220
- if args.input == "-":
221
- try:
222
- data = json.load(sys.stdin)
223
- except json.JSONDecodeError as exc:
224
- _err("Invalid JSON from stdin: {}".format(exc))
225
- return 2
226
- else:
227
- data, load_err = _load_json(args.input)
228
- if load_err:
229
- _err(load_err)
230
- return 2
231
-
232
- # Fill in defaults
233
- now = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
234
- data.setdefault("$schema", SCHEMA_VERSION)
235
- data.setdefault("created_at", now)
236
- data.setdefault("created_by", "bug-planner")
237
-
238
- # Set default status for bugs without one
239
- for bug in data.get("bugs", []):
240
- bug.setdefault("status", "pending")
241
-
242
- # Validate
243
- result = validate(data)
244
-
245
- # Output validation result
246
- print(json.dumps(result, indent=2, ensure_ascii=False))
247
-
248
- if result["valid"]:
249
- _write_json(args.output, data)
250
- _info("Generated bug-fix-list written to {}".format(args.output))
251
- return 0
252
- else:
253
- _err("Validation failed with {} error(s)".format(len(result["errors"])))
254
- for e in result["errors"]:
255
- _err(" ERROR: {}".format(e))
256
- return 1
257
-
258
-
259
- def main():
260
- # Backward compatibility: if first arg is a file path (not a subcommand),
261
- # treat it as 'validate' command
262
- if len(sys.argv) > 1 and not sys.argv[1].startswith("-") and sys.argv[1] not in ("validate", "generate"):
263
- sys.argv.insert(1, "validate")
264
-
265
- parser = argparse.ArgumentParser(
266
- description="Validate and generate .prizmkit/plans/bug-fix-list.json files.",
267
- formatter_class=argparse.RawDescriptionHelpFormatter,
268
- epilog=(
269
- "Examples:\n"
270
- " %(prog)s validate .prizmkit/plans/bug-fix-list.json\n"
271
- " %(prog)s validate .prizmkit/plans/bug-fix-list.json --feature-list .prizmkit/plans/feature-list.json\n"
272
- " %(prog)s generate --input draft.json --output .prizmkit/plans/bug-fix-list.json\n"
273
- ),
274
- )
275
-
276
- subparsers = parser.add_subparsers(dest="command", help="Command to execute")
277
-
278
- # -- validate --
279
- p_validate = subparsers.add_parser(
280
- "validate",
281
- help="Validate an existing bug-fix-list.json",
282
- )
283
- p_validate.add_argument(
284
- "input", help="Path to bug-fix-list.json"
285
- )
286
- p_validate.add_argument(
287
- "--feature-list", default=None, help="Path to feature-list.json for cross-reference"
288
- )
289
-
290
- # -- generate --
291
- p_generate = subparsers.add_parser(
292
- "generate",
293
- help="Validate a draft and generate final bug-fix-list.json with defaults",
294
- )
295
- p_generate.add_argument(
296
- "--input", required=True, help="Path to draft JSON (or '-' for stdin)"
297
- )
298
- p_generate.add_argument(
299
- "--output", required=True, help="Path to write final bug-fix-list.json"
300
- )
301
-
302
- args = parser.parse_args()
303
-
304
- if not args.command:
305
- parser.print_help(sys.stderr)
306
- return 2
307
-
308
- dispatch = {
309
- "validate": cmd_validate,
310
- "generate": cmd_generate,
311
- }
312
-
313
- handler = dispatch.get(args.command)
314
- if handler is None:
315
- _err("Unknown command: {}".format(args.command))
316
- return 2
317
-
318
- return handler(args)
319
-
320
-
321
- if __name__ == "__main__":
322
- sys.exit(main())
@@ -1,304 +0,0 @@
1
- ---
2
- name: "bugfix-pipeline-launcher"
3
- description: "Launch and manage the bugfix pipeline from within an AI CLI session. Start pipeline in background, monitor logs, check status, stop pipeline. Use this skill whenever the user wants to start fixing bugs, run the bugfix pipeline, check bugfix progress, or stop the bugfix pipeline. Trigger on: 'start fixing bugs', 'run bugfix pipeline', 'bugfix status', 'stop bug fix', 'launch bug fix', 'fix progress', 'stop fixing'. (project)"
4
- ---
5
-
6
- # Bugfix-Pipeline Launcher
7
-
8
- Launch the autonomous bug fix pipeline from within an AI CLI conversation. Supports foreground and background execution modes.
9
-
10
- ### Execution Mode
11
-
12
- Three execution modes are available. The user chooses one before configuring other options:
13
-
14
- 1. **Foreground** (recommended) — `.\.prizmkit\dev-pipeline\run-bugfix.ps1 run`. Visible output, direct error feedback, no orphaned processes.
15
- 2. **Background daemon** — `.\.prizmkit\dev-pipeline\launch-bugfix-daemon.ps1`. Runs fully detached, survives AI CLI session closure.
16
- 3. **Manual** — Display the assembled command(s) only. Do not execute anything. User runs them on their own.
17
-
18
- **Background mode documentation**: When the user chooses background/daemon mode, record the choice and PID in `.prizmkit/bugfix-pipeline-run.log` (append-only) with timestamp, so the decision is traceable:
19
- ```
20
- [2026-03-26T10:30:00] MODE=daemon PID=12345 BUG_LIST=.prizmkit/plans/bug-fix-list.json BUGS=3
21
- ```
22
-
23
- ### When to Use
24
-
25
- **Start bugfix pipeline** -- User says:
26
- - "start fixing bugs", "run bugfix pipeline", "launch bug fixes", "fix all bugs"
27
- - "start bug fix", "execute bug list", "begin fixing", "batch fix"
28
- - After bug-planner completes: "fix them", "start fixing"
29
-
30
- **Check status** -- User says:
31
- - "bugfix status", "check bug fixes", "how's the fixing going", "bug fix progress"
32
- - "fix progress", "bug fix status", "check fix progress", "how far along are the fixes"
33
-
34
- **Stop bugfix pipeline** -- User says:
35
- - "stop bug fix", "stop fixing", "halt bugfix", "pause bug fix", "stop fix pipeline"
36
-
37
- **Show logs** -- User says:
38
- - "bugfix logs", "show fix logs", "what's being fixed"
39
- - "view fix logs", "fix logs"
40
-
41
- **Do NOT use this skill when:**
42
- - User wants to plan/collect bugs (use `bug-planner` instead)
43
- - User wants to fix a single bug interactively in current session (use `bug-fix-workflow`)
44
- - User wants to launch the feature pipeline (use `feature-pipeline-launcher`)
45
-
46
- ### Prerequisites
47
-
48
- Before any action, validate:
49
-
50
- 1. **bugfix pipeline exists**: Confirm `.\.prizmkit\dev-pipeline\launch-bugfix-daemon.ps1` and `.\.prizmkit\dev-pipeline\run-bugfix.ps1` are present and executable
51
- 2. **For start**: `.prizmkit/plans/bug-fix-list.json` must exist in `.prizmkit/plans/` (or user-specified path)
52
- 3. **Dependencies**: `python` or the Windows `py` launcher, `git`, and one AI CLI (`codex`, `claude`, or `cbc`) must be in PATH
53
- 4. **Browser tools** (optional): If any bug has `browser_interaction` field, check the corresponding tool is available. Bugs may specify `tool: "playwright-cli"`, `tool: "opencli"`, or `tool: "auto"` (AI chooses at runtime).
54
-
55
- Quick check:
56
- ```powershell
57
- function Invoke-PrizmPython {
58
- param([Parameter(ValueFromRemainingArguments = $true)][string[]]$Arguments)
59
- $python = Get-Command python -ErrorAction SilentlyContinue
60
- if ($python) {
61
- & $python.Source -c 'import sys; raise SystemExit(0 if sys.version_info[0] == 3 else 1)' *> $null
62
- if ($LASTEXITCODE -eq 0) {
63
- & $python.Source @Arguments
64
- return
65
- }
66
- }
67
- $py = Get-Command py -ErrorAction SilentlyContinue
68
- if ($py) {
69
- & $py.Source -3 -c 'import sys; raise SystemExit(0 if sys.version_info[0] == 3 else 1)' *> $null
70
- if ($LASTEXITCODE -eq 0) {
71
- & $py.Source -3 @Arguments
72
- return
73
- }
74
- }
75
- throw "Python 3 is required. Install Python and ensure python or py is in PATH."
76
- }
77
- try {
78
- $prizmPythonPath = Invoke-PrizmPython -c "import sys; print(sys.executable)"
79
- "Python OK: $prizmPythonPath"
80
- } catch {
81
- "Missing Python: install Python 3 and ensure python or py is in PATH"
82
- }
83
- Get-Command git
84
- $aiCli = @("codex", "claude", "cbc") | Where-Object { Get-Command $_ -ErrorAction SilentlyContinue } | Select-Object -First 1
85
- if ($aiCli) { "AI CLI OK: $aiCli" } else { "Missing AI CLI: install codex, claude, or cbc" }
86
- # Optional: browser interaction support (check both tools — bugs may use either)
87
- if (Get-Command playwright-cli -ErrorAction SilentlyContinue) { "playwright-cli OK" } else { "playwright-cli not found (playwright browser verification will be skipped)" }
88
- if (Get-Command opencli -ErrorAction SilentlyContinue) { "opencli OK" } else { "opencli not found (opencli browser verification will be skipped)" }
89
- ```
90
-
91
- If `.prizmkit/plans/bug-fix-list.json` is missing, inform user:
92
- > "No .prizmkit/plans/bug-fix-list.json found. Run the `bug-planner` skill first to generate one, or provide a path to your bug fix list."
93
-
94
- ### Workflow
95
-
96
- Detect user intent from their message, then follow the corresponding workflow:
97
-
98
- ---
99
-
100
- #### Intent A: Start Bugfix Pipeline
101
-
102
- > **Execution model**: The pipeline processes bugs **sequentially** (one at a time, in severity/priority order). The `dependencies` field in bug-fix-list.json is reserved for future parallel execution support and does NOT affect current execution order.
103
-
104
- 1. **Check prerequisites**:
105
- ```powershell
106
- if (Test-Path .prizmkit/plans/bug-fix-list.json) { "Found" } else { "Missing" }
107
- ```
108
-
109
- 2. **Check not already running**:
110
- ```powershell
111
- .\.prizmkit\dev-pipeline\launch-bugfix-daemon.ps1 status
112
- ```
113
- If running, inform user and ask: "Bugfix pipeline is already running. Want to restart it, check status, or view logs?"
114
-
115
- 3. **Show bug summary** (so user knows what will be fixed):
116
- ```powershell
117
- $data = Get-Content .prizmkit\plans\bug-fix-list.json -Raw | ConvertFrom-Json
118
- $bugs = @($data.bugs)
119
- $severityOrder = @{ critical = 0; high = 1; medium = 2; low = 3 }
120
- "Total bugs: $($bugs.Count)"
121
- $bugs | Group-Object severity | ForEach-Object { " $($_.Name): $($_.Count)" }
122
- ""
123
- $bugsSorted = $bugs | Sort-Object `
124
- @{ Expression = { if ($severityOrder.ContainsKey($_.severity)) { $severityOrder[$_.severity] } else { 2 } } }, `
125
- @{ Expression = { if ($_.priority) { [int]$_.priority } else { 99 } } }
126
- foreach ($bug in $bugsSorted) {
127
- $severity = if ($bug.severity) { $bug.severity.ToUpperInvariant() } else { "?" }
128
- $title = if ($bug.title) { $bug.title } else { "untitled" }
129
- " $($bug.id): [$severity] $title"
130
- }
131
- ```
132
- If pipeline state already exists, use the status command instead:
133
- ```powershell
134
- Invoke-PrizmPython .prizmkit/dev-pipeline/scripts/update-bug-status.py `
135
- --bug-list .prizmkit/plans/bug-fix-list.json `
136
- --state-dir .prizmkit/state/bugfix `
137
- --action status
138
- ```
139
-
140
- 4. **Ask execution mode** (first user decision — SEPARATE `AskUserQuestion` call with exactly 1 question):
141
-
142
- Present the three execution modes from the **Execution Mode** section above (Foreground / Background daemon / Manual), multiSelect: false. Then STOP and wait for the user's response before continuing to step 5.
143
-
144
- 5. **Ask configuration options** — applies to ALL execution modes (Foreground, Background, AND Manual). This is a SEPARATE `AskUserQuestion` call from step 4.
145
-
146
- RULE: Execution mode (step 4) and configuration (step 5) are two distinct `AskUserQuestion` calls, asked in order, each followed by waiting for the user's answer. Merging them, assuming defaults, or showing the final command before the user has answered both rounds produces a misconfigured pipeline that runs autonomously for a long time — so it MUST NOT happen. If you find yourself writing the final command before the user has answered, STOP.
147
-
148
- The step-5 questions (4 round-1 questions, plus a round 2 if the user picks "Yes" to Advanced config) and their env-var mappings are enumerated in `${SKILL_DIR}/references/configuration.md` under "Interactive Configuration Options". Present round 1 as one `AskUserQuestion` call; run round 2 only if Advanced config = Yes. Then STOP and wait for the user's response before continuing to step 6.
149
-
150
- 6. **Show final command**: Assemble the complete command from execution mode + confirmed configuration, and present it to the user.
151
-
152
- **Foreground command:**
153
- ```powershell
154
- $env:VERBOSE = "1"; .\.prizmkit\dev-pipeline\run-bugfix.ps1 run .prizmkit/plans/bug-fix-list.json
155
- ```
156
- With all options:
157
- ```powershell
158
- $env:VERBOSE = "1"; $env:MAX_RETRIES = "5"; $env:PRIZMKIT_EFFORT = "high"
159
- .\.prizmkit\dev-pipeline\run-bugfix.ps1 run .prizmkit/plans/bug-fix-list.json
160
- ```
161
-
162
- **Background daemon command:**
163
- ```powershell
164
- .\.prizmkit\dev-pipeline\launch-bugfix-daemon.ps1 start .prizmkit/plans/bug-fix-list.json --env "VERBOSE=1"
165
- ```
166
- With all options:
167
- ```powershell
168
- .\.prizmkit\dev-pipeline\launch-bugfix-daemon.ps1 start .prizmkit/plans/bug-fix-list.json `
169
- --env "VERBOSE=1 MAX_RETRIES=5 PRIZMKIT_EFFORT=high"
170
- ```
171
-
172
- **Manual mode**: Print the assembled command(s) and **stop here**. Do not execute anything. Do not proceed to step 7.
173
- ```
174
- # To run in foreground:
175
- $env:VERBOSE = "1"; .\.prizmkit\dev-pipeline\run-bugfix.ps1 run .prizmkit/plans/bug-fix-list.json
176
-
177
- # To run in background (detached):
178
- .\.prizmkit\dev-pipeline\launch-bugfix-daemon.ps1 start .prizmkit/plans/bug-fix-list.json --env "VERBOSE=1"
179
-
180
- # To check status:
181
- .\.prizmkit\dev-pipeline\run-bugfix.ps1 status .prizmkit/plans/bug-fix-list.json
182
- ```
183
-
184
- 7. **Confirm and launch** (Foreground and Background only — Manual mode ends at step 6):
185
-
186
- Ask: "Ready to launch the bugfix pipeline with the above command?"
187
-
188
- After user confirms, execute the command from step 6.
189
-
190
- 8. **Post-launch** (depends on execution mode):
191
-
192
- **If foreground**: Pipeline runs to completion in the terminal. After it finishes:
193
- - Summarize results: total bugs, fixed, failed, skipped
194
- - If all fixed: each bug session has already run `prizmkit-retrospective` internally (structural sync by default; full retrospective when the fix changed interfaces, dependencies, or observable behavior). Ask user what's next.
195
- - If some failed: show failed bug IDs and suggest `.\.prizmkit\dev-pipeline\reset-bug.ps1 <B-XXX> --clean --run` for a fresh retry
196
-
197
- **If background daemon**:
198
- 1. Verify launch:
199
- ```powershell
200
- .\.prizmkit\dev-pipeline\launch-bugfix-daemon.ps1 status
201
- ```
202
- 2. Start log monitoring — Use the PowerShell terminal with `run_in_background: true`:
203
- ```powershell
204
- Get-Content -Wait -Tail 50 .prizmkit/state/daemon/bugfix-daemon.log
205
- ```
206
- 3. Report to user:
207
- - Pipeline PID
208
- - Log file location
209
- - "You can ask me 'bugfix status' or 'show fix logs' at any time"
210
- - "Closing this session will NOT stop the pipeline"
211
-
212
- ---
213
-
214
- #### Intent B: Check Status
215
-
216
- 1. **Check daemon status**:
217
- ```powershell
218
- .\.prizmkit\dev-pipeline\launch-bugfix-daemon.ps1 status
219
- ```
220
-
221
- 2. **Show bug-level progress**:
222
- ```powershell
223
- Invoke-PrizmPython .prizmkit/dev-pipeline/scripts/update-bug-status.py `
224
- --bug-list .prizmkit/plans/bug-fix-list.json `
225
- --state-dir .prizmkit/state/bugfix `
226
- --action status
227
- ```
228
-
229
- 3. **Show recent log activity** (last 20 lines):
230
- ```powershell
231
- Get-Content -Tail 20 .prizmkit/state/daemon/bugfix-daemon.log
232
- ```
233
-
234
- 4. **Summarize** to user: total bugs, completed, in-progress, failed, pending, needs-info.
235
-
236
- ---
237
-
238
- #### Intent C: Stop Bugfix Pipeline
239
-
240
- 1. **Stop the daemon**:
241
- ```powershell
242
- .\.prizmkit\dev-pipeline\launch-bugfix-daemon.ps1 stop
243
- ```
244
-
245
- 2. **Verify stopped**:
246
- ```powershell
247
- .\.prizmkit\dev-pipeline\launch-bugfix-daemon.ps1 status
248
- ```
249
-
250
- 3. **Inform user**: "Bugfix pipeline stopped. State is preserved -- you can resume later with 'start bug fix' and it will pick up where it left off."
251
-
252
- ---
253
-
254
- #### Intent D: Show Logs
255
-
256
- 1. **Check if running**:
257
- ```powershell
258
- .\.prizmkit\dev-pipeline\launch-bugfix-daemon.ps1 status
259
- ```
260
-
261
- 2. **If running** -- Start live tail with PowerShell terminal `run_in_background: true`:
262
- ```powershell
263
- Get-Content -Wait -Tail 50 .prizmkit/state/daemon/bugfix-daemon.log
264
- ```
265
-
266
- 3. **If not running** -- Show last 50 lines:
267
- ```powershell
268
- Get-Content -Tail 50 .prizmkit/state/daemon/bugfix-daemon.log
269
- ```
270
-
271
- 4. **For per-bug session logs** (when user asks about a specific bug):
272
- ```powershell
273
- # Check bug status for last session ID
274
- Get-Content .prizmkit/state/bugfix/<BUG_ID>/status.json -ErrorAction SilentlyContinue
275
- # Then tail that bug's session log
276
- Get-Content -Tail 100 .prizmkit/state/bugfix/<BUG_ID>/sessions/<SESSION_ID>/logs/session.log
277
- ```
278
-
279
- ---
280
-
281
- #### Intent E: Retry Single Bug
282
-
283
- When user says "retry B-001":
284
-
285
- ```powershell
286
- .\.prizmkit\dev-pipeline\reset-bug.ps1 B-001 --clean --run .prizmkit/plans/bug-fix-list.json
287
- ```
288
-
289
- **Note:** `reset-bug.ps1 B-001 --clean --run` performs a clean reset for `B-001` before retrying that bug — this gives a fresh start.
290
-
291
- ### Error Handling
292
-
293
- Read `${SKILL_DIR}/references/configuration.md` for the full error handling table (11 entries).
294
-
295
- ### Integration Notes
296
-
297
- - **After bug-planner**: This is the natural next step. When user finishes bug planning and has `.prizmkit/plans/bug-fix-list.json`, suggest launching the bugfix pipeline.
298
- - **Session independence**: In daemon mode, the bugfix pipeline runs completely detached. User can close the AI CLI, open a new session later, and use this skill to check progress or stop the pipeline.
299
- - **Single instance**: Only one bugfix pipeline can run at a time. The PID file prevents duplicates.
300
- - **Feature pipeline coexistence**: Bugfix and feature pipelines use separate state directories (`.prizmkit/state/bugfix/` vs `.prizmkit/state/features/`), so they can run simultaneously without conflict.
301
- - **State preservation**: Stopping and restarting the bugfix pipeline resumes from where it left off -- completed bugs are not re-fixed.
302
- - **Bug ordering**: Bugs are processed by severity (critical → high → medium → low), then by priority number within the same severity.
303
- - **Background mode traceability**: When daemon mode is chosen, the decision is logged to `.prizmkit/bugfix-pipeline-run.log` with timestamp, PID, and bug count for auditability.
304
- - **HANDOFF**: After pipeline completes all bugs, suggest running `prizmkit-retrospective` to capture lessons learned, or checking the fix reports in `.prizmkit/bugfix/`.