peaks-loop 3.0.0

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 (1052) hide show
  1. package/.claude-plugin/marketplace.json +51 -0
  2. package/CHANGELOG.md +3136 -0
  3. package/LICENSE +21 -0
  4. package/README-en.md +281 -0
  5. package/README.md +365 -0
  6. package/agents/karpathy-reviewer.md +229 -0
  7. package/bin/peaks.js +2 -0
  8. package/dist/src/cli/cli-helpers.d.ts +25 -0
  9. package/dist/src/cli/cli-helpers.js +78 -0
  10. package/dist/src/cli/commands/agent-commands.d.ts +20 -0
  11. package/dist/src/cli/commands/agent-commands.js +48 -0
  12. package/dist/src/cli/commands/audit-commands.d.ts +28 -0
  13. package/dist/src/cli/commands/audit-commands.js +437 -0
  14. package/dist/src/cli/commands/capability-commands.d.ts +16 -0
  15. package/dist/src/cli/commands/capability-commands.js +45 -0
  16. package/dist/src/cli/commands/capability-worker-config-sc-commands.d.ts +3 -0
  17. package/dist/src/cli/commands/capability-worker-config-sc-commands.js +10 -0
  18. package/dist/src/cli/commands/classify-classify-commands.d.ts +19 -0
  19. package/dist/src/cli/commands/classify-classify-commands.js +151 -0
  20. package/dist/src/cli/commands/code-review-commands.d.ts +34 -0
  21. package/dist/src/cli/commands/code-review-commands.js +83 -0
  22. package/dist/src/cli/commands/codegraph-commands.d.ts +3 -0
  23. package/dist/src/cli/commands/codegraph-commands.js +99 -0
  24. package/dist/src/cli/commands/complexity-commands.d.ts +9 -0
  25. package/dist/src/cli/commands/complexity-commands.js +34 -0
  26. package/dist/src/cli/commands/config-commands.d.ts +3 -0
  27. package/dist/src/cli/commands/config-commands.js +220 -0
  28. package/dist/src/cli/commands/context-builder-commands.d.ts +11 -0
  29. package/dist/src/cli/commands/context-builder-commands.js +85 -0
  30. package/dist/src/cli/commands/context-commands.d.ts +21 -0
  31. package/dist/src/cli/commands/context-commands.js +254 -0
  32. package/dist/src/cli/commands/contract-commands.d.ts +26 -0
  33. package/dist/src/cli/commands/contract-commands.js +114 -0
  34. package/dist/src/cli/commands/core/artifacts-command.d.ts +3 -0
  35. package/dist/src/cli/commands/core/artifacts-command.js +62 -0
  36. package/dist/src/cli/commands/core/binding-commands.d.ts +3 -0
  37. package/dist/src/cli/commands/core/binding-commands.js +58 -0
  38. package/dist/src/cli/commands/core/doctor-command.d.ts +11 -0
  39. package/dist/src/cli/commands/core/doctor-command.js +204 -0
  40. package/dist/src/cli/commands/core/memory-command.d.ts +3 -0
  41. package/dist/src/cli/commands/core/memory-command.js +98 -0
  42. package/dist/src/cli/commands/core/profile-command.d.ts +3 -0
  43. package/dist/src/cli/commands/core/profile-command.js +9 -0
  44. package/dist/src/cli/commands/core/proxy-command.d.ts +3 -0
  45. package/dist/src/cli/commands/core/proxy-command.js +26 -0
  46. package/dist/src/cli/commands/core/session-command.d.ts +3 -0
  47. package/dist/src/cli/commands/core/session-command.js +213 -0
  48. package/dist/src/cli/commands/core/skill-command.d.ts +3 -0
  49. package/dist/src/cli/commands/core/skill-command.js +275 -0
  50. package/dist/src/cli/commands/core/standards-command.d.ts +3 -0
  51. package/dist/src/cli/commands/core/standards-command.js +95 -0
  52. package/dist/src/cli/commands/core-artifact-commands.d.ts +15 -0
  53. package/dist/src/cli/commands/core-artifact-commands.js +31 -0
  54. package/dist/src/cli/commands/dispatch-commands.d.ts +10 -0
  55. package/dist/src/cli/commands/dispatch-commands.js +351 -0
  56. package/dist/src/cli/commands/dispatch-from-dag.d.ts +3 -0
  57. package/dist/src/cli/commands/dispatch-from-dag.js +251 -0
  58. package/dist/src/cli/commands/doc-commands.d.ts +11 -0
  59. package/dist/src/cli/commands/doc-commands.js +65 -0
  60. package/dist/src/cli/commands/feedback-commands.d.ts +18 -0
  61. package/dist/src/cli/commands/feedback-commands.js +145 -0
  62. package/dist/src/cli/commands/final-review-commands.d.ts +31 -0
  63. package/dist/src/cli/commands/final-review-commands.js +161 -0
  64. package/dist/src/cli/commands/fixture-commands.d.ts +32 -0
  65. package/dist/src/cli/commands/fixture-commands.js +91 -0
  66. package/dist/src/cli/commands/fork-commands.d.ts +16 -0
  67. package/dist/src/cli/commands/fork-commands.js +163 -0
  68. package/dist/src/cli/commands/gate-commands.d.ts +3 -0
  69. package/dist/src/cli/commands/gate-commands.js +117 -0
  70. package/dist/src/cli/commands/heartbeat-commands.d.ts +3 -0
  71. package/dist/src/cli/commands/heartbeat-commands.js +135 -0
  72. package/dist/src/cli/commands/hook-handle.d.ts +17 -0
  73. package/dist/src/cli/commands/hook-handle.js +157 -0
  74. package/dist/src/cli/commands/hooks-commands.d.ts +3 -0
  75. package/dist/src/cli/commands/hooks-commands.js +156 -0
  76. package/dist/src/cli/commands/impact-commands.d.ts +15 -0
  77. package/dist/src/cli/commands/impact-commands.js +62 -0
  78. package/dist/src/cli/commands/legacy-commands.d.ts +11 -0
  79. package/dist/src/cli/commands/legacy-commands.js +32 -0
  80. package/dist/src/cli/commands/log-commands.d.ts +17 -0
  81. package/dist/src/cli/commands/log-commands.js +64 -0
  82. package/dist/src/cli/commands/loop-commands.d.ts +21 -0
  83. package/dist/src/cli/commands/loop-commands.js +128 -0
  84. package/dist/src/cli/commands/loop-eval-commands.d.ts +20 -0
  85. package/dist/src/cli/commands/loop-eval-commands.js +526 -0
  86. package/dist/src/cli/commands/memory-commands.d.ts +23 -0
  87. package/dist/src/cli/commands/memory-commands.js +129 -0
  88. package/dist/src/cli/commands/migrate-1-4-1-command.d.ts +11 -0
  89. package/dist/src/cli/commands/migrate-1-4-1-command.js +34 -0
  90. package/dist/src/cli/commands/migrate-v2-10-to-v2-11-command.d.ts +20 -0
  91. package/dist/src/cli/commands/migrate-v2-10-to-v2-11-command.js +52 -0
  92. package/dist/src/cli/commands/mut-commands.d.ts +20 -0
  93. package/dist/src/cli/commands/mut-commands.js +239 -0
  94. package/dist/src/cli/commands/observability-commands.d.ts +22 -0
  95. package/dist/src/cli/commands/observability-commands.js +201 -0
  96. package/dist/src/cli/commands/openspec-commands.d.ts +3 -0
  97. package/dist/src/cli/commands/openspec-commands.js +237 -0
  98. package/dist/src/cli/commands/perf-audit-commands.d.ts +22 -0
  99. package/dist/src/cli/commands/perf-audit-commands.js +132 -0
  100. package/dist/src/cli/commands/perf-commands.d.ts +3 -0
  101. package/dist/src/cli/commands/perf-commands.js +41 -0
  102. package/dist/src/cli/commands/playwright-commands.d.ts +95 -0
  103. package/dist/src/cli/commands/playwright-commands.js +432 -0
  104. package/dist/src/cli/commands/prd-blocks-commands.d.ts +18 -0
  105. package/dist/src/cli/commands/prd-blocks-commands.js +50 -0
  106. package/dist/src/cli/commands/prd-commands.d.ts +18 -0
  107. package/dist/src/cli/commands/prd-commands.js +141 -0
  108. package/dist/src/cli/commands/preferences-commands.d.ts +2 -0
  109. package/dist/src/cli/commands/preferences-commands.js +197 -0
  110. package/dist/src/cli/commands/project-commands.d.ts +3 -0
  111. package/dist/src/cli/commands/project-commands.js +248 -0
  112. package/dist/src/cli/commands/qa-business-review-commands.d.ts +17 -0
  113. package/dist/src/cli/commands/qa-business-review-commands.js +148 -0
  114. package/dist/src/cli/commands/qa-commands.d.ts +94 -0
  115. package/dist/src/cli/commands/qa-commands.js +271 -0
  116. package/dist/src/cli/commands/release-commands.d.ts +24 -0
  117. package/dist/src/cli/commands/release-commands.js +231 -0
  118. package/dist/src/cli/commands/request-commands.d.ts +3 -0
  119. package/dist/src/cli/commands/request-commands.js +509 -0
  120. package/dist/src/cli/commands/retrospective-commands.d.ts +12 -0
  121. package/dist/src/cli/commands/retrospective-commands.js +175 -0
  122. package/dist/src/cli/commands/reviewer-commands.d.ts +14 -0
  123. package/dist/src/cli/commands/reviewer-commands.js +64 -0
  124. package/dist/src/cli/commands/role-commands.d.ts +13 -0
  125. package/dist/src/cli/commands/role-commands.js +85 -0
  126. package/dist/src/cli/commands/sc-commands.d.ts +3 -0
  127. package/dist/src/cli/commands/sc-commands.js +45 -0
  128. package/dist/src/cli/commands/scan-commands.d.ts +3 -0
  129. package/dist/src/cli/commands/scan-commands.js +445 -0
  130. package/dist/src/cli/commands/security-audit-commands.d.ts +23 -0
  131. package/dist/src/cli/commands/security-audit-commands.js +132 -0
  132. package/dist/src/cli/commands/session-checkpoint-command.d.ts +10 -0
  133. package/dist/src/cli/commands/session-checkpoint-command.js +100 -0
  134. package/dist/src/cli/commands/session-resume-command.d.ts +11 -0
  135. package/dist/src/cli/commands/session-resume-command.js +83 -0
  136. package/dist/src/cli/commands/share-commands.d.ts +17 -0
  137. package/dist/src/cli/commands/share-commands.js +296 -0
  138. package/dist/src/cli/commands/skill-conformance-commands.d.ts +9 -0
  139. package/dist/src/cli/commands/skill-conformance-commands.js +39 -0
  140. package/dist/src/cli/commands/slice-commands.d.ts +24 -0
  141. package/dist/src/cli/commands/slice-commands.js +492 -0
  142. package/dist/src/cli/commands/slice-integrate-commands.d.ts +11 -0
  143. package/dist/src/cli/commands/slice-integrate-commands.js +74 -0
  144. package/dist/src/cli/commands/slice-review-commands.d.ts +23 -0
  145. package/dist/src/cli/commands/slice-review-commands.js +162 -0
  146. package/dist/src/cli/commands/smoke-commands.d.ts +21 -0
  147. package/dist/src/cli/commands/smoke-commands.js +203 -0
  148. package/dist/src/cli/commands/solo-commands.d.ts +80 -0
  149. package/dist/src/cli/commands/solo-commands.js +435 -0
  150. package/dist/src/cli/commands/sop-commands.d.ts +3 -0
  151. package/dist/src/cli/commands/sop-commands.js +215 -0
  152. package/dist/src/cli/commands/statusline-commands.d.ts +3 -0
  153. package/dist/src/cli/commands/statusline-commands.js +169 -0
  154. package/dist/src/cli/commands/sub-agent-commands.d.ts +22 -0
  155. package/dist/src/cli/commands/sub-agent-commands.js +19 -0
  156. package/dist/src/cli/commands/sub-agent-dispatch-guard.d.ts +55 -0
  157. package/dist/src/cli/commands/sub-agent-dispatch-guard.js +57 -0
  158. package/dist/src/cli/commands/sub-agent-shared.d.ts +99 -0
  159. package/dist/src/cli/commands/sub-agent-shared.js +67 -0
  160. package/dist/src/cli/commands/test-commands.d.ts +47 -0
  161. package/dist/src/cli/commands/test-commands.js +204 -0
  162. package/dist/src/cli/commands/understand-commands.d.ts +3 -0
  163. package/dist/src/cli/commands/understand-commands.js +112 -0
  164. package/dist/src/cli/commands/upgrade-commands.d.ts +23 -0
  165. package/dist/src/cli/commands/upgrade-commands.js +119 -0
  166. package/dist/src/cli/commands/user-touchpoint-commands.d.ts +18 -0
  167. package/dist/src/cli/commands/user-touchpoint-commands.js +78 -0
  168. package/dist/src/cli/commands/verdict-aggregate-command.d.ts +14 -0
  169. package/dist/src/cli/commands/verdict-aggregate-command.js +106 -0
  170. package/dist/src/cli/commands/worker-commands.d.ts +3 -0
  171. package/dist/src/cli/commands/worker-commands.js +52 -0
  172. package/dist/src/cli/commands/workflow-commands.d.ts +3 -0
  173. package/dist/src/cli/commands/workflow-commands.js +535 -0
  174. package/dist/src/cli/commands/workflow-plan-commands.d.ts +39 -0
  175. package/dist/src/cli/commands/workflow-plan-commands.js +163 -0
  176. package/dist/src/cli/commands/workspace/clean-command.d.ts +14 -0
  177. package/dist/src/cli/commands/workspace/clean-command.js +49 -0
  178. package/dist/src/cli/commands/workspace/helpers.d.ts +28 -0
  179. package/dist/src/cli/commands/workspace/helpers.js +87 -0
  180. package/dist/src/cli/commands/workspace/init-command.d.ts +121 -0
  181. package/dist/src/cli/commands/workspace/init-command.js +436 -0
  182. package/dist/src/cli/commands/workspace/migrate-command.d.ts +11 -0
  183. package/dist/src/cli/commands/workspace/migrate-command.js +91 -0
  184. package/dist/src/cli/commands/workspace/reconcile-command.d.ts +14 -0
  185. package/dist/src/cli/commands/workspace/reconcile-command.js +103 -0
  186. package/dist/src/cli/commands/workspace-commands.d.ts +18 -0
  187. package/dist/src/cli/commands/workspace-commands.js +50 -0
  188. package/dist/src/cli/index.d.ts +1 -0
  189. package/dist/src/cli/index.js +30 -0
  190. package/dist/src/cli/program.d.ts +5 -0
  191. package/dist/src/cli/program.js +336 -0
  192. package/dist/src/hooks/pre-tool-use-sub-agent.d.ts +28 -0
  193. package/dist/src/hooks/pre-tool-use-sub-agent.js +105 -0
  194. package/dist/src/lib/render/message-renderer.d.ts +20 -0
  195. package/dist/src/lib/render/message-renderer.js +80 -0
  196. package/dist/src/services/agent/ecc-agent-service.d.ts +47 -0
  197. package/dist/src/services/agent/ecc-agent-service.js +143 -0
  198. package/dist/src/services/artifacts/artifact-lint-service.d.ts +23 -0
  199. package/dist/src/services/artifacts/artifact-lint-service.js +99 -0
  200. package/dist/src/services/artifacts/artifact-prerequisites.d.ts +78 -0
  201. package/dist/src/services/artifacts/artifact-prerequisites.js +491 -0
  202. package/dist/src/services/artifacts/artifact-service.d.ts +43 -0
  203. package/dist/src/services/artifacts/artifact-service.js +98 -0
  204. package/dist/src/services/artifacts/artifact-templates.d.ts +30 -0
  205. package/dist/src/services/artifacts/artifact-templates.js +302 -0
  206. package/dist/src/services/artifacts/repair-cycle-service.d.ts +23 -0
  207. package/dist/src/services/artifacts/repair-cycle-service.js +52 -0
  208. package/dist/src/services/artifacts/request-artifact-service.d.ts +116 -0
  209. package/dist/src/services/artifacts/request-artifact-service.js +451 -0
  210. package/dist/src/services/artifacts/request-artifact-state-helpers.d.ts +51 -0
  211. package/dist/src/services/artifacts/request-artifact-state-helpers.js +114 -0
  212. package/dist/src/services/artifacts/workspace-service.d.ts +34 -0
  213. package/dist/src/services/artifacts/workspace-service.js +272 -0
  214. package/dist/src/services/audit/artifact-writer.d.ts +93 -0
  215. package/dist/src/services/audit/artifact-writer.js +303 -0
  216. package/dist/src/services/audit/audit-goal-service.d.ts +35 -0
  217. package/dist/src/services/audit/audit-goal-service.js +75 -0
  218. package/dist/src/services/audit/audit-goal-types.d.ts +40 -0
  219. package/dist/src/services/audit/audit-goal-types.js +15 -0
  220. package/dist/src/services/audit/backing-detector.d.ts +24 -0
  221. package/dist/src/services/audit/backing-detector.js +59 -0
  222. package/dist/src/services/audit/classifier.d.ts +38 -0
  223. package/dist/src/services/audit/classifier.js +134 -0
  224. package/dist/src/services/audit/decision-writer.d.ts +76 -0
  225. package/dist/src/services/audit/decision-writer.js +217 -0
  226. package/dist/src/services/audit/enforcers/active-skill-resolver.d.ts +29 -0
  227. package/dist/src/services/audit/enforcers/active-skill-resolver.js +71 -0
  228. package/dist/src/services/audit/enforcers/design-draft-confirm.d.ts +24 -0
  229. package/dist/src/services/audit/enforcers/design-draft-confirm.js +58 -0
  230. package/dist/src/services/audit/enforcers/lint-audit-regression.d.ts +21 -0
  231. package/dist/src/services/audit/enforcers/lint-audit-regression.js +86 -0
  232. package/dist/src/services/audit/enforcers/lint-catalog-governance.d.ts +32 -0
  233. package/dist/src/services/audit/enforcers/lint-catalog-governance.js +48 -0
  234. package/dist/src/services/audit/enforcers/lint-cli-back.d.ts +16 -0
  235. package/dist/src/services/audit/enforcers/lint-cli-back.js +35 -0
  236. package/dist/src/services/audit/enforcers/lint-output-style.d.ts +11 -0
  237. package/dist/src/services/audit/enforcers/lint-output-style.js +94 -0
  238. package/dist/src/services/audit/enforcers/lint-reference-integrity.d.ts +6 -0
  239. package/dist/src/services/audit/enforcers/lint-reference-integrity.js +83 -0
  240. package/dist/src/services/audit/enforcers/lint-reference-shape.d.ts +30 -0
  241. package/dist/src/services/audit/enforcers/lint-reference-shape.js +272 -0
  242. package/dist/src/services/audit/enforcers/lint-style.d.ts +49 -0
  243. package/dist/src/services/audit/enforcers/lint-style.js +173 -0
  244. package/dist/src/services/audit/enforcers/lint-workflow-shape.d.ts +4 -0
  245. package/dist/src/services/audit/enforcers/lint-workflow-shape.js +100 -0
  246. package/dist/src/services/audit/enforcers/login-gate.d.ts +23 -0
  247. package/dist/src/services/audit/enforcers/login-gate.js +40 -0
  248. package/dist/src/services/audit/enforcers/mock-placement.d.ts +25 -0
  249. package/dist/src/services/audit/enforcers/mock-placement.js +48 -0
  250. package/dist/src/services/audit/enforcers/no-root-pollution.d.ts +21 -0
  251. package/dist/src/services/audit/enforcers/no-root-pollution.js +56 -0
  252. package/dist/src/services/audit/enforcers/pre-rd-scan.d.ts +22 -0
  253. package/dist/src/services/audit/enforcers/pre-rd-scan.js +23 -0
  254. package/dist/src/services/audit/enforcers/prototype-fidelity.d.ts +25 -0
  255. package/dist/src/services/audit/enforcers/prototype-fidelity.js +75 -0
  256. package/dist/src/services/audit/enforcers/resume-detection.d.ts +21 -0
  257. package/dist/src/services/audit/enforcers/resume-detection.js +52 -0
  258. package/dist/src/services/audit/enforcers/solo-code-ban.d.ts +23 -0
  259. package/dist/src/services/audit/enforcers/solo-code-ban.js +27 -0
  260. package/dist/src/services/audit/enforcers/sub-agent-sid.d.ts +25 -0
  261. package/dist/src/services/audit/enforcers/sub-agent-sid.js +63 -0
  262. package/dist/src/services/audit/prose-ratio-calculator.d.ts +45 -0
  263. package/dist/src/services/audit/prose-ratio-calculator.js +52 -0
  264. package/dist/src/services/audit/red-line-catalog-p2-a.d.ts +21 -0
  265. package/dist/src/services/audit/red-line-catalog-p2-a.js +229 -0
  266. package/dist/src/services/audit/red-line-catalog-p2-b.d.ts +19 -0
  267. package/dist/src/services/audit/red-line-catalog-p2-b.js +225 -0
  268. package/dist/src/services/audit/red-line-catalog.d.ts +51 -0
  269. package/dist/src/services/audit/red-line-catalog.js +195 -0
  270. package/dist/src/services/audit/red-lines-service.d.ts +23 -0
  271. package/dist/src/services/audit/red-lines-service.js +464 -0
  272. package/dist/src/services/audit/scanners/openspec-scanner.d.ts +15 -0
  273. package/dist/src/services/audit/scanners/openspec-scanner.js +55 -0
  274. package/dist/src/services/audit/scanners/rules-tree-scanner.d.ts +16 -0
  275. package/dist/src/services/audit/scanners/rules-tree-scanner.js +56 -0
  276. package/dist/src/services/audit/scanners/skills-tree-scanner.d.ts +17 -0
  277. package/dist/src/services/audit/scanners/skills-tree-scanner.js +46 -0
  278. package/dist/src/services/audit/static-service.d.ts +60 -0
  279. package/dist/src/services/audit/static-service.js +130 -0
  280. package/dist/src/services/audit/types.d.ts +86 -0
  281. package/dist/src/services/audit/types.js +13 -0
  282. package/dist/src/services/audit-independent/perf-audit-service.d.ts +151 -0
  283. package/dist/src/services/audit-independent/perf-audit-service.js +316 -0
  284. package/dist/src/services/audit-independent/security-audit-service.d.ts +155 -0
  285. package/dist/src/services/audit-independent/security-audit-service.js +316 -0
  286. package/dist/src/services/classify/classify-service.d.ts +42 -0
  287. package/dist/src/services/classify/classify-service.js +122 -0
  288. package/dist/src/services/classify/classify-types.d.ts +79 -0
  289. package/dist/src/services/classify/classify-types.js +90 -0
  290. package/dist/src/services/code-review/ecc-bridge.d.ts +148 -0
  291. package/dist/src/services/code-review/ecc-bridge.js +242 -0
  292. package/dist/src/services/code-review/ocr-service.d.ts +129 -0
  293. package/dist/src/services/code-review/ocr-service.js +369 -0
  294. package/dist/src/services/codegraph/codegraph-process-runner.d.ts +2 -0
  295. package/dist/src/services/codegraph/codegraph-process-runner.js +93 -0
  296. package/dist/src/services/codegraph/codegraph-service.d.ts +43 -0
  297. package/dist/src/services/codegraph/codegraph-service.js +160 -0
  298. package/dist/src/services/complexity/complexity-estimator.d.ts +34 -0
  299. package/dist/src/services/complexity/complexity-estimator.js +64 -0
  300. package/dist/src/services/config/config-migration.d.ts +45 -0
  301. package/dist/src/services/config/config-migration.js +154 -0
  302. package/dist/src/services/config/config-restore.d.ts +10 -0
  303. package/dist/src/services/config/config-restore.js +47 -0
  304. package/dist/src/services/config/config-rollback.d.ts +13 -0
  305. package/dist/src/services/config/config-rollback.js +26 -0
  306. package/dist/src/services/config/config-safety.d.ts +40 -0
  307. package/dist/src/services/config/config-safety.js +359 -0
  308. package/dist/src/services/config/config-service.d.ts +69 -0
  309. package/dist/src/services/config/config-service.js +814 -0
  310. package/dist/src/services/config/config-types.d.ts +119 -0
  311. package/dist/src/services/config/config-types.js +18 -0
  312. package/dist/src/services/config/model-routing.d.ts +4 -0
  313. package/dist/src/services/config/model-routing.js +17 -0
  314. package/dist/src/services/config/provider-service.d.ts +48 -0
  315. package/dist/src/services/config/provider-service.js +143 -0
  316. package/dist/src/services/config/proxy-service.d.ts +21 -0
  317. package/dist/src/services/config/proxy-service.js +44 -0
  318. package/dist/src/services/config/sidecar-store.d.ts +25 -0
  319. package/dist/src/services/config/sidecar-store.js +61 -0
  320. package/dist/src/services/config/workspace-state-service.d.ts +30 -0
  321. package/dist/src/services/config/workspace-state-service.js +142 -0
  322. package/dist/src/services/context/artifact-meta.d.ts +72 -0
  323. package/dist/src/services/context/artifact-meta.js +105 -0
  324. package/dist/src/services/context/auto-compact-dispatcher.d.ts +37 -0
  325. package/dist/src/services/context/auto-compact-dispatcher.js +190 -0
  326. package/dist/src/services/context/auto-compact-reader.d.ts +51 -0
  327. package/dist/src/services/context/auto-compact-reader.js +164 -0
  328. package/dist/src/services/context/auto-compact-types.d.ts +143 -0
  329. package/dist/src/services/context/auto-compact-types.js +36 -0
  330. package/dist/src/services/context/collector.d.ts +24 -0
  331. package/dist/src/services/context/collector.js +133 -0
  332. package/dist/src/services/context/context-builder.d.ts +30 -0
  333. package/dist/src/services/context/context-builder.js +78 -0
  334. package/dist/src/services/context/context-guard.d.ts +49 -0
  335. package/dist/src/services/context/context-guard.js +91 -0
  336. package/dist/src/services/context/context-schema.d.ts +415 -0
  337. package/dist/src/services/context/context-schema.js +73 -0
  338. package/dist/src/services/context/dispatch-context-guard.d.ts +27 -0
  339. package/dist/src/services/context/dispatch-context-guard.js +192 -0
  340. package/dist/src/services/context/doc-retriever.d.ts +26 -0
  341. package/dist/src/services/context/doc-retriever.js +51 -0
  342. package/dist/src/services/context/headroom-client.d.ts +34 -0
  343. package/dist/src/services/context/headroom-client.js +117 -0
  344. package/dist/src/services/context/headroom-fetcher.d.ts +6 -0
  345. package/dist/src/services/context/headroom-fetcher.js +28 -0
  346. package/dist/src/services/context/headroom-prefs.d.ts +46 -0
  347. package/dist/src/services/context/headroom-prefs.js +34 -0
  348. package/dist/src/services/context/index.d.ts +7 -0
  349. package/dist/src/services/context/index.js +6 -0
  350. package/dist/src/services/context/main-session-monitor.d.ts +77 -0
  351. package/dist/src/services/context/main-session-monitor.js +130 -0
  352. package/dist/src/services/context/renderer.d.ts +20 -0
  353. package/dist/src/services/context/renderer.js +30 -0
  354. package/dist/src/services/context/shared-channel.d.ts +93 -0
  355. package/dist/src/services/context/shared-channel.js +308 -0
  356. package/dist/src/services/context/threshold.d.ts +35 -0
  357. package/dist/src/services/context/threshold.js +76 -0
  358. package/dist/src/services/context/tokenizer.d.ts +12 -0
  359. package/dist/src/services/context/tokenizer.js +43 -0
  360. package/dist/src/services/context/types.d.ts +93 -0
  361. package/dist/src/services/context/types.js +9 -0
  362. package/dist/src/services/dashboard/project-dashboard-service.d.ts +91 -0
  363. package/dist/src/services/dashboard/project-dashboard-service.js +147 -0
  364. package/dist/src/services/dispatch/batch-counter.d.ts +27 -0
  365. package/dist/src/services/dispatch/batch-counter.js +102 -0
  366. package/dist/src/services/dispatch/contract-store.d.ts +63 -0
  367. package/dist/src/services/dispatch/contract-store.js +157 -0
  368. package/dist/src/services/dispatch/dispatch-record-writer.d.ts +138 -0
  369. package/dist/src/services/dispatch/dispatch-record-writer.js +460 -0
  370. package/dist/src/services/dispatch/heartbeat-truncator.d.ts +26 -0
  371. package/dist/src/services/dispatch/heartbeat-truncator.js +13 -0
  372. package/dist/src/services/dispatch/leak-detector.d.ts +11 -0
  373. package/dist/src/services/dispatch/leak-detector.js +72 -0
  374. package/dist/src/services/dispatch/slice-dag.d.ts +81 -0
  375. package/dist/src/services/dispatch/slice-dag.js +238 -0
  376. package/dist/src/services/dispatch/sub-agent-dispatcher.d.ts +239 -0
  377. package/dist/src/services/dispatch/sub-agent-dispatcher.js +382 -0
  378. package/dist/src/services/dispatch/test-tool-detection.d.ts +36 -0
  379. package/dist/src/services/dispatch/test-tool-detection.js +46 -0
  380. package/dist/src/services/doc/doc-generator.d.ts +38 -0
  381. package/dist/src/services/doc/doc-generator.js +122 -0
  382. package/dist/src/services/doctor/doctor-service.d.ts +149 -0
  383. package/dist/src/services/doctor/doctor-service.js +929 -0
  384. package/dist/src/services/feedback/feedback-promotion-service.d.ts +123 -0
  385. package/dist/src/services/feedback/feedback-promotion-service.js +300 -0
  386. package/dist/src/services/filesystem/file-lock.d.ts +11 -0
  387. package/dist/src/services/filesystem/file-lock.js +129 -0
  388. package/dist/src/services/final-review/final-review-service.d.ts +12 -0
  389. package/dist/src/services/final-review/final-review-service.js +52 -0
  390. package/dist/src/services/final-review/final-review-types.d.ts +42 -0
  391. package/dist/src/services/final-review/final-review-types.js +18 -0
  392. package/dist/src/services/fixture/fixture-capture-service.d.ts +87 -0
  393. package/dist/src/services/fixture/fixture-capture-service.js +317 -0
  394. package/dist/src/services/fixture/fixture-sanitize-service.d.ts +117 -0
  395. package/dist/src/services/fixture/fixture-sanitize-service.js +161 -0
  396. package/dist/src/services/fixture/index.d.ts +8 -0
  397. package/dist/src/services/fixture/index.js +8 -0
  398. package/dist/src/services/fork/fork-sync-state.d.ts +85 -0
  399. package/dist/src/services/fork/fork-sync-state.js +130 -0
  400. package/dist/src/services/fuzzy-matching/fuzzy-match-service.d.ts +15 -0
  401. package/dist/src/services/fuzzy-matching/fuzzy-match-service.js +56 -0
  402. package/dist/src/services/fuzzy-matching/fzf-pick-service.d.ts +68 -0
  403. package/dist/src/services/fuzzy-matching/fzf-pick-service.js +158 -0
  404. package/dist/src/services/fuzzy-matching/types.d.ts +20 -0
  405. package/dist/src/services/fuzzy-matching/types.js +1 -0
  406. package/dist/src/services/handoff/handoff-parser.d.ts +28 -0
  407. package/dist/src/services/handoff/handoff-parser.js +69 -0
  408. package/dist/src/services/handoff/handoff-types.d.ts +39 -0
  409. package/dist/src/services/handoff/handoff-types.js +19 -0
  410. package/dist/src/services/handoff/handoff-writer.d.ts +23 -0
  411. package/dist/src/services/handoff/handoff-writer.js +30 -0
  412. package/dist/src/services/hooks/output.d.ts +92 -0
  413. package/dist/src/services/hooks/output.js +111 -0
  414. package/dist/src/services/hooks/presence-marker-detector.d.ts +16 -0
  415. package/dist/src/services/hooks/presence-marker-detector.js +105 -0
  416. package/dist/src/services/ide/adapters/claude-code-adapter.d.ts +18 -0
  417. package/dist/src/services/ide/adapters/claude-code-adapter.js +91 -0
  418. package/dist/src/services/ide/adapters/codex-adapter.d.ts +46 -0
  419. package/dist/src/services/ide/adapters/codex-adapter.js +97 -0
  420. package/dist/src/services/ide/adapters/cursor-adapter.d.ts +36 -0
  421. package/dist/src/services/ide/adapters/cursor-adapter.js +84 -0
  422. package/dist/src/services/ide/adapters/hermes-adapter.d.ts +21 -0
  423. package/dist/src/services/ide/adapters/hermes-adapter.js +51 -0
  424. package/dist/src/services/ide/adapters/openclaw-adapter.d.ts +14 -0
  425. package/dist/src/services/ide/adapters/openclaw-adapter.js +42 -0
  426. package/dist/src/services/ide/adapters/trae-adapter.d.ts +42 -0
  427. package/dist/src/services/ide/adapters/trae-adapter.js +83 -0
  428. package/dist/src/services/ide/hook-protocol.d.ts +47 -0
  429. package/dist/src/services/ide/hook-protocol.js +74 -0
  430. package/dist/src/services/ide/hook-translator.d.ts +72 -0
  431. package/dist/src/services/ide/hook-translator.js +128 -0
  432. package/dist/src/services/ide/ide-detector.d.ts +10 -0
  433. package/dist/src/services/ide/ide-detector.js +19 -0
  434. package/dist/src/services/ide/ide-registry.d.ts +14 -0
  435. package/dist/src/services/ide/ide-registry.js +60 -0
  436. package/dist/src/services/ide/ide-types.d.ts +230 -0
  437. package/dist/src/services/ide/ide-types.js +2 -0
  438. package/dist/src/services/ide/resource-profile.d.ts +52 -0
  439. package/dist/src/services/ide/resource-profile.js +33 -0
  440. package/dist/src/services/ide/shared/atomic-json.d.ts +15 -0
  441. package/dist/src/services/ide/shared/atomic-json.js +58 -0
  442. package/dist/src/services/ide/shared/safe-path.d.ts +11 -0
  443. package/dist/src/services/ide/shared/safe-path.js +29 -0
  444. package/dist/src/services/impact/impact-scan-service.d.ts +66 -0
  445. package/dist/src/services/impact/impact-scan-service.js +197 -0
  446. package/dist/src/services/legacy/legacy-detector.d.ts +34 -0
  447. package/dist/src/services/legacy/legacy-detector.js +111 -0
  448. package/dist/src/services/log/log-commands-service.d.ts +54 -0
  449. package/dist/src/services/log/log-commands-service.js +83 -0
  450. package/dist/src/services/log/logger.d.ts +103 -0
  451. package/dist/src/services/log/logger.js +224 -0
  452. package/dist/src/services/log/redact.d.ts +32 -0
  453. package/dist/src/services/log/redact.js +89 -0
  454. package/dist/src/services/log/retention.d.ts +34 -0
  455. package/dist/src/services/log/retention.js +78 -0
  456. package/dist/src/services/loop/evaluator-dispatcher.d.ts +50 -0
  457. package/dist/src/services/loop/evaluator-dispatcher.js +551 -0
  458. package/dist/src/services/loop/monotonic-guard.d.ts +80 -0
  459. package/dist/src/services/loop/monotonic-guard.js +215 -0
  460. package/dist/src/services/loop/monotonic-runner.d.ts +55 -0
  461. package/dist/src/services/loop/monotonic-runner.js +197 -0
  462. package/dist/src/services/loop/run-driver.d.ts +70 -0
  463. package/dist/src/services/loop/run-driver.js +379 -0
  464. package/dist/src/services/loop/spec-service.d.ts +90 -0
  465. package/dist/src/services/loop/spec-service.js +497 -0
  466. package/dist/src/services/memory/llm-reranker.d.ts +174 -0
  467. package/dist/src/services/memory/llm-reranker.js +284 -0
  468. package/dist/src/services/memory/memory-search-service.d.ts +93 -0
  469. package/dist/src/services/memory/memory-search-service.js +117 -0
  470. package/dist/src/services/memory/project-context-service.d.ts +11 -0
  471. package/dist/src/services/memory/project-context-service.js +148 -0
  472. package/dist/src/services/memory/project-memory-service.d.ts +167 -0
  473. package/dist/src/services/memory/project-memory-service.js +817 -0
  474. package/dist/src/services/migration/v2-10-to-v2-11-service.d.ts +44 -0
  475. package/dist/src/services/migration/v2-10-to-v2-11-service.js +190 -0
  476. package/dist/src/services/migration/v2-10-to-v2-11-types.d.ts +41 -0
  477. package/dist/src/services/migration/v2-10-to-v2-11-types.js +23 -0
  478. package/dist/src/services/mode/bypass-tracker.d.ts +4 -0
  479. package/dist/src/services/mode/bypass-tracker.js +31 -0
  480. package/dist/src/services/mode/mode-enforcement.d.ts +14 -0
  481. package/dist/src/services/mode/mode-enforcement.js +84 -0
  482. package/dist/src/services/mut/assert-scanner.d.ts +6 -0
  483. package/dist/src/services/mut/assert-scanner.js +116 -0
  484. package/dist/src/services/mut/index.d.ts +8 -0
  485. package/dist/src/services/mut/index.js +7 -0
  486. package/dist/src/services/mut/mut-runner.d.ts +39 -0
  487. package/dist/src/services/mut/mut-runner.js +29 -0
  488. package/dist/src/services/mut/production-stryker.d.ts +7 -0
  489. package/dist/src/services/mut/production-stryker.js +66 -0
  490. package/dist/src/services/mut/report-builder.d.ts +11 -0
  491. package/dist/src/services/mut/report-builder.js +110 -0
  492. package/dist/src/services/mut/report-loader.d.ts +31 -0
  493. package/dist/src/services/mut/report-loader.js +78 -0
  494. package/dist/src/services/mut/thresholds.d.ts +21 -0
  495. package/dist/src/services/mut/thresholds.js +22 -0
  496. package/dist/src/services/mut/types.d.ts +336 -0
  497. package/dist/src/services/mut/types.js +59 -0
  498. package/dist/src/services/observability/aggregation.d.ts +64 -0
  499. package/dist/src/services/observability/aggregation.js +217 -0
  500. package/dist/src/services/observability/jsonl-store.d.ts +59 -0
  501. package/dist/src/services/observability/jsonl-store.js +120 -0
  502. package/dist/src/services/observability/observability-service.d.ts +95 -0
  503. package/dist/src/services/observability/observability-service.js +119 -0
  504. package/dist/src/services/observability/report-formatter.d.ts +42 -0
  505. package/dist/src/services/observability/report-formatter.js +156 -0
  506. package/dist/src/services/openspec/openspec-archive-service.d.ts +12 -0
  507. package/dist/src/services/openspec/openspec-archive-service.js +28 -0
  508. package/dist/src/services/openspec/openspec-bridge-service.d.ts +16 -0
  509. package/dist/src/services/openspec/openspec-bridge-service.js +76 -0
  510. package/dist/src/services/openspec/openspec-init-service.d.ts +23 -0
  511. package/dist/src/services/openspec/openspec-init-service.js +122 -0
  512. package/dist/src/services/openspec/openspec-propose-from-doctor-service.d.ts +31 -0
  513. package/dist/src/services/openspec/openspec-propose-from-doctor-service.js +95 -0
  514. package/dist/src/services/openspec/openspec-render-service.d.ts +38 -0
  515. package/dist/src/services/openspec/openspec-render-service.js +130 -0
  516. package/dist/src/services/openspec/openspec-scan-service.d.ts +6 -0
  517. package/dist/src/services/openspec/openspec-scan-service.js +123 -0
  518. package/dist/src/services/openspec/openspec-types.d.ts +39 -0
  519. package/dist/src/services/openspec/openspec-types.js +1 -0
  520. package/dist/src/services/openspec/openspec-validate-service.d.ts +27 -0
  521. package/dist/src/services/openspec/openspec-validate-service.js +77 -0
  522. package/dist/src/services/perf/perf-baseline-service.d.ts +70 -0
  523. package/dist/src/services/perf/perf-baseline-service.js +214 -0
  524. package/dist/src/services/prd/handoff-auto-regen.d.ts +22 -0
  525. package/dist/src/services/prd/handoff-auto-regen.js +73 -0
  526. package/dist/src/services/prd/handoff-service.d.ts +54 -0
  527. package/dist/src/services/prd/handoff-service.js +142 -0
  528. package/dist/src/services/prd/handoff-types.d.ts +64 -0
  529. package/dist/src/services/prd/handoff-types.js +22 -0
  530. package/dist/src/services/prd/prd-blocks-checker.d.ts +51 -0
  531. package/dist/src/services/prd/prd-blocks-checker.js +130 -0
  532. package/dist/src/services/prd/project-scan-reader.d.ts +24 -0
  533. package/dist/src/services/prd/project-scan-reader.js +150 -0
  534. package/dist/src/services/prd/project-scan-sediment.d.ts +97 -0
  535. package/dist/src/services/prd/project-scan-sediment.js +445 -0
  536. package/dist/src/services/prd/project-scan-types.d.ts +66 -0
  537. package/dist/src/services/prd/project-scan-types.js +20 -0
  538. package/dist/src/services/preferences/preferences-service.d.ts +38 -0
  539. package/dist/src/services/preferences/preferences-service.js +198 -0
  540. package/dist/src/services/preferences/preferences-types.d.ts +148 -0
  541. package/dist/src/services/preferences/preferences-types.js +53 -0
  542. package/dist/src/services/profiles/profile-service.d.ts +6 -0
  543. package/dist/src/services/profiles/profile-service.js +19 -0
  544. package/dist/src/services/progress/progress-service.d.ts +125 -0
  545. package/dist/src/services/progress/progress-service.js +192 -0
  546. package/dist/src/services/providers/minimax-provider-service.d.ts +24 -0
  547. package/dist/src/services/providers/minimax-provider-service.js +143 -0
  548. package/dist/src/services/providers/minimax-worker-service.d.ts +21 -0
  549. package/dist/src/services/providers/minimax-worker-service.js +83 -0
  550. package/dist/src/services/proxy/proxy-service.d.ts +7 -0
  551. package/dist/src/services/proxy/proxy-service.js +31 -0
  552. package/dist/src/services/qa/browser-event-logger.d.ts +40 -0
  553. package/dist/src/services/qa/browser-event-logger.js +54 -0
  554. package/dist/src/services/qa/browser-restart-detector.d.ts +74 -0
  555. package/dist/src/services/qa/browser-restart-detector.js +138 -0
  556. package/dist/src/services/qa/browser-reuse-hint.d.ts +18 -0
  557. package/dist/src/services/qa/browser-reuse-hint.js +18 -0
  558. package/dist/src/services/qa/browser-wrapper-service.d.ts +37 -0
  559. package/dist/src/services/qa/browser-wrapper-service.js +88 -0
  560. package/dist/src/services/qa/qa-business-review-state.d.ts +47 -0
  561. package/dist/src/services/qa/qa-business-review-state.js +96 -0
  562. package/dist/src/services/rd/ast-gate.d.ts +19 -0
  563. package/dist/src/services/rd/ast-gate.js +71 -0
  564. package/dist/src/services/rd/impl.d.ts +9 -0
  565. package/dist/src/services/rd/impl.js +57 -0
  566. package/dist/src/services/rd/rd-service.d.ts +129 -0
  567. package/dist/src/services/rd/rd-service.js +438 -0
  568. package/dist/src/services/rd/reviewer-dispatch-policy.d.ts +122 -0
  569. package/dist/src/services/rd/reviewer-dispatch-policy.js +148 -0
  570. package/dist/src/services/rd/standards-diagnostic.d.ts +76 -0
  571. package/dist/src/services/rd/standards-diagnostic.js +166 -0
  572. package/dist/src/services/rd/strategic-stage.d.ts +4 -0
  573. package/dist/src/services/rd/strategic-stage.js +15 -0
  574. package/dist/src/services/rd/strategy.d.ts +13 -0
  575. package/dist/src/services/rd/strategy.js +60 -0
  576. package/dist/src/services/rd/tactical-stage.d.ts +33 -0
  577. package/dist/src/services/rd/tactical-stage.js +62 -0
  578. package/dist/src/services/rd/types.d.ts +252 -0
  579. package/dist/src/services/rd/types.js +47 -0
  580. package/dist/src/services/recommendations/capability-availability.d.ts +5 -0
  581. package/dist/src/services/recommendations/capability-availability.js +40 -0
  582. package/dist/src/services/recommendations/capability-map-service.d.ts +7 -0
  583. package/dist/src/services/recommendations/capability-map-service.js +131 -0
  584. package/dist/src/services/recommendations/capability-seed-items.d.ts +2 -0
  585. package/dist/src/services/recommendations/capability-seed-items.js +140 -0
  586. package/dist/src/services/recommendations/capability-seed-mappings.d.ts +2 -0
  587. package/dist/src/services/recommendations/capability-seed-mappings.js +54 -0
  588. package/dist/src/services/recommendations/capability-seed-sources.d.ts +2 -0
  589. package/dist/src/services/recommendations/capability-seed-sources.js +35 -0
  590. package/dist/src/services/recommendations/recommendation-service.d.ts +8 -0
  591. package/dist/src/services/recommendations/recommendation-service.js +106 -0
  592. package/dist/src/services/recommendations/recommendation-types.d.ts +129 -0
  593. package/dist/src/services/recommendations/recommendation-types.js +1 -0
  594. package/dist/src/services/recommendations/seed-capability-catalog.d.ts +3 -0
  595. package/dist/src/services/recommendations/seed-capability-catalog.js +3 -0
  596. package/dist/src/services/refactor/refactor-service.d.ts +9 -0
  597. package/dist/src/services/refactor/refactor-service.js +36 -0
  598. package/dist/src/services/release/release-state.d.ts +70 -0
  599. package/dist/src/services/release/release-state.js +140 -0
  600. package/dist/src/services/retrospective/retrospective-index.d.ts +37 -0
  601. package/dist/src/services/retrospective/retrospective-index.js +110 -0
  602. package/dist/src/services/retrospective/retrospective-search-service.d.ts +55 -0
  603. package/dist/src/services/retrospective/retrospective-search-service.js +107 -0
  604. package/dist/src/services/retrospective/retrospective-show.d.ts +40 -0
  605. package/dist/src/services/retrospective/retrospective-show.js +109 -0
  606. package/dist/src/services/reviewer/model-family.d.ts +18 -0
  607. package/dist/src/services/reviewer/model-family.js +70 -0
  608. package/dist/src/services/reviewer/providers/anthropic.d.ts +2 -0
  609. package/dist/src/services/reviewer/providers/anthropic.js +61 -0
  610. package/dist/src/services/reviewer/providers/ollama.d.ts +26 -0
  611. package/dist/src/services/reviewer/providers/ollama.js +38 -0
  612. package/dist/src/services/reviewer/providers/openai.d.ts +2 -0
  613. package/dist/src/services/reviewer/providers/openai.js +63 -0
  614. package/dist/src/services/reviewer/reviewer-config.d.ts +34 -0
  615. package/dist/src/services/reviewer/reviewer-config.js +100 -0
  616. package/dist/src/services/reviewer/reviewer-service.d.ts +56 -0
  617. package/dist/src/services/reviewer/reviewer-service.js +263 -0
  618. package/dist/src/services/reviewer/selection-strategies.d.ts +27 -0
  619. package/dist/src/services/reviewer/selection-strategies.js +53 -0
  620. package/dist/src/services/role/role-registry.d.ts +38 -0
  621. package/dist/src/services/role/role-registry.js +83 -0
  622. package/dist/src/services/sc/index.d.ts +1 -0
  623. package/dist/src/services/sc/index.js +1 -0
  624. package/dist/src/services/sc/sc-service.d.ts +131 -0
  625. package/dist/src/services/sc/sc-service.js +552 -0
  626. package/dist/src/services/scan/acceptance-coverage-service.d.ts +42 -0
  627. package/dist/src/services/scan/acceptance-coverage-service.js +140 -0
  628. package/dist/src/services/scan/api-surface-service.d.ts +69 -0
  629. package/dist/src/services/scan/api-surface-service.js +239 -0
  630. package/dist/src/services/scan/archetype-service.d.ts +5 -0
  631. package/dist/src/services/scan/archetype-service.js +242 -0
  632. package/dist/src/services/scan/diff-scope-service.d.ts +40 -0
  633. package/dist/src/services/scan/diff-scope-service.js +198 -0
  634. package/dist/src/services/scan/existing-system-service.d.ts +7 -0
  635. package/dist/src/services/scan/existing-system-service.js +300 -0
  636. package/dist/src/services/scan/file-size-scan.d.ts +23 -0
  637. package/dist/src/services/scan/file-size-scan.js +68 -0
  638. package/dist/src/services/scan/karpathy-service.d.ts +60 -0
  639. package/dist/src/services/scan/karpathy-service.js +228 -0
  640. package/dist/src/services/scan/libraries-service.d.ts +24 -0
  641. package/dist/src/services/scan/libraries-service.js +419 -0
  642. package/dist/src/services/scan/libraries-types.d.ts +59 -0
  643. package/dist/src/services/scan/libraries-types.js +9 -0
  644. package/dist/src/services/scan/orphan-service.d.ts +76 -0
  645. package/dist/src/services/scan/orphan-service.js +538 -0
  646. package/dist/src/services/scan/scan-types.d.ts +59 -0
  647. package/dist/src/services/scan/scan-types.js +1 -0
  648. package/dist/src/services/scan/type-sanity-service.d.ts +23 -0
  649. package/dist/src/services/scan/type-sanity-service.js +116 -0
  650. package/dist/src/services/security/safe-settings-path.d.ts +12 -0
  651. package/dist/src/services/security/safe-settings-path.js +104 -0
  652. package/dist/src/services/session/binding-status-service.d.ts +56 -0
  653. package/dist/src/services/session/binding-status-service.js +106 -0
  654. package/dist/src/services/session/binding-store.d.ts +161 -0
  655. package/dist/src/services/session/binding-store.js +509 -0
  656. package/dist/src/services/session/caller-binding-service.d.ts +70 -0
  657. package/dist/src/services/session/caller-binding-service.js +148 -0
  658. package/dist/src/services/session/caller-id-types.d.ts +77 -0
  659. package/dist/src/services/session/caller-id-types.js +46 -0
  660. package/dist/src/services/session/getSessionDir.d.ts +1 -0
  661. package/dist/src/services/session/getSessionDir.js +27 -0
  662. package/dist/src/services/session/index.d.ts +6 -0
  663. package/dist/src/services/session/index.js +7 -0
  664. package/dist/src/services/session/platform-fallbacks.d.ts +31 -0
  665. package/dist/src/services/session/platform-fallbacks.js +35 -0
  666. package/dist/src/services/session/resolve-caller-id.d.ts +57 -0
  667. package/dist/src/services/session/resolve-caller-id.js +88 -0
  668. package/dist/src/services/session/session-binding-bridge.d.ts +76 -0
  669. package/dist/src/services/session/session-binding-bridge.js +247 -0
  670. package/dist/src/services/session/session-checkpoint-service.d.ts +57 -0
  671. package/dist/src/services/session/session-checkpoint-service.js +143 -0
  672. package/dist/src/services/session/session-manager.d.ts +168 -0
  673. package/dist/src/services/session/session-manager.js +502 -0
  674. package/dist/src/services/session/session-resume-service.d.ts +25 -0
  675. package/dist/src/services/session/session-resume-service.js +101 -0
  676. package/dist/src/services/signal/cancel-handler.d.ts +14 -0
  677. package/dist/src/services/signal/cancel-handler.js +76 -0
  678. package/dist/src/services/skill/resume-detector.d.ts +54 -0
  679. package/dist/src/services/skill/resume-detector.js +334 -0
  680. package/dist/src/services/skill/skill-scheduler.d.ts +40 -0
  681. package/dist/src/services/skill/skill-scheduler.js +53 -0
  682. package/dist/src/services/skills/hooks-settings-service.d.ts +137 -0
  683. package/dist/src/services/skills/hooks-settings-service.js +396 -0
  684. package/dist/src/services/skills/skill-conformance-service.d.ts +40 -0
  685. package/dist/src/services/skills/skill-conformance-service.js +136 -0
  686. package/dist/src/services/skills/skill-presence-service.d.ts +158 -0
  687. package/dist/src/services/skills/skill-presence-service.js +474 -0
  688. package/dist/src/services/skills/skill-registry.d.ts +17 -0
  689. package/dist/src/services/skills/skill-registry.js +40 -0
  690. package/dist/src/services/skills/skill-runbook-service.d.ts +11 -0
  691. package/dist/src/services/skills/skill-runbook-service.js +128 -0
  692. package/dist/src/services/skills/skill-statusline-renderer.d.ts +6 -0
  693. package/dist/src/services/skills/skill-statusline-renderer.js +55 -0
  694. package/dist/src/services/skills/skill-statusline-service.d.ts +24 -0
  695. package/dist/src/services/skills/skill-statusline-service.js +110 -0
  696. package/dist/src/services/skills/statusline-settings-service.d.ts +59 -0
  697. package/dist/src/services/skills/statusline-settings-service.js +141 -0
  698. package/dist/src/services/skills/sync-service.d.ts +86 -0
  699. package/dist/src/services/skills/sync-service.js +271 -0
  700. package/dist/src/services/slice/calibration-store.d.ts +39 -0
  701. package/dist/src/services/slice/calibration-store.js +68 -0
  702. package/dist/src/services/slice/cross-pass-edge-merger.d.ts +53 -0
  703. package/dist/src/services/slice/cross-pass-edge-merger.js +246 -0
  704. package/dist/src/services/slice/granularity-decider.d.ts +37 -0
  705. package/dist/src/services/slice/granularity-decider.js +40 -0
  706. package/dist/src/services/slice/llm-arbitrator.d.ts +35 -0
  707. package/dist/src/services/slice/llm-arbitrator.js +63 -0
  708. package/dist/src/services/slice/multi-pass-orchestrator.d.ts +67 -0
  709. package/dist/src/services/slice/multi-pass-orchestrator.js +225 -0
  710. package/dist/src/services/slice/schema-router.d.ts +44 -0
  711. package/dist/src/services/slice/schema-router.js +61 -0
  712. package/dist/src/services/slice/slice-archive-service.d.ts +20 -0
  713. package/dist/src/services/slice/slice-archive-service.js +111 -0
  714. package/dist/src/services/slice/slice-benchmark-service.d.ts +19 -0
  715. package/dist/src/services/slice/slice-benchmark-service.js +60 -0
  716. package/dist/src/services/slice/slice-check-service.d.ts +2 -0
  717. package/dist/src/services/slice/slice-check-service.js +459 -0
  718. package/dist/src/services/slice/slice-check-types.d.ts +104 -0
  719. package/dist/src/services/slice/slice-check-types.js +28 -0
  720. package/dist/src/services/slice/slice-decompose-runners.d.ts +23 -0
  721. package/dist/src/services/slice/slice-decompose-runners.js +174 -0
  722. package/dist/src/services/slice/slice-decompose-service.d.ts +24 -0
  723. package/dist/src/services/slice/slice-decompose-service.js +532 -0
  724. package/dist/src/services/slice/slice-decompose-types.d.ts +263 -0
  725. package/dist/src/services/slice/slice-decompose-types.js +30 -0
  726. package/dist/src/services/slice/slice-integration.d.ts +43 -0
  727. package/dist/src/services/slice/slice-integration.js +106 -0
  728. package/dist/src/services/slice/slice-pick-service.d.ts +32 -0
  729. package/dist/src/services/slice/slice-pick-service.js +75 -0
  730. package/dist/src/services/slice/slice-review-state.d.ts +70 -0
  731. package/dist/src/services/slice/slice-review-state.js +109 -0
  732. package/dist/src/services/slice/slice-topology-types.d.ts +115 -0
  733. package/dist/src/services/slice/slice-topology-types.js +20 -0
  734. package/dist/src/services/smoke/smoke-paths-state.d.ts +73 -0
  735. package/dist/src/services/smoke/smoke-paths-state.js +117 -0
  736. package/dist/src/services/solo/auto-compact-orchestrator.d.ts +98 -0
  737. package/dist/src/services/solo/auto-compact-orchestrator.js +343 -0
  738. package/dist/src/services/solo/batch-heartbeat-poller.d.ts +51 -0
  739. package/dist/src/services/solo/batch-heartbeat-poller.js +88 -0
  740. package/dist/src/services/solo/dag-orchestrator.d.ts +128 -0
  741. package/dist/src/services/solo/dag-orchestrator.js +304 -0
  742. package/dist/src/services/solo/mode-gate.d.ts +163 -0
  743. package/dist/src/services/solo/mode-gate.js +212 -0
  744. package/dist/src/services/solo/post-compact-detector.d.ts +61 -0
  745. package/dist/src/services/solo/post-compact-detector.js +240 -0
  746. package/dist/src/services/solo/status-line-renderer.d.ts +34 -0
  747. package/dist/src/services/solo/status-line-renderer.js +55 -0
  748. package/dist/src/services/solo/user-touchpoint-classifier.d.ts +44 -0
  749. package/dist/src/services/solo/user-touchpoint-classifier.js +145 -0
  750. package/dist/src/services/sop/gate-enforce-service.d.ts +33 -0
  751. package/dist/src/services/sop/gate-enforce-service.js +168 -0
  752. package/dist/src/services/sop/sop-advance-service.d.ts +74 -0
  753. package/dist/src/services/sop/sop-advance-service.js +115 -0
  754. package/dist/src/services/sop/sop-check-service.d.ts +45 -0
  755. package/dist/src/services/sop/sop-check-service.js +181 -0
  756. package/dist/src/services/sop/sop-paths.d.ts +62 -0
  757. package/dist/src/services/sop/sop-paths.js +92 -0
  758. package/dist/src/services/sop/sop-registry-service.d.ts +46 -0
  759. package/dist/src/services/sop/sop-registry-service.js +89 -0
  760. package/dist/src/services/sop/sop-service.d.ts +55 -0
  761. package/dist/src/services/sop/sop-service.js +222 -0
  762. package/dist/src/services/sop/sop-types.d.ts +95 -0
  763. package/dist/src/services/sop/sop-types.js +11 -0
  764. package/dist/src/services/standards/ide-aware-standards-service.d.ts +94 -0
  765. package/dist/src/services/standards/ide-aware-standards-service.js +89 -0
  766. package/dist/src/services/standards/migrate-claude-rules-service.d.ts +19 -0
  767. package/dist/src/services/standards/migrate-claude-rules-service.js +193 -0
  768. package/dist/src/services/standards/migrate-service.d.ts +63 -0
  769. package/dist/src/services/standards/migrate-service.js +193 -0
  770. package/dist/src/services/standards/missing-standards-detector.d.ts +79 -0
  771. package/dist/src/services/standards/missing-standards-detector.js +132 -0
  772. package/dist/src/services/standards/project-context.d.ts +24 -0
  773. package/dist/src/services/standards/project-context.js +314 -0
  774. package/dist/src/services/standards/project-standards-service.d.ts +114 -0
  775. package/dist/src/services/standards/project-standards-service.js +574 -0
  776. package/dist/src/services/tech/tech-service.d.ts +69 -0
  777. package/dist/src/services/tech/tech-service.js +299 -0
  778. package/dist/src/services/test-cache/test-cache-service.d.ts +70 -0
  779. package/dist/src/services/test-cache/test-cache-service.js +175 -0
  780. package/dist/src/services/understand/understand-scan-service.d.ts +28 -0
  781. package/dist/src/services/understand/understand-scan-service.js +170 -0
  782. package/dist/src/services/understand/understand-types.d.ts +50 -0
  783. package/dist/src/services/understand/understand-types.js +1 -0
  784. package/dist/src/services/upgrade/1x-detector-service.d.ts +7 -0
  785. package/dist/src/services/upgrade/1x-detector-service.js +94 -0
  786. package/dist/src/services/upgrade/gitignore-migrate-service.d.ts +56 -0
  787. package/dist/src/services/upgrade/gitignore-migrate-service.js +170 -0
  788. package/dist/src/services/upgrade/upgrade-service.d.ts +47 -0
  789. package/dist/src/services/upgrade/upgrade-service.js +381 -0
  790. package/dist/src/services/verdict/envelopes.d.ts +93 -0
  791. package/dist/src/services/verdict/envelopes.js +349 -0
  792. package/dist/src/services/verdict/verdict-aggregator.d.ts +94 -0
  793. package/dist/src/services/verdict/verdict-aggregator.js +112 -0
  794. package/dist/src/services/workflow/artifact-paths.d.ts +59 -0
  795. package/dist/src/services/workflow/artifact-paths.js +166 -0
  796. package/dist/src/services/workflow/autonomous-resume-writer.d.ts +16 -0
  797. package/dist/src/services/workflow/autonomous-resume-writer.js +170 -0
  798. package/dist/src/services/workflow/pipeline-verify-service.d.ts +90 -0
  799. package/dist/src/services/workflow/pipeline-verify-service.js +449 -0
  800. package/dist/src/services/workflow/plan-reader.d.ts +29 -0
  801. package/dist/src/services/workflow/plan-reader.js +174 -0
  802. package/dist/src/services/workflow/plan-refresher.d.ts +32 -0
  803. package/dist/src/services/workflow/plan-refresher.js +353 -0
  804. package/dist/src/services/workflow/plan-trigger-detector.d.ts +55 -0
  805. package/dist/src/services/workflow/plan-trigger-detector.js +142 -0
  806. package/dist/src/services/workflow/workflow-autonomous-resume-helpers.d.ts +19 -0
  807. package/dist/src/services/workflow/workflow-autonomous-resume-helpers.js +300 -0
  808. package/dist/src/services/workflow/workflow-autonomous-service.d.ts +100 -0
  809. package/dist/src/services/workflow/workflow-autonomous-service.js +306 -0
  810. package/dist/src/services/workflow/workflow-loader.d.ts +63 -0
  811. package/dist/src/services/workflow/workflow-loader.js +168 -0
  812. package/dist/src/services/workflow/workflow-router-service.d.ts +85 -0
  813. package/dist/src/services/workflow/workflow-router-service.js +227 -0
  814. package/dist/src/services/workflow/workflow-skip-service.d.ts +106 -0
  815. package/dist/src/services/workflow/workflow-skip-service.js +209 -0
  816. package/dist/src/services/workflow/workflow-spec.d.ts +116 -0
  817. package/dist/src/services/workflow/workflow-spec.js +431 -0
  818. package/dist/src/services/workflow/workflow-state-store.d.ts +27 -0
  819. package/dist/src/services/workflow/workflow-state-store.js +95 -0
  820. package/dist/src/services/workspace/claude-settings-template.d.ts +96 -0
  821. package/dist/src/services/workspace/claude-settings-template.js +215 -0
  822. package/dist/src/services/workspace/migrate-1-4-1-service.d.ts +44 -0
  823. package/dist/src/services/workspace/migrate-1-4-1-service.js +195 -0
  824. package/dist/src/services/workspace/migrate-service.d.ts +2 -0
  825. package/dist/src/services/workspace/migrate-service.js +613 -0
  826. package/dist/src/services/workspace/migrate-types.d.ts +127 -0
  827. package/dist/src/services/workspace/migrate-types.js +21 -0
  828. package/dist/src/services/workspace/reconcile-service.d.ts +188 -0
  829. package/dist/src/services/workspace/reconcile-service.js +683 -0
  830. package/dist/src/services/workspace/reconcile-types.d.ts +130 -0
  831. package/dist/src/services/workspace/reconcile-types.js +13 -0
  832. package/dist/src/services/workspace/sid-naming-guard.d.ts +17 -0
  833. package/dist/src/services/workspace/sid-naming-guard.js +34 -0
  834. package/dist/src/services/workspace/workspace-claude-settings-materializer.d.ts +45 -0
  835. package/dist/src/services/workspace/workspace-claude-settings-materializer.js +194 -0
  836. package/dist/src/services/workspace/workspace-clean-service.d.ts +28 -0
  837. package/dist/src/services/workspace/workspace-clean-service.js +46 -0
  838. package/dist/src/services/workspace/workspace-service.d.ts +177 -0
  839. package/dist/src/services/workspace/workspace-service.js +432 -0
  840. package/dist/src/services/workspace/workspace-state-service.d.ts +7 -0
  841. package/dist/src/services/workspace/workspace-state-service.js +43 -0
  842. package/dist/src/shared/format-md-compact.d.ts +32 -0
  843. package/dist/src/shared/format-md-compact.js +297 -0
  844. package/dist/src/shared/frontmatter.d.ts +6 -0
  845. package/dist/src/shared/frontmatter.js +165 -0
  846. package/dist/src/shared/fs-utils.d.ts +4 -0
  847. package/dist/src/shared/fs-utils.js +16 -0
  848. package/dist/src/shared/fs.d.ts +4 -0
  849. package/dist/src/shared/fs.js +26 -0
  850. package/dist/src/shared/incrementing-number.d.ts +23 -0
  851. package/dist/src/shared/incrementing-number.js +68 -0
  852. package/dist/src/shared/json-schema-mini.d.ts +10 -0
  853. package/dist/src/shared/json-schema-mini.js +113 -0
  854. package/dist/src/shared/path-safety.d.ts +21 -0
  855. package/dist/src/shared/path-safety.js +54 -0
  856. package/dist/src/shared/path-utils.d.ts +13 -0
  857. package/dist/src/shared/path-utils.js +56 -0
  858. package/dist/src/shared/paths.d.ts +6 -0
  859. package/dist/src/shared/paths.js +50 -0
  860. package/dist/src/shared/planner-response.d.ts +21 -0
  861. package/dist/src/shared/planner-response.js +26 -0
  862. package/dist/src/shared/platform.d.ts +6 -0
  863. package/dist/src/shared/platform.js +11 -0
  864. package/dist/src/shared/process.d.ts +5 -0
  865. package/dist/src/shared/process.js +12 -0
  866. package/dist/src/shared/result.d.ts +22 -0
  867. package/dist/src/shared/result.js +46 -0
  868. package/dist/src/shared/stale-policy.d.ts +67 -0
  869. package/dist/src/shared/stale-policy.js +85 -0
  870. package/dist/src/shared/version.d.ts +1 -0
  871. package/dist/src/shared/version.js +1 -0
  872. package/output-styles/peaks-skill-swarm.md +132 -0
  873. package/package.json +101 -0
  874. package/schemas/approval-record.schema.json +14 -0
  875. package/schemas/artifact-manifest.schema.json +16 -0
  876. package/schemas/artifact-retention-report.schema.json +38 -0
  877. package/schemas/artifact-workspace.schema.json +22 -0
  878. package/schemas/capability-availability.schema.json +36 -0
  879. package/schemas/capability-item.schema.json +37 -0
  880. package/schemas/capability-source.schema.json +30 -0
  881. package/schemas/change-impact.schema.json +15 -0
  882. package/schemas/context-capsule.schema.json +16 -0
  883. package/schemas/context.schema.json +360 -0
  884. package/schemas/decomposition-v1.json +194 -0
  885. package/schemas/decomposition-v2.json +193 -0
  886. package/schemas/doctor-report.schema.json +34 -0
  887. package/schemas/library-breaking-changes.data.json +141 -0
  888. package/schemas/library-breaking-changes.meta.json +6 -0
  889. package/schemas/library-breaking-changes.schema.json +50 -0
  890. package/schemas/mcp-apply-result.schema.json +46 -0
  891. package/schemas/mcp-install-plan.schema.json +71 -0
  892. package/schemas/mcp-install-spec.schema.json +29 -0
  893. package/schemas/mcp-server.schema.json +29 -0
  894. package/schemas/openspec-change-summary.schema.json +68 -0
  895. package/schemas/openspec-render-request.schema.json +61 -0
  896. package/schemas/openspec-validation-result.schema.json +36 -0
  897. package/schemas/recommendation-plan.schema.json +37 -0
  898. package/schemas/refactor-slice-spec.schema.json +19 -0
  899. package/schemas/replay-fixture.schema.json +158 -0
  900. package/schemas/reviewer-envelope.schema.json +79 -0
  901. package/schemas/sop-manifest.schema.json +52 -0
  902. package/scripts/clean-dist.mjs +8 -0
  903. package/scripts/install-skills.mjs +1202 -0
  904. package/scripts/sync-version.mjs +12 -0
  905. package/scripts/watch.mjs +389 -0
  906. package/skills/peaks-audit/SKILL.md +151 -0
  907. package/skills/peaks-audit/references/6-dimensions.md +141 -0
  908. package/skills/peaks-doctor/SKILL.md +59 -0
  909. package/skills/peaks-doctor/references/doctor-check-catalog.md +31 -0
  910. package/skills/peaks-doctor/references/from-doctor-flow.md +64 -0
  911. package/skills/peaks-doctor/test_prompts.json +17 -0
  912. package/skills/peaks-final-review/SKILL.md +157 -0
  913. package/skills/peaks-final-review/references/4-dimensions.md +117 -0
  914. package/skills/peaks-ide/SKILL.md +161 -0
  915. package/skills/peaks-ide/references/audit-log-helper.md +52 -0
  916. package/skills/peaks-perf-audit/SKILL.md +166 -0
  917. package/skills/peaks-perf-audit/references/audit-protocol.md +173 -0
  918. package/skills/peaks-prd/SKILL.md +319 -0
  919. package/skills/peaks-prd/references/artifact-contracts.md +7 -0
  920. package/skills/peaks-prd/references/artifact-per-request.md +78 -0
  921. package/skills/peaks-prd/references/command-migration.md +3 -0
  922. package/skills/peaks-prd/references/prd-for-multi-pass.md +49 -0
  923. package/skills/peaks-prd/references/workflow.md +43 -0
  924. package/skills/peaks-qa/SKILL.md +240 -0
  925. package/skills/peaks-qa/references/artifact-contracts.md +7 -0
  926. package/skills/peaks-qa/references/artifact-per-request.md +25 -0
  927. package/skills/peaks-qa/references/browser-validation-contracts.md +51 -0
  928. package/skills/peaks-qa/references/codegraph-regression-focus.md +5 -0
  929. package/skills/peaks-qa/references/command-migration.md +3 -0
  930. package/skills/peaks-qa/references/external-capability-guidance.md +9 -0
  931. package/skills/peaks-qa/references/openspec-validation-gate.md +55 -0
  932. package/skills/peaks-qa/references/qa-compact-handoff.md +3 -0
  933. package/skills/peaks-qa/references/qa-context-governance.md +24 -0
  934. package/skills/peaks-qa/references/qa-fanout-contract.md +158 -0
  935. package/skills/peaks-qa/references/qa-gstack-integration.md +7 -0
  936. package/skills/peaks-qa/references/qa-local-artifacts.md +3 -0
  937. package/skills/peaks-qa/references/qa-matt-pocock-integration.md +9 -0
  938. package/skills/peaks-qa/references/qa-perf-test-plan.md +67 -0
  939. package/skills/peaks-qa/references/qa-refactor-role.md +3 -0
  940. package/skills/peaks-qa/references/qa-runbook.md +72 -0
  941. package/skills/peaks-qa/references/qa-security-test-plan.md +73 -0
  942. package/skills/peaks-qa/references/qa-skill-presence.md +22 -0
  943. package/skills/peaks-qa/references/qa-standards-preflight.md +8 -0
  944. package/skills/peaks-qa/references/qa-sub-agent-dispatch.md +46 -0
  945. package/skills/peaks-qa/references/qa-transition-gates.md +86 -0
  946. package/skills/peaks-qa/references/reading-handoff-frontmatter.md +30 -0
  947. package/skills/peaks-qa/references/regression-gates.md +24 -0
  948. package/skills/peaks-qa/references/requirement-boundary-recheck.md +9 -0
  949. package/skills/peaks-qa/references/test-case-generation.md +27 -0
  950. package/skills/peaks-qa/references/test-report-output.md +14 -0
  951. package/skills/peaks-rd/SKILL.md +279 -0
  952. package/skills/peaks-rd/references/artifact-and-standards-output.md +9 -0
  953. package/skills/peaks-rd/references/artifact-contracts.md +7 -0
  954. package/skills/peaks-rd/references/artifact-per-request.md +112 -0
  955. package/skills/peaks-rd/references/browser-action-wrapper.md +39 -0
  956. package/skills/peaks-rd/references/browser-self-test-contracts.md +29 -0
  957. package/skills/peaks-rd/references/code-reviewer-4dim-hint.md +72 -0
  958. package/skills/peaks-rd/references/codegraph-project-analysis.md +5 -0
  959. package/skills/peaks-rd/references/command-migration.md +3 -0
  960. package/skills/peaks-rd/references/compact-handoff.md +3 -0
  961. package/skills/peaks-rd/references/external-references.md +11 -0
  962. package/skills/peaks-rd/references/frontend-project-generation.md +11 -0
  963. package/skills/peaks-rd/references/karpathy-reviewer-prompt.md +2 -0
  964. package/skills/peaks-rd/references/library-version-awareness.md +30 -0
  965. package/skills/peaks-rd/references/mandatory-perf-baseline.md +42 -0
  966. package/skills/peaks-rd/references/matt-pocock-integration.md +11 -0
  967. package/skills/peaks-rd/references/mock-data-placement.md +40 -0
  968. package/skills/peaks-rd/references/ocr-integration.md +229 -0
  969. package/skills/peaks-rd/references/openspec-cli.md +62 -0
  970. package/skills/peaks-rd/references/parallel-review-fanout.md +90 -0
  971. package/skills/peaks-rd/references/rd-context-governance.md +36 -0
  972. package/skills/peaks-rd/references/rd-fanout-contracts.md +216 -0
  973. package/skills/peaks-rd/references/rd-gstack-integration.md +16 -0
  974. package/skills/peaks-rd/references/rd-runbook.md +190 -0
  975. package/skills/peaks-rd/references/rd-standards-preflight.md +8 -0
  976. package/skills/peaks-rd/references/rd-sub-agent-dispatch.md +111 -0
  977. package/skills/peaks-rd/references/rd-transition-gates.md +148 -0
  978. package/skills/peaks-rd/references/reading-v2-slice-results.md +54 -0
  979. package/skills/peaks-rd/references/refactor-workflow.md +39 -0
  980. package/skills/peaks-rd/references/skill-presence-and-title.md +22 -0
  981. package/skills/peaks-rd/references/v2-12-fanout-collapse.md +64 -0
  982. package/skills/peaks-rd/references/writing-handoff-frontmatter.md +68 -0
  983. package/skills/peaks-reviewer/SKILL.md +76 -0
  984. package/skills/peaks-reviewer/references/reviewer-prompt.md +50 -0
  985. package/skills/peaks-reviewer/references/reviewer-schema.md +49 -0
  986. package/skills/peaks-sc/SKILL.md +166 -0
  987. package/skills/peaks-sc/references/artifact-contracts.md +3 -0
  988. package/skills/peaks-sc/references/artifact-retention.md +14 -0
  989. package/skills/peaks-sc/references/command-migration.md +3 -0
  990. package/skills/peaks-sc/references/openspec-commit-boundaries.md +33 -0
  991. package/skills/peaks-security-audit/SKILL.md +167 -0
  992. package/skills/peaks-security-audit/references/audit-protocol.md +175 -0
  993. package/skills/peaks-slice-decompose/SKILL.md +111 -0
  994. package/skills/peaks-slice-decompose/references/cross-pass-edge-interpretation.md +158 -0
  995. package/skills/peaks-slice-decompose/references/granularity-decision.md +129 -0
  996. package/skills/peaks-slice-decompose/references/v2-schema.md +156 -0
  997. package/skills/peaks-solo/SKILL.md +316 -0
  998. package/skills/peaks-solo/references/a2a-artifact-mapping.md +115 -0
  999. package/skills/peaks-solo/references/anchoring-and-session-info.md +34 -0
  1000. package/skills/peaks-solo/references/artifact-contracts.md +65 -0
  1001. package/skills/peaks-solo/references/boundaries.md +21 -0
  1002. package/skills/peaks-solo/references/browser-workflow.md +127 -0
  1003. package/skills/peaks-solo/references/checkpoint-resume.md +70 -0
  1004. package/skills/peaks-solo/references/codegraph-orchestration.md +5 -0
  1005. package/skills/peaks-solo/references/command-migration.md +3 -0
  1006. package/skills/peaks-solo/references/completion-handoff.md +18 -0
  1007. package/skills/peaks-solo/references/context-governance.md +204 -0
  1008. package/skills/peaks-solo/references/cross-date-session-check.md +67 -0
  1009. package/skills/peaks-solo/references/dag-orchestrator.md +56 -0
  1010. package/skills/peaks-solo/references/envelope-contract.md +130 -0
  1011. package/skills/peaks-solo/references/existing-system-extraction.md +78 -0
  1012. package/skills/peaks-solo/references/external-references.md +17 -0
  1013. package/skills/peaks-solo/references/external-skill-invocation.md +72 -0
  1014. package/skills/peaks-solo/references/fanout-mandatory.md +109 -0
  1015. package/skills/peaks-solo/references/fast-mode.md +23 -0
  1016. package/skills/peaks-solo/references/frontend-only-mode.md +87 -0
  1017. package/skills/peaks-solo/references/gstack-integration.md +7 -0
  1018. package/skills/peaks-solo/references/headroom-integration.md +107 -0
  1019. package/skills/peaks-solo/references/local-artifact-workspace.md +79 -0
  1020. package/skills/peaks-solo/references/micro-cycle.md +316 -0
  1021. package/skills/peaks-solo/references/mode-selection-with-stale-presence.md +124 -0
  1022. package/skills/peaks-solo/references/mode-selection.md +21 -0
  1023. package/skills/peaks-solo/references/openspec-workflow.md +81 -0
  1024. package/skills/peaks-solo/references/periodic-checkpoint.md +71 -0
  1025. package/skills/peaks-solo/references/playwright-mcp-multi-terminal.md +114 -0
  1026. package/skills/peaks-solo/references/project-memory-loading.md +17 -0
  1027. package/skills/peaks-solo/references/project-scan-checklist.md +136 -0
  1028. package/skills/peaks-solo/references/quality-gate-cheatsheet.md +13 -0
  1029. package/skills/peaks-solo/references/refactor-mode.md +24 -0
  1030. package/skills/peaks-solo/references/resume-detection.md +63 -0
  1031. package/skills/peaks-solo/references/runbook.md +188 -0
  1032. package/skills/peaks-solo/references/skill-presence-and-title.md +31 -0
  1033. package/skills/peaks-solo/references/standards-preflight.md +23 -0
  1034. package/skills/peaks-solo/references/step-0-55-1x-detection.md +82 -0
  1035. package/skills/peaks-solo/references/sub-agent-dispatch.md +334 -0
  1036. package/skills/peaks-solo/references/swarm-dispatch-contract.md +230 -0
  1037. package/skills/peaks-solo/references/workflow-gates-and-types.md +186 -0
  1038. package/skills/peaks-solo/references/workflow.md +38 -0
  1039. package/skills/peaks-solo-resume/SKILL.md +81 -0
  1040. package/skills/peaks-solo-status/SKILL.md +120 -0
  1041. package/skills/peaks-solo-test/SKILL.md +84 -0
  1042. package/skills/peaks-sop/SKILL.md +209 -0
  1043. package/skills/peaks-sop/references/sop-authoring.md +161 -0
  1044. package/skills/peaks-txt/SKILL.md +303 -0
  1045. package/skills/peaks-txt/references/artifact-contracts.md +7 -0
  1046. package/skills/peaks-txt/references/command-migration.md +3 -0
  1047. package/skills/peaks-txt/references/context-capsule.md +21 -0
  1048. package/skills/peaks-ui/SKILL.md +369 -0
  1049. package/skills/peaks-ui/references/artifact-contracts.md +3 -0
  1050. package/skills/peaks-ui/references/artifact-per-request.md +71 -0
  1051. package/skills/peaks-ui/references/command-migration.md +3 -0
  1052. package/skills/peaks-ui/references/workflow.md +27 -0
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ import { readFileSync, writeFileSync } from 'node:fs';
3
+ import { resolve } from 'node:path';
4
+
5
+ const packageJson = JSON.parse(readFileSync(resolve('package.json'), 'utf8'));
6
+ const version = packageJson.version;
7
+
8
+ if (typeof version !== 'string' || version.length === 0) {
9
+ throw new Error('package.json version must be a non-empty string');
10
+ }
11
+
12
+ writeFileSync(resolve('src/shared/version.ts'), `export const CLI_VERSION = ${JSON.stringify(version)};\n`);
@@ -0,0 +1,389 @@
1
+ #!/usr/bin/env node
2
+ import { spawn } from 'node:child_process';
3
+ import { watch as nodeWatch } from 'node:fs';
4
+ import { readdir } from 'node:fs/promises';
5
+ import { join, resolve } from 'node:path';
6
+ import { pathToFileURL } from 'node:url';
7
+ import { installBundledSkills } from './install-skills.mjs';
8
+
9
+ export const WATCHED_INPUTS = ['src', 'schemas', 'skills'];
10
+ export const DEFAULT_BUILD_COMMAND = ['pnpm', ['run', 'build']];
11
+
12
+ function getErrorMessage(error) {
13
+ return error instanceof Error ? error.message : String(error);
14
+ }
15
+
16
+ function getErrorCode(error) {
17
+ return typeof error === 'object' && error !== null && 'code' in error ? error.code : undefined;
18
+ }
19
+
20
+ function isAbortError(error) {
21
+ return error instanceof Error && error.name === 'AbortError';
22
+ }
23
+
24
+ function isMissingPathError(error) {
25
+ return getErrorCode(error) === 'ENOENT';
26
+ }
27
+
28
+ export function runCommand(command, args, options = {}) {
29
+ return new Promise((resolvePromise, rejectPromise) => {
30
+ let child;
31
+
32
+ try {
33
+ child = spawn(command, args, { stdio: 'inherit', ...options });
34
+ } catch (error) {
35
+ rejectPromise(error);
36
+ return;
37
+ }
38
+
39
+ let settled = false;
40
+ const settle = (handler, value) => {
41
+ if (settled) {
42
+ return;
43
+ }
44
+
45
+ settled = true;
46
+ handler(value);
47
+ };
48
+
49
+ child.once('error', (error) => {
50
+ if (options.signal?.aborted || isAbortError(error)) {
51
+ const abortError = new Error(`${command} ${args.join(' ')} was aborted`);
52
+ abortError.name = 'AbortError';
53
+ settle(rejectPromise, abortError);
54
+ return;
55
+ }
56
+
57
+ settle(rejectPromise, error);
58
+ });
59
+
60
+ child.once('close', (code, signal) => {
61
+ if (code === 0) {
62
+ settle(resolvePromise);
63
+ return;
64
+ }
65
+
66
+ if (options.signal?.aborted || signal) {
67
+ const abortError = new Error(`${command} ${args.join(' ')} was aborted`);
68
+ abortError.name = 'AbortError';
69
+ settle(rejectPromise, abortError);
70
+ return;
71
+ }
72
+
73
+ settle(rejectPromise, new Error(`${command} ${args.join(' ')} failed with exit code ${code}`));
74
+ });
75
+ });
76
+ }
77
+
78
+ export async function collectDirectories(root) {
79
+ const directories = [];
80
+ const visited = new Set();
81
+
82
+ async function visit(directory) {
83
+ if (visited.has(directory)) {
84
+ return;
85
+ }
86
+
87
+ visited.add(directory);
88
+
89
+ let entries;
90
+ try {
91
+ entries = await readdir(directory, { withFileTypes: true });
92
+ } catch (error) {
93
+ if (isMissingPathError(error)) {
94
+ return;
95
+ }
96
+
97
+ throw error;
98
+ }
99
+
100
+ directories.push(directory);
101
+
102
+ for (const entry of entries) {
103
+ if (!entry.isDirectory()) {
104
+ continue;
105
+ }
106
+
107
+ await visit(join(directory, entry.name));
108
+ }
109
+ }
110
+
111
+ await visit(root);
112
+ return directories;
113
+ }
114
+
115
+ export function createDirectoryTreeWatcher(root, options = {}) {
116
+ const watch = options.watch ?? nodeWatch;
117
+ const collect = options.collectDirectories ?? collectDirectories;
118
+ const onChange = options.onChange ?? (() => {});
119
+ const watchers = new Map();
120
+ let refreshPromise = null;
121
+ let refreshRequested = false;
122
+ let isClosed = false;
123
+
124
+ const syncWatchers = async () => {
125
+ const directories = await collect(root);
126
+ const nextDirectories = new Set(directories);
127
+
128
+ for (const [directory, watcher] of watchers) {
129
+ if (nextDirectories.has(directory)) {
130
+ continue;
131
+ }
132
+
133
+ watcher.close();
134
+ watchers.delete(directory);
135
+ }
136
+
137
+ for (const directory of directories) {
138
+ if (watchers.has(directory)) {
139
+ continue;
140
+ }
141
+
142
+ const watcher = watch(directory, () => {
143
+ onChange();
144
+ void requestRefresh();
145
+ });
146
+ watchers.set(directory, watcher);
147
+ }
148
+ };
149
+
150
+ const requestRefresh = async () => {
151
+ if (isClosed) {
152
+ return;
153
+ }
154
+
155
+ refreshRequested = true;
156
+ if (refreshPromise) {
157
+ return refreshPromise;
158
+ }
159
+
160
+ refreshPromise = (async () => {
161
+ do {
162
+ refreshRequested = false;
163
+ await syncWatchers();
164
+ } while (refreshRequested && !isClosed);
165
+ })();
166
+
167
+ try {
168
+ await refreshPromise;
169
+ } finally {
170
+ refreshPromise = null;
171
+ }
172
+ };
173
+
174
+ return {
175
+ async start() {
176
+ await requestRefresh();
177
+ },
178
+ async close() {
179
+ isClosed = true;
180
+
181
+ if (refreshPromise) {
182
+ await refreshPromise.catch(() => undefined);
183
+ }
184
+
185
+ for (const watcher of watchers.values()) {
186
+ watcher.close();
187
+ }
188
+
189
+ watchers.clear();
190
+ }
191
+ };
192
+ }
193
+
194
+ export async function rebuildOnce(options = {}) {
195
+ const runner = options.runner ?? runCommand;
196
+ const installer = options.installer ?? installBundledSkills;
197
+ const [command, args] = options.command ?? DEFAULT_BUILD_COMMAND;
198
+
199
+ await runner(command, args, options.runOptions);
200
+ return installer(options.installOptions);
201
+ }
202
+
203
+ export function createWatchMode(options = {}) {
204
+ const inputs = options.inputs ?? WATCHED_INPUTS;
205
+ const createTreeWatcher = options.createTreeWatcher ?? createDirectoryTreeWatcher;
206
+ const runner = options.runner ?? runCommand;
207
+ const installer = options.installer ?? installBundledSkills;
208
+ const collectDirectoriesFn = options.collectDirectories ?? collectDirectories;
209
+ const watch = options.watch ?? nodeWatch;
210
+ const stdout = options.stdout ?? process.stdout;
211
+ const stderr = options.stderr ?? process.stderr;
212
+ const debounceMs = options.debounceMs ?? 150;
213
+ const treeWatchers = [];
214
+ let debounceTimer;
215
+ let isBuilding = false;
216
+ let hasQueuedRebuild = false;
217
+ let isClosed = false;
218
+ let currentAbortController = null;
219
+ let currentBuildPromise = null;
220
+
221
+ const writeStatus = (message) => stdout.write(`[peaks watch] ${message}\n`);
222
+ const writeError = (message) => stderr.write(`[peaks watch] ${message}\n`);
223
+
224
+ const rebuild = async (reason) => {
225
+ if (isClosed) {
226
+ return;
227
+ }
228
+
229
+ if (isBuilding) {
230
+ hasQueuedRebuild = true;
231
+ return currentBuildPromise ?? undefined;
232
+ }
233
+
234
+ isBuilding = true;
235
+ currentAbortController = new AbortController();
236
+ writeStatus(`${reason}: rebuilding dist and relinking skills`);
237
+
238
+ const buildPromise = (async () => {
239
+ try {
240
+ const result = await rebuildOnce({
241
+ runner,
242
+ installer,
243
+ runOptions: { signal: currentAbortController.signal }
244
+ });
245
+ const installed = result?.installed?.length ?? 0;
246
+ const skipped = result?.skipped?.length ?? 0;
247
+ writeStatus(`ready (${installed} skills linked, ${skipped} skipped)`);
248
+ } catch (error) {
249
+ if (isAbortError(error)) {
250
+ return;
251
+ }
252
+
253
+ writeError(`rebuild failed: ${getErrorMessage(error)}`);
254
+ } finally {
255
+ isBuilding = false;
256
+ currentAbortController = null;
257
+ }
258
+ })();
259
+
260
+ currentBuildPromise = buildPromise;
261
+
262
+ try {
263
+ await buildPromise;
264
+ } finally {
265
+ currentBuildPromise = null;
266
+ if (!isClosed && hasQueuedRebuild) {
267
+ hasQueuedRebuild = false;
268
+ await rebuild('queued change');
269
+ }
270
+ }
271
+ };
272
+
273
+ const scheduleRebuild = () => {
274
+ if (isClosed) {
275
+ return;
276
+ }
277
+
278
+ if (debounceTimer) {
279
+ clearTimeout(debounceTimer);
280
+ }
281
+
282
+ debounceTimer = setTimeout(() => {
283
+ debounceTimer = undefined;
284
+ void rebuild('change detected');
285
+ }, debounceMs);
286
+ };
287
+
288
+ const closeTreeWatchers = async () => {
289
+ for (const treeWatcher of [...treeWatchers].reverse()) {
290
+ await treeWatcher.close();
291
+ }
292
+
293
+ treeWatchers.length = 0;
294
+ };
295
+
296
+ return {
297
+ async start() {
298
+ await rebuild('initial');
299
+
300
+ if (isClosed) {
301
+ return;
302
+ }
303
+
304
+ let startupFailed = false;
305
+ try {
306
+ for (const input of inputs) {
307
+ if (isClosed) {
308
+ break;
309
+ }
310
+
311
+ const treeWatcher = createTreeWatcher(input, {
312
+ watch,
313
+ collectDirectories: collectDirectoriesFn,
314
+ onChange: scheduleRebuild
315
+ });
316
+ treeWatchers.push(treeWatcher);
317
+ await treeWatcher.start();
318
+
319
+ if (isClosed) {
320
+ break;
321
+ }
322
+ }
323
+ } catch (error) {
324
+ startupFailed = true;
325
+ throw error;
326
+ } finally {
327
+ if (startupFailed || isClosed) {
328
+ await closeTreeWatchers();
329
+ }
330
+ }
331
+
332
+ if (!isClosed) {
333
+ writeStatus(`watching ${inputs.join(', ')}`);
334
+ }
335
+ },
336
+ async close() {
337
+ isClosed = true;
338
+
339
+ if (debounceTimer) {
340
+ clearTimeout(debounceTimer);
341
+ debounceTimer = undefined;
342
+ }
343
+
344
+ if (currentAbortController) {
345
+ currentAbortController.abort();
346
+ }
347
+
348
+ await closeTreeWatchers();
349
+
350
+ if (currentBuildPromise) {
351
+ await currentBuildPromise.catch(() => undefined);
352
+ }
353
+ }
354
+ };
355
+ }
356
+
357
+ async function main() {
358
+ const watchMode = createWatchMode();
359
+ let shuttingDown = false;
360
+
361
+ const shutdown = async () => {
362
+ if (shuttingDown) {
363
+ return;
364
+ }
365
+
366
+ shuttingDown = true;
367
+
368
+ try {
369
+ await watchMode.close();
370
+ process.stdout.write('[peaks watch] stopped\n');
371
+ process.exit(0);
372
+ } catch (error) {
373
+ process.stderr.write(`[peaks watch] ${getErrorMessage(error)}\n`);
374
+ process.exit(1);
375
+ }
376
+ };
377
+
378
+ process.once('SIGINT', () => void shutdown());
379
+ process.once('SIGTERM', () => void shutdown());
380
+
381
+ await watchMode.start();
382
+ }
383
+
384
+ if (process.argv[1] !== undefined && import.meta.url === pathToFileURL(resolve(process.argv[1])).href) {
385
+ main().catch((error) => {
386
+ process.stderr.write(`[peaks watch] ${getErrorMessage(error)}\n`);
387
+ process.exitCode = 1;
388
+ });
389
+ }
@@ -0,0 +1,151 @@
1
+ ---
2
+ name: peaks-audit
3
+ description: Gate autonomous LLM work on a 6-dimension audit + user-accepted goal. Use IMMEDIATELY after a need is expressed, BEFORE any PRD/RD/QA work starts.
4
+ ---
5
+
6
+ ## Single-scope-axis naming convention
7
+
8
+ > **Read once at the top of this file; the rest of the skill is written against it.**
9
+
10
+ The `.peaks/` workspace is partitioned by a **single scope axis** (session-id, at `.peaks/_runtime/<sessionId>/...`) with a nested **sub-agent axis** under `.peaks/_sub_agents/<sessionId>/...`. Use `<sessionId>` placeholders (NEVER bare `<sid>`). The peaks-cli change-id axis was removed in slice `2026-06-29-change-id-root-removal`; reviewable artifacts now live under `.peaks/_runtime/<sessionId>/<role>/...` only. OpenSpec's independent `openspec/changes/<change-id>/` vocabulary (L4) is preserved untouched. CLI mapping: session-id → `peaks session *`; sub-agent → `peaks sub-agent *`. Regression test `tests/unit/skills/skills-skill-md-naming.test.ts` enforces (a) zero bare `<sid>`, (b) every `.peaks/_runtime/<X>/` has an axis label, (c) this callout is present.
11
+
12
+ # Peaks-Cli Audit
13
+
14
+ `peaks-audit` is the **first** step in any peaks-* workflow. It turns a human-expressed need into a 6-dimension audit plus a proposed goal, and refuses to let autonomous LLM work proceed on a partial audit. It is invoked IMMEDIATELY after the need is expressed, and BEFORE any PRD, RD, or QA work begins.
15
+
16
+ ## Precondition
17
+
18
+ **None.** `peaks-audit` is the entry point; no other peaks-* skill runs first. If the user hands you a raw need with no accepted goal, audit it before doing anything else.
19
+
20
+ ## Hard contract — invoke IMMEDIATELY
21
+
22
+ When a workflow surfaces a human need (a sentence, a ticket summary, a voice note, a vague "I want X"), call `peaks-audit` BEFORE any other skill:
23
+
24
+ ```text
25
+ need expressed → peaks audit-goal → (user accepts goal) → peaks-prd → peaks-rd → peaks-qa
26
+ ▲
27
+ │
28
+ you are here on first contact
29
+ ```
30
+
31
+ Do not start PRD, RD, or QA work on an unaudited need. The audit is what makes the downstream skill boundaries verifiable.
32
+
33
+ ## Trigger conditions
34
+
35
+ Invoke `peaks-audit` when **any** of these are true:
36
+
37
+ - A human just expressed a software-development need and no accepted `proposedGoal` exists yet.
38
+ - A previous audit was rejected (any dimension missing, malformed JSON, or the user said "redo the audit").
39
+ - A drift detector (peaks-doctor, peaks-solo) flagged that an in-flight slice lost its goal binding.
40
+ - The user typed `/peaks-audit` or said "audit this", "scope this", "what would this take", "is this a good idea".
41
+
42
+ Do NOT invoke peaks-audit when the user is asking for a code review, a test run, or a deployment — those are downstream skills.
43
+
44
+ ## Invocation
45
+
46
+ ### Intended CLI form (L2.4 — not yet registered in `src/cli/commands/audit-commands.ts`)
47
+
48
+ ```bash
49
+ peaks audit-goal --need "<natural language description of the need>" --json
50
+ ```
51
+
52
+ > **Deviation note:** at the time of this writing, only `peaks audit red-lines` and `peaks audit static` are registered as `peaks audit` subcommands. The `audit-goal` subcommand is **not yet wired** in `src/cli/commands/audit-commands.ts`. Callers reach the primitive through the TypeScript module below. The CLI registration is tracked separately and must not be conflated with the primitive itself.
53
+
54
+ ### Service-layer form (authoritative, used today)
55
+
56
+ `peaks audit-goal` is a thin wrapper around the `auditGoal()` function in `src/services/audit/audit-goal-service.ts`. Two integration paths exist today:
57
+
58
+ **1. Direct TypeScript call** (used by `src/services/final-review/final-review-service.ts`, `src/services/slice/llm-arbitrator.ts`, `src/services/slice/multi-pass-orchestrator.ts`):
59
+
60
+ ```typescript
61
+ import { auditGoal, IncompleteAuditError } from './services/audit/audit-goal-service.js';
62
+ import type { LlmRunner } from './services/audit/audit-goal-service.js';
63
+
64
+ try {
65
+ const output = await auditGoal({ need }, llmRunner);
66
+ // output is a fully validated AuditGoalOutput
67
+ } catch (err) {
68
+ if (err instanceof IncompleteAuditError) {
69
+ // code === 'INCOMPLETE_AUDIT'
70
+ // autonomous work MUST NOT proceed — return to human
71
+ }
72
+ throw err;
73
+ }
74
+ ```
75
+
76
+ **2. File-mediated handoff** (used by `final-review-service` to read the human-approved goal):
77
+
78
+ The approved goal is persisted at:
79
+
80
+ ```text
81
+ .peaks/_runtime/<sessionId>/audit-goal/<rid>.json
82
+ ```
83
+
84
+ `final-review-service` reads this file at the start of every final-review pass. The shape is exactly `AuditGoalOutput` (see Output below). The writer that produces this file is whatever upstream agent (peaks-audit, the slice LLMArbitrator, or a hand-authored call) ran the audit.
85
+
86
+ ## Output: `AuditGoalOutput`
87
+
88
+ `auditGoal()` returns a frozen object with EXACTLY these top-level fields (per `src/services/audit/audit-goal-types.ts`):
89
+
90
+ | Field | Type | Meaning |
91
+ |---|---|---|
92
+ | `summary` | `string` | 1–2 sentence restatement of the need. |
93
+ | `audit` | `readonly AuditDimension[]` | EXACTLY 6 entries, one per dimension (see below). |
94
+ | `proposedGoal` | `string` | What success looks like for the work. |
95
+ | `successCriteria` | `readonly string[]` | Acceptance bullets QA can execute against. |
96
+ | `roughEffort` | `'small' \| 'medium' \| 'large' \| 'epic'` | T-shirt size, not hours. |
97
+ | `confidence` | `'high' \| 'medium' \| 'low'` | How certain the audit is of the need. |
98
+ | `rationale` | `string` | One paragraph tying the audit findings to the proposed goal. |
99
+
100
+ Each `AuditDimension` is:
101
+
102
+ | Field | Type | Meaning |
103
+ |---|---|---|
104
+ | `dimension` | `AuditDimensionKind` | One of `correctness`, `completeness`, `scope`, `risks`, `alternatives`, `constraints`. |
105
+ | `finding` | `string` | The audit observation for that dimension. |
106
+ | `severity` | `'info' \| 'concern' \| 'blocker'` | Whether the dimension is healthy (`info`), suspicious (`concern`), or fatal (`blocker`). |
107
+
108
+ → see `references/6-dimensions.md` for the per-dimension contract + `info` / `concern` / `blocker` definitions.
109
+
110
+ ## One-shot accuracy (HARD contract)
111
+
112
+ The audit MUST be good enough that a human can accept the `proposedGoal` on the **first** review. The whole point of the primitive is to compress the LLM's understanding of a need into something a human can OK in one read.
113
+
114
+ That means:
115
+
116
+ - `proposedGoal` is one sentence, not a paragraph.
117
+ - `successCriteria` are executable, not aspirational ("`peaks audit red-lines` exits 0" is good; "tests pass" is bad).
118
+ - Every dimension has a `severity`. `info` is the default; reserve `concern` for things the human should weigh in on; reserve `blocker` for things that make the work **unsafe to start**.
119
+ - `rationale` ties the findings to the goal in 3–6 sentences, no marketing.
120
+ - `roughEffort` is honest. If you do not know, say `large`. Do not pre-shrink.
121
+ - `confidence` is honest. If the LLM is guessing, say `low`. Do not over-claim.
122
+
123
+ If the audit comes back vague, the LLM was lazy. Re-prompt the LLM with the original `need` + a reminder to be specific. Do not edit the audit output by hand — the service rejects malformed JSON or missing dimensions, and an in-place patch will be silently rejected downstream.
124
+
125
+ ## Failure mode (BLOCKING — read before declaring a workflow started)
126
+
127
+ `auditGoal()` is the **unit of validation**. It rejects any LLM response that:
128
+
129
+ 1. Is not valid JSON.
130
+ 2. Is missing any of the top-level fields (`summary`, `audit`, `proposedGoal`, `successCriteria`, `roughEffort`, `confidence`, `rationale`).
131
+ 3. Has an `audit` array that does not cover all 6 dimensions (`correctness`, `completeness`, `scope`, `risks`, `alternatives`, `constraints`).
132
+
133
+ When any of these triggers, the service throws `IncompleteAuditError` with `code === 'INCOMPLETE_AUDIT'`. The error is the gate signal. Autonomous work MUST NOT proceed on a partial audit. The contract is:
134
+
135
+ - **Caller obligation** — if you catch `IncompleteAuditError`, return the error to the human (or the parent skill). Do not retry silently. Do not fill in the missing dimension yourself.
136
+ - **Downstream obligation** — `peaks-prd`, `peaks-rd`, `peaks-qa` MUST check that an accepted `AuditGoalOutput` exists in the artifact workspace before they start. If absent, they refuse to start and route back to `peaks-audit`.
137
+
138
+ This is the only validation contract the primitive enforces. It is intentionally narrow so the LLM has room to be creative, but the missing-dimension check is non-negotiable.
139
+
140
+ ## When NOT to use peaks-audit
141
+
142
+ - **The user has already accepted a goal.** Re-auditing is wasteful; route to `peaks-prd` or `peaks-rd` directly.
143
+ - **The need is a refactor with no behavior change.** `peaks-rd` can run its own regression matrix without a full 6-dim audit; route there with a `refactor-only` flag.
144
+ - **The need is operational (deploy, rollback, rotate secret).** Route to `peaks-doctor` or a runbook skill, not the audit primitive.
145
+ - **You are mid-slice and the goal drifted.** Trigger `peaks-audit` again to re-bind the goal, then continue. Do not silently update the goal in place.
146
+
147
+ ## References
148
+
149
+ | File | Coverage |
150
+ |---|---|
151
+ | `references/6-dimensions.md` | Per-dimension definition, severity rules, examples. |
@@ -0,0 +1,141 @@
1
+ # The 6 audit dimensions
2
+
3
+ The `auditGoal()` primitive (`src/services/audit/audit-goal-service.ts`) rejects any LLM response that does not cover all six dimensions below. Each dimension is one entry in the `audit` array of `AuditGoalOutput`, shaped as `{ dimension, finding, severity }`. Severity is one of `info`, `concern`, `blocker`.
4
+
5
+ ## Severity recap (applies to every dimension)
6
+
7
+ | Severity | Meaning | Caller action |
8
+ |---|---|---|
9
+ | `info` | Dimension is healthy. The audit is just recording a fact, not flagging risk. | None. Note it and move on. |
10
+ | `concern` | Dimension is suspicious. The human should weigh in before the work starts. | Surface in the rationale; humans accept or amend the proposed goal. |
11
+ | `blocker` | Dimension is fatal. The work MUST NOT proceed in its current shape. | Refuse to start; require the human to re-scope the need. |
12
+
13
+ `blocker` is the only severity that hard-stops the workflow. `concern` is advisory. `info` is bookkeeping.
14
+
15
+ ---
16
+
17
+ ## 1. correctness
18
+
19
+ **Definition.** Does the proposed work actually solve the problem the user described, or is it solving a different problem? Checks whether the LLM's restatement matches the human's intent and whether the goal's success criteria measure the right thing.
20
+
21
+ | Severity | When it applies |
22
+ |---|---|
23
+ | `blocker` | The proposed goal solves a different problem than the need. Audit restates the need incorrectly. |
24
+ | `concern` | Goal is plausible but the success criteria measure a proxy, not the actual outcome. |
25
+ | `info` | Goal aligns with need; criteria measure the right thing. |
26
+
27
+ **Example.**
28
+
29
+ ```text
30
+ { dimension: 'correctness',
31
+ finding: 'Need says "speed up the doctor report"; goal adds a new check that does not affect report latency.',
32
+ severity: 'blocker' }
33
+ ```
34
+
35
+ ---
36
+
37
+ ## 2. completeness
38
+
39
+ **Definition.** Is anything obviously missing from the proposed goal — implicit requirements, edge cases, or "while you're at it" work the user almost certainly meant? Checks whether the goal captures the full surface of the need or only part of it.
40
+
41
+ | Severity | When it applies |
42
+ |---|---|
43
+ | `blocker` | Goal ignores a stated part of the need. (e.g. need says "test + ship" and goal only covers test.) |
44
+ | `concern` | Goal covers the literal need but skips an obvious adjacent surface (migration, rollback, telemetry). |
45
+ | `info` | Goal captures the full need. |
46
+
47
+ **Example.**
48
+
49
+ ```text
50
+ { dimension: 'completeness',
51
+ finding: 'Need mentions "migrate the old config"; goal covers the migration but not the rollback path.',
52
+ severity: 'concern' }
53
+ ```
54
+
55
+ ---
56
+
57
+ ## 3. scope
58
+
59
+ **Definition.** Is the proposed goal sized appropriately for the change? Too big = `epic` masquerading as `medium`; too small = goal that ships nothing useful. Checks whether the LLM respected the implied boundary of the need.
60
+
61
+ | Severity | When it applies |
62
+ |---|---|
63
+ | `blocker` | Goal swallows a much larger refactor than the need implies. (e.g. user asked for a flag, goal is to rewrite the module.) |
64
+ | `concern` | Goal is a bit larger than the need warrants, or `roughEffort` understates what the success criteria imply. |
65
+ | `info` | Scope matches the need; `roughEffort` is honest. |
66
+
67
+ **Example.**
68
+
69
+ ```text
70
+ { dimension: 'scope',
71
+ finding: 'Need: "add a --json flag". Goal: refactor the entire output layer. roughEffort: small.',
72
+ severity: 'blocker' }
73
+ ```
74
+
75
+ ---
76
+
77
+ ## 4. risks
78
+
79
+ **Definition.** What can go wrong, both during the work and after it ships? Includes data loss, regression, performance, security, operability, and human-process risks. Checks whether the LLM surfaced the things a senior engineer would have flagged.
80
+
81
+ | Severity | When it applies |
82
+ |---|---|
83
+ | `blocker` | A known irreversible risk is unaddressed (data loss, security regression, breaking public API). |
84
+ | `concern` | A real risk that the goal does not mitigate (no rollback plan, no migration safety, no perf baseline). |
85
+ | `info` | Risks are surfaced and either mitigated or explicitly accepted. |
86
+
87
+ **Example.**
88
+
89
+ ```text
90
+ { dimension: 'risks',
91
+ finding: 'Goal rewrites the public API without a deprecation window. Consumers break on upgrade.',
92
+ severity: 'blocker' }
93
+ ```
94
+
95
+ ---
96
+
97
+ ## 5. alternatives
98
+
99
+ **Definition.** Did the LLM consider other ways to solve the need, and is the chosen approach actually the best one? Checks whether the goal is the result of a real choice, not the only path the LLM thought of. A "no alternatives considered" finding is a `concern` because the human has nothing to compare against.
100
+
101
+ | Severity | When it applies |
102
+ |---|---|
103
+ | `blocker` | The chosen approach has a known fatal flaw that an obvious alternative avoids. (e.g. "writes a custom parser" when a battle-tested library exists.) |
104
+ | `concern` | No alternatives were considered, or the rationale does not explain why the chosen approach beats them. |
105
+ | `info` | One or more alternatives are noted, with a clear reason the chosen approach wins. |
106
+
107
+ **Example.**
108
+
109
+ ```text
110
+ { dimension: 'alternatives',
111
+ finding: 'Goal hand-rolls a JSON schema validator. `zod` is already a project dep.',
112
+ severity: 'concern' }
113
+ ```
114
+
115
+ ---
116
+
117
+ ## 6. constraints
118
+
119
+ **Definition.** What non-negotiable boundaries does the work have to respect? Includes public APIs that must not change, dependencies that cannot be added, performance budgets, security policies, regulatory constraints, deployment windows, and human-time constraints. Checks whether the goal acknowledges the walls around the work.
120
+
121
+ | Severity | When it applies |
122
+ |---|---|
123
+ | `blocker` | The goal violates a known constraint (e.g. "add a new dep" when the project is dep-free; "rewrite the auth path" when security review is locked). |
124
+ | `concern` | A real constraint is unaddressed (no migration window, no review gate, no perf budget). |
125
+ | `info` | Constraints are acknowledged and respected. |
126
+
127
+ **Example.**
128
+
129
+ ```text
130
+ { dimension: 'constraints',
131
+ finding: 'Project is pinned to Node 18. Goal uses `node:test` snapshot matchers added in Node 22.',
132
+ severity: 'blocker' }
133
+ ```
134
+
135
+ ---
136
+
137
+ ## Putting it together
138
+
139
+ A complete audit has all six entries, each with a non-empty `finding` and an honest `severity`. The human reads `summary` first, scans the `blocker` lines (if any), then reads the `concern` lines to decide whether to amend the `proposedGoal`. The `info` lines are the floor — they exist so the human trusts that the dimension was actually checked.
140
+
141
+ If any dimension is missing, the `auditGoal()` service throws `IncompleteAuditError` (`code: 'INCOMPLETE_AUDIT'`). The error is a hard gate: autonomous work does not proceed. The fix is to re-prompt the LLM with the original need, not to patch the audit by hand.