peaks-loop 4.0.0-beta.2 → 4.0.0-beta.20

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 (1270) hide show
  1. package/.claude-plugin/marketplace.json +5 -0
  2. package/CHANGELOG.md +779 -128
  3. package/README-en.md +184 -56
  4. package/README.md +215 -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 +421 -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-commands.js +45 -0
  18. package/dist/cli/commands/capability-worker-config-sc-commands.js +8 -0
  19. package/dist/cli/commands/classify-classify-commands.js +151 -0
  20. package/dist/cli/commands/code-commands.js +798 -0
  21. package/dist/cli/commands/code-review-commands.js +83 -0
  22. package/dist/cli/commands/codegraph-commands.js +99 -0
  23. package/dist/cli/commands/compact-command.js +252 -0
  24. package/dist/cli/commands/complexity-commands.js +34 -0
  25. package/dist/cli/commands/config-commands.js +149 -0
  26. package/dist/cli/commands/context-commands.js +254 -0
  27. package/dist/cli/commands/contract-commands.js +114 -0
  28. package/dist/cli/commands/core/artifacts-command.js +62 -0
  29. package/dist/cli/commands/core/binding-commands.js +58 -0
  30. package/dist/cli/commands/core/doctor-command.js +264 -0
  31. package/dist/cli/commands/core/memory-command.js +98 -0
  32. package/dist/cli/commands/core/profile-command.js +9 -0
  33. package/dist/cli/commands/core/proxy-command.js +26 -0
  34. package/dist/cli/commands/core/session-command.js +241 -0
  35. package/dist/cli/commands/core/skill-command.js +303 -0
  36. package/dist/cli/commands/core/standards-command.js +95 -0
  37. package/dist/cli/commands/dispatch-commands.js +365 -0
  38. package/dist/cli/commands/dispatch-from-dag.js +251 -0
  39. package/dist/cli/commands/doc-commands.js +65 -0
  40. package/dist/cli/commands/ecc-commands.d.ts +30 -0
  41. package/dist/cli/commands/ecc-commands.js +119 -0
  42. package/dist/cli/commands/evolution-commands.d.ts +27 -0
  43. package/dist/cli/commands/evolution-commands.js +393 -0
  44. package/dist/cli/commands/feedback-commands.js +145 -0
  45. package/dist/cli/commands/final-review-commands.js +161 -0
  46. package/dist/cli/commands/fixture-commands.js +91 -0
  47. package/dist/cli/commands/fork-commands.js +163 -0
  48. package/dist/cli/commands/gate-commands.js +117 -0
  49. package/dist/cli/commands/heartbeat-commands.js +135 -0
  50. package/dist/cli/commands/hook-handle.js +157 -0
  51. package/dist/cli/commands/hooks-commands.js +156 -0
  52. package/dist/cli/commands/ide-commands.d.ts +25 -0
  53. package/dist/cli/commands/ide-commands.js +42 -0
  54. package/dist/cli/commands/impact-commands.js +62 -0
  55. package/dist/cli/commands/job-commands.js +289 -0
  56. package/dist/cli/commands/legacy-commands.js +32 -0
  57. package/dist/cli/commands/log-commands.js +64 -0
  58. package/dist/cli/commands/loop-commands.d.ts +27 -0
  59. package/dist/cli/commands/loop-commands.js +262 -0
  60. package/dist/cli/commands/loop-eval-commands.js +526 -0
  61. package/dist/cli/commands/memory-commands.js +129 -0
  62. package/dist/cli/commands/migrate-1-4-1-command.js +34 -0
  63. package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +52 -0
  64. package/dist/cli/commands/mut-commands.d.ts +20 -0
  65. package/dist/cli/commands/mut-commands.js +235 -0
  66. package/dist/cli/commands/observability-commands.js +201 -0
  67. package/dist/cli/commands/openspec-commands.js +237 -0
  68. package/dist/cli/commands/perf-audit-commands.js +132 -0
  69. package/dist/cli/commands/perf-commands.js +41 -0
  70. package/dist/cli/commands/polyrepo-commands.d.ts +37 -0
  71. package/dist/cli/commands/polyrepo-commands.js +155 -0
  72. package/dist/cli/commands/prd-blocks-commands.js +50 -0
  73. package/dist/cli/commands/prd-commands.js +143 -0
  74. package/dist/cli/commands/project-commands.js +253 -0
  75. package/dist/cli/commands/qa-business-review-commands.js +148 -0
  76. package/dist/cli/commands/qa-commands.d.ts +94 -0
  77. package/dist/cli/commands/qa-commands.js +271 -0
  78. package/dist/cli/commands/release-commands.js +231 -0
  79. package/dist/cli/commands/request-commands.js +548 -0
  80. package/dist/cli/commands/retrospective-commands.js +175 -0
  81. package/dist/cli/commands/reviewer-commands.js +64 -0
  82. package/dist/cli/commands/role-commands.js +85 -0
  83. package/dist/cli/commands/runtime-commands.d.ts +52 -0
  84. package/dist/cli/commands/runtime-commands.js +149 -0
  85. package/dist/cli/commands/sc-commands.js +47 -0
  86. package/dist/cli/commands/scan-commands.js +445 -0
  87. package/dist/cli/commands/security-audit-commands.js +132 -0
  88. package/dist/cli/commands/sediment-commands.js +658 -0
  89. package/dist/cli/commands/share-commands.d.ts +36 -0
  90. package/dist/cli/commands/share-commands.js +415 -0
  91. package/dist/cli/commands/skill-conformance-commands.js +39 -0
  92. package/dist/cli/commands/skill-loop-engineering-readiness-commands.d.ts +67 -0
  93. package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +173 -0
  94. package/dist/cli/commands/skill-search-commands.d.ts +25 -0
  95. package/dist/cli/commands/skill-search-commands.js +71 -0
  96. package/dist/cli/commands/slice-commands.js +492 -0
  97. package/dist/cli/commands/slice-integrate-commands.js +74 -0
  98. package/dist/cli/commands/slice-review-commands.js +162 -0
  99. package/dist/cli/commands/smoke-commands.js +203 -0
  100. package/dist/cli/commands/sop-commands.js +215 -0
  101. package/dist/cli/commands/statusline-commands.js +169 -0
  102. package/dist/cli/commands/sub-agent-commands.js +20 -0
  103. package/dist/cli/commands/understand-commands.js +148 -0
  104. package/dist/cli/commands/upgrade-commands.js +119 -0
  105. package/dist/cli/commands/user-touchpoint-commands.js +78 -0
  106. package/dist/cli/commands/verdict-aggregate-command.js +106 -0
  107. package/dist/cli/commands/workflow-commands.js +544 -0
  108. package/dist/cli/commands/workflow-plan-commands.js +163 -0
  109. package/dist/cli/commands/workspace/init-command.d.ts +139 -0
  110. package/dist/cli/commands/workspace/init-command.js +505 -0
  111. package/dist/cli/commands/workspace/migrate-command.js +91 -0
  112. package/dist/cli/commands/workspace/reconcile-command.js +103 -0
  113. package/dist/cli/index.js +82 -0
  114. package/dist/cli/program.js +450 -0
  115. package/dist/services/adapter/adapter-registry.d.ts +48 -0
  116. package/dist/services/adapter/adapter-registry.js +186 -0
  117. package/dist/services/artifacts/artifact-prerequisites.js +491 -0
  118. package/dist/services/artifacts/request-artifact-service.js +451 -0
  119. package/dist/services/artifacts/workspace-service.js +272 -0
  120. package/dist/services/audit/static-service.d.ts +67 -0
  121. package/dist/services/audit/static-service.js +51 -0
  122. package/dist/services/code/auto-compact-orchestrator.js +346 -0
  123. package/dist/services/code-review/ocr-service.d.ts +129 -0
  124. package/dist/services/code-review/ocr-service.js +372 -0
  125. package/dist/services/config/config-service.d.ts +58 -0
  126. package/dist/services/config/config-service.js +745 -0
  127. package/dist/services/config/config-types.d.ts +117 -0
  128. package/dist/services/config/config-types.js +18 -0
  129. package/dist/services/config/model-routing.d.ts +66 -0
  130. package/dist/services/config/model-routing.js +105 -0
  131. package/dist/services/context/context-schema.d.ts +415 -0
  132. package/dist/services/dashboard/project-dashboard-service.js +147 -0
  133. package/dist/services/dispatch/batch-counter.js +102 -0
  134. package/dist/services/dispatch/dispatch-record-writer.js +460 -0
  135. package/dist/services/evolution/evolution-service.d.ts +137 -0
  136. package/dist/services/evolution/evolution-service.js +281 -0
  137. package/dist/services/evolution/evolution-store.d.ts +57 -0
  138. package/dist/services/evolution/evolution-store.js +232 -0
  139. package/dist/services/evolution/evolution-types.d.ts +706 -0
  140. package/dist/services/evolution/evolution-types.js +286 -0
  141. package/dist/services/evolution/independent-evaluator-runner.d.ts +90 -0
  142. package/dist/services/evolution/independent-evaluator-runner.js +106 -0
  143. package/dist/services/evolution/regression-skeptic-runner.d.ts +64 -0
  144. package/dist/services/evolution/regression-skeptic-runner.js +113 -0
  145. package/dist/services/ide/adapters/zcode-adapter.d.ts +40 -0
  146. package/dist/services/ide/adapters/zcode-adapter.js +220 -0
  147. package/dist/services/ide/current-model-detector.d.ts +14 -0
  148. package/dist/services/ide/current-model-detector.js +60 -0
  149. package/dist/services/ide/ide-registry.js +63 -0
  150. package/dist/services/ide/ide-types.d.ts +253 -0
  151. package/dist/services/job/job-progress-store.d.ts +60 -0
  152. package/dist/services/job/job-types.d.ts +444 -0
  153. package/dist/services/log/retention.d.ts +50 -0
  154. package/dist/services/log/retention.js +95 -0
  155. package/dist/services/loop/loop-bee-relation-service.d.ts +107 -0
  156. package/dist/services/loop/loop-bee-relation-service.js +211 -0
  157. package/dist/services/loop/loop-bee-relation-store.d.ts +53 -0
  158. package/dist/services/loop/loop-bee-relation-store.js +130 -0
  159. package/dist/services/loop/loop-bee-relation-types.d.ts +118 -0
  160. package/dist/services/loop/loop-bee-relation-types.js +114 -0
  161. package/dist/services/loop/loop-release-service.d.ts +46 -0
  162. package/dist/services/loop/loop-release-service.js +66 -0
  163. package/dist/services/loop/loop-release-store.d.ts +55 -0
  164. package/dist/services/loop/loop-release-store.js +134 -0
  165. package/dist/services/loop/loop-release-types.d.ts +250 -0
  166. package/dist/services/loop/loop-release-types.js +162 -0
  167. package/dist/services/memory/project-context-service.d.ts +21 -0
  168. package/dist/services/memory/project-context-service.js +161 -0
  169. package/dist/services/migrate-skill-name/schema.d.ts +42 -0
  170. package/dist/services/openspec/openspec-archive-service.js +28 -0
  171. package/dist/services/openspec/openspec-bridge-service.js +76 -0
  172. package/dist/services/openspec/openspec-init-service.js +122 -0
  173. package/dist/services/openspec/openspec-propose-from-doctor-service.js +95 -0
  174. package/dist/services/openspec/openspec-render-service.js +130 -0
  175. package/dist/services/openspec/openspec-scan-service.js +123 -0
  176. package/dist/services/openspec/openspec-validate-service.js +77 -0
  177. package/dist/services/polyrepo/polyrepo-dispatcher.d.ts +34 -0
  178. package/dist/services/polyrepo/polyrepo-dispatcher.js +119 -0
  179. package/dist/services/polyrepo/polyrepo-scanner.d.ts +9 -0
  180. package/dist/services/polyrepo/polyrepo-scanner.js +94 -0
  181. package/dist/services/polyrepo/polyrepo-service.d.ts +34 -0
  182. package/dist/services/polyrepo/polyrepo-service.js +49 -0
  183. package/dist/services/polyrepo/polyrepo-types.d.ts +55 -0
  184. package/dist/services/prd/project-scan-bootstrap-service.d.ts +52 -0
  185. package/dist/services/prd/project-scan-bootstrap-service.js +445 -0
  186. package/dist/services/preferences/preferences-types.d.ts +148 -0
  187. package/dist/services/rd/rd-service.js +440 -0
  188. package/dist/services/rd/types.d.ts +252 -0
  189. package/dist/services/recommendations/capability-seed-items.js +139 -0
  190. package/dist/services/recommendations/capability-seed-mappings.js +53 -0
  191. package/dist/services/recommendations/capability-seed-sources.js +34 -0
  192. package/dist/services/runtime/runtime-detector.d.ts +15 -0
  193. package/dist/services/runtime/runtime-detector.js +62 -0
  194. package/dist/services/runtime/runtime-service.d.ts +59 -0
  195. package/dist/services/runtime/runtime-service.js +51 -0
  196. package/dist/services/runtime/vendor-adapter.d.ts +59 -0
  197. package/dist/services/runtime/vendors/claude-code.d.ts +7 -0
  198. package/dist/services/runtime/vendors/claude-code.js +39 -0
  199. package/dist/services/runtime/vendors/codex.d.ts +7 -0
  200. package/dist/services/runtime/vendors/codex.js +43 -0
  201. package/dist/services/runtime/vendors/copilot.d.ts +7 -0
  202. package/dist/services/runtime/vendors/copilot.js +40 -0
  203. package/dist/services/scan/acceptance-coverage-service.js +140 -0
  204. package/dist/services/scan/archetype-service.js +254 -0
  205. package/dist/services/scan/existing-system-service.js +300 -0
  206. package/dist/services/scan/libraries-service.js +419 -0
  207. package/dist/services/scan/scan-types.d.ts +59 -0
  208. package/dist/services/share/bundle-reader.d.ts +100 -0
  209. package/dist/services/share/bundle-reader.js +434 -0
  210. package/dist/services/share/bundle-types.d.ts +392 -0
  211. package/dist/services/share/bundle-types.js +318 -0
  212. package/dist/services/share/bundle-writer.d.ts +97 -0
  213. package/dist/services/share/bundle-writer.js +429 -0
  214. package/dist/services/share/run-state-contract.d.ts +133 -0
  215. package/dist/services/share/run-state-contract.js +138 -0
  216. package/dist/services/skill/skill-search-service.d.ts +93 -0
  217. package/dist/services/skill/skill-search-service.js +232 -0
  218. package/dist/services/skillhub/migrations/001-initial.sql +71 -0
  219. package/dist/services/skillhub/migrations/002-loop-release.sql +32 -0
  220. package/dist/services/skillhub/migrations/003-loop-bee-relation.sql +35 -0
  221. package/dist/services/skillhub/migrations/004-loop-bee-extension.sql +65 -0
  222. package/dist/services/skillhub/migrations/005-evolution-evaluation.sql +81 -0
  223. package/dist/services/skillhub/migrations/006-crystallization-event.sql +92 -0
  224. package/dist/services/skillhub/release-import.js +64 -0
  225. package/dist/services/skillhub/release-retain.js +94 -0
  226. package/dist/services/skillhub/sqlite-store.js +63 -0
  227. package/dist/services/skillhub/types.d.ts +115 -0
  228. package/dist/services/skills/skill-registry.d.ts +18 -0
  229. package/dist/services/skills/skill-registry.js +69 -0
  230. package/dist/services/skills/skill-runbook-service.js +128 -0
  231. package/dist/services/slice/slice-check-service.js +459 -0
  232. package/dist/services/standards/ide-aware-standards-service.js +91 -0
  233. package/dist/services/standards/loop-engineering-lint.d.ts +38 -0
  234. package/dist/services/standards/loop-engineering-lint.js +101 -0
  235. package/dist/services/standards/loop-engineering-readiness-lint.d.ts +111 -0
  236. package/dist/services/standards/loop-engineering-readiness-lint.js +248 -0
  237. package/dist/services/standards/migrate-claude-rules-service.js +214 -0
  238. package/dist/services/standards/missing-standards-detector.d.ts +81 -0
  239. package/dist/services/standards/missing-standards-detector.js +139 -0
  240. package/dist/services/standards/project-standards-service.js +693 -0
  241. package/dist/services/understand/hybrid-types.js +1 -0
  242. package/dist/services/understand/understand-hybrid-service.js +100 -0
  243. package/dist/services/understand/understand-scan-service.js +170 -0
  244. package/dist/services/understand/understand-types.js +1 -0
  245. package/dist/services/upgrade/upgrade-service.js +404 -0
  246. package/dist/services/verdict/envelopes.d.ts +93 -0
  247. package/dist/services/verdict/envelopes.js +349 -0
  248. package/dist/services/verdict/verdict-aggregator.d.ts +94 -0
  249. package/dist/services/workflow/autonomous-resume-writer.js +170 -0
  250. package/dist/services/workflow/plan-reader.d.ts +29 -0
  251. package/dist/services/workflow/plan-reader.js +174 -0
  252. package/dist/services/workflow/plan-refresher.d.ts +32 -0
  253. package/dist/services/workflow/plan-refresher.js +353 -0
  254. package/dist/services/workflow/plan-trigger-detector.d.ts +55 -0
  255. package/dist/services/workflow/plan-trigger-detector.js +142 -0
  256. package/dist/services/workflow/workflow-router-service.d.ts +85 -0
  257. package/dist/services/workflow/workflow-router-service.js +235 -0
  258. package/dist/services/workspace/migrate-service.js +613 -0
  259. package/dist/services/workspace/templates/project-scan/audit-output-schema.md +100 -0
  260. package/dist/services/workspace/templates/project-scan/business-knowledge.md +44 -0
  261. package/dist/services/workspace/templates/project-scan/index.d.ts +34 -0
  262. package/dist/services/workspace/templates/project-scan/index.js +60 -0
  263. package/dist/services/workspace/templates/project-scan/perf-template.md +109 -0
  264. package/dist/services/workspace/templates/project-scan/security-template.md +99 -0
  265. package/dist/services/workspace/workspace-service.js +432 -0
  266. package/package.json +56 -40
  267. package/scripts/copy-templates.mjs +80 -0
  268. package/scripts/install-skills.mjs +13 -10
  269. package/scripts/sync-version.mjs +8 -1
  270. package/skills/bee/peaks-perf-audit/SKILL.md +1 -0
  271. package/skills/bee/peaks-prd/test-prompts.json +12 -0
  272. package/skills/bee/peaks-qa/test-prompts.json +12 -0
  273. package/skills/bee/peaks-rd/SKILL.md +10 -20
  274. package/skills/bee/peaks-rd/references/library-version-awareness.md +2 -2
  275. package/skills/bee/peaks-rd/references/mock-data-placement.md +1 -1
  276. package/skills/bee/peaks-rd/references/rd-runbook.md +2 -2
  277. package/skills/bee/peaks-rd/references/rd-transition-gates.md +2 -2
  278. package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +1 -1
  279. package/skills/bee/peaks-rd/test-prompts.json +12 -0
  280. package/skills/bee/peaks-reviewer/SKILL.md +1 -0
  281. package/skills/bee/peaks-security-audit/SKILL.md +1 -0
  282. package/skills/bee/peaks-txt/test-prompts.json +12 -0
  283. package/skills/bee/peaks-ui/SKILL.md +2 -2
  284. package/skills/bee/peaks-ui/test-prompts.json +12 -0
  285. package/skills/peaks-code/SKILL.md +61 -119
  286. package/skills/peaks-code/references/external-references.md +1 -3
  287. package/skills/peaks-code/references/external-skill-invocation.md +1 -1
  288. package/skills/peaks-code/references/project-scan-checklist.md +3 -1
  289. package/skills/peaks-code/references/runbook.md +3 -5
  290. package/skills/peaks-code/references/standards-preflight.md +1 -1
  291. package/skills/peaks-code/references/startup-sequence.md +110 -0
  292. package/skills/peaks-code/references/step-0-55-1x-detection.md +2 -1
  293. package/skills/peaks-code/references/step-11-memory-sediment.md +56 -0
  294. package/skills/peaks-code/references/sub-agent-dispatch.md +30 -0
  295. package/skills/peaks-code/references/swarm-dispatch-contract.md +1 -1
  296. package/skills/peaks-code/references/workflow-gates-and-types.md +4 -4
  297. package/skills/peaks-code/test-prompts.json +12 -0
  298. package/skills/peaks-content/SKILL.md +272 -0
  299. package/skills/peaks-doctor/SKILL.md +1 -1
  300. package/skills/peaks-ide/SKILL.md +1 -1
  301. package/skills/peaks-issue-fix-orchestrator/SKILL.md +307 -0
  302. package/skills/peaks-slice-decompose/SKILL.md +61 -1
  303. package/skills/peaks-solo/SKILL.md +197 -0
  304. package/skills/peaks-solo/references/fallback-tool-inventory.md +46 -0
  305. package/skills/peaks-solo/references/sediment-prompt-template.md +62 -0
  306. package/skills/peaks-solo/references/triage-decision-table.md +31 -0
  307. package/skills/peaks-sop/test-prompts.json +17 -0
  308. package/dist/src/cli/cli-helpers.d.ts +0 -43
  309. package/dist/src/cli/cli-helpers.js +0 -86
  310. package/dist/src/cli/commands/agent-commands.d.ts +0 -20
  311. package/dist/src/cli/commands/agent-commands.js +0 -48
  312. package/dist/src/cli/commands/audit-commands.js +0 -437
  313. package/dist/src/cli/commands/capability-commands.js +0 -45
  314. package/dist/src/cli/commands/capability-worker-config-sc-commands.js +0 -10
  315. package/dist/src/cli/commands/classify-classify-commands.js +0 -151
  316. package/dist/src/cli/commands/code-commands.js +0 -798
  317. package/dist/src/cli/commands/code-review-commands.js +0 -83
  318. package/dist/src/cli/commands/codegraph-commands.js +0 -99
  319. package/dist/src/cli/commands/compact-command.js +0 -252
  320. package/dist/src/cli/commands/complexity-commands.js +0 -34
  321. package/dist/src/cli/commands/config-commands.js +0 -220
  322. package/dist/src/cli/commands/context-commands.js +0 -254
  323. package/dist/src/cli/commands/contract-commands.js +0 -114
  324. package/dist/src/cli/commands/core/artifacts-command.js +0 -62
  325. package/dist/src/cli/commands/core/binding-commands.js +0 -58
  326. package/dist/src/cli/commands/core/doctor-command.js +0 -204
  327. package/dist/src/cli/commands/core/memory-command.js +0 -98
  328. package/dist/src/cli/commands/core/profile-command.js +0 -9
  329. package/dist/src/cli/commands/core/proxy-command.js +0 -26
  330. package/dist/src/cli/commands/core/session-command.js +0 -241
  331. package/dist/src/cli/commands/core/skill-command.js +0 -275
  332. package/dist/src/cli/commands/core/standards-command.js +0 -95
  333. package/dist/src/cli/commands/dispatch-commands.js +0 -351
  334. package/dist/src/cli/commands/dispatch-from-dag.js +0 -251
  335. package/dist/src/cli/commands/doc-commands.js +0 -65
  336. package/dist/src/cli/commands/feedback-commands.js +0 -145
  337. package/dist/src/cli/commands/final-review-commands.js +0 -161
  338. package/dist/src/cli/commands/fixture-commands.js +0 -91
  339. package/dist/src/cli/commands/fork-commands.js +0 -163
  340. package/dist/src/cli/commands/gate-commands.js +0 -117
  341. package/dist/src/cli/commands/heartbeat-commands.js +0 -135
  342. package/dist/src/cli/commands/hook-handle.js +0 -157
  343. package/dist/src/cli/commands/hooks-commands.js +0 -156
  344. package/dist/src/cli/commands/impact-commands.js +0 -62
  345. package/dist/src/cli/commands/job-commands.js +0 -289
  346. package/dist/src/cli/commands/legacy-commands.js +0 -32
  347. package/dist/src/cli/commands/log-commands.js +0 -64
  348. package/dist/src/cli/commands/loop-commands.d.ts +0 -21
  349. package/dist/src/cli/commands/loop-commands.js +0 -128
  350. package/dist/src/cli/commands/loop-eval-commands.js +0 -526
  351. package/dist/src/cli/commands/memory-commands.js +0 -129
  352. package/dist/src/cli/commands/migrate-1-4-1-command.js +0 -34
  353. package/dist/src/cli/commands/migrate-v2-10-to-v2-11-command.js +0 -52
  354. package/dist/src/cli/commands/mut-commands.d.ts +0 -20
  355. package/dist/src/cli/commands/mut-commands.js +0 -239
  356. package/dist/src/cli/commands/observability-commands.js +0 -201
  357. package/dist/src/cli/commands/openspec-commands.js +0 -237
  358. package/dist/src/cli/commands/perf-audit-commands.js +0 -132
  359. package/dist/src/cli/commands/perf-commands.js +0 -41
  360. package/dist/src/cli/commands/prd-blocks-commands.js +0 -50
  361. package/dist/src/cli/commands/prd-commands.js +0 -141
  362. package/dist/src/cli/commands/project-commands.js +0 -248
  363. package/dist/src/cli/commands/qa-business-review-commands.js +0 -148
  364. package/dist/src/cli/commands/qa-commands.d.ts +0 -94
  365. package/dist/src/cli/commands/qa-commands.js +0 -271
  366. package/dist/src/cli/commands/release-commands.js +0 -231
  367. package/dist/src/cli/commands/request-commands.js +0 -548
  368. package/dist/src/cli/commands/retrospective-commands.js +0 -175
  369. package/dist/src/cli/commands/reviewer-commands.js +0 -64
  370. package/dist/src/cli/commands/role-commands.js +0 -85
  371. package/dist/src/cli/commands/sc-commands.js +0 -45
  372. package/dist/src/cli/commands/scan-commands.js +0 -445
  373. package/dist/src/cli/commands/security-audit-commands.js +0 -132
  374. package/dist/src/cli/commands/sediment-commands.js +0 -640
  375. package/dist/src/cli/commands/share-commands.d.ts +0 -17
  376. package/dist/src/cli/commands/share-commands.js +0 -296
  377. package/dist/src/cli/commands/skill-conformance-commands.js +0 -39
  378. package/dist/src/cli/commands/slice-commands.js +0 -492
  379. package/dist/src/cli/commands/slice-integrate-commands.js +0 -74
  380. package/dist/src/cli/commands/slice-review-commands.js +0 -162
  381. package/dist/src/cli/commands/smoke-commands.js +0 -203
  382. package/dist/src/cli/commands/sop-commands.js +0 -215
  383. package/dist/src/cli/commands/statusline-commands.js +0 -169
  384. package/dist/src/cli/commands/sub-agent-commands.js +0 -19
  385. package/dist/src/cli/commands/understand-commands.js +0 -148
  386. package/dist/src/cli/commands/upgrade-commands.js +0 -119
  387. package/dist/src/cli/commands/user-touchpoint-commands.js +0 -78
  388. package/dist/src/cli/commands/verdict-aggregate-command.js +0 -106
  389. package/dist/src/cli/commands/worker-commands.d.ts +0 -3
  390. package/dist/src/cli/commands/worker-commands.js +0 -52
  391. package/dist/src/cli/commands/workflow-commands.js +0 -535
  392. package/dist/src/cli/commands/workflow-plan-commands.js +0 -163
  393. package/dist/src/cli/commands/workspace/init-command.d.ts +0 -121
  394. package/dist/src/cli/commands/workspace/init-command.js +0 -436
  395. package/dist/src/cli/commands/workspace/migrate-command.js +0 -91
  396. package/dist/src/cli/commands/workspace/reconcile-command.js +0 -103
  397. package/dist/src/cli/index.js +0 -30
  398. package/dist/src/cli/program.js +0 -368
  399. package/dist/src/services/agent/ecc-agent-service.d.ts +0 -47
  400. package/dist/src/services/agent/ecc-agent-service.js +0 -143
  401. package/dist/src/services/artifacts/artifact-prerequisites.js +0 -491
  402. package/dist/src/services/artifacts/request-artifact-service.js +0 -451
  403. package/dist/src/services/artifacts/workspace-service.js +0 -272
  404. package/dist/src/services/audit/static-service.d.ts +0 -60
  405. package/dist/src/services/audit/static-service.js +0 -130
  406. package/dist/src/services/audit-independent/perf-audit-service.d.ts +0 -151
  407. package/dist/src/services/audit-independent/perf-audit-service.js +0 -316
  408. package/dist/src/services/audit-independent/security-audit-service.d.ts +0 -155
  409. package/dist/src/services/audit-independent/security-audit-service.js +0 -316
  410. package/dist/src/services/code/auto-compact-orchestrator.js +0 -343
  411. package/dist/src/services/code-review/ocr-service.d.ts +0 -129
  412. package/dist/src/services/code-review/ocr-service.js +0 -369
  413. package/dist/src/services/config/config-service.d.ts +0 -69
  414. package/dist/src/services/config/config-service.js +0 -814
  415. package/dist/src/services/config/config-types.d.ts +0 -119
  416. package/dist/src/services/config/config-types.js +0 -18
  417. package/dist/src/services/config/model-routing.d.ts +0 -4
  418. package/dist/src/services/config/model-routing.js +0 -17
  419. package/dist/src/services/config/provider-service.d.ts +0 -48
  420. package/dist/src/services/config/provider-service.js +0 -143
  421. package/dist/src/services/context/context-schema.d.ts +0 -415
  422. package/dist/src/services/context/dispatch-context-guard.d.ts +0 -27
  423. package/dist/src/services/context/dispatch-context-guard.js +0 -192
  424. package/dist/src/services/context/shared-channel.d.ts +0 -93
  425. package/dist/src/services/context/shared-channel.js +0 -308
  426. package/dist/src/services/dashboard/project-dashboard-service.js +0 -147
  427. package/dist/src/services/dispatch/batch-counter.js +0 -102
  428. package/dist/src/services/dispatch/dispatch-record-writer.js +0 -460
  429. package/dist/src/services/doctor/doctor-service.d.ts +0 -149
  430. package/dist/src/services/doctor/doctor-service.js +0 -929
  431. package/dist/src/services/filesystem/file-lock.d.ts +0 -11
  432. package/dist/src/services/filesystem/file-lock.js +0 -129
  433. package/dist/src/services/final-review/final-review-service.d.ts +0 -12
  434. package/dist/src/services/final-review/final-review-service.js +0 -52
  435. package/dist/src/services/final-review/final-review-types.d.ts +0 -42
  436. package/dist/src/services/final-review/final-review-types.js +0 -18
  437. package/dist/src/services/ide/ide-registry.js +0 -60
  438. package/dist/src/services/ide/ide-types.d.ts +0 -230
  439. package/dist/src/services/job/job-progress-store.d.ts +0 -60
  440. package/dist/src/services/job/job-resource-snapshot.d.ts +0 -7
  441. package/dist/src/services/job/job-resource-snapshot.js +0 -75
  442. package/dist/src/services/job/job-types.d.ts +0 -444
  443. package/dist/src/services/log/retention.d.ts +0 -34
  444. package/dist/src/services/log/retention.js +0 -78
  445. package/dist/src/services/memory/project-context-service.d.ts +0 -11
  446. package/dist/src/services/memory/project-context-service.js +0 -148
  447. package/dist/src/services/migrate-skill-name/schema.d.ts +0 -42
  448. package/dist/src/services/mut/assert-scanner.d.ts +0 -6
  449. package/dist/src/services/mut/assert-scanner.js +0 -116
  450. package/dist/src/services/mut/index.d.ts +0 -8
  451. package/dist/src/services/mut/index.js +0 -7
  452. package/dist/src/services/mut/mut-runner.d.ts +0 -39
  453. package/dist/src/services/mut/mut-runner.js +0 -29
  454. package/dist/src/services/mut/production-stryker.d.ts +0 -2
  455. package/dist/src/services/mut/production-stryker.js +0 -75
  456. package/dist/src/services/mut/report-builder.d.ts +0 -11
  457. package/dist/src/services/mut/report-builder.js +0 -110
  458. package/dist/src/services/mut/report-loader.d.ts +0 -31
  459. package/dist/src/services/mut/report-loader.js +0 -78
  460. package/dist/src/services/mut/thresholds.d.ts +0 -21
  461. package/dist/src/services/mut/thresholds.js +0 -22
  462. package/dist/src/services/mut/types.d.ts +0 -336
  463. package/dist/src/services/mut/types.js +0 -59
  464. package/dist/src/services/openspec/openspec-archive-service.js +0 -28
  465. package/dist/src/services/openspec/openspec-bridge-service.js +0 -76
  466. package/dist/src/services/openspec/openspec-init-service.js +0 -122
  467. package/dist/src/services/openspec/openspec-propose-from-doctor-service.js +0 -95
  468. package/dist/src/services/openspec/openspec-render-service.js +0 -130
  469. package/dist/src/services/openspec/openspec-scan-service.js +0 -123
  470. package/dist/src/services/openspec/openspec-validate-service.js +0 -77
  471. package/dist/src/services/preferences/preferences-types.d.ts +0 -148
  472. package/dist/src/services/providers/minimax-provider-service.d.ts +0 -24
  473. package/dist/src/services/providers/minimax-provider-service.js +0 -143
  474. package/dist/src/services/providers/minimax-worker-service.d.ts +0 -21
  475. package/dist/src/services/providers/minimax-worker-service.js +0 -83
  476. package/dist/src/services/rd/rd-service.js +0 -438
  477. package/dist/src/services/rd/types.d.ts +0 -252
  478. package/dist/src/services/recommendations/capability-seed-items.js +0 -140
  479. package/dist/src/services/recommendations/capability-seed-mappings.js +0 -54
  480. package/dist/src/services/recommendations/capability-seed-sources.js +0 -35
  481. package/dist/src/services/scan/acceptance-coverage-service.js +0 -140
  482. package/dist/src/services/scan/archetype-service.js +0 -242
  483. package/dist/src/services/scan/existing-system-service.js +0 -300
  484. package/dist/src/services/scan/libraries-service.js +0 -419
  485. package/dist/src/services/scan/scan-types.d.ts +0 -59
  486. package/dist/src/services/skillhub/release-import.js +0 -59
  487. package/dist/src/services/skillhub/release-retain.js +0 -89
  488. package/dist/src/services/skillhub/sqlite-store.js +0 -47
  489. package/dist/src/services/skillhub/types.d.ts +0 -105
  490. package/dist/src/services/skills/skill-registry.d.ts +0 -17
  491. package/dist/src/services/skills/skill-registry.js +0 -67
  492. package/dist/src/services/skills/skill-runbook-service.js +0 -128
  493. package/dist/src/services/slice/slice-check-service.js +0 -459
  494. package/dist/src/services/standards/ide-aware-standards-service.js +0 -89
  495. package/dist/src/services/standards/migrate-claude-rules-service.js +0 -193
  496. package/dist/src/services/standards/missing-standards-detector.d.ts +0 -79
  497. package/dist/src/services/standards/missing-standards-detector.js +0 -132
  498. package/dist/src/services/standards/project-standards-service.js +0 -574
  499. package/dist/src/services/understand/understand-hybrid-service.js +0 -100
  500. package/dist/src/services/understand/understand-scan-service.js +0 -170
  501. package/dist/src/services/upgrade/upgrade-service.js +0 -403
  502. package/dist/src/services/verdict/envelopes.d.ts +0 -93
  503. package/dist/src/services/verdict/envelopes.js +0 -349
  504. package/dist/src/services/verdict/verdict-aggregator.d.ts +0 -94
  505. package/dist/src/services/workflow/autonomous-resume-writer.js +0 -170
  506. package/dist/src/services/workflow/plan-reader.d.ts +0 -29
  507. package/dist/src/services/workflow/plan-reader.js +0 -174
  508. package/dist/src/services/workflow/plan-refresher.d.ts +0 -32
  509. package/dist/src/services/workflow/plan-refresher.js +0 -353
  510. package/dist/src/services/workflow/plan-trigger-detector.d.ts +0 -55
  511. package/dist/src/services/workflow/plan-trigger-detector.js +0 -142
  512. package/dist/src/services/workflow/workflow-router-service.d.ts +0 -85
  513. package/dist/src/services/workflow/workflow-router-service.js +0 -227
  514. package/dist/src/services/workspace/migrate-service.js +0 -613
  515. package/dist/src/services/workspace/workspace-service.js +0 -432
  516. package/dist/src/shared/fs.d.ts +0 -4
  517. package/dist/src/shared/fs.js +0 -26
  518. package/dist/src/shared/paths.d.ts +0 -6
  519. package/dist/src/shared/paths.js +0 -50
  520. package/dist/src/shared/result.d.ts +0 -22
  521. package/dist/src/shared/result.js +0 -46
  522. package/dist/src/shared/version.d.ts +0 -1
  523. package/dist/src/shared/version.js +0 -1
  524. package/skills/peaks-code/references/openspec-workflow.md +0 -81
  525. /package/dist/{src/cli → cli}/commands/adapter-commands.d.ts +0 -0
  526. /package/dist/{src/cli → cli}/commands/adapter-commands.js +0 -0
  527. /package/dist/{src/cli → cli}/commands/audit-commands.d.ts +0 -0
  528. /package/dist/{src/cli → cli}/commands/capability-commands.d.ts +0 -0
  529. /package/dist/{src/cli → cli}/commands/capability-worker-config-sc-commands.d.ts +0 -0
  530. /package/dist/{src/cli → cli}/commands/classify-classify-commands.d.ts +0 -0
  531. /package/dist/{src/cli → cli}/commands/code-commands.d.ts +0 -0
  532. /package/dist/{src/cli → cli}/commands/code-review-commands.d.ts +0 -0
  533. /package/dist/{src/cli → cli}/commands/codegraph-commands.d.ts +0 -0
  534. /package/dist/{src/cli → cli}/commands/compact-command.d.ts +0 -0
  535. /package/dist/{src/cli → cli}/commands/complexity-commands.d.ts +0 -0
  536. /package/dist/{src/cli → cli}/commands/config-commands.d.ts +0 -0
  537. /package/dist/{src/cli → cli}/commands/context-builder-commands.d.ts +0 -0
  538. /package/dist/{src/cli → cli}/commands/context-builder-commands.js +0 -0
  539. /package/dist/{src/cli → cli}/commands/context-commands.d.ts +0 -0
  540. /package/dist/{src/cli → cli}/commands/contract-commands.d.ts +0 -0
  541. /package/dist/{src/cli → cli}/commands/core/artifacts-command.d.ts +0 -0
  542. /package/dist/{src/cli → cli}/commands/core/binding-commands.d.ts +0 -0
  543. /package/dist/{src/cli → cli}/commands/core/doctor-command.d.ts +0 -0
  544. /package/dist/{src/cli → cli}/commands/core/memory-command.d.ts +0 -0
  545. /package/dist/{src/cli → cli}/commands/core/profile-command.d.ts +0 -0
  546. /package/dist/{src/cli → cli}/commands/core/proxy-command.d.ts +0 -0
  547. /package/dist/{src/cli → cli}/commands/core/session-command.d.ts +0 -0
  548. /package/dist/{src/cli → cli}/commands/core/skill-command.d.ts +0 -0
  549. /package/dist/{src/cli → cli}/commands/core/standards-command.d.ts +0 -0
  550. /package/dist/{src/cli → cli}/commands/core-artifact-commands.d.ts +0 -0
  551. /package/dist/{src/cli → cli}/commands/core-artifact-commands.js +0 -0
  552. /package/dist/{src/cli → cli}/commands/dispatch-commands.d.ts +0 -0
  553. /package/dist/{src/cli → cli}/commands/dispatch-from-dag.d.ts +0 -0
  554. /package/dist/{src/cli → cli}/commands/doc-commands.d.ts +0 -0
  555. /package/dist/{src/cli → cli}/commands/feedback-commands.d.ts +0 -0
  556. /package/dist/{src/cli → cli}/commands/final-review-commands.d.ts +0 -0
  557. /package/dist/{src/cli → cli}/commands/fixture-commands.d.ts +0 -0
  558. /package/dist/{src/cli → cli}/commands/fork-commands.d.ts +0 -0
  559. /package/dist/{src/cli → cli}/commands/gate-commands.d.ts +0 -0
  560. /package/dist/{src/cli → cli}/commands/heartbeat-commands.d.ts +0 -0
  561. /package/dist/{src/cli → cli}/commands/hook-handle.d.ts +0 -0
  562. /package/dist/{src/cli → cli}/commands/hooks-commands.d.ts +0 -0
  563. /package/dist/{src/cli → cli}/commands/impact-commands.d.ts +0 -0
  564. /package/dist/{src/cli → cli}/commands/job-commands.d.ts +0 -0
  565. /package/dist/{src/cli → cli}/commands/legacy-commands.d.ts +0 -0
  566. /package/dist/{src/cli → cli}/commands/log-commands.d.ts +0 -0
  567. /package/dist/{src/cli → cli}/commands/loop-eval-commands.d.ts +0 -0
  568. /package/dist/{src/cli → cli}/commands/memory-commands.d.ts +0 -0
  569. /package/dist/{src/cli → cli}/commands/migrate-1-4-1-command.d.ts +0 -0
  570. /package/dist/{src/cli → cli}/commands/migrate-v2-10-to-v2-11-command.d.ts +0 -0
  571. /package/dist/{src/cli → cli}/commands/observability-commands.d.ts +0 -0
  572. /package/dist/{src/cli → cli}/commands/openspec-commands.d.ts +0 -0
  573. /package/dist/{src/cli → cli}/commands/perf-audit-commands.d.ts +0 -0
  574. /package/dist/{src/cli → cli}/commands/perf-commands.d.ts +0 -0
  575. /package/dist/{src/cli → cli}/commands/playwright-commands.d.ts +0 -0
  576. /package/dist/{src/cli → cli}/commands/playwright-commands.js +0 -0
  577. /package/dist/{src/cli → cli}/commands/prd-blocks-commands.d.ts +0 -0
  578. /package/dist/{src/cli → cli}/commands/prd-commands.d.ts +0 -0
  579. /package/dist/{src/cli → cli}/commands/preferences-commands.d.ts +0 -0
  580. /package/dist/{src/cli → cli}/commands/preferences-commands.js +0 -0
  581. /package/dist/{src/cli → cli}/commands/project-commands.d.ts +0 -0
  582. /package/dist/{src/cli → cli}/commands/qa-business-review-commands.d.ts +0 -0
  583. /package/dist/{src/cli → cli}/commands/release-commands.d.ts +0 -0
  584. /package/dist/{src/cli → cli}/commands/request-commands.d.ts +0 -0
  585. /package/dist/{src/cli → cli}/commands/retrospective-commands.d.ts +0 -0
  586. /package/dist/{src/cli → cli}/commands/reviewer-commands.d.ts +0 -0
  587. /package/dist/{src/cli → cli}/commands/role-commands.d.ts +0 -0
  588. /package/dist/{src/cli → cli}/commands/sc-commands.d.ts +0 -0
  589. /package/dist/{src/cli → cli}/commands/scan-commands.d.ts +0 -0
  590. /package/dist/{src/cli → cli}/commands/security-audit-commands.d.ts +0 -0
  591. /package/dist/{src/cli → cli}/commands/sediment-commands.d.ts +0 -0
  592. /package/dist/{src/cli → cli}/commands/session-auto-compact-hook-command.d.ts +0 -0
  593. /package/dist/{src/cli → cli}/commands/session-auto-compact-hook-command.js +0 -0
  594. /package/dist/{src/cli → cli}/commands/session-checkpoint-command.d.ts +0 -0
  595. /package/dist/{src/cli → cli}/commands/session-checkpoint-command.js +0 -0
  596. /package/dist/{src/cli → cli}/commands/session-migrate-skill-name.d.ts +0 -0
  597. /package/dist/{src/cli → cli}/commands/session-migrate-skill-name.js +0 -0
  598. /package/dist/{src/cli → cli}/commands/session-resume-command.d.ts +0 -0
  599. /package/dist/{src/cli → cli}/commands/session-resume-command.js +0 -0
  600. /package/dist/{src/cli → cli}/commands/skill-conformance-commands.d.ts +0 -0
  601. /package/dist/{src/cli → cli}/commands/skill-visibility.d.ts +0 -0
  602. /package/dist/{src/cli → cli}/commands/skill-visibility.js +0 -0
  603. /package/dist/{src/cli → cli}/commands/slice-commands.d.ts +0 -0
  604. /package/dist/{src/cli → cli}/commands/slice-integrate-commands.d.ts +0 -0
  605. /package/dist/{src/cli → cli}/commands/slice-review-commands.d.ts +0 -0
  606. /package/dist/{src/cli → cli}/commands/smoke-commands.d.ts +0 -0
  607. /package/dist/{src/cli → cli}/commands/sop-commands.d.ts +0 -0
  608. /package/dist/{src/cli → cli}/commands/statusline-commands.d.ts +0 -0
  609. /package/dist/{src/cli → cli}/commands/sub-agent-commands.d.ts +0 -0
  610. /package/dist/{src/cli → cli}/commands/sub-agent-dispatch-guard.d.ts +0 -0
  611. /package/dist/{src/cli → cli}/commands/sub-agent-dispatch-guard.js +0 -0
  612. /package/dist/{src/cli → cli}/commands/sub-agent-shared.d.ts +0 -0
  613. /package/dist/{src/cli → cli}/commands/sub-agent-shared.js +0 -0
  614. /package/dist/{src/cli → cli}/commands/test-commands.d.ts +0 -0
  615. /package/dist/{src/cli → cli}/commands/test-commands.js +0 -0
  616. /package/dist/{src/cli → cli}/commands/understand-commands.d.ts +0 -0
  617. /package/dist/{src/cli → cli}/commands/upgrade-commands.d.ts +0 -0
  618. /package/dist/{src/cli → cli}/commands/user-touchpoint-commands.d.ts +0 -0
  619. /package/dist/{src/cli → cli}/commands/verdict-aggregate-command.d.ts +0 -0
  620. /package/dist/{src/cli → cli}/commands/workflow-commands.d.ts +0 -0
  621. /package/dist/{src/cli → cli}/commands/workflow-plan-commands.d.ts +0 -0
  622. /package/dist/{src/cli → cli}/commands/workspace/clean-command.d.ts +0 -0
  623. /package/dist/{src/cli → cli}/commands/workspace/clean-command.js +0 -0
  624. /package/dist/{src/cli → cli}/commands/workspace/helpers.d.ts +0 -0
  625. /package/dist/{src/cli → cli}/commands/workspace/helpers.js +0 -0
  626. /package/dist/{src/cli → cli}/commands/workspace/migrate-command.d.ts +0 -0
  627. /package/dist/{src/cli → cli}/commands/workspace/reconcile-command.d.ts +0 -0
  628. /package/dist/{src/cli → cli}/commands/workspace-commands.d.ts +0 -0
  629. /package/dist/{src/cli → cli}/commands/workspace-commands.js +0 -0
  630. /package/dist/{src/cli → cli}/index.d.ts +0 -0
  631. /package/dist/{src/cli → cli}/program.d.ts +0 -0
  632. /package/dist/{src/hooks → hooks}/pre-tool-use-sub-agent.d.ts +0 -0
  633. /package/dist/{src/hooks → hooks}/pre-tool-use-sub-agent.js +0 -0
  634. /package/dist/{src/lib → lib}/render/message-renderer.d.ts +0 -0
  635. /package/dist/{src/lib → lib}/render/message-renderer.js +0 -0
  636. /package/dist/{src/services → services}/adapter/adapter.d.ts +0 -0
  637. /package/dist/{src/services → services}/adapter/adapter.js +0 -0
  638. /package/dist/{src/services → services}/adapter/auto-adapter.d.ts +0 -0
  639. /package/dist/{src/services → services}/adapter/auto-adapter.js +0 -0
  640. /package/dist/{src/services → services}/adapter/claude-adapter.d.ts +0 -0
  641. /package/dist/{src/services → services}/adapter/claude-adapter.js +0 -0
  642. /package/dist/{src/services → services}/adapter/codex-adapter.d.ts +0 -0
  643. /package/dist/{src/services → services}/adapter/codex-adapter.js +0 -0
  644. /package/dist/{src/services → services}/adapter/copilot-adapter.d.ts +0 -0
  645. /package/dist/{src/services → services}/adapter/copilot-adapter.js +0 -0
  646. /package/dist/{src/services → services}/artifacts/artifact-lint-service.d.ts +0 -0
  647. /package/dist/{src/services → services}/artifacts/artifact-lint-service.js +0 -0
  648. /package/dist/{src/services → services}/artifacts/artifact-prerequisites.d.ts +0 -0
  649. /package/dist/{src/services → services}/artifacts/artifact-service.d.ts +0 -0
  650. /package/dist/{src/services → services}/artifacts/artifact-service.js +0 -0
  651. /package/dist/{src/services → services}/artifacts/artifact-templates.d.ts +0 -0
  652. /package/dist/{src/services → services}/artifacts/artifact-templates.js +0 -0
  653. /package/dist/{src/services → services}/artifacts/repair-cycle-service.d.ts +0 -0
  654. /package/dist/{src/services → services}/artifacts/repair-cycle-service.js +0 -0
  655. /package/dist/{src/services → services}/artifacts/request-artifact-service.d.ts +0 -0
  656. /package/dist/{src/services → services}/artifacts/request-artifact-state-helpers.d.ts +0 -0
  657. /package/dist/{src/services → services}/artifacts/request-artifact-state-helpers.js +0 -0
  658. /package/dist/{src/services → services}/artifacts/workspace-service.d.ts +0 -0
  659. /package/dist/{src/services → services}/audit/artifact-writer.d.ts +0 -0
  660. /package/dist/{src/services → services}/audit/artifact-writer.js +0 -0
  661. /package/dist/{src/services → services}/audit/audit-goal-service.d.ts +0 -0
  662. /package/dist/{src/services → services}/audit/audit-goal-service.js +0 -0
  663. /package/dist/{src/services → services}/audit/audit-goal-types.d.ts +0 -0
  664. /package/dist/{src/services → services}/audit/audit-goal-types.js +0 -0
  665. /package/dist/{src/services → services}/audit/backing-detector.d.ts +0 -0
  666. /package/dist/{src/services → services}/audit/backing-detector.js +0 -0
  667. /package/dist/{src/services → services}/audit/classifier.d.ts +0 -0
  668. /package/dist/{src/services → services}/audit/classifier.js +0 -0
  669. /package/dist/{src/services → services}/audit/decision-writer.d.ts +0 -0
  670. /package/dist/{src/services → services}/audit/decision-writer.js +0 -0
  671. /package/dist/{src/services → services}/audit/enforcers/active-skill-resolver.d.ts +0 -0
  672. /package/dist/{src/services → services}/audit/enforcers/active-skill-resolver.js +0 -0
  673. /package/dist/{src/services → services}/audit/enforcers/code-ban.d.ts +0 -0
  674. /package/dist/{src/services → services}/audit/enforcers/code-ban.js +0 -0
  675. /package/dist/{src/services → services}/audit/enforcers/design-draft-confirm.d.ts +0 -0
  676. /package/dist/{src/services → services}/audit/enforcers/design-draft-confirm.js +0 -0
  677. /package/dist/{src/services → services}/audit/enforcers/lint-audit-regression.d.ts +0 -0
  678. /package/dist/{src/services → services}/audit/enforcers/lint-audit-regression.js +0 -0
  679. /package/dist/{src/services → services}/audit/enforcers/lint-catalog-governance.d.ts +0 -0
  680. /package/dist/{src/services → services}/audit/enforcers/lint-catalog-governance.js +0 -0
  681. /package/dist/{src/services → services}/audit/enforcers/lint-cli-back.d.ts +0 -0
  682. /package/dist/{src/services → services}/audit/enforcers/lint-cli-back.js +0 -0
  683. /package/dist/{src/services → services}/audit/enforcers/lint-output-style.d.ts +0 -0
  684. /package/dist/{src/services → services}/audit/enforcers/lint-output-style.js +0 -0
  685. /package/dist/{src/services → services}/audit/enforcers/lint-reference-integrity.d.ts +0 -0
  686. /package/dist/{src/services → services}/audit/enforcers/lint-reference-integrity.js +0 -0
  687. /package/dist/{src/services → services}/audit/enforcers/lint-reference-shape.d.ts +0 -0
  688. /package/dist/{src/services → services}/audit/enforcers/lint-reference-shape.js +0 -0
  689. /package/dist/{src/services → services}/audit/enforcers/lint-style.d.ts +0 -0
  690. /package/dist/{src/services → services}/audit/enforcers/lint-style.js +0 -0
  691. /package/dist/{src/services → services}/audit/enforcers/lint-workflow-shape.d.ts +0 -0
  692. /package/dist/{src/services → services}/audit/enforcers/lint-workflow-shape.js +0 -0
  693. /package/dist/{src/services → services}/audit/enforcers/login-gate.d.ts +0 -0
  694. /package/dist/{src/services → services}/audit/enforcers/login-gate.js +0 -0
  695. /package/dist/{src/services → services}/audit/enforcers/mock-placement.d.ts +0 -0
  696. /package/dist/{src/services → services}/audit/enforcers/mock-placement.js +0 -0
  697. /package/dist/{src/services → services}/audit/enforcers/no-root-pollution.d.ts +0 -0
  698. /package/dist/{src/services → services}/audit/enforcers/no-root-pollution.js +0 -0
  699. /package/dist/{src/services → services}/audit/enforcers/pre-rd-scan.d.ts +0 -0
  700. /package/dist/{src/services → services}/audit/enforcers/pre-rd-scan.js +0 -0
  701. /package/dist/{src/services → services}/audit/enforcers/prototype-fidelity.d.ts +0 -0
  702. /package/dist/{src/services → services}/audit/enforcers/prototype-fidelity.js +0 -0
  703. /package/dist/{src/services → services}/audit/enforcers/resume-detection.d.ts +0 -0
  704. /package/dist/{src/services → services}/audit/enforcers/resume-detection.js +0 -0
  705. /package/dist/{src/services → services}/audit/enforcers/sub-agent-sid.d.ts +0 -0
  706. /package/dist/{src/services → services}/audit/enforcers/sub-agent-sid.js +0 -0
  707. /package/dist/{src/services → services}/audit/prose-ratio-calculator.d.ts +0 -0
  708. /package/dist/{src/services → services}/audit/prose-ratio-calculator.js +0 -0
  709. /package/dist/{src/services → services}/audit/red-line-catalog-p2-a.d.ts +0 -0
  710. /package/dist/{src/services → services}/audit/red-line-catalog-p2-a.js +0 -0
  711. /package/dist/{src/services → services}/audit/red-line-catalog-p2-b.d.ts +0 -0
  712. /package/dist/{src/services → services}/audit/red-line-catalog-p2-b.js +0 -0
  713. /package/dist/{src/services → services}/audit/red-line-catalog.d.ts +0 -0
  714. /package/dist/{src/services → services}/audit/red-line-catalog.js +0 -0
  715. /package/dist/{src/services → services}/audit/red-lines-service.d.ts +0 -0
  716. /package/dist/{src/services → services}/audit/red-lines-service.js +0 -0
  717. /package/dist/{src/services → services}/audit/scanners/openspec-scanner.d.ts +0 -0
  718. /package/dist/{src/services → services}/audit/scanners/openspec-scanner.js +0 -0
  719. /package/dist/{src/services → services}/audit/scanners/rules-tree-scanner.d.ts +0 -0
  720. /package/dist/{src/services → services}/audit/scanners/rules-tree-scanner.js +0 -0
  721. /package/dist/{src/services → services}/audit/scanners/skills-tree-scanner.d.ts +0 -0
  722. /package/dist/{src/services → services}/audit/scanners/skills-tree-scanner.js +0 -0
  723. /package/dist/{src/services → services}/audit/types.d.ts +0 -0
  724. /package/dist/{src/services → services}/audit/types.js +0 -0
  725. /package/dist/{src/services → services}/classify/classify-service.d.ts +0 -0
  726. /package/dist/{src/services → services}/classify/classify-service.js +0 -0
  727. /package/dist/{src/services → services}/classify/classify-types.d.ts +0 -0
  728. /package/dist/{src/services → services}/classify/classify-types.js +0 -0
  729. /package/dist/{src/services → services}/code/auto-compact-orchestrator.d.ts +0 -0
  730. /package/dist/{src/services → services}/code/batch-heartbeat-poller.d.ts +0 -0
  731. /package/dist/{src/services → services}/code/batch-heartbeat-poller.js +0 -0
  732. /package/dist/{src/services → services}/code/dag-orchestrator.d.ts +0 -0
  733. /package/dist/{src/services → services}/code/dag-orchestrator.js +0 -0
  734. /package/dist/{src/services → services}/code/emit-handoff.d.ts +0 -0
  735. /package/dist/{src/services → services}/code/emit-handoff.js +0 -0
  736. /package/dist/{src/services → services}/code/job-shape-decision.d.ts +0 -0
  737. /package/dist/{src/services → services}/code/job-shape-decision.js +0 -0
  738. /package/dist/{src/services → services}/code/mode-gate.d.ts +0 -0
  739. /package/dist/{src/services → services}/code/mode-gate.js +0 -0
  740. /package/dist/{src/services → services}/code/post-compact-detector.d.ts +0 -0
  741. /package/dist/{src/services → services}/code/post-compact-detector.js +0 -0
  742. /package/dist/{src/services → services}/code/status-line-renderer.d.ts +0 -0
  743. /package/dist/{src/services → services}/code/status-line-renderer.js +0 -0
  744. /package/dist/{src/services → services}/code/step-08-gate.d.ts +0 -0
  745. /package/dist/{src/services → services}/code/step-08-gate.js +0 -0
  746. /package/dist/{src/services → services}/code/user-touchpoint-classifier.d.ts +0 -0
  747. /package/dist/{src/services → services}/code/user-touchpoint-classifier.js +0 -0
  748. /package/dist/{src/services → services}/code-review/ecc-bridge.d.ts +0 -0
  749. /package/dist/{src/services → services}/code-review/ecc-bridge.js +0 -0
  750. /package/dist/{src/services → services}/codegraph/codegraph-process-runner.d.ts +0 -0
  751. /package/dist/{src/services → services}/codegraph/codegraph-process-runner.js +0 -0
  752. /package/dist/{src/services → services}/codegraph/codegraph-service.d.ts +0 -0
  753. /package/dist/{src/services → services}/codegraph/codegraph-service.js +0 -0
  754. /package/dist/{src/services → services}/compact/decision-tables.d.ts +0 -0
  755. /package/dist/{src/services → services}/compact/decision-tables.js +0 -0
  756. /package/dist/{src/services → services}/compact/request-transition-hook.d.ts +0 -0
  757. /package/dist/{src/services → services}/compact/request-transition-hook.js +0 -0
  758. /package/dist/{src/services → services}/compact/suggest-service.d.ts +0 -0
  759. /package/dist/{src/services → services}/compact/suggest-service.js +0 -0
  760. /package/dist/{src/services → services}/complexity/complexity-estimator.d.ts +0 -0
  761. /package/dist/{src/services → services}/complexity/complexity-estimator.js +0 -0
  762. /package/dist/{src/services → services}/config/config-migration.d.ts +0 -0
  763. /package/dist/{src/services → services}/config/config-migration.js +0 -0
  764. /package/dist/{src/services → services}/config/config-restore.d.ts +0 -0
  765. /package/dist/{src/services → services}/config/config-restore.js +0 -0
  766. /package/dist/{src/services → services}/config/config-rollback.d.ts +0 -0
  767. /package/dist/{src/services → services}/config/config-rollback.js +0 -0
  768. /package/dist/{src/services → services}/config/config-safety.d.ts +0 -0
  769. /package/dist/{src/services → services}/config/config-safety.js +0 -0
  770. /package/dist/{src/services → services}/config/proxy-service.d.ts +0 -0
  771. /package/dist/{src/services → services}/config/proxy-service.js +0 -0
  772. /package/dist/{src/services → services}/config/sidecar-store.d.ts +0 -0
  773. /package/dist/{src/services → services}/config/sidecar-store.js +0 -0
  774. /package/dist/{src/services → services}/config/workspace-state-service.d.ts +0 -0
  775. /package/dist/{src/services → services}/config/workspace-state-service.js +0 -0
  776. /package/dist/{src/services → services}/context/artifact-meta.d.ts +0 -0
  777. /package/dist/{src/services → services}/context/artifact-meta.js +0 -0
  778. /package/dist/{src/services → services}/context/auto-compact-dispatcher.d.ts +0 -0
  779. /package/dist/{src/services → services}/context/auto-compact-dispatcher.js +0 -0
  780. /package/dist/{src/services → services}/context/auto-compact-reader.d.ts +0 -0
  781. /package/dist/{src/services → services}/context/auto-compact-reader.js +0 -0
  782. /package/dist/{src/services → services}/context/auto-compact-types.d.ts +0 -0
  783. /package/dist/{src/services → services}/context/auto-compact-types.js +0 -0
  784. /package/dist/{src/services → services}/context/collector.d.ts +0 -0
  785. /package/dist/{src/services → services}/context/collector.js +0 -0
  786. /package/dist/{src/services → services}/context/context-builder.d.ts +0 -0
  787. /package/dist/{src/services → services}/context/context-builder.js +0 -0
  788. /package/dist/{src/services → services}/context/context-guard.d.ts +0 -0
  789. /package/dist/{src/services → services}/context/context-guard.js +0 -0
  790. /package/dist/{src/services → services}/context/context-schema.js +0 -0
  791. /package/dist/{src/services → services}/context/doc-retriever.d.ts +0 -0
  792. /package/dist/{src/services → services}/context/doc-retriever.js +0 -0
  793. /package/dist/{src/services → services}/context/headroom-client.d.ts +0 -0
  794. /package/dist/{src/services → services}/context/headroom-client.js +0 -0
  795. /package/dist/{src/services → services}/context/headroom-fetcher.d.ts +0 -0
  796. /package/dist/{src/services → services}/context/headroom-fetcher.js +0 -0
  797. /package/dist/{src/services → services}/context/headroom-prefs.d.ts +0 -0
  798. /package/dist/{src/services → services}/context/headroom-prefs.js +0 -0
  799. /package/dist/{src/services → services}/context/index.d.ts +0 -0
  800. /package/dist/{src/services → services}/context/index.js +0 -0
  801. /package/dist/{src/services → services}/context/main-session-monitor.d.ts +0 -0
  802. /package/dist/{src/services → services}/context/main-session-monitor.js +0 -0
  803. /package/dist/{src/services → services}/context/renderer.d.ts +0 -0
  804. /package/dist/{src/services → services}/context/renderer.js +0 -0
  805. /package/dist/{src/services → services}/context/threshold.d.ts +0 -0
  806. /package/dist/{src/services → services}/context/threshold.js +0 -0
  807. /package/dist/{src/services → services}/context/tokenizer.d.ts +0 -0
  808. /package/dist/{src/services → services}/context/tokenizer.js +0 -0
  809. /package/dist/{src/services → services}/context/types.d.ts +0 -0
  810. /package/dist/{src/services → services}/context/types.js +0 -0
  811. /package/dist/{src/services → services}/dashboard/project-dashboard-service.d.ts +0 -0
  812. /package/dist/{src/services → services}/dispatch/batch-counter.d.ts +0 -0
  813. /package/dist/{src/services → services}/dispatch/contract-store.d.ts +0 -0
  814. /package/dist/{src/services → services}/dispatch/contract-store.js +0 -0
  815. /package/dist/{src/services → services}/dispatch/dispatch-record-writer.d.ts +0 -0
  816. /package/dist/{src/services → services}/dispatch/heartbeat-truncator.d.ts +0 -0
  817. /package/dist/{src/services → services}/dispatch/heartbeat-truncator.js +0 -0
  818. /package/dist/{src/services → services}/dispatch/leak-detector.d.ts +0 -0
  819. /package/dist/{src/services → services}/dispatch/leak-detector.js +0 -0
  820. /package/dist/{src/services → services}/dispatch/slice-dag.d.ts +0 -0
  821. /package/dist/{src/services → services}/dispatch/slice-dag.js +0 -0
  822. /package/dist/{src/services → services}/dispatch/sub-agent-dispatcher.d.ts +0 -0
  823. /package/dist/{src/services → services}/dispatch/sub-agent-dispatcher.js +0 -0
  824. /package/dist/{src/services → services}/dispatch/test-tool-detection.d.ts +0 -0
  825. /package/dist/{src/services → services}/dispatch/test-tool-detection.js +0 -0
  826. /package/dist/{src/services → services}/doc/doc-generator.d.ts +0 -0
  827. /package/dist/{src/services → services}/doc/doc-generator.js +0 -0
  828. /package/dist/{src/services → services}/feedback/feedback-promotion-service.d.ts +0 -0
  829. /package/dist/{src/services → services}/feedback/feedback-promotion-service.js +0 -0
  830. /package/dist/{src/services → services}/fixture/fixture-capture-service.d.ts +0 -0
  831. /package/dist/{src/services → services}/fixture/fixture-capture-service.js +0 -0
  832. /package/dist/{src/services → services}/fixture/fixture-sanitize-service.d.ts +0 -0
  833. /package/dist/{src/services → services}/fixture/fixture-sanitize-service.js +0 -0
  834. /package/dist/{src/services → services}/fixture/index.d.ts +0 -0
  835. /package/dist/{src/services → services}/fixture/index.js +0 -0
  836. /package/dist/{src/services → services}/fork/fork-sync-state.d.ts +0 -0
  837. /package/dist/{src/services → services}/fork/fork-sync-state.js +0 -0
  838. /package/dist/{src/services → services}/fuzzy-matching/fuzzy-match-service.d.ts +0 -0
  839. /package/dist/{src/services → services}/fuzzy-matching/fuzzy-match-service.js +0 -0
  840. /package/dist/{src/services → services}/fuzzy-matching/fzf-pick-service.d.ts +0 -0
  841. /package/dist/{src/services → services}/fuzzy-matching/fzf-pick-service.js +0 -0
  842. /package/dist/{src/services → services}/fuzzy-matching/types.d.ts +0 -0
  843. /package/dist/{src/services → services}/fuzzy-matching/types.js +0 -0
  844. /package/dist/{src/services → services}/handoff/handoff-parser.d.ts +0 -0
  845. /package/dist/{src/services → services}/handoff/handoff-parser.js +0 -0
  846. /package/dist/{src/services → services}/handoff/handoff-types.d.ts +0 -0
  847. /package/dist/{src/services → services}/handoff/handoff-types.js +0 -0
  848. /package/dist/{src/services → services}/handoff/handoff-writer.d.ts +0 -0
  849. /package/dist/{src/services → services}/handoff/handoff-writer.js +0 -0
  850. /package/dist/{src/services → services}/hooks/auto-compact-hook-install.d.ts +0 -0
  851. /package/dist/{src/services → services}/hooks/auto-compact-hook-install.js +0 -0
  852. /package/dist/{src/services → services}/hooks/output.d.ts +0 -0
  853. /package/dist/{src/services → services}/hooks/output.js +0 -0
  854. /package/dist/{src/services → services}/hooks/presence-marker-detector.d.ts +0 -0
  855. /package/dist/{src/services → services}/hooks/presence-marker-detector.js +0 -0
  856. /package/dist/{src/services → services}/ide/adapters/claude-code-adapter.d.ts +0 -0
  857. /package/dist/{src/services → services}/ide/adapters/claude-code-adapter.js +0 -0
  858. /package/dist/{src/services → services}/ide/adapters/codex-adapter.d.ts +0 -0
  859. /package/dist/{src/services → services}/ide/adapters/codex-adapter.js +0 -0
  860. /package/dist/{src/services → services}/ide/adapters/cursor-adapter.d.ts +0 -0
  861. /package/dist/{src/services → services}/ide/adapters/cursor-adapter.js +0 -0
  862. /package/dist/{src/services → services}/ide/adapters/hermes-adapter.d.ts +0 -0
  863. /package/dist/{src/services → services}/ide/adapters/hermes-adapter.js +0 -0
  864. /package/dist/{src/services → services}/ide/adapters/openclaw-adapter.d.ts +0 -0
  865. /package/dist/{src/services → services}/ide/adapters/openclaw-adapter.js +0 -0
  866. /package/dist/{src/services → services}/ide/adapters/trae-adapter.d.ts +0 -0
  867. /package/dist/{src/services → services}/ide/adapters/trae-adapter.js +0 -0
  868. /package/dist/{src/services → services}/ide/hook-protocol.d.ts +0 -0
  869. /package/dist/{src/services → services}/ide/hook-protocol.js +0 -0
  870. /package/dist/{src/services → services}/ide/hook-translator.d.ts +0 -0
  871. /package/dist/{src/services → services}/ide/hook-translator.js +0 -0
  872. /package/dist/{src/services → services}/ide/ide-detector.d.ts +0 -0
  873. /package/dist/{src/services → services}/ide/ide-detector.js +0 -0
  874. /package/dist/{src/services → services}/ide/ide-registry.d.ts +0 -0
  875. /package/dist/{src/services → services}/ide/ide-types.js +0 -0
  876. /package/dist/{src/services → services}/ide/resource-profile.d.ts +0 -0
  877. /package/dist/{src/services → services}/ide/resource-profile.js +0 -0
  878. /package/dist/{src/services → services}/ide/shared/atomic-json.d.ts +0 -0
  879. /package/dist/{src/services → services}/ide/shared/atomic-json.js +0 -0
  880. /package/dist/{src/services → services}/ide/shared/safe-path.d.ts +0 -0
  881. /package/dist/{src/services → services}/ide/shared/safe-path.js +0 -0
  882. /package/dist/{src/services → services}/impact/impact-scan-service.d.ts +0 -0
  883. /package/dist/{src/services → services}/impact/impact-scan-service.js +0 -0
  884. /package/dist/{src/services → services}/job/job-event-emitter.d.ts +0 -0
  885. /package/dist/{src/services → services}/job/job-event-emitter.js +0 -0
  886. /package/dist/{src/services → services}/job/job-orchestrator.d.ts +0 -0
  887. /package/dist/{src/services → services}/job/job-orchestrator.js +0 -0
  888. /package/dist/{src/services → services}/job/job-progress-store.js +0 -0
  889. /package/dist/{src/services → services}/job/job-rotation.d.ts +0 -0
  890. /package/dist/{src/services → services}/job/job-rotation.js +0 -0
  891. /package/dist/{src/services → services}/job/job-state-store.d.ts +0 -0
  892. /package/dist/{src/services → services}/job/job-state-store.js +0 -0
  893. /package/dist/{src/services → services}/job/job-types.js +0 -0
  894. /package/dist/{src/services → services}/job/subagent-job-wrapper.d.ts +0 -0
  895. /package/dist/{src/services → services}/job/subagent-job-wrapper.js +0 -0
  896. /package/dist/{src/services → services}/legacy/legacy-detector.d.ts +0 -0
  897. /package/dist/{src/services → services}/legacy/legacy-detector.js +0 -0
  898. /package/dist/{src/services → services}/log/log-commands-service.d.ts +0 -0
  899. /package/dist/{src/services → services}/log/log-commands-service.js +0 -0
  900. /package/dist/{src/services → services}/log/logger.d.ts +0 -0
  901. /package/dist/{src/services → services}/log/logger.js +0 -0
  902. /package/dist/{src/services → services}/log/redact.d.ts +0 -0
  903. /package/dist/{src/services → services}/log/redact.js +0 -0
  904. /package/dist/{src/services → services}/loop/evaluator-dispatcher.d.ts +0 -0
  905. /package/dist/{src/services → services}/loop/evaluator-dispatcher.js +0 -0
  906. /package/dist/{src/services → services}/loop/monotonic-guard.d.ts +0 -0
  907. /package/dist/{src/services → services}/loop/monotonic-guard.js +0 -0
  908. /package/dist/{src/services → services}/loop/monotonic-runner.d.ts +0 -0
  909. /package/dist/{src/services → services}/loop/monotonic-runner.js +0 -0
  910. /package/dist/{src/services → services}/loop/run-driver.d.ts +0 -0
  911. /package/dist/{src/services → services}/loop/run-driver.js +0 -0
  912. /package/dist/{src/services → services}/loop/spec-service.d.ts +0 -0
  913. /package/dist/{src/services → services}/loop/spec-service.js +0 -0
  914. /package/dist/{src/services → services}/memory/llm-reranker.d.ts +0 -0
  915. /package/dist/{src/services → services}/memory/llm-reranker.js +0 -0
  916. /package/dist/{src/services → services}/memory/memory-search-service.d.ts +0 -0
  917. /package/dist/{src/services → services}/memory/memory-search-service.js +0 -0
  918. /package/dist/{src/services → services}/memory/project-memory-service.d.ts +0 -0
  919. /package/dist/{src/services → services}/memory/project-memory-service.js +0 -0
  920. /package/dist/{src/services → services}/migrate-skill-name/migrate.d.ts +0 -0
  921. /package/dist/{src/services → services}/migrate-skill-name/migrate.js +0 -0
  922. /package/dist/{src/services → services}/migrate-skill-name/schema.js +0 -0
  923. /package/dist/{src/services → services}/migration/v2-10-to-v2-11-service.d.ts +0 -0
  924. /package/dist/{src/services → services}/migration/v2-10-to-v2-11-service.js +0 -0
  925. /package/dist/{src/services → services}/migration/v2-10-to-v2-11-types.d.ts +0 -0
  926. /package/dist/{src/services → services}/migration/v2-10-to-v2-11-types.js +0 -0
  927. /package/dist/{src/services → services}/mode/bypass-tracker.d.ts +0 -0
  928. /package/dist/{src/services → services}/mode/bypass-tracker.js +0 -0
  929. /package/dist/{src/services → services}/mode/mode-enforcement.d.ts +0 -0
  930. /package/dist/{src/services → services}/mode/mode-enforcement.js +0 -0
  931. /package/dist/{src/services → services}/observability/aggregation.d.ts +0 -0
  932. /package/dist/{src/services → services}/observability/aggregation.js +0 -0
  933. /package/dist/{src/services → services}/observability/jsonl-store.d.ts +0 -0
  934. /package/dist/{src/services → services}/observability/jsonl-store.js +0 -0
  935. /package/dist/{src/services → services}/observability/observability-service.d.ts +0 -0
  936. /package/dist/{src/services → services}/observability/observability-service.js +0 -0
  937. /package/dist/{src/services → services}/observability/report-formatter.d.ts +0 -0
  938. /package/dist/{src/services → services}/observability/report-formatter.js +0 -0
  939. /package/dist/{src/services → services}/openspec/openspec-archive-service.d.ts +0 -0
  940. /package/dist/{src/services → services}/openspec/openspec-bridge-service.d.ts +0 -0
  941. /package/dist/{src/services → services}/openspec/openspec-init-service.d.ts +0 -0
  942. /package/dist/{src/services → services}/openspec/openspec-propose-from-doctor-service.d.ts +0 -0
  943. /package/dist/{src/services → services}/openspec/openspec-render-service.d.ts +0 -0
  944. /package/dist/{src/services → services}/openspec/openspec-scan-service.d.ts +0 -0
  945. /package/dist/{src/services → services}/openspec/openspec-types.d.ts +0 -0
  946. /package/dist/{src/services → services}/openspec/openspec-types.js +0 -0
  947. /package/dist/{src/services → services}/openspec/openspec-validate-service.d.ts +0 -0
  948. /package/dist/{src/services → services}/perf/perf-baseline-service.d.ts +0 -0
  949. /package/dist/{src/services → services}/perf/perf-baseline-service.js +0 -0
  950. /package/dist/{src/services/recommendations/recommendation-types.js → services/polyrepo/polyrepo-types.js} +0 -0
  951. /package/dist/{src/services → services}/prd/handoff-auto-regen.d.ts +0 -0
  952. /package/dist/{src/services → services}/prd/handoff-auto-regen.js +0 -0
  953. /package/dist/{src/services → services}/prd/handoff-service.d.ts +0 -0
  954. /package/dist/{src/services → services}/prd/handoff-service.js +0 -0
  955. /package/dist/{src/services → services}/prd/handoff-types.d.ts +0 -0
  956. /package/dist/{src/services → services}/prd/handoff-types.js +0 -0
  957. /package/dist/{src/services → services}/prd/prd-blocks-checker.d.ts +0 -0
  958. /package/dist/{src/services → services}/prd/prd-blocks-checker.js +0 -0
  959. /package/dist/{src/services → services}/prd/project-scan-reader.d.ts +0 -0
  960. /package/dist/{src/services → services}/prd/project-scan-reader.js +0 -0
  961. /package/dist/{src/services → services}/prd/project-scan-sediment.d.ts +0 -0
  962. /package/dist/{src/services → services}/prd/project-scan-sediment.js +0 -0
  963. /package/dist/{src/services → services}/prd/project-scan-types.d.ts +0 -0
  964. /package/dist/{src/services → services}/prd/project-scan-types.js +0 -0
  965. /package/dist/{src/services → services}/preferences/preferences-service.d.ts +0 -0
  966. /package/dist/{src/services → services}/preferences/preferences-service.js +0 -0
  967. /package/dist/{src/services → services}/preferences/preferences-types.js +0 -0
  968. /package/dist/{src/services → services}/profiles/profile-service.d.ts +0 -0
  969. /package/dist/{src/services → services}/profiles/profile-service.js +0 -0
  970. /package/dist/{src/services → services}/progress/progress-service.d.ts +0 -0
  971. /package/dist/{src/services → services}/progress/progress-service.js +0 -0
  972. /package/dist/{src/services → services}/proxy/proxy-service.d.ts +0 -0
  973. /package/dist/{src/services → services}/proxy/proxy-service.js +0 -0
  974. /package/dist/{src/services → services}/qa/browser-event-logger.d.ts +0 -0
  975. /package/dist/{src/services → services}/qa/browser-event-logger.js +0 -0
  976. /package/dist/{src/services → services}/qa/browser-restart-detector.d.ts +0 -0
  977. /package/dist/{src/services → services}/qa/browser-restart-detector.js +0 -0
  978. /package/dist/{src/services → services}/qa/browser-reuse-hint.d.ts +0 -0
  979. /package/dist/{src/services → services}/qa/browser-reuse-hint.js +0 -0
  980. /package/dist/{src/services → services}/qa/browser-wrapper-service.d.ts +0 -0
  981. /package/dist/{src/services → services}/qa/browser-wrapper-service.js +0 -0
  982. /package/dist/{src/services → services}/qa/qa-business-review-state.d.ts +0 -0
  983. /package/dist/{src/services → services}/qa/qa-business-review-state.js +0 -0
  984. /package/dist/{src/services → services}/rd/ast-gate.d.ts +0 -0
  985. /package/dist/{src/services → services}/rd/ast-gate.js +0 -0
  986. /package/dist/{src/services → services}/rd/impl.d.ts +0 -0
  987. /package/dist/{src/services → services}/rd/impl.js +0 -0
  988. /package/dist/{src/services → services}/rd/rd-service.d.ts +0 -0
  989. /package/dist/{src/services → services}/rd/reviewer-dispatch-policy.d.ts +0 -0
  990. /package/dist/{src/services → services}/rd/reviewer-dispatch-policy.js +0 -0
  991. /package/dist/{src/services → services}/rd/standards-diagnostic.d.ts +0 -0
  992. /package/dist/{src/services → services}/rd/standards-diagnostic.js +0 -0
  993. /package/dist/{src/services → services}/rd/strategic-stage.d.ts +0 -0
  994. /package/dist/{src/services → services}/rd/strategic-stage.js +0 -0
  995. /package/dist/{src/services → services}/rd/strategy.d.ts +0 -0
  996. /package/dist/{src/services → services}/rd/strategy.js +0 -0
  997. /package/dist/{src/services → services}/rd/tactical-stage.d.ts +0 -0
  998. /package/dist/{src/services → services}/rd/tactical-stage.js +0 -0
  999. /package/dist/{src/services → services}/rd/types.js +0 -0
  1000. /package/dist/{src/services → services}/recommendations/capability-availability.d.ts +0 -0
  1001. /package/dist/{src/services → services}/recommendations/capability-availability.js +0 -0
  1002. /package/dist/{src/services → services}/recommendations/capability-map-service.d.ts +0 -0
  1003. /package/dist/{src/services → services}/recommendations/capability-map-service.js +0 -0
  1004. /package/dist/{src/services → services}/recommendations/capability-seed-items.d.ts +0 -0
  1005. /package/dist/{src/services → services}/recommendations/capability-seed-mappings.d.ts +0 -0
  1006. /package/dist/{src/services → services}/recommendations/capability-seed-sources.d.ts +0 -0
  1007. /package/dist/{src/services → services}/recommendations/recommendation-service.d.ts +0 -0
  1008. /package/dist/{src/services → services}/recommendations/recommendation-service.js +0 -0
  1009. /package/dist/{src/services → services}/recommendations/recommendation-types.d.ts +0 -0
  1010. /package/dist/{src/services/scan/scan-types.js → services/recommendations/recommendation-types.js} +0 -0
  1011. /package/dist/{src/services → services}/recommendations/seed-capability-catalog.d.ts +0 -0
  1012. /package/dist/{src/services → services}/recommendations/seed-capability-catalog.js +0 -0
  1013. /package/dist/{src/services → services}/refactor/refactor-service.d.ts +0 -0
  1014. /package/dist/{src/services → services}/refactor/refactor-service.js +0 -0
  1015. /package/dist/{src/services → services}/release/release-state.d.ts +0 -0
  1016. /package/dist/{src/services → services}/release/release-state.js +0 -0
  1017. /package/dist/{src/services → services}/retrospective/retrospective-index.d.ts +0 -0
  1018. /package/dist/{src/services → services}/retrospective/retrospective-index.js +0 -0
  1019. /package/dist/{src/services → services}/retrospective/retrospective-search-service.d.ts +0 -0
  1020. /package/dist/{src/services → services}/retrospective/retrospective-search-service.js +0 -0
  1021. /package/dist/{src/services → services}/retrospective/retrospective-show.d.ts +0 -0
  1022. /package/dist/{src/services → services}/retrospective/retrospective-show.js +0 -0
  1023. /package/dist/{src/services → services}/reviewer/model-family.d.ts +0 -0
  1024. /package/dist/{src/services → services}/reviewer/model-family.js +0 -0
  1025. /package/dist/{src/services → services}/reviewer/providers/anthropic.d.ts +0 -0
  1026. /package/dist/{src/services → services}/reviewer/providers/anthropic.js +0 -0
  1027. /package/dist/{src/services → services}/reviewer/providers/ollama.d.ts +0 -0
  1028. /package/dist/{src/services → services}/reviewer/providers/ollama.js +0 -0
  1029. /package/dist/{src/services → services}/reviewer/providers/openai.d.ts +0 -0
  1030. /package/dist/{src/services → services}/reviewer/providers/openai.js +0 -0
  1031. /package/dist/{src/services → services}/reviewer/reviewer-config.d.ts +0 -0
  1032. /package/dist/{src/services → services}/reviewer/reviewer-config.js +0 -0
  1033. /package/dist/{src/services → services}/reviewer/reviewer-service.d.ts +0 -0
  1034. /package/dist/{src/services → services}/reviewer/reviewer-service.js +0 -0
  1035. /package/dist/{src/services → services}/reviewer/selection-strategies.d.ts +0 -0
  1036. /package/dist/{src/services → services}/reviewer/selection-strategies.js +0 -0
  1037. /package/dist/{src/services → services}/role/role-registry.d.ts +0 -0
  1038. /package/dist/{src/services → services}/role/role-registry.js +0 -0
  1039. /package/dist/{src/services/sediment/types.js → services/runtime/vendor-adapter.js} +0 -0
  1040. /package/dist/{src/services → services}/sc/index.d.ts +0 -0
  1041. /package/dist/{src/services → services}/sc/index.js +0 -0
  1042. /package/dist/{src/services → services}/sc/sc-service.d.ts +0 -0
  1043. /package/dist/{src/services → services}/sc/sc-service.js +0 -0
  1044. /package/dist/{src/services → services}/scan/acceptance-coverage-service.d.ts +0 -0
  1045. /package/dist/{src/services → services}/scan/api-surface-service.d.ts +0 -0
  1046. /package/dist/{src/services → services}/scan/api-surface-service.js +0 -0
  1047. /package/dist/{src/services → services}/scan/archetype-service.d.ts +0 -0
  1048. /package/dist/{src/services → services}/scan/diff-scope-service.d.ts +0 -0
  1049. /package/dist/{src/services → services}/scan/diff-scope-service.js +0 -0
  1050. /package/dist/{src/services → services}/scan/existing-system-service.d.ts +0 -0
  1051. /package/dist/{src/services → services}/scan/file-size-scan.d.ts +0 -0
  1052. /package/dist/{src/services → services}/scan/file-size-scan.js +0 -0
  1053. /package/dist/{src/services → services}/scan/karpathy-service.d.ts +0 -0
  1054. /package/dist/{src/services → services}/scan/karpathy-service.js +0 -0
  1055. /package/dist/{src/services → services}/scan/libraries-service.d.ts +0 -0
  1056. /package/dist/{src/services → services}/scan/libraries-types.d.ts +0 -0
  1057. /package/dist/{src/services → services}/scan/libraries-types.js +0 -0
  1058. /package/dist/{src/services → services}/scan/orphan-service.d.ts +0 -0
  1059. /package/dist/{src/services → services}/scan/orphan-service.js +0 -0
  1060. /package/dist/{src/services/skillhub/types.js → services/scan/scan-types.js} +0 -0
  1061. /package/dist/{src/services → services}/scan/type-sanity-service.d.ts +0 -0
  1062. /package/dist/{src/services → services}/scan/type-sanity-service.js +0 -0
  1063. /package/dist/{src/services → services}/security/safe-settings-path.d.ts +0 -0
  1064. /package/dist/{src/services → services}/security/safe-settings-path.js +0 -0
  1065. /package/dist/{src/services → services}/sediment/dispose-confirm.d.ts +0 -0
  1066. /package/dist/{src/services → services}/sediment/dispose-confirm.js +0 -0
  1067. /package/dist/{src/services → services}/sediment/json-schema.d.ts +0 -0
  1068. /package/dist/{src/services → services}/sediment/json-schema.js +0 -0
  1069. /package/dist/{src/services → services}/sediment/manifest-lint.d.ts +0 -0
  1070. /package/dist/{src/services → services}/sediment/manifest-lint.js +0 -0
  1071. /package/dist/{src/services → services}/sediment/pool-paths.d.ts +0 -0
  1072. /package/dist/{src/services → services}/sediment/pool-paths.js +0 -0
  1073. /package/dist/{src/services → services}/sediment/pool-read.d.ts +0 -0
  1074. /package/dist/{src/services → services}/sediment/pool-read.js +0 -0
  1075. /package/dist/{src/services → services}/sediment/pool-rebuild-index.d.ts +0 -0
  1076. /package/dist/{src/services → services}/sediment/pool-rebuild-index.js +0 -0
  1077. /package/dist/{src/services → services}/sediment/pool-write.d.ts +0 -0
  1078. /package/dist/{src/services → services}/sediment/pool-write.js +0 -0
  1079. /package/dist/{src/services → services}/sediment/promotion-gate.d.ts +0 -0
  1080. /package/dist/{src/services → services}/sediment/promotion-gate.js +0 -0
  1081. /package/dist/{src/services → services}/sediment/types.d.ts +0 -0
  1082. /package/dist/{src/services/understand/hybrid-types.js → services/sediment/types.js} +0 -0
  1083. /package/dist/{src/services → services}/session/binding-status-service.d.ts +0 -0
  1084. /package/dist/{src/services → services}/session/binding-status-service.js +0 -0
  1085. /package/dist/{src/services → services}/session/binding-store.d.ts +0 -0
  1086. /package/dist/{src/services → services}/session/binding-store.js +0 -0
  1087. /package/dist/{src/services → services}/session/caller-binding-service.d.ts +0 -0
  1088. /package/dist/{src/services → services}/session/caller-binding-service.js +0 -0
  1089. /package/dist/{src/services → services}/session/caller-id-types.d.ts +0 -0
  1090. /package/dist/{src/services → services}/session/caller-id-types.js +0 -0
  1091. /package/dist/{src/services → services}/session/getSessionDir.d.ts +0 -0
  1092. /package/dist/{src/services → services}/session/getSessionDir.js +0 -0
  1093. /package/dist/{src/services → services}/session/index.d.ts +0 -0
  1094. /package/dist/{src/services → services}/session/index.js +0 -0
  1095. /package/dist/{src/services → services}/session/platform-fallbacks.d.ts +0 -0
  1096. /package/dist/{src/services → services}/session/platform-fallbacks.js +0 -0
  1097. /package/dist/{src/services → services}/session/resolve-caller-id.d.ts +0 -0
  1098. /package/dist/{src/services → services}/session/resolve-caller-id.js +0 -0
  1099. /package/dist/{src/services → services}/session/session-binding-bridge.d.ts +0 -0
  1100. /package/dist/{src/services → services}/session/session-binding-bridge.js +0 -0
  1101. /package/dist/{src/services → services}/session/session-checkpoint-service.d.ts +0 -0
  1102. /package/dist/{src/services → services}/session/session-checkpoint-service.js +0 -0
  1103. /package/dist/{src/services → services}/session/session-manager.d.ts +0 -0
  1104. /package/dist/{src/services → services}/session/session-manager.js +0 -0
  1105. /package/dist/{src/services → services}/session/session-resume-service.d.ts +0 -0
  1106. /package/dist/{src/services → services}/session/session-resume-service.js +0 -0
  1107. /package/dist/{src/services → services}/signal/cancel-handler.d.ts +0 -0
  1108. /package/dist/{src/services → services}/signal/cancel-handler.js +0 -0
  1109. /package/dist/{src/services → services}/skill/resume-detector.d.ts +0 -0
  1110. /package/dist/{src/services → services}/skill/resume-detector.js +0 -0
  1111. /package/dist/{src/services → services}/skill/skill-scheduler.d.ts +0 -0
  1112. /package/dist/{src/services → services}/skill/skill-scheduler.js +0 -0
  1113. /package/dist/{src/services → services}/skillhub/release-diff.d.ts +0 -0
  1114. /package/dist/{src/services → services}/skillhub/release-diff.js +0 -0
  1115. /package/dist/{src/services → services}/skillhub/release-export.d.ts +0 -0
  1116. /package/dist/{src/services → services}/skillhub/release-export.js +0 -0
  1117. /package/dist/{src/services → services}/skillhub/release-gc-blobs.d.ts +0 -0
  1118. /package/dist/{src/services → services}/skillhub/release-gc-blobs.js +0 -0
  1119. /package/dist/{src/services → services}/skillhub/release-import.d.ts +0 -0
  1120. /package/dist/{src/services → services}/skillhub/release-retain.d.ts +0 -0
  1121. /package/dist/{src/services → services}/skillhub/sqlite-store.d.ts +0 -0
  1122. /package/dist/{src/services → services}/skillhub/tar-runtime.d.ts +0 -0
  1123. /package/dist/{src/services → services}/skillhub/tar-runtime.js +0 -0
  1124. /package/dist/{src/services/understand/understand-types.js → services/skillhub/types.js} +0 -0
  1125. /package/dist/{src/services → services}/skills/hooks-settings-service.d.ts +0 -0
  1126. /package/dist/{src/services → services}/skills/hooks-settings-service.js +0 -0
  1127. /package/dist/{src/services → services}/skills/skill-conformance-service.d.ts +0 -0
  1128. /package/dist/{src/services → services}/skills/skill-conformance-service.js +0 -0
  1129. /package/dist/{src/services → services}/skills/skill-presence-service.d.ts +0 -0
  1130. /package/dist/{src/services → services}/skills/skill-presence-service.js +0 -0
  1131. /package/dist/{src/services → services}/skills/skill-runbook-service.d.ts +0 -0
  1132. /package/dist/{src/services → services}/skills/skill-statusline-renderer.d.ts +0 -0
  1133. /package/dist/{src/services → services}/skills/skill-statusline-renderer.js +0 -0
  1134. /package/dist/{src/services → services}/skills/skill-statusline-service.d.ts +0 -0
  1135. /package/dist/{src/services → services}/skills/skill-statusline-service.js +0 -0
  1136. /package/dist/{src/services → services}/skills/statusline-settings-service.d.ts +0 -0
  1137. /package/dist/{src/services → services}/skills/statusline-settings-service.js +0 -0
  1138. /package/dist/{src/services → services}/skills/sync-service.d.ts +0 -0
  1139. /package/dist/{src/services → services}/skills/sync-service.js +0 -0
  1140. /package/dist/{src/services → services}/slice/calibration-store.d.ts +0 -0
  1141. /package/dist/{src/services → services}/slice/calibration-store.js +0 -0
  1142. /package/dist/{src/services → services}/slice/cross-pass-edge-merger.d.ts +0 -0
  1143. /package/dist/{src/services → services}/slice/cross-pass-edge-merger.js +0 -0
  1144. /package/dist/{src/services → services}/slice/granularity-decider.d.ts +0 -0
  1145. /package/dist/{src/services → services}/slice/granularity-decider.js +0 -0
  1146. /package/dist/{src/services → services}/slice/llm-arbitrator.d.ts +0 -0
  1147. /package/dist/{src/services → services}/slice/llm-arbitrator.js +0 -0
  1148. /package/dist/{src/services → services}/slice/multi-pass-orchestrator.d.ts +0 -0
  1149. /package/dist/{src/services → services}/slice/multi-pass-orchestrator.js +0 -0
  1150. /package/dist/{src/services → services}/slice/schema-router.d.ts +0 -0
  1151. /package/dist/{src/services → services}/slice/schema-router.js +0 -0
  1152. /package/dist/{src/services → services}/slice/slice-archive-service.d.ts +0 -0
  1153. /package/dist/{src/services → services}/slice/slice-archive-service.js +0 -0
  1154. /package/dist/{src/services → services}/slice/slice-benchmark-service.d.ts +0 -0
  1155. /package/dist/{src/services → services}/slice/slice-benchmark-service.js +0 -0
  1156. /package/dist/{src/services → services}/slice/slice-check-service.d.ts +0 -0
  1157. /package/dist/{src/services → services}/slice/slice-check-types.d.ts +0 -0
  1158. /package/dist/{src/services → services}/slice/slice-check-types.js +0 -0
  1159. /package/dist/{src/services → services}/slice/slice-decompose-runners.d.ts +0 -0
  1160. /package/dist/{src/services → services}/slice/slice-decompose-runners.js +0 -0
  1161. /package/dist/{src/services → services}/slice/slice-decompose-service.d.ts +0 -0
  1162. /package/dist/{src/services → services}/slice/slice-decompose-service.js +0 -0
  1163. /package/dist/{src/services → services}/slice/slice-decompose-types.d.ts +0 -0
  1164. /package/dist/{src/services → services}/slice/slice-decompose-types.js +0 -0
  1165. /package/dist/{src/services → services}/slice/slice-integration.d.ts +0 -0
  1166. /package/dist/{src/services → services}/slice/slice-integration.js +0 -0
  1167. /package/dist/{src/services → services}/slice/slice-pick-service.d.ts +0 -0
  1168. /package/dist/{src/services → services}/slice/slice-pick-service.js +0 -0
  1169. /package/dist/{src/services → services}/slice/slice-review-state.d.ts +0 -0
  1170. /package/dist/{src/services → services}/slice/slice-review-state.js +0 -0
  1171. /package/dist/{src/services → services}/slice/slice-topology-types.d.ts +0 -0
  1172. /package/dist/{src/services → services}/slice/slice-topology-types.js +0 -0
  1173. /package/dist/{src/services → services}/smoke/smoke-paths-state.d.ts +0 -0
  1174. /package/dist/{src/services → services}/smoke/smoke-paths-state.js +0 -0
  1175. /package/dist/{src/services → services}/sop/gate-enforce-service.d.ts +0 -0
  1176. /package/dist/{src/services → services}/sop/gate-enforce-service.js +0 -0
  1177. /package/dist/{src/services → services}/sop/sop-advance-service.d.ts +0 -0
  1178. /package/dist/{src/services → services}/sop/sop-advance-service.js +0 -0
  1179. /package/dist/{src/services → services}/sop/sop-check-service.d.ts +0 -0
  1180. /package/dist/{src/services → services}/sop/sop-check-service.js +0 -0
  1181. /package/dist/{src/services → services}/sop/sop-paths.d.ts +0 -0
  1182. /package/dist/{src/services → services}/sop/sop-paths.js +0 -0
  1183. /package/dist/{src/services → services}/sop/sop-registry-service.d.ts +0 -0
  1184. /package/dist/{src/services → services}/sop/sop-registry-service.js +0 -0
  1185. /package/dist/{src/services → services}/sop/sop-service.d.ts +0 -0
  1186. /package/dist/{src/services → services}/sop/sop-service.js +0 -0
  1187. /package/dist/{src/services → services}/sop/sop-types.d.ts +0 -0
  1188. /package/dist/{src/services → services}/sop/sop-types.js +0 -0
  1189. /package/dist/{src/services → services}/standards/ide-aware-standards-service.d.ts +0 -0
  1190. /package/dist/{src/services → services}/standards/migrate-claude-rules-service.d.ts +0 -0
  1191. /package/dist/{src/services → services}/standards/migrate-service.d.ts +0 -0
  1192. /package/dist/{src/services → services}/standards/migrate-service.js +0 -0
  1193. /package/dist/{src/services → services}/standards/project-context.d.ts +0 -0
  1194. /package/dist/{src/services → services}/standards/project-context.js +0 -0
  1195. /package/dist/{src/services → services}/standards/project-standards-service.d.ts +0 -0
  1196. /package/dist/{src/services → services}/tech/tech-service.d.ts +0 -0
  1197. /package/dist/{src/services → services}/tech/tech-service.js +0 -0
  1198. /package/dist/{src/services → services}/test-cache/test-cache-service.d.ts +0 -0
  1199. /package/dist/{src/services → services}/test-cache/test-cache-service.js +0 -0
  1200. /package/dist/{src/services → services}/understand/hybrid-types.d.ts +0 -0
  1201. /package/dist/{src/services → services}/understand/understand-hybrid-service.d.ts +0 -0
  1202. /package/dist/{src/services → services}/understand/understand-scan-service.d.ts +0 -0
  1203. /package/dist/{src/services → services}/understand/understand-types.d.ts +0 -0
  1204. /package/dist/{src/services → services}/upgrade/1x-detector-service.d.ts +0 -0
  1205. /package/dist/{src/services → services}/upgrade/1x-detector-service.js +0 -0
  1206. /package/dist/{src/services → services}/upgrade/gitignore-migrate-service.d.ts +0 -0
  1207. /package/dist/{src/services → services}/upgrade/gitignore-migrate-service.js +0 -0
  1208. /package/dist/{src/services → services}/upgrade/upgrade-service.d.ts +0 -0
  1209. /package/dist/{src/services → services}/verdict/verdict-aggregator.js +0 -0
  1210. /package/dist/{src/services → services}/workflow/artifact-paths.d.ts +0 -0
  1211. /package/dist/{src/services → services}/workflow/artifact-paths.js +0 -0
  1212. /package/dist/{src/services → services}/workflow/autonomous-resume-writer.d.ts +0 -0
  1213. /package/dist/{src/services → services}/workflow/pipeline-verify-service.d.ts +0 -0
  1214. /package/dist/{src/services → services}/workflow/pipeline-verify-service.js +0 -0
  1215. /package/dist/{src/services → services}/workflow/workflow-autonomous-resume-helpers.d.ts +0 -0
  1216. /package/dist/{src/services → services}/workflow/workflow-autonomous-resume-helpers.js +0 -0
  1217. /package/dist/{src/services → services}/workflow/workflow-autonomous-service.d.ts +0 -0
  1218. /package/dist/{src/services → services}/workflow/workflow-autonomous-service.js +0 -0
  1219. /package/dist/{src/services → services}/workflow/workflow-loader.d.ts +0 -0
  1220. /package/dist/{src/services → services}/workflow/workflow-loader.js +0 -0
  1221. /package/dist/{src/services → services}/workflow/workflow-skip-service.d.ts +0 -0
  1222. /package/dist/{src/services → services}/workflow/workflow-skip-service.js +0 -0
  1223. /package/dist/{src/services → services}/workflow/workflow-spec.d.ts +0 -0
  1224. /package/dist/{src/services → services}/workflow/workflow-spec.js +0 -0
  1225. /package/dist/{src/services → services}/workflow/workflow-state-store.d.ts +0 -0
  1226. /package/dist/{src/services → services}/workflow/workflow-state-store.js +0 -0
  1227. /package/dist/{src/services → services}/workspace/claude-settings-template.d.ts +0 -0
  1228. /package/dist/{src/services → services}/workspace/claude-settings-template.js +0 -0
  1229. /package/dist/{src/services → services}/workspace/migrate-1-4-1-service.d.ts +0 -0
  1230. /package/dist/{src/services → services}/workspace/migrate-1-4-1-service.js +0 -0
  1231. /package/dist/{src/services → services}/workspace/migrate-service.d.ts +0 -0
  1232. /package/dist/{src/services → services}/workspace/migrate-types.d.ts +0 -0
  1233. /package/dist/{src/services → services}/workspace/migrate-types.js +0 -0
  1234. /package/dist/{src/services → services}/workspace/reconcile-service.d.ts +0 -0
  1235. /package/dist/{src/services → services}/workspace/reconcile-service.js +0 -0
  1236. /package/dist/{src/services → services}/workspace/reconcile-types.d.ts +0 -0
  1237. /package/dist/{src/services → services}/workspace/reconcile-types.js +0 -0
  1238. /package/dist/{src/services → services}/workspace/sid-naming-guard.d.ts +0 -0
  1239. /package/dist/{src/services → services}/workspace/sid-naming-guard.js +0 -0
  1240. /package/dist/{src/services → services}/workspace/workspace-claude-settings-materializer.d.ts +0 -0
  1241. /package/dist/{src/services → services}/workspace/workspace-claude-settings-materializer.js +0 -0
  1242. /package/dist/{src/services → services}/workspace/workspace-clean-service.d.ts +0 -0
  1243. /package/dist/{src/services → services}/workspace/workspace-clean-service.js +0 -0
  1244. /package/dist/{src/services → services}/workspace/workspace-service.d.ts +0 -0
  1245. /package/dist/{src/services → services}/workspace/workspace-state-service.d.ts +0 -0
  1246. /package/dist/{src/services → services}/workspace/workspace-state-service.js +0 -0
  1247. /package/dist/{src/shared → shared}/format-md-compact.d.ts +0 -0
  1248. /package/dist/{src/shared → shared}/format-md-compact.js +0 -0
  1249. /package/dist/{src/shared → shared}/frontmatter.d.ts +0 -0
  1250. /package/dist/{src/shared → shared}/frontmatter.js +0 -0
  1251. /package/dist/{src/shared → shared}/fs-utils.d.ts +0 -0
  1252. /package/dist/{src/shared → shared}/fs-utils.js +0 -0
  1253. /package/dist/{src/shared → shared}/incrementing-number.d.ts +0 -0
  1254. /package/dist/{src/shared → shared}/incrementing-number.js +0 -0
  1255. /package/dist/{src/shared → shared}/json-schema-mini.d.ts +0 -0
  1256. /package/dist/{src/shared → shared}/json-schema-mini.js +0 -0
  1257. /package/dist/{src/shared → shared}/path-safety.d.ts +0 -0
  1258. /package/dist/{src/shared → shared}/path-safety.js +0 -0
  1259. /package/dist/{src/shared → shared}/path-utils.d.ts +0 -0
  1260. /package/dist/{src/shared → shared}/path-utils.js +0 -0
  1261. /package/dist/{src/shared → shared}/planner-response.d.ts +0 -0
  1262. /package/dist/{src/shared → shared}/planner-response.js +0 -0
  1263. /package/dist/{src/shared → shared}/platform.d.ts +0 -0
  1264. /package/dist/{src/shared → shared}/platform.js +0 -0
  1265. /package/dist/{src/shared → shared}/process.d.ts +0 -0
  1266. /package/dist/{src/shared → shared}/process.js +0 -0
  1267. /package/dist/{src/shared → shared}/stale-policy.d.ts +0 -0
  1268. /package/dist/{src/shared → shared}/stale-policy.js +0 -0
  1269. /package/dist/{src/skills → skills}/peaks-maker/index.d.ts +0 -0
  1270. /package/dist/{src/skills → skills}/peaks-maker/index.js +0 -0
package/CHANGELOG.md CHANGED
@@ -1,17 +1,630 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.0.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies
8
+ - peaks-loop-shared@0.0.9
9
+ - peaks-loop-audit-independent@0.0.5
10
+ - peaks-loop-crystallization@0.0.6
11
+ - peaks-loop-doctor@0.0.5
12
+ - peaks-loop-final-review@0.0.5
13
+
14
+ ## 4.0.0
15
+
16
+ ### Patch Changes
17
+
18
+ - Updated dependencies
19
+ - peaks-loop-shared@0.0.5
20
+ - peaks-loop-audit-independent@0.0.5
21
+ - peaks-loop-crystallization@0.0.5
22
+ - peaks-loop-doctor@0.0.5
23
+ - peaks-loop-final-review@0.0.5
24
+
25
+ ## 4.0.0-beta.17
26
+
27
+ ### Patch Changes
28
+
29
+ - Repair registry install: `npm i -g peaks-loop` previously failed with
30
+ `EUNSUPPORTEDPROTOCOL / workspace:*` because the publish workflow
31
+ called `npm publish` on each workspace directory directly, which
32
+ serialized the manifest verbatim and leaked the pnpm-only
33
+ `workspace:*` protocol into the published tarballs. The new
34
+ `scripts/release-pack.mjs` packs each workspace package with
35
+ `pnpm pack` (which rewrites `workspace:*` to exact semver pins) and
36
+ then publishes the resulting tarball via `npm publish <tarball>` so
37
+ npm 11+ OIDC Trusted Publishing remains in effect.
38
+
39
+ Bumped versions: `peaks-loop` 4.0.0-beta.16 → 4.0.0-beta.17; all
40
+ eight subpackages 0.0.3 → 0.0.4. The publish workflow's changeset
41
+ step is now conditional on detected `.changeset/*.md` files so the
42
+ registry-repair release keeps its manually-pinned versions, and
43
+ future releases still pick up automated `changeset version` bumps.
44
+
45
+ - per-package OIDC Trusted Publisher entries still need to be added
46
+ once on npmjs.com (one-time UI step per package).
47
+ - the install smoke verifies the registry tarball surface: bin shim,
48
+ package layout, postinstall, and registry metadata. `peaks
49
+ --version`/`--help` may fail at runtime until
50
+ `peaks-loop-crystallization` declares `zod` as a runtime
51
+ dependency (a separate source bug, out of scope for this repair).
52
+
53
+ ## 4.0.0
54
+
55
+ ### Patch Changes
56
+
57
+ - Updated dependencies
58
+ - peaks-loop-shared@0.0.5
59
+ - peaks-loop-audit-independent@0.0.5
60
+ - peaks-loop-crystallization@0.0.5
61
+ - peaks-loop-doctor@0.0.5
62
+ - peaks-loop-final-review@0.0.5
63
+
64
+ ## 4.0.0
65
+
66
+ ### Patch Changes
67
+
68
+ - Updated dependencies
69
+ - peaks-loop-shared@0.0.5
70
+ - peaks-loop-audit-independent@0.0.5
71
+ - peaks-loop-crystallization@0.0.5
72
+ - peaks-loop-doctor@0.0.5
73
+ - peaks-loop-final-review@0.0.5
74
+
75
+ ## 4.0.0
76
+
77
+ ### Minor Changes
78
+
79
+ - 5d01343: Monorepo extraction: peaks-loop 4.0.0-beta.15 ships the new pnpm
80
+ workspace shell with 6 independent packages extracted from the main
81
+ repo as Tier-A zero/low-coupling domains:
82
+
83
+ - peaks-loop-shared (4 utils: fs / paths / result / version)
84
+ - peaks-loop-mut (mutation testing + ECC cache)
85
+ - peaks-loop-doctor (project health check)
86
+ - peaks-loop-crystallization (crystallization pipeline)
87
+ - peaks-loop-final-review (4-dim business review)
88
+ - peaks-loop-audit-independent (security + perf audit)
89
+
90
+ Each subpackage has its own typecheck / build / vitest pipeline; they
91
+ are wired back into the main peaks-loop CLI via workspace:_ protocol.
92
+ Trusted Publishing (OIDC) is wired via .github/workflows/publish.yml
93
+ on push tags v_._._ — no NPM_TOKEN required.
94
+
95
+ Also:
96
+
97
+ - D21: peaks sub-agent finalize command (LLM-side completion signal
98
+ to mark dispatch records done/failed/cancelled; without it records
99
+ would stay queued forever).
100
+ - Trusted Publishing via OIDC — npmjs.com trusted publisher
101
+ configured; npm token removed from ~/.npmrc.
102
+
103
+ ### Patch Changes
104
+
105
+ - Updated dependencies [5d01343]
106
+ - peaks-loop-shared@0.1.0
107
+ - peaks-loop-mut@0.1.0
108
+ - peaks-loop-doctor@0.1.0
109
+ - peaks-loop-crystallization@0.1.0
110
+ - peaks-loop-final-review@0.1.0
111
+ - peaks-loop-audit-independent@0.1.0
112
+
3
113
  ## [Unreleased]
4
114
 
115
+ ## 4.0.0-beta.14 — 2026-07-16
116
+
117
+ ### Status: RELEASED (D-019: copy-templates.mjs + package.json files[])
118
+
119
+ > **This release fixes D-019 (full end-to-end)**:
120
+ >
121
+ > 1. `scripts/copy-templates.mjs` now copies
122
+ > `src/services/skillhub/migrations/*.sql` into `dist/services/skillhub/migrations/`.
123
+ > 2. `package.json` `"files"` whitelist now includes `dist/**/*.sql`
124
+ > (previously the whitelist was `dist/**/*.js | .d.ts | .md` only,
125
+ > so the migrations were filtered out of the npm tarball even
126
+ > after being copied to `dist/`).
127
+ >
128
+ > Without this fix, the published `peaks-loop` tarball shipped without
129
+ > the SkillHub SQLite schema, breaking any downstream consumer's first
130
+ > `peaks skill sediment <verb>` with `no such table: bee_release`.
131
+ >
132
+ > **Verdict**: `pnpm build` copies 6 migrations; tarball includes them.
133
+ > In-process vitest tests were always green (they use tsx + source tree
134
+ > directly, not `dist/`), so no test count change. Combined with
135
+ > 4.0.0-beta.13's D-018 path fix, the published tarball is now
136
+ > correct end-to-end.
137
+
138
+ ## 4.0.0-beta.13 — 2026-07-16
139
+
140
+ ### Status: RELEASED (D-018: state.db path relocation)
141
+
142
+ > **This release fixes the SQLite `state.db` location** to match the
143
+ > original peaks-loop design contract: `PEAKS_HOME/.peaks/skills/state.db`
144
+ > (PEAKS_HOME defaults to `~/.peaks`). Previously, the code resolved
145
+ > `home` to `process.cwd()` when invoked from a project root, producing
146
+ > `<project>/.peaks/state.db` — wrong location for loop engineering
147
+ >
148
+ > - bee sediment data.
149
+ >
150
+ > **Fix**: `src/cli/commands/sediment-commands.ts:664-665` now uses
151
+ > `peaksHome()` from `src/services/sop/sop-paths.ts:29` (which honors
152
+ > `PEAKS_HOME` override for test isolation). The downstream
153
+ > `resolveStateDbPath({ home })` (in `src/services/sediment/pool-paths.ts:15`)
154
+ > already correctly returned `{home}/.peaks/skills/state.db`; only the
155
+ > `home` resolution was broken.
156
+ >
157
+ > **Side bug found but out of scope**: `src/services/skillhub/migrations/*.sql`
158
+ > is not copied to `dist/` by `scripts/copy-templates.mjs`. This is a
159
+ > pre-existing build-config issue separate from D-018. Tracked as
160
+ > follow-up; tests still pass because the tests use vitest + tsx
161
+ > (which sees the source tree directly), but the published
162
+ > `peaks-loop@4.0.0-beta.13` will hit `no such table: bee_release` until
163
+ > a D-019 follow-up adds `.sql` to the copy-templates extensions.
164
+ >
165
+ > **Verdict**: 27/27 AC PASS (beta.12 verdict preserved; D-018 is
166
+ > architecture fix, no AC change). Old `<peaks-loop>/.peaks/state.db`
167
+ > discarded (beta phase, single user).
168
+
169
+ ## 4.0.0-beta.12 — 2026-07-16
170
+
171
+ ### Status: RELEASED (follow-up to `4.0.0-beta.11`; D-013 wrapper exit-code fix)
172
+
173
+ > \*\*This CHANGELOG entry documents the D-013 follow-up release.
174
+ > Same source tree as `4.0.0-beta.11`; pure fix for the wrapper
175
+ > exit-code bug that previously caused `peaks <unknown>` and
176
+ > `peaks <unknown> --help` to exit 0 with the help banner.
177
+ >
178
+ > **Verdict**: All 4 regression paths now exit 1 with a
179
+ > `COMMAND_NOT_FOUND` JSON envelope. ice-cola baseline 27/27 PASS
180
+ > (AC3.9/AC3.10 now functionally correct).
181
+
182
+ > \*\*This CHANGELOG entry documents the SHIPPED 4.0.0-beta.11.
183
+ > It is the post-implementation release of the 4.0.0-beta.10 contract
184
+ > documented at `docs/release/4.0.0-beta.10.md` (runbook filename
185
+ > preserved for cross-reference stability).
186
+ >
187
+ > The 3 slices (del-minimax-worker, hide-role-skills, on-demand-ecc)
188
+ > all landed PASS in this branch — see `peaks workflow verify-pipeline
189
+ --rid 2026-07-15-cli-surface-cleanup` and the Slice 1/2/3 sediment
190
+ > memories in `.peaks/memory/`.
191
+ >
192
+ > **Version bump rationale** (D-016): 4.0.0-beta.10 was the pre-impl
193
+ > contract name; 4.0.0-beta.11 is the actual release of that contract.
194
+ > One-line summary: **"CLI surface cleanup + on-demand ECC"**.
195
+ >
196
+ > **Verdict**: 10/12 AC PASS + 2 PASS-WITH-DEFERRED (D-013 wrapper
197
+ > exit-code bug, separate follow-up slice after publish).
198
+ > Ice-cola baseline gate: 27/27 AC functionally pass.
199
+
200
+ ### Removed — `peaks minimax-worker` (Slice 1)
201
+
202
+ - **`peaks minimax-worker` CLI removed** — historical MiniMax
203
+ provider integration. `peaks minimax-worker --help` now exits
204
+ non-zero with `COMMAND_NOT_FOUND`.
205
+ - **`peaks worker minimax` CLI removed** — same module.
206
+ - **`peaks config provider minimax *` subtree removed** —
207
+ `peaks config provider minimax set --help` exits non-zero.
208
+ - **6 source files deleted**:
209
+ - `src/cli/commands/worker-commands.ts`
210
+ - `src/services/providers/minimax-provider-service.ts`
211
+ - `src/services/providers/minimax-worker-service.ts`
212
+ - `src/services/config/provider-service.ts` (entire file; 100% MiniMax)
213
+ - `tests/unit/minimax-worker-service.test.ts`
214
+ - `tests/unit/minimax-provider-service.test.ts`
215
+ - **~21 source files modified** (drop imports, drop function bodies,
216
+ drop registrations, replace `'minimax-2.7'` literal with
217
+ `'claude-opus-4-7'` in 5 files).
218
+ - **~8 test files modified** (drop MiniMax cases; replace literal in 3).
219
+ - **4 openspec files updated** (1-line wording fixes).
220
+ - **Net security improvement**: smaller secret-handling surface
221
+ (5 MiniMax functions removed).
222
+
223
+ ### Changed — 10 role-skill CLI commands hidden (Slice 2)
224
+
225
+ - **10 top-level role-skill CLI commands** now hidden from `peaks --help`
226
+ via `Commander.hidden()`. Still invokable for internal
227
+ `peaks sub-agent dispatch --role <role>` paths. Final canonical
228
+ list (per QA grep audit):
229
+ - `peaks prd`
230
+ - `peaks qa`
231
+ - `peaks sc`
232
+ - `peaks audit`
233
+ - `peaks code-review`
234
+ - `peaks perf-audit`
235
+ - `peaks security-audit`
236
+ - `peaks upgrade`
237
+ - `peaks agent`
238
+ - `peaks code`
239
+ - **`peaks skill list`** now excludes skills with
240
+ `visibility: internal` frontmatter. Use `--include-internal` to opt in.
241
+ - **`peaks skill search`** accepts `--include-internal` flag.
242
+ - **8 SKILL.md files** updated to add/rename `visibility: internal`:
243
+ `peaks-prd`, `peaks-qa`, `peaks-rd`, `peaks-sc`, `peaks-ui`,
244
+ `peaks-txt`, `peaks-final-review`, `peaks-perf-audit`,
245
+ `peaks-security-audit`.
246
+ - **Integration test rewritten**:
247
+ `tests/integration/skill-search-cli.test.ts:72-79` now asserts
248
+ the new `visibility:` frontmatter field instead of legacy
249
+ `userInvocable`.
250
+
251
+ ### Added — `peaks ecc install|status|ls|show` (Slice 3)
252
+
253
+ > **PIVOT vs initial design**: Originally Slice 3 was supposed to
254
+ > spawn `<cached>/ecc agent run <name> --json` as a subprocess.
255
+ > RD sub-agent triggered **Gate S3-0**: affaan-m/everything-claude-code
256
+ > has no `ecc` binary; its real structure is `agents/*.md` flat
257
+ >
258
+ > - SKILL.md descriptors. User chose Option B — drop the subprocess
259
+ > model entirely.
260
+
261
+ - **`peaks ecc install`** — downloads affaan-m/everything-claude-code
262
+ from GitHub releases to `~/.peaks/cache/ecc-<sha>/`. Selective
263
+ tarball extraction: ONLY `agents/` subtree (skip `rules/`,
264
+ `commands/`, `settings/`, `docs/`, `README.md`).
265
+ - **`peaks ecc status`** — reads cache manifest, reports version + sha
266
+ - agent count.
267
+ - **`peaks ecc ls`** — lists cached agents by parsing `agents/*.md`
268
+ frontmatter.
269
+ - **`peaks ecc show <name>`** — outputs the agent's SKILL.md body
270
+ to stdout. LLM-side consumers (Skill-first path) read this output
271
+ to apply the agent's instructions.
272
+ - **3 source files deleted** (with Slice 1):
273
+ - `src/cli/commands/agent-commands.ts` (the old `peaks agent run/list`)
274
+ - `src/services/agent/ecc-agent-service.ts` (the spawn orchestrator)
275
+ - `tests/unit/services/agent/ecc-agent-service.test.ts`
276
+ - **3 new source files**:
277
+ - `src/services/agent/ecc-cache-service.ts` — pure-IO cache module
278
+ (`downloadToCache`, `readCacheManifest`, `listCachedAgents`,
279
+ `readAgentSkill`, `cleanupStaleCache`)
280
+ - `src/cli/commands/ecc-commands.ts` — 4 subcommands
281
+ - `tests/unit/agent/ecc-cache-service.test.ts`
282
+ - **Dead-probes removed**:
283
+ - `npx ecc --version` probe (was: never worked; affaan-m/ECC not on npm)
284
+ - `npx ecc-agentshield --version` probe in
285
+ `src/services/audit/static-service.ts:104` (parallel fix)
286
+ - **7-day cache TTL** via `bootstrapLogger.applyRetention` sweep
287
+ (wired at `src/cli/program.ts:121`). NOT via
288
+ `peaks doctor --cleanup-stale` (which is bound to `dropStale()`
289
+ for the binding store).
290
+
291
+ ### Removed — `peaks agent run` and `peaks agent list`
292
+
293
+ - **`peaks agent run <name>` exits non-zero with `COMMAND_NOT_FOUND`**.
294
+ - **`peaks agent list` exits non-zero with `COMMAND_NOT_FOUND`**.
295
+ - **No replacement CLI** — LLM-side consumers use
296
+ `peaks ecc show <name>` or read `<cache>/agents/<name>.md` directly.
297
+
298
+ ### Net security / performance impact
299
+
300
+ - **Security**: 0 subprocess attack surface (was: 1 per call in beta.9);
301
+ smaller secret-handling surface (5 MiniMax functions removed).
302
+ - **Performance**: cache-dir probe is pure read (<15ms vs ~500ms
303
+ for the npm-registry probe in beta.9); selective tarball extraction
304
+ saves ~95% disk footprint.
305
+
306
+ ### Pre-implementation gate
307
+
308
+ `peaks workflow verify-pipeline --rid 2026-07-15-cli-surface-cleanup`
309
+ returns `ok: true, complete: true, violations: []` (9/9 gates PASS).
310
+ This CHANGELOG entry is the contract; the actual implementation
311
+ follows the runbook in `docs/release/4.0.0-beta.10.md`.
312
+
313
+ ### Acceptance criteria
314
+
315
+ 27 ACs total: 7 (Slice 1) + 8 (Slice 2) + 11 (Slice 3 redesign + 1).
316
+ Full list in `docs/release/4.0.0-beta.10.md` §Acceptance criteria.
317
+
318
+ ---
319
+
320
+ ## 4.0.0-beta.9 — 2026-07-15
321
+
322
+ ### Fixed — `npm install peaks-loop` runtime path layout
323
+
324
+ `4.0.0-beta.8` shipped a tarball where `bin/peaks.js` imported
325
+ `'../dist/src/cli/index.js'`, but tsc actually emitted the runtime
326
+ files at `dist/cli/index.js` (rootDir walked past `src/` because of
327
+ cross-folder imports like `src/services/hooks/output.ts → ../../cli/`).
328
+ Downstream `npm i -g peaks-loop` then `peaks -v` failed with
329
+ `ERR_MODULE_NOT_FOUND: .../dist/src/cli/index.js`. The 4 audit/business
330
+ templates also failed to enter the tarball because `package.json#files[]`
331
+ whitelisted `dist/src/**/*.js` / `.d.ts` but never `.md`.
332
+
333
+ This release:
334
+
335
+ - `bin/peaks.js` import: `'../dist/src/cli/index.js'` → `'../dist/cli/index.js'`.
336
+ - `scripts/copy-templates.mjs` dest: `dist/src/services/...` →
337
+ `dist/services/...` so the bundled templates land where the runtime
338
+ `import.meta.url` resolver expects them.
339
+ - `package.json#files[]`: prefixes shifted from `dist/src/` to `dist/`,
340
+ plus a new `dist/**/*.md` entry so the 4 templates bundled by
341
+ `copy-templates.mjs` actually ship.
342
+ - `tsconfig.build.json` (introduced in beta.8) confirmed correct — it
343
+ is the build-time emit that controls the dist tree shape.
344
+
345
+ End-to-end smoke after the fix (local):
346
+
347
+ ```
348
+ $ npm pack # 30 MB tarball
349
+ $ npm install ./peaks-loop-4.0.0-beta.9.tgz --prefix /tmp/test
350
+ $ peaks --version # → "4.0.0-beta.9"
351
+ $ peaks workspace init --project /tmp/fresh # → templatesBooted: 5
352
+ ```
353
+
354
+ `.peaks/project-scan/{project-scan.md, business-knowledge.md,
355
+ security-template.md, perf-template.md, audit-output-schema.md}`
356
+ all present after a fresh workspace init.
357
+
358
+ ### Notes
359
+
360
+ - 4.0.0-beta.8 is left in place on npm as a known-broken release.
361
+ Consumers who already pinned `peaks-loop@4.0.0-beta.8` should bump
362
+ to `4.0.0-beta.9`.
363
+ - Beta.9 contains everything beta.8 advertised plus the path fix.
364
+
365
+ ## 4.0.0-beta.8 — 2026-07-15
366
+
367
+ ### Added — project-scan bootstrap (slice 2026-07-15)
368
+
369
+ - **`peaks project context` writes `.peaks/project-scan/project-scan.md`**
370
+ alongside `.peaks/PROJECT.md`. The project-scan.md file is the new
371
+ canonical home for project archetype + libraryVersions + tech stack
372
+ (project-scoped, git-tracked, survives session rotation). The old
373
+ `.peaks/_runtime/<sessionId>/rd/project-scan.md` path is fully
374
+ migrated across SKILL.md / references / peaks-rd SKILL.md /
375
+ peaks-ui SKILL.md (14 occurrences in 8 files).
376
+ - **`peaks workspace init` triggers `bootstrapProjectScan`** on its
377
+ main path. Idempotent: existing `schemaVersion: 1` files are
378
+ preserved unless `--force`. New CLI flags:
379
+ - `--no-project-scan-bootstrap` — opt out of the bootstrap call.
380
+ - `--force-project-scan-templates` — overwrite the 4 bundled
381
+ audit/business templates (default: skip if present).
382
+ - **5-template boot** — every `peaks workspace init` materialises
383
+ `.peaks/project-scan/{project-scan.md, business-knowledge.md,
384
+ security-template.md, perf-template.md, audit-output-schema.md}`.
385
+ The 4 audit/business templates are bundled at
386
+ `src/services/workspace/templates/project-scan/*.md` and copied
387
+ verbatim by `scripts/copy-templates.mjs` (post-`tsc` step; tsc
388
+ does not emit `.md` files).
389
+ - **`scripts/copy-templates.mjs`** — mirrors bundled `.md` templates
390
+ into `dist/`. Wired into `package.json#scripts.build` after `tsc`.
391
+ Required to keep `import.meta.url` template reads working for
392
+ downstream `npm install peaks-loop` consumers.
393
+ - **`tests/unit/workspace/templates/template-integrity.test.ts`**
394
+ (5 cases) — byte-equality guard between bundled and canonical
395
+ templates; fails CI on drift.
396
+ - **`tests/unit/services/prd/project-scan-bootstrap-service.test.ts`**
397
+ (13 cases) — 0-1 path, existing-project path, monorepo variants,
398
+ idempotency, force overrides, dual-write.
399
+ - **`tests/unit/workspace/init-hooks-project-scan.test.ts`**
400
+ (4 cases) — `peaks workspace init` integration with all 3 CLI flag
401
+ combinations.
402
+
403
+ ### Fixed — monorepo 0-1 misjudgement + scanArchetype fall-through
404
+
405
+ Real-world smoke against `C:\Users\smallMark\Desktop\peaksclaw\ice-cola`
406
+ (pnpm-workspace monorepo with `packages/{server,client,admin,hermes-agent}`)
407
+ exposed two follow-on bugs that the unit suite missed:
408
+
409
+ - **0-1 detection now considers monorepo sentinels.**
410
+ `bootstrapProjectScan.isZeroToOneProject` previously only checked
411
+ `<root>/src/`, silently mis-classifying pnpm-workspace projects as
412
+ 0-1 (the source lives at `packages/<pkg>/src/`). New sentinels:
413
+ `pnpm-workspace.yaml` / `turbo.json` / `nx.json` + the
414
+ `package.json#workspaces` field. Source-root candidates extended
415
+ to `packages/` / `apps/` / `libs/` / `services/` / `workspaces/`.
416
+ - **`scanArchetype` hoists `hasMonorepoConfig` above the `hasBackend`
417
+ check.** A monorepo with a backend sub-package (`packages/server`)
418
+ used to fall through to `legacy-fullstack` because `hasBackend`
419
+ included `backendDirsPresent.length > 0`. New behaviour: any monorepo
420
+ resolves to `frontend-monorepo` (no backend pkg) or
421
+ `fullstack-monorepo` (with backend pkg).
422
+ - **`ProjectArchetype` union gains `'fullstack-monorepo'`.**
423
+ Previously the union was 5 values; now 6. `ArchetypeService` and
424
+ `peaks-code` consumers updated accordingly.
425
+
426
+ ### Changed
427
+
428
+ - `src/services/memory/project-context-service.ts` — `generateProjectContext`
429
+ is now `async` and calls `bootstrapProjectScan` after writing
430
+ `PROJECT.md`. The companion `peaks skill presence:clear` was missing
431
+ an `await`; fixed in `src/cli/commands/core/skill-command.ts`.
432
+ - `src/cli/commands/workspace/init-command.ts` — adds
433
+ `--no-project-scan-bootstrap` and `--force-project-scan-templates`;
434
+ surfaces `projectScan` envelope field on the init response.
435
+
436
+ ### Verification
437
+
438
+ - vitest: 22/22 pass across 3 slice-owned test files.
439
+ - tsc: 0 errors in slice-owned `src/` files.
440
+ - CLI: `./bin/peaks.js workspace init --project <tmp>` writes 5 files
441
+ in `templatesBooted:5, durationMs:23`; `--no-project-scan-bootstrap`
442
+ correctly skips; `--force-project-scan-templates` correctly
443
+ overrides user sediment.
444
+ - Ice-cola: `peaks project context --project .` produces
445
+ `archetype: fullstack-monorepo` with 18 real library versions
446
+ (Docusaurus 3.9.2 / Camofox / @easyops-cn / etc.).
447
+
448
+ ### Notes
449
+
450
+ - pre-existing `FILE_SIZE_VIOLATION` on
451
+ `src/services/standards/project-standards-service.ts` (837 lines,
452
+ in-flight `.claude/rules/` → `.peaks/standards/` migration) is out
453
+ of slice scope.
454
+
455
+ ## 4.0.0-beta.7 — 2026-07-09
456
+
457
+ ### Added — zcode adapter (9th IDE) + runtime model detection
458
+
459
+ - **`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).
460
+ - **`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.
461
+ - **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"`.
462
+ - **`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.
463
+ - **`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'`.
464
+
465
+ ### Changed — install no longer writes hardcoded default model
466
+
467
+ - **`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).
468
+ - **`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'`.
469
+ - **`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`.
470
+
471
+ ### Added — zcode IDE (peaks-loop's 9th)
472
+
473
+ - **`IdeId` union type** — `'zcode'` added in `src/services/ide/ide-types.ts`.
474
+ - **`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).
475
+ - **`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`).
476
+ - **`ide-registry.ts`** — registers `ZCODE_ADAPTER` alongside the existing 8 adapters (claude-code / trae / trae-cn / codex / cursor / qoder / tongyi-lingma / hermes / openclaw).
477
+ - **`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).
478
+ - **`tests/unit/ide/zcode-adapter-detect-model.test.ts`** — 14 cases (pure resolver + env-fixture file IO + path helper).
479
+ - **`tests/unit/cli/ide-commands.test.ts`** — 5 cases (CLI + top-level command registration).
480
+ - **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).
481
+
482
+ ### Documentation — SKILL.md sync with 4.0.0-beta.6 CLI reality
483
+
484
+ - **`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.
485
+ - **`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).
486
+
487
+ ### Verification (4.0.0-beta.7)
488
+
489
+ - `pnpm tsc -p tsconfig.json --noEmit` — 0 errors
490
+ - `pnpm vitest run tests/unit/ide/ tests/unit/cli/ide-commands.test.ts` — 15 files / 211 tests / 0 failed
491
+ - `peaks workflow verify-pipeline --rid 003-add-zcode-adapter` — `ok=true, complete=true`, 9/9 gate PASS
492
+ - `node bin/peaks.js ide model --current` (against real z-code installation) — `modelId: "M3"`, `detected: true`
493
+
494
+ ### Sediment (Step 11) — 7 lessons in `.peaks/memory/`
495
+
496
+ | File | Topic |
497
+ | ------------------------------------------------------------------------- | -------------------------------------------------------- |
498
+ | `z-code-peaks-loop-9-ide-adapter-vendor-neutrality-adapter.md` | z-code 9th IDE + vendor-neutrality adapter pattern |
499
+ | `peaks-loop-install-model-getstrongestmodelid-fallback.md` | install no longer hardcodes default model |
500
+ | `desktop-application-ide-adapter-z-code-cli.md` | desktop-app IDE adapter field-degradation decision |
501
+ | `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 |
502
+ | `2026-07-09-zcode-adapter-overview.md` | RID 003 overall summary (project record) |
503
+ | `peaks-ide-runtime-detect-zcode-only.md` | `peaks ide model --current` z-code 4-tier priority chain |
504
+ | `ide-adapter-detectcurrentmodel-optional-interface-pattern.md` | optional interface field extension pattern |
505
+
506
+ ### Known follow-ups (S3-cleanup backlog)
507
+
508
+ - **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'`.
509
+ - **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.
510
+ - **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.
511
+ - **`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.
512
+
513
+ ### Breaking changes
514
+
515
+ None. All 8 pre-existing adapters continue to load without changes. CLI subcommands `peaks ide *` and `peaks ide model --current` are additive.
516
+
517
+ ## 4.0.0-beta.5 — 2026-07-08
518
+
519
+ ### Added — peaks-solo dispatcher (分诊员)
520
+
521
+ - **`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.
522
+ - **`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).
523
+ - **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.
524
+
525
+ ### Verification (4.0.0-beta.5)
526
+
527
+ - `peaks skill list` shows `peaks-solo` first
528
+ - `peaks skill search --query "code"` returns `peaks-code` with matchScore > 0
529
+ - `peaks skill search --query "xxxxxxxxxxxxx"` returns `[]` (no error)
530
+ - `pnpm vitest run` — full regression green; `peaks-code / peaks-content / peaks-doctor` tests unchanged
531
+ - `peaks code --help` / `peaks content --help` / `peaks doctor --help` — exit 0, behavior unchanged
532
+
533
+ ## 4.0.0-beta.4 — 2026-07-08
534
+
535
+ 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.
536
+
537
+ ### Added — Loop Engineering Asset layer (§4.1, AC-1/AC-2/AC-3)
538
+
539
+ - **`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.
540
+ - **`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).
541
+ - **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.
542
+
543
+ ### Added — Post-run crystallization flow (§5, AC-4 / AC-5 / AC-6 / AC-7)
544
+
545
+ - **`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.
546
+ - **`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).
547
+ - **`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).
548
+ - **`peaks asset dispose` / `peaks asset status`** — cross-asset dispose (trace_only / retain / destroy) and lifecycle status dashboard.
549
+
550
+ ### Added — Darwin-style ratchet (§6, AC-8 / AC-9 / AC-10 / AC-11)
551
+
552
+ - **`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.
553
+ - **`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).
554
+ - **`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`).
555
+ - **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).
556
+ - **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'`).
557
+
558
+ ### Added — Karpathy-engineered red-line set (AC-21 / AC-22 / AC-23)
559
+
560
+ - **`.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).
561
+ - **`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.
562
+ - **`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>`.
563
+ - **Unit guard** — `tests/unit/standards/loop-engineering-guidelines.test.ts` enforces the four-section shape for every red line in the file.
564
+ - **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.
565
+
566
+ ### Added — Bundle share + desktop extension surface (§7A, AC-24 / AC-25 / AC-26)
567
+
568
+ - **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.
569
+ - **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.
570
+ - **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.
571
+ - **`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.
572
+ - **`peaks bee export` / `peaks bee import`** — `src/cli/commands/share-commands.ts`. Same hard-block semantics.
573
+ - **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).
574
+
575
+ ### Added — SkillHub expansion (5 new tables / non-breaking)
576
+
577
+ The 6+ relation table layout is preserved. 5 new tables added under `.peaks/_runtime/<sessionId>/`:
578
+
579
+ - `loop_release` (002)
580
+ - `loop_bee_relation` (003)
581
+ - loop↔bee share / desktop extension columns (004)
582
+ - `evolution_evaluation` (005)
583
+ - `crystallization_event` (006)
584
+
585
+ Migration is non-breaking: every new column has a DEFAULT and the new tables sit alongside the existing 4.x schema.
586
+
587
+ ### Added — New CLI verbs (spec §7.4)
588
+
589
+ - `peaks loop init / list / show / search / recent / export / import`
590
+ - `peaks asset crystallize / dispose / status`
591
+ - `peaks evolution propose / evaluate / revert / mark-keep / status`
592
+ - `peaks skill lint --category loop-engineering-readiness --path <skill-dir>`
593
+ - `peaks skill ready --category loop-engineering-readiness --path <skill-dir>` (alias)
594
+
595
+ ### Changed
596
+
597
+ - **`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".
598
+ - **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.
599
+
600
+ ### Verification (4.0.0-beta.4)
601
+
602
+ - `tsc --noEmit` zero errors
603
+ - `peaks standards lint --category loop-engineering` parses all 10 red lines + 4 sections each (lint passes)
604
+ - `pnpm vitest run tests/unit/{standards,crystallization,evolution,share}/` — 13 files / 154 unit tests pass
605
+ - `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
606
+ - 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)
607
+
608
+ ### Migration
609
+
610
+ - 4.x `bee_release` rows continue to read. No data migration required.
611
+ - The 5 new tables are added via non-destructive `CREATE TABLE IF NOT EXISTS` migrations.
612
+ - The `bundle-writer / bundle-reader` pair is additive; existing `peaks skill sediment export / import` remains as an alias for one release cycle, then deprecates.
613
+ - 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.
614
+
5
615
  ## 4.0.0-beta.2 — 2026-07-07
6
616
 
7
617
  ### Renamed
618
+
8
619
  - **`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`.
9
620
 
10
621
  ### Changed (Breaking)
622
+
11
623
  - **`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"`.
12
624
  - **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.
13
625
 
14
626
  ### Fixed (post-rename polish)
627
+
15
628
  - **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`.
16
629
  - **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).
17
630
  - **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`.
@@ -22,11 +635,13 @@
22
635
  - **Video demo copy** — `examples/video-demo/src/copy.ts` `skillWas: 'peaks-solo'` → `skillWas: 'peaks-code'` (legacy label, both locales).
23
636
 
24
637
  ### Added
638
+
25
639
  - **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.
26
640
  - **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.
27
641
  - **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`.
28
642
 
29
643
  ### Verification
644
+
30
645
  - `tsc --noEmit` zero errors
31
646
  - Full `vitest run` exit 0 (all 30 touched test files / 265 directly-tested assertions pass)
32
647
  - `silent-warning-detector` OK on 481 files
@@ -145,10 +760,11 @@ Validated on `C:/Users/smallMark/Desktop/peaksclaw/ice-cola` (consumer project).
145
760
  ## [3.0.2] — 2026-07-02 — change-id shim retirement (v2.19.0) + Understand Anything hybrid context (3.0.2)
146
761
 
147
762
  **PATCH bump from 3.0.1**. Two independent slices bundled into one release:
763
+
148
764
  - **v2.19.0 change-id shim retirement** — full removal of the peaks-loop change-id axis (filesystem axis, code shim, envelope JSON slug, CLI flags). The change-id was a no-op post-v2.17.0 hard-kill; this slice retires the v2.17.0 shim half-life. OpenSpec's independent `openspec/changes/<change-id>/` vocabulary (L4) is preserved untouched.
149
765
  - **3.0.2 Understand Anything hybrid context** — new `peaks understand context` subcommand that encapsulates the UA-first / codegraph-fallback / hybrid-union routing decision in the service layer (per the peaks-loop "skill-first / CLI-auxiliary" architecture). Consumers no longer pick one or the other at the LLM level.
150
766
 
151
- The v2.19.0 work shipped as code commits (`f91d71c`, `5186d3d`, `b598612`, `ced835e`, `7ee9d8f`, plus follow-up tests) but was never formally released. v2.19.0 is therefore *not* a separate release line — its changes are rolled forward into 3.0.2. Future releases resume numeric sequence from 3.0.3.
767
+ The v2.19.0 work shipped as code commits (`f91d71c`, `5186d3d`, `b598612`, `ced835e`, `7ee9d8f`, plus follow-up tests) but was never formally released. v2.19.0 is therefore _not_ a separate release line — its changes are rolled forward into 3.0.2. Future releases resume numeric sequence from 3.0.3.
152
768
 
153
769
  ### Removed — change-id shim (cleanup post v2.17.0 hard-kill)
154
770
 
@@ -171,7 +787,7 @@ The v2.19.0 work shipped as code commits (`f91d71c`, `5186d3d`, `b598612`, `ced8
171
787
  - 12 JSDoc references to the deleted `src/shared/change-id.ts` file scrubbed across `src/services/session/session-binding-bridge.ts`, `src/services/session/session-manager.ts`, `src/shared/path-safety.ts`, `tests/unit/session-manager.test.ts`, `tests/vitest.setup.ts`. The 3 pre-slim `tests/fixtures/skills/pre-slim/*.SKILL.md` fixtures preserve the historical reference per the FROZEN EVIDENCE rule.
172
788
  - 2 weakened `tests/unit/rd/repair-cycle-2-cli-wiring.test.ts` cases restored with real assertions: the test now bootstraps a real session via `peaks workspace init` then drives `peaks swarm plan` end-to-end, asserting `standardsErrorCode`, `standardsDiagnostic`, and `process.exitCode` (no `expect(true).toBe(true)`, no `.skip`).
173
789
 
174
- ### Round 3 — change-id彻底根治
790
+ ### Round 3 — change-id 彻底根治
175
791
 
176
792
  - All 275 internal `changeId` field references in `src/` renamed to `sessionId` across 35 source files (cli/commands, services/workflow, services/tech, services/workspace, services/sc, services/rd, services/prd, services/audit, services/fixture, services/slice, services/mut, services/providers, services/artifacts, services/openspec-adjacent callers). The 65 remaining `changeId` hits are EXCLUSIVELY in `src/cli/commands/openspec-commands.ts` and `src/services/openspec/*.ts` — L4 OpenSpec vocabulary (positional `<change-id>` arg, `openspec/changes/<change-id>/` dir name, OpenSpec spec/proposal markdown tokens). The rename preserves L4 per PRD §Non-Goals.
177
793
  - `WorkspaceInitOptions.changeId?: string` field REMOVED entirely (was a no-op post-v2.17.0; the slice deletes the binding-file legacy and the inline lstatSync guard now scopes the v2.8.3 hard-ban to date-stamped top-level siblings at `.peaks/<YYYY-MM-DD-*>/` only).
@@ -187,6 +803,7 @@ The v2.19.0 work shipped as code commits (`f91d71c`, `5186d3d`, `b598612`, `ced8
187
803
  - `pnpm build` regenerated `dist/` to drop the dead `migrate-change-scope` JS. AC-15 (`node bin/peaks.js workspace migrate-change-scope`) now reports `error: unknown command 'migrate-change-scope'`.
188
804
 
189
805
  ### Round 4 — change-id full root-out (fix 55 test regressions)
806
+
190
807
  - Fixed 55 unit tests failing across 15 files (regressions from round-3 rename script + incomplete code paths).
191
808
  - `peaks request *` dry-run mode no longer creates `.peaks/_runtime/<sid>/` dir eagerly (test updated to assert the canonical single-axis scope dir at apply-time only).
192
809
  - Observability event hook restored on `peaks request transition` (3 tests): root cause was `readSummary` returning the scope fragment (`_runtime/<sid>`) as the bare session id, so `emitObservabilityEvent` landed at `.peaks/_runtime/_runtime/<sid>/metrics/slices.jsonl`. Fix strips the `_runtime[\\/]` prefix when storing the summary's sessionId.
@@ -219,10 +836,11 @@ The v2.19.0 work shipped as code commits (`f91d71c`, `5186d3d`, `b598612`, `ced8
219
836
  ## [3.0.2] — 2026-07-02 — change-id shim retirement (v2.19.0) + Understand Anything hybrid context (3.0.2)
220
837
 
221
838
  **PATCH bump from 3.0.1**. Two independent slices bundled into one release:
839
+
222
840
  - **v2.19.0 change-id shim retirement** — full removal of the peaks-loop change-id axis (filesystem axis, code shim, envelope JSON slug, CLI flags). The change-id was a no-op post-v2.17.0 hard-kill; this slice retires the v2.17.0 shim half-life. OpenSpec's independent `openspec/changes/<change-id>/` vocabulary (L4) is preserved untouched.
223
841
  - **3.0.2 Understand Anything hybrid context** — new `peaks understand context` subcommand that encapsulates the UA-first / codegraph-fallback / hybrid-union routing decision in the service layer (per the peaks-loop "skill-first / CLI-auxiliary" architecture). Consumers no longer pick one or the other at the LLM level.
224
842
 
225
- The v2.19.0 work shipped as code commits (`f91d71c`, `5186d3d`, `b598612`, `ced835e`, `7ee9d8f`, plus follow-up tests) but was never formally released. v2.19.0 is therefore *not* a separate release line — its changes are rolled forward into 3.0.2. Future releases resume numeric sequence from 3.0.3.
843
+ The v2.19.0 work shipped as code commits (`f91d71c`, `5186d3d`, `b598612`, `ced835e`, `7ee9d8f`, plus follow-up tests) but was never formally released. v2.19.0 is therefore _not_ a separate release line — its changes are rolled forward into 3.0.2. Future releases resume numeric sequence from 3.0.3.
226
844
 
227
845
  ### Added — `peaks understand context` (3.0.2 user-facing feature)
228
846
 
@@ -231,12 +849,14 @@ The Understand Anything (UA) Claude Code plugin and `@colbymchenry/codegraph` ar
231
849
  This slice adds a single `peaks understand context` subcommand that encapsulates the routing decision in the service layer (per the peaks-loop "skill-first / CLI-auxiliary" architecture — see `peaks-code` SKILL.md). The envelope carries a `source` tag so downstream consumers can audit which evidence contributed to the context.
232
850
 
233
851
  **Source routing** (deterministic, decided in `buildUnderstandContext`):
852
+
234
853
  - `ua-only` — UA knowledge graph present, no codegraph
235
854
  - `ua-missing-fallback-codegraph` — UA absent, codegraph produced evidence
236
855
  - `ua-and-codegraph-hybrid` — both present, both contribute (parallel `Promise.all`)
237
856
  - `both-missing` — neither produced evidence, exit code 2
238
857
 
239
858
  **Added files (5):**
859
+
240
860
  - `src/services/understand/understand-hybrid-service.ts` (133L, new): `buildUnderstandContext({projectRoot, files?, sampleSize?, artifactDir?, codegraphRunner?})` uses `Promise.all` to run UA scan and codegraph affected in parallel; total wall-clock = `max(uaMs, codegraphMs)`, not sum. Failures are caught into `warnings[]` (best-effort); the main envelope is always returned so consumers can audit missing evidence.
241
861
  - `src/services/understand/hybrid-types.ts` (39L, new): `UnderstandContextResult` envelope + 4-value source enum + `CodegraphContextBlock`.
242
862
  - `src/cli/commands/understand-commands.ts` (208L, +51L net): new `peaks understand context` subcommand at base path `admin/audit-logs` (the only 3rd CLI surface in the understand module family). The subcommand accepts `--project --files --sample --artifact-dir` and emits the envelope as JSON or human-readable summary.
@@ -383,12 +1003,12 @@ The 1.x → 2.0 upgrade is an irreversible external side effect (rewrites `~/.pe
383
1003
 
384
1004
  The split methodology follows the v2.18.0 `session-binding-bridge.ts` pattern: identify a natural seam (state/helpers vs business logic, types vs impl, etc.), extract the chosen section into a new sibling file, and re-export the moved symbols from the original module so external imports are unchanged. Internal references are routed through a local `import { ... }` so the body of the original module continues to compile and behave identically.
385
1005
 
386
- | # | File | Before | After (orig + sibling) | New sibling | Seam |
387
- |---|------|-------:|-----------------------:|-------------|------|
388
- | 1 | `src/services/artifacts/request-artifact-service.ts` | 783 | 649 + 153 | `request-artifact-state-helpers.ts` | `RequestArtifactState` type, `ALLOWED_STATES_PER_ROLE`, `allowedStatesForRole`, 4 transition error classes, `updateStatusBlock` frontmatter mutator |
389
- | 2 | `src/services/slice/slice-decompose-service.ts` | 775 | 632 + 178 | `slice-decompose-runners.ts` | 3 default runner factories (`defaultCodegraphRunner`, `defaultUnderstandRunner`, `defaultImportEdgeRunner`) + `runCodegraph` shell-out helper |
390
- | 3 | `src/services/workflow/workflow-autonomous-service.ts` | 774 | 465 + 337 | `workflow-autonomous-resume-helpers.ts` | Resume validation pipeline (`getResumeRequiredArtifacts`, `readResumeArtifact`, `stripChangeScopePrefix`, JSON / frontmatter parsers, `getResumeArtifactsStatus`, `createResumePlan`) + `MAX_RESUME_ARTIFACT_BYTES` const |
391
- | 4 | `src/services/workspace/workspace-service.ts` | 742 | 550 + 217 | `workspace-claude-settings-materializer.ts` | Consumer `.claude/settings.local.json` materialization (`materializeClaudeSettingsLocal`, `writeOfflineTemplateCopy`, `upsertPeaksGitignoreSnippet`) + `PEAKS_GITIGNORE_*` constants |
1006
+ | # | File | Before | After (orig + sibling) | New sibling | Seam |
1007
+ | --- | ------------------------------------------------------ | -----: | ---------------------: | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1008
+ | 1 | `src/services/artifacts/request-artifact-service.ts` | 783 | 649 + 153 | `request-artifact-state-helpers.ts` | `RequestArtifactState` type, `ALLOWED_STATES_PER_ROLE`, `allowedStatesForRole`, 4 transition error classes, `updateStatusBlock` frontmatter mutator |
1009
+ | 2 | `src/services/slice/slice-decompose-service.ts` | 775 | 632 + 178 | `slice-decompose-runners.ts` | 3 default runner factories (`defaultCodegraphRunner`, `defaultUnderstandRunner`, `defaultImportEdgeRunner`) + `runCodegraph` shell-out helper |
1010
+ | 3 | `src/services/workflow/workflow-autonomous-service.ts` | 774 | 465 + 337 | `workflow-autonomous-resume-helpers.ts` | Resume validation pipeline (`getResumeRequiredArtifacts`, `readResumeArtifact`, `stripChangeScopePrefix`, JSON / frontmatter parsers, `getResumeArtifactsStatus`, `createResumePlan`) + `MAX_RESUME_ARTIFACT_BYTES` const |
1011
+ | 4 | `src/services/workspace/workspace-service.ts` | 742 | 550 + 217 | `workspace-claude-settings-materializer.ts` | Consumer `.claude/settings.local.json` materialization (`materializeClaudeSettingsLocal`, `writeOfflineTemplateCopy`, `upsertPeaksGitignoreSnippet`) + `PEAKS_GITIGNORE_*` constants |
392
1012
 
393
1013
  The original 4 files land at 465-649 LOC (well below the 800 cap; target range 600-650). The 4 new sibling files are 153-337 LOC. Total LOC across the 8 files is unchanged (3074) — this is a structural refactor only, not a deletion or compression.
394
1014
 
@@ -459,12 +1079,12 @@ Each original file gets a sibling `import { ... } from './X-helpers.js'` + `expo
459
1079
 
460
1080
  ### Dogfood
461
1081
 
462
- | # | Scenario | Verdict | Evidence |
463
- |---|---|---|---|
464
- | A | v2.18.1 verify-pipeline happy-path (session-axis) | PASS | `.peaks/_runtime/2026-06-29-session-9cac8e/{rd,qa}/...` resolves as canonical; `data.changeId` slug preserved in envelope |
465
- | B | v2.18.1 verify-pipeline missing-evidence | PASS | Clear `RD evidence missing: ...` violations, no `ReferenceError` |
466
- | C | v2.18.1 prd check-blocks well-formed PRD | PASS | `report.ok: true`, all 4 blocks pass, JSON envelope `{ 业务场景: 'pass', 边界 case: 'pass', UI 装配意图: 'pass' }` |
467
- | D | v2.18.1 prd check-blocks missing 业务场景 block | PASS | `report.ok: false`, `issues: ["Missing required block: 业务场景"]`, no `ReferenceError` |
1082
+ | # | Scenario | Verdict | Evidence |
1083
+ | --- | ------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------- |
1084
+ | A | v2.18.1 verify-pipeline happy-path (session-axis) | PASS | `.peaks/_runtime/2026-06-29-session-9cac8e/{rd,qa}/...` resolves as canonical; `data.changeId` slug preserved in envelope |
1085
+ | B | v2.18.1 verify-pipeline missing-evidence | PASS | Clear `RD evidence missing: ...` violations, no `ReferenceError` |
1086
+ | C | v2.18.1 prd check-blocks well-formed PRD | PASS | `report.ok: true`, all 4 blocks pass, JSON envelope `{ 业务场景: 'pass', 边界 case: 'pass', UI 装配意图: 'pass' }` |
1087
+ | D | v2.18.1 prd check-blocks missing 业务场景 block | PASS | `report.ok: false`, `issues: ["Missing required block: 业务场景"]`, no `ReferenceError` |
468
1088
 
469
1089
  ### Commits
470
1090
 
@@ -495,7 +1115,7 @@ Each original file gets a sibling `import { ... } from './X-helpers.js'` + `expo
495
1115
  - `src/services/session/binding-store.ts:259` — `ownerHint` field is now `${envSignal}#${pid}` (was bare env signal). Preserves the existing v2.17.0 field shape; only the value format changes.
496
1116
  - `registerInstance` distinguishes instances by `(callerId, pid)` tuple, not by `ownerHint` alone. Same pid + same callerId → auto-resume (D2 Claude-instance-level hard-exclusive sid preserved); same callerId + different pid → distinct sids.
497
1117
  - `/compact` resume: same outer-session-id + same pid → reuses sid (verified by new Case B test). Different pid (rare, but possible if the harness restarts) → new sid (safe default, not a stale resume).
498
- - Sub-agent dispatch: sub-agents inherit parent's `CLAUDE_CODE_SESSION_ID` but run in the same Node process → same pid → same callerId → same sid (D2 sid-aggregation across peaks-* skill activations preserved).
1118
+ - Sub-agent dispatch: sub-agents inherit parent's `CLAUDE_CODE_SESSION_ID` but run in the same Node process → same pid → same callerId → same sid (D2 sid-aggregation across peaks-\* skill activations preserved).
499
1119
  - 6 new test cases in `tests/unit/services/session/binding-store.test.ts:151-242`:
500
1120
  - **Case A:** 2 instances, same `callerId`, different `pid` → 2 distinct sids
501
1121
  - **Case B:** 2 instances, same `callerId`, same `pid`, same outer-session-id → 1 sid (auto-resume)
@@ -533,12 +1153,12 @@ Each original file gets a sibling `import { ... } from './X-helpers.js'` + `expo
533
1153
 
534
1154
  ### Dogfood (ice-cola NestJS project, 2026-06-29-session-2e81dc)
535
1155
 
536
- | # | Scenario | Verdict | Evidence |
537
- |---|---|---|---|
538
- | 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 |
539
- | B | peaks doctor stale-binding scan | PASS | 0 stale bindings, ttl=300000ms, v2.16.0 schema surface intact |
540
- | 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 |
541
- | 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 |
1156
+ | # | Scenario | Verdict | Evidence |
1157
+ | --- | ----------------------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1158
+ | 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 |
1159
+ | B | peaks doctor stale-binding scan | PASS | 0 stale bindings, ttl=300000ms, v2.16.0 schema surface intact |
1160
+ | 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 |
1161
+ | 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 |
542
1162
 
543
1163
  **Dogfood verdict:** 3.5 / 4 pass; `recommend_v2.18.0_commit: true`.
544
1164
 
@@ -577,7 +1197,7 @@ The first v2.18.0 release deferred two open items to a redo slice; both are now
577
1197
  ### Feature — binding-store v2 sentinel (v2.16.0-alpha + v2.17.0)
578
1198
 
579
1199
  - `src/services/session/binding-store.ts` — zod-validated multi-instance binding schema with auto-migration from legacy `{ sessionId, createdAt, projectRoot }`. New shape: `{ ownerHint, pid, lastHeartbeat, scope, instances: Record<sid, InstanceRecord> }`.
580
- - `InstanceRecord` = `{ startedAt, roles: string[], callerId, lastHeartbeat }` — `roles` accumulates as the Claude instance activates multiple peaks-* skills (solos → rd → qa all share one sid).
1200
+ - `InstanceRecord` = `{ startedAt, roles: string[], callerId, lastHeartbeat }` — `roles` accumulates as the Claude instance activates multiple peaks-\* skills (solos → rd → qa all share one sid).
581
1201
  - Auto-resume: same callerId reuses the same sid; different callers get different sids in the same `instances` map.
582
1202
  - `dropStale(projectRoot, ttlMs)` for Doctor integration.
583
1203
 
@@ -589,7 +1209,7 @@ The first v2.18.0 release deferred two open items to a redo slice; both are now
589
1209
 
590
1210
  ### Feature — D2 Claude-instance-level hard-exclusive sid
591
1211
 
592
- - Same Claude instance keeps one sid across multiple peaks-* skill activations (peaks-code → peaks-rd → peaks-qa).
1212
+ - Same Claude instance keeps one sid across multiple peaks-\* skill activations (peaks-code → peaks-rd → peaks-qa).
593
1213
  - `/compact` resume: same outer-session-id reuses the same sid (post-compact-resume v2.11.0 D7 alignment).
594
1214
 
595
1215
  ### Feature — Doctor stale-binding scan (AC-10)
@@ -622,7 +1242,7 @@ The first v2.18.0 release deferred two open items to a redo slice; both are now
622
1242
 
623
1243
  Recommended scenarios before next release (see `peaks/_runtime/2026-06-29-session-88411f/txt/handoff-2026-06-29-v2-17-0.md` for details):
624
1244
 
625
- 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.
1245
+ 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.
626
1246
  2. **D1 conflict detection**: 2 instances both targeting the same source file. Verify each writes to its own session-scoped artifact directory.
627
1247
  3. **`/compact` resume**: run `peaks code <goal>`, `/compact`, continue. Verify same sid reused.
628
1248
  4. **Doctor stale**: kill -9 a Claude instance, run `peaks doctor`, verify stale binding listed + `--cleanup-stale` works.
@@ -738,11 +1358,13 @@ Recommended scenarios before next release (see `peaks/_runtime/2026-06-29-sessio
738
1358
  - **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.
739
1359
 
740
1360
  ### Test results
1361
+
741
1362
  - 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**.
742
1363
  - Existing code tests (mode-gate × 81, post-compact × 11) pass unchanged.
743
1364
  - Full unit suite baseline 4394 → 4680 passing (286 added). 0 new failures; pre-existing 7 unrelated failures unchanged.
744
1365
 
745
1366
  ### Out-of-scope
1367
+
746
1368
  - Push / tag / npm publish — full-auto boundary = commit only; the commit-boundary hard-floor now BLOCKS these in full-auto (was advisory). User must explicitly confirm via AskUserQuestion to proceed.
747
1369
  - `peaks hooks install` — slice is code-only. Hooks remain user-only.
748
1370
  - Cleaning the 88b27d session's stale presence on disk — slice ships the detection + auto-clear, does NOT proactively touch the live tree.
@@ -765,12 +1387,14 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
765
1387
  4 个 PRD + 4 个 service + 4 个 CLI 文件 + 4 个 test 文件,共 **17 个新命令 + 63 个新测试通过**。
766
1388
 
767
1389
  **G11 上游 tag 同步**(slice-2026-06-28-fork-cli):
1390
+
768
1391
  - 5 commands: `peaks fork status` / `upstream-check` / `sync-plan` / `sync` / `sync-verify`
769
1392
  - 持久化 `.peaks/fork-state.json` (baseline + history)
770
1393
  - `recommendStableTags` 过滤 pre-release 标签(alpha/beta/rc/dev/preview)
771
1394
  - 15 tests pass
772
1395
 
773
1396
  **G13 存量影响面扫描**(slice-2026-06-28-impact-cli):
1397
+
774
1398
  - 2 commands: `peaks impact scan --files <list>` / `peaks impact must-check --files <list>`
775
1399
  - 手写 glob 匹配(`**` / `*`),无 AST 依赖
776
1400
  - 10 个默认业务流(用户管理 / 权限校验 / 登录流程 / Skill 权限 / 数据列表 / API 网关 / DB schema / ...)
@@ -778,6 +1402,7 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
778
1402
  - 13 tests pass
779
1403
 
780
1404
  **G14 轻量回归 critical-paths**(slice-2026-06-28-smoke-cli):
1405
+
781
1406
  - 4 commands: `peaks smoke define` / `run` / `run-and-repair` / `add-path`
782
1407
  - 持久化 `.peaks/smoke-paths.json`
783
1408
  - 5 个 source (prd-business-scenario / boss-stated / historical-incident / impact-must-check / manual)
@@ -785,6 +1410,7 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
785
1410
  - 16 tests pass
786
1411
 
787
1412
  **G15 上线观察期状态机**(slice-2026-06-28-release-cli):
1413
+
788
1414
  - 7 commands: `peaks release plan` / `canary` / `promote` / `watch` / `done` / `rollback` / `hotfix`
789
1415
  - 8 阶段状态机: planned → canary-10 → canary-50 → promoted → watching → done
790
1416
  - side branches: → rolled-back (from any pre-done), → hotfixed (from watching)
@@ -795,6 +1421,7 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
795
1421
  **触动:** 新增 4 个 service / 4 个 CLI / 4 个 test 文件 = **12 个新文件**。CLI 注册全在 `src/cli/program.ts`,**不触动** transition gates / hard contracts / Karpathy 4 / sub-agent 协议 / mode-gate。
796
1422
 
797
1423
  **已知未实现**(后续切片):
1424
+
798
1425
  - 真实 git fetch + merge(G11)
799
1426
  - 真实 Playwright 路径执行(G14)
800
1427
  - 真实 k8s rollout / LB config / 监控集成(G15)
@@ -804,23 +1431,27 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
804
1431
  4 个 service + 4 个 CLI 文件 + 4 个 test 文件,共 **16 个新命令 + 40+ 个新测试通过**。所有 CLI 都遵循 12 Gaps 核心原则: user 在循环里 = 业务/产品审阅,不参与技术决策。
805
1432
 
806
1433
  **G3 prd 4 必填块**(slice-2026-06-28-prd-blocks):
1434
+
807
1435
  - `peaks prd check-blocks <rid>` — 验证 4 必填块(业务场景/边界/UI 装配/上游基线)+ 业务禁区子节
808
1436
  - 上游基线仅在 fork 项目上 required(检测 `.peaks/fork-state.json`)
809
1437
  - 8 tests pass
810
1438
 
811
1439
  **G4 user touchpoint classifier**(slice-2026-06-28-user-touchpoints):
1440
+
812
1441
  - 3 commands: `peaks code gate-classify` / `peaks code user-touchpoints` / `peaks code commit-boundary-actions`
813
1442
  - 14 个 Code gate 静态分类: business / tech / mode-selection / commit-boundary / commit-floor
814
1443
  - `userShouldReview`: always / business-only / never
815
1444
  - 7 tests pass
816
1445
 
817
1446
  **G1 slice 业务审阅**(slice-2026-06-28-slice-review):
1447
+
818
1448
  - 4 commands: `peaks slice review` / `score` / `accept` / `reject`
819
1449
  - 4 个默认 review item: business-match / boundary-cases / ui-assembly / mergeable
820
1450
  - 12 Gaps 阈值: avg >= 3 AND no item <= 2 → accepted
821
1451
  - 16 tests pass
822
1452
 
823
1453
  **G5 QA 业务视角验收**(slice-2026-06-28-qa-business):
1454
+
824
1455
  - 4 commands: `peaks qa business-review` / `business-score` / `business-accept` / `business-reject`
825
1456
  - 6 个默认 review item: business-flow / req-coverage / boundary-cases / ui-assembly / exception-tone / mergeable
826
1457
  - 同一阈值(avg >= 3, no item <= 2)
@@ -833,29 +1464,35 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
833
1464
  5 个 PRD 一次性收尾剩余 5 个 Gaps。每 G 一个 service + CLI + test,**10 个新文件 + 30+ 个新测试通过**。
834
1465
 
835
1466
  **G6 跨 slice 集成**(slice-2026-06-28-slice-integrate):
1467
+
836
1468
  - `peaks slice-integrate --slices <id1,id2,...>` — 验证多个 slice 的公共契约不冲突(重复 export / signature drift)
837
1469
  - 5 tests pass
838
1470
 
839
1471
  **G7 文档自动化**(slice-2026-06-28-doc):
1472
+
840
1473
  - `peaks doc generate-skill --name --from <commands-dir>` — 扫描 program.command() 自动生成 SKILL.md skeleton
841
1474
  - `peaks doc changelog-suggest --since <ref>` — git log 解析 conventional commit + 生成 [Unreleased] 块
842
1475
  - 6 tests pass
843
1476
 
844
1477
  **G8 存量代码 smell 扫描**(slice-2026-06-28-legacy):
1478
+
845
1479
  - `peaks legacy-detect --dir <path>` — TODO/FIXME/HACK/console.log/any-type/large-file/ts-ignore 启发式扫描
846
1480
  - 5 tests pass
847
1481
 
848
1482
  **G9 角色 RBAC**(slice-2026-06-28-role):
1483
+
849
1484
  - `peaks role list/add/grant/check` — 4 命令,持久化 .peaks/role-registry.json
850
1485
  - `--preset senior-fe` 一键预置 12 Gaps 高级前端权限
851
1486
  - 5 tests pass
852
1487
 
853
1488
  **G10 复杂度估算**(slice-2026-06-28-complexity):
1489
+
854
1490
  - `peaks complexity-estimate --files <list>` — 按 LOC + exports + async 估算 trivial/simple/complex
855
1491
  - 与 G2 字段(complexity tier)对齐,驱动 user-attended vs overnight 排程
856
1492
  - 5 tests pass
857
1493
 
858
1494
  **Dogfood 验证(ice-cola NestJS 项目):**
1495
+
859
1496
  - peaks legacy-detect (164 文件, smells=high, 406 个 any-type, 15 个 large-file)
860
1497
  - peaks role add senior-fe --preset senior-fe + role list + role check (granted/not)
861
1498
  - peaks complexity-estimate (auth files → complex, 41 lines + hasAsync)
@@ -880,6 +1517,7 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
880
1517
  - `tests/unit/services/context/tokenizer.test.ts:23` — `fetchedAt` 硬编码 `2026-06-21` 距今 7 天触发 `timeDecayScore 0.886 < 0.9` 期望,改 `new Date().toISOString()` 符合"fresh fetch"测试意图
881
1518
 
882
1519
  **测试结果:**
1520
+
883
1521
  - silent-warning-detector: 2 violations → 0
884
1522
  - `tests/unit/services/context/`: 49/50 → 50/50
885
1523
  - 全量 vitest 4819 tests:3 failed → 2 failed(剩下 2 个是并发 race condition,单跑 context 50/50 全过,pre-existing)
@@ -891,19 +1529,23 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
891
1529
  **PATCH bump from 2.14.1** (slice `2026-06-28-tilde-peaks-p3p4`). Closes P3 + P4 from `.peaks/memory/2026-06-28-tilde-peaks-inventory.md`.
892
1530
 
893
1531
  ### Cleanup
1532
+
894
1533
  - **`skills/peaks-companion/`** — REMOVED. Skill was dead: SKILL.md documented `peaks companion status/install/setup/start` but no CLI implementation existed (`src/services/companion/` not present, `peaks --help` had no companion entry). Empty `~/.peaks/companion/` directory is no longer expected to receive `cc-connect.log` writes.
895
1534
  - **`tests/unit/skills/peaks-companion.test.ts`** — REMOVED (9 cases). The companion skill-count assertion (19 → 18 skills) is now verified by `tests/unit/skills/skill-count.test.ts` (already covers the meta count, not companion specifically).
896
1535
  - **`.peaks/memory/peaks-companion-*.md`** — REMOVED (4 files: `cc-connect-dogfood-2026-06-15`, `qr-autoopen-2026-06-15`, `qr-inline-display-2026-06-15`, `watcher-ecs-url-config`). Historical dogfood records, no longer relevant.
897
1536
 
898
1537
  ### Refactor
1538
+
899
1539
  - **`~/.peaks/providers.json`** (NEW sidecar) — MiniMax provider config migrated from deprecated `~/.peaks/config.json.providers` to canonical `~/.peaks/providers.json` per `provider-service.ts` schema. The slim `config.json` (per `config-types.ts`) no longer carries the `providers` field.
900
1540
  - **MiniMax model field preserved** — `~/.peaks/providers.json.providers.minimax.model = "minimax-2.7"`; `peaks config provider minimax get/status` continue to report correctly via the back-compat fallback in `provider-service.ts`.
901
1541
 
902
1542
  ### Test results
1543
+
903
1544
  - `pnpm vitest run tests/unit/doctor.test.ts` — 50/50 pass
904
1545
  - `pnpm vitest run` full unit suite — `peaks-companion.test.ts` no longer runs; total cases drop from 4418 → 4409. Pre-existing failures (`doctor.test.ts` × 0, `tokenizer.test.ts` × 1, `35-checks-aggregate.test.ts` × 1) unchanged.
905
1546
 
906
1547
  ### Out-of-scope
1548
+
907
1549
  - Push / tag / npm publish — full-auto mode boundary = commit only; user-only.
908
1550
  - Re-implementing peaks-companion CLI — user chose delete over revive.
909
1551
  - Cleaning `~/.peaks/companion/` empty dir — left in place; harmless.
@@ -915,14 +1557,17 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
915
1557
  **PATCH bump from 2.14.0** (carry-forward from v2.13.3 AC-2 partial fix + npm 11.x config rename).
916
1558
 
917
1559
  ### Bug fixes
1560
+
918
1561
  - `scripts/prepublish-build.mjs` — use `execFileSync('pnpm', ['run', 'build'])` (no shell) with Windows fallback to `prepublish-build.ps1` (proven dogfood). Eliminates the v2.13.4 partial-fix `spawnSync cmd.exe ENOENT` on Node 22 + Windows native.
919
1562
  - `.npmrc` (NEW, repo-local template) — documents that `https_proxy` (underscore) is NO LONGER VALID in npm 11.x; use `https-proxy` or `proxy`. User-global `~/.npmrc` may still have `https_proxy`; npm 11.x warns, npm 12 will error.
920
1563
 
921
1564
  ### Test results
1565
+
922
1566
  - `tests/unit/scripts/prepublish-build.test.ts` (NEW, 6 cases) — covers execFile happy path + Windows ps1 fallback + error propagation + version validation + ENOENT regression
923
1567
  - `node scripts/prepublish-build.mjs` end-to-end: `[prepublish-build] build OK` exit 0 (verified on this Windows session)
924
1568
 
925
1569
  ### Out-of-scope
1570
+
926
1571
  - Do NOT modify user-global `~/.npmrc` (user-only boundary); user must run `npm config delete https_proxy` themselves if they want to silence the warning before npm 12.
927
1572
 
928
1573
  ---
@@ -1043,7 +1688,7 @@ The four defects all stem from the v2.13.0 two-axis convention landing debt: the
1043
1688
 
1044
1689
  **PATCH bump from 2.13.2** (slice `2026-06-27-verdict-aggregator-v2-12-debt`, red-line scope 7 source files + 3 test files modified + 3 new scripts + 1 package.json hook).
1045
1690
 
1046
- 2.13.2 dogfood surfaced 4 bugs that all stem from v2.12.0 envelope-schema落地 debt: the v2.12.0 audit artifacts (`audit/security.md`, `audit/perf.md`) are YAML-frontmatter + markdown, but v2.13.2's `parseSecurityEnvelope` / `parsePerfEnvelope` used `JSON.parse` (which is the wrong shape). v2.13.3 also fixes a cross-version publish-pipeline issue (`bin/peaks.js` was shipping a Jun 13 stale dist because `prepublishOnly` was never wired) and adds a soft-block-warning surface in the CLI so users can see v2.13.2's `mut-report-missing-deprecated-in-v2.14.0` warning instead of having it silently downgraded in service-layer.
1691
+ 2.13.2 dogfood surfaced 4 bugs that all stem from v2.12.0 envelope-schema 落地 debt: the v2.12.0 audit artifacts (`audit/security.md`, `audit/perf.md`) are YAML-frontmatter + markdown, but v2.13.2's `parseSecurityEnvelope` / `parsePerfEnvelope` used `JSON.parse` (which is the wrong shape). v2.13.3 also fixes a cross-version publish-pipeline issue (`bin/peaks.js` was shipping a Jun 13 stale dist because `prepublishOnly` was never wired) and adds a soft-block-warning surface in the CLI so users can see v2.13.2's `mut-report-missing-deprecated-in-v2.14.0` warning instead of having it silently downgraded in service-layer.
1047
1692
 
1048
1693
  ### Bug fixes
1049
1694
 
@@ -1079,9 +1724,9 @@ The four defects all stem from the v2.13.0 two-axis convention landing debt: the
1079
1724
 
1080
1725
  ### Multi-CC commit boundaries
1081
1726
 
1082
- | Commit tag | Scope |
1083
- |---|---|
1084
- | 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 |
1727
+ | Commit tag | Scope |
1728
+ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1729
+ | 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 |
1085
1730
 
1086
1731
  ### Verified (peaks code dogfood + QA on this session)
1087
1732
 
@@ -1157,9 +1802,9 @@ v2.13.1 shipped with a BLOCKER bug found via post-release dogfood: `aggregateVer
1157
1802
 
1158
1803
  ### Multi-CC commit boundaries
1159
1804
 
1160
- | Commit tag | Scope |
1161
- |---|---|
1162
- | 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 |
1805
+ | Commit tag | Scope |
1806
+ | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1807
+ | 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 |
1163
1808
 
1164
1809
  ### Verified (peaks code dogfood + QA on this session)
1165
1810
 
@@ -1221,9 +1866,9 @@ peaks-code previously received 5 heterogeneous signals (security-audit, perf-aud
1221
1866
 
1222
1867
  ### Multi-CC commit boundaries
1223
1868
 
1224
- | Commit tag | Scope |
1225
- |---|---|
1226
- | 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 |
1869
+ | Commit tag | Scope |
1870
+ | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1871
+ | 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 |
1227
1872
 
1228
1873
  ### Verified (peaks code dogfood on this session)
1229
1874
 
@@ -1287,10 +1932,10 @@ Adapter-driven protocol (no hard-coded IDE names): `IdeAdapter.compact?: IdeComp
1287
1932
 
1288
1933
  ### Multi-CC commit boundaries
1289
1934
 
1290
- | Commit tag | Scope |
1291
- |---|---|
1935
+ | Commit tag | Scope |
1936
+ | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1292
1937
  | 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 |
1293
- | `a8b9804` | In-session dogfood limitation documented (current ad-hoc Claude Code session cannot be externally compacted — reserved for follow-up PreToolUse-hook slice) |
1938
+ | `a8b9804` | In-session dogfood limitation documented (current ad-hoc Claude Code session cannot be externally compacted — reserved for follow-up PreToolUse-hook slice) |
1294
1939
 
1295
1940
  ### Verified (peaks code dogfood on this session)
1296
1941
 
@@ -1301,7 +1946,7 @@ Adapter-driven protocol (no hard-coded IDE names): `IdeAdapter.compact?: IdeComp
1301
1946
  - `post-compact-detect` after pre-compact: `shouldAutoResume: true`, `reason: post-compact-match` ✓
1302
1947
  - Trae IDE (no `compact` profile): `ratio: 0` + `source: conservative-fallback` + `below-threshold` (no auto-fire on missing signal — by design) ✓
1303
1948
  - `pnpm tsc --noEmit`: clean
1304
- - `pnpm vitest run` (full suite): `4317 / 4317` pass + 17 skipped (2 pre-existing baseline failures on session-checkpoint + _archive-removal-guard unchanged)
1949
+ - `pnpm vitest run` (full suite): `4317 / 4317` pass + 17 skipped (2 pre-existing baseline failures on session-checkpoint + \_archive-removal-guard unchanged)
1305
1950
 
1306
1951
  ### Out-of-scope (NOT changed)
1307
1952
 
@@ -1358,17 +2003,17 @@ v2.13.0 hard-deletes the legacy paths.
1358
2003
 
1359
2004
  ### Multi-CC commit boundaries
1360
2005
 
1361
- | Group | Tiers | Commit tag | Scope |
1362
- |---|---|---|---|
1363
- | A | 1+2+3 | v2.12.0-alpha.1 | Templates + new skills (fa082f5) |
1364
- | B | 4+5 | v2.12.0-alpha.2 | 5→3 fanout collapse + prereq migration (6485f1c) |
1365
- | C | 6 | v2.12.0-alpha.3 | peaks-txt sediment extension (ab2757b) |
1366
- | D | 7 | v2.12.0-alpha.4 | fan-out SKILL.md updates (b6c4fae) |
1367
- | E | 8+9 | v2.12.0 (release) | Decision records + migration + CHANGELOG + version bump (this commit) |
2006
+ | Group | Tiers | Commit tag | Scope |
2007
+ | ----- | ----- | ----------------- | --------------------------------------------------------------------- |
2008
+ | A | 1+2+3 | v2.12.0-alpha.1 | Templates + new skills (fa082f5) |
2009
+ | B | 4+5 | v2.12.0-alpha.2 | 5→3 fanout collapse + prereq migration (6485f1c) |
2010
+ | C | 6 | v2.12.0-alpha.3 | peaks-txt sediment extension (ab2757b) |
2011
+ | D | 7 | v2.12.0-alpha.4 | fan-out SKILL.md updates (b6c4fae) |
2012
+ | E | 8+9 | v2.12.0 (release) | Decision records + migration + CHANGELOG + version bump (this commit) |
1368
2013
 
1369
2014
  ### Zero regression (verified per group)
1370
2015
 
1371
- Each Group A→D ran the full RD→QA loop independently. Group C final QA: 14/14 sediment tests pass + 39/39 prd service tests pass; 9 pre-existing baseline failures unchanged (doctor / _archive-removal-guard / request-commands / observability / session-checkpoint / tech-service / workflow-autonomous-resume / jsonl-store / 35-checks-aggregate — all unrelated to v2.12.0). Group D final QA: 35/35 fan-out SKILL.md contract tests pass; same 9 pre-existing baseline failures.
2016
+ Each Group A→D ran the full RD→QA loop independently. Group C final QA: 14/14 sediment tests pass + 39/39 prd service tests pass; 9 pre-existing baseline failures unchanged (doctor / \_archive-removal-guard / request-commands / observability / session-checkpoint / tech-service / workflow-autonomous-resume / jsonl-store / 35-checks-aggregate — all unrelated to v2.12.0). Group D final QA: 35/35 fan-out SKILL.md contract tests pass; same 9 pre-existing baseline failures.
1372
2017
 
1373
2018
  ### Out-of-scope (NOT changed)
1374
2019
 
@@ -1549,6 +2194,7 @@ LLM was creating top-level `.peaks/_runtime/<change-id>/` siblings of `.peaks/_r
1549
2194
  - Bumps `package.json#version` from 2.9.1 to 2.9.2
1550
2195
 
1551
2196
  **Pre-existing violations preserved as-is** (intentional historical/forbidden documentation, all explicitly labeled):
2197
+
1552
2198
  - 6 ban-explanation memory files under `.peaks/memory/` (slice 005 / 2.8.3 / 2.7.1 lessons)
1553
2199
  - 28 historic session files under `.peaks/_runtime/2026-06-*/`
1554
2200
  - 5 historic dispatch records under `.peaks/_sub_agents/`
@@ -1645,37 +2291,37 @@ the four-step recipe; no data is lost.
1645
2291
  final root-out of a 2.8.0-era orphan (`.peaks/2026-06-22-cc-connect-orphan-cleanup/`,
1646
2292
  4 files, 28 KB, untracked) and pins the rule across FOUR layers so a
1647
2293
  regression cannot survive:
1648
- 1. **`.gitignore` fnmatch rule** —
1649
- `.peaks/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]-*/` blocks any
1650
- future untracked date-prefix sibling at `.peaks/_runtime/<seg>/`. Path-anchored
1651
- so it does not over-match (`.peaks/_runtime/<date>/` is still ignored
1652
- by the existing `.peaks/_runtime/` rule, not this one).
1653
- 2. **Vitest guard** at
1654
- `tests/unit/workspace/top-level-change-id-guard.test.ts` (8 cases)
1655
- pins the gitignore rule literal, asserts fnmatch matches a synthetic
1656
- candidate, asserts it does NOT match `.peaks/_runtime/-nested`
1657
- candidates, scans the live working tree for orphan date-prefix
1658
- siblings, scans `git ls-files` for tracked escapes, asserts both
1659
- `CLAUDE.md` and `.peaks/PROJECT.md` carry the ban wording, AND
1660
- asserts the CLI help text (`init-command.ts`) teaches the
1661
- `.peaks/_runtime/current-change` binding path + the four
1662
- migration verbs (inspect / move / delete / unlink / re-run).
1663
- 3. **Source-code redirect** —
1664
- `src/shared/change-id.ts#setCurrentChangeId` now defaults to
1665
- `{ form: 'file' }` (was `'symlink'`); the file form writes ONLY
1666
- `.peaks/_runtime/current-change` and never creates
1667
- `.peaks/_runtime/<changeId>/`. The legacy `'symlink'` form is kept for
1668
- back-compat reads but is no longer written by `peaks workspace init`.
1669
- `src/services/workspace/workspace-service.ts#initWorkspace`
1670
- pre-flights the existence of `.peaks/_runtime/<changeId>/` and throws
1671
- `LegacyChangeIdSiblingError` if found.
1672
- 4. **CLI help-text guard** — `src/cli/commands/workspace/init-command.ts`
1673
- rewrites the `init` command description and `--change-id` option
1674
- description so an LLM reading `peaks workspace init --help` is
1675
- taught the correct path (`.peaks/_runtime/current-change`) instead
1676
- of the legacy `.peaks/_runtime/<change-id>/` sibling dir. A new catch block
1677
- surfaces `LegacyChangeIdSiblingError` with the 4-step migration
1678
- recipe in the JSON envelope.
2294
+ 1. **`.gitignore` fnmatch rule** —
2295
+ `.peaks/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]-*/` blocks any
2296
+ future untracked date-prefix sibling at `.peaks/_runtime/<seg>/`. Path-anchored
2297
+ so it does not over-match (`.peaks/_runtime/<date>/` is still ignored
2298
+ by the existing `.peaks/_runtime/` rule, not this one).
2299
+ 2. **Vitest guard** at
2300
+ `tests/unit/workspace/top-level-change-id-guard.test.ts` (8 cases)
2301
+ pins the gitignore rule literal, asserts fnmatch matches a synthetic
2302
+ candidate, asserts it does NOT match `.peaks/_runtime/-nested`
2303
+ candidates, scans the live working tree for orphan date-prefix
2304
+ siblings, scans `git ls-files` for tracked escapes, asserts both
2305
+ `CLAUDE.md` and `.peaks/PROJECT.md` carry the ban wording, AND
2306
+ asserts the CLI help text (`init-command.ts`) teaches the
2307
+ `.peaks/_runtime/current-change` binding path + the four
2308
+ migration verbs (inspect / move / delete / unlink / re-run).
2309
+ 3. **Source-code redirect** —
2310
+ `src/shared/change-id.ts#setCurrentChangeId` now defaults to
2311
+ `{ form: 'file' }` (was `'symlink'`); the file form writes ONLY
2312
+ `.peaks/_runtime/current-change` and never creates
2313
+ `.peaks/_runtime/<changeId>/`. The legacy `'symlink'` form is kept for
2314
+ back-compat reads but is no longer written by `peaks workspace init`.
2315
+ `src/services/workspace/workspace-service.ts#initWorkspace`
2316
+ pre-flights the existence of `.peaks/_runtime/<changeId>/` and throws
2317
+ `LegacyChangeIdSiblingError` if found.
2318
+ 4. **CLI help-text guard** — `src/cli/commands/workspace/init-command.ts`
2319
+ rewrites the `init` command description and `--change-id` option
2320
+ description so an LLM reading `peaks workspace init --help` is
2321
+ taught the correct path (`.peaks/_runtime/current-change`) instead
2322
+ of the legacy `.peaks/_runtime/<change-id>/` sibling dir. A new catch block
2323
+ surfaces `LegacyChangeIdSiblingError` with the 4-step migration
2324
+ recipe in the JSON envelope.
1679
2325
  - **`CLI_VERSION`** sync bumped 2.8.2 → 2.8.3 (regenerated via
1680
2326
  `scripts/sync-version.mjs` from `package.json#version`).
1681
2327
 
@@ -1801,7 +2447,7 @@ are unchanged by this release), `pnpm build` clean.
1801
2447
  `src/services/companion/*` module + `src/cli/commands/companion.ts`
1802
2448
  CLI + 14 `tests/unit/companion/*` test files are removed
1803
2449
  (~7,700 lines deleted, 0 added). The `peaks companion install|setup|
1804
- start|stop|bind|status|restart|verify|token|qr` command tree is gone
2450
+ start|stop|bind|status|restart|verify|token|qr` command tree is gone
1805
2451
  along with the `peaks scan companion-binary` sub-command and the
1806
2452
  `capability:companion-binary-resolution` doctor check. Companion
1807
2453
  types (`CompanionConfig`, `CompanionWeixinConfig`, `CompanionChannel`,
@@ -1829,7 +2475,7 @@ are unchanged by this release), `pnpm build` clean.
1829
2475
  - **`@alibaba-group/open-code-review` is now a peer dependency** —
1830
2476
  moved from `optionalDependencies` to `peerDependencies` with
1831
2477
  `peerDependenciesMeta."@alibaba-group/open-code-review".optional =
1832
- true`. The peer hint lets npm skip the optional resolution entirely
2478
+ true`. The peer hint lets npm skip the optional resolution entirely
1833
2479
  during global install; users who want second-opinion reviews via
1834
2480
  `peaks code-review run-ocr` install it manually with
1835
2481
  `npm i -g @alibaba-group/open-code-review`. Install hint copy in
@@ -1861,8 +2507,8 @@ are unchanged by this release), `pnpm build` clean.
1861
2507
  - **Defense-in-depth comment cites H6 verbatim (Plan 5 R1-W3 MED)** —
1862
2508
  `src/services/rd/impl.ts` defense-in-depth check now cites spec H6
1863
2509
  (CLI 计算裁决) directly. The accompanying `docs/superpowers/specs/
1864
- 2026-06-21-context-audit-redesign-design.md` gained a new §4.3
1865
- *战术审计* subsection that consolidates §3.2 / §3.3 / H6 / H8 / Phase 3
2510
+ 2026-06-21-context-audit-redesign-design.md` gained a new §4.3
2511
+ _战术审计_ subsection that consolidates §3.2 / §3.3 / H6 / H8 / Phase 3
1866
2512
  AC-2 into a single canonical anchor (previous code references to
1867
2513
  `§4.2` updated to `§4.3`).
1868
2514
 
@@ -1879,7 +2525,7 @@ are unchanged by this release), `pnpm build` clean.
1879
2525
  is in the test name, not just the body.
1880
2526
 
1881
2527
  - **Atomic-write crash test (Plan 5 R1-W5 LOW)** — new test
1882
- *unlinks .tmp when rename throws* pins the catch→unlink fallback in
2528
+ _unlinks .tmp when rename throws_ pins the catch→unlink fallback in
1883
2529
  `writeImpl` (EISDIR-triggered real-rename failure). Mutation probe
1884
2530
  KILLED: commenting out the unlink makes the test fail at the
1885
2531
  `existsSync(tmp)` assertion.
@@ -1981,7 +2627,7 @@ are unchanged by this release), `pnpm build` clean.
1981
2627
  `C:\Users\name\.trae\agents` and a Mac user gets
1982
2628
  `/Users/name/.trae/agents`. No hardcoded `/Users/...` or `C:\...` in
1983
2629
  any 5-IDE `awaitBatch` path. The 4 new IDE paths (`trae / trae-cn /
1984
- codex / cursor`) follow the same discipline.
2630
+ codex / cursor`) follow the same discipline.
1985
2631
  - **`runDag` cancel-on-fail correctness (slice 1.2.c)** — when any leaf
1986
2632
  fails, in-flight sub-agents in the same batch receive a cancel signal
1987
2633
  at the envelope level; the orchestrator no longer waits for them to
@@ -2072,11 +2718,11 @@ are unchanged by this release), `pnpm build` clean.
2072
2718
  4. `scanExportsInFile` now matches `export default function name()`
2073
2719
  and `export default class Name`; `importedNameCount` now treats
2074
2720
  re-exports (`export { x } from './y'`, `export type { T } from
2075
- './y'`) as consumer references.
2076
- Bonus: `OrphanScanOptions.baseRef` lets the scan diff against an
2077
- arbitrary git ref (default: `HEAD`) for branch-vs-main reviews.
2721
+ './y'`) as consumer references.
2722
+ Bonus: `OrphanScanOptions.baseRef` lets the scan diff against an
2723
+ arbitrary git ref (default: `HEAD`) for branch-vs-main reviews.
2078
2724
  - **karpathy-service code-fence skip (Slice 2.6.1.B)** — `peaks scan
2079
- karpathy` no longer flags anti-pattern phrases (TODO, "should be
2725
+ karpathy` no longer flags anti-pattern phrases (TODO, "should be
2080
2726
  fine", "maybe", "probably") when they appear inside fenced markdown
2081
2727
  code blocks. Illustrative code snippets were eroding trust in the
2082
2728
  structural scanner. The 4 guideline-marker tests
@@ -2099,7 +2745,7 @@ are unchanged by this release), `pnpm build` clean.
2099
2745
  byte-identical.
2100
2746
  - **KARPATHY_REVIEW heading-anchored gate (Slice 2.6.1.F)** — the L3
2101
2747
  LOW (the 4 guideline `mustContain` substring markers could be
2102
- spoofed by any file that just *mentioned* the marker names as
2748
+ spoofed by any file that just _mentioned_ the marker names as
2103
2749
  prose) is fixed by a new `headingMustContain: string[]` field on
2104
2750
  `ArtifactPrerequisite`. `KARPATHY_REVIEW` now requires each of
2105
2751
  the 4 guidelines to appear as an actual markdown heading
@@ -2116,8 +2762,7 @@ are unchanged by this release), `pnpm build` clean.
2116
2762
 
2117
2763
  - **L2-install dogfood verification (Slice 2.6.1.D)** — confirmed
2118
2764
  end-to-end on a temp HOME that the 2.6.0 tarball's `postinstall`
2119
- creates `~/.claude/agents/karpathy-reviewer.md` (15.4 KB, mode
2120
- 0600) and the matching `.peaks-managed` marker (245 bytes, JSON
2765
+ creates `~/.claude/agents/karpathy-reviewer.md` (15.4 KB, mode 0600) and the matching `.peaks-managed` marker (245 bytes, JSON
2121
2766
  with `version`, `kind`, `agentName`, `sourcePath`, `contentSha256`).
2122
2767
  The 8-platform skill fan-out also confirmed (codex, cursor, trae,
2123
2768
  trae-cn, qoder, tongyi-lingma, hermes, openclaw). After Slice E,
@@ -2147,7 +2792,7 @@ are unchanged by this release), `pnpm build` clean.
2147
2792
  title-case section markers (Think Before Coding / Simplicity First /
2148
2793
  Surgical Changes / Goal-Driven Execution). CLI error code
2149
2794
  `PREREQUISITES_MISSING`. Escape hatch: `peaks request transition
2150
- --allow-incomplete --confirm` (assisted mode).
2795
+ --allow-incomplete --confirm` (assisted mode).
2151
2796
  - **Karpathy prompt-injection across the full RD surface** (slice 1) —
2152
2797
  4-layer guard: SKILL.md body + 3 reference docs
2153
2798
  (`mandatory-tech-doc.md`, `rd-fanout-contracts.md`,
@@ -2169,7 +2814,7 @@ are unchanged by this release), `pnpm build` clean.
2169
2814
  endpoints / components / stores / mocks in the consumer project
2170
2815
  before any new code is written. `--project --format --scope --max-per-kind`
2171
2816
  options; output feeds the tech-doc's `## Existing API or Component
2172
- Inventory` section. New service
2817
+ Inventory` section. New service
2173
2818
  `src/services/scan/api-surface-service.ts` (~280 lines).
2174
2819
  - **`peaks scan orphan` CLI** (slice 4) — 4-kind orphan detection
2175
2820
  (exportOrphan / importOrphan / cliSubcommandOrphan /
@@ -2286,8 +2931,8 @@ are unchanged by this release), `pnpm build` clean.
2286
2931
  `references/checkpoint-resume.md` + `references/periodic-checkpoint.md`, but
2287
2932
  SKILL.md body only mentioned them in a single line. New Claude Code sessions
2288
2933
  that load SKILL.md never learned the optimization existed. `### Peaks-Loop
2289
- Step 0.75: Resume from checkpoint` and `### Peaks-Loop Step N: Periodic
2290
- checkpoint` headings are now in the body (≥ 5 lines each), with explicit
2934
+ Step 0.75: Resume from checkpoint` and `### Peaks-Loop Step N: Periodic
2935
+ checkpoint` headings are now in the body (≥ 5 lines each), with explicit
2291
2936
  `peaks session checkpoint` / `peaks session resume` CLI mentions and
2292
2937
  reference-doc pointers. Byte cap bumped 22K → 24K (precedent: 18K → 20K → 22K).
2293
2938
  - **`peaks test <pattern...>` CLI with smart cache** (sub-fix B) — new CLI
@@ -2396,7 +3041,7 @@ are unchanged by this release), `pnpm build` clean.
2396
3041
  (~/.claude/skills + ~/.claude/output-styles)" and writes to
2397
3042
  `~/.claude/skills/`.
2398
3043
  - Byte-stability: `git diff
2399
- src/services/ide/adapters/{claude-code,trae}-adapter.ts` returns
3044
+ src/services/ide/adapters/{claude-code,trae}-adapter.ts` returns
2400
3045
  empty (AC8 / AC15 ✓). Dispatch chokepoints `resource-profile.ts` /
2401
3046
  `ide-aware-standards-service.ts` / `install-skills.mjs` untouched
2402
3047
  (R6 inverse rule ✓).
@@ -2491,6 +3136,7 @@ are unchanged by this release), `pnpm build` clean.
2491
3136
  registered SOP gate.
2492
3137
 
2493
3138
  Concrete changes:
3139
+
2494
3140
  - `src/services/workspace/claude-settings-template.ts` — deleted
2495
3141
  `PEAKS_SUBCOMMAND_ALLOWLIST`, `buildBashHookCommand()`. The
2496
3142
  template now emits only the `Write|Edit|MultiEdit` matcher.
@@ -2543,11 +3189,12 @@ Full suite: **2957 passed, 12 skipped, 0 failed**.
2543
3189
  - **`headroom-ai` preferences resolver** — `src/services/context/headroom-prefs.ts` with
2544
3190
  `resolveHeadroomOptions` and `shouldCompressResults` (pure functions, no IO). Sub-agent
2545
3191
  dispatch now reads `loadPreferences().headroom` and:
2546
- - Hard-blocks `--use-headroom` when `headroom.enabled = false` (new error code
2547
- `HEADROOM_DISABLED_BY_PREFERENCE`, exit 1).
2548
- - Respects `--headroom-mode <m>` CLI override > `perTouchpoint.subAgentDispatch` >
2549
- `defaultMode` precedence.
2550
- - Falls back to G7 metadata-only on any preferences load failure (no dispatch break).
3192
+
3193
+ - Hard-blocks `--use-headroom` when `headroom.enabled = false` (new error code
3194
+ `HEADROOM_DISABLED_BY_PREFERENCE`, exit 1).
3195
+ - Respects `--headroom-mode <m>` CLI override > `perTouchpoint.subAgentDispatch` >
3196
+ `defaultMode` precedence.
3197
+ - Falls back to G7 metadata-only on any preferences load failure (no dispatch break).
2551
3198
 
2552
3199
  - **New preferences fields** — `headroom.perTouchpoint.subAgentDispatch` and
2553
3200
  `headroom.compressMinBytes` (default 4096). Shallow-merge on existing
@@ -2677,7 +3324,7 @@ Full suite: **2957 passed, 12 skipped, 0 failed**.
2677
3324
 
2678
3325
  - The "one rid = one feature" pattern. From 2.1.1 onward, the
2679
3326
  recommended workflow is: PRD -> `peaks slice decompose` -> `peaks
2680
- slice pick` (interactive) -> `peaks slice plan` -> N child rids.
3327
+ slice pick` (interactive) -> `peaks slice plan` -> N child rids.
2681
3328
  Legacy `--type`-based fan-out still works as a fallback for rids
2682
3329
  that pre-date the algorithm.
2683
3330
 
@@ -2755,10 +3402,10 @@ Full suite: **2957 passed, 12 skipped, 0 failed**.
2755
3402
  (canonical home: proxy-service.ts).
2756
3403
  - `~/.peaks/workspaces.json` — registered workspaces + current-workspace
2757
3404
  pointer (canonical home: workspace-state-service.ts).
2758
- On-disk legacy bloat is auto-detected and promoted to the correct
2759
- sidecar on next CLI invocation; the slim `config.json` is then
2760
- rewritten. The migration is **idempotent and silent** — no user
2761
- action required.
3405
+ On-disk legacy bloat is auto-detected and promoted to the correct
3406
+ sidecar on next CLI invocation; the slim `config.json` is then
3407
+ rewritten. The migration is **idempotent and silent** — no user
3408
+ action required.
2762
3409
  - **`peaks config migrate --apply` distributes legacy fields across
2763
3410
  their canonical homes.** `economyMode` / `swarmMode` continue to
2764
3411
  forward to `<project>/.peaks/preferences.json`; `providers` /
@@ -2777,9 +3424,9 @@ Full suite: **2957 passed, 12 skipped, 0 failed**.
2777
3424
 
2778
3425
  - **New `src/services/config/sidecar-store.ts`** — path helpers
2779
3426
  (`providersConfigPath()`, `proxyConfigPath()`, `workspacesConfigPath()`)
2780
- + generic `readSidecarJson<T>` / `writeSidecarJson` with the same
2781
- hardened-fs guarantees as `config-safety.ts` (symlink / hardlink
2782
- guards, atomic temp-file rename, 0o600 mode).
3427
+ - generic `readSidecarJson<T>` / `writeSidecarJson` with the same
3428
+ hardened-fs guarantees as `config-safety.ts` (symlink / hardlink
3429
+ guards, atomic temp-file rename, 0o600 mode).
2783
3430
  - **New `src/services/config/provider-service.ts`** —
2784
3431
  `getMiniMaxProviderConfig()`, `setMiniMaxProviderConfig()`,
2785
3432
  `getMiniMaxProviderStatus()`, `getAllProviders()`,
@@ -2898,10 +3545,10 @@ Full suite: **2957 passed, 12 skipped, 0 failed**.
2898
3545
  call; a missing or anonymous caller-id is rejected.
2899
3546
  3. **Mandatory `--reason`** — the CLI rejects `--reason ""`; the
2900
3547
  reason is persisted into the slice record for the retrospective.
2901
- Three rules, not one: each rule is independently fail-closed, so a
2902
- misuse in any one of them blocks the bypass. The classifier is the
2903
- pure function `canSkipSlice(slice, callerId, reason)` so the rule
2904
- set is testable in isolation.
3548
+ Three rules, not one: each rule is independently fail-closed, so a
3549
+ misuse in any one of them blocks the bypass. The classifier is the
3550
+ pure function `canSkipSlice(slice, callerId, reason)` so the rule
3551
+ set is testable in isolation.
2905
3552
  - **`peaks workflow verify-pipeline --gate-skipped`** — reporting
2906
3553
  flag that surfaces slices that completed via the skip classifier
2907
3554
  during a pipeline run. The default `verify-pipeline` output hides
@@ -2938,27 +3585,29 @@ Full suite: **2957 passed, 12 skipped, 0 failed**.
2938
3585
  bash saw literal `const c=process.argv[1]...` and tripped
2939
3586
  `syntax error near unexpected token`. Net effect on every 2.0.3
2940
3587
  install on Windows + macOS + Linux:
3588
+
2941
3589
  - Every Bash tool call (peaks CLI or otherwise) was rejected.
2942
3590
  - Every Write / Edit / MultiEdit call was rejected.
2943
3591
  - The [Fact-Forcing Gate] bypass that `peaks workspace init` was
2944
3592
  supposed to install was therefore self-defeating — the bypass
2945
3593
  broke the gate itself, and the gate could not be reached to fix
2946
3594
  it.
2947
- Recovery required the user to delete `.claude/settings.local.json`
2948
- manually (losing the bypass permanently) or hand-patch the
2949
- `command` field (drift vs the template).
2950
- The fix wraps both builders' JS payloads in a real shell-evaluable
2951
- `node -e "<js>"` form via a new `wrapAsNodeOneLiner` helper in
2952
- `src/services/workspace/claude-settings-template.ts`. Inner `"`
2953
- are escaped to `\"`; backslashes pass through unchanged so regex
2954
- literals like `/\.peaks\//` still match correctly. `process.argv[1]`
2955
- is the correct slot under `-e` per Node.js docs
2956
- (https://nodejs.org/api/process.html#processargv) — consistent
2957
- across Windows, macOS, and Linux. The docstring is reconciled
2958
- with the implementation (the previous docstring incorrectly said
2959
- `argv[2]`).
3595
+ Recovery required the user to delete `.claude/settings.local.json`
3596
+ manually (losing the bypass permanently) or hand-patch the
3597
+ `command` field (drift vs the template).
3598
+ The fix wraps both builders' JS payloads in a real shell-evaluable
3599
+ `node -e "<js>"` form via a new `wrapAsNodeOneLiner` helper in
3600
+ `src/services/workspace/claude-settings-template.ts`. Inner `"`
3601
+ are escaped to `\"`; backslashes pass through unchanged so regex
3602
+ literals like `/\.peaks\//` still match correctly. `process.argv[1]`
3603
+ is the correct slot under `-e` per Node.js docs
3604
+ (https://nodejs.org/api/process.html#processargv) — consistent
3605
+ across Windows, macOS, and Linux. The docstring is reconciled
3606
+ with the implementation (the previous docstring incorrectly said
3607
+ `argv[2]`).
2960
3608
 
2961
3609
  Regression tests cover:
3610
+
2962
3611
  - `buildBashHookCommand()` and `buildWriteHookCommand()` return
2963
3612
  `node -e "..."` form.
2964
3613
  - Inner `"` are escaped to `\"`.
@@ -3073,6 +3722,7 @@ config surface.
3073
3722
  > `optionalDependencies`; everything else in this section
3074
3723
  > (env-var injection, `config-template` CLI, `missingKeys`,
3075
3724
  > source-of-truth under `peaksConfig.ocr.llm`) is unchanged.
3725
+
3076
3726
  - **`detectOcr` / `runOcrReview` no longer read `~/.opencodereview/config.json`.**
3077
3727
  The source of truth is `peaksConfig.ocr.llm` (parsed by
3078
3728
  `getOcrLlmConfig()` in `config-service.ts`). Missing fields surface
@@ -3134,7 +3784,7 @@ subprocess ignores it when peaks-loop's env vars are present).
3134
3784
  supported IDE platforms in one command.
3135
3785
 
3136
3786
  - **`peaks audit red-lines`** — L2 catalog audit (P0/P1/P2-a/P2-b
3137
- enforcers) for skills/SKILL.md, references/*.md, and the agent shield.
3787
+ enforcers) for skills/SKILL.md, references/\*.md, and the agent shield.
3138
3788
 
3139
3789
  - **`peaks agent run`** — ECC 64 agents soft-optional integration
3140
3790
  (spec §7.2). When the L3 stack is installed, peaks delegates to it;
@@ -3169,6 +3819,7 @@ subprocess ignores it when peaks-loop's env vars are present).
3169
3819
  expands globs on disk before spawning.
3170
3820
 
3171
3821
  - **(2026-06-12) Three bugs surfaced by real-world ice-cola dogfood:**
3822
+
3172
3823
  - memory-extract was called without `--apply` → always dry-ran, never
3173
3824
  actually wrote.
3174
3825
  - `.claude/skills/**/SKILL.md` (the standard Claude-Code consumer
@@ -3292,7 +3943,7 @@ call-to-action text differ.
3292
3943
  Chinese tagline: `peaks-loop: 跨 AI IDE 的工程门禁与编排`).
3293
3944
  - `README-en.md` synced to mirror the new layout (typing animation
3294
3945
  uses the English tagline: `peaks-loop: cross-AI-IDE engineering
3295
- gates & orchestration`).
3946
+ gates & orchestration`).
3296
3947
  - Card anchors renamed to ASCII-friendly slugs on the English file
3297
3948
  (`30-seconds-to-running`, `5-minute-onboarding`, `11-skills-in-the-family`,
3298
3949
  `killer-feature-un-bypassable-gates`) so the README renders