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,76 @@
1
+ /**
2
+ * G9.3 — forced compression gate threshold constants + tier evaluation.
3
+ *
4
+ * 256K default context capacity is a conservative proxy. The LLM's real
5
+ * capacity is its private business (R-1 / R-8 / R-10 / R-13 boundary
6
+ * inherited from slice #009); we use prompt size as the gate signal.
7
+ *
8
+ * See: `.peaks/memory/sub-agent-headroom-forced-compression-gate.md`
9
+ * for the full G9 rule (RL-27..RL-32, AC-50..AC-65).
10
+ */
11
+ export const CONTEXT_CAPACITY_DEFAULT_BYTES = 256 * 1024; // 256K
12
+ export const THRESHOLD_SOFT_WARN_RATIO = 0.5; // 50%
13
+ export const THRESHOLD_NEAR_LIMIT_RATIO = 0.75; // 75% — user red line
14
+ export const THRESHOLD_HARD_REJECT_RATIO = 0.80; // 80%
15
+ export const THRESHOLD_EMERGENCY_RATIO = 0.90; // 90%
16
+ /**
17
+ * Compute the threshold tier for a given prompt size. Pure function
18
+ * (no IO, no side effects). The `capacityBytes` parameter lets callers
19
+ * override the default 256K proxy (e.g. for testing or for a future
20
+ * per-IDE capacity override).
21
+ */
22
+ export function evaluateThresholdTier(promptSize, capacityBytes = CONTEXT_CAPACITY_DEFAULT_BYTES) {
23
+ if (!Number.isFinite(promptSize) || promptSize < 0) {
24
+ throw new Error(`evaluateThresholdTier: promptSize must be ≥ 0 (got ${promptSize})`);
25
+ }
26
+ if (!Number.isFinite(capacityBytes) || capacityBytes <= 0) {
27
+ throw new Error(`evaluateThresholdTier: capacityBytes must be > 0 (got ${capacityBytes})`);
28
+ }
29
+ const ratio = promptSize / capacityBytes;
30
+ const warnings = [];
31
+ let tier;
32
+ if (ratio >= THRESHOLD_EMERGENCY_RATIO) {
33
+ tier = 'emergency';
34
+ warnings.push('PROMPT_EMERGENCY');
35
+ }
36
+ else if (ratio >= THRESHOLD_HARD_REJECT_RATIO) {
37
+ tier = 'hard-reject';
38
+ warnings.push('PROMPT_TOO_LARGE');
39
+ }
40
+ else if (ratio >= THRESHOLD_NEAR_LIMIT_RATIO) {
41
+ tier = 'near-limit';
42
+ warnings.push('CONTEXT_NEAR_LIMIT');
43
+ }
44
+ else if (ratio >= THRESHOLD_SOFT_WARN_RATIO) {
45
+ tier = 'soft-warn';
46
+ warnings.push('CONTEXT_SOFT_WARN');
47
+ }
48
+ else {
49
+ tier = 'ok';
50
+ }
51
+ return {
52
+ tier,
53
+ ratio,
54
+ bytesUsed: promptSize,
55
+ capacityBytes,
56
+ warnings
57
+ };
58
+ }
59
+ /**
60
+ * Convert a threshold tier to a machine-readable code suitable for the
61
+ * CLI envelope's `code` field. Used by both the CLI and the hook layer.
62
+ */
63
+ export function tierToCode(tier) {
64
+ switch (tier) {
65
+ case 'ok':
66
+ return 'OK';
67
+ case 'soft-warn':
68
+ return 'CONTEXT_SOFT_WARN';
69
+ case 'near-limit':
70
+ return 'CONTEXT_NEAR_LIMIT';
71
+ case 'hard-reject':
72
+ return 'PROMPT_TOO_LARGE';
73
+ case 'emergency':
74
+ return 'PROMPT_EMERGENCY';
75
+ }
76
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Per spec §4.1 Step 3 — Tokenizer (non-mutating).
3
+ *
4
+ * Hard constraint H3: structured metadata > bare strings. Each collector
5
+ * artifact and each fetched doc gets a tokenized metadata record so
6
+ * peaks-rd/qa can do relative-anomaly detection later.
7
+ *
8
+ * Immutability H (common/coding-style): the output is frozen so callers
9
+ * cannot mutate it. Use spread to derive new outputs in future slices.
10
+ */
11
+ import type { CollectorOutput, DocRetrieverOutput, TokenizerOutput } from './types.js';
12
+ export declare function tokenize(collector: CollectorOutput, docRetriever: DocRetrieverOutput, now?: Date): TokenizerOutput;
@@ -0,0 +1,43 @@
1
+ function freshDecayScore(fetchedAt, now) {
2
+ const ageMs = now.getTime() - new Date(fetchedAt).getTime();
3
+ const ageDays = ageMs / (1000 * 60 * 60 * 24);
4
+ // Linear decay: 1.0 at day 0, 0.5 at day 30, 0.0 at day 60+
5
+ if (ageDays >= 60)
6
+ return 0;
7
+ return Math.max(0, 1 - ageDays / 60);
8
+ }
9
+ export function tokenize(collector, docRetriever, now = new Date()) {
10
+ const metadata = [];
11
+ for (const doc of docRetriever.fetchedDocs) {
12
+ metadata.push({
13
+ id: `doc:${doc.dep}@${doc.version}`,
14
+ kind: 'doc',
15
+ version: doc.version,
16
+ blastRadius: doc.sections.map((s) => s.title),
17
+ conflictScore: 0, // v1: no cross-source conflict detection yet
18
+ timeDecayScore: freshDecayScore(doc.fetchedAt, now),
19
+ tags: ['fetched', doc.source, doc.stale ? 'stale' : 'fresh'],
20
+ });
21
+ }
22
+ for (const mem of collector.memoryEntries) {
23
+ metadata.push({
24
+ id: `memory:${mem.path}`,
25
+ kind: 'memory',
26
+ blastRadius: [mem.title],
27
+ conflictScore: 0,
28
+ timeDecayScore: mem.relevanceScore,
29
+ tags: ['memory'],
30
+ });
31
+ }
32
+ for (const file of collector.files) {
33
+ metadata.push({
34
+ id: `code:${file.path}`,
35
+ kind: 'code',
36
+ blastRadius: [file.path],
37
+ conflictScore: 0,
38
+ timeDecayScore: 1,
39
+ tags: [file.kind],
40
+ });
41
+ }
42
+ return Object.freeze({ metadata: Object.freeze(metadata) });
43
+ }
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Per spec §4.1 — the single source of truth for context.json shape.
3
+ * The Zod schema in context-schema.ts must mirror this interface exactly;
4
+ * the schema is the runtime validator, the interface is the compile-time contract.
5
+ *
6
+ * Hard constraint H8: Audit trail must be hashable. `sha256` is the field
7
+ * that lets peaks-state-lock chain signatures between stages.
8
+ */
9
+ export type ContextVersion = '1.0';
10
+ export type Audience = 'peaks-rd' | 'peaks-qa' | 'peaks-mut' | 'all';
11
+ export type DepsMode = 'locked' | 'latest';
12
+ export type FileKind = 'source' | 'test' | 'config' | 'doc';
13
+ export interface CollectedFile {
14
+ readonly path: string;
15
+ readonly kind: FileKind;
16
+ readonly lines: number;
17
+ readonly hash: string;
18
+ }
19
+ export interface GitStatus {
20
+ readonly branch: string;
21
+ readonly lastCommit: string;
22
+ readonly dirty: boolean;
23
+ }
24
+ export interface MemoryEntry {
25
+ readonly path: string;
26
+ readonly title: string;
27
+ readonly relevanceScore: number;
28
+ readonly excerptHash: string;
29
+ }
30
+ export interface DepInfo {
31
+ readonly version: string;
32
+ readonly source: 'package.json' | 'pnpm-lock.yaml' | 'yarn.lock';
33
+ readonly resolved: string;
34
+ }
35
+ export interface DocSection {
36
+ readonly title: string;
37
+ readonly tokenEstimate: number;
38
+ readonly excerpt: string;
39
+ }
40
+ export interface FetchedDoc {
41
+ readonly dep: string;
42
+ readonly version: string;
43
+ readonly source: 'local-cache' | 'remote-fetch';
44
+ readonly url?: string;
45
+ readonly fetchedAt: string;
46
+ readonly contentHash: string;
47
+ readonly sections: ReadonlyArray<DocSection>;
48
+ readonly stale: boolean;
49
+ }
50
+ export interface SkippedDoc {
51
+ readonly dep: string;
52
+ readonly reason: 'unconfigured' | 'network_error' | 'version_unknown';
53
+ }
54
+ export type MetaKind = 'doc' | 'code' | 'memory' | 'git';
55
+ export interface TokenizedItem {
56
+ readonly id: string;
57
+ readonly kind: MetaKind;
58
+ readonly version?: string;
59
+ readonly blastRadius: ReadonlyArray<string>;
60
+ readonly conflictScore: number;
61
+ readonly timeDecayScore: number;
62
+ readonly tags: ReadonlyArray<string>;
63
+ }
64
+ export interface CollectorOutput {
65
+ readonly files: ReadonlyArray<CollectedFile>;
66
+ readonly gitStatus: GitStatus;
67
+ readonly memoryEntries: ReadonlyArray<MemoryEntry>;
68
+ readonly deps: Readonly<Record<string, DepInfo>>;
69
+ }
70
+ export interface DocRetrieverOutput {
71
+ readonly fetchedDocs: ReadonlyArray<FetchedDoc>;
72
+ readonly skipped: ReadonlyArray<SkippedDoc>;
73
+ }
74
+ export interface TokenizerOutput {
75
+ readonly metadata: ReadonlyArray<TokenizedItem>;
76
+ }
77
+ export interface RendererOutput {
78
+ readonly audience: Audience;
79
+ readonly renderedAt: string;
80
+ readonly sizeBytes: number;
81
+ readonly truncated: boolean;
82
+ readonly truncatedReason?: 'doc_budget_exceeded' | 'section_count_exceeded';
83
+ }
84
+ export interface ContextJson {
85
+ readonly version: ContextVersion;
86
+ readonly goal: string;
87
+ readonly generatedAt: string;
88
+ readonly sha256: string;
89
+ readonly collector: CollectorOutput;
90
+ readonly docRetriever: DocRetrieverOutput;
91
+ readonly tokenizer: TokenizerOutput;
92
+ readonly renderer: RendererOutput;
93
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Per spec §4.1 — the single source of truth for context.json shape.
3
+ * The Zod schema in context-schema.ts must mirror this interface exactly;
4
+ * the schema is the runtime validator, the interface is the compile-time contract.
5
+ *
6
+ * Hard constraint H8: Audit trail must be hashable. `sha256` is the field
7
+ * that lets peaks-state-lock chain signatures between stages.
8
+ */
9
+ export {};
@@ -0,0 +1,91 @@
1
+ import { type RequestArtifactRole, type RequestArtifactSummary } from '../artifacts/request-artifact-service.js';
2
+ import type { OpenSpecChangeSummary } from '../openspec/openspec-types.js';
3
+ import type { CapabilityItem } from '../recommendations/recommendation-types.js';
4
+ import { type SkillPresence } from '../skills/skill-presence-service.js';
5
+ export type ProjectDashboardRequests = {
6
+ count: number;
7
+ byRole: Record<RequestArtifactRole, RequestArtifactSummary[]>;
8
+ byState: Record<string, number>;
9
+ };
10
+ export type ProjectDashboardOpenSpec = {
11
+ exists: boolean;
12
+ count: number;
13
+ changes: OpenSpecChangeSummary[];
14
+ };
15
+ export type ProjectDashboardUnderstand = {
16
+ exists: boolean;
17
+ graphExists: boolean;
18
+ graphPath: string;
19
+ parseError?: string;
20
+ };
21
+ export type ProjectDashboardDoctor = {
22
+ ok: boolean;
23
+ passed: number;
24
+ failed: number;
25
+ okCount?: number;
26
+ failCount?: number;
27
+ lastRunAt?: string;
28
+ checkIds?: string[];
29
+ };
30
+ export type DashboardOkPolicy = 'workspace-only' | 'strict';
31
+ /**
32
+ * Resolves the user-facing `ok` field. `workspace-only` (default) returns true
33
+ * when the runbook / workspace layout is healthy, even if 1-2 non-blocking
34
+ * doctor checks fail. `strict` returns false when the doctor aggregate fails.
35
+ * The CLI default is `workspace-only`; `peaks project dashboard --strict`
36
+ * restores the legacy aggregate semantics.
37
+ */
38
+ export declare function resolveDashboardOk(args: {
39
+ okPolicy: DashboardOkPolicy;
40
+ doctor: ProjectDashboardDoctor;
41
+ runbookHealth: ProjectDashboardRunbookHealth;
42
+ }): {
43
+ ok: boolean;
44
+ okPolicy: DashboardOkPolicy;
45
+ };
46
+ export type ProjectDashboardRunbookHealth = {
47
+ ok: boolean;
48
+ required: number;
49
+ healthy: number;
50
+ missingRunbook: string[];
51
+ applyNoteFailed: string[];
52
+ };
53
+ export type ProjectDashboardCapabilities = {
54
+ count: number;
55
+ sample: Array<Pick<CapabilityItem, 'capabilityId' | 'name' | 'itemType' | 'category'>>;
56
+ };
57
+ export type ProjectDashboardSkillPresence = {
58
+ active: boolean;
59
+ fresh: boolean;
60
+ skill?: string;
61
+ mode?: string;
62
+ gate?: string;
63
+ setAt?: string;
64
+ };
65
+ export type ProjectDashboard = {
66
+ generatedAt: string;
67
+ projectRoot: string;
68
+ ok: boolean;
69
+ okPolicy: DashboardOkPolicy;
70
+ requests: ProjectDashboardRequests;
71
+ openspec: ProjectDashboardOpenSpec;
72
+ understand: ProjectDashboardUnderstand;
73
+ doctor: ProjectDashboardDoctor;
74
+ runbookHealth: ProjectDashboardRunbookHealth;
75
+ capabilities: ProjectDashboardCapabilities;
76
+ skillPresence: ProjectDashboardSkillPresence;
77
+ };
78
+ export type LoadProjectDashboardOptions = {
79
+ projectRoot: string;
80
+ sampleCapabilities?: number;
81
+ clock?: () => string;
82
+ doctorReport?: {
83
+ ok: boolean;
84
+ passed: number;
85
+ failed: number;
86
+ };
87
+ runbookHealth?: ProjectDashboardRunbookHealth;
88
+ skillPresence?: SkillPresence | null;
89
+ okPolicy?: DashboardOkPolicy;
90
+ };
91
+ export declare function loadProjectDashboard(options: LoadProjectDashboardOptions): Promise<ProjectDashboard>;
@@ -0,0 +1,147 @@
1
+ import { listRequestArtifacts } from '../artifacts/request-artifact-service.js';
2
+ import { scanOpenSpec } from '../openspec/openspec-scan-service.js';
3
+ import { scanUnderstandAnything } from '../understand/understand-scan-service.js';
4
+ import { seedCapabilityItems } from '../recommendations/capability-seed-items.js';
5
+ import { requiredSkillNames } from '../../shared/paths.js';
6
+ import { getSkillPresence } from '../skills/skill-presence-service.js';
7
+ const SKILL_PRESENCE_FRESHNESS_THRESHOLD_MS = 24 * 60 * 60 * 1000;
8
+ /**
9
+ * Resolves the user-facing `ok` field. `workspace-only` (default) returns true
10
+ * when the runbook / workspace layout is healthy, even if 1-2 non-blocking
11
+ * doctor checks fail. `strict` returns false when the doctor aggregate fails.
12
+ * The CLI default is `workspace-only`; `peaks project dashboard --strict`
13
+ * restores the legacy aggregate semantics.
14
+ */
15
+ export function resolveDashboardOk(args) {
16
+ if (args.okPolicy === 'strict') {
17
+ return { ok: args.doctor.ok && args.runbookHealth.ok, okPolicy: 'strict' };
18
+ }
19
+ return { ok: args.runbookHealth.ok, okPolicy: 'workspace-only' };
20
+ }
21
+ function defaultClock() {
22
+ return new Date().toISOString();
23
+ }
24
+ function groupRequestsByRole(items) {
25
+ const byRole = { prd: [], ui: [], rd: [], qa: [], sc: [] };
26
+ for (const item of items) {
27
+ byRole[item.role].push(item);
28
+ }
29
+ return byRole;
30
+ }
31
+ function countRequestsByState(items) {
32
+ const counts = {};
33
+ for (const item of items) {
34
+ counts[item.state] = (counts[item.state] ?? 0) + 1;
35
+ }
36
+ return counts;
37
+ }
38
+ async function loadDoctorAndRunbookHealth(doctorOverride, runbookOverride) {
39
+ if (doctorOverride !== undefined && runbookOverride !== undefined) {
40
+ return { doctor: doctorOverride, runbookHealth: runbookOverride };
41
+ }
42
+ if (doctorOverride !== undefined) {
43
+ return {
44
+ doctor: doctorOverride,
45
+ runbookHealth: { ok: true, required: 0, healthy: 0, missingRunbook: [], applyNoteFailed: [] }
46
+ };
47
+ }
48
+ const { runDoctor } = await import('../doctor/doctor-service.js');
49
+ const report = await runDoctor();
50
+ return {
51
+ doctor: { ok: report.summary.ok, passed: report.summary.passed, failed: report.summary.failed },
52
+ runbookHealth: runbookOverride ?? summarizeRunbookHealth(report.checks)
53
+ };
54
+ }
55
+ function summarizeRunbookHealth(checks) {
56
+ const missingRunbook = [];
57
+ const applyNoteFailed = [];
58
+ for (const check of checks) {
59
+ if (!check.ok && check.id.startsWith('skill-runbook:')) {
60
+ missingRunbook.push(check.id.slice('skill-runbook:'.length));
61
+ }
62
+ if (!check.ok && check.id.startsWith('skill-apply-note:')) {
63
+ applyNoteFailed.push(check.id.slice('skill-apply-note:'.length));
64
+ }
65
+ }
66
+ const required = requiredSkillNames.length;
67
+ const healthy = Math.max(0, required - missingRunbook.length - applyNoteFailed.length);
68
+ return {
69
+ ok: missingRunbook.length === 0 && applyNoteFailed.length === 0,
70
+ required,
71
+ healthy,
72
+ missingRunbook,
73
+ applyNoteFailed
74
+ };
75
+ }
76
+ function buildCapabilitiesSummary(sampleSize) {
77
+ const items = seedCapabilityItems;
78
+ return {
79
+ count: items.length,
80
+ sample: items.slice(0, sampleSize).map((item) => ({
81
+ capabilityId: item.capabilityId,
82
+ name: item.name,
83
+ itemType: item.itemType,
84
+ category: item.category
85
+ }))
86
+ };
87
+ }
88
+ function buildSkillPresenceSummary(presence, projectRoot) {
89
+ // When the caller doesn't supply presence, resolve it from the dashboard's
90
+ // project root rather than the process cwd.
91
+ const resolved = presence === undefined ? getSkillPresence(projectRoot) : presence;
92
+ if (resolved === null) {
93
+ return { active: false, fresh: true };
94
+ }
95
+ const setAtMs = Date.parse(resolved.setAt);
96
+ const fresh = !Number.isNaN(setAtMs) && Date.now() - setAtMs <= SKILL_PRESENCE_FRESHNESS_THRESHOLD_MS;
97
+ return {
98
+ active: true,
99
+ fresh,
100
+ skill: resolved.skill,
101
+ ...(resolved.mode !== undefined ? { mode: resolved.mode } : {}),
102
+ ...(resolved.gate !== undefined ? { gate: resolved.gate } : {}),
103
+ setAt: resolved.setAt
104
+ };
105
+ }
106
+ export async function loadProjectDashboard(options) {
107
+ const clock = options.clock ?? defaultClock;
108
+ const sampleSize = options.sampleCapabilities ?? 8;
109
+ const okPolicy = options.okPolicy ?? 'workspace-only';
110
+ const [items, openspecReport, understandReport, doctorAndRunbook] = await Promise.all([
111
+ listRequestArtifacts({ projectRoot: options.projectRoot }),
112
+ scanOpenSpec({ openspecRoot: `${options.projectRoot}/openspec` }),
113
+ scanUnderstandAnything({ projectRoot: options.projectRoot }),
114
+ loadDoctorAndRunbookHealth(options.doctorReport, options.runbookHealth)
115
+ ]);
116
+ const okVerdict = resolveDashboardOk({
117
+ okPolicy,
118
+ doctor: doctorAndRunbook.doctor,
119
+ runbookHealth: doctorAndRunbook.runbookHealth
120
+ });
121
+ return {
122
+ generatedAt: clock(),
123
+ projectRoot: options.projectRoot,
124
+ ok: okVerdict.ok,
125
+ okPolicy: okVerdict.okPolicy,
126
+ requests: {
127
+ count: items.length,
128
+ byRole: groupRequestsByRole(items),
129
+ byState: countRequestsByState(items)
130
+ },
131
+ openspec: {
132
+ exists: openspecReport.exists,
133
+ count: openspecReport.changes.length,
134
+ changes: openspecReport.changes
135
+ },
136
+ understand: {
137
+ exists: understandReport.exists,
138
+ graphExists: understandReport.graph.exists,
139
+ graphPath: understandReport.graph.path,
140
+ ...(understandReport.graph.parseError !== undefined ? { parseError: understandReport.graph.parseError } : {})
141
+ },
142
+ doctor: doctorAndRunbook.doctor,
143
+ runbookHealth: doctorAndRunbook.runbookHealth,
144
+ capabilities: buildCapabilitiesSummary(sampleSize),
145
+ skillPresence: buildSkillPresenceSummary(options.skillPresence, options.projectRoot)
146
+ };
147
+ }
@@ -0,0 +1,27 @@
1
+ export declare const BATCH_LIMIT = 6;
2
+ export declare const BATCH_OVER_LIMIT_CODE = "BATCH_OVER_LIMIT";
3
+ export type BatchCounterWarning = {
4
+ readonly code: typeof BATCH_OVER_LIMIT_CODE;
5
+ readonly batchId: string;
6
+ readonly dispatched: number;
7
+ readonly limit: number;
8
+ readonly message: string;
9
+ };
10
+ /** Build the per-batch counter file path. */
11
+ export declare function batchCounterPath(projectRoot: string, sid: string, batchId: string): string;
12
+ /** A single batch counter record. */
13
+ export interface BatchCounterRecord {
14
+ readonly batchId: string;
15
+ readonly sessionId: string;
16
+ readonly createdAt: string;
17
+ readonly count: number;
18
+ }
19
+ /** Read the current counter; returns 0 if no file yet. */
20
+ export declare function readBatchCount(projectRoot: string, sid: string, batchId: string): number;
21
+ /** Increment the counter and return the new value (with any warning). */
22
+ export declare function noteDispatched(projectRoot: string, sid: string, batchId: string, now?: () => Date): {
23
+ count: number;
24
+ warning: BatchCounterWarning | null;
25
+ };
26
+ /** Reset a batch counter (called by the reducer when starting a new batch). */
27
+ export declare function resetBatch(projectRoot: string, sid: string, batchId: string): void;
@@ -0,0 +1,102 @@
1
+ /**
2
+ * G5.1 / RL-1 — batch size counter.
3
+ *
4
+ * Empirical upper bound for one Dispatcher × one batch: 6 sub-agents.
5
+ * Above 6, the LLM / human is encouraged to split into multiple
6
+ * batches with an explicit reducer step in between. peaks-solo's
7
+ * swarm phase dispatches 3; peaks-rd's 4-way fan-out dispatches 4;
8
+ * peaks-qa's 3-way fan-out dispatches 3. The 6 limit leaves headroom
9
+ * for "qa-business-api" / "qa-business-frontend" / "qa-business-regression"
10
+ * subdivisions (3-way + 3-way = 6) without crossing the line.
11
+ *
12
+ * The counter is in-memory per process. The Dispatcher is expected
13
+ * to call `noteDispatched` once per `peaks sub-agent dispatch` and
14
+ * reset between batches. The CLI also persists a small per-sid
15
+ * counter file so that sub-agent spawns invoked across multiple
16
+ * `peaks sub-agent dispatch` processes within the same batch can be
17
+ * tallied (the batch id ties them together).
18
+ *
19
+ * `BATCH_OVER_LIMIT` is a warning, not a hard fail. The user has been
20
+ * explicit: "RL-1 is empirical; if you have a real reason to go to 7,
21
+ * that's your call". A warning is the right surface — let the LLM /
22
+ * human read the reason and decide.
23
+ */
24
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
25
+ import { dirname, resolve } from 'node:path';
26
+ import { withFileLockSync } from '../filesystem/file-lock.js';
27
+ export const BATCH_LIMIT = 6;
28
+ export const BATCH_OVER_LIMIT_CODE = 'BATCH_OVER_LIMIT';
29
+ /** Build the per-batch counter file path. */
30
+ export function batchCounterPath(projectRoot, sid, batchId) {
31
+ return resolve(projectRoot, '.peaks', '_sub_agents', sid, `batch-${batchId}.counter.json`);
32
+ }
33
+ /** Read the current counter; returns 0 if no file yet. */
34
+ export function readBatchCount(projectRoot, sid, batchId) {
35
+ const path = batchCounterPath(projectRoot, sid, batchId);
36
+ if (!existsSync(path))
37
+ return 0;
38
+ try {
39
+ const parsed = JSON.parse(readFileSync(path, 'utf8'));
40
+ return typeof parsed.count === 'number' && parsed.count >= 0 ? parsed.count : 0;
41
+ }
42
+ catch {
43
+ return 0;
44
+ }
45
+ }
46
+ /** Increment the counter and return the new value (with any warning). */
47
+ export function noteDispatched(projectRoot, sid, batchId, now = () => new Date()) {
48
+ const path = batchCounterPath(projectRoot, sid, batchId);
49
+ // Slice 2026-06-23-audit-4th #A1: wrap the read-modify-write in a
50
+ // file lock. Two concurrent `peaks sub-agent dispatch` invocations
51
+ // for the same (sid, batchId) would otherwise race — both call
52
+ // readBatchCount first, both see the same N, both write N+1, and
53
+ // the second write clobbers the first (lost update). The BATCH_OVER_LIMIT
54
+ // warning fires for the wrong threshold when this happens. The lock
55
+ // serializes the writes; contention is rare (only when a single
56
+ // batch is dispatched in parallel from the same LLM) so the spin-wait
57
+ // cost is bounded by MAX_LOCK_RETRIES * LOCK_RETRY_MAX_MS.
58
+ return withFileLockSync(path, () => {
59
+ const previous = readBatchCount(projectRoot, sid, batchId);
60
+ const next = {
61
+ batchId,
62
+ sessionId: sid,
63
+ createdAt: now().toISOString(),
64
+ count: previous + 1
65
+ };
66
+ // mkdirSync is conditional via the lock helper (it ensures the
67
+ // parent dir exists), but the counter file may live in a session
68
+ // sub-dir that the lock helper's recursive mkdir handles. Belt +
69
+ // suspenders: keep the explicit mkdir here so the path resolves
70
+ // even if withFileLockSync's mkdir is bypassed in the future.
71
+ mkdirSync(dirname(path), { recursive: true });
72
+ writeFileSync(path, JSON.stringify(next, null, 2) + '\n', 'utf8');
73
+ if (next.count > BATCH_LIMIT) {
74
+ return {
75
+ count: next.count,
76
+ warning: {
77
+ code: BATCH_OVER_LIMIT_CODE,
78
+ batchId,
79
+ dispatched: next.count,
80
+ limit: BATCH_LIMIT,
81
+ message: `per RL-1, batch size 6 is empirical upper bound; you have ` +
82
+ `${next.count}. If you need more, split into multiple batches ` +
83
+ `with an explicit reducer step between them.`
84
+ }
85
+ };
86
+ }
87
+ return { count: next.count, warning: null };
88
+ });
89
+ }
90
+ /** Reset a batch counter (called by the reducer when starting a new batch). */
91
+ export function resetBatch(projectRoot, sid, batchId) {
92
+ const path = batchCounterPath(projectRoot, sid, batchId);
93
+ if (existsSync(path)) {
94
+ try {
95
+ const { unlinkSync } = require('node:fs');
96
+ unlinkSync(path);
97
+ }
98
+ catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
99
+ /* best-effort; counter file is informational */
100
+ }
101
+ }
102
+ }
@@ -0,0 +1,63 @@
1
+ /** Public surface of a finished slice. */
2
+ export interface SliceContract {
3
+ readonly sliceId: string;
4
+ readonly sessionId: string;
5
+ readonly completedAt: string;
6
+ /** Public exports (function / class / const / var names). */
7
+ readonly exports: readonly string[];
8
+ /** Public type names. */
9
+ readonly types: readonly string[];
10
+ /** Public function / method signatures, e.g. `"validateDag(dag: SliceDag): void"`. */
11
+ readonly publicSignatures: readonly string[];
12
+ /** Optional: which downstream slice IDs the contract is broadcast-ready for. */
13
+ readonly broadcastTo?: readonly string[];
14
+ /** SHA-256 hash of the contract payload (key-sorted, JSON-canonicalized). */
15
+ readonly contractHash: string;
16
+ }
17
+ export type WriteContractInput = Omit<SliceContract, 'completedAt' | 'contractHash'> & {
18
+ readonly completedAt?: string;
19
+ };
20
+ /** Thrown when contract IO fails. */
21
+ export declare class ContractStoreError extends Error {
22
+ readonly code: "CONTRACT_STORE_ERROR";
23
+ constructor(message: string);
24
+ }
25
+ /** Slice 2026-06-23-audit-4th #A3: default TTL for slice contracts. */
26
+ export declare const CONTRACT_TTL_DAYS = 30;
27
+ /**
28
+ * Slice 2026-06-23-audit-4th #A3: is this contract an orphan
29
+ * (older than CONTRACT_TTL_DAYS or already GC'd)? Mirrors
30
+ * `isOrphanChannel` and `isOrphanDispatchRecord` so a future
31
+ * `peaks sub-agent cleanup` umbrella can run all three sweeps
32
+ * (shared channel + dispatch record + contract) in one pass.
33
+ */
34
+ export declare function isOrphanContract(opts: {
35
+ projectRoot: string;
36
+ sessionId: string;
37
+ sliceId: string;
38
+ now?: Date;
39
+ }): boolean;
40
+ /** Resolve the contracts directory for a session. */
41
+ export declare function contractsDir(projectRoot: string, sessionId: string): string;
42
+ /** Resolve a single contract file path. */
43
+ export declare function contractPath(projectRoot: string, sessionId: string, sliceId: string): string;
44
+ /** Hash a contract payload. */
45
+ export declare function hashContract(c: WriteContractInput | SliceContract): string;
46
+ /**
47
+ * Persist a slice's public contract. Returns the absolute path on disk.
48
+ * Idempotent: re-writing the same contract overwrites in place.
49
+ */
50
+ export declare function writeContract(projectRoot: string, sessionId: string, input: WriteContractInput): {
51
+ path: string;
52
+ contract: SliceContract;
53
+ };
54
+ /** Read a contract from disk. Returns null if missing. */
55
+ export declare function readContract(projectRoot: string, sessionId: string, sliceId: string): SliceContract | null;
56
+ /** List all contracts for a session. */
57
+ export declare function listContracts(projectRoot: string, sessionId: string): readonly SliceContract[];
58
+ /**
59
+ * Format a prompt-injection block from a set of contracts. The block is a
60
+ * stable, human-readable summary suitable for splicing into a downstream
61
+ * slice's dispatch prompt.
62
+ */
63
+ export declare function formatContractInjection(contracts: readonly SliceContract[]): string;