peaks-loop 4.1.0 → 4.1.2

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 (811) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/README-en.md +4 -4
  3. package/README.md +25 -4
  4. package/bin/node-floor.mjs +59 -0
  5. package/bin/peaks.js +13 -0
  6. package/config/eslint/tsconfig.lint.json +2 -1
  7. package/dist/cli/cli-helpers.d.ts +0 -1
  8. package/dist/cli/cli-helpers.js +0 -1
  9. package/dist/cli/commands/_cli-error-envelope.js +0 -3
  10. package/dist/cli/commands/_register.js +2 -2
  11. package/dist/cli/commands/adapter-commands-s2a.d.ts +0 -1
  12. package/dist/cli/commands/adapter-commands.d.ts +0 -1
  13. package/dist/cli/commands/api-diff-commands.d.ts +0 -1
  14. package/dist/cli/commands/api-diff-commands.js +0 -1
  15. package/dist/cli/commands/audit-commands.js +21 -24
  16. package/dist/cli/commands/autonomous-swarm-commands.js +0 -1
  17. package/dist/cli/commands/bee-commands.d.ts +0 -2
  18. package/dist/cli/commands/bee-commands.js +0 -2
  19. package/dist/cli/commands/best-practice-scan-command.d.ts +0 -1
  20. package/dist/cli/commands/best-practice-scan-helpers.js +0 -1
  21. package/dist/cli/commands/changeset-commands.d.ts +0 -2
  22. package/dist/cli/commands/changeset-commands.js +0 -2
  23. package/dist/cli/commands/code-commands.d.ts +0 -3
  24. package/dist/cli/commands/code-commands.js +0 -3
  25. package/dist/cli/commands/code-gate-command.d.ts +0 -1
  26. package/dist/cli/commands/code-gate-command.js +0 -1
  27. package/dist/cli/commands/code-job-shape-commands-read-job-shape.d.ts +0 -1
  28. package/dist/cli/commands/code-job-shape-commands-read-job-shape.js +0 -1
  29. package/dist/cli/commands/code-job-shape-commands.d.ts +0 -2
  30. package/dist/cli/commands/code-job-shape-commands.js +0 -3
  31. package/dist/cli/commands/code-mode-gate-commands.d.ts +0 -2
  32. package/dist/cli/commands/code-mode-gate-commands.js +0 -3
  33. package/dist/cli/commands/code-mode-gate-should-pause-command.js +1 -5
  34. package/dist/cli/commands/code-mode-gate-should-pause-envelope.d.ts +0 -1
  35. package/dist/cli/commands/code-mode-gate-should-pause-envelope.js +0 -2
  36. package/dist/cli/commands/code-mode-status-command.d.ts +0 -1
  37. package/dist/cli/commands/code-mode-status-command.js +0 -1
  38. package/dist/cli/commands/code-orchestrator-can-do.d.ts +0 -1
  39. package/dist/cli/commands/code-orchestrator-can-do.js +0 -1
  40. package/dist/cli/commands/code-run-command.js +0 -1
  41. package/dist/cli/commands/code-runtime-commands.d.ts +0 -3
  42. package/dist/cli/commands/code-runtime-commands.js +0 -15
  43. package/dist/cli/commands/codegraph-command-runtime.d.ts +6 -0
  44. package/dist/cli/commands/codegraph-command-runtime.js +19 -7
  45. package/dist/cli/commands/codegraph-commands.js +20 -193
  46. package/dist/cli/commands/codegraph-init-command.d.ts +8 -0
  47. package/dist/cli/commands/codegraph-init-command.js +162 -0
  48. package/dist/cli/commands/codegraph-status-command.js +5 -6
  49. package/dist/cli/commands/comments-commands.d.ts +14 -0
  50. package/dist/cli/commands/comments-commands.js +96 -0
  51. package/dist/cli/commands/compact-command.d.ts +0 -1
  52. package/dist/cli/commands/compact-command.js +0 -4
  53. package/dist/cli/commands/container-commands.d.ts +0 -1
  54. package/dist/cli/commands/container-commands.js +0 -1
  55. package/dist/cli/commands/context-commands.d.ts +0 -1
  56. package/dist/cli/commands/context-commands.js +0 -1
  57. package/dist/cli/commands/core/doctor-command.d.ts +0 -1
  58. package/dist/cli/commands/core/doctor-command.js +0 -9
  59. package/dist/cli/commands/core/memory-command.js +10 -1
  60. package/dist/cli/commands/core/session-command.js +0 -14
  61. package/dist/cli/commands/core/skill-command.js +1 -10
  62. package/dist/cli/commands/core/standards-command.js +1 -1
  63. package/dist/cli/commands/core-artifact-commands.d.ts +0 -1
  64. package/dist/cli/commands/core-artifact-commands.js +0 -1
  65. package/dist/cli/commands/cron-commands-actions.d.ts +0 -1
  66. package/dist/cli/commands/cron-commands-actions.js +0 -2
  67. package/dist/cli/commands/cron-commands-schedule.d.ts +0 -3
  68. package/dist/cli/commands/cron-commands-schedule.js +0 -1
  69. package/dist/cli/commands/cron-commands.d.ts +0 -1
  70. package/dist/cli/commands/cron-commands.js +0 -2
  71. package/dist/cli/commands/cron-scheduler-commands.d.ts +0 -1
  72. package/dist/cli/commands/cron-scheduler-commands.js +0 -1
  73. package/dist/cli/commands/cron-scheduler-persist.d.ts +0 -5
  74. package/dist/cli/commands/cron-scheduler-persist.js +0 -5
  75. package/dist/cli/commands/dashboard-summary.d.ts +0 -1
  76. package/dist/cli/commands/dispatch-commands.d.ts +0 -1
  77. package/dist/cli/commands/dispatch-commands.js +10 -37
  78. package/dist/cli/commands/dispatch-from-dag.js +0 -4
  79. package/dist/cli/commands/doctor/invoke-from-code.js +0 -1
  80. package/dist/cli/commands/e2e-verify.d.ts +0 -1
  81. package/dist/cli/commands/ecc-commands.d.ts +16 -22
  82. package/dist/cli/commands/ecc-commands.js +38 -26
  83. package/dist/cli/commands/evolution-commands.d.ts +0 -1
  84. package/dist/cli/commands/evolution-commands.js +0 -1
  85. package/dist/cli/commands/feedback-commands.d.ts +0 -1
  86. package/dist/cli/commands/feedback-commands.js +0 -2
  87. package/dist/cli/commands/fixture-commands.d.ts +0 -2
  88. package/dist/cli/commands/fresh-context-commands.d.ts +0 -1
  89. package/dist/cli/commands/gate-commands-enforce.d.ts +0 -3
  90. package/dist/cli/commands/gate-commands-enforce.js +0 -4
  91. package/dist/cli/commands/gate-commands.js +0 -2
  92. package/dist/cli/commands/governance-classify-contract-commands.d.ts +0 -3
  93. package/dist/cli/commands/governance-classify-contract-commands.js +0 -4
  94. package/dist/cli/commands/heartbeat-commands-action.js +0 -6
  95. package/dist/cli/commands/heartbeat-commands-validation.d.ts +0 -2
  96. package/dist/cli/commands/heartbeat-commands-validation.js +0 -2
  97. package/dist/cli/commands/heartbeat-commands.d.ts +0 -1
  98. package/dist/cli/commands/heartbeat-commands.js +0 -1
  99. package/dist/cli/commands/hooks-commands.js +0 -11
  100. package/dist/cli/commands/ide-commands.d.ts +0 -1
  101. package/dist/cli/commands/job-add-slice-command.d.ts +0 -2
  102. package/dist/cli/commands/job-add-slice-command.js +0 -2
  103. package/dist/cli/commands/job-commands.js +0 -4
  104. package/dist/cli/commands/lease-metrics-commands.d.ts +0 -1
  105. package/dist/cli/commands/lease-metrics-commands.js +0 -1
  106. package/dist/cli/commands/lease-stats-commands.d.ts +0 -1
  107. package/dist/cli/commands/lease-stats-commands.js +0 -1
  108. package/dist/cli/commands/log-commands.d.ts +0 -2
  109. package/dist/cli/commands/log-commands.js +0 -3
  110. package/dist/cli/commands/loop-eval-commands.js +0 -3
  111. package/dist/cli/commands/memory-commands.d.ts +0 -1
  112. package/dist/cli/commands/memory-commands.js +0 -1
  113. package/dist/cli/commands/observability-commands.d.ts +0 -6
  114. package/dist/cli/commands/observability-commands.js +0 -6
  115. package/dist/cli/commands/outer-cache-commands.js +0 -2
  116. package/dist/cli/commands/playwright-commands.d.ts +0 -1
  117. package/dist/cli/commands/playwright-commands.js +0 -1
  118. package/dist/cli/commands/polyrepo-commands.d.ts +0 -1
  119. package/dist/cli/commands/prd-commands.d.ts +0 -1
  120. package/dist/cli/commands/prd-commands.js +8 -4
  121. package/dist/cli/commands/preferences-commands.js +0 -2
  122. package/dist/cli/commands/primer-command.d.ts +0 -1
  123. package/dist/cli/commands/primer-command.js +0 -1
  124. package/dist/cli/commands/project-commands.js +0 -1
  125. package/dist/cli/commands/qa-commands.d.ts +0 -1
  126. package/dist/cli/commands/qa-commands.js +0 -2
  127. package/dist/cli/commands/release-commands.js +0 -9
  128. package/dist/cli/commands/request-commands.d.ts +0 -1
  129. package/dist/cli/commands/request-commands.js +0 -10
  130. package/dist/cli/commands/request-format-helpers.d.ts +0 -1
  131. package/dist/cli/commands/request-format-helpers.js +0 -2
  132. package/dist/cli/commands/runtime-commands.d.ts +0 -1
  133. package/dist/cli/commands/sc-commands.js +0 -1
  134. package/dist/cli/commands/session-24h-mode.d.ts +0 -1
  135. package/dist/cli/commands/session-24h-mode.js +0 -2
  136. package/dist/cli/commands/session-checkpoint-command.d.ts +0 -1
  137. package/dist/cli/commands/session-checkpoint-command.js +0 -1
  138. package/dist/cli/commands/session-resume-command.d.ts +0 -1
  139. package/dist/cli/commands/session-resume-command.js +0 -1
  140. package/dist/cli/commands/shadcn-commands.js +0 -2
  141. package/dist/cli/commands/share-commands.d.ts +0 -3
  142. package/dist/cli/commands/share-commands.js +0 -13
  143. package/dist/cli/commands/skill-search-commands.d.ts +0 -2
  144. package/dist/cli/commands/slice-commands.js +0 -2
  145. package/dist/cli/commands/slice-integrate-commands.js +0 -1
  146. package/dist/cli/commands/spill-demo-command.d.ts +0 -1
  147. package/dist/cli/commands/statusline-commands.js +0 -4
  148. package/dist/cli/commands/sub-agent/detached.js +0 -2
  149. package/dist/cli/commands/sub-agent-commands.d.ts +0 -3
  150. package/dist/cli/commands/sub-agent-shared.d.ts +0 -8
  151. package/dist/cli/commands/sub-agent-shared.js +0 -5
  152. package/dist/cli/commands/sub-agent-shutdown-commands.d.ts +0 -1
  153. package/dist/cli/commands/tech-commands.d.ts +0 -4
  154. package/dist/cli/commands/tech-commands.js +0 -4
  155. package/dist/cli/commands/vendor-detect.d.ts +0 -3
  156. package/dist/cli/commands/vendor-detect.js +0 -2
  157. package/dist/cli/commands/verdict-aggregate-command.d.ts +0 -1
  158. package/dist/cli/commands/verdict-aggregate-command.js +0 -7
  159. package/dist/cli/commands/vm-commands.d.ts +0 -1
  160. package/dist/cli/commands/vm-commands.js +5 -29
  161. package/dist/cli/commands/vm-hypervisor-probe.d.ts +27 -0
  162. package/dist/cli/commands/vm-hypervisor-probe.js +78 -0
  163. package/dist/cli/commands/vm-status-command.d.ts +3 -0
  164. package/dist/cli/commands/vm-status-command.js +50 -0
  165. package/dist/cli/commands/wave-plan-commands.d.ts +0 -1
  166. package/dist/cli/commands/web-lifecycle-commands.d.ts +0 -1
  167. package/dist/cli/commands/workflow-commands.js +0 -14
  168. package/dist/cli/commands/workflow-plan-commands-actions.js +0 -2
  169. package/dist/cli/commands/workflow-plan-commands-session.js +0 -2
  170. package/dist/cli/commands/workflow-plan-commands.d.ts +0 -1
  171. package/dist/cli/commands/workspace/clean-command.d.ts +0 -1
  172. package/dist/cli/commands/workspace/clean-command.js +0 -1
  173. package/dist/cli/commands/workspace/helpers.d.ts +0 -1
  174. package/dist/cli/commands/workspace/helpers.js +0 -1
  175. package/dist/cli/commands/workspace/init-command.d.ts +0 -6
  176. package/dist/cli/commands/workspace/init-command.js +0 -17
  177. package/dist/cli/commands/workspace/migrate-command.d.ts +0 -2
  178. package/dist/cli/commands/workspace/migrate-command.js +0 -2
  179. package/dist/cli/commands/workspace/reconcile-command.d.ts +0 -2
  180. package/dist/cli/commands/workspace/reconcile-command.js +0 -3
  181. package/dist/cli/commands/workspace-commands.d.ts +0 -2
  182. package/dist/cli/commands/workspace-commands.js +0 -4
  183. package/dist/cli/commands/worktree-auth-commands.d.ts +0 -1
  184. package/dist/cli/commands/worktree-auth-commands.js +0 -1
  185. package/dist/cli/commands/worktree-auth-grant-command.d.ts +0 -1
  186. package/dist/cli/commands/worktree-auth-grant-command.js +0 -1
  187. package/dist/cli/commands/worktree-auth-manage-commands.d.ts +0 -1
  188. package/dist/cli/commands/worktree-auth-manage-commands.js +0 -1
  189. package/dist/cli/commands/worktree-lease-commands.js +0 -1
  190. package/dist/cli/program.js +4 -16
  191. package/dist/reporters/bdd-reporter.js +0 -1
  192. package/dist/services/24h-mode/auto-engage.d.ts +0 -1
  193. package/dist/services/24h-mode/auto-engage.js +0 -1
  194. package/dist/services/24h-mode/decider.d.ts +0 -3
  195. package/dist/services/24h-mode/decider.js +0 -3
  196. package/dist/services/24h-mode/index.d.ts +0 -2
  197. package/dist/services/24h-mode/index.js +0 -2
  198. package/dist/services/24h-mode/state.d.ts +0 -1
  199. package/dist/services/24h-mode/state.js +0 -1
  200. package/dist/services/24h-mode/store.d.ts +0 -1
  201. package/dist/services/24h-mode/store.js +0 -1
  202. package/dist/services/adapter/adapter-registry.js +0 -1
  203. package/dist/services/artifacts/artifact-prerequisites.d.ts +0 -5
  204. package/dist/services/artifacts/artifact-prerequisites.js +0 -19
  205. package/dist/services/artifacts/artifact-templates.d.ts +0 -1
  206. package/dist/services/artifacts/artifact-templates.js +0 -1
  207. package/dist/services/artifacts/request-artifact-service.d.ts +0 -5
  208. package/dist/services/artifacts/request-artifact-service.js +0 -12
  209. package/dist/services/artifacts/request-artifact-state-helpers.d.ts +0 -1
  210. package/dist/services/artifacts/request-artifact-state-helpers.js +0 -1
  211. package/dist/services/audit/artifact-writer.d.ts +0 -1
  212. package/dist/services/audit/artifact-writer.js +0 -1
  213. package/dist/services/audit/decision-writer.js +3 -1
  214. package/dist/services/audit/enforcer-liveness.js +0 -1
  215. package/dist/services/audit/enforcers/active-skill-resolver.d.ts +0 -2
  216. package/dist/services/audit/enforcers/active-skill-resolver.js +0 -2
  217. package/dist/services/audit/red-line-audit-input.d.ts +11 -0
  218. package/dist/services/audit/red-line-audit-input.js +103 -0
  219. package/dist/services/audit/red-line-catalog-p2-a-bee-runtime.d.ts +0 -1
  220. package/dist/services/audit/red-line-catalog-p2-a.js +0 -9
  221. package/dist/services/audit/types.d.ts +0 -2
  222. package/dist/services/audit/types.js +0 -2
  223. package/dist/services/audit-independent/perf-audit-service.d.ts +0 -2
  224. package/dist/services/audit-independent/security-audit-service.d.ts +0 -5
  225. package/dist/services/audit-independent/security-audit-service.js +0 -2
  226. package/dist/services/autonomous-swarm/autonomous-swarm-service.d.ts +0 -5
  227. package/dist/services/autonomous-swarm/autonomous-swarm-service.js +0 -5
  228. package/dist/services/best-practice/language-detector.js +0 -1
  229. package/dist/services/best-practice/output-formatter.d.ts +0 -1
  230. package/dist/services/best-practice/scan-orchestrator.d.ts +0 -1
  231. package/dist/services/capability-audit-service/types.d.ts +1 -3
  232. package/dist/services/capability-guard-runner/contracts/J08.js +2 -2
  233. package/dist/services/changeset/changeset-check-service.d.ts +0 -3
  234. package/dist/services/changeset/changeset-check-service.js +0 -3
  235. package/dist/services/classify/classify-service.d.ts +0 -1
  236. package/dist/services/classify/classify-service.js +0 -1
  237. package/dist/services/classify/classify-types.d.ts +0 -1
  238. package/dist/services/classify/classify-types.js +0 -1
  239. package/dist/services/code/auto-compact-lifecycle.d.ts +0 -11
  240. package/dist/services/code/auto-compact-lifecycle.js +0 -10
  241. package/dist/services/code/auto-compact-modes.d.ts +0 -3
  242. package/dist/services/code/auto-compact-modes.js +0 -3
  243. package/dist/services/code/auto-compact-orchestrator.d.ts +0 -9
  244. package/dist/services/code/auto-compact-orchestrator.js +0 -29
  245. package/dist/services/code/batch-heartbeat-poller.js +0 -1
  246. package/dist/services/code/compact-event-settle.js +0 -1
  247. package/dist/services/code/dag-orchestrator.d.ts +0 -1
  248. package/dist/services/code/dag-orchestrator.js +0 -1
  249. package/dist/services/code/mode-gate-types.d.ts +1 -3
  250. package/dist/services/code/mode-gate-types.js +0 -2
  251. package/dist/services/code/mode-gate.d.ts +0 -5
  252. package/dist/services/code/mode-gate.js +1 -14
  253. package/dist/services/code/orchestrator-can-do-advisories.d.ts +0 -2
  254. package/dist/services/code/orchestrator-can-do-advisories.js +0 -5
  255. package/dist/services/code/orchestrator-can-do.d.ts +0 -4
  256. package/dist/services/code/orchestrator-can-do.js +0 -3
  257. package/dist/services/code/status-line-renderer.js +0 -1
  258. package/dist/services/code/user-touchpoint-classifier.js +0 -7
  259. package/dist/services/code-review/ecc-bridge.d.ts +6 -7
  260. package/dist/services/codegraph/codegraph-autorefresh.js +6 -4
  261. package/dist/services/codegraph/codegraph-backend-advice.d.ts +26 -0
  262. package/dist/services/codegraph/codegraph-backend-advice.js +166 -0
  263. package/dist/services/codegraph/codegraph-config-repair-writer.d.ts +0 -24
  264. package/dist/services/codegraph/codegraph-config-repair-writer.js +32 -73
  265. package/dist/services/codegraph/codegraph-exclude-integrity.d.ts +14 -6
  266. package/dist/services/codegraph/codegraph-exclude-integrity.js +24 -14
  267. package/dist/services/codegraph/codegraph-exclude-reconciler.d.ts +9 -2
  268. package/dist/services/codegraph/codegraph-exclude-reconciler.js +87 -18
  269. package/dist/services/codegraph/codegraph-exclude-repair.d.ts +9 -61
  270. package/dist/services/codegraph/codegraph-exclude-repair.js +67 -139
  271. package/dist/services/codegraph/codegraph-foreign-removal.d.ts +21 -0
  272. package/dist/services/codegraph/codegraph-foreign-removal.js +77 -0
  273. package/dist/services/codegraph/codegraph-index-integrity.d.ts +12 -25
  274. package/dist/services/codegraph/codegraph-index-integrity.js +84 -23
  275. package/dist/services/codegraph/codegraph-preflight-service.js +15 -6
  276. package/dist/services/codegraph/codegraph-project-config.d.ts +35 -0
  277. package/dist/services/codegraph/codegraph-project-config.js +90 -0
  278. package/dist/services/codegraph/codegraph-service.d.ts +1 -2
  279. package/dist/services/codegraph/codegraph-service.js +11 -11
  280. package/dist/services/codegraph/codegraph-upstream-layout.d.ts +24 -0
  281. package/dist/services/codegraph/codegraph-upstream-layout.js +85 -0
  282. package/dist/services/comments/citation-rules.d.ts +154 -0
  283. package/dist/services/comments/citation-rules.js +241 -0
  284. package/dist/services/comments/comment-audit.d.ts +68 -0
  285. package/dist/services/comments/comment-audit.js +121 -0
  286. package/dist/services/comments/comment-citations.d.ts +66 -0
  287. package/dist/services/comments/comment-citations.js +184 -0
  288. package/dist/services/comments/comment-hygiene.d.ts +105 -0
  289. package/dist/services/comments/comment-hygiene.js +170 -0
  290. package/dist/services/comments/comment-prune.d.ts +88 -0
  291. package/dist/services/comments/comment-prune.js +196 -0
  292. package/dist/services/comments/comment-spans.d.ts +30 -0
  293. package/dist/services/comments/comment-spans.js +266 -0
  294. package/dist/services/comments/prune-apply.d.ts +82 -0
  295. package/dist/services/comments/prune-apply.js +217 -0
  296. package/dist/services/comments/repo-path-probe.d.ts +43 -0
  297. package/dist/services/comments/repo-path-probe.js +78 -0
  298. package/dist/services/compact/decision-tables.d.ts +0 -2
  299. package/dist/services/compact/decision-tables.js +0 -2
  300. package/dist/services/compact/request-transition-hook.js +0 -2
  301. package/dist/services/compact-history/compact-history-service.d.ts +0 -2
  302. package/dist/services/compact-history/compact-history-service.js +0 -1
  303. package/dist/services/compact-statusline/compact-lifecycle-store.js +0 -2
  304. package/dist/services/compact-statusline/compact-lifecycle-types.d.ts +0 -1
  305. package/dist/services/compact-statusline/compact-statusline-service.js +0 -4
  306. package/dist/services/config/config-rollback.js +0 -1
  307. package/dist/services/config/config-safety.d.ts +0 -1
  308. package/dist/services/config/config-safety.js +0 -1
  309. package/dist/services/config/config-service.d.ts +0 -1
  310. package/dist/services/config/config-service.js +0 -1
  311. package/dist/services/config/model-routing.d.ts +0 -3
  312. package/dist/services/config/model-routing.js +0 -5
  313. package/dist/services/container/container-lease.d.ts +0 -1
  314. package/dist/services/container/container-lease.js +0 -1
  315. package/dist/services/context/artifact-meta.js +0 -1
  316. package/dist/services/context/auto-compact-dispatcher-input.d.ts +0 -3
  317. package/dist/services/context/auto-compact-dispatcher.js +0 -14
  318. package/dist/services/context/auto-compact-reader-input.d.ts +0 -1
  319. package/dist/services/context/auto-compact-reader.d.ts +0 -2
  320. package/dist/services/context/auto-compact-reader.js +0 -7
  321. package/dist/services/context/auto-compact-types.d.ts +0 -11
  322. package/dist/services/context/auto-compact-types.js +0 -1
  323. package/dist/services/context/build-dispatch-system-prompt.d.ts +11 -29
  324. package/dist/services/context/build-dispatch-system-prompt.js +8 -27
  325. package/dist/services/context/codegraph-unavailable-block.d.ts +38 -0
  326. package/dist/services/context/codegraph-unavailable-block.js +77 -0
  327. package/dist/services/context/context-audit-hint.d.ts +0 -1
  328. package/dist/services/context/context-audit-hint.js +0 -1
  329. package/dist/services/context/context-audit.d.ts +0 -1
  330. package/dist/services/context/context-audit.js +0 -1
  331. package/dist/services/context/harness-window-config.d.ts +0 -4
  332. package/dist/services/context/harness-window-config.js +0 -4
  333. package/dist/services/context/main-session-monitor.d.ts +0 -2
  334. package/dist/services/context/main-session-monitor.js +0 -2
  335. package/dist/services/context/memory-index-reader.d.ts +0 -2
  336. package/dist/services/context/memory-index-reader.js +0 -1
  337. package/dist/services/context/memory-preflight-config.d.ts +0 -1
  338. package/dist/services/context/memory-preflight-service.d.ts +0 -1
  339. package/dist/services/context/memory-preflight-service.js +0 -3
  340. package/dist/services/context/memory-preflight-support.d.ts +0 -5
  341. package/dist/services/context/post-compact-reinjection.d.ts +0 -1
  342. package/dist/services/context/post-compact-reinjection.js +0 -1
  343. package/dist/services/context/summary-view.d.ts +0 -1
  344. package/dist/services/context/summary-view.js +0 -1
  345. package/dist/services/crystallization/crystallization-service.d.ts +5 -11
  346. package/dist/services/crystallization/crystallization-service.js +3 -11
  347. package/dist/services/crystallization/crystallization-store.d.ts +6 -6
  348. package/dist/services/dispatch/await-batch-helpers.js +0 -3
  349. package/dist/services/dispatch/await-batch.d.ts +0 -1
  350. package/dist/services/dispatch/await-batch.js +0 -4
  351. package/dist/services/dispatch/batch-counter.js +0 -1
  352. package/dist/services/dispatch/conflict-replay.d.ts +0 -1
  353. package/dist/services/dispatch/conflict-replay.js +0 -1
  354. package/dist/services/dispatch/contract-store.d.ts +0 -2
  355. package/dist/services/dispatch/contract-store.js +0 -2
  356. package/dist/services/dispatch/dispatch-record-input-types.d.ts +0 -2
  357. package/dist/services/dispatch/dispatch-record-types.d.ts +0 -10
  358. package/dist/services/dispatch/dispatch-record-upgrade-fields.js +0 -7
  359. package/dist/services/dispatch/dispatch-record-upgrade-guards.js +0 -2
  360. package/dist/services/dispatch/dispatch-record-writer.d.ts +0 -5
  361. package/dist/services/dispatch/dispatch-record-writer.js +0 -21
  362. package/dist/services/dispatch/dispatch-sub-agent.d.ts +0 -1
  363. package/dist/services/dispatch/dispatch-sub-agent.js +0 -1
  364. package/dist/services/dispatch/e2e-fixtures.js +0 -1
  365. package/dist/services/dispatch/file-overlap-wave-planner.d.ts +0 -1
  366. package/dist/services/dispatch/file-overlap-wave-planner.js +0 -1
  367. package/dist/services/dispatch/isolation-lease.d.ts +0 -2
  368. package/dist/services/dispatch/isolation-lease.js +0 -2
  369. package/dist/services/dispatch/service-shutdown.js +0 -1
  370. package/dist/services/dispatch/session-capsule.js +0 -1
  371. package/dist/services/dispatch/slice-dag-types.d.ts +0 -1
  372. package/dist/services/dispatch/slice-dag.js +0 -2
  373. package/dist/services/dispatch/stage-enum.d.ts +0 -1
  374. package/dist/services/dispatch/stage-enum.js +0 -1
  375. package/dist/services/dispatch/startup-timeout.d.ts +0 -1
  376. package/dist/services/dispatch/sub-agent-batch-await.js +0 -3
  377. package/dist/services/dispatch/sub-agent-dispatcher-types.d.ts +0 -1
  378. package/dist/services/dispatch/sub-agent-dispatcher.js +0 -2
  379. package/dist/services/dispatch/test-tool-detection.d.ts +0 -3
  380. package/dist/services/dispatch/test-tool-detection.js +0 -2
  381. package/dist/services/doctor/doctor-service/checks/codegraph-capability.js +19 -12
  382. package/dist/services/doctor/doctor-service/checks/codegraph-index-integrity.js +1 -2
  383. package/dist/services/doctor/doctor-service/checks/l3-memory-health.d.ts +0 -2
  384. package/dist/services/doctor/doctor-service/checks/l3-memory-health.js +0 -2
  385. package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.d.ts +0 -1
  386. package/dist/services/doctor/doctor-service/checks/l3-orphan-sessions.js +0 -1
  387. package/dist/services/doctor/doctor-service/checks/multi-binary-drift.d.ts +0 -1
  388. package/dist/services/doctor/doctor-service/checks/multi-binary-drift.js +0 -3
  389. package/dist/services/doctor/doctor-service/checks/workspace-layout.js +0 -2
  390. package/dist/services/doctor/doctor-service/index.d.ts +0 -1
  391. package/dist/services/doctor/doctor-service/index.js +0 -1
  392. package/dist/services/doctor/doctor-service/plugin-registry.d.ts +0 -2
  393. package/dist/services/doctor/doctor-service/plugin-registry.js +0 -2
  394. package/dist/services/doctor/doctor-service/probe-types.d.ts +0 -4
  395. package/dist/services/doctor/doctor-service/report/final-summary.d.ts +0 -1
  396. package/dist/services/doctor/doctor-service/report/final-summary.js +0 -1
  397. package/dist/services/doctor/doctor-service/types.d.ts +0 -5
  398. package/dist/services/doctor/doctor-service/types.js +0 -1
  399. package/dist/services/doctor/doctor-service.d.ts +0 -1
  400. package/dist/services/doctor/doctor-service.js +0 -2
  401. package/dist/services/env/shell-probe.js +0 -1
  402. package/dist/services/evidence/evidence-generator.js +0 -8
  403. package/dist/services/evolution/evolution-constraints.d.ts +0 -2
  404. package/dist/services/evolution/evolution-constraints.js +0 -2
  405. package/dist/services/evolution/evolution-service.d.ts +2 -12
  406. package/dist/services/evolution/evolution-service.js +0 -9
  407. package/dist/services/evolution/evolution-store.d.ts +6 -8
  408. package/dist/services/evolution/evolution-store.js +1 -3
  409. package/dist/services/evolution/evolution-types.d.ts +0 -2
  410. package/dist/services/evolution/evolution-types.js +0 -6
  411. package/dist/services/evolution/independent-evaluator-runner.d.ts +0 -3
  412. package/dist/services/evolution/independent-evaluator-runner.js +0 -1
  413. package/dist/services/evolution/regression-skeptic-runner.d.ts +0 -1
  414. package/dist/services/feedback/feedback-promotion-service.d.ts +0 -8
  415. package/dist/services/feedback/feedback-promotion-service.js +0 -10
  416. package/dist/services/feedback/promotion-artifact-evidence.d.ts +0 -1
  417. package/dist/services/feedback/promotion-artifact-evidence.js +0 -1
  418. package/dist/services/final-review/final-review-evidence-budget.d.ts +0 -3
  419. package/dist/services/final-review/final-review-evidence-budget.js +0 -5
  420. package/dist/services/final-review/final-review-evidence-sources.d.ts +0 -1
  421. package/dist/services/final-review/final-review-evidence-sources.js +0 -1
  422. package/dist/services/final-review/final-review-output-budget.d.ts +0 -1
  423. package/dist/services/final-review/final-review-output-budget.js +0 -3
  424. package/dist/services/final-review/final-review-service.d.ts +0 -1
  425. package/dist/services/final-review/final-review-service.js +0 -1
  426. package/dist/services/fixture/fixture-capture-service.js +0 -1
  427. package/dist/services/fixture/fixture-sanitize-service.d.ts +0 -3
  428. package/dist/services/fixture/fixture-sanitize-service.js +0 -3
  429. package/dist/services/fresh-context/config.js +0 -1
  430. package/dist/services/fresh-context/fresh-context-block.js +0 -1
  431. package/dist/services/fresh-context/trigger-scan.d.ts +0 -1
  432. package/dist/services/fresh-context/trigger-scan.js +0 -1
  433. package/dist/services/fuzzy-matching/fzf-pick-service.d.ts +0 -1
  434. package/dist/services/fuzzy-matching/fzf-pick-service.js +0 -1
  435. package/dist/services/handoff/handoff-parser.d.ts +0 -1
  436. package/dist/services/handoff/handoff-parser.js +0 -1
  437. package/dist/services/handoff/handoff-types.d.ts +0 -1
  438. package/dist/services/handoff/handoff-types.js +0 -1
  439. package/dist/services/handoff/handoff-writer.d.ts +0 -1
  440. package/dist/services/handoff/handoff-writer.js +0 -1
  441. package/dist/services/hooks/auto-compact-hook-install.d.ts +0 -1
  442. package/dist/services/hooks/auto-compact-hook-install.js +0 -1
  443. package/dist/services/hooks/output.d.ts +0 -1
  444. package/dist/services/hooks/output.js +0 -1
  445. package/dist/services/hooks/pre-tool-code-gate.d.ts +0 -1
  446. package/dist/services/hooks/pre-tool-code-gate.js +0 -1
  447. package/dist/services/hooks/presence-marker-detector.js +0 -1
  448. package/dist/services/hooks/worktree-authorization-gate.d.ts +0 -3
  449. package/dist/services/hooks/worktree-authorization-gate.js +0 -1
  450. package/dist/services/ide/adapters/claude-code-adapter.d.ts +0 -5
  451. package/dist/services/ide/adapters/claude-code-adapter.js +0 -11
  452. package/dist/services/ide/adapters/qoder-adapter.d.ts +0 -3
  453. package/dist/services/ide/adapters/qoder-adapter.js +0 -5
  454. package/dist/services/ide/adapters/tongyi-lingma-adapter.d.ts +0 -2
  455. package/dist/services/ide/adapters/tongyi-lingma-adapter.js +0 -2
  456. package/dist/services/ide/adapters/trae-adapter.d.ts +0 -3
  457. package/dist/services/ide/adapters/trae-adapter.js +3 -6
  458. package/dist/services/ide/adapters/zcode-adapter.js +0 -2
  459. package/dist/services/ide/current-model-detector.js +0 -1
  460. package/dist/services/ide/hook-protocol.d.ts +0 -2
  461. package/dist/services/ide/hook-protocol.js +0 -2
  462. package/dist/services/ide/ide-compact-types.d.ts +0 -7
  463. package/dist/services/ide/ide-types.d.ts +0 -12
  464. package/dist/services/ide/resource-profile.d.ts +0 -1
  465. package/dist/services/job/job-commit-verification.d.ts +0 -2
  466. package/dist/services/job/job-commit-verification.js +0 -2
  467. package/dist/services/job/job-orchestrator.d.ts +0 -1
  468. package/dist/services/job/job-orchestrator.js +0 -1
  469. package/dist/services/job/job-progress-store.d.ts +0 -2
  470. package/dist/services/job/job-progress-store.js +0 -3
  471. package/dist/services/job/job-types.js +0 -1
  472. package/dist/services/job-snapshot/snapshot.js +0 -1
  473. package/dist/services/karpathy-cost/karpathy-cost-check-service.js +0 -1
  474. package/dist/services/legacy/legacy-detector.js +0 -1
  475. package/dist/services/log/log-commands-service.d.ts +0 -2
  476. package/dist/services/log/log-commands-service.js +0 -2
  477. package/dist/services/log/logger.d.ts +0 -1
  478. package/dist/services/log/logger.js +0 -1
  479. package/dist/services/log/redact.d.ts +0 -1
  480. package/dist/services/log/redact.js +0 -1
  481. package/dist/services/log/retention.d.ts +0 -17
  482. package/dist/services/log/retention.js +0 -18
  483. package/dist/services/loop/loop-bee-relation-service.d.ts +3 -3
  484. package/dist/services/loop/loop-bee-relation-service.js +14 -13
  485. package/dist/services/loop/loop-bee-relation-store.d.ts +9 -10
  486. package/dist/services/loop/loop-bee-relation-store.js +1 -2
  487. package/dist/services/loop/loop-bee-relation-types.d.ts +1 -1
  488. package/dist/services/loop/loop-bee-relation-types.js +1 -1
  489. package/dist/services/loop/loop-release-service.d.ts +3 -3
  490. package/dist/services/loop/loop-release-service.js +1 -1
  491. package/dist/services/loop/loop-release-store.d.ts +6 -7
  492. package/dist/services/loop/loop-release-store.js +0 -1
  493. package/dist/services/loop/monotonic-guard.d.ts +0 -1
  494. package/dist/services/loop/monotonic-guard.js +0 -1
  495. package/dist/services/memory/memory-ingest-service.js +0 -1
  496. package/dist/services/memory/project-context-service.d.ts +0 -1
  497. package/dist/services/memory/project-context-service.js +0 -1
  498. package/dist/services/memory/project-memory-service/index/reindex.d.ts +0 -2
  499. package/dist/services/memory/project-memory-service/index/reindex.js +0 -1
  500. package/dist/services/memory/project-memory-service/index/search.d.ts +0 -1
  501. package/dist/services/memory/project-memory-service/index/search.js +0 -1
  502. package/dist/services/memory/project-memory-service/index.d.ts +1 -1
  503. package/dist/services/memory/project-memory-service/index.js +1 -1
  504. package/dist/services/memory/project-memory-service/memory-kinds.d.ts +0 -1
  505. package/dist/services/memory/project-memory-service/memory-kinds.js +0 -1
  506. package/dist/services/memory/project-memory-service/parsers/frontmatter.d.ts +0 -1
  507. package/dist/services/memory/project-memory-service/parsers/frontmatter.js +0 -1
  508. package/dist/services/memory/project-memory-service/store/atomic-write.d.ts +19 -7
  509. package/dist/services/memory/project-memory-service/store/atomic-write.js +120 -26
  510. package/dist/services/memory/project-memory-service.js +0 -1
  511. package/dist/services/mode/mode-enforcement.js +0 -1
  512. package/dist/services/mode/mode-status-service.d.ts +0 -2
  513. package/dist/services/mode/mode-status-service.js +0 -2
  514. package/dist/services/observability/aggregation.d.ts +0 -4
  515. package/dist/services/observability/aggregation.js +0 -6
  516. package/dist/services/observability/observability-schema.js +0 -1
  517. package/dist/services/observability/observability-service.d.ts +0 -5
  518. package/dist/services/observability/observability-service.js +0 -4
  519. package/dist/services/observability/report-formatter.d.ts +0 -2
  520. package/dist/services/observability/report-formatter.js +0 -2
  521. package/dist/services/openspec/artifact-boundary.d.ts +0 -4
  522. package/dist/services/openspec/artifact-boundary.js +0 -4
  523. package/dist/services/openspec/coverage-evidence-reader.d.ts +0 -1
  524. package/dist/services/openspec/coverage-evidence-reader.js +0 -1
  525. package/dist/services/polyrepo/polyrepo-dispatcher.js +0 -1
  526. package/dist/services/polyrepo/polyrepo-scanner.js +0 -1
  527. package/dist/services/polyrepo/polyrepo-service.js +0 -1
  528. package/dist/services/polyrepo/polyrepo-types.d.ts +0 -1
  529. package/dist/services/prd/best-practice-auto-trigger.d.ts +0 -2
  530. package/dist/services/prd/best-practice-auto-trigger.js +0 -2
  531. package/dist/services/prd/gate-evidence-derivation.d.ts +0 -4
  532. package/dist/services/prd/gate-evidence-derivation.js +0 -5
  533. package/dist/services/prd/handoff-auto-regen.js +0 -5
  534. package/dist/services/prd/handoff-frontmatter-shape.d.ts +0 -2
  535. package/dist/services/prd/handoff-frontmatter-shape.js +0 -2
  536. package/dist/services/prd/handoff-frontmatter.d.ts +0 -1
  537. package/dist/services/prd/handoff-frontmatter.js +61 -2
  538. package/dist/services/prd/handoff-gate-evidence.d.ts +0 -1
  539. package/dist/services/prd/handoff-gate-evidence.js +12 -12
  540. package/dist/services/prd/handoff-path-resolution.d.ts +0 -7
  541. package/dist/services/prd/handoff-path-resolution.js +0 -10
  542. package/dist/services/prd/handoff-service.d.ts +11 -3
  543. package/dist/services/prd/handoff-service.js +11 -3
  544. package/dist/services/prd/handoff-types.d.ts +33 -3
  545. package/dist/services/prd/handoff-types.js +0 -1
  546. package/dist/services/prd/project-scan-bootstrap-service.d.ts +0 -1
  547. package/dist/services/prd/project-scan-bootstrap-service.js +0 -4
  548. package/dist/services/prd/project-scan-types.d.ts +0 -1
  549. package/dist/services/prd/project-scan-types.js +0 -1
  550. package/dist/services/preferences/preferences-service.d.ts +0 -1
  551. package/dist/services/preferences/preferences-service.js +0 -5
  552. package/dist/services/preferences/preferences-types.d.ts +0 -14
  553. package/dist/services/preferences/preferences-types.js +0 -4
  554. package/dist/services/progress/progress-service.js +0 -1
  555. package/dist/services/qa/bdd-test-style-verifier.d.ts +0 -1
  556. package/dist/services/qa/bdd-test-style-verifier.js +0 -1
  557. package/dist/services/qa/browser-event-logger.d.ts +0 -1
  558. package/dist/services/qa/browser-event-logger.js +0 -1
  559. package/dist/services/qa/browser-restart-detector.d.ts +0 -1
  560. package/dist/services/qa/browser-restart-detector.js +0 -1
  561. package/dist/services/qa/browser-reuse-hint.d.ts +0 -1
  562. package/dist/services/qa/browser-reuse-hint.js +0 -1
  563. package/dist/services/qa/qa-business-review-state.js +0 -2
  564. package/dist/services/qa/screenshot-archive-service.d.ts +0 -1
  565. package/dist/services/qa/screenshot-archive-service.js +0 -1
  566. package/dist/services/rd/impl.js +0 -1
  567. package/dist/services/rd/rd-service.d.ts +0 -5
  568. package/dist/services/rd/rd-service.js +0 -5
  569. package/dist/services/rd/reviewer-dispatch-policy.d.ts +0 -4
  570. package/dist/services/rd/reviewer-dispatch-policy.js +0 -4
  571. package/dist/services/rd/standards-diagnostic.js +0 -1
  572. package/dist/services/rd/tactical-stage.js +0 -1
  573. package/dist/services/rd-swarm/rd-swarm-types.d.ts +0 -1
  574. package/dist/services/rd-swarm/rd-swarm-types.js +0 -1
  575. package/dist/services/recommendations/installed-capability-detector.d.ts +5 -6
  576. package/dist/services/recommendations/installed-capability-detector.js +11 -11
  577. package/dist/services/release/version-precheck-service.d.ts +0 -2
  578. package/dist/services/release/version-precheck-service.js +0 -3
  579. package/dist/services/retrospective/retrospective-index.d.ts +0 -1
  580. package/dist/services/retrospective/retrospective-index.js +0 -1
  581. package/dist/services/retrospective/retrospective-show.d.ts +0 -1
  582. package/dist/services/retrospective/retrospective-show.js +0 -1
  583. package/dist/services/reviewer/model-family.js +0 -1
  584. package/dist/services/reviewer/reviewer-config.js +0 -1
  585. package/dist/services/reviewer/reviewer-service.d.ts +0 -1
  586. package/dist/services/reviewer/reviewer-service.js +0 -3
  587. package/dist/services/reviewer/selection-strategies.js +0 -1
  588. package/dist/services/runtime/runtime-detector.js +0 -1
  589. package/dist/services/runtime/runtime-service.d.ts +0 -2
  590. package/dist/services/runtime/vendor-adapter.d.ts +0 -7
  591. package/dist/services/runtime/vendors/claude-code.js +0 -1
  592. package/dist/services/runtime/vendors/codex.js +0 -1
  593. package/dist/services/runtime/vendors/copilot.js +0 -1
  594. package/dist/services/sc/sc-service.js +0 -6
  595. package/dist/services/scan/acceptance-coverage-service.js +0 -2
  596. package/dist/services/scan/api-diff-recorded.d.ts +0 -1
  597. package/dist/services/scan/api-diff-recorded.js +0 -1
  598. package/dist/services/scan/api-diff-service.d.ts +0 -1
  599. package/dist/services/scan/api-diff-service.js +0 -1
  600. package/dist/services/scan/api-diff-types.d.ts +0 -1
  601. package/dist/services/scan/api-diff-types.js +0 -1
  602. package/dist/services/scan/archetype-detection.d.ts +37 -0
  603. package/dist/services/scan/archetype-detection.js +175 -2
  604. package/dist/services/scan/archetype-service.js +36 -23
  605. package/dist/services/scan/file-size-policy.d.ts +0 -1
  606. package/dist/services/scan/file-size-policy.js +0 -5
  607. package/dist/services/scan/file-size-scan.d.ts +0 -1
  608. package/dist/services/scan/scan-types.d.ts +9 -0
  609. package/dist/services/security/safe-settings-path.js +0 -1
  610. package/dist/services/session/binding-store.d.ts +0 -4
  611. package/dist/services/session/binding-store.js +0 -7
  612. package/dist/services/session/caller-binding-service.d.ts +0 -6
  613. package/dist/services/session/caller-binding-service.js +0 -4
  614. package/dist/services/session/caller-id-types.d.ts +0 -3
  615. package/dist/services/session/caller-id-types.js +0 -2
  616. package/dist/services/session/getSessionDir.js +0 -1
  617. package/dist/services/session/index.js +0 -1
  618. package/dist/services/session/platform-fallbacks.d.ts +0 -3
  619. package/dist/services/session/platform-fallbacks.js +0 -3
  620. package/dist/services/session/resolve-caller-id.d.ts +0 -2
  621. package/dist/services/session/resolve-caller-id.js +0 -2
  622. package/dist/services/session/session-binding-bridge.d.ts +0 -2
  623. package/dist/services/session/session-binding-bridge.js +0 -15
  624. package/dist/services/session/session-checkpoint-service.d.ts +0 -1
  625. package/dist/services/session/session-checkpoint-service.js +0 -1
  626. package/dist/services/session/session-manager.d.ts +0 -8
  627. package/dist/services/session/session-manager.js +0 -19
  628. package/dist/services/session/session-resume-service.d.ts +0 -1
  629. package/dist/services/session/session-resume-service.js +0 -1
  630. package/dist/services/share/bundle-reader.d.ts +2 -5
  631. package/dist/services/share/bundle-reader.js +6 -8
  632. package/dist/services/share/bundle-writer.d.ts +2 -2
  633. package/dist/services/skill/resume-detector.js +0 -3
  634. package/dist/services/skill/skill-scheduler.d.ts +0 -1
  635. package/dist/services/skill/skill-scheduler.js +0 -1
  636. package/dist/services/skill/skill-search-service.d.ts +0 -2
  637. package/dist/services/skill/skill-search-service.js +0 -2
  638. package/dist/services/skillhub/release-diff.d.ts +2 -2
  639. package/dist/services/skillhub/release-export.d.ts +2 -2
  640. package/dist/services/skillhub/release-gc-blobs.d.ts +2 -2
  641. package/dist/services/skillhub/release-import.d.ts +2 -2
  642. package/dist/services/skillhub/release-import.js +2 -1
  643. package/dist/services/skillhub/release-retain.d.ts +2 -2
  644. package/dist/services/skillhub/release-retain.js +2 -1
  645. package/dist/services/skillhub/sqlite-store.d.ts +3 -3
  646. package/dist/services/skillhub/sqlite-store.js +4 -5
  647. package/dist/services/skills/hooks-codegate-superpowers.d.ts +0 -3
  648. package/dist/services/skills/hooks-codegate-superpowers.js +0 -14
  649. package/dist/services/skills/hooks-settings-service.d.ts +0 -2
  650. package/dist/services/skills/hooks-settings-service.js +0 -6
  651. package/dist/services/skills/presence-lease-service.d.ts +0 -1
  652. package/dist/services/skills/presence-lease-service.js +0 -1
  653. package/dist/services/skills/session-start-hook-constants.d.ts +0 -4
  654. package/dist/services/skills/session-start-hook-constants.js +0 -4
  655. package/dist/services/skills/skill-presence-service.d.ts +0 -8
  656. package/dist/services/skills/skill-presence-service.js +0 -13
  657. package/dist/services/skills/skill-statusline-model.d.ts +0 -6
  658. package/dist/services/skills/skill-statusline-model.js +1 -4
  659. package/dist/services/skills/skill-statusline-renderer.d.ts +0 -1
  660. package/dist/services/skills/skill-statusline-renderer.js +0 -12
  661. package/dist/services/skills/skill-statusline-service.js +0 -6
  662. package/dist/services/skills/skill-statusline-sid-suffix.d.ts +0 -2
  663. package/dist/services/skills/skill-statusline-sid-suffix.js +0 -2
  664. package/dist/services/skills/statusline-palette.d.ts +0 -2
  665. package/dist/services/skills/statusline-palette.js +0 -3
  666. package/dist/services/slice/slice-archive-service.js +0 -1
  667. package/dist/services/slice/slice-benchmark-service.d.ts +0 -1
  668. package/dist/services/slice/slice-benchmark-service.js +0 -1
  669. package/dist/services/slice/slice-check-service.js +0 -6
  670. package/dist/services/slice/slice-check-types.d.ts +0 -1
  671. package/dist/services/slice/slice-pick-service.d.ts +0 -1
  672. package/dist/services/slice/slice-pick-service.js +0 -1
  673. package/dist/services/slice/slice-review-state.js +0 -2
  674. package/dist/services/sqlite/sqlite-driver.d.ts +118 -0
  675. package/dist/services/sqlite/sqlite-driver.js +159 -0
  676. package/dist/services/standards/ide-aware-standards-service.d.ts +0 -2
  677. package/dist/services/standards/ide-aware-standards-service.js +0 -1
  678. package/dist/services/standards/loop-engineering-readiness-lint.d.ts +0 -1
  679. package/dist/services/standards/loop-engineering-readiness-lint.js +0 -1
  680. package/dist/services/standards/migrate-claude-rules-service.js +0 -3
  681. package/dist/services/standards/migrate-service.d.ts +0 -1
  682. package/dist/services/standards/migrate-service.js +0 -1
  683. package/dist/services/standards/missing-standards-detector.d.ts +0 -2
  684. package/dist/services/standards/missing-standards-detector.js +0 -3
  685. package/dist/services/standards/project-standards-service.d.ts +0 -1
  686. package/dist/services/standards/project-standards-service.js +0 -1
  687. package/dist/services/standards/standards-render.d.ts +0 -1
  688. package/dist/services/standards/standards-render.js +0 -1
  689. package/dist/services/standards/ui-library-dispatch-block.d.ts +0 -1
  690. package/dist/services/standards/ui-library-dispatch-block.js +0 -1
  691. package/dist/services/tech/tech-change-id-service.d.ts +0 -7
  692. package/dist/services/tech/tech-change-id-service.js +0 -7
  693. package/dist/services/tech/tech-service.js +0 -5
  694. package/dist/services/verdict/envelope-parsers.d.ts +0 -2
  695. package/dist/services/verdict/envelope-parsers.js +0 -2
  696. package/dist/services/verdict/envelopes.d.ts +0 -1
  697. package/dist/services/vm/vm-lease.js +0 -1
  698. package/dist/services/web/aria-node.d.ts +0 -1
  699. package/dist/services/web/bounded-output.d.ts +0 -1
  700. package/dist/services/web/bounded-output.js +0 -1
  701. package/dist/services/web/browser-acquire.js +0 -1
  702. package/dist/services/web/browser-cache-probe.js +0 -1
  703. package/dist/services/web/browser-session-manager.js +0 -1
  704. package/dist/services/web/daemon-entry.js +0 -1
  705. package/dist/services/web/daemon-registry.js +0 -1
  706. package/dist/services/web/daemon-supervisor.d.ts +4 -3
  707. package/dist/services/web/daemon-supervisor.js +4 -4
  708. package/dist/services/web/playwright-loader.js +0 -1
  709. package/dist/services/web/playwright-types.d.ts +0 -1
  710. package/dist/services/web/snapshot-pruner.js +0 -1
  711. package/dist/services/web/untrusted-envelope.d.ts +0 -1
  712. package/dist/services/web/web-artifact-paths.js +0 -1
  713. package/dist/services/web/web-client.d.ts +0 -1
  714. package/dist/services/web/web-daemon-service.js +0 -1
  715. package/dist/services/web/web-fallback.d.ts +0 -1
  716. package/dist/services/web/web-fallback.js +0 -1
  717. package/dist/services/web/web-install-service.js +0 -1
  718. package/dist/services/web/web-login-profile.js +0 -1
  719. package/dist/services/web/web-protocol.d.ts +0 -1
  720. package/dist/services/web/web-protocol.js +0 -1
  721. package/dist/services/web/web-status-report.js +0 -1
  722. package/dist/services/workflow/artifact-paths.js +0 -3
  723. package/dist/services/workflow/autonomous-resume-writer.js +0 -2
  724. package/dist/services/workflow/pipeline-verify-gate-support.d.ts +0 -5
  725. package/dist/services/workflow/pipeline-verify-gate-support.js +0 -11
  726. package/dist/services/workflow/pipeline-verify-service.d.ts +0 -2
  727. package/dist/services/workflow/pipeline-verify-service.js +0 -15
  728. package/dist/services/workflow/pipeline-verify-types.d.ts +0 -10
  729. package/dist/services/workflow/pipeline-verify-types.js +0 -2
  730. package/dist/services/workflow/plan-reader.d.ts +0 -1
  731. package/dist/services/workflow/plan-reader.js +0 -5
  732. package/dist/services/workflow/plan-refresher.js +0 -2
  733. package/dist/services/workflow/plan-trigger-detector.d.ts +0 -2
  734. package/dist/services/workflow/plan-trigger-detector.js +0 -3
  735. package/dist/services/workflow/workflow-autonomous-resume-helpers.js +0 -5
  736. package/dist/services/workflow/workflow-autonomous-service.js +0 -2
  737. package/dist/services/workflow/workflow-autonomous-types.d.ts +0 -2
  738. package/dist/services/workflow/workflow-autonomous-types.js +0 -2
  739. package/dist/services/workflow/workflow-graph-types.d.ts +0 -1
  740. package/dist/services/workflow/workflow-graph-types.js +0 -1
  741. package/dist/services/workflow/workflow-router-service.js +0 -4
  742. package/dist/services/workflow/workflow-skip-service.d.ts +0 -1
  743. package/dist/services/workflow/workflow-skip-service.js +0 -1
  744. package/dist/services/workflow/workflow-spec-lint.d.ts +0 -2
  745. package/dist/services/workflow/workflow-spec-lint.js +0 -2
  746. package/dist/services/workflow/workflow-spec-types.d.ts +0 -1
  747. package/dist/services/workflow/workflow-spec-types.js +0 -1
  748. package/dist/services/workflow/workflow-spec-yaml.d.ts +0 -2
  749. package/dist/services/workflow/workflow-spec-yaml.js +0 -2
  750. package/dist/services/workflow/workflow-spec.js +0 -1
  751. package/dist/services/workflow/workflow-state-store.js +0 -1
  752. package/dist/services/workspace/claude-settings-template.d.ts +0 -4
  753. package/dist/services/workspace/claude-settings-template.js +0 -4
  754. package/dist/services/workspace/generated-artifacts-stamp.d.ts +2 -2
  755. package/dist/services/workspace/generated-artifacts-stamp.js +2 -2
  756. package/dist/services/workspace/migrate-1-4-1-service.d.ts +0 -1
  757. package/dist/services/workspace/migrate-1-4-1-service.js +0 -1
  758. package/dist/services/workspace/migrate-service.js +0 -8
  759. package/dist/services/workspace/migrate-types.d.ts +0 -4
  760. package/dist/services/workspace/migrate-types.js +0 -1
  761. package/dist/services/workspace/reconcile-migrate.d.ts +0 -3
  762. package/dist/services/workspace/reconcile-migrate.js +0 -5
  763. package/dist/services/workspace/reconcile-service.d.ts +0 -3
  764. package/dist/services/workspace/reconcile-service.js +0 -7
  765. package/dist/services/workspace/reconcile-types.d.ts +0 -5
  766. package/dist/services/workspace/sid-naming-guard.d.ts +0 -1
  767. package/dist/services/workspace/sid-naming-guard.js +0 -1
  768. package/dist/services/workspace/templates/project-scan/index.d.ts +0 -3
  769. package/dist/services/workspace/templates/project-scan/index.js +0 -3
  770. package/dist/services/workspace/workspace-claude-settings-materializer.d.ts +0 -1
  771. package/dist/services/workspace/workspace-claude-settings-materializer.js +0 -4
  772. package/dist/services/workspace/workspace-service.d.ts +0 -7
  773. package/dist/services/workspace/workspace-service.js +1 -17
  774. package/dist/services/worktree/playwright-profile.js +0 -1
  775. package/dist/services/worktree/worktree-lease-types.d.ts +0 -1
  776. package/dist/services/worktree/worktree-lease-types.js +0 -1
  777. package/dist/services/worktree/worktree-lease.d.ts +0 -2
  778. package/dist/services/worktree/worktree-lease.js +0 -2
  779. package/dist/shared/format-md-compact.d.ts +0 -2
  780. package/dist/shared/format-md-compact.js +0 -2
  781. package/dist/shared/incrementing-number.d.ts +0 -1
  782. package/dist/shared/incrementing-number.js +0 -1
  783. package/dist/shared/path-utils.d.ts +0 -1
  784. package/dist/shared/path-utils.js +0 -1
  785. package/dist/shared/runtime-root.d.ts +0 -1
  786. package/dist/shared/runtime-root.js +0 -1
  787. package/dist/shared/stale-policy.d.ts +0 -1
  788. package/dist/shared/stale-policy.js +0 -1
  789. package/package.json +12 -10
  790. package/scripts/canonical-store-link.mjs +296 -0
  791. package/scripts/canonical-store-prune.mjs +131 -0
  792. package/scripts/canonical-store.mjs +298 -0
  793. package/scripts/install-skills.mjs +175 -560
  794. package/skills/bee/peaks-qa/references/reading-handoff-frontmatter.md +3 -1
  795. package/skills/bee/peaks-rd/references/parallel-review-fanout.md +1 -1
  796. package/skills/bee/peaks-rd/references/rd-fanout-contracts.md +3 -2
  797. package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +29 -7
  798. package/skills/peaks-audit/SKILL.md +3 -3
  799. package/skills/peaks-code/references/frontend-only-mode.md +2 -2
  800. package/skills/peaks-code/references/startup-sequence.md +0 -4
  801. package/dist/cli/commands/upgrade-commands.d.ts +0 -25
  802. package/dist/cli/commands/upgrade-commands.js +0 -154
  803. package/dist/services/codegraph/codegraph-include-reconciler.d.ts +0 -10
  804. package/dist/services/codegraph/codegraph-include-reconciler.js +0 -160
  805. package/dist/services/upgrade/1x-detector-service.d.ts +0 -7
  806. package/dist/services/upgrade/1x-detector-service.js +0 -96
  807. package/dist/services/upgrade/gitignore-migrate-service.d.ts +0 -56
  808. package/dist/services/upgrade/gitignore-migrate-service.js +0 -170
  809. package/dist/services/upgrade/upgrade-service.d.ts +0 -81
  810. package/dist/services/upgrade/upgrade-service.js +0 -428
  811. package/skills/peaks-code/references/step-0-55-1x-detection.md +0 -83
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * `peaks workspace <sub-command>` entry — thin facade.
3
3
  *
4
- * Slice 2026-06-16-workspace-commands-split: this file used to be 925
5
4
  * lines and bundled all 5 sub-commands (init, reconcile, migrate,
6
5
  * clean, archive). It is now a thin dispatcher that delegates each
7
6
  * sub-command to its own file under `./workspace/`. The per-subcommand
@@ -10,7 +9,6 @@
10
9
  * `./workspace/helpers.ts`.
11
10
  *
12
11
  * Re-exports `resolveFirstTimeHooksInstall` for back-compat with
13
- * `tests/unit/workspace-init-hooks.test.ts` (it imports from this file).
14
12
  */
15
13
  import type { Command } from 'commander';
16
14
  import type { ProgramIO } from '../cli-helpers.js';
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * `peaks workspace <sub-command>` entry — thin facade.
3
3
  *
4
- * Slice 2026-06-16-workspace-commands-split: this file used to be 925
5
4
  * lines and bundled all 5 sub-commands (init, reconcile, migrate,
6
5
  * clean, archive). It is now a thin dispatcher that delegates each
7
6
  * sub-command to its own file under `./workspace/`. The per-subcommand
@@ -10,16 +9,13 @@
10
9
  * `./workspace/helpers.ts`.
11
10
  *
12
11
  * Re-exports `resolveFirstTimeHooksInstall` for back-compat with
13
- * `tests/unit/workspace-init-hooks.test.ts` (it imports from this file).
14
12
  */
15
13
  import { registerWorkspaceInitCommand } from './workspace/init-command.js';
16
14
  import { registerWorkspaceReconcileCommand } from './workspace/reconcile-command.js';
17
15
  import { registerWorkspaceMigrateCommand } from './workspace/migrate-command.js';
18
16
  import { registerWorkspaceCleanCommand } from './workspace/clean-command.js';
19
- // Slice 2026-06-29-change-id-root-removal: `registerMigrateChangeScopeCommand`
20
17
  // was removed with the change-id axis. The CLI tool
21
18
  // `peaks workspace migrate-change-scope` and its source file
22
- // `src/cli/commands/workspace/migrate-change-scope-command.ts` are
23
19
  // deleted; their on-disk target `.peaks/_runtime/change/<id>/` was
24
20
  // already hard-killed in v2.17.0.
25
21
  import { registerMigrate1_4_1Command } from './migrate-1-4-1-command.js';
@@ -1,5 +1,4 @@
1
1
  /**
2
- * `peaks worktree auth <grant|revoke|status>` — slice 2026-07-27-worktree-user-auth.
3
2
  *
4
3
  * Records (or revokes / inspects) a current-task user authorization for
5
4
  * a worktree-mutating operation. The PreToolUse gate
@@ -1,5 +1,4 @@
1
1
  /**
2
- * `peaks worktree auth <grant|revoke|status>` — slice 2026-07-27-worktree-user-auth.
3
2
  *
4
3
  * Records (or revokes / inspects) a current-task user authorization for
5
4
  * a worktree-mutating operation. The PreToolUse gate
@@ -1,5 +1,4 @@
1
1
  /**
2
- * `peaks worktree auth grant` — slice 2026-07-27-worktree-user-auth.
3
2
  *
4
3
  * Extracted from `worktree-auth-commands.ts` to keep that file under the
5
4
  * raw-line cap (mechanical verbatim move). The default TTL constant stays
@@ -1,5 +1,4 @@
1
1
  /**
2
- * `peaks worktree auth grant` — slice 2026-07-27-worktree-user-auth.
3
2
  *
4
3
  * Extracted from `worktree-auth-commands.ts` to keep that file under the
5
4
  * raw-line cap (mechanical verbatim move). The default TTL constant stays
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * `peaks worktree reconcile-host` + `peaks worktree auth revoke|status`
3
- * — slice 2026-07-27-worktree-user-auth.
4
3
  *
5
4
  * Extracted from `worktree-auth-commands.ts` to keep that file under the
6
5
  * raw-line cap (mechanical verbatim move; validation and presentation
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * `peaks worktree reconcile-host` + `peaks worktree auth revoke|status`
3
- * — slice 2026-07-27-worktree-user-auth.
4
3
  *
5
4
  * Extracted from `worktree-auth-commands.ts` to keep that file under the
6
5
  * raw-line cap (mechanical verbatim move; validation and presentation
@@ -29,7 +29,6 @@ export function resolveProjectRoot(options) {
29
29
  return options.project ?? findProjectRoot(process.cwd()) ?? process.cwd();
30
30
  }
31
31
  export function registerWorktreeLeaseCommands(auth, io) {
32
- // Slice 2026-07-29-worktree-l2-extended Part 1 — `peaks worktree spawn`
33
32
  // and `peaks worktree release`. These commands own the lease lifecycle:
34
33
  // spawn writes a lease + runs `git worktree add`; release runs `git
35
34
  // worktree remove` + transitions the lease to 'released'. The remaining
@@ -18,11 +18,10 @@ import { registerSopCommands } from './commands/sop-commands.js';
18
18
  import { registerSkillVisibilityCommand } from './commands/skill-visibility.js';
19
19
  import { registerPrimerCommand } from './commands/primer-command.js';
20
20
  import { registerReinjectCommand } from './commands/reinject-command.js';
21
- import { applyRetention, cleanupEccCache } from '../services/log/retention.js';
21
+ import { applyRetention } from '../services/log/retention.js';
22
22
  import { writeLogEntry, maybeWriteStderr } from '../services/log/logger.js';
23
23
  import { printSuperCommandCatalog } from './cli-helpers.js';
24
24
  export { printErrorEnvelope, printResult } from './cli-helpers.js';
25
- // Slice rid-001 (P0-1 envelope closure, fix #4): the prior default
26
25
  // `ProgramIO` funneled Commander's `configureOutput().writeErr` callback
27
26
  // through raw `console.error`, which bypassed the canonical envelope
28
27
  // path and left a `// TODO(g2): legacy console.error without envelope`
@@ -39,7 +38,6 @@ function defaultStdoutSink(text) {
39
38
  process.stdout.write(`${text}\n`);
40
39
  }
41
40
  /**
42
- * Slice 2026-06-16-cli-logging (G1, G2, G3, G7). One structured
43
41
  * `peaks-loop start` entry per CLI invocation, plus a 7-day
44
42
  * retention sweep. Wired into the global program so EVERY
45
43
  * peaks-loop command — even a bare `peaks` quickstart — writes
@@ -57,14 +55,9 @@ function bootstrapLogger(verbose) {
57
55
  // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
58
56
  /* best-effort retention sweep; never block the CLI */
59
57
  }
60
- // Slice 3 (on-demand-ecc): 7-day TTL sweep over ecc-<sha>/ cache dirs.
61
- try {
62
- cleanupEccCache({ retentionDays: 7, nowMs: Date.now() });
63
- }
64
- catch {
65
- // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
66
- /* best-effort ECC retention sweep; never block the CLI */
67
- }
58
+ // The ECC cache sweep that used to sit here is gone with the cache: ECC comes
59
+ // from the `ecc-universal` dependency, whose files expire when npm removes the
60
+ // package, not on a peaks-loop TTL.
68
61
  const dateOverride = process.env.PEAKS_LOG_DATE_OVERRIDE;
69
62
  const entry = {
70
63
  ts: new Date().toISOString(),
@@ -84,7 +77,6 @@ function bootstrapLogger(verbose) {
84
77
  maybeWriteStderr(entry, { verbose: true });
85
78
  }
86
79
  }
87
- // Slice 2026-06-16-cli-logging (AC1 regression fix, repair cycle 1):
88
80
  // Process-scoped guard so the bootstrap log line is written AT MOST
89
81
  // once per process, regardless of whether it fires from the
90
82
  // `preAction` hook (subcommand path) or from the version action
@@ -112,7 +104,6 @@ Run peaks (no arguments) for a quickstart. You likely want one of:
112
104
  writeOut: (text) => io.stdout(text.trimEnd()),
113
105
  writeErr: (text) => io.stderr(text.trimEnd())
114
106
  })
115
- // Slice 2026-06-16-cli-logging (AC1 regression fix, repair cycle 1):
116
107
  // We DO NOT use Commander's built-in `.version()` here. Commander's
117
108
  // built-in version handler short-circuits the program BEFORE the
118
109
  // `preAction` hook fires, which means a bare `peaks --version`
@@ -127,7 +118,6 @@ Run peaks (no arguments) for a quickstart. You likely want one of:
127
118
  // per process.
128
119
  .option('-v, --version', 'output the version number')
129
120
  .option('-V', 'output the version number')
130
- // Slice 2026-06-16-cli-logging (G3): global verbose flag. Mirrors
131
121
  // the PEAKS_LOG_LEVEL=debug env var; with this set, the logger
132
122
  // mirrors every entry to stderr IN ADDITION to the file.
133
123
  // Long-only: `-v` is already bound to `--version` by the
@@ -136,7 +126,6 @@ Run peaks (no arguments) for a quickstart. You likely want one of:
136
126
  .option('--verbose', 'mirror log lines to stderr (also: PEAKS_LOG_LEVEL=debug)')
137
127
  .hook('preAction', () => {
138
128
  const opts = program.opts();
139
- // Slice 2026-06-16-cli-logging (repair cycle 2): gate the bootstrap on
140
129
  // the same `bootstrapRan` guard the version action uses, so a single
141
130
  // process that invokes the program twice (vitest, programmatic) does
142
131
  // not emit duplicate `peaks-loop start` JSONL entries.
@@ -214,7 +203,6 @@ Run peaks (no arguments) for a quickstart. You likely want one of:
214
203
  // registerCoreAndArtifactCommands instead of being created twice.
215
204
  autoRegisterAllCommands(program, io);
216
205
  registerSkillVisibilityCommand(program, repoRoot);
217
- // Slice rid-statusline-stale-ux AC-2: register `peaks session primer`
218
206
  // so it appears in `peaks session --help` for LLM `<TAB>`-discovery.
219
207
  // Mounted as a CHILD of the existing `session` commander group
220
208
  // (verified at src/cli/commands/core/session-command.ts:32). NOT
@@ -1,6 +1,5 @@
1
1
  // src/reporters/bdd-reporter.ts
2
2
  //
3
- // rid-2026-08-05-bdd-test-style Slice C — vitest custom reporter that
4
3
  // emits a pure BDD document view of the run. Designed for business
5
4
  // reviewers and downstream LLM prompts; it is NOT a replacement for
6
5
  // the default reporter.
@@ -1,5 +1,4 @@
1
1
  /**
2
- * Slice 2026-09-09-mode-consolidation (Slice B): auto-engage may set the
3
2
  * 24h MODE — and ONLY the 24h mode.
4
3
  *
5
4
  * `24h` is the single mode that may be set without an explicit user pick
@@ -1,5 +1,4 @@
1
1
  /**
2
- * Slice 2026-09-09-mode-consolidation (Slice B): auto-engage may set the
3
2
  * 24h MODE — and ONLY the 24h mode.
4
3
  *
5
4
  * `24h` is the single mode that may be set without an explicit user pick
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * 24h mode B3 trigger evaluation + attempts counter.
3
3
  *
4
- * Rid-020a (state-only slice). `fireB3` is the single mutating
5
4
  * primitive: it increments the per-key counter and escalates with a
6
5
  * `B3Escalation` when the count reaches `B3_THRESHOLD` (3). The
7
6
  * counter is **per-key** — AC-T3 mandates B1 and B2 retries do not
@@ -95,8 +94,6 @@ export type HandoffExitCondition = (typeof HANDOFF_EXIT_CONDITIONS)[number];
95
94
  export declare function isHandoffExitCondition(s: string): s is HandoffExitCondition;
96
95
  export declare function isHandoffState(s: State): boolean;
97
96
  /**
98
- * Slice 2026-07-28 (rid-027), re-keyed by slice
99
- * 2026-09-09-mode-consolidation: resolve the auto-compact mode from
100
97
  * the PRESENCE MODE, not the 24h state machine. Returns `'partial'`
101
98
  * when the mode is `24h`, otherwise `'standard'`. This is the CLI-side
102
99
  * default; the explicit `--mode` flag in `peaks code auto-compact`
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * 24h mode B3 trigger evaluation + attempts counter.
3
3
  *
4
- * Rid-020a (state-only slice). `fireB3` is the single mutating
5
4
  * primitive: it increments the per-key counter and escalates with a
6
5
  * `B3Escalation` when the count reaches `B3_THRESHOLD` (3). The
7
6
  * counter is **per-key** — AC-T3 mandates B1 and B2 retries do not
@@ -132,8 +131,6 @@ export function isHandoffState(s) {
132
131
  return s === 'HANDOFF';
133
132
  }
134
133
  /**
135
- * Slice 2026-07-28 (rid-027), re-keyed by slice
136
- * 2026-09-09-mode-consolidation: resolve the auto-compact mode from
137
134
  * the PRESENCE MODE, not the 24h state machine. Returns `'partial'`
138
135
  * when the mode is `24h`, otherwise `'standard'`. This is the CLI-side
139
136
  * default; the explicit `--mode` flag in `peaks code auto-compact`
@@ -1,9 +1,7 @@
1
1
  /**
2
2
  * Public barrel for 24h-mode service module.
3
3
  *
4
- * Rid-020a (state-only slice). Exports the 6-state enum, the
5
4
  * DecisionKey enum, the persistence API, and the B3 decider API
6
- * so that the `peaks session 24h-mode` CLI (and future rid-020b
7
5
  * `peaks code run --24h`) can consume them without reaching into
8
6
  * the internal file layout.
9
7
  */
@@ -1,9 +1,7 @@
1
1
  /**
2
2
  * Public barrel for 24h-mode service module.
3
3
  *
4
- * Rid-020a (state-only slice). Exports the 6-state enum, the
5
4
  * DecisionKey enum, the persistence API, and the B3 decider API
6
- * so that the `peaks session 24h-mode` CLI (and future rid-020b
7
5
  * `peaks code run --24h`) can consume them without reaching into
8
6
  * the internal file layout.
9
7
  */
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * 24h mode state machine — state types + DecisionKey enum.
3
3
  *
4
- * Rid-020a (state-only slice). The proposal defines six states that
5
4
  * capture the lifecycle of a 24h code run; the DecisionKey enum is the
6
5
  * enumeration of B1/B2 decision keys whose retry counter lives in
7
6
  * `AttemptsMap`. Persistence and trigger evaluation live in sibling
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * 24h mode state machine — state types + DecisionKey enum.
3
3
  *
4
- * Rid-020a (state-only slice). The proposal defines six states that
5
4
  * capture the lifecycle of a 24h code run; the DecisionKey enum is the
6
5
  * enumeration of B1/B2 decision keys whose retry counter lives in
7
6
  * `AttemptsMap`. Persistence and trigger evaluation live in sibling
@@ -2,7 +2,6 @@
2
2
  * 24h mode persistence — atomic JSON snapshot under
3
3
  * `.peaks/_runtime/<sessionId>/24h-state.json`.
4
4
  *
5
- * Rid-020a (state-only slice). The store never invents a session id:
6
5
  * the caller passes one (the CLI resolves it from `.peaks/_runtime/session.json`).
7
6
  * Writes use the temp-file + rename pattern so a crash mid-write never
8
7
  * leaves a half-written state file (atomic on POSIX, near-atomic on
@@ -2,7 +2,6 @@
2
2
  * 24h mode persistence — atomic JSON snapshot under
3
3
  * `.peaks/_runtime/<sessionId>/24h-state.json`.
4
4
  *
5
- * Rid-020a (state-only slice). The store never invents a session id:
6
5
  * the caller passes one (the CLI resolves it from `.peaks/_runtime/session.json`).
7
6
  * Writes use the temp-file + rename pattern so a crash mid-write never
8
7
  * leaves a half-written state file (atomic on POSIX, near-atomic on
@@ -1,5 +1,4 @@
1
1
  /**
2
- * Adapter registry — slice S2-a of RD-2.
3
2
  *
4
3
  * Persists user-registered vendor adapters to
5
4
  * `.peaks/runtime/adapters.json` and resolves them by id. The
@@ -49,13 +49,9 @@ export type ArtifactPrerequisite = {
49
49
  legacyRelativePath?: string;
50
50
  /**
51
51
  * Further, older locations, tried **in declared order** after
52
- * `legacyRelativePath`. Slice `2026-09-14-audit-artifact-rid-scoping`
53
52
  * added this because the two audit artifacts have a two-release
54
- * history behind their rid-scoped path: the pre-rid-scoping
55
53
  * `audit/security.md` (v2.12.0) and, behind it, the v2.11.x
56
54
  * `rd/security-review.md`. Three sessions on disk
57
- * (`2026-09-06-session-a87ca4`, `2026-09-10-session-528a63`,
58
- * `2026-09-12-session-e37ef0`) hold their security evidence only at
59
55
  * the last of those, so the oldest tier still has to resolve.
60
56
  */
61
57
  legacyRelativePaths?: ReadonlyArray<string>;
@@ -67,7 +63,6 @@ export type PrerequisiteCheckResult = {
67
63
  description: string;
68
64
  }>;
69
65
  /**
70
- * v2.13.2 AC-5 — soft-block warnings. Each entry is a prereq
71
66
  * path that is currently missing but is in a 1-minor-release
72
67
  * back-compat window. The transition gate does not throw on
73
68
  * `missing`-only (so legacy callers keep working) but surfaces the
@@ -27,7 +27,6 @@ const BUG_ANALYSIS = {
27
27
  description: 'Bug root-cause analysis (reproduction, affected paths, fix approach, regression test plan)',
28
28
  mustContain: ['## Root cause', '## Fix approach']
29
29
  };
30
- // Slice `2026-09-14-audit-artifact-rid-scoping`: the rid is part of the
31
30
  // filename (`code-review-<rid>.md`). A fixed per-session path cannot hold
32
31
  // two slices' evidence at once — the second slice's write silently
33
32
  // destroyed the first slice's on 2026-09-13, and the gate stayed green
@@ -66,13 +65,11 @@ const PERF_BASELINE = {
66
65
  // handoff (`prd/handoff.md`) — see `AUDIT_REQUIRES_HANDOFF` below.
67
66
  //
68
67
  // Back-compat: the canonical location is `audit/security-<rid>.md`
69
- // (and `audit/perf-<rid>.md`); the pre-rid-scoping `audit/security.md`
70
68
  // (and `audit/perf.md`) plus the older `rd/security-review.md` (and
71
69
  // `rd/perf-baseline.md`) are accepted via `legacyRelativePaths`, in
72
70
  // that order, for the back-compat window.
73
71
  const AUDIT_SECURITY = {
74
72
  relativePath: 'audit/security-<rid>.md',
75
- // Two legacy tiers behind the rid-scoped path: the pre-rid-scoping
76
73
  // v2.12.0 location, then the v2.11.x one. Both are live on disk.
77
74
  legacyRelativePath: 'audit/security.md',
78
75
  legacyRelativePaths: ['rd/security-review.md'],
@@ -108,22 +105,18 @@ const AUDIT_PERF = {
108
105
  // rd-side CLI hard gate (blocks `rd → qa-handoff`), while qa-side
109
106
  // consumption remains soft.
110
107
  //
111
- // v2.13.2 AC-5 — 1-minor-release back-compat window. When
112
108
  // `backCompat: true` is set, a MISSING file downgrades to a warning
113
109
  // (`mut-report-missing-deprecated-in-v2.14.0`) instead of a hard
114
110
  // failure. The hard-fail behavior for `passed: false` is preserved
115
111
  // (the body still has to carry `"passed": true` when present).
116
112
  // v2.14.0 will remove `backCompat` and re-elevate missing → throw.
117
113
  //
118
- // Slice `2026-09-14-audit-artifact-rid-scoping` deliberately does NOT
119
- // rid-scope this path, unlike the four audit/review artifacts above. The
120
114
  // repo's own producer/reader constant is `mutReportPath()` in
121
115
  // `packages/peaks-loop-mut/src/services/mut/report-loader.ts`, which names
122
116
  // `mut/mut-report.json`, and `peaks mut run`'s `--out` is supplied by the
123
117
  // caller. A `<rid>`-templated requirement here would be a name no producer
124
118
  // in the repo can write — a gate that exists only in prose, sitting behind
125
119
  // `backCompat: true` so it gates nothing at all. If mut ever gains a
126
- // rid-scoped producer, the constant and this path move together.
127
120
  const MUT_REPORT = {
128
121
  relativePath: 'mut/mut-report.json',
129
122
  description: 'peaks-mut mutation + weak-assertion report (Plan 2, v2.12.0+). v2.13.1: required at rd:qa-handoff for feature / bugfix / refactor slices. v2.13.2: back-compat window — missing file downgrades to a warning (1-minor-release); passed:false still throws. The body must carry `"passed": true` when present; failed runs are blocked at this gate. CONFIG / DOCS / CHORE slices retain the legacy "no acceptance surface" exemption.',
@@ -137,10 +130,8 @@ const MUT_REPORT = {
137
130
  };
138
131
  // v2.12.0 Group B Tier 5 — gate that the peaks-prd handoff (the
139
132
  // immutable, per-slice handoff capsule at `prd/handoff-<rid>.md`
140
- // since slice `2026-09-14-prd-capsule-rid-scoping`) exists before any
141
133
  // audit skill is allowed to consume it. The peaks-security-audit
142
134
  // and peaks-perf-audit CLI commands read frontmatter from the
143
- // capsule (AC-2.4 / AC-3.4); if the handoff is missing the
144
135
  // audit skill aborts — and so should the prereq gate when those
145
136
  // audits are required at rd:qa-handoff.
146
137
  //
@@ -150,7 +141,6 @@ const MUT_REPORT = {
150
141
  // PRD handoff exists for small CONFIG-only commits).
151
142
  const AUDIT_REQUIRES_HANDOFF = {
152
143
  relativePath: 'prd/handoff-<rid>.md',
153
- // Slice `2026-09-14-prd-capsule-rid-scoping`: the rid is part of the
154
144
  // filename, like the four audit/review artifacts above. A single slot per
155
145
  // SESSION cannot hold two slices' capsules — `peaks prd handoff init`
156
146
  // overwrote it on every call, and this gate stayed green because it pinned
@@ -159,9 +149,7 @@ const AUDIT_REQUIRES_HANDOFF = {
159
149
  // prerequisite on a capsule written for a different line of work.
160
150
  // The bare path stays accepted (see `legacyRelativePath`) so the three
161
151
  // sessions on disk that hold only `prd/handoff.md` keep passing. That tier
162
- // is rid-blind by design — the scoping binds for capsules written from now
163
152
  // on, and every producer (`handoff-service.initHandoff`,
164
- // `handoff-auto-regen`, `evidence generate`) writes the rid-scoped name.
165
153
  legacyRelativePath: 'prd/handoff.md',
166
154
  description: 'PRD handoff capsule (v2.12.0+) — peaks-security-audit / peaks-perf-audit both read frontmatter from this file. Must exist before audit prereqs are evaluated at rd:qa-handoff. The rid is part of the filename so two slices in one session do not collide; the bare pre-rid-scoping location is accepted as the legacy tier.',
167
155
  // Empty `mustContain` is fine — file existence is the contract.
@@ -200,7 +188,6 @@ const KARPATHY_REVIEW = {
200
188
  // pass the gate. The full envelope lives at the JSON sibling path
201
189
  // (`rd/third-party-review.json`); this MD file is the human-readable
202
190
  // companion. The body is also expected to declare a `modelFamily`
203
- // distinct from the karpathy-reviewer's modelFamily (AC-4.4 — the CI
204
191
  // gate diffs `rd/third-party-review.json.modelFamily` against
205
192
  // `rd/karpathy-review.md` parsed `modelFamily`); equality fails the
206
193
  // build. When `~/.peaks/config.json` lacks a `reviewer.providers`
@@ -249,7 +236,6 @@ const PRD_CONTENT = {
249
236
  // describe business behavior" — and `it(` is the dominant one by ~8x.
250
237
  // Measured 2026-09-16 (`grep -rho '\bit(' tests | wc -l`, same for `test(`):
251
238
  // `it(` 3015 vs `test(` 372 across `tests/`; the three test files slice
252
- // 2026-09-16-codegraph-index-integrity added contain `it(` 58 / `test(` 0.
253
239
  // The gate was in fact passing on artifacts whose ONLY `test(` was prose —
254
240
  // including this repo's own generated template `buildTestCases`
255
241
  // (`src/services/evidence/evidence-generator.ts`), which literally reads
@@ -462,7 +448,6 @@ export async function checkPrerequisites(options) {
462
448
  if (options.sessionId !== undefined && isUnsafePathInput(options.sessionId)) {
463
449
  throw new Error(`Invalid session id: ${options.sessionId} (must be a single path segment)`);
464
450
  }
465
- // Slice 006 simplifies the resolution to a 2-tier fallback. The
466
451
  // per-change-id scope (`.peaks/_runtime/<sessionId>/<role>/`) is gone — new
467
452
  // artifacts go to the session dir directly. The 2 tiers are:
468
453
  // 1. `.peaks/_runtime/<sid>/<role>/...` (post-F3 canonical
@@ -481,7 +466,6 @@ export async function checkPrerequisites(options) {
481
466
  const relative = resolvePrerequisitePath(prerequisite, options.requestId);
482
467
  const absolute = await resolvePrerequisiteAbsolutePathWithFallback(canonicalSessionRoot, legacySessionRoot, prerequisite, options.requestId);
483
468
  if (absolute === null) {
484
- // v2.13.2 AC-5: back-compat window for MUT_REPORT — missing
485
469
  // file downgrades to a warning, NOT a hard failure. v2.14.0
486
470
  // will remove this branch and re-elevate missing → throw.
487
471
  const backCompat = prerequisite.backCompat === true;
@@ -503,7 +487,6 @@ export async function checkPrerequisites(options) {
503
487
  }
504
488
  }
505
489
  }
506
- // GATE C, second half (B2, rid `rid-b2-gate-evidence-wiring`): the capsule's
507
490
  // own `gateEvidence` DECLARATION must be true — every path it names must
508
491
  // exist. The table loop above owns "which artifacts this type must produce";
509
492
  // this owns "the handoff may not claim evidence it does not have". They are
@@ -570,7 +553,6 @@ function emitPrereqTransitionEvent(opts) {
570
553
  }
571
554
  /**
572
555
  * Resolve a prerequisite to an on-disk path, with a 2-tier fallback
573
- * (slice 006 — the per-change-id tier was dropped because per-change-id
574
556
  * dirs are no longer created):
575
557
  * 1. `<canonicalSessionRoot>/<relative>` (post-F3 canonical session
576
558
  * home, when `canonicalSessionRoot` is provided).
@@ -586,7 +568,6 @@ function emitPrereqTransitionEvent(opts) {
586
568
  * missing. This covers both artifacts that moved location
587
569
  * (`rd/security-review.md` → `audit/security.md`) and ones that later
588
570
  * gained a rid in the filename (`audit/security.md` →
589
- * `audit/security-<rid>.md`, slice `2026-09-14-audit-artifact-rid-scoping`).
590
571
  */
591
572
  async function resolvePrerequisiteAbsolutePathWithFallback(canonicalSessionRoot, legacySessionRoot, prerequisite, requestId) {
592
573
  const roots = [canonicalSessionRoot, legacySessionRoot];
@@ -9,7 +9,6 @@ export type RequestArtifactRole = 'prd' | 'ui' | 'rd' | 'qa' | 'sc';
9
9
  /**
10
10
  * Handoff path helpers.
11
11
  *
12
- * Slice 2026-06-29-change-id-root-removal: all handoff paths now key
13
12
  * on the session-id axis (`.peaks/_runtime/<sessionId>/<role>/...`)
14
13
  * instead of the deleted change-id axis
15
14
  * (`.peaks/_runtime/change/<sessionId>/<role>/...`). The session
@@ -2,7 +2,6 @@ import { PRD_TEMPLATE_BODY, UI_TEMPLATE_BODY, RD_TEMPLATE_BODY, QA_TEMPLATE_BODY
2
2
  /**
3
3
  * Handoff path helpers.
4
4
  *
5
- * Slice 2026-06-29-change-id-root-removal: all handoff paths now key
6
5
  * on the session-id axis (`.peaks/_runtime/<sessionId>/<role>/...`)
7
6
  * instead of the deleted change-id axis
8
7
  * (`.peaks/_runtime/change/<sessionId>/<role>/...`). The session
@@ -19,7 +19,6 @@ export type CreateRequestArtifactOptions = {
19
19
  requestType?: RequestType;
20
20
  clock?: () => string;
21
21
  /**
22
- * Slice 020 — caller-keyed session binding. The callerId that initiated
23
22
  * this artifact creation (resolved via `resolveCallerId` by the CLI).
24
23
  * Recorded in the JSON envelope and on the artifact body's frontmatter
25
24
  * so a future reader knows which caller produced it. The caller-keyed
@@ -37,13 +36,11 @@ export type CreateRequestArtifactResult = {
37
36
  content: string;
38
37
  applied: boolean;
39
38
  /**
40
- * Slice 020 — caller-keyed session binding. The resolved callerId
41
39
  * (D4 priority: flag > env > platform fallback) when --caller-id
42
40
  * was passed. Omitted from the result when no callerId was set.
43
41
  */
44
42
  callerId?: string;
45
43
  /**
46
- * Slice 2026-06-23-request-init-change-scope-leak. The session-axis
47
44
  * dir resolved under `.peaks/_runtime/<sid>/`. Always populated so
48
45
  * the sub-agent prompt can report a stable, canonical scope
49
46
  * location to the writer.
@@ -51,7 +48,6 @@ export type CreateRequestArtifactResult = {
51
48
  scopeDir: string;
52
49
  };
53
50
  /**
54
- * F-1 (slice 025 security): reject rids that contain path separators, null
55
51
  * bytes, or traversal sequences. A request id is a single path segment, so
56
52
  * anything that builds a filename from one must test it against this first —
57
53
  * it is exported so those call sites reuse it instead of re-declaring a copy
@@ -63,7 +59,6 @@ export type RequestArtifactSummary = {
63
59
  role: RequestArtifactRole;
64
60
  /**
65
61
  * Durable scope of the artifact: the top-level `.peaks/_runtime/<sessionId>/`
66
- * directory the file lives in. As of slice 2026-06-05-change-id-as-unit-of-work,
67
62
  * the prerequisite gate resolves paths under this dir (not the body
68
63
  * `- session:` line), so the file body and the on-disk path agree.
69
64
  */
@@ -4,7 +4,6 @@ import { dirname, join } from 'node:path';
4
4
  import { isDirectory, listDirectories } from 'peaks-loop-shared/fs';
5
5
  import { checkPrerequisites, DEFAULT_REQUEST_TYPE, isRequestType, VALID_REQUEST_TYPES } from './artifact-prerequisites.js';
6
6
  import { ensureSession, getSessionIdCanonical } from '../session/session-manager.js';
7
- // Slice 2026-06-29-change-id-root-removal: `getCurrentChangeId` was
8
7
  // removed with the change-id axis. The change-id binding file is
9
8
  // gone; request-artifact callers pass `options.sessionId` explicitly
10
9
  // or accept the requestId as the default. Path-safety helpers now
@@ -22,7 +21,6 @@ export { VALID_REQUEST_TYPES, DEFAULT_REQUEST_TYPE, isRequestType };
22
21
  // tests) keep importing from this module unchanged. The render templates,
23
22
  // handoff-path helpers, and `RequestArtifactRole` type all live in the
24
23
  // sibling `artifact-templates.ts` module — see slice
25
- // 2026-06-24-handoff-path-canonicalization for the rationale.
26
24
  //
27
25
  // `import type` is required so the type is in scope as a bare identifier
28
26
  // within this file (the value re-export alone does not bring types into
@@ -30,7 +28,6 @@ export { VALID_REQUEST_TYPES, DEFAULT_REQUEST_TYPE, isRequestType };
30
28
  import { renderTemplate } from './artifact-templates.js';
31
29
  export { formatHandoffPath, formatCommitBoundaryPath, formatSkillUsageLessonsPath } from './artifact-templates.js';
32
30
  /**
33
- * F-1 (slice 025 security): reject rids that contain path separators, null
34
31
  * bytes, or traversal sequences. A request id is a single path segment, so
35
32
  * anything that builds a filename from one must test it against this first —
36
33
  * it is exported so those call sites reuse it instead of re-declaring a copy
@@ -65,7 +62,6 @@ function defaultSessionId(iso) {
65
62
  * — from `emitObservabilityEvent`'s own session-id check, i.e. after the write.
66
63
  */
67
64
  function requestArtifactRequestsDir(projectRoot, sessionId, role) {
68
- // Slice 2026-09-15 (runtime-path-unrepresentable): the two ids are branded by
69
65
  // `guardRuntimeSegment`, which performs the same `isUnsafePathInput` check
70
66
  // this function used to spell inline. The join itself now *requires* the
71
67
  // brand, so a caller that reaches this dir without a guard does not compile.
@@ -84,7 +80,6 @@ export async function createRequestArtifact(options) {
84
80
  // Use provided session ID or get/create current session. The session
85
81
  // id is the binding for the artifact file's location.
86
82
  //
87
- // Slice 006 collapses the per-change-id top-level dirs. The artifact
88
83
  // file is now written under the SESSION dir
89
84
  // (`.peaks/_runtime/<sid>/<role>/requests/`) instead of the
90
85
  // change-id dir. The 2-tier fallback (canonical session → legacy
@@ -100,17 +95,14 @@ export async function createRequestArtifact(options) {
100
95
  if (isUnsafePathInput(sessionId)) {
101
96
  throw new Error(`Invalid session id: ${sessionId} (must be a single path segment)`);
102
97
  }
103
- // Slice 2026-06-29-change-id-root-removal: the `current-change`
104
98
  // binding file is gone. Resolution order for the change-id (file
105
99
  // body metadata) is now:
106
100
  // 1. Explicit `options.sessionId` (CLI `--change-id`).
107
101
  // 2. The requestId itself (every request is its own scope by default).
108
102
  const sessionSlug = options.sessionId ?? options.requestId;
109
- // Slice 008 (F21 fix): fail fast when the resolved session id
110
103
  // looks like a real session id (matches the date+session prefix)
111
104
  // but does NOT correspond to an actual session dir under
112
105
  // `.peaks/_runtime/`. Pre-F21 a sub-agent with a typo or stale
113
- // binding (e.g. `2025-01-01-session-deadbe`) silently planned
114
106
  // to write to a non-existent path. The check is intentionally
115
107
  // scoped to "looks like a real session id" — a sid like
116
108
  // `test-session` or `s` (no date prefix) is allowed through so
@@ -137,7 +129,6 @@ export async function createRequestArtifact(options) {
137
129
  // The writer lowercases the request id into a kebab slug
138
130
  // (`buildNumberedFilename`), so the duplicate-detection endsWith must
139
131
  // compare against the SAME slug — a mixed-case id like
140
- // `2026-09-06-split-batchA` is stored as `...-split-batcha.md`.
141
132
  const slug = slugifyDescription(options.requestId);
142
133
  const alreadyExists = existingFiles.some((file) => {
143
134
  if (file === `${options.requestId}.md`)
@@ -155,7 +146,6 @@ export async function createRequestArtifact(options) {
155
146
  const path = join(requestsDir, filename);
156
147
  const content = renderTemplate(options.role, options.requestId, sessionId, sessionSlug, timestamp, requestType);
157
148
  if (options.apply !== true) {
158
- // Slice 2026-06-29-change-id-root-removal: scopeDir is the
159
149
  // session-axis dir (`.peaks/_runtime/<sid>/`). Pre-resolved here
160
150
  // so dry-run output reports the canonical scope location.
161
151
  const scopeDir = runtimeRoot(options.projectRoot).join(guardRuntimeSegment(sessionId, 'session id'));
@@ -312,7 +302,6 @@ export async function showRequestArtifact(options) {
312
302
  // Search for files matching the requestId (supports both legacy and numbered formats)
313
303
  // The numbered format lowercases the request id into a kebab slug
314
304
  // (`buildNumberedFilename`), so the endsWith must compare against the SAME
315
- // slug — a mixed-case id like `2026-09-06-split-batchA` is stored as
316
305
  // `...-split-batcha.md` and must still resolve here.
317
306
  const slug = slugifyDescription(options.requestId);
318
307
  const findFileInDir = async (dir) => {
@@ -422,7 +411,6 @@ export async function transitionRequestArtifact(options) {
422
411
  // (Removed in v2.11.0 Group A: the tech-doc-presence + tech-doc-mandatory-
423
412
  // sections gates. The rd → spec-locked transition now relies on the
424
413
  // immutable peaks-prd handoff (sha256-frontmatter) for the same intent;
425
- // see PRD for `v2-11-rd-techdoc-removal-and-runtime-friction` AC-3/AC-4.)
426
414
  // Type sanity check for PRD handoff
427
415
  if (options.typeSanityCheck !== undefined &&
428
416
  options.role === 'prd' &&
@@ -10,7 +10,6 @@ export declare class PrerequisitesNotSatisfiedError extends Error {
10
10
  readonly sessionId: string;
11
11
  readonly missing: PrerequisiteCheckResult['missing'];
12
12
  /**
13
- * v2.13.3 AC-3 — soft-block warnings carried alongside the missing
14
13
  * entries. Surfaced in the CLI error response under `data.warnings`
15
14
  * so the operator can see which prereqs were soft-blocked under
16
15
  * the 1-minor-release back-compat window (e.g. MUT_REPORT). Always
@@ -15,7 +15,6 @@ export class PrerequisitesNotSatisfiedError extends Error {
15
15
  sessionId;
16
16
  missing;
17
17
  /**
18
- * v2.13.3 AC-3 — soft-block warnings carried alongside the missing
19
18
  * entries. Surfaced in the CLI error response under `data.warnings`
20
19
  * so the operator can see which prereqs were soft-blocked under
21
20
  * the 1-minor-release back-compat window (e.g. MUT_REPORT). Always
@@ -1,5 +1,4 @@
1
1
  /**
2
- * Audit artifact writer — Slice 2026-06-26-audit-artifact-writer-generalization.
3
2
  *
4
3
  * Generalizes the original `decision-writer.ts` (which only knew how to
5
4
  * persist a `RedLineAudit` snapshot) into a polymorphic writer that
@@ -1,5 +1,4 @@
1
1
  /**
2
- * Audit artifact writer — Slice 2026-06-26-audit-artifact-writer-generalization.
3
2
  *
4
3
  * Generalizes the original `decision-writer.ts` (which only knew how to
5
4
  * persist a `RedLineAudit` snapshot) into a polymorphic writer that