prizmkit 1.1.100 → 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 (309) 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/generate-bootstrap-prompt.py +38 -23
  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 +7 -1
  34. package/bundled/dev-pipeline/templates/bootstrap-prompt.md +4 -0
  35. package/bundled/dev-pipeline/templates/bootstrap-tier1.md +12 -3
  36. package/bundled/dev-pipeline/templates/bootstrap-tier2.md +13 -3
  37. package/bundled/dev-pipeline/templates/bootstrap-tier3.md +13 -3
  38. package/bundled/dev-pipeline/templates/sections/context-budget-rules.md +2 -0
  39. package/bundled/dev-pipeline/templates/sections/log-size-awareness.md +9 -30
  40. package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-agent-suffix.md +15 -7
  41. package/bundled/dev-pipeline/templates/sections/phase-implement-agent.md +42 -29
  42. package/bundled/dev-pipeline/templates/sections/phase-implement-full.md +41 -39
  43. package/bundled/dev-pipeline/templates/sections/test-failure-recovery-agent.md +4 -0
  44. package/bundled/dev-pipeline/templates/sections/test-failure-recovery-lite.md +4 -0
  45. package/bundled/dev-pipeline/tests/test_auto_skip.py +436 -14
  46. package/bundled/dev-pipeline/tests/test_generate_bootstrap_prompt.py +104 -0
  47. package/bundled/dev-pipeline/tests/test_generate_bugfix_prompt.py +40 -0
  48. package/bundled/dev-pipeline/tests/test_python_runner_parity.py +1138 -0
  49. package/bundled/dev-pipeline/tests/test_unified_cli.py +1045 -0
  50. package/bundled/skills/_metadata.json +1 -1
  51. package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +29 -34
  52. package/bundled/skills/bugfix-pipeline-launcher/references/configuration.md +6 -5
  53. package/bundled/skills/feature-pipeline-launcher/SKILL.md +29 -35
  54. package/bundled/skills/feature-pipeline-launcher/references/configuration.md +7 -6
  55. package/bundled/skills/feature-workflow/SKILL.md +3 -6
  56. package/bundled/skills/recovery-workflow/SKILL.md +23 -32
  57. package/bundled/skills/refactor-pipeline-launcher/SKILL.md +29 -35
  58. package/bundled/skills/refactor-pipeline-launcher/references/configuration.md +7 -6
  59. package/bundled/skills/refactor-workflow/SKILL.md +3 -6
  60. package/bundled/templates/hooks/commit-intent.json +2 -2
  61. package/bundled/templates/hooks/diff-prizm-docs.py +226 -0
  62. package/bundled/templates/hooks/prizm-pre-commit.py +45 -0
  63. package/bundled/templates/hooks/validate-prizm-docs.py +240 -0
  64. package/package.json +1 -1
  65. package/src/config.js +33 -12
  66. package/src/index.js +3 -6
  67. package/src/manifest.js +3 -2
  68. package/src/metadata.js +7 -18
  69. package/src/prompts.js +0 -12
  70. package/src/runtimes.js +18 -11
  71. package/src/scaffold.js +133 -116
  72. package/src/upgrade.js +1 -1
  73. package/bundled/dev-pipeline/launch-bugfix-daemon.sh +0 -500
  74. package/bundled/dev-pipeline/launch-feature-daemon.sh +0 -657
  75. package/bundled/dev-pipeline/launch-refactor-daemon.sh +0 -502
  76. package/bundled/dev-pipeline/lib/branch.sh +0 -326
  77. package/bundled/dev-pipeline/lib/common.sh +0 -1476
  78. package/bundled/dev-pipeline/lib/heartbeat.sh +0 -469
  79. package/bundled/dev-pipeline/reset-bug.sh +0 -425
  80. package/bundled/dev-pipeline/reset-feature.sh +0 -436
  81. package/bundled/dev-pipeline/reset-refactor.sh +0 -423
  82. package/bundled/dev-pipeline/run-bugfix.sh +0 -1430
  83. package/bundled/dev-pipeline/run-feature.sh +0 -1718
  84. package/bundled/dev-pipeline/run-recovery.sh +0 -648
  85. package/bundled/dev-pipeline/run-refactor.sh +0 -1463
  86. package/bundled/dev-pipeline/tests/test-path-resolution.sh +0 -100
  87. package/bundled/dev-pipeline-windows/.env.example +0 -36
  88. package/bundled/dev-pipeline-windows/README.md +0 -30
  89. package/bundled/dev-pipeline-windows/SCHEMA_ANALYSIS.md +0 -533
  90. package/bundled/dev-pipeline-windows/assets/feature-list-example.json +0 -146
  91. package/bundled/dev-pipeline-windows/assets/prizm-dev-team-integration.md +0 -137
  92. package/bundled/dev-pipeline-windows/launch-bugfix-daemon.ps1 +0 -9
  93. package/bundled/dev-pipeline-windows/launch-feature-daemon.ps1 +0 -9
  94. package/bundled/dev-pipeline-windows/launch-refactor-daemon.ps1 +0 -9
  95. package/bundled/dev-pipeline-windows/lib/branch.ps1 +0 -235
  96. package/bundled/dev-pipeline-windows/lib/common.ps1 +0 -991
  97. package/bundled/dev-pipeline-windows/lib/daemon.ps1 +0 -140
  98. package/bundled/dev-pipeline-windows/lib/pipeline.ps1 +0 -1051
  99. package/bundled/dev-pipeline-windows/lib/reset.ps1 +0 -121
  100. package/bundled/dev-pipeline-windows/reset-bug.ps1 +0 -10
  101. package/bundled/dev-pipeline-windows/reset-feature.ps1 +0 -10
  102. package/bundled/dev-pipeline-windows/reset-refactor.ps1 +0 -10
  103. package/bundled/dev-pipeline-windows/run-bugfix.ps1 +0 -9
  104. package/bundled/dev-pipeline-windows/run-feature.ps1 +0 -9
  105. package/bundled/dev-pipeline-windows/run-recovery.ps1 +0 -179
  106. package/bundled/dev-pipeline-windows/run-refactor.ps1 +0 -9
  107. package/bundled/dev-pipeline-windows/scripts/check-session-status.py +0 -301
  108. package/bundled/dev-pipeline-windows/scripts/continuation.py +0 -374
  109. package/bundled/dev-pipeline-windows/scripts/detect-stuck.py +0 -530
  110. package/bundled/dev-pipeline-windows/scripts/generate-bootstrap-prompt.py +0 -2279
  111. package/bundled/dev-pipeline-windows/scripts/generate-bugfix-prompt.py +0 -763
  112. package/bundled/dev-pipeline-windows/scripts/generate-recovery-prompt.py +0 -805
  113. package/bundled/dev-pipeline-windows/scripts/generate-refactor-prompt.py +0 -841
  114. package/bundled/dev-pipeline-windows/scripts/init-bugfix-pipeline.py +0 -316
  115. package/bundled/dev-pipeline-windows/scripts/init-dev-team.py +0 -134
  116. package/bundled/dev-pipeline-windows/scripts/init-pipeline.py +0 -382
  117. package/bundled/dev-pipeline-windows/scripts/init-refactor-pipeline.py +0 -399
  118. package/bundled/dev-pipeline-windows/scripts/parse-stream-progress.py +0 -1362
  119. package/bundled/dev-pipeline-windows/scripts/patch-completion-notes.py +0 -191
  120. package/bundled/dev-pipeline-windows/scripts/prizmkit-test-gate.py +0 -446
  121. package/bundled/dev-pipeline-windows/scripts/update-bug-status.py +0 -1121
  122. package/bundled/dev-pipeline-windows/scripts/update-checkpoint.py +0 -173
  123. package/bundled/dev-pipeline-windows/scripts/update-feature-status.py +0 -1789
  124. package/bundled/dev-pipeline-windows/scripts/update-refactor-status.py +0 -1327
  125. package/bundled/dev-pipeline-windows/scripts/utils.py +0 -542
  126. package/bundled/dev-pipeline-windows/templates/agent-prompts/critic-plan-challenge.md +0 -7
  127. package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-fix.md +0 -7
  128. package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-implement.md +0 -65
  129. package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-resume.md +0 -5
  130. package/bundled/dev-pipeline-windows/templates/agent-prompts/reviewer-review.md +0 -7
  131. package/bundled/dev-pipeline-windows/templates/bootstrap-prompt.md +0 -73
  132. package/bundled/dev-pipeline-windows/templates/bootstrap-tier1.md +0 -589
  133. package/bundled/dev-pipeline-windows/templates/bootstrap-tier2.md +0 -710
  134. package/bundled/dev-pipeline-windows/templates/bootstrap-tier3.md +0 -791
  135. package/bundled/dev-pipeline-windows/templates/bug-fix-list-schema.json +0 -263
  136. package/bundled/dev-pipeline-windows/templates/bugfix-bootstrap-prompt.md +0 -326
  137. package/bundled/dev-pipeline-windows/templates/feature-list-schema.json +0 -237
  138. package/bundled/dev-pipeline-windows/templates/refactor-bootstrap-prompt.md +0 -340
  139. package/bundled/dev-pipeline-windows/templates/refactor-list-schema.json +0 -270
  140. package/bundled/dev-pipeline-windows/templates/sections/ac-verification-checklist.md +0 -7
  141. package/bundled/dev-pipeline-windows/templates/sections/checkpoint-system.md +0 -91
  142. package/bundled/dev-pipeline-windows/templates/sections/context-budget-rules.md +0 -34
  143. package/bundled/dev-pipeline-windows/templates/sections/critical-paths-agent.md +0 -10
  144. package/bundled/dev-pipeline-windows/templates/sections/critical-paths-full.md +0 -12
  145. package/bundled/dev-pipeline-windows/templates/sections/critical-paths-lite.md +0 -7
  146. package/bundled/dev-pipeline-windows/templates/sections/directory-convention-agent.md +0 -8
  147. package/bundled/dev-pipeline-windows/templates/sections/directory-convention-full.md +0 -9
  148. package/bundled/dev-pipeline-windows/templates/sections/directory-convention-lite.md +0 -6
  149. package/bundled/dev-pipeline-windows/templates/sections/failure-capture.md +0 -21
  150. package/bundled/dev-pipeline-windows/templates/sections/feature-context.md +0 -21
  151. package/bundled/dev-pipeline-windows/templates/sections/log-size-awareness.md +0 -41
  152. package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification-auto.md +0 -283
  153. package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification-opencli.md +0 -112
  154. package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification.md +0 -168
  155. package/bundled/dev-pipeline-windows/templates/sections/phase-commit-full.md +0 -82
  156. package/bundled/dev-pipeline-windows/templates/sections/phase-commit.md +0 -75
  157. package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-agent-suffix.md +0 -23
  158. package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-base.md +0 -14
  159. package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-lite-suffix.md +0 -19
  160. package/bundled/dev-pipeline-windows/templates/sections/phase-critic-plan-full.md +0 -63
  161. package/bundled/dev-pipeline-windows/templates/sections/phase-critic-plan.md +0 -42
  162. package/bundled/dev-pipeline-windows/templates/sections/phase-implement-agent.md +0 -44
  163. package/bundled/dev-pipeline-windows/templates/sections/phase-implement-full.md +0 -59
  164. package/bundled/dev-pipeline-windows/templates/sections/phase-implement-lite.md +0 -39
  165. package/bundled/dev-pipeline-windows/templates/sections/phase-plan-agent.md +0 -27
  166. package/bundled/dev-pipeline-windows/templates/sections/phase-plan-lite.md +0 -27
  167. package/bundled/dev-pipeline-windows/templates/sections/phase-prizmkit-test.md +0 -39
  168. package/bundled/dev-pipeline-windows/templates/sections/phase-review-agent.md +0 -35
  169. package/bundled/dev-pipeline-windows/templates/sections/phase-review-full.md +0 -35
  170. package/bundled/dev-pipeline-windows/templates/sections/phase-specify-plan-full.md +0 -73
  171. package/bundled/dev-pipeline-windows/templates/sections/phase0-init.md +0 -13
  172. package/bundled/dev-pipeline-windows/templates/sections/phase0-test-baseline.md +0 -21
  173. package/bundled/dev-pipeline-windows/templates/sections/session-context.md +0 -5
  174. package/bundled/dev-pipeline-windows/templates/sections/subagent-timeout-recovery.md +0 -6
  175. package/bundled/dev-pipeline-windows/templates/sections/task-contract.md +0 -34
  176. package/bundled/dev-pipeline-windows/templates/sections/test-failure-recovery-agent.md +0 -48
  177. package/bundled/dev-pipeline-windows/templates/sections/test-failure-recovery-lite.md +0 -48
  178. package/bundled/dev-pipeline-windows/templates/session-status-schema.json +0 -83
  179. package/bundled/skills-windows/app-planner/SKILL.md +0 -296
  180. package/bundled/skills-windows/app-planner/assets/app-design-guide.md +0 -101
  181. package/bundled/skills-windows/app-planner/references/architecture-decisions.md +0 -52
  182. package/bundled/skills-windows/app-planner/references/brainstorm-guide.md +0 -101
  183. package/bundled/skills-windows/app-planner/references/frontend-design-guide.md +0 -71
  184. package/bundled/skills-windows/app-planner/references/infrastructure-convention-discovery.md +0 -108
  185. package/bundled/skills-windows/app-planner/references/project-brief-guide.md +0 -82
  186. package/bundled/skills-windows/app-planner/references/project-conventions-discovery.md +0 -59
  187. package/bundled/skills-windows/app-planner/references/project-state-detection.md +0 -90
  188. package/bundled/skills-windows/app-planner/references/red-team-checklist.md +0 -40
  189. package/bundled/skills-windows/app-planner/references/rules/backend/derivation-rules.md +0 -619
  190. package/bundled/skills-windows/app-planner/references/rules/backend/fixed-rules.md +0 -285
  191. package/bundled/skills-windows/app-planner/references/rules/backend/question-bank.md +0 -249
  192. package/bundled/skills-windows/app-planner/references/rules/backend/question-manifest.json +0 -46
  193. package/bundled/skills-windows/app-planner/references/rules/backend/template.md +0 -173
  194. package/bundled/skills-windows/app-planner/references/rules/database/derivation-rules.md +0 -382
  195. package/bundled/skills-windows/app-planner/references/rules/database/fixed-rules.md +0 -211
  196. package/bundled/skills-windows/app-planner/references/rules/database/question-bank.md +0 -184
  197. package/bundled/skills-windows/app-planner/references/rules/database/question-manifest.json +0 -39
  198. package/bundled/skills-windows/app-planner/references/rules/database/template.md +0 -158
  199. package/bundled/skills-windows/app-planner/references/rules/frontend/derivation-rules.md +0 -820
  200. package/bundled/skills-windows/app-planner/references/rules/frontend/fixed-rules.md +0 -188
  201. package/bundled/skills-windows/app-planner/references/rules/frontend/question-bank.md +0 -319
  202. package/bundled/skills-windows/app-planner/references/rules/frontend/question-manifest.json +0 -51
  203. package/bundled/skills-windows/app-planner/references/rules/frontend/template.md +0 -339
  204. package/bundled/skills-windows/app-planner/references/rules/mobile/derivation-rules.md +0 -649
  205. package/bundled/skills-windows/app-planner/references/rules/mobile/fixed-rules.md +0 -290
  206. package/bundled/skills-windows/app-planner/references/rules/mobile/question-bank.md +0 -232
  207. package/bundled/skills-windows/app-planner/references/rules/mobile/question-manifest.json +0 -47
  208. package/bundled/skills-windows/app-planner/references/rules/mobile/template.md +0 -175
  209. package/bundled/skills-windows/app-planner/references/rules-configuration.md +0 -46
  210. package/bundled/skills-windows/bug-fix-workflow/SKILL.md +0 -379
  211. package/bundled/skills-windows/bug-fix-workflow/references/bug-diagnosis.md +0 -41
  212. package/bundled/skills-windows/bug-planner/SKILL.md +0 -402
  213. package/bundled/skills-windows/bug-planner/assets/bug-confirmation-template.md +0 -43
  214. package/bundled/skills-windows/bug-planner/references/critic-and-verification.md +0 -44
  215. package/bundled/skills-windows/bug-planner/references/error-recovery.md +0 -73
  216. package/bundled/skills-windows/bug-planner/references/input-formats.md +0 -53
  217. package/bundled/skills-windows/bug-planner/references/schema-validation.md +0 -25
  218. package/bundled/skills-windows/bug-planner/references/severity-rules.md +0 -16
  219. package/bundled/skills-windows/bug-planner/scripts/validate-bug-list.py +0 -322
  220. package/bundled/skills-windows/bugfix-pipeline-launcher/SKILL.md +0 -304
  221. package/bundled/skills-windows/bugfix-pipeline-launcher/references/configuration.md +0 -84
  222. package/bundled/skills-windows/feature-pipeline-launcher/SKILL.md +0 -381
  223. package/bundled/skills-windows/feature-pipeline-launcher/references/configuration.md +0 -67
  224. package/bundled/skills-windows/feature-pipeline-launcher/scripts/preflight-check.py +0 -462
  225. package/bundled/skills-windows/feature-planner/SKILL.md +0 -397
  226. package/bundled/skills-windows/feature-planner/assets/evaluation-guide.md +0 -64
  227. package/bundled/skills-windows/feature-planner/assets/planning-guide.md +0 -214
  228. package/bundled/skills-windows/feature-planner/references/browser-interaction.md +0 -59
  229. package/bundled/skills-windows/feature-planner/references/completeness-review.md +0 -57
  230. package/bundled/skills-windows/feature-planner/references/decomposition-patterns.md +0 -75
  231. package/bundled/skills-windows/feature-planner/references/error-recovery.md +0 -90
  232. package/bundled/skills-windows/feature-planner/references/incremental-feature-planning.md +0 -112
  233. package/bundled/skills-windows/feature-planner/references/new-project-planning.md +0 -85
  234. package/bundled/skills-windows/feature-planner/scripts/validate-and-generate.py +0 -1020
  235. package/bundled/skills-windows/feature-workflow/SKILL.md +0 -374
  236. package/bundled/skills-windows/feature-workflow/references/brainstorm-guide.md +0 -137
  237. package/bundled/skills-windows/prizm-kit/SKILL.md +0 -93
  238. package/bundled/skills-windows/prizmkit-code-review/SKILL.md +0 -161
  239. package/bundled/skills-windows/prizmkit-code-review/references/dev-agent-prompt.md +0 -30
  240. package/bundled/skills-windows/prizmkit-code-review/references/review-report-template.md +0 -31
  241. package/bundled/skills-windows/prizmkit-code-review/references/reviewer-agent-prompt.md +0 -66
  242. package/bundled/skills-windows/prizmkit-code-review/scripts/check_loop.py +0 -186
  243. package/bundled/skills-windows/prizmkit-committer/SKILL.md +0 -89
  244. package/bundled/skills-windows/prizmkit-deploy/SKILL.md +0 -444
  245. package/bundled/skills-windows/prizmkit-deploy/references/ci-cd-workflows.md +0 -115
  246. package/bundled/skills-windows/prizmkit-deploy/references/cloud-platform-deploy.md +0 -93
  247. package/bundled/skills-windows/prizmkit-deploy/references/data-safety-examples.md +0 -120
  248. package/bundled/skills-windows/prizmkit-deploy/references/database-setup.md +0 -46
  249. package/bundled/skills-windows/prizmkit-deploy/references/deploy-config-schema.md +0 -148
  250. package/bundled/skills-windows/prizmkit-deploy/references/deploy-history-schema.md +0 -62
  251. package/bundled/skills-windows/prizmkit-deploy/references/deployment-modes.md +0 -50
  252. package/bundled/skills-windows/prizmkit-deploy/references/direct-upload.md +0 -26
  253. package/bundled/skills-windows/prizmkit-deploy/references/dns-setup.md +0 -42
  254. package/bundled/skills-windows/prizmkit-deploy/references/docker-deploy.md +0 -31
  255. package/bundled/skills-windows/prizmkit-deploy/references/firewall-setup.md +0 -37
  256. package/bundled/skills-windows/prizmkit-deploy/references/live-validation-notes.md +0 -21
  257. package/bundled/skills-windows/prizmkit-deploy/references/nginx-blue-green.md +0 -59
  258. package/bundled/skills-windows/prizmkit-deploy/references/ssh-bootstrap-flow.md +0 -49
  259. package/bundled/skills-windows/prizmkit-deploy/references/ssh-execution-flow.md +0 -41
  260. package/bundled/skills-windows/prizmkit-deploy/references/ssh-takeover.md +0 -20
  261. package/bundled/skills-windows/prizmkit-deploy/references/ssl-setup.md +0 -56
  262. package/bundled/skills-windows/prizmkit-implement/SKILL.md +0 -71
  263. package/bundled/skills-windows/prizmkit-init/SKILL.md +0 -356
  264. package/bundled/skills-windows/prizmkit-init/assets/project-brief-template.md +0 -82
  265. package/bundled/skills-windows/prizmkit-init/references/config-schema.md +0 -70
  266. package/bundled/skills-windows/prizmkit-init/references/rules/layer-detection.md +0 -41
  267. package/bundled/skills-windows/prizmkit-init/references/tech-stack-catalog.md +0 -13
  268. package/bundled/skills-windows/prizmkit-init/references/update-supplement.md +0 -9
  269. package/bundled/skills-windows/prizmkit-plan/SKILL.md +0 -102
  270. package/bundled/skills-windows/prizmkit-plan/assets/plan-template.md +0 -115
  271. package/bundled/skills-windows/prizmkit-plan/assets/spec-template.md +0 -73
  272. package/bundled/skills-windows/prizmkit-plan/references/clarify-guide.md +0 -67
  273. package/bundled/skills-windows/prizmkit-plan/references/examples.md +0 -85
  274. package/bundled/skills-windows/prizmkit-plan/references/verification-checklist.md +0 -60
  275. package/bundled/skills-windows/prizmkit-prizm-docs/SKILL.md +0 -129
  276. package/bundled/skills-windows/prizmkit-prizm-docs/assets/prizm-docs-format.md +0 -613
  277. package/bundled/skills-windows/prizmkit-prizm-docs/references/op-init.md +0 -45
  278. package/bundled/skills-windows/prizmkit-prizm-docs/references/op-rebuild.md +0 -15
  279. package/bundled/skills-windows/prizmkit-prizm-docs/references/op-status.md +0 -14
  280. package/bundled/skills-windows/prizmkit-prizm-docs/references/op-update.md +0 -19
  281. package/bundled/skills-windows/prizmkit-prizm-docs/references/op-validate.md +0 -17
  282. package/bundled/skills-windows/prizmkit-retrospective/SKILL.md +0 -87
  283. package/bundled/skills-windows/prizmkit-retrospective/references/knowledge-injection-steps.md +0 -50
  284. package/bundled/skills-windows/prizmkit-retrospective/references/structural-sync-steps.md +0 -43
  285. package/bundled/skills-windows/prizmkit-test/SKILL.md +0 -227
  286. package/bundled/skills-windows/prizmkit-test/references/boundary-coverage-protocol.md +0 -220
  287. package/bundled/skills-windows/prizmkit-test/references/examples.md +0 -143
  288. package/bundled/skills-windows/prizmkit-test/references/service-boundary-test-catalog.md +0 -225
  289. package/bundled/skills-windows/prizmkit-test/references/test-generation-steps.md +0 -109
  290. package/bundled/skills-windows/prizmkit-test/references/test-report-template.md +0 -111
  291. package/bundled/skills-windows/prizmkit-test/scripts/validate_boundary_report.py +0 -347
  292. package/bundled/skills-windows/recovery-workflow/SKILL.md +0 -355
  293. package/bundled/skills-windows/recovery-workflow/evals/evals.json +0 -46
  294. package/bundled/skills-windows/recovery-workflow/references/detection.md +0 -58
  295. package/bundled/skills-windows/recovery-workflow/scripts/detect-recovery-state.py +0 -544
  296. package/bundled/skills-windows/refactor-pipeline-launcher/SKILL.md +0 -346
  297. package/bundled/skills-windows/refactor-pipeline-launcher/references/configuration.md +0 -72
  298. package/bundled/skills-windows/refactor-planner/SKILL.md +0 -398
  299. package/bundled/skills-windows/refactor-planner/assets/planning-guide.md +0 -292
  300. package/bundled/skills-windows/refactor-planner/references/behavior-preservation.md +0 -301
  301. package/bundled/skills-windows/refactor-planner/references/fast-path.md +0 -59
  302. package/bundled/skills-windows/refactor-planner/references/planning-phases.md +0 -135
  303. package/bundled/skills-windows/refactor-planner/references/refactor-scoping-guide.md +0 -221
  304. package/bundled/skills-windows/refactor-planner/scripts/validate-and-generate-refactor.py +0 -858
  305. package/bundled/skills-windows/refactor-workflow/SKILL.md +0 -343
  306. package/bundled/skills-windows/refactor-workflow/references/brainstorm-guide.md +0 -116
  307. package/bundled/templates/hooks/diff-prizm-docs.sh +0 -158
  308. package/bundled/templates/hooks/prizm-pre-commit.sh +0 -108
  309. package/bundled/templates/hooks/validate-prizm-docs.sh +0 -139
@@ -1,436 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
-
4
- # ============================================================
5
- # dev-pipeline/reset-feature.sh - Reset a failed/stuck feature
6
- #
7
- # Resets status and discards uncommitted working tree changes on
8
- # the dev branch, then returns to the original branch. Session
9
- # history and .prizmkit artifacts are preserved for debugging.
10
- #
11
- # With --clean, also deletes session history, .prizmkit/specs/
12
- # artifacts, and the dev branch itself.
13
- #
14
- # Usage:
15
- # ./reset-feature.sh <feature-id|range> [options] [.prizmkit/plans/feature-list.json]
16
- #
17
- # Feature selection:
18
- # F-007 Single feature
19
- # F-008:F-013 Range of features (inclusive)
20
- # --auto-skipped All features with auto_skipped status
21
- # --failed All features with failed status
22
- # --stalled All non-completed features (failed + auto_skipped)
23
- #
24
- # Options:
25
- # --clean Also delete session history, .prizmkit/specs/{slug}/ artifacts, and dev branch
26
- # --run After reset, immediately retry via pipeline (only with single feature)
27
- #
28
- # Normal reset (no --clean):
29
- # - Resets status → pending, retry_count → 0
30
- # - Discards uncommitted changes on dev branch (git checkout -- . && git clean -fd)
31
- # - Returns to default branch (main/master)
32
- # - Preserves dev branch, session history, and .prizmkit artifacts for debugging
33
- #
34
- # Examples:
35
- # ./reset-feature.sh F-007 # Reset status + discard changes
36
- # ./reset-feature.sh F-007 --clean # Reset + delete everything
37
- # ./reset-feature.sh F-008:F-013 --clean # Reset range
38
- # ./reset-feature.sh --auto-skipped # Reset all auto_skipped
39
- # ./reset-feature.sh --failed --clean # Reset all failed + clean
40
- # ./reset-feature.sh --stalled --clean # Reset all non-completed
41
- # ./reset-feature.sh F-007 --clean --run # Reset + delete + retry
42
- # ./reset-feature.sh F-007 --clean my-features.json # Custom feature list
43
- # ============================================================
44
-
45
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
46
-
47
- # Source shared common helpers (exports PIPELINE_DIR/PRIZMKIT_DIR/PROJECT_ROOT)
48
- source "$SCRIPT_DIR/lib/common.sh"
49
-
50
- STATE_DIR="${PRIZMKIT_DIR}/state/features"
51
- SCRIPTS_DIR="$SCRIPT_DIR/scripts"
52
-
53
- # Colors
54
- RED='\033[0;31m'
55
- GREEN='\033[0;32m'
56
- YELLOW='\033[1;33m'
57
- BLUE='\033[0;34m'
58
- BOLD='\033[1m'
59
- NC='\033[0m'
60
-
61
- log_info() { echo -e "${BLUE}[INFO]${NC} $*"; }
62
- log_warn() { echo -e "${YELLOW}[WARN]${NC} $*"; }
63
- log_error() { echo -e "${RED}[ERROR]${NC} $*"; }
64
- log_success() { echo -e "${GREEN}[OK]${NC} $*"; }
65
-
66
- warn_if_continuation_pending() {
67
- local status_file="$1"
68
- local item_id="$2"
69
- local item_label="$3"
70
- [[ -f "$status_file" ]] || return 0
71
-
72
- local info continuation_pending active_dev_branch continuation_reason
73
- info=$(python3 - "$status_file" <<'PY' 2>/dev/null || true
74
- import json
75
- import sys
76
- with open(sys.argv[1], encoding="utf-8") as fh:
77
- data = json.load(fh)
78
- pending = data.get("continuation_pending") is True
79
- print("{}\t{}\t{}".format(
80
- "true" if pending else "false",
81
- data.get("active_dev_branch") or "",
82
- data.get("continuation_reason") or "context_overflow",
83
- ))
84
- PY
85
- )
86
- IFS=$'\t' read -r continuation_pending active_dev_branch continuation_reason <<< "$info"
87
- if [[ "$continuation_pending" == "true" ]]; then
88
- log_warn "Continuation pending for $item_label $item_id (${continuation_reason:-context_overflow}). Manual reset will abandon automatic continuation progress."
89
- if [[ -n "$active_dev_branch" ]]; then
90
- log_warn "Pending continuation branch: $active_dev_branch"
91
- fi
92
- fi
93
- }
94
-
95
- # ============================================================
96
- # Parse args
97
- # ============================================================
98
-
99
- FEATURE_ID=""
100
- FEATURE_RANGE=""
101
- FEATURE_LIST=""
102
- DO_CLEAN=false
103
- DO_RUN=false
104
- FILTER_MODE=""
105
-
106
- for arg in "$@"; do
107
- case "$arg" in
108
- --clean) DO_CLEAN=true ;;
109
- --run) DO_RUN=true ;;
110
- --auto-skipped) FILTER_MODE="auto_skipped" ;;
111
- --failed) FILTER_MODE="failed" ;;
112
- --stalled) FILTER_MODE="stalled" ;;
113
- -h|--help)
114
- echo "Usage: $0 <feature-id|range> [--clean] [--run] [--auto-skipped|--failed|--stalled] [.prizmkit/plans/feature-list.json]"
115
- echo ""
116
- echo " feature-id Single feature (e.g. F-007)"
117
- echo " F-008:F-013 Range of features (inclusive)"
118
- echo " --auto-skipped Reset all auto_skipped features"
119
- echo " --failed Reset all failed features"
120
- echo " --stalled Reset all non-completed (failed + auto_skipped)"
121
- echo " --clean Delete session history, .prizmkit artifacts, and dev branch"
122
- echo " --run Retry immediately after reset (single feature only)"
123
- echo " .prizmkit/plans/feature-list.json Path to feature list (default: .prizmkit/plans/feature-list.json)"
124
- exit 0
125
- ;;
126
- F-*:F-*|f-*:f-*) FEATURE_RANGE="$arg" ;;
127
- F-*|f-*) FEATURE_ID="$arg" ;;
128
- *) FEATURE_LIST="$arg" ;;
129
- esac
130
- done
131
-
132
- if [[ -z "$FEATURE_ID" && -z "$FEATURE_RANGE" && -z "$FILTER_MODE" ]]; then
133
- echo "Usage: $0 <feature-id|range> [--clean] [--run] [--auto-skipped|--failed|--stalled] [.prizmkit/plans/feature-list.json]"
134
- echo ""
135
- echo " feature-id Single feature (e.g. F-007)"
136
- echo " F-008:F-013 Range of features (inclusive)"
137
- echo " --auto-skipped Reset all auto_skipped features"
138
- echo " --failed Reset all failed features"
139
- echo " --stalled Reset all non-completed (failed + auto_skipped)"
140
- echo " --clean Delete session history and .prizmkit artifacts"
141
- echo " --run Retry immediately after reset (single feature only)"
142
- echo " .prizmkit/plans/feature-list.json Path to feature list (default: .prizmkit/plans/feature-list.json)"
143
- exit 1
144
- fi
145
-
146
- FEATURE_LIST="${FEATURE_LIST:-$PRIZMKIT_DIR/plans/feature-list.json}"
147
-
148
- # Resolve absolute path
149
- if [[ ! "$FEATURE_LIST" = /* ]]; then
150
- FEATURE_LIST="$(pwd)/$FEATURE_LIST"
151
- fi
152
-
153
- # ============================================================
154
- # Validation
155
- # ============================================================
156
-
157
- if [[ ! -f "$FEATURE_LIST" ]]; then
158
- log_error "Feature list not found: $FEATURE_LIST"
159
- exit 1
160
- fi
161
-
162
- if [[ ! -f "$STATE_DIR/pipeline.json" ]]; then
163
- log_error "No pipeline state found. Run './run-feature.sh run' first to initialize."
164
- exit 1
165
- fi
166
-
167
- # ============================================================
168
- # Resolve feature IDs to process
169
- # ============================================================
170
-
171
- FEATURE_IDS=()
172
-
173
- if [[ -n "$FILTER_MODE" ]]; then
174
- # Filter by status from feature-list.json (single source of truth)
175
- while IFS= read -r fid; do
176
- [[ -n "$fid" ]] && FEATURE_IDS+=("$fid")
177
- done < <(python3 -c "
178
- import json, sys
179
- filter_mode = '$FILTER_MODE'
180
- feature_list = '$FEATURE_LIST'
181
- with open(feature_list) as f:
182
- data = json.load(f)
183
- for feat in data.get('features', []):
184
- if not isinstance(feat, dict):
185
- continue
186
- fid = feat.get('id', '')
187
- status = feat.get('status', '')
188
- if filter_mode == 'auto_skipped' and status == 'auto_skipped':
189
- print(fid)
190
- elif filter_mode == 'failed' and status == 'failed':
191
- print(fid)
192
- elif filter_mode == 'stalled' and status in ('failed', 'auto_skipped'):
193
- print(fid)
194
- " 2>/dev/null)
195
-
196
- if [[ ${#FEATURE_IDS[@]} -eq 0 ]]; then
197
- log_info "No features found with status: $FILTER_MODE"
198
- exit 0
199
- fi
200
- log_info "Found ${#FEATURE_IDS[@]} feature(s) matching --$FILTER_MODE: ${FEATURE_IDS[*]}"
201
-
202
- elif [[ -n "$FEATURE_RANGE" ]]; then
203
- # Parse range F-NNN:F-MMM
204
- RANGE_START="${FEATURE_RANGE%%:*}"
205
- RANGE_END="${FEATURE_RANGE##*:}"
206
- START_NUM=$(echo "$RANGE_START" | sed 's/[Ff]-//' | sed 's/^0*//')
207
- END_NUM=$(echo "$RANGE_END" | sed 's/[Ff]-//' | sed 's/^0*//')
208
-
209
- if [[ -z "$START_NUM" || -z "$END_NUM" || "$START_NUM" -gt "$END_NUM" ]]; then
210
- log_error "Invalid range: $FEATURE_RANGE (start must be <= end)"
211
- exit 1
212
- fi
213
-
214
- for ((i=START_NUM; i<=END_NUM; i++)); do
215
- FEATURE_IDS+=("F-$(printf '%03d' "$i")")
216
- done
217
- log_info "Range $FEATURE_RANGE → ${FEATURE_IDS[*]}"
218
-
219
- else
220
- FEATURE_IDS=("$FEATURE_ID")
221
- fi
222
-
223
- # --run only works with single feature
224
- if [[ "$DO_RUN" == true && ${#FEATURE_IDS[@]} -gt 1 ]]; then
225
- log_warn "--run is only supported for single feature reset. Use './run-feature.sh run' to resume pipeline after batch reset."
226
- DO_RUN=false
227
- fi
228
-
229
- # ============================================================
230
- # Process each feature
231
- # ============================================================
232
-
233
- RESET_COUNT=0
234
- FAIL_COUNT=0
235
-
236
- # Detect default branch (main or master)
237
- DEFAULT_BRANCH=$(git -C "$PROJECT_ROOT" symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@' || echo "")
238
- if [[ -z "$DEFAULT_BRANCH" ]]; then
239
- # Fallback: check if main or master exists
240
- if git -C "$PROJECT_ROOT" rev-parse --verify main >/dev/null 2>&1; then
241
- DEFAULT_BRANCH="main"
242
- elif git -C "$PROJECT_ROOT" rev-parse --verify master >/dev/null 2>&1; then
243
- DEFAULT_BRANCH="master"
244
- else
245
- DEFAULT_BRANCH=$(git -C "$PROJECT_ROOT" rev-parse --abbrev-ref HEAD 2>/dev/null || echo "main")
246
- fi
247
- fi
248
-
249
- for CUR_FEATURE_ID in "${FEATURE_IDS[@]}"; do
250
-
251
- # Get feature info from feature list
252
- FEATURE_INFO=$(python3 -c "
253
- import json, sys, re
254
- with open('$FEATURE_LIST') as f:
255
- data = json.load(f)
256
- for feat in data.get('features', []):
257
- if feat.get('id') == '$CUR_FEATURE_ID':
258
- title = feat.get('title', '')
259
- # Compute slug
260
- numeric = '$CUR_FEATURE_ID'.replace('F-', '').replace('f-', '').zfill(3)
261
- slug = title.lower()
262
- slug = re.sub(r'[^a-z0-9\s-]', '', slug)
263
- slug = re.sub(r'[\s]+', '-', slug.strip())
264
- slug = re.sub(r'-+', '-', slug).strip('-')
265
- slug = '{}-{}'.format(numeric, slug)
266
- print(json.dumps({'title': title, 'slug': slug, 'status': feat.get('status', 'unknown')}))
267
- sys.exit(0)
268
- sys.exit(1)
269
- " 2>/dev/null) || {
270
- log_warn "Feature $CUR_FEATURE_ID not found in $FEATURE_LIST — skipping"
271
- FAIL_COUNT=$((FAIL_COUNT + 1))
272
- continue
273
- }
274
-
275
- FEATURE_TITLE=$(echo "$FEATURE_INFO" | python3 -c "import sys,json; print(json.load(sys.stdin)['title'])")
276
- FEATURE_SLUG=$(echo "$FEATURE_INFO" | python3 -c "import sys,json; print(json.load(sys.stdin)['slug'])")
277
-
278
- # ── Show current state ──
279
- echo ""
280
- echo -e "${BOLD}════════════════════════════════════════════════════${NC}"
281
- echo -e "${BOLD} Reset: $CUR_FEATURE_ID — $FEATURE_TITLE${NC}"
282
- echo -e "${BOLD}════════════════════════════════════════════════════${NC}"
283
-
284
- STATUS_FILE="$STATE_DIR/$CUR_FEATURE_ID/status.json"
285
- # Read status from feature-list.json (single source of truth)
286
- CURRENT_STATUS=$(python3 -c "
287
- import json, sys
288
- with open('$FEATURE_LIST') as f:
289
- data = json.load(f)
290
- for feat in data.get('features', []):
291
- if isinstance(feat, dict) and feat.get('id') == '$CUR_FEATURE_ID':
292
- print(feat.get('status', '?'))
293
- sys.exit(0)
294
- print('?')
295
- " 2>/dev/null || echo "?")
296
- if [[ -f "$STATUS_FILE" ]]; then
297
- CURRENT_RETRY=$(python3 -c "import json; d=json.load(open('$STATUS_FILE')); print(d.get('retry_count',0))")
298
- SESSION_COUNT=$(python3 -c "import json; d=json.load(open('$STATUS_FILE')); print(len(d.get('sessions',[])))")
299
- log_info "Current status: $CURRENT_STATUS (retry $CURRENT_RETRY, $SESSION_COUNT sessions)"
300
- warn_if_continuation_pending "$STATUS_FILE" "$CUR_FEATURE_ID" "feature"
301
- else
302
- log_info "Current status: $CURRENT_STATUS (no runtime state file)"
303
- fi
304
-
305
- SPECS_DIR="$PRIZMKIT_DIR/specs/$FEATURE_SLUG"
306
- SPECS_COUNT=0
307
- if [[ -d "$SPECS_DIR" ]]; then
308
- SPECS_COUNT=$(find "$SPECS_DIR" -type f 2>/dev/null | wc -l | tr -d ' ')
309
- log_info "PrizmKit artifacts: $SPECS_COUNT files in .prizmkit/specs/$FEATURE_SLUG/"
310
- fi
311
-
312
- SESSIONS_DIR="$STATE_DIR/$CUR_FEATURE_ID/sessions"
313
- SESSIONS_COUNT=0
314
- if [[ -d "$SESSIONS_DIR" ]]; then
315
- SESSIONS_COUNT=$(find "$SESSIONS_DIR" -mindepth 1 -maxdepth 1 -type d 2>/dev/null | wc -l | tr -d ' ')
316
- log_info "Session history: $SESSIONS_COUNT session(s)"
317
- fi
318
-
319
- echo -e "${BOLD}════════════════════════════════════════════════════${NC}"
320
-
321
- # ── Git cleanup: discard dev branch changes ──
322
- # Find dev branches matching this feature (pattern: dev/{FEATURE_ID}-*)
323
- DEV_BRANCHES=$(git -C "$PROJECT_ROOT" branch --list "dev/${CUR_FEATURE_ID}-*" 2>/dev/null | sed 's/^[* ]*//')
324
- CURRENT_BRANCH=$(git -C "$PROJECT_ROOT" rev-parse --abbrev-ref HEAD 2>/dev/null || echo "")
325
-
326
- if [[ -n "$DEV_BRANCHES" ]]; then
327
- while IFS= read -r branch; do
328
- [[ -z "$branch" ]] && continue
329
- if [[ "$CURRENT_BRANCH" == "$branch" ]]; then
330
- # We're on the dev branch — discard uncommitted changes and return to default
331
- log_info "Discarding uncommitted changes on dev branch: $branch"
332
- git -C "$PROJECT_ROOT" reset HEAD 2>/dev/null || true
333
- git -C "$PROJECT_ROOT" checkout -- . 2>/dev/null || true
334
- git -C "$PROJECT_ROOT" clean -fd 2>/dev/null || true
335
- log_info "Switching to $DEFAULT_BRANCH..."
336
- if ! git -C "$PROJECT_ROOT" checkout "$DEFAULT_BRANCH" 2>/dev/null; then
337
- log_warn "Failed to checkout $DEFAULT_BRANCH — staying on $branch"
338
- else
339
- CURRENT_BRANCH="$DEFAULT_BRANCH"
340
- fi
341
- else
342
- # Not on the dev branch — discard its uncommitted changes
343
- # Temporarily switch, discard, switch back
344
- _stashed=false
345
- _dirty=""
346
- _dirty=$(git -C "$PROJECT_ROOT" status --porcelain 2>/dev/null || true)
347
- if [[ -n "$_dirty" ]]; then
348
- git -C "$PROJECT_ROOT" stash push --include-untracked -m "reset-feature-temp" 2>/dev/null && _stashed=true
349
- fi
350
- if git -C "$PROJECT_ROOT" checkout "$branch" 2>/dev/null; then
351
- log_info "Discarding uncommitted changes on dev branch: $branch"
352
- git -C "$PROJECT_ROOT" reset HEAD 2>/dev/null || true
353
- git -C "$PROJECT_ROOT" checkout -- . 2>/dev/null || true
354
- git -C "$PROJECT_ROOT" clean -fd 2>/dev/null || true
355
- git -C "$PROJECT_ROOT" checkout "$CURRENT_BRANCH" 2>/dev/null || true
356
- else
357
- log_warn "Could not checkout $branch to discard changes"
358
- fi
359
- [[ "$_stashed" == true ]] && git -C "$PROJECT_ROOT" stash pop 2>/dev/null || true
360
- fi
361
- # Only delete the dev branch in --clean mode
362
- if [[ "$DO_CLEAN" == true ]]; then
363
- if git -C "$PROJECT_ROOT" branch -D "$branch" 2>/dev/null; then
364
- log_success "Deleted dev branch: $branch"
365
- else
366
- log_warn "Failed to delete branch: $branch"
367
- fi
368
- else
369
- log_info "Dev branch preserved for debugging: $branch"
370
- fi
371
- done <<< "$DEV_BRANCHES"
372
- fi
373
-
374
- # ── Execute reset ──
375
- _reset_tmpstderr=$(mktemp)
376
- if [[ "$DO_CLEAN" == true ]]; then
377
- log_info "Cleaning $CUR_FEATURE_ID (reset + delete artifacts)..."
378
- RESULT=$(python3 "$SCRIPTS_DIR/update-feature-status.py" \
379
- --feature-list "$FEATURE_LIST" \
380
- --state-dir "$STATE_DIR" \
381
- --feature-id "$CUR_FEATURE_ID" \
382
- --feature-slug "$FEATURE_SLUG" \
383
- --project-root "$PROJECT_ROOT" \
384
- --action clean 2>"$_reset_tmpstderr")
385
- else
386
- log_info "Resetting $CUR_FEATURE_ID status..."
387
- RESULT=$(python3 "$SCRIPTS_DIR/update-feature-status.py" \
388
- --feature-list "$FEATURE_LIST" \
389
- --state-dir "$STATE_DIR" \
390
- --feature-id "$CUR_FEATURE_ID" \
391
- --action reset 2>"$_reset_tmpstderr")
392
- fi
393
- _reset_stderr=$(cat "$_reset_tmpstderr" 2>/dev/null || true)
394
- rm -f "$_reset_tmpstderr"
395
- if [[ -n "$_reset_stderr" ]]; then
396
- log_warn "$_reset_stderr"
397
- fi
398
-
399
- # Check for errors
400
- if echo "$RESULT" | python3 -c "import sys,json; d=json.load(sys.stdin); sys.exit(0 if 'error' not in d else 1)" 2>/dev/null; then
401
- RESET_COUNT=$((RESET_COUNT + 1))
402
- if [[ "$DO_CLEAN" == true ]]; then
403
- log_success "$CUR_FEATURE_ID cleaned: status → pending, $SESSIONS_COUNT session(s) deleted, $SPECS_COUNT artifact(s) deleted, dev branch deleted"
404
- else
405
- log_success "$CUR_FEATURE_ID reset: status → pending, retry count → 0, dev branch discarded"
406
- fi
407
- else
408
- ERROR_MSG=$(echo "$RESULT" | python3 -c "import sys,json; print(json.load(sys.stdin).get('error','unknown'))" 2>/dev/null || echo "$RESULT")
409
- log_error "Reset $CUR_FEATURE_ID failed: $ERROR_MSG"
410
- FAIL_COUNT=$((FAIL_COUNT + 1))
411
- fi
412
-
413
- done
414
-
415
- # ============================================================
416
- # Summary
417
- # ============================================================
418
-
419
- echo ""
420
- echo -e "${BOLD}════════════════════════════════════════════════════${NC}"
421
- echo -e "${BOLD} Reset complete: $RESET_COUNT succeeded, $FAIL_COUNT failed${NC}"
422
- echo -e "${BOLD}════════════════════════════════════════════════════${NC}"
423
-
424
- echo ""
425
- echo -e "${BOLD}Next steps:${NC}"
426
- if [[ "$DO_RUN" == true && ${#FEATURE_IDS[@]} -eq 1 ]]; then
427
- log_info "Auto-retrying ${FEATURE_IDS[0]}..."
428
- echo ""
429
- exec "$SCRIPT_DIR/run-feature.sh" run "${FEATURE_IDS[0]}" "$FEATURE_LIST"
430
- else
431
- log_info " ./.prizmkit/dev-pipeline/run-feature.sh run .prizmkit/plans/feature-list.json # Resume pipeline from first pending"
432
- if [[ ${#FEATURE_IDS[@]} -eq 1 ]]; then
433
- log_info " ./.prizmkit/dev-pipeline/run-feature.sh run ${FEATURE_IDS[0]} # Run single feature"
434
- fi
435
- fi
436
- echo ""