peaks-loop 4.0.0-beta → 4.0.0-beta.11

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 (1257) hide show
  1. package/.claude-plugin/marketplace.json +5 -0
  2. package/CHANGELOG.md +540 -87
  3. package/README-en.md +184 -56
  4. package/README.md +184 -46
  5. package/bin/peaks.js +1 -1
  6. package/dist/cli/cli-helpers.d.ts +38 -0
  7. package/dist/cli/cli-helpers.js +62 -0
  8. package/dist/cli/commands/_cli-error-envelope.d.ts +19 -0
  9. package/dist/cli/commands/_cli-error-envelope.js +50 -0
  10. package/dist/cli/commands/adapter-commands-s2a.d.ts +34 -0
  11. package/dist/cli/commands/adapter-commands-s2a.js +92 -0
  12. package/dist/cli/commands/asset-commands.d.ts +45 -0
  13. package/dist/cli/commands/asset-commands.js +404 -0
  14. package/dist/cli/commands/audit-commands.js +437 -0
  15. package/dist/cli/commands/bee-commands.d.ts +26 -0
  16. package/dist/cli/commands/bee-commands.js +169 -0
  17. package/dist/cli/commands/capability-worker-config-sc-commands.js +8 -0
  18. package/dist/cli/commands/code-commands.d.ts +80 -0
  19. package/dist/cli/commands/code-commands.js +798 -0
  20. package/dist/cli/commands/code-review-commands.js +83 -0
  21. package/dist/cli/commands/config-commands.js +149 -0
  22. package/dist/cli/commands/core/skill-command.js +303 -0
  23. package/dist/cli/commands/dispatch-commands.js +365 -0
  24. package/dist/cli/commands/dispatch-from-dag.js +251 -0
  25. package/dist/cli/commands/ecc-commands.d.ts +30 -0
  26. package/dist/cli/commands/ecc-commands.js +119 -0
  27. package/dist/cli/commands/evolution-commands.d.ts +27 -0
  28. package/dist/cli/commands/evolution-commands.js +393 -0
  29. package/dist/cli/commands/hook-handle.js +157 -0
  30. package/dist/cli/commands/ide-commands.d.ts +25 -0
  31. package/dist/cli/commands/ide-commands.js +42 -0
  32. package/dist/cli/commands/job-commands.js +289 -0
  33. package/dist/cli/commands/loop-commands.d.ts +27 -0
  34. package/dist/cli/commands/loop-commands.js +262 -0
  35. package/dist/cli/commands/perf-audit-commands.js +132 -0
  36. package/dist/cli/commands/polyrepo-commands.d.ts +37 -0
  37. package/dist/cli/commands/polyrepo-commands.js +155 -0
  38. package/dist/cli/commands/prd-commands.js +143 -0
  39. package/dist/cli/commands/project-commands.js +253 -0
  40. package/dist/cli/commands/qa-commands.js +271 -0
  41. package/dist/cli/commands/runtime-commands.d.ts +52 -0
  42. package/dist/cli/commands/runtime-commands.js +150 -0
  43. package/dist/cli/commands/sc-commands.js +47 -0
  44. package/dist/cli/commands/security-audit-commands.js +132 -0
  45. package/dist/cli/commands/sediment-commands.js +649 -0
  46. package/dist/cli/commands/session-auto-compact-hook-command.js +127 -0
  47. package/dist/cli/commands/skill-loop-engineering-readiness-commands.d.ts +67 -0
  48. package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +173 -0
  49. package/dist/cli/commands/skill-search-commands.d.ts +25 -0
  50. package/dist/cli/commands/skill-search-commands.js +71 -0
  51. package/dist/cli/commands/sub-agent-shared.d.ts +99 -0
  52. package/dist/cli/commands/upgrade-commands.js +119 -0
  53. package/dist/cli/commands/user-touchpoint-commands.d.ts +18 -0
  54. package/dist/cli/commands/user-touchpoint-commands.js +78 -0
  55. package/dist/cli/commands/workflow-commands.js +544 -0
  56. package/dist/cli/commands/workspace/init-command.d.ts +139 -0
  57. package/dist/cli/commands/workspace/init-command.js +505 -0
  58. package/dist/cli/program.js +416 -0
  59. package/dist/services/adapter/adapter-registry.d.ts +48 -0
  60. package/dist/services/adapter/adapter-registry.js +186 -0
  61. package/dist/services/agent/ecc-cache-service.d.ts +97 -0
  62. package/dist/services/agent/ecc-cache-service.js +491 -0
  63. package/dist/services/artifacts/repair-cycle-service.js +52 -0
  64. package/dist/services/audit/enforcers/active-skill-resolver.d.ts +29 -0
  65. package/dist/services/audit/enforcers/active-skill-resolver.js +71 -0
  66. package/dist/services/audit/enforcers/code-ban.d.ts +23 -0
  67. package/dist/services/audit/enforcers/code-ban.js +27 -0
  68. package/dist/services/audit/red-line-catalog.d.ts +51 -0
  69. package/dist/services/audit/red-line-catalog.js +195 -0
  70. package/dist/services/audit/static-service.d.ts +67 -0
  71. package/dist/services/audit/static-service.js +51 -0
  72. package/dist/services/audit/types.d.ts +86 -0
  73. package/dist/services/code/auto-compact-orchestrator.d.ts +98 -0
  74. package/dist/services/code/auto-compact-orchestrator.js +343 -0
  75. package/dist/services/code/dag-orchestrator.d.ts +128 -0
  76. package/dist/services/code/dag-orchestrator.js +304 -0
  77. package/dist/services/code/emit-handoff.d.ts +49 -0
  78. package/dist/services/code/emit-handoff.js +79 -0
  79. package/dist/services/code/job-shape-decision.d.ts +71 -0
  80. package/dist/services/code/job-shape-decision.js +151 -0
  81. package/dist/services/code/mode-gate.d.ts +163 -0
  82. package/dist/services/code/mode-gate.js +212 -0
  83. package/dist/services/code/post-compact-detector.d.ts +61 -0
  84. package/dist/services/code/post-compact-detector.js +240 -0
  85. package/dist/services/code/step-08-gate.d.ts +90 -0
  86. package/dist/services/code/step-08-gate.js +136 -0
  87. package/dist/services/code/user-touchpoint-classifier.d.ts +44 -0
  88. package/dist/services/code/user-touchpoint-classifier.js +145 -0
  89. package/dist/services/config/config-service.d.ts +58 -0
  90. package/dist/services/config/config-service.js +745 -0
  91. package/dist/services/config/config-types.d.ts +117 -0
  92. package/dist/services/config/model-routing.d.ts +66 -0
  93. package/dist/services/config/model-routing.js +105 -0
  94. package/dist/services/context/auto-compact-dispatcher.d.ts +37 -0
  95. package/dist/services/context/auto-compact-dispatcher.js +240 -0
  96. package/dist/services/context/auto-compact-types.d.ts +143 -0
  97. package/dist/services/context/context-schema.d.ts +415 -0
  98. package/dist/services/crystallization/crystallization-service.d.ts +239 -0
  99. package/dist/services/crystallization/crystallization-service.js +397 -0
  100. package/dist/services/crystallization/crystallization-store.d.ts +75 -0
  101. package/dist/services/crystallization/crystallization-store.js +193 -0
  102. package/dist/services/crystallization/crystallization-types.d.ts +313 -0
  103. package/dist/services/crystallization/crystallization-types.js +299 -0
  104. package/dist/services/crystallization/evidence-brief-builder.d.ts +237 -0
  105. package/dist/services/crystallization/evidence-brief-builder.js +240 -0
  106. package/dist/services/dispatch/slice-dag.d.ts +81 -0
  107. package/dist/services/dispatch/test-tool-detection.d.ts +36 -0
  108. package/dist/services/dispatch/test-tool-detection.js +46 -0
  109. package/dist/services/evolution/evolution-service.d.ts +137 -0
  110. package/dist/services/evolution/evolution-service.js +281 -0
  111. package/dist/services/evolution/evolution-store.d.ts +57 -0
  112. package/dist/services/evolution/evolution-store.js +232 -0
  113. package/dist/services/evolution/evolution-types.d.ts +706 -0
  114. package/dist/services/evolution/evolution-types.js +286 -0
  115. package/dist/services/evolution/independent-evaluator-runner.d.ts +90 -0
  116. package/dist/services/evolution/independent-evaluator-runner.js +106 -0
  117. package/dist/services/evolution/regression-skeptic-runner.d.ts +64 -0
  118. package/dist/services/evolution/regression-skeptic-runner.js +113 -0
  119. package/dist/services/feedback/feedback-promotion-service.js +300 -0
  120. package/dist/services/filesystem/file-lock.js +152 -0
  121. package/dist/services/ide/adapters/zcode-adapter.d.ts +40 -0
  122. package/dist/services/ide/adapters/zcode-adapter.js +220 -0
  123. package/dist/services/ide/current-model-detector.d.ts +14 -0
  124. package/dist/services/ide/current-model-detector.js +60 -0
  125. package/dist/services/ide/ide-registry.js +63 -0
  126. package/dist/services/ide/ide-types.d.ts +253 -0
  127. package/dist/services/job/job-progress-store.d.ts +60 -0
  128. package/dist/services/job/job-progress-store.js +70 -0
  129. package/dist/services/job/job-types.d.ts +444 -0
  130. package/dist/services/log/retention.d.ts +50 -0
  131. package/dist/services/log/retention.js +95 -0
  132. package/dist/services/loop/loop-bee-relation-service.d.ts +107 -0
  133. package/dist/services/loop/loop-bee-relation-service.js +211 -0
  134. package/dist/services/loop/loop-bee-relation-store.d.ts +53 -0
  135. package/dist/services/loop/loop-bee-relation-store.js +130 -0
  136. package/dist/services/loop/loop-bee-relation-types.d.ts +118 -0
  137. package/dist/services/loop/loop-bee-relation-types.js +114 -0
  138. package/dist/services/loop/loop-release-service.d.ts +46 -0
  139. package/dist/services/loop/loop-release-service.js +66 -0
  140. package/dist/services/loop/loop-release-store.d.ts +55 -0
  141. package/dist/services/loop/loop-release-store.js +134 -0
  142. package/dist/services/loop/loop-release-types.d.ts +250 -0
  143. package/dist/services/loop/loop-release-types.js +162 -0
  144. package/dist/services/memory/project-context-service.d.ts +21 -0
  145. package/dist/services/memory/project-context-service.js +161 -0
  146. package/dist/services/migrate-skill-name/schema.d.ts +42 -0
  147. package/dist/services/polyrepo/polyrepo-dispatcher.d.ts +34 -0
  148. package/dist/services/polyrepo/polyrepo-dispatcher.js +119 -0
  149. package/dist/services/polyrepo/polyrepo-scanner.d.ts +9 -0
  150. package/dist/services/polyrepo/polyrepo-scanner.js +94 -0
  151. package/dist/services/polyrepo/polyrepo-service.d.ts +34 -0
  152. package/dist/services/polyrepo/polyrepo-service.js +49 -0
  153. package/dist/services/polyrepo/polyrepo-types.d.ts +55 -0
  154. package/dist/services/prd/project-scan-bootstrap-service.d.ts +52 -0
  155. package/dist/services/prd/project-scan-bootstrap-service.js +445 -0
  156. package/dist/services/preferences/preferences-service.d.ts +38 -0
  157. package/dist/services/preferences/preferences-types.d.ts +148 -0
  158. package/dist/services/rd/rd-service.js +440 -0
  159. package/dist/services/rd/standards-diagnostic.d.ts +76 -0
  160. package/dist/services/rd/standards-diagnostic.js +166 -0
  161. package/dist/services/rd/types.d.ts +252 -0
  162. package/dist/services/recommendations/capability-seed-items.js +139 -0
  163. package/dist/services/recommendations/capability-seed-mappings.js +53 -0
  164. package/dist/services/recommendations/capability-seed-sources.js +34 -0
  165. package/dist/services/recommendations/recommendation-service.js +106 -0
  166. package/dist/services/refactor/refactor-service.d.ts +9 -0
  167. package/dist/services/runtime/runtime-detector.d.ts +15 -0
  168. package/dist/services/runtime/runtime-detector.js +62 -0
  169. package/dist/services/runtime/runtime-service.d.ts +59 -0
  170. package/dist/services/runtime/runtime-service.js +51 -0
  171. package/dist/services/runtime/vendor-adapter.d.ts +59 -0
  172. package/dist/services/runtime/vendors/claude-code.d.ts +7 -0
  173. package/dist/services/runtime/vendors/claude-code.js +39 -0
  174. package/dist/services/runtime/vendors/codex.d.ts +7 -0
  175. package/dist/services/runtime/vendors/codex.js +43 -0
  176. package/dist/services/runtime/vendors/copilot.d.ts +7 -0
  177. package/dist/services/runtime/vendors/copilot.js +40 -0
  178. package/dist/services/scan/archetype-service.js +254 -0
  179. package/dist/services/scan/scan-types.d.ts +59 -0
  180. package/dist/services/share/bundle-reader.d.ts +100 -0
  181. package/dist/services/share/bundle-reader.js +434 -0
  182. package/dist/services/share/bundle-types.d.ts +392 -0
  183. package/dist/services/share/bundle-types.js +318 -0
  184. package/dist/services/share/bundle-writer.d.ts +97 -0
  185. package/dist/services/share/bundle-writer.js +429 -0
  186. package/dist/services/share/run-state-contract.d.ts +133 -0
  187. package/dist/services/share/run-state-contract.js +138 -0
  188. package/dist/services/signal/cancel-handler.js +76 -0
  189. package/dist/services/skill/resume-detector.js +334 -0
  190. package/dist/services/skill/skill-search-service.d.ts +93 -0
  191. package/dist/services/skill/skill-search-service.js +232 -0
  192. package/dist/services/skillhub/release-import.js +64 -0
  193. package/dist/services/skillhub/release-retain.js +94 -0
  194. package/dist/services/skillhub/sqlite-store.js +63 -0
  195. package/dist/services/skillhub/types.d.ts +115 -0
  196. package/dist/services/skills/skill-presence-service.d.ts +158 -0
  197. package/dist/services/skills/skill-registry.d.ts +18 -0
  198. package/dist/services/skills/skill-registry.js +69 -0
  199. package/dist/services/standards/ide-aware-standards-service.js +91 -0
  200. package/dist/services/standards/loop-engineering-lint.d.ts +38 -0
  201. package/dist/services/standards/loop-engineering-lint.js +101 -0
  202. package/dist/services/standards/loop-engineering-readiness-lint.d.ts +111 -0
  203. package/dist/services/standards/loop-engineering-readiness-lint.js +248 -0
  204. package/dist/services/standards/migrate-claude-rules-service.js +214 -0
  205. package/dist/services/standards/missing-standards-detector.d.ts +81 -0
  206. package/dist/services/standards/missing-standards-detector.js +139 -0
  207. package/dist/services/standards/project-standards-service.js +693 -0
  208. package/dist/services/understand/hybrid-types.js +1 -0
  209. package/dist/services/understand/understand-types.js +1 -0
  210. package/dist/services/upgrade/1x-detector-service.js +94 -0
  211. package/dist/services/workflow/pipeline-verify-service.d.ts +90 -0
  212. package/dist/services/workflow/pipeline-verify-service.js +449 -0
  213. package/dist/services/workflow/workflow-autonomous-service.d.ts +100 -0
  214. package/dist/services/workflow/workflow-autonomous-service.js +306 -0
  215. package/dist/services/workflow/workflow-router-service.d.ts +85 -0
  216. package/dist/services/workflow/workflow-router-service.js +233 -0
  217. package/dist/services/workspace/claude-settings-template.d.ts +101 -0
  218. package/dist/services/workspace/claude-settings-template.js +254 -0
  219. package/dist/services/workspace/templates/project-scan/audit-output-schema.md +100 -0
  220. package/dist/services/workspace/templates/project-scan/business-knowledge.md +44 -0
  221. package/dist/services/workspace/templates/project-scan/index.d.ts +34 -0
  222. package/dist/services/workspace/templates/project-scan/index.js +60 -0
  223. package/dist/services/workspace/templates/project-scan/perf-template.md +109 -0
  224. package/dist/services/workspace/templates/project-scan/security-template.md +99 -0
  225. package/dist/shared/version.d.ts +1 -0
  226. package/dist/shared/version.js +1 -0
  227. package/examples/video-demo/README.md +142 -0
  228. package/examples/video-demo/out/en-closing-960.png +0 -0
  229. package/examples/video-demo/out/zh-closing-960.png +0 -0
  230. package/examples/video-demo/preview/peaks-loop-demo-en.mp4 +0 -0
  231. package/examples/video-demo/preview/peaks-loop-demo.mp4 +0 -0
  232. package/output-styles/peaks-skill-swarm.md +3 -3
  233. package/package.json +28 -10
  234. package/scripts/copy-templates.mjs +64 -0
  235. package/scripts/install-skills.mjs +13 -10
  236. package/skills/bee/peaks-perf-audit/SKILL.md +1 -0
  237. package/skills/bee/peaks-qa/SKILL.md +1 -1
  238. package/skills/bee/peaks-qa/references/artifact-per-request.md +3 -3
  239. package/skills/bee/peaks-qa/references/qa-sub-agent-dispatch.md +6 -6
  240. package/skills/bee/peaks-rd/SKILL.md +2 -25
  241. package/skills/bee/peaks-rd/references/library-version-awareness.md +2 -2
  242. package/skills/bee/peaks-rd/references/mock-data-placement.md +1 -1
  243. package/skills/bee/peaks-rd/references/rd-fanout-contracts.md +1 -1
  244. package/skills/bee/peaks-rd/references/rd-runbook.md +3 -3
  245. package/skills/bee/peaks-rd/references/rd-sub-agent-dispatch.md +11 -11
  246. package/skills/bee/peaks-rd/references/rd-transition-gates.md +3 -3
  247. package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +1 -1
  248. package/skills/bee/peaks-reviewer/SKILL.md +1 -0
  249. package/skills/bee/peaks-sc/SKILL.md +1 -1
  250. package/skills/bee/peaks-security-audit/SKILL.md +1 -0
  251. package/skills/bee/peaks-txt/SKILL.md +3 -3
  252. package/skills/bee/peaks-ui/SKILL.md +10 -10
  253. package/skills/peaks-code/SKILL.md +40 -142
  254. package/skills/peaks-code/references/anchoring-and-session-info.md +2 -2
  255. package/skills/peaks-code/references/artifact-contracts.md +1 -1
  256. package/skills/peaks-code/references/boundaries.md +3 -3
  257. package/skills/peaks-code/references/codegraph-orchestration.md +1 -1
  258. package/skills/peaks-code/references/dag-orchestrator.md +7 -7
  259. package/skills/peaks-code/references/external-references.md +2 -4
  260. package/skills/peaks-code/references/external-skill-invocation.md +1 -1
  261. package/skills/peaks-code/references/fanout-mandatory.md +3 -3
  262. package/skills/peaks-code/references/fast-mode.md +2 -2
  263. package/skills/peaks-code/references/frontend-only-mode.md +9 -9
  264. package/skills/peaks-code/references/job-loop.md +1 -1
  265. package/skills/peaks-code/references/local-artifact-workspace.md +2 -2
  266. package/skills/peaks-code/references/micro-cycle.md +14 -14
  267. package/skills/peaks-code/references/mode-selection-with-stale-presence.md +5 -5
  268. package/skills/peaks-code/references/mode-selection.md +3 -3
  269. package/skills/peaks-code/references/periodic-checkpoint.md +4 -4
  270. package/skills/peaks-code/references/project-scan-checklist.md +3 -1
  271. package/skills/peaks-code/references/quality-gate-cheatsheet.md +1 -1
  272. package/skills/peaks-code/references/refactor-mode.md +1 -1
  273. package/skills/peaks-code/references/runbook.md +18 -20
  274. package/skills/peaks-code/references/standards-preflight.md +1 -1
  275. package/skills/peaks-code/references/startup-sequence.md +110 -0
  276. package/skills/peaks-code/references/step-0-55-1x-detection.md +3 -2
  277. package/skills/peaks-code/references/step-0-8-gate.md +11 -11
  278. package/skills/peaks-code/references/step-11-memory-sediment.md +56 -0
  279. package/skills/peaks-code/references/sub-agent-dispatch.md +8 -8
  280. package/skills/peaks-code/references/swarm-dispatch-contract.md +18 -18
  281. package/skills/peaks-code/references/workflow-gates-and-types.md +6 -6
  282. package/skills/peaks-code/references/workflow.md +5 -5
  283. package/skills/peaks-content/SKILL.md +272 -0
  284. package/skills/peaks-doctor/SKILL.md +1 -1
  285. package/skills/peaks-ide/SKILL.md +1 -1
  286. package/skills/peaks-issue-fix-orchestrator/SKILL.md +307 -0
  287. package/skills/peaks-resume/SKILL.md +2 -2
  288. package/skills/peaks-slice-decompose/SKILL.md +61 -1
  289. package/skills/peaks-solo/SKILL.md +197 -0
  290. package/skills/peaks-solo/references/fallback-tool-inventory.md +46 -0
  291. package/skills/peaks-solo/references/sediment-prompt-template.md +62 -0
  292. package/skills/peaks-solo/references/triage-decision-table.md +31 -0
  293. package/skills/peaks-status/SKILL.md +2 -2
  294. package/skills/peaks-test/SKILL.md +2 -2
  295. package/dist/src/cli/cli-helpers.d.ts +0 -43
  296. package/dist/src/cli/cli-helpers.js +0 -86
  297. package/dist/src/cli/commands/agent-commands.d.ts +0 -20
  298. package/dist/src/cli/commands/agent-commands.js +0 -48
  299. package/dist/src/cli/commands/audit-commands.js +0 -437
  300. package/dist/src/cli/commands/capability-worker-config-sc-commands.js +0 -10
  301. package/dist/src/cli/commands/code-review-commands.js +0 -83
  302. package/dist/src/cli/commands/config-commands.js +0 -220
  303. package/dist/src/cli/commands/core/skill-command.js +0 -275
  304. package/dist/src/cli/commands/dispatch-commands.js +0 -351
  305. package/dist/src/cli/commands/dispatch-from-dag.js +0 -251
  306. package/dist/src/cli/commands/hook-handle.js +0 -157
  307. package/dist/src/cli/commands/job-commands.js +0 -289
  308. package/dist/src/cli/commands/loop-commands.d.ts +0 -21
  309. package/dist/src/cli/commands/loop-commands.js +0 -128
  310. package/dist/src/cli/commands/perf-audit-commands.js +0 -132
  311. package/dist/src/cli/commands/prd-commands.js +0 -141
  312. package/dist/src/cli/commands/project-commands.js +0 -248
  313. package/dist/src/cli/commands/qa-commands.js +0 -271
  314. package/dist/src/cli/commands/sc-commands.js +0 -45
  315. package/dist/src/cli/commands/security-audit-commands.js +0 -132
  316. package/dist/src/cli/commands/sediment-commands.js +0 -640
  317. package/dist/src/cli/commands/session-auto-compact-hook-command.js +0 -127
  318. package/dist/src/cli/commands/solo-commands.d.ts +0 -80
  319. package/dist/src/cli/commands/solo-commands.js +0 -798
  320. package/dist/src/cli/commands/sub-agent-shared.d.ts +0 -99
  321. package/dist/src/cli/commands/upgrade-commands.js +0 -119
  322. package/dist/src/cli/commands/user-touchpoint-commands.d.ts +0 -18
  323. package/dist/src/cli/commands/user-touchpoint-commands.js +0 -78
  324. package/dist/src/cli/commands/worker-commands.d.ts +0 -3
  325. package/dist/src/cli/commands/worker-commands.js +0 -52
  326. package/dist/src/cli/commands/workflow-commands.js +0 -535
  327. package/dist/src/cli/commands/workspace/init-command.d.ts +0 -121
  328. package/dist/src/cli/commands/workspace/init-command.js +0 -436
  329. package/dist/src/cli/program.js +0 -368
  330. package/dist/src/services/agent/ecc-agent-service.d.ts +0 -47
  331. package/dist/src/services/agent/ecc-agent-service.js +0 -143
  332. package/dist/src/services/artifacts/repair-cycle-service.js +0 -52
  333. package/dist/src/services/audit/enforcers/active-skill-resolver.d.ts +0 -29
  334. package/dist/src/services/audit/enforcers/active-skill-resolver.js +0 -71
  335. package/dist/src/services/audit/enforcers/solo-code-ban.d.ts +0 -23
  336. package/dist/src/services/audit/enforcers/solo-code-ban.js +0 -27
  337. package/dist/src/services/audit/red-line-catalog.d.ts +0 -51
  338. package/dist/src/services/audit/red-line-catalog.js +0 -195
  339. package/dist/src/services/audit/static-service.d.ts +0 -60
  340. package/dist/src/services/audit/static-service.js +0 -130
  341. package/dist/src/services/audit/types.d.ts +0 -86
  342. package/dist/src/services/config/config-service.d.ts +0 -69
  343. package/dist/src/services/config/config-service.js +0 -814
  344. package/dist/src/services/config/config-types.d.ts +0 -119
  345. package/dist/src/services/config/model-routing.d.ts +0 -4
  346. package/dist/src/services/config/model-routing.js +0 -17
  347. package/dist/src/services/config/provider-service.d.ts +0 -48
  348. package/dist/src/services/config/provider-service.js +0 -143
  349. package/dist/src/services/context/auto-compact-dispatcher.d.ts +0 -37
  350. package/dist/src/services/context/auto-compact-dispatcher.js +0 -240
  351. package/dist/src/services/context/auto-compact-types.d.ts +0 -143
  352. package/dist/src/services/context/context-schema.d.ts +0 -415
  353. package/dist/src/services/dispatch/slice-dag.d.ts +0 -81
  354. package/dist/src/services/dispatch/test-tool-detection.d.ts +0 -36
  355. package/dist/src/services/dispatch/test-tool-detection.js +0 -46
  356. package/dist/src/services/feedback/feedback-promotion-service.js +0 -300
  357. package/dist/src/services/filesystem/file-lock.js +0 -129
  358. package/dist/src/services/ide/ide-registry.js +0 -60
  359. package/dist/src/services/ide/ide-types.d.ts +0 -230
  360. package/dist/src/services/job/job-progress-store.d.ts +0 -60
  361. package/dist/src/services/job/job-progress-store.js +0 -70
  362. package/dist/src/services/job/job-types.d.ts +0 -444
  363. package/dist/src/services/log/retention.d.ts +0 -34
  364. package/dist/src/services/log/retention.js +0 -78
  365. package/dist/src/services/memory/project-context-service.d.ts +0 -11
  366. package/dist/src/services/memory/project-context-service.js +0 -148
  367. package/dist/src/services/migrate-skill-name/schema.d.ts +0 -42
  368. package/dist/src/services/preferences/preferences-service.d.ts +0 -38
  369. package/dist/src/services/preferences/preferences-types.d.ts +0 -148
  370. package/dist/src/services/providers/minimax-provider-service.d.ts +0 -24
  371. package/dist/src/services/providers/minimax-provider-service.js +0 -143
  372. package/dist/src/services/providers/minimax-worker-service.d.ts +0 -21
  373. package/dist/src/services/providers/minimax-worker-service.js +0 -83
  374. package/dist/src/services/rd/rd-service.js +0 -438
  375. package/dist/src/services/rd/standards-diagnostic.d.ts +0 -76
  376. package/dist/src/services/rd/standards-diagnostic.js +0 -166
  377. package/dist/src/services/rd/types.d.ts +0 -252
  378. package/dist/src/services/recommendations/capability-seed-items.js +0 -140
  379. package/dist/src/services/recommendations/capability-seed-mappings.js +0 -54
  380. package/dist/src/services/recommendations/capability-seed-sources.js +0 -35
  381. package/dist/src/services/recommendations/recommendation-service.js +0 -106
  382. package/dist/src/services/refactor/refactor-service.d.ts +0 -9
  383. package/dist/src/services/scan/archetype-service.js +0 -242
  384. package/dist/src/services/scan/scan-types.d.ts +0 -59
  385. package/dist/src/services/signal/cancel-handler.js +0 -76
  386. package/dist/src/services/skill/resume-detector.js +0 -334
  387. package/dist/src/services/skillhub/release-import.js +0 -59
  388. package/dist/src/services/skillhub/release-retain.js +0 -89
  389. package/dist/src/services/skillhub/sqlite-store.js +0 -47
  390. package/dist/src/services/skillhub/types.d.ts +0 -105
  391. package/dist/src/services/skills/skill-presence-service.d.ts +0 -158
  392. package/dist/src/services/skills/skill-registry.d.ts +0 -17
  393. package/dist/src/services/skills/skill-registry.js +0 -67
  394. package/dist/src/services/solo/auto-compact-orchestrator.d.ts +0 -98
  395. package/dist/src/services/solo/auto-compact-orchestrator.js +0 -343
  396. package/dist/src/services/solo/dag-orchestrator.d.ts +0 -128
  397. package/dist/src/services/solo/dag-orchestrator.js +0 -304
  398. package/dist/src/services/solo/emit-handoff.d.ts +0 -49
  399. package/dist/src/services/solo/emit-handoff.js +0 -79
  400. package/dist/src/services/solo/job-shape-decision.d.ts +0 -71
  401. package/dist/src/services/solo/job-shape-decision.js +0 -151
  402. package/dist/src/services/solo/mode-gate.d.ts +0 -163
  403. package/dist/src/services/solo/mode-gate.js +0 -212
  404. package/dist/src/services/solo/post-compact-detector.d.ts +0 -61
  405. package/dist/src/services/solo/post-compact-detector.js +0 -240
  406. package/dist/src/services/solo/step-08-gate.d.ts +0 -90
  407. package/dist/src/services/solo/step-08-gate.js +0 -136
  408. package/dist/src/services/solo/user-touchpoint-classifier.d.ts +0 -44
  409. package/dist/src/services/solo/user-touchpoint-classifier.js +0 -145
  410. package/dist/src/services/standards/ide-aware-standards-service.js +0 -89
  411. package/dist/src/services/standards/migrate-claude-rules-service.js +0 -193
  412. package/dist/src/services/standards/missing-standards-detector.d.ts +0 -79
  413. package/dist/src/services/standards/missing-standards-detector.js +0 -132
  414. package/dist/src/services/standards/project-standards-service.js +0 -574
  415. package/dist/src/services/upgrade/1x-detector-service.js +0 -94
  416. package/dist/src/services/workflow/pipeline-verify-service.d.ts +0 -90
  417. package/dist/src/services/workflow/pipeline-verify-service.js +0 -449
  418. package/dist/src/services/workflow/workflow-autonomous-service.d.ts +0 -100
  419. package/dist/src/services/workflow/workflow-autonomous-service.js +0 -306
  420. package/dist/src/services/workflow/workflow-router-service.d.ts +0 -85
  421. package/dist/src/services/workflow/workflow-router-service.js +0 -227
  422. package/dist/src/services/workspace/claude-settings-template.d.ts +0 -101
  423. package/dist/src/services/workspace/claude-settings-template.js +0 -254
  424. package/dist/src/shared/version.d.ts +0 -1
  425. package/dist/src/shared/version.js +0 -1
  426. package/skills/peaks-code/references/openspec-workflow.md +0 -81
  427. /package/dist/{src/cli → cli}/commands/adapter-commands.d.ts +0 -0
  428. /package/dist/{src/cli → cli}/commands/adapter-commands.js +0 -0
  429. /package/dist/{src/cli → cli}/commands/audit-commands.d.ts +0 -0
  430. /package/dist/{src/cli → cli}/commands/capability-commands.d.ts +0 -0
  431. /package/dist/{src/cli → cli}/commands/capability-commands.js +0 -0
  432. /package/dist/{src/cli → cli}/commands/capability-worker-config-sc-commands.d.ts +0 -0
  433. /package/dist/{src/cli → cli}/commands/classify-classify-commands.d.ts +0 -0
  434. /package/dist/{src/cli → cli}/commands/classify-classify-commands.js +0 -0
  435. /package/dist/{src/cli → cli}/commands/code-review-commands.d.ts +0 -0
  436. /package/dist/{src/cli → cli}/commands/codegraph-commands.d.ts +0 -0
  437. /package/dist/{src/cli → cli}/commands/codegraph-commands.js +0 -0
  438. /package/dist/{src/cli → cli}/commands/compact-command.d.ts +0 -0
  439. /package/dist/{src/cli → cli}/commands/compact-command.js +0 -0
  440. /package/dist/{src/cli → cli}/commands/complexity-commands.d.ts +0 -0
  441. /package/dist/{src/cli → cli}/commands/complexity-commands.js +0 -0
  442. /package/dist/{src/cli → cli}/commands/config-commands.d.ts +0 -0
  443. /package/dist/{src/cli → cli}/commands/context-builder-commands.d.ts +0 -0
  444. /package/dist/{src/cli → cli}/commands/context-builder-commands.js +0 -0
  445. /package/dist/{src/cli → cli}/commands/context-commands.d.ts +0 -0
  446. /package/dist/{src/cli → cli}/commands/context-commands.js +0 -0
  447. /package/dist/{src/cli → cli}/commands/contract-commands.d.ts +0 -0
  448. /package/dist/{src/cli → cli}/commands/contract-commands.js +0 -0
  449. /package/dist/{src/cli → cli}/commands/core/artifacts-command.d.ts +0 -0
  450. /package/dist/{src/cli → cli}/commands/core/artifacts-command.js +0 -0
  451. /package/dist/{src/cli → cli}/commands/core/binding-commands.d.ts +0 -0
  452. /package/dist/{src/cli → cli}/commands/core/binding-commands.js +0 -0
  453. /package/dist/{src/cli → cli}/commands/core/doctor-command.d.ts +0 -0
  454. /package/dist/{src/cli → cli}/commands/core/doctor-command.js +0 -0
  455. /package/dist/{src/cli → cli}/commands/core/memory-command.d.ts +0 -0
  456. /package/dist/{src/cli → cli}/commands/core/memory-command.js +0 -0
  457. /package/dist/{src/cli → cli}/commands/core/profile-command.d.ts +0 -0
  458. /package/dist/{src/cli → cli}/commands/core/profile-command.js +0 -0
  459. /package/dist/{src/cli → cli}/commands/core/proxy-command.d.ts +0 -0
  460. /package/dist/{src/cli → cli}/commands/core/proxy-command.js +0 -0
  461. /package/dist/{src/cli → cli}/commands/core/session-command.d.ts +0 -0
  462. /package/dist/{src/cli → cli}/commands/core/session-command.js +0 -0
  463. /package/dist/{src/cli → cli}/commands/core/skill-command.d.ts +0 -0
  464. /package/dist/{src/cli → cli}/commands/core/standards-command.d.ts +0 -0
  465. /package/dist/{src/cli → cli}/commands/core/standards-command.js +0 -0
  466. /package/dist/{src/cli → cli}/commands/core-artifact-commands.d.ts +0 -0
  467. /package/dist/{src/cli → cli}/commands/core-artifact-commands.js +0 -0
  468. /package/dist/{src/cli → cli}/commands/dispatch-commands.d.ts +0 -0
  469. /package/dist/{src/cli → cli}/commands/dispatch-from-dag.d.ts +0 -0
  470. /package/dist/{src/cli → cli}/commands/doc-commands.d.ts +0 -0
  471. /package/dist/{src/cli → cli}/commands/doc-commands.js +0 -0
  472. /package/dist/{src/cli → cli}/commands/feedback-commands.d.ts +0 -0
  473. /package/dist/{src/cli → cli}/commands/feedback-commands.js +0 -0
  474. /package/dist/{src/cli → cli}/commands/final-review-commands.d.ts +0 -0
  475. /package/dist/{src/cli → cli}/commands/final-review-commands.js +0 -0
  476. /package/dist/{src/cli → cli}/commands/fixture-commands.d.ts +0 -0
  477. /package/dist/{src/cli → cli}/commands/fixture-commands.js +0 -0
  478. /package/dist/{src/cli → cli}/commands/fork-commands.d.ts +0 -0
  479. /package/dist/{src/cli → cli}/commands/fork-commands.js +0 -0
  480. /package/dist/{src/cli → cli}/commands/gate-commands.d.ts +0 -0
  481. /package/dist/{src/cli → cli}/commands/gate-commands.js +0 -0
  482. /package/dist/{src/cli → cli}/commands/heartbeat-commands.d.ts +0 -0
  483. /package/dist/{src/cli → cli}/commands/heartbeat-commands.js +0 -0
  484. /package/dist/{src/cli → cli}/commands/hook-handle.d.ts +0 -0
  485. /package/dist/{src/cli → cli}/commands/hooks-commands.d.ts +0 -0
  486. /package/dist/{src/cli → cli}/commands/hooks-commands.js +0 -0
  487. /package/dist/{src/cli → cli}/commands/impact-commands.d.ts +0 -0
  488. /package/dist/{src/cli → cli}/commands/impact-commands.js +0 -0
  489. /package/dist/{src/cli → cli}/commands/job-commands.d.ts +0 -0
  490. /package/dist/{src/cli → cli}/commands/legacy-commands.d.ts +0 -0
  491. /package/dist/{src/cli → cli}/commands/legacy-commands.js +0 -0
  492. /package/dist/{src/cli → cli}/commands/log-commands.d.ts +0 -0
  493. /package/dist/{src/cli → cli}/commands/log-commands.js +0 -0
  494. /package/dist/{src/cli → cli}/commands/loop-eval-commands.d.ts +0 -0
  495. /package/dist/{src/cli → cli}/commands/loop-eval-commands.js +0 -0
  496. /package/dist/{src/cli → cli}/commands/memory-commands.d.ts +0 -0
  497. /package/dist/{src/cli → cli}/commands/memory-commands.js +0 -0
  498. /package/dist/{src/cli → cli}/commands/migrate-1-4-1-command.d.ts +0 -0
  499. /package/dist/{src/cli → cli}/commands/migrate-1-4-1-command.js +0 -0
  500. /package/dist/{src/cli → cli}/commands/migrate-v2-10-to-v2-11-command.d.ts +0 -0
  501. /package/dist/{src/cli → cli}/commands/migrate-v2-10-to-v2-11-command.js +0 -0
  502. /package/dist/{src/cli → cli}/commands/mut-commands.d.ts +0 -0
  503. /package/dist/{src/cli → cli}/commands/mut-commands.js +0 -0
  504. /package/dist/{src/cli → cli}/commands/observability-commands.d.ts +0 -0
  505. /package/dist/{src/cli → cli}/commands/observability-commands.js +0 -0
  506. /package/dist/{src/cli → cli}/commands/openspec-commands.d.ts +0 -0
  507. /package/dist/{src/cli → cli}/commands/openspec-commands.js +0 -0
  508. /package/dist/{src/cli → cli}/commands/perf-audit-commands.d.ts +0 -0
  509. /package/dist/{src/cli → cli}/commands/perf-commands.d.ts +0 -0
  510. /package/dist/{src/cli → cli}/commands/perf-commands.js +0 -0
  511. /package/dist/{src/cli → cli}/commands/playwright-commands.d.ts +0 -0
  512. /package/dist/{src/cli → cli}/commands/playwright-commands.js +0 -0
  513. /package/dist/{src/cli → cli}/commands/prd-blocks-commands.d.ts +0 -0
  514. /package/dist/{src/cli → cli}/commands/prd-blocks-commands.js +0 -0
  515. /package/dist/{src/cli → cli}/commands/prd-commands.d.ts +0 -0
  516. /package/dist/{src/cli → cli}/commands/preferences-commands.d.ts +0 -0
  517. /package/dist/{src/cli → cli}/commands/preferences-commands.js +0 -0
  518. /package/dist/{src/cli → cli}/commands/project-commands.d.ts +0 -0
  519. /package/dist/{src/cli → cli}/commands/qa-business-review-commands.d.ts +0 -0
  520. /package/dist/{src/cli → cli}/commands/qa-business-review-commands.js +0 -0
  521. /package/dist/{src/cli → cli}/commands/qa-commands.d.ts +0 -0
  522. /package/dist/{src/cli → cli}/commands/release-commands.d.ts +0 -0
  523. /package/dist/{src/cli → cli}/commands/release-commands.js +0 -0
  524. /package/dist/{src/cli → cli}/commands/request-commands.d.ts +0 -0
  525. /package/dist/{src/cli → cli}/commands/request-commands.js +0 -0
  526. /package/dist/{src/cli → cli}/commands/retrospective-commands.d.ts +0 -0
  527. /package/dist/{src/cli → cli}/commands/retrospective-commands.js +0 -0
  528. /package/dist/{src/cli → cli}/commands/reviewer-commands.d.ts +0 -0
  529. /package/dist/{src/cli → cli}/commands/reviewer-commands.js +0 -0
  530. /package/dist/{src/cli → cli}/commands/role-commands.d.ts +0 -0
  531. /package/dist/{src/cli → cli}/commands/role-commands.js +0 -0
  532. /package/dist/{src/cli → cli}/commands/sc-commands.d.ts +0 -0
  533. /package/dist/{src/cli → cli}/commands/scan-commands.d.ts +0 -0
  534. /package/dist/{src/cli → cli}/commands/scan-commands.js +0 -0
  535. /package/dist/{src/cli → cli}/commands/security-audit-commands.d.ts +0 -0
  536. /package/dist/{src/cli → cli}/commands/sediment-commands.d.ts +0 -0
  537. /package/dist/{src/cli → cli}/commands/session-auto-compact-hook-command.d.ts +0 -0
  538. /package/dist/{src/cli → cli}/commands/session-checkpoint-command.d.ts +0 -0
  539. /package/dist/{src/cli → cli}/commands/session-checkpoint-command.js +0 -0
  540. /package/dist/{src/cli → cli}/commands/session-migrate-skill-name.d.ts +0 -0
  541. /package/dist/{src/cli → cli}/commands/session-migrate-skill-name.js +0 -0
  542. /package/dist/{src/cli → cli}/commands/session-resume-command.d.ts +0 -0
  543. /package/dist/{src/cli → cli}/commands/session-resume-command.js +0 -0
  544. /package/dist/{src/cli → cli}/commands/share-commands.d.ts +0 -0
  545. /package/dist/{src/cli → cli}/commands/share-commands.js +0 -0
  546. /package/dist/{src/cli → cli}/commands/skill-conformance-commands.d.ts +0 -0
  547. /package/dist/{src/cli → cli}/commands/skill-conformance-commands.js +0 -0
  548. /package/dist/{src/cli → cli}/commands/skill-visibility.d.ts +0 -0
  549. /package/dist/{src/cli → cli}/commands/skill-visibility.js +0 -0
  550. /package/dist/{src/cli → cli}/commands/slice-commands.d.ts +0 -0
  551. /package/dist/{src/cli → cli}/commands/slice-commands.js +0 -0
  552. /package/dist/{src/cli → cli}/commands/slice-integrate-commands.d.ts +0 -0
  553. /package/dist/{src/cli → cli}/commands/slice-integrate-commands.js +0 -0
  554. /package/dist/{src/cli → cli}/commands/slice-review-commands.d.ts +0 -0
  555. /package/dist/{src/cli → cli}/commands/slice-review-commands.js +0 -0
  556. /package/dist/{src/cli → cli}/commands/smoke-commands.d.ts +0 -0
  557. /package/dist/{src/cli → cli}/commands/smoke-commands.js +0 -0
  558. /package/dist/{src/cli → cli}/commands/sop-commands.d.ts +0 -0
  559. /package/dist/{src/cli → cli}/commands/sop-commands.js +0 -0
  560. /package/dist/{src/cli → cli}/commands/statusline-commands.d.ts +0 -0
  561. /package/dist/{src/cli → cli}/commands/statusline-commands.js +0 -0
  562. /package/dist/{src/cli → cli}/commands/sub-agent-commands.d.ts +0 -0
  563. /package/dist/{src/cli → cli}/commands/sub-agent-commands.js +0 -0
  564. /package/dist/{src/cli → cli}/commands/sub-agent-dispatch-guard.d.ts +0 -0
  565. /package/dist/{src/cli → cli}/commands/sub-agent-dispatch-guard.js +0 -0
  566. /package/dist/{src/cli → cli}/commands/sub-agent-shared.js +0 -0
  567. /package/dist/{src/cli → cli}/commands/test-commands.d.ts +0 -0
  568. /package/dist/{src/cli → cli}/commands/test-commands.js +0 -0
  569. /package/dist/{src/cli → cli}/commands/understand-commands.d.ts +0 -0
  570. /package/dist/{src/cli → cli}/commands/understand-commands.js +0 -0
  571. /package/dist/{src/cli → cli}/commands/upgrade-commands.d.ts +0 -0
  572. /package/dist/{src/cli → cli}/commands/verdict-aggregate-command.d.ts +0 -0
  573. /package/dist/{src/cli → cli}/commands/verdict-aggregate-command.js +0 -0
  574. /package/dist/{src/cli → cli}/commands/workflow-commands.d.ts +0 -0
  575. /package/dist/{src/cli → cli}/commands/workflow-plan-commands.d.ts +0 -0
  576. /package/dist/{src/cli → cli}/commands/workflow-plan-commands.js +0 -0
  577. /package/dist/{src/cli → cli}/commands/workspace/clean-command.d.ts +0 -0
  578. /package/dist/{src/cli → cli}/commands/workspace/clean-command.js +0 -0
  579. /package/dist/{src/cli → cli}/commands/workspace/helpers.d.ts +0 -0
  580. /package/dist/{src/cli → cli}/commands/workspace/helpers.js +0 -0
  581. /package/dist/{src/cli → cli}/commands/workspace/migrate-command.d.ts +0 -0
  582. /package/dist/{src/cli → cli}/commands/workspace/migrate-command.js +0 -0
  583. /package/dist/{src/cli → cli}/commands/workspace/reconcile-command.d.ts +0 -0
  584. /package/dist/{src/cli → cli}/commands/workspace/reconcile-command.js +0 -0
  585. /package/dist/{src/cli → cli}/commands/workspace-commands.d.ts +0 -0
  586. /package/dist/{src/cli → cli}/commands/workspace-commands.js +0 -0
  587. /package/dist/{src/cli → cli}/index.d.ts +0 -0
  588. /package/dist/{src/cli → cli}/index.js +0 -0
  589. /package/dist/{src/cli → cli}/program.d.ts +0 -0
  590. /package/dist/{src/hooks → hooks}/pre-tool-use-sub-agent.d.ts +0 -0
  591. /package/dist/{src/hooks → hooks}/pre-tool-use-sub-agent.js +0 -0
  592. /package/dist/{src/lib → lib}/render/message-renderer.d.ts +0 -0
  593. /package/dist/{src/lib → lib}/render/message-renderer.js +0 -0
  594. /package/dist/{src/services → services}/adapter/adapter.d.ts +0 -0
  595. /package/dist/{src/services → services}/adapter/adapter.js +0 -0
  596. /package/dist/{src/services → services}/adapter/auto-adapter.d.ts +0 -0
  597. /package/dist/{src/services → services}/adapter/auto-adapter.js +0 -0
  598. /package/dist/{src/services → services}/adapter/claude-adapter.d.ts +0 -0
  599. /package/dist/{src/services → services}/adapter/claude-adapter.js +0 -0
  600. /package/dist/{src/services → services}/adapter/codex-adapter.d.ts +0 -0
  601. /package/dist/{src/services → services}/adapter/codex-adapter.js +0 -0
  602. /package/dist/{src/services → services}/adapter/copilot-adapter.d.ts +0 -0
  603. /package/dist/{src/services → services}/adapter/copilot-adapter.js +0 -0
  604. /package/dist/{src/services → services}/artifacts/artifact-lint-service.d.ts +0 -0
  605. /package/dist/{src/services → services}/artifacts/artifact-lint-service.js +0 -0
  606. /package/dist/{src/services → services}/artifacts/artifact-prerequisites.d.ts +0 -0
  607. /package/dist/{src/services → services}/artifacts/artifact-prerequisites.js +0 -0
  608. /package/dist/{src/services → services}/artifacts/artifact-service.d.ts +0 -0
  609. /package/dist/{src/services → services}/artifacts/artifact-service.js +0 -0
  610. /package/dist/{src/services → services}/artifacts/artifact-templates.d.ts +0 -0
  611. /package/dist/{src/services → services}/artifacts/artifact-templates.js +0 -0
  612. /package/dist/{src/services → services}/artifacts/repair-cycle-service.d.ts +0 -0
  613. /package/dist/{src/services → services}/artifacts/request-artifact-service.d.ts +0 -0
  614. /package/dist/{src/services → services}/artifacts/request-artifact-service.js +0 -0
  615. /package/dist/{src/services → services}/artifacts/request-artifact-state-helpers.d.ts +0 -0
  616. /package/dist/{src/services → services}/artifacts/request-artifact-state-helpers.js +0 -0
  617. /package/dist/{src/services → services}/artifacts/workspace-service.d.ts +0 -0
  618. /package/dist/{src/services → services}/artifacts/workspace-service.js +0 -0
  619. /package/dist/{src/services → services}/audit/artifact-writer.d.ts +0 -0
  620. /package/dist/{src/services → services}/audit/artifact-writer.js +0 -0
  621. /package/dist/{src/services → services}/audit/audit-goal-service.d.ts +0 -0
  622. /package/dist/{src/services → services}/audit/audit-goal-service.js +0 -0
  623. /package/dist/{src/services → services}/audit/audit-goal-types.d.ts +0 -0
  624. /package/dist/{src/services → services}/audit/audit-goal-types.js +0 -0
  625. /package/dist/{src/services → services}/audit/backing-detector.d.ts +0 -0
  626. /package/dist/{src/services → services}/audit/backing-detector.js +0 -0
  627. /package/dist/{src/services → services}/audit/classifier.d.ts +0 -0
  628. /package/dist/{src/services → services}/audit/classifier.js +0 -0
  629. /package/dist/{src/services → services}/audit/decision-writer.d.ts +0 -0
  630. /package/dist/{src/services → services}/audit/decision-writer.js +0 -0
  631. /package/dist/{src/services → services}/audit/enforcers/design-draft-confirm.d.ts +0 -0
  632. /package/dist/{src/services → services}/audit/enforcers/design-draft-confirm.js +0 -0
  633. /package/dist/{src/services → services}/audit/enforcers/lint-audit-regression.d.ts +0 -0
  634. /package/dist/{src/services → services}/audit/enforcers/lint-audit-regression.js +0 -0
  635. /package/dist/{src/services → services}/audit/enforcers/lint-catalog-governance.d.ts +0 -0
  636. /package/dist/{src/services → services}/audit/enforcers/lint-catalog-governance.js +0 -0
  637. /package/dist/{src/services → services}/audit/enforcers/lint-cli-back.d.ts +0 -0
  638. /package/dist/{src/services → services}/audit/enforcers/lint-cli-back.js +0 -0
  639. /package/dist/{src/services → services}/audit/enforcers/lint-output-style.d.ts +0 -0
  640. /package/dist/{src/services → services}/audit/enforcers/lint-output-style.js +0 -0
  641. /package/dist/{src/services → services}/audit/enforcers/lint-reference-integrity.d.ts +0 -0
  642. /package/dist/{src/services → services}/audit/enforcers/lint-reference-integrity.js +0 -0
  643. /package/dist/{src/services → services}/audit/enforcers/lint-reference-shape.d.ts +0 -0
  644. /package/dist/{src/services → services}/audit/enforcers/lint-reference-shape.js +0 -0
  645. /package/dist/{src/services → services}/audit/enforcers/lint-style.d.ts +0 -0
  646. /package/dist/{src/services → services}/audit/enforcers/lint-style.js +0 -0
  647. /package/dist/{src/services → services}/audit/enforcers/lint-workflow-shape.d.ts +0 -0
  648. /package/dist/{src/services → services}/audit/enforcers/lint-workflow-shape.js +0 -0
  649. /package/dist/{src/services → services}/audit/enforcers/login-gate.d.ts +0 -0
  650. /package/dist/{src/services → services}/audit/enforcers/login-gate.js +0 -0
  651. /package/dist/{src/services → services}/audit/enforcers/mock-placement.d.ts +0 -0
  652. /package/dist/{src/services → services}/audit/enforcers/mock-placement.js +0 -0
  653. /package/dist/{src/services → services}/audit/enforcers/no-root-pollution.d.ts +0 -0
  654. /package/dist/{src/services → services}/audit/enforcers/no-root-pollution.js +0 -0
  655. /package/dist/{src/services → services}/audit/enforcers/pre-rd-scan.d.ts +0 -0
  656. /package/dist/{src/services → services}/audit/enforcers/pre-rd-scan.js +0 -0
  657. /package/dist/{src/services → services}/audit/enforcers/prototype-fidelity.d.ts +0 -0
  658. /package/dist/{src/services → services}/audit/enforcers/prototype-fidelity.js +0 -0
  659. /package/dist/{src/services → services}/audit/enforcers/resume-detection.d.ts +0 -0
  660. /package/dist/{src/services → services}/audit/enforcers/resume-detection.js +0 -0
  661. /package/dist/{src/services → services}/audit/enforcers/sub-agent-sid.d.ts +0 -0
  662. /package/dist/{src/services → services}/audit/enforcers/sub-agent-sid.js +0 -0
  663. /package/dist/{src/services → services}/audit/prose-ratio-calculator.d.ts +0 -0
  664. /package/dist/{src/services → services}/audit/prose-ratio-calculator.js +0 -0
  665. /package/dist/{src/services → services}/audit/red-line-catalog-p2-a.d.ts +0 -0
  666. /package/dist/{src/services → services}/audit/red-line-catalog-p2-a.js +0 -0
  667. /package/dist/{src/services → services}/audit/red-line-catalog-p2-b.d.ts +0 -0
  668. /package/dist/{src/services → services}/audit/red-line-catalog-p2-b.js +0 -0
  669. /package/dist/{src/services → services}/audit/red-lines-service.d.ts +0 -0
  670. /package/dist/{src/services → services}/audit/red-lines-service.js +0 -0
  671. /package/dist/{src/services → services}/audit/scanners/openspec-scanner.d.ts +0 -0
  672. /package/dist/{src/services → services}/audit/scanners/openspec-scanner.js +0 -0
  673. /package/dist/{src/services → services}/audit/scanners/rules-tree-scanner.d.ts +0 -0
  674. /package/dist/{src/services → services}/audit/scanners/rules-tree-scanner.js +0 -0
  675. /package/dist/{src/services → services}/audit/scanners/skills-tree-scanner.d.ts +0 -0
  676. /package/dist/{src/services → services}/audit/scanners/skills-tree-scanner.js +0 -0
  677. /package/dist/{src/services → services}/audit/types.js +0 -0
  678. /package/dist/{src/services → services}/audit-independent/perf-audit-service.d.ts +0 -0
  679. /package/dist/{src/services → services}/audit-independent/perf-audit-service.js +0 -0
  680. /package/dist/{src/services → services}/audit-independent/security-audit-service.d.ts +0 -0
  681. /package/dist/{src/services → services}/audit-independent/security-audit-service.js +0 -0
  682. /package/dist/{src/services → services}/classify/classify-service.d.ts +0 -0
  683. /package/dist/{src/services → services}/classify/classify-service.js +0 -0
  684. /package/dist/{src/services → services}/classify/classify-types.d.ts +0 -0
  685. /package/dist/{src/services → services}/classify/classify-types.js +0 -0
  686. /package/dist/{src/services/solo → services/code}/batch-heartbeat-poller.d.ts +0 -0
  687. /package/dist/{src/services/solo → services/code}/batch-heartbeat-poller.js +0 -0
  688. /package/dist/{src/services/solo → services/code}/status-line-renderer.d.ts +0 -0
  689. /package/dist/{src/services/solo → services/code}/status-line-renderer.js +0 -0
  690. /package/dist/{src/services → services}/code-review/ecc-bridge.d.ts +0 -0
  691. /package/dist/{src/services → services}/code-review/ecc-bridge.js +0 -0
  692. /package/dist/{src/services → services}/code-review/ocr-service.d.ts +0 -0
  693. /package/dist/{src/services → services}/code-review/ocr-service.js +0 -0
  694. /package/dist/{src/services → services}/codegraph/codegraph-process-runner.d.ts +0 -0
  695. /package/dist/{src/services → services}/codegraph/codegraph-process-runner.js +0 -0
  696. /package/dist/{src/services → services}/codegraph/codegraph-service.d.ts +0 -0
  697. /package/dist/{src/services → services}/codegraph/codegraph-service.js +0 -0
  698. /package/dist/{src/services → services}/compact/decision-tables.d.ts +0 -0
  699. /package/dist/{src/services → services}/compact/decision-tables.js +0 -0
  700. /package/dist/{src/services → services}/compact/request-transition-hook.d.ts +0 -0
  701. /package/dist/{src/services → services}/compact/request-transition-hook.js +0 -0
  702. /package/dist/{src/services → services}/compact/suggest-service.d.ts +0 -0
  703. /package/dist/{src/services → services}/compact/suggest-service.js +0 -0
  704. /package/dist/{src/services → services}/complexity/complexity-estimator.d.ts +0 -0
  705. /package/dist/{src/services → services}/complexity/complexity-estimator.js +0 -0
  706. /package/dist/{src/services → services}/config/config-migration.d.ts +0 -0
  707. /package/dist/{src/services → services}/config/config-migration.js +0 -0
  708. /package/dist/{src/services → services}/config/config-restore.d.ts +0 -0
  709. /package/dist/{src/services → services}/config/config-restore.js +0 -0
  710. /package/dist/{src/services → services}/config/config-rollback.d.ts +0 -0
  711. /package/dist/{src/services → services}/config/config-rollback.js +0 -0
  712. /package/dist/{src/services → services}/config/config-safety.d.ts +0 -0
  713. /package/dist/{src/services → services}/config/config-safety.js +0 -0
  714. /package/dist/{src/services → services}/config/config-types.js +0 -0
  715. /package/dist/{src/services → services}/config/proxy-service.d.ts +0 -0
  716. /package/dist/{src/services → services}/config/proxy-service.js +0 -0
  717. /package/dist/{src/services → services}/config/sidecar-store.d.ts +0 -0
  718. /package/dist/{src/services → services}/config/sidecar-store.js +0 -0
  719. /package/dist/{src/services → services}/config/workspace-state-service.d.ts +0 -0
  720. /package/dist/{src/services → services}/config/workspace-state-service.js +0 -0
  721. /package/dist/{src/services → services}/context/artifact-meta.d.ts +0 -0
  722. /package/dist/{src/services → services}/context/artifact-meta.js +0 -0
  723. /package/dist/{src/services → services}/context/auto-compact-reader.d.ts +0 -0
  724. /package/dist/{src/services → services}/context/auto-compact-reader.js +0 -0
  725. /package/dist/{src/services → services}/context/auto-compact-types.js +0 -0
  726. /package/dist/{src/services → services}/context/collector.d.ts +0 -0
  727. /package/dist/{src/services → services}/context/collector.js +0 -0
  728. /package/dist/{src/services → services}/context/context-builder.d.ts +0 -0
  729. /package/dist/{src/services → services}/context/context-builder.js +0 -0
  730. /package/dist/{src/services → services}/context/context-guard.d.ts +0 -0
  731. /package/dist/{src/services → services}/context/context-guard.js +0 -0
  732. /package/dist/{src/services → services}/context/context-schema.js +0 -0
  733. /package/dist/{src/services → services}/context/dispatch-context-guard.d.ts +0 -0
  734. /package/dist/{src/services → services}/context/dispatch-context-guard.js +0 -0
  735. /package/dist/{src/services → services}/context/doc-retriever.d.ts +0 -0
  736. /package/dist/{src/services → services}/context/doc-retriever.js +0 -0
  737. /package/dist/{src/services → services}/context/headroom-client.d.ts +0 -0
  738. /package/dist/{src/services → services}/context/headroom-client.js +0 -0
  739. /package/dist/{src/services → services}/context/headroom-fetcher.d.ts +0 -0
  740. /package/dist/{src/services → services}/context/headroom-fetcher.js +0 -0
  741. /package/dist/{src/services → services}/context/headroom-prefs.d.ts +0 -0
  742. /package/dist/{src/services → services}/context/headroom-prefs.js +0 -0
  743. /package/dist/{src/services → services}/context/index.d.ts +0 -0
  744. /package/dist/{src/services → services}/context/index.js +0 -0
  745. /package/dist/{src/services → services}/context/main-session-monitor.d.ts +0 -0
  746. /package/dist/{src/services → services}/context/main-session-monitor.js +0 -0
  747. /package/dist/{src/services → services}/context/renderer.d.ts +0 -0
  748. /package/dist/{src/services → services}/context/renderer.js +0 -0
  749. /package/dist/{src/services → services}/context/shared-channel.d.ts +0 -0
  750. /package/dist/{src/services → services}/context/shared-channel.js +0 -0
  751. /package/dist/{src/services → services}/context/threshold.d.ts +0 -0
  752. /package/dist/{src/services → services}/context/threshold.js +0 -0
  753. /package/dist/{src/services → services}/context/tokenizer.d.ts +0 -0
  754. /package/dist/{src/services → services}/context/tokenizer.js +0 -0
  755. /package/dist/{src/services → services}/context/types.d.ts +0 -0
  756. /package/dist/{src/services → services}/context/types.js +0 -0
  757. /package/dist/{src/services → services}/dashboard/project-dashboard-service.d.ts +0 -0
  758. /package/dist/{src/services → services}/dashboard/project-dashboard-service.js +0 -0
  759. /package/dist/{src/services → services}/dispatch/batch-counter.d.ts +0 -0
  760. /package/dist/{src/services → services}/dispatch/batch-counter.js +0 -0
  761. /package/dist/{src/services → services}/dispatch/contract-store.d.ts +0 -0
  762. /package/dist/{src/services → services}/dispatch/contract-store.js +0 -0
  763. /package/dist/{src/services → services}/dispatch/dispatch-record-writer.d.ts +0 -0
  764. /package/dist/{src/services → services}/dispatch/dispatch-record-writer.js +0 -0
  765. /package/dist/{src/services → services}/dispatch/heartbeat-truncator.d.ts +0 -0
  766. /package/dist/{src/services → services}/dispatch/heartbeat-truncator.js +0 -0
  767. /package/dist/{src/services → services}/dispatch/leak-detector.d.ts +0 -0
  768. /package/dist/{src/services → services}/dispatch/leak-detector.js +0 -0
  769. /package/dist/{src/services → services}/dispatch/slice-dag.js +0 -0
  770. /package/dist/{src/services → services}/dispatch/sub-agent-dispatcher.d.ts +0 -0
  771. /package/dist/{src/services → services}/dispatch/sub-agent-dispatcher.js +0 -0
  772. /package/dist/{src/services → services}/doc/doc-generator.d.ts +0 -0
  773. /package/dist/{src/services → services}/doc/doc-generator.js +0 -0
  774. /package/dist/{src/services → services}/doctor/doctor-service.d.ts +0 -0
  775. /package/dist/{src/services → services}/doctor/doctor-service.js +0 -0
  776. /package/dist/{src/services → services}/feedback/feedback-promotion-service.d.ts +0 -0
  777. /package/dist/{src/services → services}/filesystem/file-lock.d.ts +0 -0
  778. /package/dist/{src/services → services}/final-review/final-review-service.d.ts +0 -0
  779. /package/dist/{src/services → services}/final-review/final-review-service.js +0 -0
  780. /package/dist/{src/services → services}/final-review/final-review-types.d.ts +0 -0
  781. /package/dist/{src/services → services}/final-review/final-review-types.js +0 -0
  782. /package/dist/{src/services → services}/fixture/fixture-capture-service.d.ts +0 -0
  783. /package/dist/{src/services → services}/fixture/fixture-capture-service.js +0 -0
  784. /package/dist/{src/services → services}/fixture/fixture-sanitize-service.d.ts +0 -0
  785. /package/dist/{src/services → services}/fixture/fixture-sanitize-service.js +0 -0
  786. /package/dist/{src/services → services}/fixture/index.d.ts +0 -0
  787. /package/dist/{src/services → services}/fixture/index.js +0 -0
  788. /package/dist/{src/services → services}/fork/fork-sync-state.d.ts +0 -0
  789. /package/dist/{src/services → services}/fork/fork-sync-state.js +0 -0
  790. /package/dist/{src/services → services}/fuzzy-matching/fuzzy-match-service.d.ts +0 -0
  791. /package/dist/{src/services → services}/fuzzy-matching/fuzzy-match-service.js +0 -0
  792. /package/dist/{src/services → services}/fuzzy-matching/fzf-pick-service.d.ts +0 -0
  793. /package/dist/{src/services → services}/fuzzy-matching/fzf-pick-service.js +0 -0
  794. /package/dist/{src/services → services}/fuzzy-matching/types.d.ts +0 -0
  795. /package/dist/{src/services → services}/fuzzy-matching/types.js +0 -0
  796. /package/dist/{src/services → services}/handoff/handoff-parser.d.ts +0 -0
  797. /package/dist/{src/services → services}/handoff/handoff-parser.js +0 -0
  798. /package/dist/{src/services → services}/handoff/handoff-types.d.ts +0 -0
  799. /package/dist/{src/services → services}/handoff/handoff-types.js +0 -0
  800. /package/dist/{src/services → services}/handoff/handoff-writer.d.ts +0 -0
  801. /package/dist/{src/services → services}/handoff/handoff-writer.js +0 -0
  802. /package/dist/{src/services → services}/hooks/auto-compact-hook-install.d.ts +0 -0
  803. /package/dist/{src/services → services}/hooks/auto-compact-hook-install.js +0 -0
  804. /package/dist/{src/services → services}/hooks/output.d.ts +0 -0
  805. /package/dist/{src/services → services}/hooks/output.js +0 -0
  806. /package/dist/{src/services → services}/hooks/presence-marker-detector.d.ts +0 -0
  807. /package/dist/{src/services → services}/hooks/presence-marker-detector.js +0 -0
  808. /package/dist/{src/services → services}/ide/adapters/claude-code-adapter.d.ts +0 -0
  809. /package/dist/{src/services → services}/ide/adapters/claude-code-adapter.js +0 -0
  810. /package/dist/{src/services → services}/ide/adapters/codex-adapter.d.ts +0 -0
  811. /package/dist/{src/services → services}/ide/adapters/codex-adapter.js +0 -0
  812. /package/dist/{src/services → services}/ide/adapters/cursor-adapter.d.ts +0 -0
  813. /package/dist/{src/services → services}/ide/adapters/cursor-adapter.js +0 -0
  814. /package/dist/{src/services → services}/ide/adapters/hermes-adapter.d.ts +0 -0
  815. /package/dist/{src/services → services}/ide/adapters/hermes-adapter.js +0 -0
  816. /package/dist/{src/services → services}/ide/adapters/openclaw-adapter.d.ts +0 -0
  817. /package/dist/{src/services → services}/ide/adapters/openclaw-adapter.js +0 -0
  818. /package/dist/{src/services → services}/ide/adapters/trae-adapter.d.ts +0 -0
  819. /package/dist/{src/services → services}/ide/adapters/trae-adapter.js +0 -0
  820. /package/dist/{src/services → services}/ide/hook-protocol.d.ts +0 -0
  821. /package/dist/{src/services → services}/ide/hook-protocol.js +0 -0
  822. /package/dist/{src/services → services}/ide/hook-translator.d.ts +0 -0
  823. /package/dist/{src/services → services}/ide/hook-translator.js +0 -0
  824. /package/dist/{src/services → services}/ide/ide-detector.d.ts +0 -0
  825. /package/dist/{src/services → services}/ide/ide-detector.js +0 -0
  826. /package/dist/{src/services → services}/ide/ide-registry.d.ts +0 -0
  827. /package/dist/{src/services → services}/ide/ide-types.js +0 -0
  828. /package/dist/{src/services → services}/ide/resource-profile.d.ts +0 -0
  829. /package/dist/{src/services → services}/ide/resource-profile.js +0 -0
  830. /package/dist/{src/services → services}/ide/shared/atomic-json.d.ts +0 -0
  831. /package/dist/{src/services → services}/ide/shared/atomic-json.js +0 -0
  832. /package/dist/{src/services → services}/ide/shared/safe-path.d.ts +0 -0
  833. /package/dist/{src/services → services}/ide/shared/safe-path.js +0 -0
  834. /package/dist/{src/services → services}/impact/impact-scan-service.d.ts +0 -0
  835. /package/dist/{src/services → services}/impact/impact-scan-service.js +0 -0
  836. /package/dist/{src/services → services}/job/job-event-emitter.d.ts +0 -0
  837. /package/dist/{src/services → services}/job/job-event-emitter.js +0 -0
  838. /package/dist/{src/services → services}/job/job-orchestrator.d.ts +0 -0
  839. /package/dist/{src/services → services}/job/job-orchestrator.js +0 -0
  840. /package/dist/{src/services → services}/job/job-resource-snapshot.d.ts +0 -0
  841. /package/dist/{src/services → services}/job/job-resource-snapshot.js +0 -0
  842. /package/dist/{src/services → services}/job/job-rotation.d.ts +0 -0
  843. /package/dist/{src/services → services}/job/job-rotation.js +0 -0
  844. /package/dist/{src/services → services}/job/job-state-store.d.ts +0 -0
  845. /package/dist/{src/services → services}/job/job-state-store.js +0 -0
  846. /package/dist/{src/services → services}/job/job-types.js +0 -0
  847. /package/dist/{src/services → services}/job/subagent-job-wrapper.d.ts +0 -0
  848. /package/dist/{src/services → services}/job/subagent-job-wrapper.js +0 -0
  849. /package/dist/{src/services → services}/legacy/legacy-detector.d.ts +0 -0
  850. /package/dist/{src/services → services}/legacy/legacy-detector.js +0 -0
  851. /package/dist/{src/services → services}/log/log-commands-service.d.ts +0 -0
  852. /package/dist/{src/services → services}/log/log-commands-service.js +0 -0
  853. /package/dist/{src/services → services}/log/logger.d.ts +0 -0
  854. /package/dist/{src/services → services}/log/logger.js +0 -0
  855. /package/dist/{src/services → services}/log/redact.d.ts +0 -0
  856. /package/dist/{src/services → services}/log/redact.js +0 -0
  857. /package/dist/{src/services → services}/loop/evaluator-dispatcher.d.ts +0 -0
  858. /package/dist/{src/services → services}/loop/evaluator-dispatcher.js +0 -0
  859. /package/dist/{src/services → services}/loop/monotonic-guard.d.ts +0 -0
  860. /package/dist/{src/services → services}/loop/monotonic-guard.js +0 -0
  861. /package/dist/{src/services → services}/loop/monotonic-runner.d.ts +0 -0
  862. /package/dist/{src/services → services}/loop/monotonic-runner.js +0 -0
  863. /package/dist/{src/services → services}/loop/run-driver.d.ts +0 -0
  864. /package/dist/{src/services → services}/loop/run-driver.js +0 -0
  865. /package/dist/{src/services → services}/loop/spec-service.d.ts +0 -0
  866. /package/dist/{src/services → services}/loop/spec-service.js +0 -0
  867. /package/dist/{src/services → services}/memory/llm-reranker.d.ts +0 -0
  868. /package/dist/{src/services → services}/memory/llm-reranker.js +0 -0
  869. /package/dist/{src/services → services}/memory/memory-search-service.d.ts +0 -0
  870. /package/dist/{src/services → services}/memory/memory-search-service.js +0 -0
  871. /package/dist/{src/services → services}/memory/project-memory-service.d.ts +0 -0
  872. /package/dist/{src/services → services}/memory/project-memory-service.js +0 -0
  873. /package/dist/{src/services → services}/migrate-skill-name/migrate.d.ts +0 -0
  874. /package/dist/{src/services → services}/migrate-skill-name/migrate.js +0 -0
  875. /package/dist/{src/services → services}/migrate-skill-name/schema.js +0 -0
  876. /package/dist/{src/services → services}/migration/v2-10-to-v2-11-service.d.ts +0 -0
  877. /package/dist/{src/services → services}/migration/v2-10-to-v2-11-service.js +0 -0
  878. /package/dist/{src/services → services}/migration/v2-10-to-v2-11-types.d.ts +0 -0
  879. /package/dist/{src/services → services}/migration/v2-10-to-v2-11-types.js +0 -0
  880. /package/dist/{src/services → services}/mode/bypass-tracker.d.ts +0 -0
  881. /package/dist/{src/services → services}/mode/bypass-tracker.js +0 -0
  882. /package/dist/{src/services → services}/mode/mode-enforcement.d.ts +0 -0
  883. /package/dist/{src/services → services}/mode/mode-enforcement.js +0 -0
  884. /package/dist/{src/services → services}/mut/assert-scanner.d.ts +0 -0
  885. /package/dist/{src/services → services}/mut/assert-scanner.js +0 -0
  886. /package/dist/{src/services → services}/mut/index.d.ts +0 -0
  887. /package/dist/{src/services → services}/mut/index.js +0 -0
  888. /package/dist/{src/services → services}/mut/mut-runner.d.ts +0 -0
  889. /package/dist/{src/services → services}/mut/mut-runner.js +0 -0
  890. /package/dist/{src/services → services}/mut/production-stryker.d.ts +0 -0
  891. /package/dist/{src/services → services}/mut/production-stryker.js +0 -0
  892. /package/dist/{src/services → services}/mut/report-builder.d.ts +0 -0
  893. /package/dist/{src/services → services}/mut/report-builder.js +0 -0
  894. /package/dist/{src/services → services}/mut/report-loader.d.ts +0 -0
  895. /package/dist/{src/services → services}/mut/report-loader.js +0 -0
  896. /package/dist/{src/services → services}/mut/thresholds.d.ts +0 -0
  897. /package/dist/{src/services → services}/mut/thresholds.js +0 -0
  898. /package/dist/{src/services → services}/mut/types.d.ts +0 -0
  899. /package/dist/{src/services → services}/mut/types.js +0 -0
  900. /package/dist/{src/services → services}/observability/aggregation.d.ts +0 -0
  901. /package/dist/{src/services → services}/observability/aggregation.js +0 -0
  902. /package/dist/{src/services → services}/observability/jsonl-store.d.ts +0 -0
  903. /package/dist/{src/services → services}/observability/jsonl-store.js +0 -0
  904. /package/dist/{src/services → services}/observability/observability-service.d.ts +0 -0
  905. /package/dist/{src/services → services}/observability/observability-service.js +0 -0
  906. /package/dist/{src/services → services}/observability/report-formatter.d.ts +0 -0
  907. /package/dist/{src/services → services}/observability/report-formatter.js +0 -0
  908. /package/dist/{src/services → services}/openspec/openspec-archive-service.d.ts +0 -0
  909. /package/dist/{src/services → services}/openspec/openspec-archive-service.js +0 -0
  910. /package/dist/{src/services → services}/openspec/openspec-bridge-service.d.ts +0 -0
  911. /package/dist/{src/services → services}/openspec/openspec-bridge-service.js +0 -0
  912. /package/dist/{src/services → services}/openspec/openspec-init-service.d.ts +0 -0
  913. /package/dist/{src/services → services}/openspec/openspec-init-service.js +0 -0
  914. /package/dist/{src/services → services}/openspec/openspec-propose-from-doctor-service.d.ts +0 -0
  915. /package/dist/{src/services → services}/openspec/openspec-propose-from-doctor-service.js +0 -0
  916. /package/dist/{src/services → services}/openspec/openspec-render-service.d.ts +0 -0
  917. /package/dist/{src/services → services}/openspec/openspec-render-service.js +0 -0
  918. /package/dist/{src/services → services}/openspec/openspec-scan-service.d.ts +0 -0
  919. /package/dist/{src/services → services}/openspec/openspec-scan-service.js +0 -0
  920. /package/dist/{src/services → services}/openspec/openspec-types.d.ts +0 -0
  921. /package/dist/{src/services → services}/openspec/openspec-types.js +0 -0
  922. /package/dist/{src/services → services}/openspec/openspec-validate-service.d.ts +0 -0
  923. /package/dist/{src/services → services}/openspec/openspec-validate-service.js +0 -0
  924. /package/dist/{src/services → services}/perf/perf-baseline-service.d.ts +0 -0
  925. /package/dist/{src/services → services}/perf/perf-baseline-service.js +0 -0
  926. /package/dist/{src/services/recommendations/recommendation-types.js → services/polyrepo/polyrepo-types.js} +0 -0
  927. /package/dist/{src/services → services}/prd/handoff-auto-regen.d.ts +0 -0
  928. /package/dist/{src/services → services}/prd/handoff-auto-regen.js +0 -0
  929. /package/dist/{src/services → services}/prd/handoff-service.d.ts +0 -0
  930. /package/dist/{src/services → services}/prd/handoff-service.js +0 -0
  931. /package/dist/{src/services → services}/prd/handoff-types.d.ts +0 -0
  932. /package/dist/{src/services → services}/prd/handoff-types.js +0 -0
  933. /package/dist/{src/services → services}/prd/prd-blocks-checker.d.ts +0 -0
  934. /package/dist/{src/services → services}/prd/prd-blocks-checker.js +0 -0
  935. /package/dist/{src/services → services}/prd/project-scan-reader.d.ts +0 -0
  936. /package/dist/{src/services → services}/prd/project-scan-reader.js +0 -0
  937. /package/dist/{src/services → services}/prd/project-scan-sediment.d.ts +0 -0
  938. /package/dist/{src/services → services}/prd/project-scan-sediment.js +0 -0
  939. /package/dist/{src/services → services}/prd/project-scan-types.d.ts +0 -0
  940. /package/dist/{src/services → services}/prd/project-scan-types.js +0 -0
  941. /package/dist/{src/services → services}/preferences/preferences-service.js +0 -0
  942. /package/dist/{src/services → services}/preferences/preferences-types.js +0 -0
  943. /package/dist/{src/services → services}/profiles/profile-service.d.ts +0 -0
  944. /package/dist/{src/services → services}/profiles/profile-service.js +0 -0
  945. /package/dist/{src/services → services}/progress/progress-service.d.ts +0 -0
  946. /package/dist/{src/services → services}/progress/progress-service.js +0 -0
  947. /package/dist/{src/services → services}/proxy/proxy-service.d.ts +0 -0
  948. /package/dist/{src/services → services}/proxy/proxy-service.js +0 -0
  949. /package/dist/{src/services → services}/qa/browser-event-logger.d.ts +0 -0
  950. /package/dist/{src/services → services}/qa/browser-event-logger.js +0 -0
  951. /package/dist/{src/services → services}/qa/browser-restart-detector.d.ts +0 -0
  952. /package/dist/{src/services → services}/qa/browser-restart-detector.js +0 -0
  953. /package/dist/{src/services → services}/qa/browser-reuse-hint.d.ts +0 -0
  954. /package/dist/{src/services → services}/qa/browser-reuse-hint.js +0 -0
  955. /package/dist/{src/services → services}/qa/browser-wrapper-service.d.ts +0 -0
  956. /package/dist/{src/services → services}/qa/browser-wrapper-service.js +0 -0
  957. /package/dist/{src/services → services}/qa/qa-business-review-state.d.ts +0 -0
  958. /package/dist/{src/services → services}/qa/qa-business-review-state.js +0 -0
  959. /package/dist/{src/services → services}/rd/ast-gate.d.ts +0 -0
  960. /package/dist/{src/services → services}/rd/ast-gate.js +0 -0
  961. /package/dist/{src/services → services}/rd/impl.d.ts +0 -0
  962. /package/dist/{src/services → services}/rd/impl.js +0 -0
  963. /package/dist/{src/services → services}/rd/rd-service.d.ts +0 -0
  964. /package/dist/{src/services → services}/rd/reviewer-dispatch-policy.d.ts +0 -0
  965. /package/dist/{src/services → services}/rd/reviewer-dispatch-policy.js +0 -0
  966. /package/dist/{src/services → services}/rd/strategic-stage.d.ts +0 -0
  967. /package/dist/{src/services → services}/rd/strategic-stage.js +0 -0
  968. /package/dist/{src/services → services}/rd/strategy.d.ts +0 -0
  969. /package/dist/{src/services → services}/rd/strategy.js +0 -0
  970. /package/dist/{src/services → services}/rd/tactical-stage.d.ts +0 -0
  971. /package/dist/{src/services → services}/rd/tactical-stage.js +0 -0
  972. /package/dist/{src/services → services}/rd/types.js +0 -0
  973. /package/dist/{src/services → services}/recommendations/capability-availability.d.ts +0 -0
  974. /package/dist/{src/services → services}/recommendations/capability-availability.js +0 -0
  975. /package/dist/{src/services → services}/recommendations/capability-map-service.d.ts +0 -0
  976. /package/dist/{src/services → services}/recommendations/capability-map-service.js +0 -0
  977. /package/dist/{src/services → services}/recommendations/capability-seed-items.d.ts +0 -0
  978. /package/dist/{src/services → services}/recommendations/capability-seed-mappings.d.ts +0 -0
  979. /package/dist/{src/services → services}/recommendations/capability-seed-sources.d.ts +0 -0
  980. /package/dist/{src/services → services}/recommendations/recommendation-service.d.ts +0 -0
  981. /package/dist/{src/services → services}/recommendations/recommendation-types.d.ts +0 -0
  982. /package/dist/{src/services/scan/scan-types.js → services/recommendations/recommendation-types.js} +0 -0
  983. /package/dist/{src/services → services}/recommendations/seed-capability-catalog.d.ts +0 -0
  984. /package/dist/{src/services → services}/recommendations/seed-capability-catalog.js +0 -0
  985. /package/dist/{src/services → services}/refactor/refactor-service.js +0 -0
  986. /package/dist/{src/services → services}/release/release-state.d.ts +0 -0
  987. /package/dist/{src/services → services}/release/release-state.js +0 -0
  988. /package/dist/{src/services → services}/retrospective/retrospective-index.d.ts +0 -0
  989. /package/dist/{src/services → services}/retrospective/retrospective-index.js +0 -0
  990. /package/dist/{src/services → services}/retrospective/retrospective-search-service.d.ts +0 -0
  991. /package/dist/{src/services → services}/retrospective/retrospective-search-service.js +0 -0
  992. /package/dist/{src/services → services}/retrospective/retrospective-show.d.ts +0 -0
  993. /package/dist/{src/services → services}/retrospective/retrospective-show.js +0 -0
  994. /package/dist/{src/services → services}/reviewer/model-family.d.ts +0 -0
  995. /package/dist/{src/services → services}/reviewer/model-family.js +0 -0
  996. /package/dist/{src/services → services}/reviewer/providers/anthropic.d.ts +0 -0
  997. /package/dist/{src/services → services}/reviewer/providers/anthropic.js +0 -0
  998. /package/dist/{src/services → services}/reviewer/providers/ollama.d.ts +0 -0
  999. /package/dist/{src/services → services}/reviewer/providers/ollama.js +0 -0
  1000. /package/dist/{src/services → services}/reviewer/providers/openai.d.ts +0 -0
  1001. /package/dist/{src/services → services}/reviewer/providers/openai.js +0 -0
  1002. /package/dist/{src/services → services}/reviewer/reviewer-config.d.ts +0 -0
  1003. /package/dist/{src/services → services}/reviewer/reviewer-config.js +0 -0
  1004. /package/dist/{src/services → services}/reviewer/reviewer-service.d.ts +0 -0
  1005. /package/dist/{src/services → services}/reviewer/reviewer-service.js +0 -0
  1006. /package/dist/{src/services → services}/reviewer/selection-strategies.d.ts +0 -0
  1007. /package/dist/{src/services → services}/reviewer/selection-strategies.js +0 -0
  1008. /package/dist/{src/services → services}/role/role-registry.d.ts +0 -0
  1009. /package/dist/{src/services → services}/role/role-registry.js +0 -0
  1010. /package/dist/{src/services/sediment/types.js → services/runtime/vendor-adapter.js} +0 -0
  1011. /package/dist/{src/services → services}/sc/index.d.ts +0 -0
  1012. /package/dist/{src/services → services}/sc/index.js +0 -0
  1013. /package/dist/{src/services → services}/sc/sc-service.d.ts +0 -0
  1014. /package/dist/{src/services → services}/sc/sc-service.js +0 -0
  1015. /package/dist/{src/services → services}/scan/acceptance-coverage-service.d.ts +0 -0
  1016. /package/dist/{src/services → services}/scan/acceptance-coverage-service.js +0 -0
  1017. /package/dist/{src/services → services}/scan/api-surface-service.d.ts +0 -0
  1018. /package/dist/{src/services → services}/scan/api-surface-service.js +0 -0
  1019. /package/dist/{src/services → services}/scan/archetype-service.d.ts +0 -0
  1020. /package/dist/{src/services → services}/scan/diff-scope-service.d.ts +0 -0
  1021. /package/dist/{src/services → services}/scan/diff-scope-service.js +0 -0
  1022. /package/dist/{src/services → services}/scan/existing-system-service.d.ts +0 -0
  1023. /package/dist/{src/services → services}/scan/existing-system-service.js +0 -0
  1024. /package/dist/{src/services → services}/scan/file-size-scan.d.ts +0 -0
  1025. /package/dist/{src/services → services}/scan/file-size-scan.js +0 -0
  1026. /package/dist/{src/services → services}/scan/karpathy-service.d.ts +0 -0
  1027. /package/dist/{src/services → services}/scan/karpathy-service.js +0 -0
  1028. /package/dist/{src/services → services}/scan/libraries-service.d.ts +0 -0
  1029. /package/dist/{src/services → services}/scan/libraries-service.js +0 -0
  1030. /package/dist/{src/services → services}/scan/libraries-types.d.ts +0 -0
  1031. /package/dist/{src/services → services}/scan/libraries-types.js +0 -0
  1032. /package/dist/{src/services → services}/scan/orphan-service.d.ts +0 -0
  1033. /package/dist/{src/services → services}/scan/orphan-service.js +0 -0
  1034. /package/dist/{src/services/skillhub/types.js → services/scan/scan-types.js} +0 -0
  1035. /package/dist/{src/services → services}/scan/type-sanity-service.d.ts +0 -0
  1036. /package/dist/{src/services → services}/scan/type-sanity-service.js +0 -0
  1037. /package/dist/{src/services → services}/security/safe-settings-path.d.ts +0 -0
  1038. /package/dist/{src/services → services}/security/safe-settings-path.js +0 -0
  1039. /package/dist/{src/services → services}/sediment/dispose-confirm.d.ts +0 -0
  1040. /package/dist/{src/services → services}/sediment/dispose-confirm.js +0 -0
  1041. /package/dist/{src/services → services}/sediment/json-schema.d.ts +0 -0
  1042. /package/dist/{src/services → services}/sediment/json-schema.js +0 -0
  1043. /package/dist/{src/services → services}/sediment/manifest-lint.d.ts +0 -0
  1044. /package/dist/{src/services → services}/sediment/manifest-lint.js +0 -0
  1045. /package/dist/{src/services → services}/sediment/pool-paths.d.ts +0 -0
  1046. /package/dist/{src/services → services}/sediment/pool-paths.js +0 -0
  1047. /package/dist/{src/services → services}/sediment/pool-read.d.ts +0 -0
  1048. /package/dist/{src/services → services}/sediment/pool-read.js +0 -0
  1049. /package/dist/{src/services → services}/sediment/pool-rebuild-index.d.ts +0 -0
  1050. /package/dist/{src/services → services}/sediment/pool-rebuild-index.js +0 -0
  1051. /package/dist/{src/services → services}/sediment/pool-write.d.ts +0 -0
  1052. /package/dist/{src/services → services}/sediment/pool-write.js +0 -0
  1053. /package/dist/{src/services → services}/sediment/promotion-gate.d.ts +0 -0
  1054. /package/dist/{src/services → services}/sediment/promotion-gate.js +0 -0
  1055. /package/dist/{src/services → services}/sediment/types.d.ts +0 -0
  1056. /package/dist/{src/services/understand/hybrid-types.js → services/sediment/types.js} +0 -0
  1057. /package/dist/{src/services → services}/session/binding-status-service.d.ts +0 -0
  1058. /package/dist/{src/services → services}/session/binding-status-service.js +0 -0
  1059. /package/dist/{src/services → services}/session/binding-store.d.ts +0 -0
  1060. /package/dist/{src/services → services}/session/binding-store.js +0 -0
  1061. /package/dist/{src/services → services}/session/caller-binding-service.d.ts +0 -0
  1062. /package/dist/{src/services → services}/session/caller-binding-service.js +0 -0
  1063. /package/dist/{src/services → services}/session/caller-id-types.d.ts +0 -0
  1064. /package/dist/{src/services → services}/session/caller-id-types.js +0 -0
  1065. /package/dist/{src/services → services}/session/getSessionDir.d.ts +0 -0
  1066. /package/dist/{src/services → services}/session/getSessionDir.js +0 -0
  1067. /package/dist/{src/services → services}/session/index.d.ts +0 -0
  1068. /package/dist/{src/services → services}/session/index.js +0 -0
  1069. /package/dist/{src/services → services}/session/platform-fallbacks.d.ts +0 -0
  1070. /package/dist/{src/services → services}/session/platform-fallbacks.js +0 -0
  1071. /package/dist/{src/services → services}/session/resolve-caller-id.d.ts +0 -0
  1072. /package/dist/{src/services → services}/session/resolve-caller-id.js +0 -0
  1073. /package/dist/{src/services → services}/session/session-binding-bridge.d.ts +0 -0
  1074. /package/dist/{src/services → services}/session/session-binding-bridge.js +0 -0
  1075. /package/dist/{src/services → services}/session/session-checkpoint-service.d.ts +0 -0
  1076. /package/dist/{src/services → services}/session/session-checkpoint-service.js +0 -0
  1077. /package/dist/{src/services → services}/session/session-manager.d.ts +0 -0
  1078. /package/dist/{src/services → services}/session/session-manager.js +0 -0
  1079. /package/dist/{src/services → services}/session/session-resume-service.d.ts +0 -0
  1080. /package/dist/{src/services → services}/session/session-resume-service.js +0 -0
  1081. /package/dist/{src/services → services}/signal/cancel-handler.d.ts +0 -0
  1082. /package/dist/{src/services → services}/skill/resume-detector.d.ts +0 -0
  1083. /package/dist/{src/services → services}/skill/skill-scheduler.d.ts +0 -0
  1084. /package/dist/{src/services → services}/skill/skill-scheduler.js +0 -0
  1085. /package/dist/{src/services → services}/skillhub/release-diff.d.ts +0 -0
  1086. /package/dist/{src/services → services}/skillhub/release-diff.js +0 -0
  1087. /package/dist/{src/services → services}/skillhub/release-export.d.ts +0 -0
  1088. /package/dist/{src/services → services}/skillhub/release-export.js +0 -0
  1089. /package/dist/{src/services → services}/skillhub/release-gc-blobs.d.ts +0 -0
  1090. /package/dist/{src/services → services}/skillhub/release-gc-blobs.js +0 -0
  1091. /package/dist/{src/services → services}/skillhub/release-import.d.ts +0 -0
  1092. /package/dist/{src/services → services}/skillhub/release-retain.d.ts +0 -0
  1093. /package/dist/{src/services → services}/skillhub/sqlite-store.d.ts +0 -0
  1094. /package/dist/{src/services → services}/skillhub/tar-runtime.d.ts +0 -0
  1095. /package/dist/{src/services → services}/skillhub/tar-runtime.js +0 -0
  1096. /package/dist/{src/services/understand/understand-types.js → services/skillhub/types.js} +0 -0
  1097. /package/dist/{src/services → services}/skills/hooks-settings-service.d.ts +0 -0
  1098. /package/dist/{src/services → services}/skills/hooks-settings-service.js +0 -0
  1099. /package/dist/{src/services → services}/skills/skill-conformance-service.d.ts +0 -0
  1100. /package/dist/{src/services → services}/skills/skill-conformance-service.js +0 -0
  1101. /package/dist/{src/services → services}/skills/skill-presence-service.js +0 -0
  1102. /package/dist/{src/services → services}/skills/skill-runbook-service.d.ts +0 -0
  1103. /package/dist/{src/services → services}/skills/skill-runbook-service.js +0 -0
  1104. /package/dist/{src/services → services}/skills/skill-statusline-renderer.d.ts +0 -0
  1105. /package/dist/{src/services → services}/skills/skill-statusline-renderer.js +0 -0
  1106. /package/dist/{src/services → services}/skills/skill-statusline-service.d.ts +0 -0
  1107. /package/dist/{src/services → services}/skills/skill-statusline-service.js +0 -0
  1108. /package/dist/{src/services → services}/skills/statusline-settings-service.d.ts +0 -0
  1109. /package/dist/{src/services → services}/skills/statusline-settings-service.js +0 -0
  1110. /package/dist/{src/services → services}/skills/sync-service.d.ts +0 -0
  1111. /package/dist/{src/services → services}/skills/sync-service.js +0 -0
  1112. /package/dist/{src/services → services}/slice/calibration-store.d.ts +0 -0
  1113. /package/dist/{src/services → services}/slice/calibration-store.js +0 -0
  1114. /package/dist/{src/services → services}/slice/cross-pass-edge-merger.d.ts +0 -0
  1115. /package/dist/{src/services → services}/slice/cross-pass-edge-merger.js +0 -0
  1116. /package/dist/{src/services → services}/slice/granularity-decider.d.ts +0 -0
  1117. /package/dist/{src/services → services}/slice/granularity-decider.js +0 -0
  1118. /package/dist/{src/services → services}/slice/llm-arbitrator.d.ts +0 -0
  1119. /package/dist/{src/services → services}/slice/llm-arbitrator.js +0 -0
  1120. /package/dist/{src/services → services}/slice/multi-pass-orchestrator.d.ts +0 -0
  1121. /package/dist/{src/services → services}/slice/multi-pass-orchestrator.js +0 -0
  1122. /package/dist/{src/services → services}/slice/schema-router.d.ts +0 -0
  1123. /package/dist/{src/services → services}/slice/schema-router.js +0 -0
  1124. /package/dist/{src/services → services}/slice/slice-archive-service.d.ts +0 -0
  1125. /package/dist/{src/services → services}/slice/slice-archive-service.js +0 -0
  1126. /package/dist/{src/services → services}/slice/slice-benchmark-service.d.ts +0 -0
  1127. /package/dist/{src/services → services}/slice/slice-benchmark-service.js +0 -0
  1128. /package/dist/{src/services → services}/slice/slice-check-service.d.ts +0 -0
  1129. /package/dist/{src/services → services}/slice/slice-check-service.js +0 -0
  1130. /package/dist/{src/services → services}/slice/slice-check-types.d.ts +0 -0
  1131. /package/dist/{src/services → services}/slice/slice-check-types.js +0 -0
  1132. /package/dist/{src/services → services}/slice/slice-decompose-runners.d.ts +0 -0
  1133. /package/dist/{src/services → services}/slice/slice-decompose-runners.js +0 -0
  1134. /package/dist/{src/services → services}/slice/slice-decompose-service.d.ts +0 -0
  1135. /package/dist/{src/services → services}/slice/slice-decompose-service.js +0 -0
  1136. /package/dist/{src/services → services}/slice/slice-decompose-types.d.ts +0 -0
  1137. /package/dist/{src/services → services}/slice/slice-decompose-types.js +0 -0
  1138. /package/dist/{src/services → services}/slice/slice-integration.d.ts +0 -0
  1139. /package/dist/{src/services → services}/slice/slice-integration.js +0 -0
  1140. /package/dist/{src/services → services}/slice/slice-pick-service.d.ts +0 -0
  1141. /package/dist/{src/services → services}/slice/slice-pick-service.js +0 -0
  1142. /package/dist/{src/services → services}/slice/slice-review-state.d.ts +0 -0
  1143. /package/dist/{src/services → services}/slice/slice-review-state.js +0 -0
  1144. /package/dist/{src/services → services}/slice/slice-topology-types.d.ts +0 -0
  1145. /package/dist/{src/services → services}/slice/slice-topology-types.js +0 -0
  1146. /package/dist/{src/services → services}/smoke/smoke-paths-state.d.ts +0 -0
  1147. /package/dist/{src/services → services}/smoke/smoke-paths-state.js +0 -0
  1148. /package/dist/{src/services → services}/sop/gate-enforce-service.d.ts +0 -0
  1149. /package/dist/{src/services → services}/sop/gate-enforce-service.js +0 -0
  1150. /package/dist/{src/services → services}/sop/sop-advance-service.d.ts +0 -0
  1151. /package/dist/{src/services → services}/sop/sop-advance-service.js +0 -0
  1152. /package/dist/{src/services → services}/sop/sop-check-service.d.ts +0 -0
  1153. /package/dist/{src/services → services}/sop/sop-check-service.js +0 -0
  1154. /package/dist/{src/services → services}/sop/sop-paths.d.ts +0 -0
  1155. /package/dist/{src/services → services}/sop/sop-paths.js +0 -0
  1156. /package/dist/{src/services → services}/sop/sop-registry-service.d.ts +0 -0
  1157. /package/dist/{src/services → services}/sop/sop-registry-service.js +0 -0
  1158. /package/dist/{src/services → services}/sop/sop-service.d.ts +0 -0
  1159. /package/dist/{src/services → services}/sop/sop-service.js +0 -0
  1160. /package/dist/{src/services → services}/sop/sop-types.d.ts +0 -0
  1161. /package/dist/{src/services → services}/sop/sop-types.js +0 -0
  1162. /package/dist/{src/services → services}/standards/ide-aware-standards-service.d.ts +0 -0
  1163. /package/dist/{src/services → services}/standards/migrate-claude-rules-service.d.ts +0 -0
  1164. /package/dist/{src/services → services}/standards/migrate-service.d.ts +0 -0
  1165. /package/dist/{src/services → services}/standards/migrate-service.js +0 -0
  1166. /package/dist/{src/services → services}/standards/project-context.d.ts +0 -0
  1167. /package/dist/{src/services → services}/standards/project-context.js +0 -0
  1168. /package/dist/{src/services → services}/standards/project-standards-service.d.ts +0 -0
  1169. /package/dist/{src/services → services}/tech/tech-service.d.ts +0 -0
  1170. /package/dist/{src/services → services}/tech/tech-service.js +0 -0
  1171. /package/dist/{src/services → services}/test-cache/test-cache-service.d.ts +0 -0
  1172. /package/dist/{src/services → services}/test-cache/test-cache-service.js +0 -0
  1173. /package/dist/{src/services → services}/understand/hybrid-types.d.ts +0 -0
  1174. /package/dist/{src/services → services}/understand/understand-hybrid-service.d.ts +0 -0
  1175. /package/dist/{src/services → services}/understand/understand-hybrid-service.js +0 -0
  1176. /package/dist/{src/services → services}/understand/understand-scan-service.d.ts +0 -0
  1177. /package/dist/{src/services → services}/understand/understand-scan-service.js +0 -0
  1178. /package/dist/{src/services → services}/understand/understand-types.d.ts +0 -0
  1179. /package/dist/{src/services → services}/upgrade/1x-detector-service.d.ts +0 -0
  1180. /package/dist/{src/services → services}/upgrade/gitignore-migrate-service.d.ts +0 -0
  1181. /package/dist/{src/services → services}/upgrade/gitignore-migrate-service.js +0 -0
  1182. /package/dist/{src/services → services}/upgrade/upgrade-service.d.ts +0 -0
  1183. /package/dist/{src/services → services}/upgrade/upgrade-service.js +0 -0
  1184. /package/dist/{src/services → services}/verdict/envelopes.d.ts +0 -0
  1185. /package/dist/{src/services → services}/verdict/envelopes.js +0 -0
  1186. /package/dist/{src/services → services}/verdict/verdict-aggregator.d.ts +0 -0
  1187. /package/dist/{src/services → services}/verdict/verdict-aggregator.js +0 -0
  1188. /package/dist/{src/services → services}/workflow/artifact-paths.d.ts +0 -0
  1189. /package/dist/{src/services → services}/workflow/artifact-paths.js +0 -0
  1190. /package/dist/{src/services → services}/workflow/autonomous-resume-writer.d.ts +0 -0
  1191. /package/dist/{src/services → services}/workflow/autonomous-resume-writer.js +0 -0
  1192. /package/dist/{src/services → services}/workflow/plan-reader.d.ts +0 -0
  1193. /package/dist/{src/services → services}/workflow/plan-reader.js +0 -0
  1194. /package/dist/{src/services → services}/workflow/plan-refresher.d.ts +0 -0
  1195. /package/dist/{src/services → services}/workflow/plan-refresher.js +0 -0
  1196. /package/dist/{src/services → services}/workflow/plan-trigger-detector.d.ts +0 -0
  1197. /package/dist/{src/services → services}/workflow/plan-trigger-detector.js +0 -0
  1198. /package/dist/{src/services → services}/workflow/workflow-autonomous-resume-helpers.d.ts +0 -0
  1199. /package/dist/{src/services → services}/workflow/workflow-autonomous-resume-helpers.js +0 -0
  1200. /package/dist/{src/services → services}/workflow/workflow-loader.d.ts +0 -0
  1201. /package/dist/{src/services → services}/workflow/workflow-loader.js +0 -0
  1202. /package/dist/{src/services → services}/workflow/workflow-skip-service.d.ts +0 -0
  1203. /package/dist/{src/services → services}/workflow/workflow-skip-service.js +0 -0
  1204. /package/dist/{src/services → services}/workflow/workflow-spec.d.ts +0 -0
  1205. /package/dist/{src/services → services}/workflow/workflow-spec.js +0 -0
  1206. /package/dist/{src/services → services}/workflow/workflow-state-store.d.ts +0 -0
  1207. /package/dist/{src/services → services}/workflow/workflow-state-store.js +0 -0
  1208. /package/dist/{src/services → services}/workspace/migrate-1-4-1-service.d.ts +0 -0
  1209. /package/dist/{src/services → services}/workspace/migrate-1-4-1-service.js +0 -0
  1210. /package/dist/{src/services → services}/workspace/migrate-service.d.ts +0 -0
  1211. /package/dist/{src/services → services}/workspace/migrate-service.js +0 -0
  1212. /package/dist/{src/services → services}/workspace/migrate-types.d.ts +0 -0
  1213. /package/dist/{src/services → services}/workspace/migrate-types.js +0 -0
  1214. /package/dist/{src/services → services}/workspace/reconcile-service.d.ts +0 -0
  1215. /package/dist/{src/services → services}/workspace/reconcile-service.js +0 -0
  1216. /package/dist/{src/services → services}/workspace/reconcile-types.d.ts +0 -0
  1217. /package/dist/{src/services → services}/workspace/reconcile-types.js +0 -0
  1218. /package/dist/{src/services → services}/workspace/sid-naming-guard.d.ts +0 -0
  1219. /package/dist/{src/services → services}/workspace/sid-naming-guard.js +0 -0
  1220. /package/dist/{src/services → services}/workspace/workspace-claude-settings-materializer.d.ts +0 -0
  1221. /package/dist/{src/services → services}/workspace/workspace-claude-settings-materializer.js +0 -0
  1222. /package/dist/{src/services → services}/workspace/workspace-clean-service.d.ts +0 -0
  1223. /package/dist/{src/services → services}/workspace/workspace-clean-service.js +0 -0
  1224. /package/dist/{src/services → services}/workspace/workspace-service.d.ts +0 -0
  1225. /package/dist/{src/services → services}/workspace/workspace-service.js +0 -0
  1226. /package/dist/{src/services → services}/workspace/workspace-state-service.d.ts +0 -0
  1227. /package/dist/{src/services → services}/workspace/workspace-state-service.js +0 -0
  1228. /package/dist/{src/shared → shared}/format-md-compact.d.ts +0 -0
  1229. /package/dist/{src/shared → shared}/format-md-compact.js +0 -0
  1230. /package/dist/{src/shared → shared}/frontmatter.d.ts +0 -0
  1231. /package/dist/{src/shared → shared}/frontmatter.js +0 -0
  1232. /package/dist/{src/shared → shared}/fs-utils.d.ts +0 -0
  1233. /package/dist/{src/shared → shared}/fs-utils.js +0 -0
  1234. /package/dist/{src/shared → shared}/fs.d.ts +0 -0
  1235. /package/dist/{src/shared → shared}/fs.js +0 -0
  1236. /package/dist/{src/shared → shared}/incrementing-number.d.ts +0 -0
  1237. /package/dist/{src/shared → shared}/incrementing-number.js +0 -0
  1238. /package/dist/{src/shared → shared}/json-schema-mini.d.ts +0 -0
  1239. /package/dist/{src/shared → shared}/json-schema-mini.js +0 -0
  1240. /package/dist/{src/shared → shared}/path-safety.d.ts +0 -0
  1241. /package/dist/{src/shared → shared}/path-safety.js +0 -0
  1242. /package/dist/{src/shared → shared}/path-utils.d.ts +0 -0
  1243. /package/dist/{src/shared → shared}/path-utils.js +0 -0
  1244. /package/dist/{src/shared → shared}/paths.d.ts +0 -0
  1245. /package/dist/{src/shared → shared}/paths.js +0 -0
  1246. /package/dist/{src/shared → shared}/planner-response.d.ts +0 -0
  1247. /package/dist/{src/shared → shared}/planner-response.js +0 -0
  1248. /package/dist/{src/shared → shared}/platform.d.ts +0 -0
  1249. /package/dist/{src/shared → shared}/platform.js +0 -0
  1250. /package/dist/{src/shared → shared}/process.d.ts +0 -0
  1251. /package/dist/{src/shared → shared}/process.js +0 -0
  1252. /package/dist/{src/shared → shared}/result.d.ts +0 -0
  1253. /package/dist/{src/shared → shared}/result.js +0 -0
  1254. /package/dist/{src/shared → shared}/stale-policy.d.ts +0 -0
  1255. /package/dist/{src/shared → shared}/stale-policy.js +0 -0
  1256. /package/dist/{src/skills → skills}/peaks-maker/index.d.ts +0 -0
  1257. /package/dist/{src/skills → skills}/peaks-maker/index.js +0 -0
package/CHANGELOG.md CHANGED
@@ -2,37 +2,490 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## 4.0.0-beta.11 — 2026-07-16
6
+
7
+ ### Status: RELEASED (release of `4.0.0-beta.10` contract; same source tree)
8
+
9
+ > **This CHANGELOG entry documents the SHIPPED 4.0.0-beta.11.
10
+ > It is the post-implementation release of the 4.0.0-beta.10 contract
11
+ > documented at `docs/release/4.0.0-beta.10.md` (runbook filename
12
+ > preserved for cross-reference stability).
13
+ >
14
+ > The 3 slices (del-minimax-worker, hide-role-skills, on-demand-ecc)
15
+ > all landed PASS in this branch — see `peaks workflow verify-pipeline
16
+ > --rid 2026-07-15-cli-surface-cleanup` and the Slice 1/2/3 sediment
17
+ > memories in `.peaks/memory/`.
18
+ >
19
+ > **Version bump rationale** (D-016): 4.0.0-beta.10 was the pre-impl
20
+ > contract name; 4.0.0-beta.11 is the actual release of that contract.
21
+ > One-line summary: **"CLI surface cleanup + on-demand ECC"**.
22
+ >
23
+ > **Verdict**: 10/12 AC PASS + 2 PASS-WITH-DEFERRED (D-013 wrapper
24
+ > exit-code bug, separate follow-up slice after publish).
25
+ > Ice-cola baseline gate: 27/27 AC functionally pass.
26
+
27
+ ### Removed — `peaks minimax-worker` (Slice 1)
28
+
29
+ - **`peaks minimax-worker` CLI removed** — historical MiniMax
30
+ provider integration. `peaks minimax-worker --help` now exits
31
+ non-zero with `COMMAND_NOT_FOUND`.
32
+ - **`peaks worker minimax` CLI removed** — same module.
33
+ - **`peaks config provider minimax *` subtree removed** —
34
+ `peaks config provider minimax set --help` exits non-zero.
35
+ - **6 source files deleted**:
36
+ - `src/cli/commands/worker-commands.ts`
37
+ - `src/services/providers/minimax-provider-service.ts`
38
+ - `src/services/providers/minimax-worker-service.ts`
39
+ - `src/services/config/provider-service.ts` (entire file; 100% MiniMax)
40
+ - `tests/unit/minimax-worker-service.test.ts`
41
+ - `tests/unit/minimax-provider-service.test.ts`
42
+ - **~21 source files modified** (drop imports, drop function bodies,
43
+ drop registrations, replace `'minimax-2.7'` literal with
44
+ `'claude-opus-4-7'` in 5 files).
45
+ - **~8 test files modified** (drop MiniMax cases; replace literal in 3).
46
+ - **4 openspec files updated** (1-line wording fixes).
47
+ - **Net security improvement**: smaller secret-handling surface
48
+ (5 MiniMax functions removed).
49
+
50
+ ### Changed — 10 role-skill CLI commands hidden (Slice 2)
51
+
52
+ - **10 top-level role-skill CLI commands** now hidden from `peaks --help`
53
+ via `Commander.hidden()`. Still invokable for internal
54
+ `peaks sub-agent dispatch --role <role>` paths. Final canonical
55
+ list (per QA grep audit):
56
+ - `peaks prd`
57
+ - `peaks qa`
58
+ - `peaks sc`
59
+ - `peaks audit`
60
+ - `peaks code-review`
61
+ - `peaks perf-audit`
62
+ - `peaks security-audit`
63
+ - `peaks upgrade`
64
+ - `peaks agent`
65
+ - `peaks code`
66
+ - **`peaks skill list`** now excludes skills with
67
+ `visibility: internal` frontmatter. Use `--include-internal` to opt in.
68
+ - **`peaks skill search`** accepts `--include-internal` flag.
69
+ - **8 SKILL.md files** updated to add/rename `visibility: internal`:
70
+ `peaks-prd`, `peaks-qa`, `peaks-rd`, `peaks-sc`, `peaks-ui`,
71
+ `peaks-txt`, `peaks-final-review`, `peaks-perf-audit`,
72
+ `peaks-security-audit`.
73
+ - **Integration test rewritten**:
74
+ `tests/integration/skill-search-cli.test.ts:72-79` now asserts
75
+ the new `visibility:` frontmatter field instead of legacy
76
+ `userInvocable`.
77
+
78
+ ### Added — `peaks ecc install|status|ls|show` (Slice 3)
79
+
80
+ > **PIVOT vs initial design**: Originally Slice 3 was supposed to
81
+ > spawn `<cached>/ecc agent run <name> --json` as a subprocess.
82
+ > RD sub-agent triggered **Gate S3-0**: affaan-m/everything-claude-code
83
+ > has no `ecc` binary; its real structure is `agents/*.md` flat
84
+ > + SKILL.md descriptors. User chose Option B — drop the subprocess
85
+ > model entirely.
86
+
87
+ - **`peaks ecc install`** — downloads affaan-m/everything-claude-code
88
+ from GitHub releases to `~/.peaks/cache/ecc-<sha>/`. Selective
89
+ tarball extraction: ONLY `agents/` subtree (skip `rules/`,
90
+ `commands/`, `settings/`, `docs/`, `README.md`).
91
+ - **`peaks ecc status`** — reads cache manifest, reports version + sha
92
+ + agent count.
93
+ - **`peaks ecc ls`** — lists cached agents by parsing `agents/*.md`
94
+ frontmatter.
95
+ - **`peaks ecc show <name>`** — outputs the agent's SKILL.md body
96
+ to stdout. LLM-side consumers (Skill-first path) read this output
97
+ to apply the agent's instructions.
98
+ - **3 source files deleted** (with Slice 1):
99
+ - `src/cli/commands/agent-commands.ts` (the old `peaks agent run/list`)
100
+ - `src/services/agent/ecc-agent-service.ts` (the spawn orchestrator)
101
+ - `tests/unit/services/agent/ecc-agent-service.test.ts`
102
+ - **3 new source files**:
103
+ - `src/services/agent/ecc-cache-service.ts` — pure-IO cache module
104
+ (`downloadToCache`, `readCacheManifest`, `listCachedAgents`,
105
+ `readAgentSkill`, `cleanupStaleCache`)
106
+ - `src/cli/commands/ecc-commands.ts` — 4 subcommands
107
+ - `tests/unit/agent/ecc-cache-service.test.ts`
108
+ - **Dead-probes removed**:
109
+ - `npx ecc --version` probe (was: never worked; affaan-m/ECC not on npm)
110
+ - `npx ecc-agentshield --version` probe in
111
+ `src/services/audit/static-service.ts:104` (parallel fix)
112
+ - **7-day cache TTL** via `bootstrapLogger.applyRetention` sweep
113
+ (wired at `src/cli/program.ts:121`). NOT via
114
+ `peaks doctor --cleanup-stale` (which is bound to `dropStale()`
115
+ for the binding store).
116
+
117
+ ### Removed — `peaks agent run` and `peaks agent list`
118
+
119
+ - **`peaks agent run <name>` exits non-zero with `COMMAND_NOT_FOUND`**.
120
+ - **`peaks agent list` exits non-zero with `COMMAND_NOT_FOUND`**.
121
+ - **No replacement CLI** — LLM-side consumers use
122
+ `peaks ecc show <name>` or read `<cache>/agents/<name>.md` directly.
123
+
124
+ ### Net security / performance impact
125
+
126
+ - **Security**: 0 subprocess attack surface (was: 1 per call in beta.9);
127
+ smaller secret-handling surface (5 MiniMax functions removed).
128
+ - **Performance**: cache-dir probe is pure read (<15ms vs ~500ms
129
+ for the npm-registry probe in beta.9); selective tarball extraction
130
+ saves ~95% disk footprint.
131
+
132
+ ### Pre-implementation gate
133
+
134
+ `peaks workflow verify-pipeline --rid 2026-07-15-cli-surface-cleanup`
135
+ returns `ok: true, complete: true, violations: []` (9/9 gates PASS).
136
+ This CHANGELOG entry is the contract; the actual implementation
137
+ follows the runbook in `docs/release/4.0.0-beta.10.md`.
138
+
139
+ ### Acceptance criteria
140
+
141
+ 27 ACs total: 7 (Slice 1) + 8 (Slice 2) + 11 (Slice 3 redesign + 1).
142
+ Full list in `docs/release/4.0.0-beta.10.md` §Acceptance criteria.
143
+
144
+ ---
145
+
146
+ ## 4.0.0-beta.9 — 2026-07-15
147
+
148
+ ### Fixed — `npm install peaks-loop` runtime path layout
149
+
150
+ `4.0.0-beta.8` shipped a tarball where `bin/peaks.js` imported
151
+ `'../dist/src/cli/index.js'`, but tsc actually emitted the runtime
152
+ files at `dist/cli/index.js` (rootDir walked past `src/` because of
153
+ cross-folder imports like `src/services/hooks/output.ts → ../../cli/`).
154
+ Downstream `npm i -g peaks-loop` then `peaks -v` failed with
155
+ `ERR_MODULE_NOT_FOUND: .../dist/src/cli/index.js`. The 4 audit/business
156
+ templates also failed to enter the tarball because `package.json#files[]`
157
+ whitelisted `dist/src/**/*.js` / `.d.ts` but never `.md`.
158
+
159
+ This release:
160
+
161
+ - `bin/peaks.js` import: `'../dist/src/cli/index.js'` → `'../dist/cli/index.js'`.
162
+ - `scripts/copy-templates.mjs` dest: `dist/src/services/...` →
163
+ `dist/services/...` so the bundled templates land where the runtime
164
+ `import.meta.url` resolver expects them.
165
+ - `package.json#files[]`: prefixes shifted from `dist/src/` to `dist/`,
166
+ plus a new `dist/**/*.md` entry so the 4 templates bundled by
167
+ `copy-templates.mjs` actually ship.
168
+ - `tsconfig.build.json` (introduced in beta.8) confirmed correct — it
169
+ is the build-time emit that controls the dist tree shape.
170
+
171
+ End-to-end smoke after the fix (local):
172
+
173
+ ```
174
+ $ npm pack # 30 MB tarball
175
+ $ npm install ./peaks-loop-4.0.0-beta.9.tgz --prefix /tmp/test
176
+ $ peaks --version # → "4.0.0-beta.9"
177
+ $ peaks workspace init --project /tmp/fresh # → templatesBooted: 5
178
+ ```
179
+
180
+ `.peaks/project-scan/{project-scan.md, business-knowledge.md,
181
+ security-template.md, perf-template.md, audit-output-schema.md}`
182
+ all present after a fresh workspace init.
183
+
184
+ ### Notes
185
+
186
+ - 4.0.0-beta.8 is left in place on npm as a known-broken release.
187
+ Consumers who already pinned `peaks-loop@4.0.0-beta.8` should bump
188
+ to `4.0.0-beta.9`.
189
+ - Beta.9 contains everything beta.8 advertised plus the path fix.
190
+
191
+ ## 4.0.0-beta.8 — 2026-07-15
192
+
193
+ ### Added — project-scan bootstrap (slice 2026-07-15)
194
+
195
+ - **`peaks project context` writes `.peaks/project-scan/project-scan.md`**
196
+ alongside `.peaks/PROJECT.md`. The project-scan.md file is the new
197
+ canonical home for project archetype + libraryVersions + tech stack
198
+ (project-scoped, git-tracked, survives session rotation). The old
199
+ `.peaks/_runtime/<sessionId>/rd/project-scan.md` path is fully
200
+ migrated across SKILL.md / references / peaks-rd SKILL.md /
201
+ peaks-ui SKILL.md (14 occurrences in 8 files).
202
+ - **`peaks workspace init` triggers `bootstrapProjectScan`** on its
203
+ main path. Idempotent: existing `schemaVersion: 1` files are
204
+ preserved unless `--force`. New CLI flags:
205
+ - `--no-project-scan-bootstrap` — opt out of the bootstrap call.
206
+ - `--force-project-scan-templates` — overwrite the 4 bundled
207
+ audit/business templates (default: skip if present).
208
+ - **5-template boot** — every `peaks workspace init` materialises
209
+ `.peaks/project-scan/{project-scan.md, business-knowledge.md,
210
+ security-template.md, perf-template.md, audit-output-schema.md}`.
211
+ The 4 audit/business templates are bundled at
212
+ `src/services/workspace/templates/project-scan/*.md` and copied
213
+ verbatim by `scripts/copy-templates.mjs` (post-`tsc` step; tsc
214
+ does not emit `.md` files).
215
+ - **`scripts/copy-templates.mjs`** — mirrors bundled `.md` templates
216
+ into `dist/`. Wired into `package.json#scripts.build` after `tsc`.
217
+ Required to keep `import.meta.url` template reads working for
218
+ downstream `npm install peaks-loop` consumers.
219
+ - **`tests/unit/workspace/templates/template-integrity.test.ts`**
220
+ (5 cases) — byte-equality guard between bundled and canonical
221
+ templates; fails CI on drift.
222
+ - **`tests/unit/services/prd/project-scan-bootstrap-service.test.ts`**
223
+ (13 cases) — 0-1 path, existing-project path, monorepo variants,
224
+ idempotency, force overrides, dual-write.
225
+ - **`tests/unit/workspace/init-hooks-project-scan.test.ts`**
226
+ (4 cases) — `peaks workspace init` integration with all 3 CLI flag
227
+ combinations.
228
+
229
+ ### Fixed — monorepo 0-1 misjudgement + scanArchetype fall-through
230
+
231
+ Real-world smoke against `C:\Users\smallMark\Desktop\peaksclaw\ice-cola`
232
+ (pnpm-workspace monorepo with `packages/{server,client,admin,hermes-agent}`)
233
+ exposed two follow-on bugs that the unit suite missed:
234
+
235
+ - **0-1 detection now considers monorepo sentinels.**
236
+ `bootstrapProjectScan.isZeroToOneProject` previously only checked
237
+ `<root>/src/`, silently mis-classifying pnpm-workspace projects as
238
+ 0-1 (the source lives at `packages/<pkg>/src/`). New sentinels:
239
+ `pnpm-workspace.yaml` / `turbo.json` / `nx.json` + the
240
+ `package.json#workspaces` field. Source-root candidates extended
241
+ to `packages/` / `apps/` / `libs/` / `services/` / `workspaces/`.
242
+ - **`scanArchetype` hoists `hasMonorepoConfig` above the `hasBackend`
243
+ check.** A monorepo with a backend sub-package (`packages/server`)
244
+ used to fall through to `legacy-fullstack` because `hasBackend`
245
+ included `backendDirsPresent.length > 0`. New behaviour: any monorepo
246
+ resolves to `frontend-monorepo` (no backend pkg) or
247
+ `fullstack-monorepo` (with backend pkg).
248
+ - **`ProjectArchetype` union gains `'fullstack-monorepo'`.**
249
+ Previously the union was 5 values; now 6. `ArchetypeService` and
250
+ `peaks-code` consumers updated accordingly.
251
+
252
+ ### Changed
253
+
254
+ - `src/services/memory/project-context-service.ts` — `generateProjectContext`
255
+ is now `async` and calls `bootstrapProjectScan` after writing
256
+ `PROJECT.md`. The companion `peaks skill presence:clear` was missing
257
+ an `await`; fixed in `src/cli/commands/core/skill-command.ts`.
258
+ - `src/cli/commands/workspace/init-command.ts` — adds
259
+ `--no-project-scan-bootstrap` and `--force-project-scan-templates`;
260
+ surfaces `projectScan` envelope field on the init response.
261
+
262
+ ### Verification
263
+
264
+ - vitest: 22/22 pass across 3 slice-owned test files.
265
+ - tsc: 0 errors in slice-owned `src/` files.
266
+ - CLI: `./bin/peaks.js workspace init --project <tmp>` writes 5 files
267
+ in `templatesBooted:5, durationMs:23`; `--no-project-scan-bootstrap`
268
+ correctly skips; `--force-project-scan-templates` correctly
269
+ overrides user sediment.
270
+ - Ice-cola: `peaks project context --project .` produces
271
+ `archetype: fullstack-monorepo` with 18 real library versions
272
+ (Docusaurus 3.9.2 / Camofox / @easyops-cn / etc.).
273
+
274
+ ### Notes
275
+
276
+ - pre-existing `FILE_SIZE_VIOLATION` on
277
+ `src/services/standards/project-standards-service.ts` (837 lines,
278
+ in-flight `.claude/rules/` → `.peaks/standards/` migration) is out
279
+ of slice scope.
280
+
281
+ ## 4.0.0-beta.7 — 2026-07-09
282
+
283
+ ### Added — zcode adapter (9th IDE) + runtime model detection
284
+
285
+ - **`peaks ide model --current` CLI** — `src/cli/commands/ide-commands.ts` (80 lines) + register in `src/cli/program.ts`. Outputs `{ modelId, detected, registeredAdapters }`. Available as a top-level primitive (not adapter-specific).
286
+ - **`detectCurrentIdeModel()` service** — `src/services/ide/current-model-detector.ts` (43 lines). Walks the adapter registry in insertion order, calls each adapter's optional `detectCurrentModel()` with try/catch isolation — one bad adapter cannot poison the chain.
287
+ - **zcode-adapter `detectCurrentModel()` method** — `src/services/ide/adapters/zcode-adapter.ts`. Reads `~/.zcode/v2/config.json`, resolves active provider via 4-tier priority chain (env override → non-`builtin:` provider → first enabled → first provider), returns the model's id. Live test: `peaks ide model --current` against a real z-code installation → `"modelId": "M3"`.
288
+ - **`IdeAdapter` interface optional field** — `readonly detectCurrentModel?: () => Promise<string | undefined>` in `src/services/ide/ide-types.ts`. Back-compat: 8 existing adapters without the field are unaffected.
289
+ - **`getStrongestModelIdAsync()` async variant** — `src/services/config/model-routing.ts`. Sync `getStrongestModelId()` is unchanged (rd-service compat); new async variant lets future async callers fall back to runtime probe instead of `'claude-opus-4-7'`.
290
+
291
+ ### Changed — install no longer writes hardcoded default model
292
+
293
+ - **`scripts/install-skills.mjs`** — removed `model: 'sonnet'` default and `providers.minimax.model` default from `createConfigDefaults()`. After install, `~/.peaks/config.json` no longer contains a Claude model recommendation; users set their own via `peaks config set model <id>` (or leave unset and the back-compat fallback applies).
294
+ - **`STRONGEST_MODEL_ID` constant removed** — replaced by `getStrongestModelId(config?)` function in `src/services/config/model-routing.ts`. Resolution order: `config.model` → `PEAKS_STRONGEST_MODEL_DEFAULT` env var → back-compat `'claude-opus-4-7'`.
295
+ - **`workflow-router-service.ts` / `minimax-worker-service.ts` / `rd-service.ts`** — threaded dynamic modelId through 16 call sites in `workflow-router-service.ts`, replaced literal `'claude-opus-4-7'` in `minimax-worker-service.ts` (×2) and `rd-service.ts`.
296
+
297
+ ### Added — zcode IDE (peaks-loop's 9th)
298
+
299
+ - **`IdeId` union type** — `'zcode'` added in `src/services/ide/ide-types.ts`.
300
+ - **`ZCODE_ADAPTER`** — new `src/services/ide/adapters/zcode-adapter.ts` (98 lines). Template: `claude-code-adapter.ts` with `compact.compactCommand` / `hookEvent` / `toolMatcher` / `envVar` degraded (z-code is a desktop application, no CLI binary; UNVERIFIED sentinel strings used where the interface requires non-optional types).
301
+ - **`IDE_DETECTION_DIRS` + `IDE_SKILL_INSTALL_PROFILES`** — `scripts/install-skills.mjs`. New `{ id: 'zcode', dir: '.zcode' }` detection entry + zcode profile (skillsDir `~/.zcode/skills`, env override `PEAKS_ZCODE_SKILLS_DIR`).
302
+ - **`ide-registry.ts`** — registers `ZCODE_ADAPTER` alongside the existing 8 adapters (claude-code / trae / trae-cn / codex / cursor / qoder / tongyi-lingma / hermes / openclaw).
303
+ - **`tests/unit/ide/zcode-adapter.test.ts`** — 10 cases (T-1 id, T-2 dirName, T-3 standards rootFile = `CLAUDE.md`, T-4 rulesDir = `.claude/rules`, T-5 skillsDir, T-6 compactCommand undefined, T-7 hookEvent is string, T-8 type test, T-9 IDE_DETECTION_DIRS contains, T-10 IDE_SKILL_INSTALL_PROFILES contains).
304
+ - **`tests/unit/ide/zcode-adapter-detect-model.test.ts`** — 14 cases (pure resolver + env-fixture file IO + path helper).
305
+ - **`tests/unit/cli/ide-commands.test.ts`** — 5 cases (CLI + top-level command registration).
306
+ - **Fixture sync** — `tests/unit/install-skills-script.test.ts` + `tests/unit/cli-program.workflow.test.ts` (Strategy A: env-var override, no hardcoded literals) + `tests/unit/ide/ide-registry.test.ts` (whitelist 6 → 7 adapters).
307
+
308
+ ### Documentation — SKILL.md sync with 4.0.0-beta.6 CLI reality
309
+
310
+ - **`skills/peaks-code/SKILL.md`** — added inline `> CLI reality check` blocks at §Step 0.8 (D-001 `peaks code detect-job` is `peaks job init`), §Step 0.8 third paragraph (D-003 `JOB_SHAPE_NOT_DECIDED` is now passive `done: 0` warning, not exception), §Step 2.5 (D-002 `peaks session title` takes positional sid, not `--session-id` flag), §Step 11c + 11d (D-010 `<!-- peaks-memory:start -->` block requires YAML frontmatter `title:` + `kind:` + `---` + closing `<!-- peaks-memory:end -->`, otherwise `extractedCount: 0` silently). New **§CLI Drift Index** section after Boundaries provides single landing page for D-001/002/003/010 with inline-anchor table.
311
+ - **`skills/peaks-slice-decompose/SKILL.md`** — new **§SC template hard rules (sediment 2026-07-09)** section with 3 rules: Rule 1 ESM/CJS pre-flight before specifying export syntax (D-009c), Rule 2 whitelist fixture sync is a primary task not collateral (D-009a), Rule 3 adapter-interface optional fields > required (D-009b reciprocal).
312
+
313
+ ### Verification (4.0.0-beta.7)
314
+
315
+ - `pnpm tsc -p tsconfig.json --noEmit` — 0 errors
316
+ - `pnpm vitest run tests/unit/ide/ tests/unit/cli/ide-commands.test.ts` — 15 files / 211 tests / 0 failed
317
+ - `peaks workflow verify-pipeline --rid 003-add-zcode-adapter` — `ok=true, complete=true`, 9/9 gate PASS
318
+ - `node bin/peaks.js ide model --current` (against real z-code installation) — `modelId: "M3"`, `detected: true`
319
+
320
+ ### Sediment (Step 11) — 7 lessons in `.peaks/memory/`
321
+
322
+ | File | Topic |
323
+ |---|---|
324
+ | `z-code-peaks-loop-9-ide-adapter-vendor-neutrality-adapter.md` | z-code 9th IDE + vendor-neutrality adapter pattern |
325
+ | `peaks-loop-install-model-getstrongestmodelid-fallback.md` | install no longer hardcodes default model |
326
+ | `desktop-application-ide-adapter-z-code-cli.md` | desktop-app IDE adapter field-degradation decision |
327
+ | `peaks-code-runbook-4-0-0-beta-6-skill-md-cli-d-001-d-002-d-003-d-010.md` | 4 SKILL.md / CLI drift points |
328
+ | `2026-07-09-zcode-adapter-overview.md` | RID 003 overall summary (project record) |
329
+ | `peaks-ide-runtime-detect-zcode-only.md` | `peaks ide model --current` z-code 4-tier priority chain |
330
+ | `ide-adapter-detectcurrentmodel-optional-interface-pattern.md` | optional interface field extension pattern |
331
+
332
+ ### Known follow-ups (S3-cleanup backlog)
333
+
334
+ - **Slice C extension** — other 8 IDEs' `detectCurrentModel()` (claude-code / trae / cursor / codex / qoder / tongyi-lingma / hermes / openclaw). Currently only z-code has a working detector; all 8 still fall through to the back-compat `'claude-opus-4-7'`.
335
+ - **zai / GLM provider entry** — `D-008`: peaks-loop has no built-in provider entry for z-code's default `builtin:zai` (GLM) or `builtin:bigmodel` providers. Users on those providers must add custom `provider.<uuid>` entries to their `~/.peaks/config.json` themselves.
336
+ - **zcode-adapter UNVERIFIED sentinel values** — `hookEvent: 'PreToolUse'`, `toolMatcher: 'Bash'`, `envVar: 'ZCODE_PROJECT_DIR'` are placeholder guesses based on Anthropic-compatible protocol. Real z-code desktop application dogfood will reveal the actual values; replace once known.
337
+ - **`IdeAdapter` interface optional fields** — `D-009b` proposes converting `hookEvent` / `toolMatcher` / `envVar` to optional types, or adding an `unverified: boolean` flag, so future adapters with unknown protocols don't need to fabricate sentinel values.
338
+
339
+ ### Breaking changes
340
+
341
+ None. All 8 pre-existing adapters continue to load without changes. CLI subcommands `peaks ide *` and `peaks ide model --current` are additive.
342
+
343
+ ## 4.0.0-beta.5 — 2026-07-08
344
+
345
+ ### Added — peaks-solo dispatcher (分诊员)
346
+
347
+ - **`peaks-solo` skill** — `skills/peaks-solo/SKILL.md` + 3 references (triage / fallback / sediment). Natural-language front door for the Peaks-Loop skill family. Use when the user describes a task in NL and does not know which peaks-* skill fits. 0 breaking change: 3.x / 4.x `/peaks-code` / `/peaks-content` / `/peaks-doctor` etc. continue to work.
348
+ - **`peaks skill search` CLI** — `src/services/skill/skill-search-service.ts` + `src/cli/commands/skill-search-commands.ts`. Query / tag / domain filters; substring match; structured JSON output. Used by `peaks-solo` to find the right leaf skill. Available as a top-level primitive (not dispatcher-specific).
349
+ - **Sub-skills unchanged** — `peaks-code / peaks-content / peaks-doctor / peaks-issue-fix-orchestrator / peaks-sop / etc.` are NOT modified. peaks-solo sits alongside, not on top.
350
+
351
+ ### Verification (4.0.0-beta.5)
352
+
353
+ - `peaks skill list` shows `peaks-solo` first
354
+ - `peaks skill search --query "code"` returns `peaks-code` with matchScore > 0
355
+ - `peaks skill search --query "xxxxxxxxxxxxx"` returns `[]` (no error)
356
+ - `pnpm vitest run` — full regression green; `peaks-code / peaks-content / peaks-doctor` tests unchanged
357
+ - `peaks code --help` / `peaks content --help` / `peaks doctor --help` — exit 0, behavior unchanged
358
+
359
+ ## 4.0.0-beta.4 — 2026-07-08
360
+
361
+ Loop Engineering crystallization is now the product surface. The 4.0.0-beta.3 line shipped the framework; this release ships the post-run crystallization engine, the Darwin-style ratchet, the bundle share / desktop extension surface, and the karpathy-engineered red-line set that locks them together. Every durable-change entry is gated on a real, completed run; every evolution round is gated on an independent-context evaluation.
362
+
363
+ ### Added — Loop Engineering Asset layer (§4.1, AC-1/AC-2/AC-3)
364
+
365
+ - **`loop_release` table** — `src/services/skillhub/migrations/002-loop-release.sql`. Schema version pinned to `peaks.loop/1` via CHECK constraint. Indexes on `lifecycle_status` and `scenario`. Non-breaking: 4.x `bee_release` rows continue to read.
366
+ - **`loop_bee_relation` table** — `src/services/skillhub/migrations/003-loop-bee-relation.sql`. Schema version `peaks.loop-bee-relation/1`. Roles: `main` / `supporting` / `candidate` / `retired`. Partial UNIQUE index `WHERE role='main'` enforces at most one main bee per loop at the storage layer (defense in depth; the service layer also enforces it).
367
+ - **Schema for the four-loop + dual-asset model** — Zod schemas in `src/services/loop/loop-release-types.ts` and `src/services/loop/loop-bee-relation-types.ts` mirror the §4.1 / §4.6 row shapes and refuse to parse rows whose `schema_version` is not the fixed literal.
368
+
369
+ ### Added — Post-run crystallization flow (§5, AC-4 / AC-5 / AC-6 / AC-7)
370
+
371
+ - **`crystallization_event` table** — `src/services/skillhub/migrations/006-crystallization-event.sql`. Schema version `peaks.crystallization/1`. Carries the 4-section evidence brief inline; FKs to optional created/updated loop_release / bee_release.
372
+ - **`CrystallizationService`** — `src/services/crystallization/crystallization-service.ts`. Pre-run gate: `task_status='completed'` AND `gates_passed=true` AND `evidence_collected=true` (Zod literal enforcement + service-layer re-assertion). Atomic single-transaction write of loop_release + bee_release header + bee_manifest + loop_bee_relation(main) + crystallization_event(brief inline).
373
+ - **`peaks asset crystallize`** CLI — `src/cli/commands/asset-commands.ts`. Required options: `--brief-what-happened`, `--brief-why-it-matters`, `--brief-what-learned`, `--brief-what-action`. A partial brief is rejected with `MISSING_BRIEF_SECTION` and exit 1 (RL-7).
374
+ - **`peaks asset dispose` / `peaks asset status`** — cross-asset dispose (trace_only / retain / destroy) and lifecycle status dashboard.
375
+
376
+ ### Added — Darwin-style ratchet (§6, AC-8 / AC-9 / AC-10 / AC-11)
377
+
378
+ - **`evolution_evaluation` table** — `src/services/skillhub/migrations/005-evolution-evaluation.sql`. Schema version `peaks.evolution/1`. Carries `target_kind`, `target_release_id`, `optimization_dimensions_json` (length-1 enforced at service layer), `target_count=1` (CHECK), `author_id`, `evaluator_id`, `skeptic_id` (three independent agents), `verdict` ∈ {`keep`, `revert`, `needs-user-decision`}, `user_confirmation_pointer`, `brief_pointer`, and the four-section brief projection.
379
+ - **`EvolutionService`** — `src/services/evolution/evolution-service.ts`. Hard rules: single object (AC-8) + single optimization dimension (AC-8) + author ≠ evaluator ≠ skeptic (AC-10/AC-12/AC-14) + score_delta >= score_delta_min for `keep` (AC-11, default 1.0) + user_confirmation_pointer required for `keep` (AC-15).
380
+ - **`peaks evolution propose / evaluate / revert / mark-keep / status`** CLI — `src/cli/commands/evolution-commands.ts`. Each error path emits a stable wire-format code (`EVOLUTION_MULTI_OBJECT` / `EVOLUTION_MULTI_DIMENSION` / `EVOLUTION_SELF_SCORE` / `EVOLUTION_DELTA_BELOW_THRESHOLD` / `EVOLUTION_MISSING_USER_CONFIRMATION`).
381
+ - **Independent-evaluator runner** — `src/services/evolution/independent-evaluator-runner.ts`. Frozen `EvaluationPackage` containing only `target_kind / target_release_id / optimization_dimension / before_snapshot / after_snapshot / diff / rubric / red_lines / source_traces` — no author session, no author reasoning, no recommendation framing (AC-12 / AC-13).
382
+ - **Regression-skeptic runner** — `src/services/evolution/regression-skeptic-runner.ts`. A SEPARATE agent that emits `driftRisks / overfitRisks / safetyRegressionRisks` plus an optional `blocker` (which forces `verdict='revert'`).
383
+
384
+ ### Added — Karpathy-engineered red-line set (AC-21 / AC-22 / AC-23)
385
+
386
+ - **`.peaks/standards/loop-engineering-guidelines.md`** — the single source of truth for the 10 red lines RL-0..RL-9, each in the four-section karpathy form (Failure modes / Rewrite / Self-check / Out-of-scope). Co-equal karpathy × darwin layers (RL-0).
387
+ - **`peaks standards lint --category loop-engineering`** — `src/services/standards/loop-engineering-lint.ts`. Parses the guideline file and asserts every red line has all four sections, fails closed otherwise.
388
+ - **`peaks skill lint --category loop-engineering-readiness --path <skill-dir>`** — `src/services/standards/loop-engineering-readiness-lint.ts` + `src/cli/commands/skill-loop-engineering-readiness-commands.ts`. Asserts a peaks-* SKILL.md (a) references `.peaks/standards/loop-engineering-guidelines.md`, (b) does not introduce a CLI verb the user is meant to type, (c) does not introduce a JSON / manifest hand-authoring surface. Alias verb: `peaks skill ready --category loop-engineering-readiness --path <skill-dir>`.
389
+ - **Unit guard** — `tests/unit/standards/loop-engineering-guidelines.test.ts` enforces the four-section shape for every red line in the file.
390
+ - **peaks-code domain boundary (RL-8)** — `skills/peaks-code/SKILL.md` self-declares as the code-domain long-task loop engineering orchestrator and is NOT a general-purpose orchestrator. Cross-domain peaks-* skills (peaks-content, peaks-issue-fix-orchestrator) import the shared guideline file and pass the readiness lint.
391
+
392
+ ### Added — Bundle share + desktop extension surface (§7A, AC-24 / AC-25 / AC-26)
393
+
394
+ - **Share / desktop fields** — `src/services/skillhub/migrations/004-loop-bee-extension.sql`. Adds `shareable / share_excluded_paths / desktop_visible / export_bundle_format` to `loop_release`, and `shareable / desktop_visible` to `bee_release`. `export_bundle_format` is pinned to `peaks.bundle/1` via CHECK constraint. Non-breaking: every new column has a DEFAULT.
395
+ - **Bundle writer** — `src/services/share/bundle-writer.ts`. Writes a `peaks.bundle/1` tar.gz with `manifest.json`, `relations.json`, `evidence_briefs/*.json`, content-addressed `blobs/<sha256>`, and `EVALUATION_REQUIRED.md`. Hard block: `shareable=false` throws `BundleNotShareableError(SHARE_BUNDLE_ERROR_CODES.NOT_SHAREABLE)` BEFORE any tarball work, for both loop and bee kinds.
396
+ - **Bundle reader** — `src/services/share/bundle-reader.ts`. Hard blocks: `format_version_major != 1` is rejected (AC-25); `schema_versions` mismatch is rejected; the imported release ALWAYS lands as `candidate` (AC-25 / §10 RL-9). The bundle carries an `EVALUATION_REQUIRED.md` marker telling the receiver to run an independent evaluation before any durable change.
397
+ - **`peaks loop export` / `peaks loop import`** — `src/cli/commands/loop-commands.ts`. Existing 14.x `peaks loop *` subcommands are preserved; M7 only ADDS export / import.
398
+ - **`peaks bee export` / `peaks bee import`** — `src/cli/commands/share-commands.ts`. Same hard-block semantics.
399
+ - **Receiver-side integration test** — `tests/integration/share-bundle-roundtrip.test.ts` asserts the round-trip lands as `candidate` (AC-25), that `shareable=false` blocks the export at the CLI layer, and that without an `evolution_evaluation` row the receiver has no path to `stable` (AC-26).
400
+
401
+ ### Added — SkillHub expansion (5 new tables / non-breaking)
402
+
403
+ The 6+ relation table layout is preserved. 5 new tables added under `.peaks/_runtime/<sessionId>/`:
404
+ - `loop_release` (002)
405
+ - `loop_bee_relation` (003)
406
+ - loop↔bee share / desktop extension columns (004)
407
+ - `evolution_evaluation` (005)
408
+ - `crystallization_event` (006)
409
+
410
+ Migration is non-breaking: every new column has a DEFAULT and the new tables sit alongside the existing 4.x schema.
411
+
412
+ ### Added — New CLI verbs (spec §7.4)
413
+
414
+ - `peaks loop init / list / show / search / recent / export / import`
415
+ - `peaks asset crystallize / dispose / status`
416
+ - `peaks evolution propose / evaluate / revert / mark-keep / status`
417
+ - `peaks skill lint --category loop-engineering-readiness --path <skill-dir>`
418
+ - `peaks skill ready --category loop-engineering-readiness --path <skill-dir>` (alias)
419
+
420
+ ### Changed
421
+
422
+ - **`peaks workflow *`** is reframed as the execution trace surface (per spec §7.6 demotion); it remains functional. The user-facing verb is "replay this run", not "create a new asset".
423
+ - **peaks-maker skill** is narratively repositioned to "Loop crystallizer + Bee creator + Evolution gatekeeper" (per spec §7.5); only the SKILL.md and memory references are re-narrated, the `id` is preserved.
424
+
425
+ ### Verification (4.0.0-beta.4)
426
+
427
+ - `tsc --noEmit` zero errors
428
+ - `peaks standards lint --category loop-engineering` parses all 10 red lines + 4 sections each (lint passes)
429
+ - `pnpm vitest run tests/unit/{standards,crystallization,evolution,share}/` — 13 files / 154 unit tests pass
430
+ - `pnpm vitest run tests/integration/{share-bundle-roundtrip,dogfood-loop-engineering-crystallization,asset-crystallize-cli,evolution-cli,skill-loop-engineering-readiness-cli}.test.ts` — 5 files / 26 integration tests pass
431
+ - M8 dogfood (`tests/integration/dogfood-loop-engineering-crystallization.test.ts`) crystallizes the M0..M7 work into a real loop + bee + relation + event in 644ms (defense in depth: the release crystallizes itself)
432
+
433
+ ### Migration
434
+
435
+ - 4.x `bee_release` rows continue to read. No data migration required.
436
+ - The 5 new tables are added via non-destructive `CREATE TABLE IF NOT EXISTS` migrations.
437
+ - The `bundle-writer / bundle-reader` pair is additive; existing `peaks skill sediment export / import` remains as an alias for one release cycle, then deprecates.
438
+ - The peaks-code SKILL.md is unchanged from 4.0.0-beta.3 — no `peaks-solo` migration needed for users already on beta.2 or later.
439
+
440
+ ## 4.0.0-beta.2 — 2026-07-07
441
+
5
442
  ### Renamed
6
- - **`peaks-code` → `peaks-code`** — the long-running code-domain orchestrator skill (PRD/RD/QA/UI/SC/TXT pipeline) has been renamed to communicate its scope more accurately. The on-disk directory `~/.peaks/skills/.system/bees/peaks-code/` is preserved as a stable install location; only the manifest `id` and `displayName` change (`peaks-code` / `Peaks Code`). All four sibling skills (`peaks-code-resume` → `peaks-resume`, `peaks-code-status` → `peaks-status`, `peaks-code-test` → `peaks-test`) are now top-level primitives rather than child skills of `peaks-code`. Migration: `peaks session migrate-skill-name --from peaks-code --to peaks-code --apply`.
443
+ - **`peaks-solo` → `peaks-code`** — the long-running code-domain orchestrator skill (PRD/RD/QA/UI/SC/TXT pipeline) has been renamed to communicate its scope more accurately. The on-disk directory `~/.peaks/skills/.system/bees/peaks-code/` is preserved as a stable install location; only the manifest `id` and `displayName` change (`peaks-code` / `Peaks Code`). All four sibling skills (`peaks-solo-resume` → `peaks-resume`, `peaks-solo-status` → `peaks-status`, `peaks-solo-test` → `peaks-test`) are now top-level primitives rather than child skills of `peaks-solo`. Migration: `peaks session migrate-skill-name --from peaks-solo --to peaks-code --apply`.
7
444
 
8
445
  ### Changed (Breaking)
9
- - **`peaks skill presence:set peaks-code` no longer recognized** — the canonical skill name is now `peaks-code`. Existing `.peaks/_runtime/*/active-skill.json` files carrying `skill: "peaks-code"` are migrated by `peaks session migrate-skill-name`. Manual override: edit the file and replace `"skill": "peaks-code"` with `"skill": "peaks-code"`.
10
- - **CLI surface unchanged** — `peaks solo`, `peaks solo --fast`, and the entire `peaks-code` skill runbook continue to function; only the skill-identification field (`id`, `displayName`, presence `skill` value) changes. The runbook name `peaks solo` is the user-facing verb and remains as-is.
446
+ - **`peaks skill presence:set peaks-solo` no longer recognized** — the canonical skill name is now `peaks-code`. Existing `.peaks/_runtime/*/active-skill.json` files carrying `skill: "peaks-solo"` are migrated by `peaks session migrate-skill-name`. Manual override: edit the file and replace `"skill": "peaks-solo"` with `"skill": "peaks-code"`.
447
+ - **CLI surface unchanged** — `peaks code`, `peaks code --fast`, and the entire `peaks-code` skill runbook continue to function; only the skill-identification field (`id`, `displayName`, presence `skill` value) changes. The runbook name `peaks code` is the user-facing verb and remains as-is.
448
+
449
+ ### Fixed (post-rename polish)
450
+ - **Rule name normalization** — `Code Code-Change Red Line` → `Code Commit Ban Red Line` (8 occurrences across `src/services/audit/enforcers/code-ban.ts`, `src/cli/commands/hook-handle.ts`, and the audit tests). Aligns with `red-line-catalog.ts` entry `rl-code-ban-001` / `Code Commit Ban`.
451
+ - **Wire-format error code rename** — `SOLO_MODE_REQUIRES_SOLO_WORKFLOW` → `CODE_MODE_REQUIRES_CODE_WORKFLOW` and `UNSUPPORTED_SOLO_MODE` → `UNSUPPORTED_CODE_MODE` in `src/cli/commands/workflow-commands.ts` (4 test sites updated).
452
+ - **Test local consts** — `soloResult/soloOutput` → `codeResult/codeOutput` in `tests/unit/cli-program.workflow.test.ts`; `SOLO_PATH/soloAbsPath` → `CODE_PATH/codeAbsPath` in `tests/unit/code/skills-subagent-scope-dir.test.ts`; `SOLO_REF/SOLO_FANOUT_REF` → `CODE_REF/CODE_FANOUT_REF` in `tests/unit/dispatch/dispatch-fanout-mandatory.test.ts`.
453
+ - **CHANGELOG self-contradiction** — the rename entry previously read `peaks-code → peaks-code` (collapsed by the global `s/Solo/Code/g` substitution). Now correctly reads `peaks-solo → peaks-code`.
454
+ - **`deriveRuleName` test expectation** — `tests/unit/services/audit/classifier.test.ts` expected 9 words but the function correctly truncates to 8. Updated to match the new word split introduced by `Code Commit Ban` (2 words) replacing `Code Code-Change` (1 hyphenated word).
455
+ - **Output style mode label** — `.claude/output-styles/peaks-skill-swarm.md` now uses `Code` instead of `Solo` in the mode badge and prose (3 occurrences).
456
+ - **Project history row** — `.peaks/PROJECT.md` session-history row `001-solo-memory-write-broken` → `001-code-memory-write-broken`.
457
+ - **Video demo copy** — `examples/video-demo/src/copy.ts` `skillWas: 'peaks-solo'` → `skillWas: 'peaks-code'` (legacy label, both locales).
11
458
 
12
459
  ### Added
13
460
  - **Manifest id field** — `.peaks/skills/.system/bees/peaks-code/manifest.json` now carries `{ "id": "peaks-code", "displayName": "Peaks Code" }`. The `migrate-skill-name` service explicitly skips this file (test: `session-migrate-skill-name.test.ts:69` "跳过 .peaks/skills/.system/bees/peaks-code/manifest.json") so the canonical id is only ever edited by hand or by an explicit `peaks skill sediment refine-bee` flow, never by bulk migration.
14
461
  - **Spec §4.1.1 rewrite** — `docs/superpowers/specs/2026-07-04-peaks-maker-dynamic-skill-sediment-design.md` §4.1.1 has been rewritten from "peaks-code as preserved alias" to "peaks-code as the system-stable code-domain bee (renamed from peaks-code)". The plan's spec-coverage table now references the renamed heading.
15
462
  - **Migration helper** — `peaks session migrate-skill-name --from <old> --to <new> [--apply]` is the supported path for renaming skill references in `.peaks/_runtime/`. Idempotent; skip-list includes `.peaks/memory/**` and `.peaks/skills/.system/bees/peaks-code/manifest.json`.
16
463
 
464
+ ### Verification
465
+ - `tsc --noEmit` zero errors
466
+ - Full `vitest run` exit 0 (all 30 touched test files / 265 directly-tested assertions pass)
467
+ - `silent-warning-detector` OK on 481 files
468
+ - All rename+polish changes committed as `b1dbc51 chore(rename): complete peaks-solo → peaks-code sweep + polish`
469
+
17
470
  ## 3.1.2 — 2026-07-04
18
471
 
19
472
  ### Added — Mechanical Job-mode gates (Step 0.8 enforcement)
20
473
 
21
- The v3.1.1 recorder-only design was bypassed twice under load (2026-07-03 35-slice incident, 2026-07-04 3018-file incident): the LLM skipped `peaks solo detect-job` and ran fake-completion narratives instead of Job mode. The v3.1.2 patch converts Step 0.8 from "LLM should call" to "LLM cannot proceed without calling" through four mechanical gates — no LLM interpretation required.
474
+ The v3.1.1 recorder-only design was bypassed twice under load (2026-07-03 35-slice incident, 2026-07-04 3018-file incident): the LLM skipped `peaks code detect-job` and ran fake-completion narratives instead of Job mode. The v3.1.2 patch converts Step 0.8 from "LLM should call" to "LLM cannot proceed without calling" through four mechanical gates — no LLM interpretation required.
22
475
 
23
- - **PreToolUse hook** — `peaks workspace init` now installs a `Bash` matcher in `.claude/settings.local.json` (TEMPLATE_VERSION bumped 1.2.0 → 1.3.0) that runs `peaks solo gate-step-08 --project .` before every Bash call. Exit 0 = allow, exit 2 = block. Existing `Write|Edit|MultiEdit` matcher preserved. Re-running `peaks workspace init` is idempotent (`templateContentMatches`).
24
- - **`peaks solo gate-step-08`** — new service `src/services/solo/step-08-gate.ts` (~120 LOC) + CLI. Reads `.peaks/_runtime/<sessionId>/job-shape.json`. When `decision.isJob=true` AND `job/<jid>/progress.json` exists, prints `Next: slice #<done+1> of <total> (<currentSlice>)` so the LLM cannot wake up cold. When the file is missing AND the user's prompt (from `--prompt` / `last-prompt.txt`) matches the fail-closed backup regex `/(until|全部|until all done|disavow cost|不用考虑费用|all of them)/i`, exits 2 with `BLOCKED:` on stderr.
25
- - **Size-fear ban** — `peaks solo emit-handoff`. New service `src/services/solo/emit-handoff.ts` (~70 LOC) + CLI. Under Job mode (`isJob=true`), refuses to emit a final handoff while `remaining > 0`. Codes: `JOB_NOT_INITIALIZED` (no state.json), `JOB_REMAINING_BLOCKED` (remaining > 0), allow when `remaining === 0`, allow under `--force-under-job` override.
26
- - **Forced auto-compact** — extended `peaks solo context-now` with `--enforce-job-mode` (auto-enabled when `job-shape.json` says `isJob=true`). At `ratio >= 0.85` returns `action: 'auto-compact-now'` (MANDATORY, not advisory); at `ratio >= 0.95` returns `action: 'red-line'`. SKILL.md Step N+2 prose updated: "in Job mode, ≥ 0.85 is MANDATORY auto-compact."
476
+ - **PreToolUse hook** — `peaks workspace init` now installs a `Bash` matcher in `.claude/settings.local.json` (TEMPLATE_VERSION bumped 1.2.0 → 1.3.0) that runs `peaks code gate-step-08 --project .` before every Bash call. Exit 0 = allow, exit 2 = block. Existing `Write|Edit|MultiEdit` matcher preserved. Re-running `peaks workspace init` is idempotent (`templateContentMatches`).
477
+ - **`peaks code gate-step-08`** — new service `src/services/code/step-08-gate.ts` (~120 LOC) + CLI. Reads `.peaks/_runtime/<sessionId>/job-shape.json`. When `decision.isJob=true` AND `job/<jid>/progress.json` exists, prints `Next: slice #<done+1> of <total> (<currentSlice>)` so the LLM cannot wake up cold. When the file is missing AND the user's prompt (from `--prompt` / `last-prompt.txt`) matches the fail-closed backup regex `/(until|全部|until all done|disavow cost|不用考虑费用|all of them)/i`, exits 2 with `BLOCKED:` on stderr.
478
+ - **Size-fear ban** — `peaks code emit-handoff`. New service `src/services/code/emit-handoff.ts` (~70 LOC) + CLI. Under Job mode (`isJob=true`), refuses to emit a final handoff while `remaining > 0`. Codes: `JOB_NOT_INITIALIZED` (no state.json), `JOB_REMAINING_BLOCKED` (remaining > 0), allow when `remaining === 0`, allow under `--force-under-job` override.
479
+ - **Forced auto-compact** — extended `peaks code context-now` with `--enforce-job-mode` (auto-enabled when `job-shape.json` says `isJob=true`). At `ratio >= 0.85` returns `action: 'auto-compact-now'` (MANDATORY, not advisory); at `ratio >= 0.95` returns `action: 'red-line'`. SKILL.md Step N+2 prose updated: "in Job mode, ≥ 0.85 is MANDATORY auto-compact."
27
480
  - **On-disk slice progress** — `peaks job checkpoint --state done` now writes `.peaks/_runtime/<sessionId>/job/<jid>/progress.json` after updating state.json. New `peaks job progress --job-id <jid>` reader. `gate-step-08` reads the same file in its allow-job path so the LLM gets resume context BEFORE any Bash call. SKILL.md Step 0.7 updated: "if progress.json exists, read it FIRST and surface `Next: slice #N of M (<currentSlice>)`."
28
481
 
29
482
  ### Tests (v3.1.2)
30
483
 
31
- - `tests/unit/solo/gate-step-08.test.ts` — 9 unit tests covering the 4 paths + Next: slice context injection + backup-regex sanity + prompt-source fallback.
32
- - `tests/unit/solo/emit-handoff.test.ts` — 10 unit tests covering the 4 paths + `--force-under-job` override + `JOB_NOT_INITIALIZED` + skipped-slices edge case + `--job-id` override.
33
- - `tests/integration/solo-gate-step-08-hook.test.ts` — 5 integration tests spawning `node bin/peaks.js solo gate-step-08` as a real child process (the hook protocol itself), asserting exit 0 / exit 2 + stderr BLOCKED line + JSON envelope shape.
34
- - Extended `tests/unit/solo/solo-step-08-block-guard.test.ts` to assert SKILL.md + runbook.md reference `peaks solo gate-step-08`, `peaks solo emit-handoff`, `peaks job progress`, and the Job-mode MANDATORY auto-compact prose.
35
- - Extended `tests/unit/workspace/workspace-init-claude-hooks.test.ts` case-A to assert both PreToolUse matchers (`Write|Edit|MultiEdit` AND `Bash`) are emitted with the new Bash command invoking `peaks solo gate-step-08`.
484
+ - `tests/unit/code/gate-step-08.test.ts` — 9 unit tests covering the 4 paths + Next: slice context injection + backup-regex sanity + prompt-source fallback.
485
+ - `tests/unit/code/emit-handoff.test.ts` — 10 unit tests covering the 4 paths + `--force-under-job` override + `JOB_NOT_INITIALIZED` + skipped-slices edge case + `--job-id` override.
486
+ - `tests/integration/code-gate-step-08-hook.test.ts` — 5 integration tests spawning `node bin/peaks.js code gate-step-08` as a real child process (the hook protocol itself), asserting exit 0 / exit 2 + stderr BLOCKED line + JSON envelope shape.
487
+ - Extended `tests/unit/code/code-step-08-block-guard.test.ts` to assert SKILL.md + runbook.md reference `peaks code gate-step-08`, `peaks code emit-handoff`, `peaks job progress`, and the Job-mode MANDATORY auto-compact prose.
488
+ - Extended `tests/unit/workspace/workspace-init-claude-hooks.test.ts` case-A to assert both PreToolUse matchers (`Write|Edit|MultiEdit` AND `Bash`) are emitted with the new Bash command invoking `peaks code gate-step-08`.
36
489
 
37
490
  ### Memory
38
491
 
@@ -44,15 +497,15 @@ Two consecutive ship-day incidents motivated this release: `2026-07-03-v3-1-0-jo
44
497
 
45
498
  `peaks-code` Step 0.8 is no longer prose-only: the LLM makes the Job-shape judgement, the CLI records it. The CLI is a **recorder and gate**, not a detector — no keyword regex anywhere in the service or CLI (the LLM is the source of truth). Downstream steps refuse to proceed until the decision file exists.
46
499
 
47
- - New service: `src/services/solo/job-shape-decision.ts` — `readJobShapeDecision` / `writeJobShapeDecision` / `validateJobShapeDecision`. Persists to `.peaks/_runtime/<sessionId>/job-shape.json`; server-side stamps `decidedAt` so the LLM cannot back-date; throws `JOB_SHAPE_NOT_DECIDED` on missing / unreadable / malformed.
500
+ - New service: `src/services/code/job-shape-decision.ts` — `readJobShapeDecision` / `writeJobShapeDecision` / `validateJobShapeDecision`. Persists to `.peaks/_runtime/<sessionId>/job-shape.json`; server-side stamps `decidedAt` so the LLM cannot back-date; throws `JOB_SHAPE_NOT_DECIDED` on missing / unreadable / malformed.
48
501
  - New CLI subcommands:
49
- - `peaks solo detect-job --is-job <bool> --rationale <text> --suggested-job-id <jid> [--suggested-strategy single|rotating] [--confidence high|medium|low] [--force]` — recorder. Validates `suggestedJobId` against `/^[a-z0-9][a-z0-9-]{2,40}$/`, hashes the user prompt, writes the file. Refuses overwrite without `--force`.
50
- - `peaks solo read-job-shape` — downstream gate. Returns the current record or `JOB_SHAPE_NOT_DECIDED`.
51
- - New tests: `tests/unit/solo/job-shape-decision.test.ts` (validate happy/sad, server-stamp `decidedAt`, force semantics, missing/unreadable/malformed, round-trip, promptHash determinism), `tests/integration/solo-detect-job-command.test.ts` (CLI spawn happy / bad-flag / read-back / fresh / force), `tests/unit/solo/solo-step-08-block-guard.test.ts` (locks the SKILL.md / runbook contract: `BLOCKING on LLM judgement`, `peaks solo detect-job`, `peaks solo read-job-shape`, and runbook ordering before `# After Step 7`).
502
+ - `peaks code detect-job --is-job <bool> --rationale <text> --suggested-job-id <jid> [--suggested-strategy single|rotating] [--confidence high|medium|low] [--force]` — recorder. Validates `suggestedJobId` against `/^[a-z0-9][a-z0-9-]{2,40}$/`, hashes the user prompt, writes the file. Refuses overwrite without `--force`.
503
+ - `peaks code read-job-shape` — downstream gate. Returns the current record or `JOB_SHAPE_NOT_DECIDED`.
504
+ - New tests: `tests/unit/code/job-shape-decision.test.ts` (validate happy/sad, server-stamp `decidedAt`, force semantics, missing/unreadable/malformed, round-trip, promptHash determinism), `tests/integration/code-detect-job-command.test.ts` (CLI spawn happy / bad-flag / read-back / fresh / force), `tests/unit/code/code-step-08-block-guard.test.ts` (locks the SKILL.md / runbook contract: `BLOCKING on LLM judgement`, `peaks code detect-job`, `peaks code read-job-shape`, and runbook ordering before `# After Step 7`).
52
505
 
53
506
  ### Hard red line #10 (v3.1.1)
54
507
 
55
- The LLM MUST NOT skip `peaks solo detect-job` even when the trigger is obvious from context. If the next step's `read-job-shape` throws `JOB_SHAPE_NOT_DECIDED`, Solo MUST record a decision before proceeding. Keyword-based "I already know it's a Job" is not a substitute — the LLM is the only authority for the Job-shape judgement, and the CLI is the only place that records it.
508
+ The LLM MUST NOT skip `peaks code detect-job` even when the trigger is obvious from context. If the next step's `read-job-shape` throws `JOB_SHAPE_NOT_DECIDED`, Code MUST record a decision before proceeding. Keyword-based "I already know it's a Job" is not a substitute — the LLM is the only authority for the Job-shape judgement, and the CLI is the only place that records it.
56
509
 
57
510
  ### Memory
58
511
 
@@ -62,7 +515,7 @@ Incident + rationale: `.peaks/memory/2026-07-03-v3-1-0-job-trigger-miss.md`. Thi
62
515
 
63
516
  ### Fixed — peaks-code external-references authority declaration
64
517
 
65
- - `skills/peaks-code/SKILL.md` External-references paragraph now ends with `Peaks-Loop Solo gates and artifacts remain authoritative.` to satisfy `tests/unit/skill-external-invocation.test.ts:63` (`PEAKS_AUTHORITATIVE_PATTERN`). One-line surgical patch; no behaviour change.
518
+ - `skills/peaks-code/SKILL.md` External-references paragraph now ends with `Peaks-Loop Code gates and artifacts remain authoritative.` to satisfy `tests/unit/skill-external-invocation.test.ts:63` (`PEAKS_AUTHORITATIVE_PATTERN`). One-line surgical patch; no behaviour change.
66
519
 
67
520
  ### Added — Peaks-Loop Job
68
521
 
@@ -104,19 +557,19 @@ The v2.13.0 auto-compact design shipped `shell-exec` as the only pathway, which
104
557
  - **New `ide-native` pathway** — `src/services/context/auto-compact-dispatcher.ts:138-155` routes main-session compacts through `installAutoCompactHook`, which writes a PreToolUse hook into `.claude/settings.local.json` (matcher `Bash|Task`, command `peaks session auto-compact-hook`).
105
558
  - **New `peaks session auto-compact-hook` CLI** — `src/cli/commands/session-auto-compact-hook-command.ts`. Reads `CLAUDE_CONTEXT_USAGE_PERCENT`; below 0.95 exits 0 silent; at ratio ≥ 0.95 spawns `claude --compact` in-band against the **current** runner (detached + unref, never blocks the runner's tool call). ENOENT-safe: if `claude` is not on PATH (e.g. user runs Claude Code as an MCP), the hook logs a stderr hint and exits 0 silent rather than crashing the runner.
106
559
  - **New `installAutoCompactHook` / `removeAutoCompactHook` service** — `src/services/hooks/auto-compact-hook-install.ts`. Idempotent: re-install returns `already-installed` and does NOT re-write the file; remove preserves other PreToolUse entries (the existing fact-forcing bypass hook on every peaks-loop consumer project survives).
107
- - **Lazy install** — hook is installed on first `peaks solo auto-compact` invocation, NOT on `peaks workspace init`. User has opted in by running the command; no zero-touch surprise.
560
+ - **Lazy install** — hook is installed on first `peaks code auto-compact` invocation, NOT on `peaks workspace init`. User has opted in by running the command; no zero-touch surprise.
108
561
  - **Claude Code adapter** — `compactPathway` changed from `shell-exec` to `ide-native` for `target='main'`. Sub-agent shells still get the legacy `shell-exec` pathway.
109
562
 
110
- ### Fixed — Solo Step N+2 prose (was 75% / "do NOT auto-execute")
563
+ ### Fixed — Code Step N+2 prose (was 75% / "do NOT auto-execute")
111
564
 
112
- - `skills/peaks-code/SKILL.md` Step N+2 paragraph rewritten: thresholds now 0.85 pre-compact / 0.95 red-line (matches v2.13.0 auto-compact), explicit Karpathy §4 compact-red-line exception cited, `peaks solo context-now --json` is the canonical probe primitive (replaces `peaks context check --prompt-size <bytes>` hand-pass).
565
+ - `skills/peaks-code/SKILL.md` Step N+2 paragraph rewritten: thresholds now 0.85 pre-compact / 0.95 red-line (matches v2.13.0 auto-compact), explicit Karpathy §4 compact-red-line exception cited, `peaks code context-now --json` is the canonical probe primitive (replaces `peaks context check --prompt-size <bytes>` hand-pass).
113
566
  - `src/services/context/main-session-monitor.ts` — `@deprecated` JSDoc on `evaluateMainSessionThreshold` cross-links to `evaluateCompactTrigger` (0.85/0.95); legacy 4-tier envelope retained for statusline callers (migration to v2.15.0).
114
567
 
115
568
  ### Tests — 4 new suites + 3 modified files
116
569
 
117
570
  - `tests/unit/services/hooks/auto-compact-hook-install.test.ts` (7 cases) — install / idempotent / remove / preservation of unrelated entries.
118
571
  - `tests/unit/services/context/auto-compact-dispatcher-ide-native.test.ts` (9 cases) — `dispatchIdeCompact({ target: 'main' })` routes to `ide-native`; round-trip install / remove.
119
- - `tests/unit/skills/solo-step-n-plus-2-prose.test.ts` (6 cases) — pins the 0.85 / 0.95 / Karpathy §4 contract; asserts `75%` is NOT in the paragraph.
572
+ - `tests/unit/skills/code-step-n-plus-2-prose.test.ts` (6 cases) — pins the 0.85 / 0.95 / Karpathy §4 contract; asserts `75%` is NOT in the paragraph.
120
573
  - `tests/unit/cli/session-auto-compact-hook-command.test.ts` (3 cases) — dogfood surfacing: below-threshold silent, missing env-var silent, red-line + ENOENT exits 0 with stderr hint.
121
574
  - `tests/unit/services/context/main-session-monitor.test.ts` (+2 AC-4 cases), `tests/unit/context/auto-compact-main-target.test.ts` (pathway assertion updated) — coverage.
122
575
 
@@ -231,39 +684,39 @@ The peak-loop skill-external-invocation audit pattern (capability discovery + re
231
684
 
232
685
  ### Removed — change-id shim (cleanup post v2.17.0 hard-kill, rolled up from v2.19.0)
233
686
 
234
- **PATCH bump from 2.18.3**. Resolves the user-reported "新项目第一次使用 peaks-code 时初始化完不按流程走、开发效果差、再开 session 后才正常" defect. Two surgical fixes to the first-run Solo gates (3 source files, 1 new test file, 2 test-regression updates; no schema change, no new dependencies, no public API change).
687
+ **PATCH bump from 2.18.3**. Resolves the user-reported "新项目第一次使用 peaks-code 时初始化完不按流程走、开发效果差、再开 session 后才正常" defect. Two surgical fixes to the first-run Code gates (3 source files, 1 new test file, 2 test-regression updates; no schema change, no new dependencies, no public API change).
235
688
 
236
689
  ### Bugfix — `step-0.55-1x-upgrade` always pauses, even in `full-auto` (P0)
237
690
 
238
- The 1.x → 2.0 upgrade is an irreversible external side effect (rewrites `~/.peaks/config.json` + the on-disk cache schema). Pre-fix, `peaks solo should-pause --step step-0.55-1x-upgrade --mode full-auto` returned `shouldPause: false` because the step was declared in `GATED_STEPS` but missing from the `HARD_PAUSE_STEPS` `Set` that already covered `step-0.5-openspec-opt-in` and `step-0.7-resume-detection`. In `full-auto` mode, the `shouldAutoProceed` branch silently auto-proceeded the upgrade without user consent. The result: 1.x → 2.0 downgrade (or stale 1.x standards/config residue) on the very first Solo run of a fresh project. Post-fix, the step pauses with `gateKind: 'mode-selection-itself'` and the LLM-side caller presents an `AskUserQuestion` to the user.
691
+ The 1.x → 2.0 upgrade is an irreversible external side effect (rewrites `~/.peaks/config.json` + the on-disk cache schema). Pre-fix, `peaks code should-pause --step step-0.55-1x-upgrade --mode full-auto` returned `shouldPause: false` because the step was declared in `GATED_STEPS` but missing from the `HARD_PAUSE_STEPS` `Set` that already covered `step-0.5-openspec-opt-in` and `step-0.7-resume-detection`. In `full-auto` mode, the `shouldAutoProceed` branch silently auto-proceeded the upgrade without user consent. The result: 1.x → 2.0 downgrade (or stale 1.x standards/config residue) on the very first Code run of a fresh project. Post-fix, the step pauses with `gateKind: 'mode-selection-itself'` and the LLM-side caller presents an `AskUserQuestion` to the user.
239
692
 
240
- - **Modified (2):** `src/services/solo/mode-gate.ts` (added 1 entry to `HARD_PAUSE_STEPS`), `src/services/solo/user-touchpoint-classifier.ts` (reclassified the row from `tech/business-only` with `fullAutoCanProceed: true` to `commit-floor/always` with `fullAutoCanProceed: false`).
693
+ - **Modified (2):** `src/services/code/mode-gate.ts` (added 1 entry to `HARD_PAUSE_STEPS`), `src/services/code/user-touchpoint-classifier.ts` (reclassified the row from `tech/business-only` with `fullAutoCanProceed: true` to `commit-floor/always` with `fullAutoCanProceed: false`).
241
694
  - **User-observed symptom (now fixed):** "首次启动后开发效果差" — caused by 1.x standards/config residue silently surviving `full-auto` and contaminating subsequent RD/QA artifact contracts.
242
695
 
243
- ### Bugfix — `--mode` is optional on `peaks solo should-pause` (P1, Step 1 chicken-and-egg)
696
+ ### Bugfix — `--mode` is optional on `peaks code should-pause` (P1, Step 1 chicken-and-egg)
244
697
 
245
- `peaks solo should-pause --step step-1-mode-select` (no `--mode` flag) failed pre-fix with `error: required option --mode <mode> not specified`. Step 1's SEMANTIC is "ask the user what mode to use" — requiring `--mode` to ask mode is a chicken-and-egg. Post-fix, `--mode` is `.option()` (not `.requiredOption()`); the action handler resolves `const mode = opts.mode ?? 'full-auto'` once at the top. All 5 downstream `opts.mode` references inside the same action body now use the local `mode` const. Existing `--mode <x>` callers are unaffected (backward-compatible). The service-layer `shouldPauseAtGate` still requires a resolved mode — defaulting is at the CLI boundary, which is the correct layer for ergonomics.
698
+ `peaks code should-pause --step step-1-mode-select` (no `--mode` flag) failed pre-fix with `error: required option --mode <mode> not specified`. Step 1's SEMANTIC is "ask the user what mode to use" — requiring `--mode` to ask mode is a chicken-and-egg. Post-fix, `--mode` is `.option()` (not `.requiredOption()`); the action handler resolves `const mode = opts.mode ?? 'full-auto'` once at the top. All 5 downstream `opts.mode` references inside the same action body now use the local `mode` const. Existing `--mode <x>` callers are unaffected (backward-compatible). The service-layer `shouldPauseAtGate` still requires a resolved mode — defaulting is at the CLI boundary, which is the correct layer for ergonomics.
246
699
 
247
- - **Modified (1):** `src/cli/commands/solo-commands.ts` (option() + `mode` const + 5 reference rewrites inside the same action handler).
700
+ - **Modified (1):** `src/cli/commands/code-commands.ts` (option() + `mode` const + 5 reference rewrites inside the same action handler).
248
701
  - **User-observed symptom (now fixed):** "再开 session 后才正常" — the first session's failed Step 1 caused the LLM-side caller to fall back to a sticky default mode; the second session's retry landed in the "right" mode by accident.
249
702
 
250
703
  ### Test surface
251
704
 
252
- - **Created (1):** `tests/unit/services/solo/first-run-step-gates.test.ts` — 20 vitest cases (4 modes × `step-0.55-1x-upgrade` pause guard; default-mode vs explicit-mode Step 1; AC-3 backward-compat byte-equality; 8 regression guards on the other 2 hard-pause steps; cross-check that non-hard-pause steps still auto-proceed).
253
- - **Modified (2, regression-data extension):** `tests/unit/services/solo/mode-gate.test.ts` (added `step-0.55-1x-upgrade` to the local `HARD_PAUSE_STEP_SET` test fixture), `tests/unit/services/solo/stale-presence-detection.test.ts` (added the new step to the case-#5 non-Step-1 filter — these existing tests encoded the BUG behavior, so leaving them stale would have caused a false-positive green).
705
+ - **Created (1):** `tests/unit/services/code/first-run-step-gates.test.ts` — 20 vitest cases (4 modes × `step-0.55-1x-upgrade` pause guard; default-mode vs explicit-mode Step 1; AC-3 backward-compat byte-equality; 8 regression guards on the other 2 hard-pause steps; cross-check that non-hard-pause steps still auto-proceed).
706
+ - **Modified (2, regression-data extension):** `tests/unit/services/code/mode-gate.test.ts` (added `step-0.55-1x-upgrade` to the local `HARD_PAUSE_STEP_SET` test fixture), `tests/unit/services/code/stale-presence-detection.test.ts` (added the new step to the case-#5 non-Step-1 filter — these existing tests encoded the BUG behavior, so leaving them stale would have caused a false-positive green).
254
707
  - **Updated (1):** `package.json` + `src/shared/version.ts` (2.18.3 → 2.18.4).
255
708
 
256
709
  ### Why this is the simplest fix
257
710
 
258
711
  - 1-line addition to `HARD_PAUSE_STEPS` + 5-line row replacement in the classifier + 5-line command-arg change with 5 mechanical reference rewrites = 3 source edits. No new abstractions, no new env vars, no new schemas, no CLI surface change beyond the `--mode` defaulting.
259
- - 800-line file cap respected: largest modified file is `solo-commands.ts` (well below the 800 cap).
712
+ - 800-line file cap respected: largest modified file is `code-commands.ts` (well below the 800 cap).
260
713
  - Karpathy #3 surgical: 6 files touched, all justified (3 source + 1 new test + 2 test-regression updates because the existing tests encoded the BUG behavior).
261
714
 
262
715
  ### Verification (QA cycle 1, verdict pass)
263
716
 
264
- - AC-1: `peaks solo should-pause --step step-0.55-1x-upgrade --mode full-auto` → `ok: true, shouldPause: true, gateKind: "mode-selection-itself"` ✅
265
- - AC-2: `peaks solo should-pause --step step-1-mode-select` (no `--mode`) → `ok: true, shouldPause: true` (no "required option" error) ✅
266
- - AC-3: `peaks solo should-pause --step step-1-mode-select --mode full-auto` → byte-identical to AC-2 ✅
717
+ - AC-1: `peaks code should-pause --step step-0.55-1x-upgrade --mode full-auto` → `ok: true, shouldPause: true, gateKind: "mode-selection-itself"` ✅
718
+ - AC-2: `peaks code should-pause --step step-1-mode-select` (no `--mode`) → `ok: true, shouldPause: true` (no "required option" error) ✅
719
+ - AC-3: `peaks code should-pause --step step-1-mode-select --mode full-auto` → byte-identical to AC-2 ✅
267
720
  - Cross-mode 4×2 matrix (full-auto / assisted / strict / swarm × step-0.55 / step-1): 8/8 pause ✅
268
721
  - `peaks-code` first-run sequence (skill presence:check-stale + upgrade --detect-1x + 4 should-pause steps): 6/6 clean ✅
269
722
  - vitest 527/527 passed (27 files, 0 failed, 22.61s wallclock)
@@ -500,9 +953,9 @@ Each original file gets a sibling `import { ... } from './X-helpers.js'` + `expo
500
953
 
501
954
  ### Behavior changes (user-visible)
502
955
 
503
- - **None at the CLI surface.** No new commands, no removed commands, no flag changes. Existing `peaks solo`, `peaks doctor`, `peaks request lint`, `peaks scan file-size` all behave identically.
956
+ - **None at the CLI surface.** No new commands, no removed commands, no flag changes. Existing `peaks code`, `peaks doctor`, `peaks request lint`, `peaks scan file-size` all behave identically.
504
957
  - **Binding file format change (additive only):** on-disk binding files now carry a `#<pid>` suffix in `callerId` and `ownerHint`. Old v2.16.0 / v2.17.0 files without the suffix are still readable via `BindingSchema.safeParse` (v2.18.0 read path is forward-compatible); no automatic rewrite (write-amplification risk deferred to a future `peaks doctor --rebuild-binding` slice).
505
- - **Multi-Claude parallel fix (user-visible in the dogfood scenarios):** opening 2 Claude Code windows in the same project and running `peaks solo` in each now yields 2 distinct sids (was: 1 collided sid, per the v2.17.0 changelog dogfood scenario 1).
958
+ - **Multi-Claude parallel fix (user-visible in the dogfood scenarios):** opening 2 Claude Code windows in the same project and running `peaks code` in each now yields 2 distinct sids (was: 1 collided sid, per the v2.17.0 changelog dogfood scenario 1).
506
959
  - **`/compact` resume (user-visible, no change):** same outer-session-id still reuses the same sid. Verified by dogfood.
507
960
 
508
961
  ### Verification
@@ -519,7 +972,7 @@ Each original file gets a sibling `import { ... } from './X-helpers.js'` + `expo
519
972
  |---|---|---|---|
520
973
  | A | P0 fix verification (binding file format) | PASS | `callerId: 5fa8a7d8-...#13472` matches shell pid 13472; pre-existing instance pid 3876 ≠ current shell — fix works in production-shape data |
521
974
  | B | peaks doctor stale-binding scan | PASS | 0 stale bindings, ttl=300000ms, v2.16.0 schema surface intact |
522
- | C | peaks solo smoke (4 sub-commands) | PARTIAL | 3/4 pass; `peaks request lint --project .` is invalid syntax (needs `<rid>` + `--role`); not a v2.18.0 regression |
975
+ | C | peaks code smoke (4 sub-commands) | PARTIAL | 3/4 pass; `peaks request lint --project .` is invalid syntax (needs `<rid>` + `--role`); not a v2.18.0 regression |
523
976
  | D | env-collision simulation (single shell, 2 envs) | PASS | `fake-session-A#20984` + `fake-session-B#20984` → 2 distinct sids (fupv8b / xnntb1); transposed axis (same pid, different env) verified; primary 2-Claude-windows scenario needs CI integration test with 2 child node processes |
524
977
 
525
978
  **Dogfood verdict:** 3.5 / 4 pass; `recommend_v2.18.0_commit: true`.
@@ -590,7 +1043,7 @@ The first v2.18.0 release deferred two open items to a redo slice; both are now
590
1043
  ### Behavior changes (user-visible)
591
1044
 
592
1045
  - **`--change-id <slug>`** is now a metadata-only slug, not a filesystem scope identifier. Existing commands that accept `--change-id` continue to work; the slug appears in envelope `data.changeId` for traceability.
593
- - **On-disk artifact paths** unchanged from a CLI user's perspective — reviewable artifacts still appear at the locations `peaks solo` / `peaks qa` write them. Internally they key off session id, not change-id.
1046
+ - **On-disk artifact paths** unchanged from a CLI user's perspective — reviewable artifacts still appear at the locations `peaks code` / `peaks qa` write them. Internally they key off session id, not change-id.
594
1047
  - **`peaks doctor` exit code**: now exits 1 when stale bindings are present (in addition to its existing failure conditions).
595
1048
 
596
1049
  ### Verification
@@ -604,9 +1057,9 @@ The first v2.18.0 release deferred two open items to a redo slice; both are now
604
1057
 
605
1058
  Recommended scenarios before next release (see `peaks/_runtime/2026-06-29-session-88411f/txt/handoff-2026-06-29-v2-17-0.md` for details):
606
1059
 
607
- 1. **Multi-Claude parallel提速**: open 2 Claude instances in the same project, run `peaks solo <different goal>` in each. Verify both bindings coexist with distinct sids.
1060
+ 1. **Multi-Claude parallel提速**: open 2 Claude instances in the same project, run `peaks code <different goal>` in each. Verify both bindings coexist with distinct sids.
608
1061
  2. **D1 conflict detection**: 2 instances both targeting the same source file. Verify each writes to its own session-scoped artifact directory.
609
- 3. **`/compact` resume**: run `peaks solo <goal>`, `/compact`, continue. Verify same sid reused.
1062
+ 3. **`/compact` resume**: run `peaks code <goal>`, `/compact`, continue. Verify same sid reused.
610
1063
  4. **Doctor stale**: kill -9 a Claude instance, run `peaks doctor`, verify stale binding listed + `--cleanup-stale` works.
611
1064
 
612
1065
  ### Commits
@@ -619,19 +1072,19 @@ Recommended scenarios before next release (see `peaks/_runtime/2026-06-29-sessio
619
1072
  ### Out of scope (deferred)
620
1073
 
621
1074
  - Runner wiring for D1/D2 in `peaks workspace init` + `peaks audit-goal` (modules exist, not yet called).
622
- - 800-line cap backlog (`session-manager.ts` 710, `solo/` and `verdict/` modules) — unchanged from v2.15.x.
1075
+ - 800-line cap backlog (`session-manager.ts` 710, `code/` and `verdict/` modules) — unchanged from v2.15.x.
623
1076
  - Final removal of `change-id.ts` shims (would require rewriting the 11 src services that still reference them).
624
1077
 
625
1078
  ---
626
1079
 
627
1080
  ## [2.15.1] — 2026-06-28 — 12 Gaps CLI 全套落地 + ice-cola dogfood 验证
628
1081
 
629
- **PATCH bump from 2.15.0**. Follow-up ship for the 12 Gaps positioning memory (peaks-loop 真实定位 + 全套 15 个 Gap CLI 落地). No breaking changes. All new commands are additive top-level (no conflict with existing `peaks solo` / `peaks qa` / `peaks slice` role commands).
1082
+ **PATCH bump from 2.15.0**. Follow-up ship for the 12 Gaps positioning memory (peaks-loop 真实定位 + 全套 15 个 Gap CLI 落地). No breaking changes. All new commands are additive top-level (no conflict with existing `peaks code` / `peaks qa` / `peaks slice` role commands).
630
1083
 
631
1084
  ### Feature — slice DAG layered parallelism + foundation/upstreamSync/complexity 字段
632
1085
 
633
1086
  - `src/services/dispatch/slice-dag.ts` — `SliceNode` 加 3 optional 字段 (`foundation?: boolean` / `upstreamSync?: boolean` / `complexity?: 'trivial'|'simple'|'complex'`). `validateDag` 加字段合法性校验 + foundation-only-depends-on-foundation 防御性规则. `topologicalLevels` 同层内 priority 排序 (foundation > upstreamSync > id asc). 老 DAG hash 稳定.
634
- - `src/services/solo/dag-orchestrator.ts` — 新增 `runLayeredDag` (业务 slice 不等所有 foundation,只等其 dependsOn 子集). cancel-on-fail 保留.
1087
+ - `src/services/code/dag-orchestrator.ts` — 新增 `runLayeredDag` (业务 slice 不等所有 foundation,只等其 dependsOn 子集). cancel-on-fail 保留.
635
1088
  - `src/cli/commands/dispatch-from-dag.ts` — 切到 `runLayeredDag` + envelope 加 `sliceMeta` 字段.
636
1089
 
637
1090
  ### Feature — G11/13/14/15 CLI 全套落地 (10 commands)
@@ -645,7 +1098,7 @@ Recommended scenarios before next release (see `peaks/_runtime/2026-06-29-sessio
645
1098
 
646
1099
  - **G1 slice review** (4 cmds): `peaks slice-review` / `slice-score` / `slice-accept` / `slice-reject` — 4 项业务清单 + 12 Gaps 阈值 (avg >= 3 + no item <= 2)
647
1100
  - **G3 prd blocks** (1 cmd): `peaks prd check-blocks` — 4 必填块校验 (业务场景 / 边界 / UI 装配 / 上游基线) + 业务禁区子节
648
- - **G4 user touchpoint** (3 cmds): `peaks gate-classify` / `user-touchpoints` / `commit-boundary-actions` — 14 Solo gate 静态分类 (business / tech / mode-selection / commit-boundary / commit-floor)
1101
+ - **G4 user touchpoint** (3 cmds): `peaks gate-classify` / `user-touchpoints` / `commit-boundary-actions` — 14 Code gate 静态分类 (business / tech / mode-selection / commit-boundary / commit-floor)
649
1102
  - **G5 qa business** (4 cmds): `peaks qa-business-review` / `-score` / `-accept` / `-reject` — 6 项业务清单 + 同一阈值
650
1103
 
651
1104
  ### Feature — G6/G7/G8/G9/G10 CLI (10 commands, 30+ tests)
@@ -701,7 +1154,7 @@ Recommended scenarios before next release (see `peaks/_runtime/2026-06-29-sessio
701
1154
  - **`peaks workspace init`** (MODIFIED) — When an outer-session-mismatch rotation fires, the CLI now calls `clearStalePresenceOnRotation` to clear the stale presence. Two guards prevent accidental destruction of user-explicit mode choices:
702
1155
  - **Reconnect guard** — recorded outer id matches the NEW outer id → do NOT clear (reconnect).
703
1156
  - **Live-different-outer guard** — recorded outer id belongs to a different LIVE outer session → do NOT clear (would destroy another user's mode).
704
- - **`peaks solo should-pause --step step-1-mode-select`** (MODIFIED) — Now consults `presence:check-stale` automatically. When the presence is stale, returns `shouldPause: true, reason: 'stale-presence — re-ask Step 1'`. The hard-pause on Step 1 itself is preserved (defect #1 from slice 2026-06-28-solo-mode-bypass-fix).
1157
+ - **`peaks code should-pause --step step-1-mode-select`** (MODIFIED) — Now consults `presence:check-stale` automatically. When the presence is stale, returns `shouldPause: true, reason: 'stale-presence — re-ask Step 1'`. The hard-pause on Step 1 itself is preserved (defect #1 from slice 2026-06-28-code-mode-bypass-fix).
705
1158
  - **`skills/peaks-code/SKILL.md` Step 1** (MODIFIED) — Wording changed from "if user did not name a profile, AskUserQuestion" to "if user did not name a profile OR presence is stale, AskUserQuestion". Cross-references the new `references/mode-selection-with-stale-presence.md`.
706
1159
  - **`skills/peaks-code/references/mode-selection-with-stale-presence.md`** (NEW) — Detection protocol + worked example (88b27d defect) + ACL.
707
1160
  - **`src/services/skills/skill-presence-service.ts`** — New exports: `checkStalePresence`, `clearStalePresenceOnRotation`, types `StalenessCheck`, `StaleReason`.
@@ -716,12 +1169,12 @@ Recommended scenarios before next release (see `peaks/_runtime/2026-06-29-sessio
716
1169
 
717
1170
  ### Feature — Commit-boundary hard-floor (full-auto boundary = commit only)
718
1171
 
719
- - **`src/services/solo/mode-gate.ts`** — New `HardFloorCategory` value: `'commit-boundary-side-effect'`. New `CommitBoundaryActionId` union with 5 actions: `git-push`, `git-tag`, `npm-publish`, `npm-install-global`, `peaks-global-install`. New function `detectCommitBoundaryAction(command)` matches the patterns. New `shouldPauseAtGate({ commitBoundaryAction: true })` flag — when true, ALWAYS pauses regardless of mode (overrides full-auto / swarm auto-proceed).
1172
+ - **`src/services/code/mode-gate.ts`** — New `HardFloorCategory` value: `'commit-boundary-side-effect'`. New `CommitBoundaryActionId` union with 5 actions: `git-push`, `git-tag`, `npm-publish`, `npm-install-global`, `peaks-global-install`. New function `detectCommitBoundaryAction(command)` matches the patterns. New `shouldPauseAtGate({ commitBoundaryAction: true })` flag — when true, ALWAYS pauses regardless of mode (overrides full-auto / swarm auto-proceed).
720
1173
  - **Per the user-given rule** `.peaks/memory/2026-06-28-full-auto-boundary.md`: "full-auto 只做到 commit 就是,push 不用". The commit-boundary hard-floor is the machine enforcement of that advisory rule.
721
1174
 
722
1175
  ### Test results
723
1176
  - 4 new test files: `presence-staleness.test.ts` (12), `stale-presence-detection.test.ts` (9), `feedback-promotion.test.ts` (18), `commit-boundary-hard-floor.test.ts` (247). Total new cases: **286**.
724
- - Existing solo tests (mode-gate × 81, post-compact × 11) pass unchanged.
1177
+ - Existing code tests (mode-gate × 81, post-compact × 11) pass unchanged.
725
1178
  - Full unit suite baseline 4394 → 4680 passing (286 added). 0 new failures; pre-existing 7 unrelated failures unchanged.
726
1179
 
727
1180
  ### Out-of-scope
@@ -734,10 +1187,10 @@ Recommended scenarios before next release (see `peaks/_runtime/2026-06-29-sessio
734
1187
  slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 + 业务并行(节省 2-3 天 wall time);fork 场景 = 上游 tag 断点同步;复杂度分流 = user-attended vs overnight 排程。
735
1188
 
736
1189
  - **`src/services/dispatch/slice-dag.ts`** — `SliceNode` 加 3 可选字段(`foundation?: boolean` / `upstreamSync?: boolean` / `complexity?: 'trivial'|'simple'|'complex'`)。`validateDag` 加新字段合法性校验 + 防御性规则(foundation slice 不可 dependsOn 非 foundation)。`topologicalLevels` 同层内 priority 排序: foundation > upstreamSync > id asc。`serializeDag` / `hashDag` 含新字段,**老 DAG hash 稳定**。
737
- - **`src/services/solo/dag-orchestrator.ts`** — 新增 `runLayeredDag` 函数。同 `runDag` 语义 + 业务 slice 不等所有 foundation,只等其 `dependsOn` 子集。cancel-on-fail 保留。`runDag` 保留(向后兼容,内部走 priority-sorted levels)。
1190
+ - **`src/services/code/dag-orchestrator.ts`** — 新增 `runLayeredDag` 函数。同 `runDag` 语义 + 业务 slice 不等所有 foundation,只等其 `dependsOn` 子集。cancel-on-fail 保留。`runDag` 保留(向后兼容,内部走 priority-sorted levels)。
738
1191
  - **`src/cli/commands/dispatch-from-dag.ts`** — 切到 `runLayeredDag`。envelope 加 `sliceMeta` 字段(per-slice foundation/upstreamSync/complexity)。
739
- - **2 new test files** — `tests/unit/dispatch/slice-dag-foundation.test.ts` (19 cases) + `tests/unit/solo/dag-orchestrator-layered.test.ts` (5 cases) = **24 new tests, 0 regression**。
740
- - **dispatch + solo tests**: 215/215 通过(单跑)。
1192
+ - **2 new test files** — `tests/unit/dispatch/slice-dag-foundation.test.ts` (19 cases) + `tests/unit/code/dag-orchestrator-layered.test.ts` (5 cases) = **24 new tests, 0 regression**。
1193
+ - **dispatch + code tests**: 215/215 通过(单跑)。
741
1194
  - **全量 vitest** 4843 cases: 4824 passed / 2 failed(并发 race,pre-existing)。
742
1195
 
743
1196
  **不触动:** transition gates / hard contracts / Karpathy 4 / sub-agent 协议 / 老 DAG 兼容性。
@@ -791,8 +1244,8 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
791
1244
  - 8 tests pass
792
1245
 
793
1246
  **G4 user touchpoint classifier**(slice-2026-06-28-user-touchpoints):
794
- - 3 commands: `peaks solo gate-classify` / `peaks solo user-touchpoints` / `peaks solo commit-boundary-actions`
795
- - 14 个 Solo gate 静态分类: business / tech / mode-selection / commit-boundary / commit-floor
1247
+ - 3 commands: `peaks code gate-classify` / `peaks code user-touchpoints` / `peaks code commit-boundary-actions`
1248
+ - 14 个 Code gate 静态分类: business / tech / mode-selection / commit-boundary / commit-floor
796
1249
  - `userShouldReview`: always / business-only / never
797
1250
  - 7 tests pass
798
1251
 
@@ -980,26 +1433,26 @@ Slice B of the v2.14.0 anti-fake-green hardening PRD (`v2-14-0-anti-fake-green-h
980
1433
 
981
1434
  ---
982
1435
 
983
- ## [2.13.4] — 2026-06-28 — Solo mode gate + verify-pipeline canonical path + auto-compact main target
1436
+ ## [2.13.4] — 2026-06-28 — Code mode gate + verify-pipeline canonical path + auto-compact main target
984
1437
 
985
- **PATCH bump from 2.13.3** (slice `2026-06-28-solo-mode-bypass-fix`, 4 production defects reported by user in solo session 2026-06-28).
1438
+ **PATCH bump from 2.13.3** (slice `2026-06-28-code-mode-bypass-fix`, 4 production defects reported by user in code session 2026-06-28).
986
1439
 
987
1440
  The four defects all stem from the v2.13.0 two-axis convention landing debt: the canonical evidence location is `.peaks/_runtime/change/<changeId>/<role>/...` (per `change-scope-service.ts`), but v2.13.0's mode-gate, verify-pipeline, and auto-compact dispatcher all referenced the pre-1.3.0 sibling-of-`_runtime/` form. v2.13.4 also adds the user-requested economy-vs-concurrency separation (per direction 2026-06-28: "效率比省钱更重要,是在效率达到最大值的时候,再去考虑经济问题").
988
1441
 
989
1442
  ### Bug fixes
990
1443
 
991
- - **Step 1 AskUserQuestion is no longer auto-defaulted to `mode: full-auto`** (defect #1) — `src/services/solo/mode-gate.ts:104-196` now treats `step-1-mode-select` (and `step-0.5-openspec-opt-in`, `step-0.7-resume-detection`) as a `HARD_PAUSE_STEPS` set: even `full-auto` mode pauses for the user to pick the mode. A new `gateKind: 'mode-selection-itself' | 'mode-driven' | 'hard-floor'` discriminator lets the LLM-side runner distinguish "you paused because the user must choose" from "you paused because the user already chose assisted/strict" from "you paused because a hard-floor category always wins". Dogfood-verified: a new session no longer writes `mode: "full-auto"` to `.peaks/_runtime/active-skill.json` on the first tool call without surfacing the Step 1 AskUserQuestion. 14 new test cases in `tests/unit/solo/mode-gate-step-1-hard-pause.test.ts` cover the four-mode matrix + hard-floor precedence. The pre-existing `tests/unit/services/solo/mode-gate.test.ts` (77 cases) was also updated for the new `gateKind` field — 77/77 still pass.
1444
+ - **Step 1 AskUserQuestion is no longer auto-defaulted to `mode: full-auto`** (defect #1) — `src/services/code/mode-gate.ts:104-196` now treats `step-1-mode-select` (and `step-0.5-openspec-opt-in`, `step-0.7-resume-detection`) as a `HARD_PAUSE_STEPS` set: even `full-auto` mode pauses for the user to pick the mode. A new `gateKind: 'mode-selection-itself' | 'mode-driven' | 'hard-floor'` discriminator lets the LLM-side runner distinguish "you paused because the user must choose" from "you paused because the user already chose assisted/strict" from "you paused because a hard-floor category always wins". Dogfood-verified: a new session no longer writes `mode: "full-auto"` to `.peaks/_runtime/active-skill.json` on the first tool call without surfacing the Step 1 AskUserQuestion. 14 new test cases in `tests/unit/code/mode-gate-step-1-hard-pause.test.ts` cover the four-mode matrix + hard-floor precedence. The pre-existing `tests/unit/services/code/mode-gate.test.ts` (77 cases) was also updated for the new `gateKind` field — 77/77 still pass.
992
1445
  - **`peaks workflow verify-pipeline` now resolves the canonical evidence path** (defect #3) — `src/services/workflow/pipeline-verify-service.ts:216,219,260,288,295` rebuilds evidence paths as `.peaks/_runtime/change/<changeId>/<role>/...` (was `.peaks/<changeId>/<role>/...`, the SKILL.md 2.8.3 hard-ban shape). `src/services/workflow/artifact-paths.ts:67,148` gets the same fix in the security/performance findings resolver. A 1-minor-release deprecation window accepts the legacy `.peaks/<changeId>/...` and `.peaks/_runtime/<changeId>/...` forms with a `DEPRECATION_LEGACY_PATH_USED` warning so un-migrated workspaces still resolve. `PipelineVerification.usedCanonicalPath: boolean` is added to the return envelope so QA / TXT can surface the deprecation state. The CLI help-text at `src/cli/commands/workflow-commands.ts:448` is updated to cite the canonical path. 4 new test cases in `tests/unit/workflow/pipeline-verify-canonical-path.test.ts` cover canonical / legacy misplaced / top-level fallback / absent. The pre-existing `tests/unit/pipeline-verify-service.test.ts` (60 cases) was updated to write evidence at both paths so the deprecation contract is exercised end-to-end — 60/60 still pass.
993
- - **`auto-compact` now targets the main-session context, not a sub-agent shell** (defect #4) — `src/services/context/auto-compact-dispatcher.ts` and `src/services/solo/auto-compact-orchestrator.ts` accept a new `target: 'main' | 'sub-agent'` parameter (default `'main'`). For `target='main' + ide='claude-code'`, the dispatcher returns the `llm-self-compress` pathway and the orchestrator writes `.peaks/_runtime/<sessionId>/txt/auto-compact-pending.json` (with `pending: true, target: 'main', ratio, redLine`) so the next main-session LLM turn fires `/compact` in-band rather than spawning a detached `sh -c /compact` (which previously only compressed the sub-agent shell). For `target='sub-agent'`, the legacy shell-spawn behavior is preserved. Non-claude-code IDEs + `target='main'` return `noop` with a "main-session target unsupported" reason. 6 new test cases in `tests/unit/context/auto-compact-main-target.test.ts` cover the dispatch matrix + the orchestrator's intent-file write.
1446
+ - **`auto-compact` now targets the main-session context, not a sub-agent shell** (defect #4) — `src/services/context/auto-compact-dispatcher.ts` and `src/services/code/auto-compact-orchestrator.ts` accept a new `target: 'main' | 'sub-agent'` parameter (default `'main'`). For `target='main' + ide='claude-code'`, the dispatcher returns the `llm-self-compress` pathway and the orchestrator writes `.peaks/_runtime/<sessionId>/txt/auto-compact-pending.json` (with `pending: true, target: 'main', ratio, redLine`) so the next main-session LLM turn fires `/compact` in-band rather than spawning a detached `sh -c /compact` (which previously only compressed the sub-agent shell). For `target='sub-agent'`, the legacy shell-spawn behavior is preserved. Non-claude-code IDEs + `target='main'` return `noop` with a "main-session target unsupported" reason. 6 new test cases in `tests/unit/context/auto-compact-main-target.test.ts` cover the dispatch matrix + the orchestrator's intent-file write.
994
1447
 
995
1448
  ### Features
996
1449
 
997
- - **`peaks workspace migrate-change-scope --project <path> [--apply] [--json]`** — slice 2026-06-28-solo-mode-bypass-fix migration tool. Dry-run by default; `--apply` atomically renames misplaced `.peaks/_runtime/<changeId>/` (and `.peaks/<changeId>/`) entries into the canonical `.peaks/_runtime/change/<changeId>/` location, writes a `.peaks-migration.json` marker (with `from:`, `slice:`, `tool:`, `migratedAt:`) for audit. **Refusal conditions** (defense-in-depth, both pre-slice audit + new): entries that look like date-stamped session ids (`YYYY-MM-DD-session-X`) are refused to avoid destroying the session workspace (`MIGRATION_REFUSED_SESSION_ID_COLLISION`); entries whose target dir exists with non-byte-equal contents are refused to avoid clobbering (`MIGRATION_REFUSED_TARGET_NOT_EMPTY`); a hard-coded `PEAKS_TOP_LEVEL_DENY` / `RUNTIME_DENY` whitelist + `looksLikeChangeScopeId` structural check ensures `.peaks/memory`, `.peaks/standards`, `.peaks/retrospective`, `.peaks/sc`, `.peaks/sops`, `.peaks/project-scan`, `.peaks/_sub_agents` are **never** treated as misplaced change-ids. **Idempotent**: re-running on a clean workspace reports no work. Dogfood-verified: the actual misplaced `.peaks/_runtime/2026-06-27-verdict-aggregator-v2-12-debt/` (8 files) was migrated end-to-end; subsequent `peaks workflow verify-pipeline --rid 2026-06-27-verdict-aggregator-v2-12-debt --change-id 2026-06-27-verdict-aggregator-v2-12-debt --project .` reports `usedCanonicalPath: true` (was `false`) and zero `DEPRECATION_LEGACY_PATH_USED` warnings. 5 new test cases in `tests/unit/workspace/migrate-change-scope.test.ts` cover dry-run, apply, idempotency, session-id refusal, and target-not-empty refusal; a 6th case locks the `.peaks/<project-data>` whitelist contract.
1450
+ - **`peaks workspace migrate-change-scope --project <path> [--apply] [--json]`** — slice 2026-06-28-code-mode-bypass-fix migration tool. Dry-run by default; `--apply` atomically renames misplaced `.peaks/_runtime/<changeId>/` (and `.peaks/<changeId>/`) entries into the canonical `.peaks/_runtime/change/<changeId>/` location, writes a `.peaks-migration.json` marker (with `from:`, `slice:`, `tool:`, `migratedAt:`) for audit. **Refusal conditions** (defense-in-depth, both pre-slice audit + new): entries that look like date-stamped session ids (`YYYY-MM-DD-session-X`) are refused to avoid destroying the session workspace (`MIGRATION_REFUSED_SESSION_ID_COLLISION`); entries whose target dir exists with non-byte-equal contents are refused to avoid clobbering (`MIGRATION_REFUSED_TARGET_NOT_EMPTY`); a hard-coded `PEAKS_TOP_LEVEL_DENY` / `RUNTIME_DENY` whitelist + `looksLikeChangeScopeId` structural check ensures `.peaks/memory`, `.peaks/standards`, `.peaks/retrospective`, `.peaks/sc`, `.peaks/sops`, `.peaks/project-scan`, `.peaks/_sub_agents` are **never** treated as misplaced change-ids. **Idempotent**: re-running on a clean workspace reports no work. Dogfood-verified: the actual misplaced `.peaks/_runtime/2026-06-27-verdict-aggregator-v2-12-debt/` (8 files) was migrated end-to-end; subsequent `peaks workflow verify-pipeline --rid 2026-06-27-verdict-aggregator-v2-12-debt --change-id 2026-06-27-verdict-aggregator-v2-12-debt --project .` reports `usedCanonicalPath: true` (was `false`) and zero `DEPRECATION_LEGACY_PATH_USED` warnings. 5 new test cases in `tests/unit/workspace/migrate-change-scope.test.ts` cover dry-run, apply, idempotency, session-id refusal, and target-not-empty refusal; a 6th case locks the `.peaks/<project-data>` whitelist contract.
998
1451
 
999
1452
  ### Internal
1000
1453
 
1001
- - `src/services/solo/mode-gate.ts` (+28/-4 lines) — `HARD_PAUSE_STEPS` set + `GateKind` union + `gateKind` field on `GateDecision`.
1002
- - `src/services/solo/auto-compact-orchestrator.ts` (+24/-2 lines) — `target` parameter, `writeMainSessionCompactIntent` helper, surface `target` in return envelope.
1454
+ - `src/services/code/mode-gate.ts` (+28/-4 lines) — `HARD_PAUSE_STEPS` set + `GateKind` union + `gateKind` field on `GateDecision`.
1455
+ - `src/services/code/auto-compact-orchestrator.ts` (+24/-2 lines) — `target` parameter, `writeMainSessionCompactIntent` helper, surface `target` in return envelope.
1003
1456
  - `src/services/context/auto-compact-dispatcher.ts` (+38/-5 lines) — `CompactTarget` type, `target` parameter, reordered non-claude-code refusal, `shell-exec + main` → `llm-self-compress` rewrite.
1004
1457
  - `src/services/context/auto-compact-types.ts` (+6 lines) — `target?: 'main' | 'sub-agent'` on `AutoCompactResult.data`.
1005
1458
  - `src/services/preferences/preferences-types.ts` (+13 lines) — explicit doc-comments on `economyMode` (model selection only, NOT concurrency) and `swarmMode` (controls subgraph shape, NOT fan-out). Fan-out is governed by `fanout.defaultMode: 'fan-out'` (hard constraint per slice 2026-06-24-audit-5th-p2).
@@ -1010,12 +1463,12 @@ The four defects all stem from the v2.13.0 two-axis convention landing debt: the
1010
1463
  - `src/cli/commands/workspace/migrate-change-scope-command.ts` (NEW, 230 lines) — `migrateChangeScope()` core + `migrateOne()` per-entry handler with the deny-list + `shallowContentEqual` (1-level recursion) + 3 refusal conditions.
1011
1464
  - `tests/unit/workspace/banned-path-directive-guard.test.ts` (+11 lines) — added `KEEP_DESCRIPTIONS` anchor for the new help-text so the AC-2.2 banned-path-guard still passes.
1012
1465
  - `tests/unit/pipeline-verify-service.test.ts` (+24/-12 lines) — `writeRdEvidence` / `writeQaEvidence` now write at canonical + legacy paths; `isResolvedChangeId` updated for the bare-id contract.
1013
- - `tests/unit/services/solo/mode-gate.test.ts` (linter-updated) — assertions for the new `gateKind` field on every `GateDecision` return.
1014
- - 5 new test files: `tests/unit/solo/mode-gate-step-1-hard-pause.test.ts` (14 cases), `tests/unit/workflow/pipeline-verify-canonical-path.test.ts` (4 cases), `tests/unit/workflow/artifact-paths-canonical.test.ts` (4 cases), `tests/unit/context/auto-compact-main-target.test.ts` (6 cases), `tests/unit/workspace/migrate-change-scope.test.ts` (6 cases) — 34 new cases total, all pass.
1466
+ - `tests/unit/services/code/mode-gate.test.ts` (linter-updated) — assertions for the new `gateKind` field on every `GateDecision` return.
1467
+ - 5 new test files: `tests/unit/code/mode-gate-step-1-hard-pause.test.ts` (14 cases), `tests/unit/workflow/pipeline-verify-canonical-path.test.ts` (4 cases), `tests/unit/workflow/artifact-paths-canonical.test.ts` (4 cases), `tests/unit/context/auto-compact-main-target.test.ts` (6 cases), `tests/unit/workspace/migrate-change-scope.test.ts` (6 cases) — 34 new cases total, all pass.
1015
1468
 
1016
1469
  ### Test results
1017
1470
 
1018
- - `pnpm vitest run` on the 4 affected module areas (solo/workflow/context/workspace): **181/181 pass** (5 new test files + pre-existing suites).
1471
+ - `pnpm vitest run` on the 4 affected module areas (code/workflow/context/workspace): **181/181 pass** (5 new test files + pre-existing suites).
1019
1472
  - Full unit suite: 4394/4418 pass (7 pre-existing failures unrelated to this slice — `doctor.test.ts` version-mismatch × 5, `tokenizer.test.ts` time-decay flake × 1, `35-checks-aggregate.test.ts` × 1).
1020
1473
  - `pnpm tsc --noEmit`: clean.
1021
1474
 
@@ -1065,7 +1518,7 @@ The four defects all stem from the v2.13.0 two-axis convention landing debt: the
1065
1518
  |---|---|
1066
1519
  | v2.13.3 | 4 bug fixes (parser / publish pipeline / CLI warnings / handoff sha256) + 3 new scripts + 4 new test cases + package.json prepublishOnly + README publish note + CHANGELOG + version bump + ship-state memory |
1067
1520
 
1068
- ### Verified (peaks solo dogfood + QA on this session)
1521
+ ### Verified (peaks code dogfood + QA on this session)
1069
1522
 
1070
1523
  - AC-1 (parser fix): `tests/unit/services/verdict/envelopes.test.ts` → **11/11 pass** (was 7/7 in v2.13.2, +4 markdown fallback cases H/I/J/K). Dogfood script confirms: real `audit/security.md` with HIGH violation → `parseSecurityEnvelope` returns non-null envelope; `peaks verdict aggregate` returns `reasons: [{severity: HIGH, file: src/auth.ts:42}]`.
1071
1524
  - AC-2 (publish pipeline): `scripts/prepublish-build.sh` end-to-end via git-bash: `[prepublish-build] build OK — proceeding to publish` (exit 0). The `prepublishOnly` hook in `package.json` (line 47) is wired to `node scripts/prepublish-build.mjs`.
@@ -1143,7 +1596,7 @@ v2.13.1 shipped with a BLOCKER bug found via post-release dogfood: `aggregateVer
1143
1596
  |---|---|
1144
1597
  | v2.13.2 | `aggregateVerdict()` dedup bug fix + `peaks verdict aggregate` CLI + `envelopes.ts` unification + `prd/handoff.md` auto-regen + `MUT_REPORT` soft-block window + 4 new test files + 4 updated test files + CHANGELOG + version bump + ship-state memory |
1145
1598
 
1146
- ### Verified (peaks solo dogfood + QA on this session)
1599
+ ### Verified (peaks code dogfood + QA on this session)
1147
1600
 
1148
1601
  - AC-1 (BLOCKER fix): `tests/unit/services/verdict/verdict-aggregator.test.ts` → **16/16 pass** (was 13/13 in v2.13.1, +3 cross-source cases). Dogfood script confirms: `reasons.length = 1, sources = ["security-audit","perf-audit"], verdict = warn`.
1149
1602
  - AC-2 (CLI surface): `tests/unit/cli/commands/verdict-aggregate-command.test.ts` → **4/4 pass**. Real CLI: `peaks verdict aggregate --help` shows `--from-rid/--sid/--project/--json` options correctly.
@@ -1193,7 +1646,7 @@ peaks-code previously received 5 heterogeneous signals (security-audit, perf-aud
1193
1646
  - `skills/peaks-code/references/micro-cycle.md` — added `## Verdict reasoning (v2.13.1)` section (91 lines) after the unchanged repair-cycle cap rule.
1194
1647
  - `tests/unit/artifact-prerequisites/mut-report-prereq.test.ts` (NEW, 4 cases).
1195
1648
  - `tests/unit/services/verdict/verdict-aggregator.test.ts` (NEW, 13 cases).
1196
- - `tests/unit/skills/solo/micro-cycle-verdict-reasoning.test.ts` (NEW, 4 cases).
1649
+ - `tests/unit/skills/code/micro-cycle-verdict-reasoning.test.ts` (NEW, 4 cases).
1197
1650
  - `tests/unit/artifact-prerequisites.test.ts` (UPDATED, +25 lines) — seeded `mut-report.json` in 3 pass-path tests; added to negative-path missing-list.
1198
1651
  - `tests/unit/artifact-prerequisites-typed.test.ts` (UPDATED, +20 lines) — same across bugfix + feature + refactor.
1199
1652
 
@@ -1207,11 +1660,11 @@ peaks-code previously received 5 heterogeneous signals (security-audit, perf-aud
1207
1660
  |---|---|
1208
1661
  | v2.13.1 | MUT_REPORT prereq + `aggregateVerdict()` service + `## Verdict reasoning` section + 4 new test files + 2 updated test files + CHANGELOG + version bump + ship-state memory |
1209
1662
 
1210
- ### Verified (peaks solo dogfood on this session)
1663
+ ### Verified (peaks code dogfood on this session)
1211
1664
 
1212
1665
  - AC-1 (MUT_REPORT prereq): `tests/unit/artifact-prerequisites/mut-report-prereq.test.ts` → 4/4 pass; `tests/unit/artifact-prerequisites.test.ts` → 9/9 pass; `tests/unit/artifact-prerequisites-typed.test.ts` → 19/19 pass.
1213
1666
  - AC-2 (verdict-aggregator): `tests/unit/services/verdict/verdict-aggregator.test.ts` → 13/13 pass; 8 AC-2 behaviors (A all-pass, B security-block, C mut-block, D qa-return-to-rd, E mixed-warn, F all-empty, G precedence block-dominant, H CRITICAL accumulation) all asserted.
1214
- - AC-3 (micro-cycle reasoning): `tests/unit/skills/solo/micro-cycle-verdict-reasoning.test.ts` → 4/4 pass; 6-step cycle body byte-stable.
1667
+ - AC-3 (micro-cycle reasoning): `tests/unit/skills/code/micro-cycle-verdict-reasoning.test.ts` → 4/4 pass; 6-step cycle body byte-stable.
1215
1668
  - AC-4 (零回归): `tests/unit/parallel-fan-out.test.ts` → 18/18 pass (v2.12.0 stability pin); `tests/unit/rd/karpathy-skip-on-config-docs-chore.test.ts` → 11/11 pass; `tests/unit/rd/deprecated-reviewer-back-compat.test.ts` → 12/12 pass.
1216
1669
  - Total: 8 test files, **90/90** tests pass, duration 1.27s.
1217
1670
  - `./node_modules/.bin/tsc --noEmit` → 0 errors.
@@ -1247,9 +1700,9 @@ Adapter-driven protocol (no hard-coded IDE names): `IdeAdapter.compact?: IdeComp
1247
1700
 
1248
1701
  ### Features
1249
1702
 
1250
- - **`peaks solo context-now`** (AC-1) — auto-probes the active IDE adapter's context-fill % without requiring the LLM to pass `--prompt-size <bytes>` manually. Adapter-driven: reads `IdeAdapter.compact.envVarForContextPercent` (Claude Code MVP: `CLAUDE_CONTEXT_USAGE_PERCENT`). Returns a verdict (`ok` / `soft-warn` / `pre-compact` / `red-line`) plus source-tagged probe (`claude-code-env` / `statusline-poll` / `conservative-fallback`). When no IDE-specific signal is available, returns `ratio: 0` with `source: 'conservative-fallback'` so the orchestrator never auto-fires on a missing signal.
1251
- - **`peaks solo auto-compact`** (AC-4) — 0-intervention loop. Honors D6.e in-flight-batch deferral for the pre-compact zone; forces synchronous dispatch at red-line. `--force` and `--bypass-red-line` are test seams (never `true` in production).
1252
- - **Convergence toolkit** (AC-2) — `src/services/solo/auto-compact-orchestrator.ts` `evaluateCompactTrigger` (pure) + `runAutoCompact` (side effects: `writePreCompactCheckpoint` + `appendAutoDecisionLog` + `dispatchIdeCompact`). Checkpoints land at `.peaks/_runtime/<sessionId>/checkpoints/{pre-compact,red-line}-<ISO>.json`; the LLM-readable decision log lands at `.peaks/_runtime/<sessionId>/txt/auto-decisions.md` so D7's post-compact-detect picks it up unchanged.
1703
+ - **`peaks code context-now`** (AC-1) — auto-probes the active IDE adapter's context-fill % without requiring the LLM to pass `--prompt-size <bytes>` manually. Adapter-driven: reads `IdeAdapter.compact.envVarForContextPercent` (Claude Code MVP: `CLAUDE_CONTEXT_USAGE_PERCENT`). Returns a verdict (`ok` / `soft-warn` / `pre-compact` / `red-line`) plus source-tagged probe (`claude-code-env` / `statusline-poll` / `conservative-fallback`). When no IDE-specific signal is available, returns `ratio: 0` with `source: 'conservative-fallback'` so the orchestrator never auto-fires on a missing signal.
1704
+ - **`peaks code auto-compact`** (AC-4) — 0-intervention loop. Honors D6.e in-flight-batch deferral for the pre-compact zone; forces synchronous dispatch at red-line. `--force` and `--bypass-red-line` are test seams (never `true` in production).
1705
+ - **Convergence toolkit** (AC-2) — `src/services/code/auto-compact-orchestrator.ts` `evaluateCompactTrigger` (pure) + `runAutoCompact` (side effects: `writePreCompactCheckpoint` + `appendAutoDecisionLog` + `dispatchIdeCompact`). Checkpoints land at `.peaks/_runtime/<sessionId>/checkpoints/{pre-compact,red-line}-<ISO>.json`; the LLM-readable decision log lands at `.peaks/_runtime/<sessionId>/txt/auto-decisions.md` so D7's post-compact-detect picks it up unchanged.
1253
1706
  - **IDE-aware compact dispatcher** (AC-3) — `src/services/context/auto-compact-dispatcher.ts` reads `IdeAdapter.compact` and dispatches via the adapter-declared pathway. `shell-exec` (Claude Code MVP) spawns the compact command via `child_process.spawn`. `ide-native` is reserved for a future slice. `llm-self-compress` returns success + instructs the LLM to summarize on next turn. `noop` returns explicit failure for legacy adapters.
1254
1707
 
1255
1708
  ### Internal
@@ -1257,10 +1710,10 @@ Adapter-driven protocol (no hard-coded IDE names): `IdeAdapter.compact?: IdeComp
1257
1710
  - `src/services/context/auto-compact-types.ts` (NEW) — types + 3 constants: `AUTO_COMPACT_SOFT_WARN_RATIO = 0.5`, `AUTO_COMPACT_PRE_COMPACT_RATIO = 0.85`, `AUTO_COMPACT_RED_LINE_RATIO = 0.95`.
1258
1711
  - `src/services/context/auto-compact-reader.ts` (NEW) — `readContextPercent` (AC-1 probe).
1259
1712
  - `src/services/context/auto-compact-dispatcher.ts` (NEW) — `dispatchIdeCompact` (AC-3 IDE dispatch).
1260
- - `src/services/solo/auto-compact-orchestrator.ts` (NEW) — `evaluateCompactTrigger` + `runAutoCompact` (AC-2 + AC-4 core).
1713
+ - `src/services/code/auto-compact-orchestrator.ts` (NEW) — `evaluateCompactTrigger` + `runAutoCompact` (AC-2 + AC-4 core).
1261
1714
  - `src/services/ide/ide-types.ts` — `IdeAdapter.compact?: IdeCompactProfile` + `IdeCompactProfile` interface.
1262
1715
  - `src/services/ide/adapters/claude-code-adapter.ts` — MVP `compact` profile: `CLAUDE_CONTEXT_USAGE_PERCENT` + `claude --compact` + `shell-exec`.
1263
- - `src/cli/commands/solo-commands.ts` — `peaks solo context-now` + `peaks solo auto-compact` subcommands.
1716
+ - `src/cli/commands/code-commands.ts` — `peaks code context-now` + `peaks code auto-compact` subcommands.
1264
1717
  - `package.json` + `src/shared/version.ts` — `2.12.0 → 2.13.0`.
1265
1718
 
1266
1719
  ### Decision records
@@ -1271,10 +1724,10 @@ Adapter-driven protocol (no hard-coded IDE names): `IdeAdapter.compact?: IdeComp
1271
1724
 
1272
1725
  | Commit tag | Scope |
1273
1726
  |---|---|
1274
- | v2.13.0-alpha.1 (`edffc33`) | Two-tier threshold + auto-compact types + reader + dispatcher + orchestrator + Claude Code MVP adapter + `peaks solo context-now` + `peaks solo auto-compact` CLI |
1727
+ | v2.13.0-alpha.1 (`edffc33`) | Two-tier threshold + auto-compact types + reader + dispatcher + orchestrator + Claude Code MVP adapter + `peaks code context-now` + `peaks code auto-compact` CLI |
1275
1728
  | `a8b9804` | In-session dogfood limitation documented (current ad-hoc Claude Code session cannot be externally compacted — reserved for follow-up PreToolUse-hook slice) |
1276
1729
 
1277
- ### Verified (peaks solo dogfood on this session)
1730
+ ### Verified (peaks code dogfood on this session)
1278
1731
 
1279
1732
  - `context-now` boundary tests: `0.30 = ok` / `0.50 = soft-warn` / `0.84 = soft-warn` / `0.85 = pre-compact` / `0.949 = pre-compact` / `0.95 = red-line` / `1.0 = red-line` ✓
1280
1733
  - `auto-compact @ 1.0` (red-line): dispatched (shell-exec ok), `red-line` checkpoint written at `.peaks/_runtime/<sessionId>/checkpoints/red-line-<ISO>.json`, convergence plan + auto-decisions.md appended, `redLineGated: true` ✓
@@ -1292,7 +1745,7 @@ Adapter-driven protocol (no hard-coded IDE names): `IdeAdapter.compact?: IdeComp
1292
1745
  ### Known limitations (carry-forward to v2.13.1)
1293
1746
 
1294
1747
  - **Ad-hoc Claude Code runner cannot be externally compacted.** The v2.13.0-alpha.1 shell-exec pathway spawns the IDE's compact command via `child_process.spawn` — a separate child process. The current Claude Code runner that invoked `auto-compact` is unaffected; its own context window stays at 100% until that runner's own compact logic kicks in (Claude Code's own auto-compact or a user-issued `/compact` slash command). Follow-up slice: register a PreToolUse hook via `peaks hooks install` that intercepts the next Bash call and writes a stderr hint when ratio ≥ 0.95 — fills the already-reserved `ide-native` compact pathway.
1295
- - **`peaks-code` Step N+2 prose update** — `skills/peaks-code/SKILL.md` should mention `peaks solo context-now` + `auto-compact` so LLM sessions invoke the autonomous loop instead of `--prompt-size` hand-passing.
1748
+ - **`peaks-code` Step N+2 prose update** — `skills/peaks-code/SKILL.md` should mention `peaks code context-now` + `auto-compact` so LLM sessions invoke the autonomous loop instead of `--prompt-size` hand-passing.
1296
1749
 
1297
1750
  ---
1298
1751
 
@@ -1387,9 +1840,9 @@ Read-only observability layer on top of the v2.11.0 slice topology + 10/90 parad
1387
1840
  - Modified: `src/services/artifacts/request-artifact-service.ts` (hook #1/7).
1388
1841
  - Modified: `src/cli/commands/dispatch-commands.ts` (hook #2/7).
1389
1842
  - Modified: `src/services/session/session-checkpoint-service.ts` (hook #3/7).
1390
- - Modified: `src/cli/commands/solo-commands.ts` (hook #4/7).
1843
+ - Modified: `src/cli/commands/code-commands.ts` (hook #4/7).
1391
1844
  - Modified: `src/cli/commands/context-commands.ts` (hook #5/7).
1392
- - Modified: `src/services/solo/post-compact-detector.ts` (hook #6/7).
1845
+ - Modified: `src/services/code/post-compact-detector.ts` (hook #6/7).
1393
1846
  - Modified: `src/services/artifacts/artifact-prerequisites.ts` (hook #7/7).
1394
1847
  - Modified: `src/cli/program.ts` (+1 line: registerObservabilityCommands).
1395
1848
  - Modified: `src/shared/version.ts` (CLI_VERSION 2.11.0 → 2.11.1).
@@ -1410,7 +1863,7 @@ Implements the "metering is value" + "10/90 paradigm" alignment: peaks-prd produ
1410
1863
  - **Tier 5+6 (Group C — `9fea8eb`)** — peaks-txt sediment step (`appendBusinessConcept`, idempotent on (concept, sourceRid), 7 tests); peaks-qa trim (removed `qa/security-findings.md` + `qa/performance-findings.md` from Gate D prerequisites).
1411
1864
  - **Tier 7 (Group D — `cd427f6`)** — ECC code-review bridge (`src/services/code-review/ecc-bridge.ts`): envelope validator `isEccEnvelope` + `adaptEccEnvelopeToRdCodeReview` + 5-state `detectEcc` + `runEccCodeReview` aggregator; 17 tests.
1412
1865
  - **Tier 8 (Group E — this CC)** — migration codemod `peaks migrate v2-10-to-v2-11` (deprecates historical `rd/tech-doc.md` files with a YAML banner frontmatter; text-only, idempotent).
1413
- - **Tier 9 (Group F — commit `9e3ef49`)** — D5 self-decision (`src/services/solo/mode-gate.ts` + `peaks solo should-pause`); D6 context monitor (`src/services/context/main-session-monitor.ts` + `peaks context check`); D7 post-compact resume (`src/services/solo/post-compact-detector.ts` + `peaks solo post-compact-detect`); SKILL.md new Step N+2 + Step 0.7 D7 branch. +111 tests.
1866
+ - **Tier 9 (Group F — commit `9e3ef49`)** — D5 self-decision (`src/services/code/mode-gate.ts` + `peaks code should-pause`); D6 context monitor (`src/services/context/main-session-monitor.ts` + `peaks context check`); D7 post-compact resume (`src/services/code/post-compact-detector.ts` + `peaks code post-compact-detect`); SKILL.md new Step N+2 + Step 0.7 D7 branch. +111 tests.
1414
1867
 
1415
1868
  ### Migration
1416
1869
 
@@ -1473,7 +1926,7 @@ Implements the 10/90 paradigm foundation: 10% human / 90% LLM autonomous workflo
1473
1926
  ### Bugfixes — W8 / W8-b stabilization (slice `add-slice-topology-multipass`, post-W7 follow-up)
1474
1927
 
1475
1928
  - **W8 CC-α** (commit `56a9d9e`): stabilize 3 pre-existing flaky tests — `tests/unit/cli-program.workflow.test.ts` per-file timeout raised from vitest default 5000ms → 10000ms (`vi.setConfig({ testTimeout: 10000 })`); `tests/unit/dispatch-cli-latency-benchmark.test.ts` 250ms → 300ms threshold (median + min) with description + inline-comment updates for Karpathy #3 honesty.
1476
- - **W8-b CC-α** (commits `e17f868` + `30f9b51`): fix 3 newly-surfaced state-bound pre-existing failures — `tests/unit/package.test.ts` `beforeAll` runs `scripts/sync-version.mjs` so the version-source assertion is deterministic without `pnpm build`; `tests/unit/cli-program.core.test.ts` + `tests/unit/project-commands.test.ts` use `vi.hoisted` + `vi.mock` to isolate from real-project filesystem state (synthetic passing doctor report + `vi.importActual` passthrough with default `doctorReport`/`runbookHealth` injection); `src/shared/version.ts` synced to `2.10.0` (W7-solo T22 missed this; W8-b surfaced it via the `beforeAll` sync-version run).
1929
+ - **W8-b CC-α** (commits `e17f868` + `30f9b51`): fix 3 newly-surfaced state-bound pre-existing failures — `tests/unit/package.test.ts` `beforeAll` runs `scripts/sync-version.mjs` so the version-source assertion is deterministic without `pnpm build`; `tests/unit/cli-program.core.test.ts` + `tests/unit/project-commands.test.ts` use `vi.hoisted` + `vi.mock` to isolate from real-project filesystem state (synthetic passing doctor report + `vi.importActual` passthrough with default `doctorReport`/`runbookHealth` injection); `src/shared/version.ts` synced to `2.10.0` (W7-code T22 missed this; W8-b surfaced it via the `beforeAll` sync-version run).
1477
1930
  - Net effect: full suite `3974 / 0 failed / 17 skipped` (was `3974 / 3 failed / 17 skipped` after W7 due to the 3 state-bound failures, and 3974 / 0 / 17 was timing-flaky due to the 3 W8 targets).
1478
1931
 
1479
1932
  ### Risks / gaps carried forward
@@ -1491,7 +1944,7 @@ Implements the 10/90 paradigm foundation: 10% human / 90% LLM autonomous workflo
1491
1944
 
1492
1945
  - **Sub-agent fan-out is mandatory** (slice `2026-06-24-audit-5th-p2`): `preferences.fanout.defaultMode = 'serial'` opt-out removed. When the slice DAG has ≥ 2 leaves at one topological level, the orchestrator MUST use `peaks sub-agent dispatch --from-dag <dag-file> --batch-id <id>`. No preference, env-var, or CLI flag overrides this. `FANOUT_MODES = ['fan-out']` only; legacy `serial` values auto-migrate via `peaks preferences migrate --write`.
1493
1946
  - **4-policy bundle (slice `2026-06-24-efficiency-4p-bundle`)**: (a) default fan-out via `--from-dag`; (b) periodic checkpoint frequency locked at 20 tool calls (no `~` approximation, no `--periodic-every` override); (c) Karpathy reviewer skipped for `config | docs | chore` request types (5-way review otherwise); (d) `swarmSpeculative.maxConcurrent` default bumped 2 → 3.
1494
- - **Test-tool-detection block** (slice `2026-06-24-test-tool-detection-injection`): Every sub-agent dispatched by Solo (`peaks-rd`, `peaks-qa`, `peaks-ui`, `peaks-txt`, `peaks-sc`, `peaks-general-purpose`, single + DAG) receives a hard "Test Tool Detection (mandatory)" block at the top of its prompt: read `package.json#scripts.test`, use project-local runner (`./node_modules/.bin/<runner>` or `pnpm test --`), NEVER `npx <runner>`. Wired at both `dispatch-commands.ts` and `dag-orchestrator.ts` chokepoints; envelope version bumped to `2.2.0`.
1947
+ - **Test-tool-detection block** (slice `2026-06-24-test-tool-detection-injection`): Every sub-agent dispatched by Code (`peaks-rd`, `peaks-qa`, `peaks-ui`, `peaks-txt`, `peaks-sc`, `peaks-general-purpose`, single + DAG) receives a hard "Test Tool Detection (mandatory)" block at the top of its prompt: read `package.json#scripts.test`, use project-local runner (`./node_modules/.bin/<runner>` or `pnpm test --`), NEVER `npx <runner>`. Wired at both `dispatch-commands.ts` and `dag-orchestrator.ts` chokepoints; envelope version bumped to `2.2.0`.
1495
1948
 
1496
1949
  ### Bugfixes — handoff path canonicalization (v1 + v2 + v3 + v4 + v5 + v6 + v7)
1497
1950
 
@@ -1558,7 +2011,7 @@ Replaced all 20 with a 4-helper API at `src/services/artifacts/artifact-template
1558
2011
  **Added.** Sub-agent dispatch (both single + DAG paths, all roles rd/qa/ui/txt/sc/general-purpose) now prepends a `## Test Tool Detection (mandatory)` block to every sub-agent prompt. The block tells the sub-agent to read `package.json#scripts.test` first and use the project-local runner (`./node_modules/.bin/<runner>` or `pnpm test -- <file>`) — never `npx <runner>`. Runtime introspection: `peaks test --json`.
1559
2012
 
1560
2013
  - New module: `src/services/dispatch/test-tool-detection.ts` (47 lines; exports `TEST_TOOL_DETECTION_BLOCK` + `formatTestToolDetection()`)
1561
- - Dispatch chokepoints updated: `src/cli/commands/dispatch-commands.ts:187`, `src/services/solo/dag-orchestrator.ts:157,182-183`
2014
+ - Dispatch chokepoints updated: `src/cli/commands/dispatch-commands.ts:187`, `src/services/code/dag-orchestrator.ts:157,182-183`
1562
2015
  - Dispatch envelope bumped: `envelopeVersion: '2.1.0'` → `'2.2.0'` (consumers can detect the new prompt shape)
1563
2016
  - New tests: `tests/unit/dispatch/test-tool-detection.test.ts` (6), `tests/unit/dispatch/test-tool-detection-injection.test.ts` (9), `tests/unit/skills/test-tool-detection-docs.test.ts` (4) — 19 new assertions
1564
2017
  - Block size: 749 bytes UTF-8 (≤800 cap)
@@ -1574,7 +2027,7 @@ Replaced all 20 with a 4-helper API at `src/services/artifacts/artifact-template
1574
2027
  - **`FanoutMode` closed set narrowed to `['fan-out']`.** The `'serial'` member is gone from `src/services/preferences/preferences-types.ts`; any preferences.json file carrying `defaultMode = 'serial'` (or any non-fan-out value) now throws `PREFERENCES_FANOUT_INVALID` at load. The `migratePreferences` path silently rewrites legacy `'serial'` → `'fan-out'` for 2.8.3-era files and surfaces the change in the migration envelope's `changes[]`.
1575
2028
  - **SKILL.md contract flipped.** `peaks-code` SKILL.md now states "Hard constraint: fan-out is mandatory"; the previous "Fan-out opt-out" subsection is removed.
1576
2029
  - **Reference docs reorganized.** `references/fanout-opt-out.md` (escape hatch) → `references/fanout-mandatory.md` (hard constraint + migration contract). `references/swarm-dispatch-contract.md` opt-out callout removed.
1577
- - **Test surface refreshed.** `tests/unit/solo/skills-solo-fanout-opt-out.test.ts` → `tests/unit/solo/skills-solo-fanout-mandatory.test.ts`; pins the new hard constraint and verifies the opt-out file is deleted.
2030
+ - **Test surface refreshed.** `tests/unit/code/skills-code-fanout-opt-out.test.ts` → `tests/unit/code/skills-code-fanout-mandatory.test.ts`; pins the new hard constraint and verifies the opt-out file is deleted.
1578
2031
 
1579
2032
  ### Migration
1580
2033
 
@@ -1903,8 +2356,8 @@ are unchanged by this release), `pnpm build` clean.
1903
2356
  `.peaks/_runtime/<sessionId>/dispatch/contracts/<slice-id>.json`. The B/C/D
1904
2357
  dispatch prompts auto-inject A's contract under a `slice A contract:`
1905
2358
  segment so downstream slices see the dependency without re-reading source.
1906
- - **Solo DAG orchestrator with cancel-on-fail (slice 1.2)** —
1907
- `src/services/solo/dag-orchestrator.ts` exports `runDag(dag, opts)`:
2359
+ - **Code DAG orchestrator with cancel-on-fail (slice 1.2)** —
2360
+ `src/services/code/dag-orchestrator.ts` exports `runDag(dag, opts)`:
1908
2361
  topological-layer fan-out, per-layer join barrier, 任一叶子失败整组回退
1909
2362
  (any leaf failure → in-flight sub-agents receive cancel signal → RD
1910
2363
  returns to repair). peaks-code SKILL.md references the orchestrator.
@@ -1967,7 +2420,7 @@ are unchanged by this release), `pnpm build` clean.
1967
2420
  - **`runDag` cancel-on-fail correctness (slice 1.2.c)** — when any leaf
1968
2421
  fails, in-flight sub-agents in the same batch receive a cancel signal
1969
2422
  at the envelope level; the orchestrator no longer waits for them to
1970
- finish naturally. Pinned by `tests/unit/solo/dag-orchestrator.test.ts`.
2423
+ finish naturally. Pinned by `tests/unit/code/dag-orchestrator.test.ts`.
1971
2424
 
1972
2425
  ### Security
1973
2426
 
@@ -2614,7 +3067,7 @@ Full suite: **2957 passed, 12 skipped, 0 failed**.
2614
3067
  lookup.
2615
3068
 
2616
3069
  - **`peaks-code` Step 0.6** — pre-mode-selection slice decomposition.
2617
- Solo runs the algorithm automatically after Step 0.55 (1.x detection)
3070
+ Code runs the algorithm automatically after Step 0.55 (1.x detection)
2618
3071
  returns "fresh". The user picks a profile informed by the
2619
3072
  decomposition's parallel structure.
2620
3073