peaks-loop 3.1.2 → 4.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) hide show
  1. package/.claude-plugin/marketplace.json +62 -12
  2. package/CHANGELOG.md +148 -116
  3. package/README-en.md +58 -240
  4. package/README.md +49 -325
  5. package/agents/karpathy-reviewer.md +3 -3
  6. package/dist/src/cli/cli-helpers.d.ts +18 -0
  7. package/dist/src/cli/cli-helpers.js +8 -0
  8. package/dist/src/cli/commands/adapter-commands.d.ts +30 -0
  9. package/dist/src/cli/commands/adapter-commands.js +35 -0
  10. package/dist/src/cli/commands/{solo-commands.d.ts → code-commands.d.ts} +25 -25
  11. package/dist/src/cli/commands/{solo-commands.js → code-commands.js} +82 -82
  12. package/dist/src/cli/commands/context-commands.d.ts +1 -1
  13. package/dist/src/cli/commands/context-commands.js +1 -1
  14. package/dist/src/cli/commands/contract-commands.d.ts +1 -1
  15. package/dist/src/cli/commands/contract-commands.js +1 -1
  16. package/dist/src/cli/commands/core/session-command.js +12 -0
  17. package/dist/src/cli/commands/core/skill-command.js +4 -4
  18. package/dist/src/cli/commands/dispatch-commands.js +2 -2
  19. package/dist/src/cli/commands/dispatch-from-dag.js +1 -1
  20. package/dist/src/cli/commands/hook-handle.js +7 -7
  21. package/dist/src/cli/commands/job-commands.js +7 -7
  22. package/dist/src/cli/commands/observability-commands.js +1 -1
  23. package/dist/src/cli/commands/perf-audit-commands.js +2 -2
  24. package/dist/src/cli/commands/security-audit-commands.js +2 -2
  25. package/dist/src/cli/commands/sediment-commands.d.ts +80 -0
  26. package/dist/src/cli/commands/sediment-commands.js +640 -0
  27. package/dist/src/cli/commands/session-auto-compact-hook-command.js +2 -2
  28. package/dist/src/cli/commands/session-migrate-skill-name.d.ts +17 -0
  29. package/dist/src/cli/commands/session-migrate-skill-name.js +41 -0
  30. package/dist/src/cli/commands/skill-visibility.d.ts +8 -0
  31. package/dist/src/cli/commands/skill-visibility.js +63 -0
  32. package/dist/src/cli/commands/slice-commands.js +2 -2
  33. package/dist/src/cli/commands/sub-agent-commands.d.ts +1 -1
  34. package/dist/src/cli/commands/sub-agent-commands.js +1 -1
  35. package/dist/src/cli/commands/sub-agent-shared.d.ts +1 -1
  36. package/dist/src/cli/commands/understand-commands.js +1 -1
  37. package/dist/src/cli/commands/upgrade-commands.d.ts +1 -1
  38. package/dist/src/cli/commands/upgrade-commands.js +3 -3
  39. package/dist/src/cli/commands/user-touchpoint-commands.d.ts +4 -4
  40. package/dist/src/cli/commands/user-touchpoint-commands.js +15 -15
  41. package/dist/src/cli/commands/verdict-aggregate-command.d.ts +1 -1
  42. package/dist/src/cli/commands/verdict-aggregate-command.js +2 -2
  43. package/dist/src/cli/commands/workflow-commands.js +23 -23
  44. package/dist/src/cli/commands/workspace/init-command.d.ts +3 -3
  45. package/dist/src/cli/commands/workspace/init-command.js +7 -7
  46. package/dist/src/cli/program.js +24 -7
  47. package/dist/src/services/adapter/adapter.d.ts +27 -0
  48. package/dist/src/services/adapter/adapter.js +5 -0
  49. package/dist/src/services/adapter/auto-adapter.d.ts +11 -0
  50. package/dist/src/services/adapter/auto-adapter.js +15 -0
  51. package/dist/src/services/adapter/claude-adapter.d.ts +14 -0
  52. package/dist/src/services/adapter/claude-adapter.js +40 -0
  53. package/dist/src/services/adapter/codex-adapter.d.ts +14 -0
  54. package/dist/src/services/adapter/codex-adapter.js +14 -0
  55. package/dist/src/services/adapter/copilot-adapter.d.ts +14 -0
  56. package/dist/src/services/adapter/copilot-adapter.js +14 -0
  57. package/dist/src/services/artifacts/repair-cycle-service.js +1 -1
  58. package/dist/src/services/audit/enforcers/active-skill-resolver.d.ts +1 -1
  59. package/dist/src/services/audit/enforcers/active-skill-resolver.js +1 -1
  60. package/dist/src/services/audit/enforcers/{solo-code-ban.d.ts → code-ban.d.ts} +6 -6
  61. package/dist/src/services/audit/enforcers/{solo-code-ban.js → code-ban.js} +6 -6
  62. package/dist/src/services/audit/red-line-catalog.d.ts +2 -2
  63. package/dist/src/services/audit/red-line-catalog.js +6 -6
  64. package/dist/src/services/audit/scanners/skills-tree-scanner.js +22 -0
  65. package/dist/src/services/audit/types.d.ts +2 -2
  66. package/dist/src/services/{solo → code}/auto-compact-orchestrator.d.ts +2 -2
  67. package/dist/src/services/{solo → code}/auto-compact-orchestrator.js +5 -5
  68. package/dist/src/services/{solo → code}/dag-orchestrator.d.ts +4 -4
  69. package/dist/src/services/{solo → code}/dag-orchestrator.js +5 -5
  70. package/dist/src/services/{solo → code}/emit-handoff.d.ts +1 -1
  71. package/dist/src/services/{solo → code}/emit-handoff.js +1 -1
  72. package/dist/src/services/{solo → code}/job-shape-decision.d.ts +1 -1
  73. package/dist/src/services/{solo → code}/job-shape-decision.js +5 -5
  74. package/dist/src/services/{solo → code}/mode-gate.d.ts +11 -11
  75. package/dist/src/services/{solo → code}/mode-gate.js +5 -5
  76. package/dist/src/services/{solo → code}/post-compact-detector.d.ts +3 -3
  77. package/dist/src/services/{solo → code}/post-compact-detector.js +6 -6
  78. package/dist/src/services/{solo → code}/status-line-renderer.d.ts +4 -4
  79. package/dist/src/services/{solo → code}/step-08-gate.d.ts +4 -4
  80. package/dist/src/services/{solo → code}/step-08-gate.js +4 -4
  81. package/dist/src/services/{solo → code}/user-touchpoint-classifier.d.ts +1 -1
  82. package/dist/src/services/{solo → code}/user-touchpoint-classifier.js +1 -1
  83. package/dist/src/services/context/auto-compact-dispatcher.d.ts +3 -3
  84. package/dist/src/services/context/auto-compact-dispatcher.js +2 -2
  85. package/dist/src/services/context/auto-compact-types.d.ts +1 -1
  86. package/dist/src/services/dispatch/batch-counter.js +1 -1
  87. package/dist/src/services/dispatch/leak-detector.js +1 -1
  88. package/dist/src/services/dispatch/slice-dag.d.ts +2 -2
  89. package/dist/src/services/dispatch/test-tool-detection.d.ts +1 -1
  90. package/dist/src/services/dispatch/test-tool-detection.js +1 -1
  91. package/dist/src/services/doctor/doctor-service.js +2 -2
  92. package/dist/src/services/feedback/feedback-promotion-service.js +2 -2
  93. package/dist/src/services/job/job-progress-store.d.ts +1 -1
  94. package/dist/src/services/job/job-progress-store.js +1 -1
  95. package/dist/src/services/job/job-resource-snapshot.js +29 -1
  96. package/dist/src/services/memory/project-memory-service.js +1 -1
  97. package/dist/src/services/migrate-skill-name/migrate.d.ts +17 -0
  98. package/dist/src/services/migrate-skill-name/migrate.js +152 -0
  99. package/dist/src/services/migrate-skill-name/schema.d.ts +42 -0
  100. package/dist/src/services/migrate-skill-name/schema.js +25 -0
  101. package/dist/src/services/observability/aggregation.d.ts +1 -1
  102. package/dist/src/services/observability/aggregation.js +1 -1
  103. package/dist/src/services/perf/perf-baseline-service.d.ts +1 -1
  104. package/dist/src/services/perf/perf-baseline-service.js +1 -1
  105. package/dist/src/services/prd/handoff-types.d.ts +1 -1
  106. package/dist/src/services/prd/handoff-types.js +1 -1
  107. package/dist/src/services/preferences/preferences-service.d.ts +1 -1
  108. package/dist/src/services/preferences/preferences-types.d.ts +1 -1
  109. package/dist/src/services/progress/progress-service.d.ts +1 -1
  110. package/dist/src/services/progress/progress-service.js +1 -1
  111. package/dist/src/services/rd/standards-diagnostic.d.ts +1 -1
  112. package/dist/src/services/rd/standards-diagnostic.js +3 -3
  113. package/dist/src/services/recommendations/capability-seed-items.js +1 -1
  114. package/dist/src/services/recommendations/capability-seed-mappings.js +1 -1
  115. package/dist/src/services/recommendations/recommendation-service.js +1 -1
  116. package/dist/src/services/refactor/refactor-service.d.ts +1 -1
  117. package/dist/src/services/sc/sc-service.js +1 -1
  118. package/dist/src/services/sediment/dispose-confirm.d.ts +9 -0
  119. package/dist/src/services/sediment/dispose-confirm.js +5 -0
  120. package/dist/src/services/sediment/json-schema.d.ts +247 -0
  121. package/dist/src/services/sediment/json-schema.js +26 -0
  122. package/dist/src/services/sediment/manifest-lint.d.ts +13 -0
  123. package/dist/src/services/sediment/manifest-lint.js +11 -0
  124. package/dist/src/services/sediment/pool-paths.d.ts +22 -0
  125. package/dist/src/services/sediment/pool-paths.js +25 -0
  126. package/dist/src/services/sediment/pool-read.d.ts +20 -0
  127. package/dist/src/services/sediment/pool-read.js +73 -0
  128. package/dist/src/services/sediment/pool-rebuild-index.d.ts +15 -0
  129. package/dist/src/services/sediment/pool-rebuild-index.js +28 -0
  130. package/dist/src/services/sediment/pool-write.d.ts +14 -0
  131. package/dist/src/services/sediment/pool-write.js +25 -0
  132. package/dist/src/services/sediment/promotion-gate.d.ts +12 -0
  133. package/dist/src/services/sediment/promotion-gate.js +20 -0
  134. package/dist/src/services/sediment/types.d.ts +52 -0
  135. package/dist/src/services/sediment/types.js +1 -0
  136. package/dist/src/services/session/binding-store.d.ts +1 -1
  137. package/dist/src/services/session/binding-store.js +1 -1
  138. package/dist/src/services/session/caller-id-types.d.ts +1 -1
  139. package/dist/src/services/session/session-manager.d.ts +1 -1
  140. package/dist/src/services/session/session-manager.js +1 -1
  141. package/dist/src/services/signal/cancel-handler.js +3 -3
  142. package/dist/src/services/skill/resume-detector.js +2 -2
  143. package/dist/src/services/skill/skill-scheduler.d.ts +1 -1
  144. package/dist/src/services/skill/skill-scheduler.js +1 -1
  145. package/dist/src/services/skillhub/release-diff.d.ts +18 -0
  146. package/dist/src/services/skillhub/release-diff.js +38 -0
  147. package/dist/src/services/skillhub/release-export.d.ts +8 -0
  148. package/dist/src/services/skillhub/release-export.js +31 -0
  149. package/dist/src/services/skillhub/release-gc-blobs.d.ts +13 -0
  150. package/dist/src/services/skillhub/release-gc-blobs.js +32 -0
  151. package/dist/src/services/skillhub/release-import.d.ts +7 -0
  152. package/dist/src/services/skillhub/release-import.js +59 -0
  153. package/dist/src/services/skillhub/release-retain.d.ts +23 -0
  154. package/dist/src/services/skillhub/release-retain.js +89 -0
  155. package/dist/src/services/skillhub/sqlite-store.d.ts +22 -0
  156. package/dist/src/services/skillhub/sqlite-store.js +47 -0
  157. package/dist/src/services/skillhub/tar-runtime.d.ts +21 -0
  158. package/dist/src/services/skillhub/tar-runtime.js +91 -0
  159. package/dist/src/services/skillhub/types.d.ts +105 -0
  160. package/dist/src/services/skillhub/types.js +1 -0
  161. package/dist/src/services/skills/skill-conformance-service.js +8 -5
  162. package/dist/src/services/skills/skill-presence-service.d.ts +5 -5
  163. package/dist/src/services/skills/skill-presence-service.js +2 -2
  164. package/dist/src/services/skills/skill-registry.js +27 -0
  165. package/dist/src/services/skills/skill-runbook-service.js +2 -2
  166. package/dist/src/services/slice/slice-check-service.js +1 -1
  167. package/dist/src/services/slice/slice-check-types.d.ts +1 -1
  168. package/dist/src/services/slice/slice-check-types.js +1 -1
  169. package/dist/src/services/slice/slice-decompose-types.d.ts +1 -1
  170. package/dist/src/services/slice/slice-decompose-types.js +1 -1
  171. package/dist/src/services/standards/missing-standards-detector.d.ts +1 -1
  172. package/dist/src/services/standards/missing-standards-detector.js +1 -1
  173. package/dist/src/services/standards/project-standards-service.d.ts +1 -1
  174. package/dist/src/services/standards/project-standards-service.js +4 -4
  175. package/dist/src/services/understand/understand-types.d.ts +1 -1
  176. package/dist/src/services/upgrade/1x-detector-service.js +2 -2
  177. package/dist/src/services/upgrade/upgrade-service.d.ts +34 -0
  178. package/dist/src/services/upgrade/upgrade-service.js +52 -30
  179. package/dist/src/services/verdict/verdict-aggregator.d.ts +1 -1
  180. package/dist/src/services/workflow/pipeline-verify-service.d.ts +1 -1
  181. package/dist/src/services/workflow/pipeline-verify-service.js +3 -3
  182. package/dist/src/services/workflow/workflow-autonomous-service.d.ts +3 -3
  183. package/dist/src/services/workflow/workflow-autonomous-service.js +2 -2
  184. package/dist/src/services/workflow/workflow-router-service.d.ts +7 -7
  185. package/dist/src/services/workflow/workflow-router-service.js +33 -33
  186. package/dist/src/services/workspace/claude-settings-template.d.ts +2 -2
  187. package/dist/src/services/workspace/claude-settings-template.js +7 -7
  188. package/dist/src/services/workspace/workspace-claude-settings-materializer.d.ts +1 -1
  189. package/dist/src/services/workspace/workspace-claude-settings-materializer.js +1 -1
  190. package/dist/src/services/workspace/workspace-service.d.ts +4 -4
  191. package/dist/src/services/workspace/workspace-service.js +2 -2
  192. package/dist/src/shared/paths.d.ts +1 -1
  193. package/dist/src/shared/paths.js +1 -1
  194. package/dist/src/shared/version.d.ts +1 -1
  195. package/dist/src/shared/version.js +1 -1
  196. package/dist/src/skills/peaks-maker/index.d.ts +5 -0
  197. package/dist/src/skills/peaks-maker/index.js +32 -0
  198. package/output-styles/peaks-skill-swarm.md +3 -3
  199. package/package.json +8 -3
  200. package/scripts/install-skills.mjs +29 -4
  201. package/skills/{peaks-prd → bee/peaks-prd}/SKILL.md +8 -2
  202. package/skills/{peaks-prd → bee/peaks-prd}/references/workflow.md +1 -1
  203. package/skills/{peaks-qa → bee/peaks-qa}/SKILL.md +10 -4
  204. package/skills/{peaks-qa → bee/peaks-qa}/references/artifact-per-request.md +3 -3
  205. package/skills/{peaks-qa → bee/peaks-qa}/references/browser-validation-contracts.md +2 -2
  206. package/skills/{peaks-qa → bee/peaks-qa}/references/external-capability-guidance.md +1 -1
  207. package/skills/{peaks-qa → bee/peaks-qa}/references/qa-fanout-contract.md +3 -3
  208. package/skills/{peaks-qa → bee/peaks-qa}/references/qa-sub-agent-dispatch.md +7 -7
  209. package/skills/{peaks-rd → bee/peaks-rd}/SKILL.md +13 -6
  210. package/skills/{peaks-rd → bee/peaks-rd}/references/browser-self-test-contracts.md +1 -1
  211. package/skills/{peaks-rd → bee/peaks-rd}/references/mock-data-placement.md +1 -1
  212. package/skills/{peaks-rd → bee/peaks-rd}/references/parallel-review-fanout.md +1 -1
  213. package/skills/{peaks-rd → bee/peaks-rd}/references/rd-fanout-contracts.md +1 -1
  214. package/skills/{peaks-rd → bee/peaks-rd}/references/rd-runbook.md +2 -2
  215. package/skills/{peaks-rd → bee/peaks-rd}/references/rd-sub-agent-dispatch.md +13 -13
  216. package/skills/{peaks-rd → bee/peaks-rd}/references/rd-transition-gates.md +2 -2
  217. package/skills/{peaks-rd → bee/peaks-rd}/references/skill-presence-and-title.md +1 -1
  218. package/skills/{peaks-reviewer → bee/peaks-reviewer}/SKILL.md +2 -2
  219. package/skills/{peaks-sc → bee/peaks-sc}/SKILL.md +8 -2
  220. package/skills/{peaks-txt → bee/peaks-txt}/SKILL.md +11 -5
  221. package/skills/{peaks-ui → bee/peaks-ui}/SKILL.md +19 -13
  222. package/skills/peaks-audit/SKILL.md +1 -1
  223. package/skills/{peaks-solo → peaks-code}/SKILL.md +29 -29
  224. package/skills/{peaks-solo → peaks-code}/references/a2a-artifact-mapping.md +2 -2
  225. package/skills/{peaks-solo → peaks-code}/references/anchoring-and-session-info.md +6 -6
  226. package/skills/{peaks-solo → peaks-code}/references/artifact-contracts.md +3 -3
  227. package/skills/{peaks-solo → peaks-code}/references/boundaries.md +3 -3
  228. package/skills/{peaks-solo → peaks-code}/references/browser-workflow.md +1 -1
  229. package/skills/{peaks-solo → peaks-code}/references/codegraph-orchestration.md +1 -1
  230. package/skills/peaks-code/references/command-migration.md +3 -0
  231. package/skills/{peaks-solo → peaks-code}/references/completion-handoff.md +2 -2
  232. package/skills/{peaks-solo → peaks-code}/references/context-governance.md +2 -2
  233. package/skills/{peaks-solo → peaks-code}/references/dag-orchestrator.md +7 -7
  234. package/skills/{peaks-solo → peaks-code}/references/external-references.md +2 -2
  235. package/skills/{peaks-solo → peaks-code}/references/fanout-mandatory.md +3 -3
  236. package/skills/{peaks-solo → peaks-code}/references/fast-mode.md +2 -2
  237. package/skills/{peaks-solo → peaks-code}/references/frontend-only-mode.md +10 -10
  238. package/skills/{peaks-solo → peaks-code}/references/job-loop.md +1 -1
  239. package/skills/{peaks-solo → peaks-code}/references/local-artifact-workspace.md +3 -3
  240. package/skills/{peaks-solo → peaks-code}/references/micro-cycle.md +23 -23
  241. package/skills/{peaks-solo → peaks-code}/references/mode-selection-with-stale-presence.md +16 -16
  242. package/skills/{peaks-solo → peaks-code}/references/mode-selection.md +4 -4
  243. package/skills/{peaks-solo → peaks-code}/references/openspec-workflow.md +17 -17
  244. package/skills/{peaks-solo → peaks-code}/references/periodic-checkpoint.md +4 -4
  245. package/skills/{peaks-solo → peaks-code}/references/project-scan-checklist.md +1 -1
  246. package/skills/{peaks-solo → peaks-code}/references/quality-gate-cheatsheet.md +1 -1
  247. package/skills/{peaks-solo → peaks-code}/references/refactor-mode.md +2 -2
  248. package/skills/{peaks-solo → peaks-code}/references/resume-detection.md +1 -1
  249. package/skills/{peaks-solo → peaks-code}/references/runbook.md +20 -20
  250. package/skills/{peaks-solo → peaks-code}/references/skill-presence-and-title.md +3 -3
  251. package/skills/{peaks-solo → peaks-code}/references/standards-preflight.md +1 -1
  252. package/skills/{peaks-solo → peaks-code}/references/step-0-55-1x-detection.md +6 -6
  253. package/skills/{peaks-solo → peaks-code}/references/step-0-8-gate.md +11 -11
  254. package/skills/{peaks-solo → peaks-code}/references/sub-agent-dispatch.md +17 -17
  255. package/skills/{peaks-solo → peaks-code}/references/swarm-dispatch-contract.md +22 -22
  256. package/skills/{peaks-solo → peaks-code}/references/workflow-gates-and-types.md +4 -4
  257. package/skills/{peaks-solo → peaks-code}/references/workflow.md +5 -5
  258. package/skills/peaks-doctor/SKILL.md +1 -1
  259. package/skills/peaks-doctor/references/doctor-check-catalog.md +1 -1
  260. package/skills/peaks-final-review/SKILL.md +3 -3
  261. package/skills/peaks-final-review/references/4-dimensions.md +1 -1
  262. package/skills/peaks-ide/SKILL.md +1 -1
  263. package/skills/{peaks-solo-resume → peaks-resume}/SKILL.md +15 -15
  264. package/skills/peaks-sop/SKILL.md +1 -1
  265. package/skills/{peaks-solo-status → peaks-status}/SKILL.md +14 -14
  266. package/skills/{peaks-solo-test → peaks-test}/SKILL.md +12 -12
  267. package/skills/peaks-solo/references/command-migration.md +0 -3
  268. /package/dist/src/services/{solo → code}/batch-heartbeat-poller.d.ts +0 -0
  269. /package/dist/src/services/{solo → code}/batch-heartbeat-poller.js +0 -0
  270. /package/dist/src/services/{solo → code}/status-line-renderer.js +0 -0
  271. /package/skills/{peaks-perf-audit → bee/peaks-perf-audit}/SKILL.md +0 -0
  272. /package/skills/{peaks-perf-audit → bee/peaks-perf-audit}/references/audit-protocol.md +0 -0
  273. /package/skills/{peaks-prd → bee/peaks-prd}/references/artifact-contracts.md +0 -0
  274. /package/skills/{peaks-prd → bee/peaks-prd}/references/artifact-per-request.md +0 -0
  275. /package/skills/{peaks-prd → bee/peaks-prd}/references/command-migration.md +0 -0
  276. /package/skills/{peaks-prd → bee/peaks-prd}/references/prd-for-multi-pass.md +0 -0
  277. /package/skills/{peaks-qa → bee/peaks-qa}/references/artifact-contracts.md +0 -0
  278. /package/skills/{peaks-qa → bee/peaks-qa}/references/codegraph-regression-focus.md +0 -0
  279. /package/skills/{peaks-qa → bee/peaks-qa}/references/command-migration.md +0 -0
  280. /package/skills/{peaks-qa → bee/peaks-qa}/references/openspec-validation-gate.md +0 -0
  281. /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-compact-handoff.md +0 -0
  282. /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-context-governance.md +0 -0
  283. /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-gstack-integration.md +0 -0
  284. /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-local-artifacts.md +0 -0
  285. /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-matt-pocock-integration.md +0 -0
  286. /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-perf-test-plan.md +0 -0
  287. /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-refactor-role.md +0 -0
  288. /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-runbook.md +0 -0
  289. /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-security-test-plan.md +0 -0
  290. /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-skill-presence.md +0 -0
  291. /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-standards-preflight.md +0 -0
  292. /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-transition-gates.md +0 -0
  293. /package/skills/{peaks-qa → bee/peaks-qa}/references/reading-handoff-frontmatter.md +0 -0
  294. /package/skills/{peaks-qa → bee/peaks-qa}/references/regression-gates.md +0 -0
  295. /package/skills/{peaks-qa → bee/peaks-qa}/references/requirement-boundary-recheck.md +0 -0
  296. /package/skills/{peaks-qa → bee/peaks-qa}/references/test-case-generation.md +0 -0
  297. /package/skills/{peaks-qa → bee/peaks-qa}/references/test-report-output.md +0 -0
  298. /package/skills/{peaks-rd → bee/peaks-rd}/references/artifact-and-standards-output.md +0 -0
  299. /package/skills/{peaks-rd → bee/peaks-rd}/references/artifact-contracts.md +0 -0
  300. /package/skills/{peaks-rd → bee/peaks-rd}/references/artifact-per-request.md +0 -0
  301. /package/skills/{peaks-rd → bee/peaks-rd}/references/browser-action-wrapper.md +0 -0
  302. /package/skills/{peaks-rd → bee/peaks-rd}/references/code-reviewer-4dim-hint.md +0 -0
  303. /package/skills/{peaks-rd → bee/peaks-rd}/references/codegraph-project-analysis.md +0 -0
  304. /package/skills/{peaks-rd → bee/peaks-rd}/references/command-migration.md +0 -0
  305. /package/skills/{peaks-rd → bee/peaks-rd}/references/compact-handoff.md +0 -0
  306. /package/skills/{peaks-rd → bee/peaks-rd}/references/external-references.md +0 -0
  307. /package/skills/{peaks-rd → bee/peaks-rd}/references/frontend-project-generation.md +0 -0
  308. /package/skills/{peaks-rd → bee/peaks-rd}/references/karpathy-reviewer-prompt.md +0 -0
  309. /package/skills/{peaks-rd → bee/peaks-rd}/references/library-version-awareness.md +0 -0
  310. /package/skills/{peaks-rd → bee/peaks-rd}/references/mandatory-perf-baseline.md +0 -0
  311. /package/skills/{peaks-rd → bee/peaks-rd}/references/matt-pocock-integration.md +0 -0
  312. /package/skills/{peaks-rd → bee/peaks-rd}/references/ocr-integration.md +0 -0
  313. /package/skills/{peaks-rd → bee/peaks-rd}/references/openspec-cli.md +0 -0
  314. /package/skills/{peaks-rd → bee/peaks-rd}/references/rd-context-governance.md +0 -0
  315. /package/skills/{peaks-rd → bee/peaks-rd}/references/rd-gstack-integration.md +0 -0
  316. /package/skills/{peaks-rd → bee/peaks-rd}/references/rd-standards-preflight.md +0 -0
  317. /package/skills/{peaks-rd → bee/peaks-rd}/references/reading-v2-slice-results.md +0 -0
  318. /package/skills/{peaks-rd → bee/peaks-rd}/references/refactor-workflow.md +0 -0
  319. /package/skills/{peaks-rd → bee/peaks-rd}/references/v2-12-fanout-collapse.md +0 -0
  320. /package/skills/{peaks-rd → bee/peaks-rd}/references/writing-handoff-frontmatter.md +0 -0
  321. /package/skills/{peaks-reviewer → bee/peaks-reviewer}/references/reviewer-prompt.md +0 -0
  322. /package/skills/{peaks-reviewer → bee/peaks-reviewer}/references/reviewer-schema.md +0 -0
  323. /package/skills/{peaks-sc → bee/peaks-sc}/references/artifact-contracts.md +0 -0
  324. /package/skills/{peaks-sc → bee/peaks-sc}/references/artifact-retention.md +0 -0
  325. /package/skills/{peaks-sc → bee/peaks-sc}/references/command-migration.md +0 -0
  326. /package/skills/{peaks-sc → bee/peaks-sc}/references/openspec-commit-boundaries.md +0 -0
  327. /package/skills/{peaks-security-audit → bee/peaks-security-audit}/SKILL.md +0 -0
  328. /package/skills/{peaks-security-audit → bee/peaks-security-audit}/references/audit-protocol.md +0 -0
  329. /package/skills/{peaks-txt → bee/peaks-txt}/references/artifact-contracts.md +0 -0
  330. /package/skills/{peaks-txt → bee/peaks-txt}/references/command-migration.md +0 -0
  331. /package/skills/{peaks-txt → bee/peaks-txt}/references/context-capsule.md +0 -0
  332. /package/skills/{peaks-ui → bee/peaks-ui}/references/artifact-contracts.md +0 -0
  333. /package/skills/{peaks-ui → bee/peaks-ui}/references/artifact-per-request.md +0 -0
  334. /package/skills/{peaks-ui → bee/peaks-ui}/references/command-migration.md +0 -0
  335. /package/skills/{peaks-ui → bee/peaks-ui}/references/workflow.md +0 -0
  336. /package/skills/{peaks-solo → peaks-code}/references/checkpoint-resume.md +0 -0
  337. /package/skills/{peaks-solo → peaks-code}/references/cross-date-session-check.md +0 -0
  338. /package/skills/{peaks-solo → peaks-code}/references/envelope-contract.md +0 -0
  339. /package/skills/{peaks-solo → peaks-code}/references/existing-system-extraction.md +0 -0
  340. /package/skills/{peaks-solo → peaks-code}/references/external-skill-invocation.md +0 -0
  341. /package/skills/{peaks-solo → peaks-code}/references/gstack-integration.md +0 -0
  342. /package/skills/{peaks-solo → peaks-code}/references/headroom-integration.md +0 -0
  343. /package/skills/{peaks-solo → peaks-code}/references/playwright-mcp-multi-terminal.md +0 -0
  344. /package/skills/{peaks-solo → peaks-code}/references/project-memory-loading.md +0 -0
@@ -0,0 +1,42 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Result shape for `peaks session migrate-skill-name`.
4
+ *
5
+ * Counters:
6
+ * - `scannedFiles` — every .json / .md under `.peaks/_runtime/**` (excluding
7
+ * skip dirs below).
8
+ * - `modifiedFiles` — files whose contents would change (dry-run reports
9
+ * the predicted count; --apply reports the actually-written count).
10
+ * - `keyValueReplacements` — `"skill": "<old>"` → `"skill": "<new>"`.
11
+ * - `stringReplacements` — `/<old>` → `/<new>` slash-trigger mentions.
12
+ *
13
+ * Errors are surfaced per-file with `errors: [ "<absPath>: <message>", … ]`;
14
+ * the tool never silently skips a broken JSON file (Karpathy §4 honesty:
15
+ * silence on bad data is the worst kind of fake-green).
16
+ */
17
+ export declare const MigrateResultSchema: z.ZodObject<{
18
+ ok: z.ZodBoolean;
19
+ scannedFiles: z.ZodNumber;
20
+ modifiedFiles: z.ZodNumber;
21
+ keyValueReplacements: z.ZodNumber;
22
+ stringReplacements: z.ZodNumber;
23
+ skipped: z.ZodArray<z.ZodString, "many">;
24
+ errors: z.ZodArray<z.ZodString, "many">;
25
+ }, "strip", z.ZodTypeAny, {
26
+ ok: boolean;
27
+ skipped: string[];
28
+ scannedFiles: number;
29
+ modifiedFiles: number;
30
+ keyValueReplacements: number;
31
+ stringReplacements: number;
32
+ errors: string[];
33
+ }, {
34
+ ok: boolean;
35
+ skipped: string[];
36
+ scannedFiles: number;
37
+ modifiedFiles: number;
38
+ keyValueReplacements: number;
39
+ stringReplacements: number;
40
+ errors: string[];
41
+ }>;
42
+ export type MigrateResult = z.infer<typeof MigrateResultSchema>;
@@ -0,0 +1,25 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Result shape for `peaks session migrate-skill-name`.
4
+ *
5
+ * Counters:
6
+ * - `scannedFiles` — every .json / .md under `.peaks/_runtime/**` (excluding
7
+ * skip dirs below).
8
+ * - `modifiedFiles` — files whose contents would change (dry-run reports
9
+ * the predicted count; --apply reports the actually-written count).
10
+ * - `keyValueReplacements` — `"skill": "<old>"` → `"skill": "<new>"`.
11
+ * - `stringReplacements` — `/<old>` → `/<new>` slash-trigger mentions.
12
+ *
13
+ * Errors are surfaced per-file with `errors: [ "<absPath>: <message>", … ]`;
14
+ * the tool never silently skips a broken JSON file (Karpathy §4 honesty:
15
+ * silence on bad data is the worst kind of fake-green).
16
+ */
17
+ export const MigrateResultSchema = z.object({
18
+ ok: z.boolean(),
19
+ scannedFiles: z.number().int().nonnegative(),
20
+ modifiedFiles: z.number().int().nonnegative(),
21
+ keyValueReplacements: z.number().int().nonnegative(),
22
+ stringReplacements: z.number().int().nonnegative(),
23
+ skipped: z.array(z.string()),
24
+ errors: z.array(z.string()),
25
+ });
@@ -51,7 +51,7 @@ export type RepairCycleReport = {
51
51
  cycleCount: number;
52
52
  }>;
53
53
  };
54
- /** RD/QA repair-loop cap (matches the peaks-solo repair-loop contract). */
54
+ /** RD/QA repair-loop cap (matches the peaks-code repair-loop contract). */
55
55
  export declare const REPAIR_CYCLE_CAP = 3;
56
56
  export declare function aggregateStatus(events: readonly ObservabilityEvent[]): StatusAggregate;
57
57
  export declare function aggregateSlices(events: readonly ObservabilityEvent[]): SliceRollup[];
@@ -28,7 +28,7 @@ const TERMINAL_HAPPY_STATES = new Set([
28
28
  'boundary-recorded'
29
29
  ]);
30
30
  const TERMINAL_FAIL_STATES = new Set(['blocked']);
31
- /** RD/QA repair-loop cap (matches the peaks-solo repair-loop contract). */
31
+ /** RD/QA repair-loop cap (matches the peaks-code repair-loop contract). */
32
32
  export const REPAIR_CYCLE_CAP = 3;
33
33
  // v2.12.0 fan-out collapse: see OBSERVABILITY_SUBAGENT_ROLES for the
34
34
  // rationale on why `security-reviewer` was dropped and `peaks-security-audit`
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Performance baseline scaffolding for the RD stage.
3
3
  *
4
- * peaks-solo's RD stage runs before the QA stage. The user-facing pain is
4
+ * peaks-code's RD stage runs before the QA stage. The user-facing pain is
5
5
  * that performance tests (lighthouse / k6 / project-local benches / etc.)
6
6
  * have historically only been run at QA Gate A4 — too late in the loop,
7
7
  * because a slow regression discovered at QA triggers a return-to-rd
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Performance baseline scaffolding for the RD stage.
3
3
  *
4
- * peaks-solo's RD stage runs before the QA stage. The user-facing pain is
4
+ * peaks-code's RD stage runs before the QA stage. The user-facing pain is
5
5
  * that performance tests (lighthouse / k6 / project-local benches / etc.)
6
6
  * have historically only been run at QA Gate A4 — too late in the loop,
7
7
  * because a slow regression discovered at QA triggers a return-to-rd
@@ -4,7 +4,7 @@
4
4
  * The handoff is the **immutable** single source of truth that all
5
5
  * downstream consumers (peaks-rd main loop + 4 audit sub-agents +
6
6
  * peaks-qa) read. It is written by peaks-prd AFTER user confirmation
7
- * (per `skills/peaks-prd/SKILL.md` Step 5.5) and replaces the legacy
7
+ * (per `skills/bee/peaks-prd/SKILL.md` Step 5.5) and replaces the legacy
8
8
  * peaks-rd tech-doc handoff (v2.10.0 and earlier).
9
9
  *
10
10
  * Frontmatter invariant: `handoffHash` MUST equal the lowercase hex
@@ -4,7 +4,7 @@
4
4
  * The handoff is the **immutable** single source of truth that all
5
5
  * downstream consumers (peaks-rd main loop + 4 audit sub-agents +
6
6
  * peaks-qa) read. It is written by peaks-prd AFTER user confirmation
7
- * (per `skills/peaks-prd/SKILL.md` Step 5.5) and replaces the legacy
7
+ * (per `skills/bee/peaks-prd/SKILL.md` Step 5.5) and replaces the legacy
8
8
  * peaks-rd tech-doc handoff (v2.10.0 and earlier).
9
9
  *
10
10
  * Frontmatter invariant: `handoffHash` MUST equal the lowercase hex
@@ -22,7 +22,7 @@ export declare function writeAtomic(filePath: string, prefs: ProjectPreferences)
22
22
  * verbatim. v1's `agentShieldPrompt` and `loopAutonomousEnabled` were
23
23
  * already present, so they carry through unchanged. The `fanout` field
24
24
  * is new in v2 — it defaults to `{ defaultMode: 'fan-out' }` so the
25
- * pre-v2 behavior (peak-solo SKILL instructed fan-out when ≥ 2 leaves)
25
+ * pre-v2 behavior (peak-code SKILL instructed fan-out when ≥ 2 leaves)
26
26
  * is preserved.
27
27
  */
28
28
  export type MigrateResult = {
@@ -68,7 +68,7 @@ export interface ProjectPreferences {
68
68
  */
69
69
  readonly schema_version: typeof PREFERENCES_SCHEMA_VERSION;
70
70
  /**
71
- * Slice 2026-06-28-solo-mode-bypass-fix: economyMode is a
71
+ * Slice 2026-06-28-code-mode-bypass-fix: economyMode is a
72
72
  * **MODEL-SELECTION** knob only — it chooses between the cheap
73
73
  * configured provider (`getConfiguredExecutionModelId`) and the
74
74
  * strongest planner/reviewer model (`STRONGEST_MODEL_ID`). It does
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Sub-agent progress file for the RD/QA sub-agents in `peaks-solo`'s
2
+ * Sub-agent progress file for the RD/QA sub-agents in `peaks-code`'s
3
3
  * Swarm phase. A sub-agent (or the LLM via the `peaks progress step`
4
4
  * CLI) writes a stable JSON file at
5
5
  * `.peaks/_sub_agents/<sid>/subagent-progress.json`. The dispatch +
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Sub-agent progress file for the RD/QA sub-agents in `peaks-solo`'s
2
+ * Sub-agent progress file for the RD/QA sub-agents in `peaks-code`'s
3
3
  * Swarm phase. A sub-agent (or the LLM via the `peaks progress step`
4
4
  * CLI) writes a stable JSON file at
5
5
  * `.peaks/_sub_agents/<sid>/subagent-progress.json`. The dispatch +
@@ -60,7 +60,7 @@ export declare function buildRdStandardsGateList(input: {
60
60
  readonly missing: boolean;
61
61
  }): ReadonlyArray<RdStandardGate>;
62
62
  /**
63
- * Single entry point for the RD / QA / Solo bootstrap. Returns the
63
+ * Single entry point for the RD / QA / Code bootstrap. Returns the
64
64
  * exit code + error code + diagnostic + gate list. The CLI wrapper is
65
65
  * responsible for `process.stderr.write(diagnostic ?? '')` and
66
66
  * `process.exit(result.exitCode)`.
@@ -2,7 +2,7 @@
2
2
  * Slice 2026-06-16-peaks-rd-no-gates — missing-project-standards diagnostic
3
3
  * + JSON gate list shape for the RD bootstrap path.
4
4
  *
5
- * Background: when `peaks-rd` (or `peaks-qa` / `peaks-solo`) starts in a
5
+ * Background: when `peaks-rd` (or `peaks-qa` / `peaks-code`) starts in a
6
6
  * project whose `.claude/rules/{common,typescript}/` is missing or empty,
7
7
  * the existing code-review / security / performance gates were silently
8
8
  * dropped. This module makes the missing-standards condition observable:
@@ -20,7 +20,7 @@
20
20
  * G4 The remediation string is the exact copy-pasteable CLI invocation.
21
21
  *
22
22
  * This module is a pure-function helper. The `peaks rd` / `peaks qa` /
23
- * `peaks solo` runtime hooks call `resolveRdStartupStandardsCheck` at
23
+ * `peaks code` runtime hooks call `resolveRdStartupStandardsCheck` at
24
24
  * bootstrap and decide whether to write `process.stderr` + JSON envelope
25
25
  * + exit. The bootstrap is intentionally side-effect-free here so unit
26
26
  * tests can run it without spawning child processes.
@@ -112,7 +112,7 @@ export function buildRdStandardsGateList(input) {
112
112
  ];
113
113
  }
114
114
  /**
115
- * Single entry point for the RD / QA / Solo bootstrap. Returns the
115
+ * Single entry point for the RD / QA / Code bootstrap. Returns the
116
116
  * exit code + error code + diagnostic + gate list. The CLI wrapper is
117
117
  * responsible for `process.stderr.write(diagnostic ?? '')` and
118
118
  * `process.exit(result.exitCode)`.
@@ -86,7 +86,7 @@ export const seedCapabilityItems = [
86
86
  capability('codegraph.project-indexing', 'codegraph', 'Codegraph Project Indexing', 'cli', 'project-analysis', ['engineer'], 'medium', 'peaks-rd-local-scan', 'Use Peaks RD local project scanning when codegraph is unavailable.', 'Codegraph Project Indexing', 'Codegraph 项目索引', 'Indexes a local project through the peaks codegraph execution boundary for role-skill analysis.', '通过 peaks codegraph 执行边界索引本地项目,辅助角色 skill 分析。'),
87
87
  capability('codegraph.semantic-query', 'codegraph', 'Codegraph Semantic Query', 'cli', 'project-analysis', ['engineer'], 'medium', 'peaks-rd-local-scan', 'Use local Grep/Glob and RD scanning when codegraph semantic query is unavailable.', 'Codegraph Semantic Query', 'Codegraph 语义查询', 'Queries local symbols and project relationships for RD planning evidence.', '查询本地符号和项目关系,为 RD 规划提供证据。'),
88
88
  capability('codegraph.impact-analysis', 'codegraph', 'Codegraph Impact Analysis', 'cli', 'impact-analysis', ['engineer', 'qa'], 'medium', 'peaks-rd-qa-impact-review', 'Use RD changed-file analysis and QA regression planning when codegraph affected output is unavailable.', 'Codegraph Impact Analysis', 'Codegraph 影响面分析', 'Analyzes likely impact for changed files so RD and QA can focus planning and regression scope.', '分析变更文件的可能影响面,帮助 RD 与 QA 聚焦规划和回归范围。'),
89
- capability('codegraph.context-pack', 'codegraph', 'Codegraph Context Pack', 'cli', 'context-pack', ['engineer', 'qa', 'product'], 'medium', 'peaks-txt-context-capsule', 'Use Peaks TXT context capsules and role-skill handoffs when codegraph context output is unavailable.', 'Codegraph Context Pack', 'Codegraph 上下文包', 'Builds task-specific local context that Solo, RD, and TXT can use as supporting evidence.', '生成任务相关的本地上下文,作为 Solo、RD 与 TXT 的辅助证据。'),
89
+ capability('codegraph.context-pack', 'codegraph', 'Codegraph Context Pack', 'cli', 'context-pack', ['engineer', 'qa', 'product'], 'medium', 'peaks-txt-context-capsule', 'Use Peaks TXT context capsules and role-skill handoffs when codegraph context output is unavailable.', 'Codegraph Context Pack', 'Codegraph 上下文包', 'Builds task-specific local context that Code, RD, and TXT can use as supporting evidence.', '生成任务相关的本地上下文,作为 Code、RD 与 TXT 的辅助证据。'),
90
90
  capability('playwright-mcp.browser-validation', 'playwright-mcp', 'Playwright MCP Browser Validation', 'mcp', 'browser-validation', ['engineer', 'qa'], 'medium', 'manual-browser-test', 'Use local Playwright or manual browser verification.', 'Playwright Browser Validation', 'Playwright 浏览器验证', 'Validates UI flows through controlled browser automation.', '通过受控浏览器自动化验证 UI 流程。'),
91
91
  capability('chrome-devtools-mcp.browser-debug', 'chrome-devtools-mcp', 'Chrome DevTools Browser Debug', 'mcp', 'browser-debug', ['engineer', 'qa'], 'medium', 'manual-devtools-inspection', 'Use browser screenshots, console logs, and network traces supplied by the user.', 'Chrome DevTools Debug', 'Chrome DevTools 调试', 'Inspects runtime UI, console, network, and performance behavior.', '检查运行时 UI、控制台、网络和性能行为。'),
92
92
  capability('figma-context-mcp.design-context', 'figma-context-mcp', 'Figma Design Context', 'mcp', 'design-context', ['designer', 'engineer'], 'medium', 'manual-design-input', 'Ask the user for screenshots, tokens, or exported design notes.', 'Figma Design Context', 'Figma 设计上下文', 'Reads design context for UI implementation planning.', '读取设计上下文以辅助 UI 实现规划。'),
@@ -6,7 +6,7 @@ export const seedCapabilityLandingMappings = [
6
6
  mapping({ capabilityId: 'codegraph.impact-analysis', sourceId: 'codegraph', sourceGroup: 'access-repo', landingKind: 'skill', target: 'peaks-rd', skillName: 'peaks-rd', guidance: 'Dry-run reference only: peaks-rd may use peaks codegraph affected --project <path> <files...> --json to inspect likely impact before slice planning and red-line checks when execution is approved.' }),
7
7
  mapping({ capabilityId: 'codegraph.impact-analysis', sourceId: 'codegraph', sourceGroup: 'access-repo', landingKind: 'skill', target: 'peaks-qa', skillName: 'peaks-qa', guidance: 'Use affected output as regression-surface evidence only; QA validation and test evidence remain authoritative.' }),
8
8
  mapping({ capabilityId: 'codegraph.context-pack', sourceId: 'codegraph', sourceGroup: 'access-repo', landingKind: 'skill', target: 'peaks-rd', skillName: 'peaks-rd', guidance: 'Dry-run reference only: peaks-rd may use peaks codegraph context --project <path> <task> to gather local evidence for RD analysis when execution is approved, without replacing standards dry-runs.' }),
9
- mapping({ capabilityId: 'codegraph.context-pack', sourceId: 'codegraph', sourceGroup: 'access-repo', landingKind: 'skill', target: 'peaks-solo', skillName: 'peaks-solo', guidance: 'Solo may attach local context packs or affected summaries before role handoff so RD, QA, and TXT share the same project evidence.' }),
9
+ mapping({ capabilityId: 'codegraph.context-pack', sourceId: 'codegraph', sourceGroup: 'access-repo', landingKind: 'skill', target: 'peaks-code', skillName: 'peaks-code', guidance: 'Code may attach local context packs or affected summaries before role handoff so RD, QA, and TXT share the same project evidence.' }),
10
10
  mapping({ capabilityId: 'codegraph.context-pack', sourceId: 'codegraph', sourceGroup: 'access-repo', landingKind: 'skill', target: 'peaks-txt', skillName: 'peaks-txt', guidance: 'TXT may summarize recorded codegraph context packs into handoffs while treating them as supporting evidence only.' }),
11
11
  mapping({ capabilityId: 'playwright-mcp.browser-validation', sourceId: 'playwright-mcp', sourceGroup: 'access-repo', landingKind: 'skill', target: 'peaks-qa', skillName: 'peaks-qa', guidance: 'Use for browser and E2E validation after user-approved app targets are available.' }),
12
12
  mapping({ capabilityId: 'chrome-devtools-mcp.browser-debug', sourceId: 'chrome-devtools-mcp', sourceGroup: 'access-repo', landingKind: 'skill', target: 'peaks-ui', skillName: 'peaks-ui', guidance: 'Use for runtime UI, console, network, and performance inspection.' }),
@@ -75,7 +75,7 @@ export function createRecommendationPlan(options) {
75
75
  return {
76
76
  intent: options.workflow,
77
77
  workflow: options.workflow,
78
- profile: 'solo-guided-auto',
78
+ profile: 'code-guided-auto',
79
79
  audience: ['engineer'],
80
80
  options: [recommendedOption],
81
81
  requiredCapabilities,
@@ -1,4 +1,4 @@
1
- export type RefactorMode = 'solo' | 'rd';
1
+ export type RefactorMode = 'code' | 'rd';
2
2
  export type RefactorDryRun = {
3
3
  mode: RefactorMode;
4
4
  implementationAllowed: false;
@@ -473,7 +473,7 @@ export function validateArtifactRetention(sliceId) {
473
473
  };
474
474
  if (!workspace) {
475
475
  // No workspace: validate against the resolved session dir directly
476
- // (this is the common peaks-solo / peaks-rd invocation: the slice
476
+ // (this is the common peaks-code / peaks-rd invocation: the slice
477
477
  // lives under the project-root `.peaks/_runtime/<sessionId>/`, and the
478
478
  // workspace artifact path is irrelevant). When the resolution also
479
479
  // fails, fall back to the legacy "No workspace configured" failure
@@ -0,0 +1,9 @@
1
+ import type { BeeManifest } from "./types.js";
2
+ export type DisposePlan = {
3
+ decision: "destroy";
4
+ auto: true;
5
+ } | {
6
+ decision: null;
7
+ requiresUserPrompt: true;
8
+ };
9
+ export declare function planDispose(m: BeeManifest): DisposePlan;
@@ -0,0 +1,5 @@
1
+ export function planDispose(m) {
2
+ if (m.source === "system")
3
+ return { decision: "destroy", auto: true };
4
+ return { decision: null, requiresUserPrompt: true };
5
+ }
@@ -0,0 +1,247 @@
1
+ import { z } from "zod";
2
+ export declare const BeeManifestSchema: z.ZodEffects<z.ZodObject<{
3
+ schemaVersion: z.ZodLiteral<"peaks.bee/1">;
4
+ name: z.ZodString;
5
+ source: z.ZodEnum<["system", "user"]>;
6
+ promotion_status: z.ZodEnum<["candidate", "stable", "retired", "system-stable"]>;
7
+ description: z.ZodString;
8
+ segments: z.ZodArray<z.ZodObject<{
9
+ name: z.ZodString;
10
+ inputs: z.ZodArray<z.ZodObject<{
11
+ name: z.ZodString;
12
+ type: z.ZodEnum<["string", "number", "boolean", "json"]>;
13
+ required: z.ZodBoolean;
14
+ }, "strip", z.ZodTypeAny, {
15
+ name: string;
16
+ type: "string" | "number" | "boolean" | "json";
17
+ required: boolean;
18
+ }, {
19
+ name: string;
20
+ type: "string" | "number" | "boolean" | "json";
21
+ required: boolean;
22
+ }>, "many">;
23
+ outputs: z.ZodArray<z.ZodObject<{
24
+ name: z.ZodString;
25
+ type: z.ZodEnum<["string", "number", "boolean", "json"]>;
26
+ required: z.ZodBoolean;
27
+ }, "strip", z.ZodTypeAny, {
28
+ name: string;
29
+ type: "string" | "number" | "boolean" | "json";
30
+ required: boolean;
31
+ }, {
32
+ name: string;
33
+ type: "string" | "number" | "boolean" | "json";
34
+ required: boolean;
35
+ }>, "many">;
36
+ sideEffects: z.ZodArray<z.ZodString, "many">;
37
+ }, "strip", z.ZodTypeAny, {
38
+ name: string;
39
+ outputs: {
40
+ name: string;
41
+ type: "string" | "number" | "boolean" | "json";
42
+ required: boolean;
43
+ }[];
44
+ inputs: {
45
+ name: string;
46
+ type: "string" | "number" | "boolean" | "json";
47
+ required: boolean;
48
+ }[];
49
+ sideEffects: string[];
50
+ }, {
51
+ name: string;
52
+ outputs: {
53
+ name: string;
54
+ type: "string" | "number" | "boolean" | "json";
55
+ required: boolean;
56
+ }[];
57
+ inputs: {
58
+ name: string;
59
+ type: "string" | "number" | "boolean" | "json";
60
+ required: boolean;
61
+ }[];
62
+ sideEffects: string[];
63
+ }>, "many">;
64
+ entrypoint: z.ZodObject<{
65
+ preamble: z.ZodString;
66
+ refs: z.ZodArray<z.ZodObject<{
67
+ path: z.ZodString;
68
+ kind: z.ZodEnum<["file", "dir", "script"]>;
69
+ }, "strip", z.ZodTypeAny, {
70
+ path: string;
71
+ kind: "file" | "script" | "dir";
72
+ }, {
73
+ path: string;
74
+ kind: "file" | "script" | "dir";
75
+ }>, "many">;
76
+ }, "strip", z.ZodTypeAny, {
77
+ preamble: string;
78
+ refs: {
79
+ path: string;
80
+ kind: "file" | "script" | "dir";
81
+ }[];
82
+ }, {
83
+ preamble: string;
84
+ refs: {
85
+ path: string;
86
+ kind: "file" | "script" | "dir";
87
+ }[];
88
+ }>;
89
+ promotion: z.ZodObject<{
90
+ minCycles: z.ZodNumber;
91
+ requiresHumanApproval: z.ZodBoolean;
92
+ requiresSmokeTest: z.ZodBoolean;
93
+ retireOnMissesInRow: z.ZodOptional<z.ZodNumber>;
94
+ }, "strip", z.ZodTypeAny, {
95
+ minCycles: number;
96
+ requiresHumanApproval: boolean;
97
+ requiresSmokeTest: boolean;
98
+ retireOnMissesInRow?: number | undefined;
99
+ }, {
100
+ minCycles: number;
101
+ requiresHumanApproval: boolean;
102
+ requiresSmokeTest: boolean;
103
+ retireOnMissesInRow?: number | undefined;
104
+ }>;
105
+ createdBy: z.ZodEnum<["human", "llm"]>;
106
+ lastTouchedAt: z.ZodString;
107
+ }, "strip", z.ZodTypeAny, {
108
+ name: string;
109
+ source: "user" | "system";
110
+ description: string;
111
+ schemaVersion: "peaks.bee/1";
112
+ promotion: {
113
+ minCycles: number;
114
+ requiresHumanApproval: boolean;
115
+ requiresSmokeTest: boolean;
116
+ retireOnMissesInRow?: number | undefined;
117
+ };
118
+ segments: {
119
+ name: string;
120
+ outputs: {
121
+ name: string;
122
+ type: "string" | "number" | "boolean" | "json";
123
+ required: boolean;
124
+ }[];
125
+ inputs: {
126
+ name: string;
127
+ type: "string" | "number" | "boolean" | "json";
128
+ required: boolean;
129
+ }[];
130
+ sideEffects: string[];
131
+ }[];
132
+ promotion_status: "candidate" | "stable" | "retired" | "system-stable";
133
+ entrypoint: {
134
+ preamble: string;
135
+ refs: {
136
+ path: string;
137
+ kind: "file" | "script" | "dir";
138
+ }[];
139
+ };
140
+ createdBy: "llm" | "human";
141
+ lastTouchedAt: string;
142
+ }, {
143
+ name: string;
144
+ source: "user" | "system";
145
+ description: string;
146
+ schemaVersion: "peaks.bee/1";
147
+ promotion: {
148
+ minCycles: number;
149
+ requiresHumanApproval: boolean;
150
+ requiresSmokeTest: boolean;
151
+ retireOnMissesInRow?: number | undefined;
152
+ };
153
+ segments: {
154
+ name: string;
155
+ outputs: {
156
+ name: string;
157
+ type: "string" | "number" | "boolean" | "json";
158
+ required: boolean;
159
+ }[];
160
+ inputs: {
161
+ name: string;
162
+ type: "string" | "number" | "boolean" | "json";
163
+ required: boolean;
164
+ }[];
165
+ sideEffects: string[];
166
+ }[];
167
+ promotion_status: "candidate" | "stable" | "retired" | "system-stable";
168
+ entrypoint: {
169
+ preamble: string;
170
+ refs: {
171
+ path: string;
172
+ kind: "file" | "script" | "dir";
173
+ }[];
174
+ };
175
+ createdBy: "llm" | "human";
176
+ lastTouchedAt: string;
177
+ }>, {
178
+ name: string;
179
+ source: "user" | "system";
180
+ description: string;
181
+ schemaVersion: "peaks.bee/1";
182
+ promotion: {
183
+ minCycles: number;
184
+ requiresHumanApproval: boolean;
185
+ requiresSmokeTest: boolean;
186
+ retireOnMissesInRow?: number | undefined;
187
+ };
188
+ segments: {
189
+ name: string;
190
+ outputs: {
191
+ name: string;
192
+ type: "string" | "number" | "boolean" | "json";
193
+ required: boolean;
194
+ }[];
195
+ inputs: {
196
+ name: string;
197
+ type: "string" | "number" | "boolean" | "json";
198
+ required: boolean;
199
+ }[];
200
+ sideEffects: string[];
201
+ }[];
202
+ promotion_status: "candidate" | "stable" | "retired" | "system-stable";
203
+ entrypoint: {
204
+ preamble: string;
205
+ refs: {
206
+ path: string;
207
+ kind: "file" | "script" | "dir";
208
+ }[];
209
+ };
210
+ createdBy: "llm" | "human";
211
+ lastTouchedAt: string;
212
+ }, {
213
+ name: string;
214
+ source: "user" | "system";
215
+ description: string;
216
+ schemaVersion: "peaks.bee/1";
217
+ promotion: {
218
+ minCycles: number;
219
+ requiresHumanApproval: boolean;
220
+ requiresSmokeTest: boolean;
221
+ retireOnMissesInRow?: number | undefined;
222
+ };
223
+ segments: {
224
+ name: string;
225
+ outputs: {
226
+ name: string;
227
+ type: "string" | "number" | "boolean" | "json";
228
+ required: boolean;
229
+ }[];
230
+ inputs: {
231
+ name: string;
232
+ type: "string" | "number" | "boolean" | "json";
233
+ required: boolean;
234
+ }[];
235
+ sideEffects: string[];
236
+ }[];
237
+ promotion_status: "candidate" | "stable" | "retired" | "system-stable";
238
+ entrypoint: {
239
+ preamble: string;
240
+ refs: {
241
+ path: string;
242
+ kind: "file" | "script" | "dir";
243
+ }[];
244
+ };
245
+ createdBy: "llm" | "human";
246
+ lastTouchedAt: string;
247
+ }>;
@@ -0,0 +1,26 @@
1
+ import { z } from "zod";
2
+ export const BeeManifestSchema = z.object({
3
+ schemaVersion: z.literal("peaks.bee/1"),
4
+ name: z.string().regex(/^bee-[a-z0-9][a-z0-9-]*$|^peaks-[a-z0-9][a-z0-9-]*$/),
5
+ source: z.enum(["system", "user"]),
6
+ promotion_status: z.enum(["candidate", "stable", "retired", "system-stable"]),
7
+ description: z.string().min(1).max(200),
8
+ segments: z.array(z.object({
9
+ name: z.string(),
10
+ inputs: z.array(z.object({ name: z.string(), type: z.enum(["string", "number", "boolean", "json"]), required: z.boolean() })),
11
+ outputs: z.array(z.object({ name: z.string(), type: z.enum(["string", "number", "boolean", "json"]), required: z.boolean() })),
12
+ sideEffects: z.array(z.string()),
13
+ })),
14
+ entrypoint: z.object({
15
+ preamble: z.string(),
16
+ refs: z.array(z.object({ path: z.string(), kind: z.enum(["file", "dir", "script"]) })),
17
+ }),
18
+ promotion: z.object({
19
+ minCycles: z.number().int().nonnegative(),
20
+ requiresHumanApproval: z.boolean(),
21
+ requiresSmokeTest: z.boolean(),
22
+ retireOnMissesInRow: z.number().int().positive().optional(),
23
+ }),
24
+ createdBy: z.enum(["human", "llm"]),
25
+ lastTouchedAt: z.string().datetime(),
26
+ }).refine((m) => !(m.source === "system" && m.promotion_status !== "system-stable"), { message: "source=system must have promotion_status=system-stable" });
@@ -0,0 +1,13 @@
1
+ import type { BeeManifest } from "./types.js";
2
+ export type Finding = {
3
+ path: string;
4
+ message: string;
5
+ };
6
+ export type LintResult = {
7
+ ok: true;
8
+ } | {
9
+ ok: false;
10
+ findings: Finding[];
11
+ };
12
+ export declare function lintManifest(m: unknown): LintResult;
13
+ export declare function lintManifestStrict(m: unknown): BeeManifest;
@@ -0,0 +1,11 @@
1
+ import { BeeManifestSchema } from "./json-schema.js";
2
+ export function lintManifest(m) {
3
+ const r = BeeManifestSchema.safeParse(m);
4
+ if (r.success)
5
+ return { ok: true };
6
+ return { ok: false, findings: r.error.issues.map((i) => ({ path: i.path.join("."), message: i.message })) };
7
+ }
8
+ export function lintManifestStrict(m) {
9
+ const r = BeeManifestSchema.parse(m);
10
+ return r;
11
+ }
@@ -0,0 +1,22 @@
1
+ export declare class SYSTEM_PATH_FORBIDDEN extends Error {
2
+ constructor(p: string);
3
+ }
4
+ export interface Home {
5
+ home: string;
6
+ }
7
+ export declare const resolvePoolRoot: ({ home }: Home) => string;
8
+ export declare const resolveSystemDir: ({ home }: Home) => string;
9
+ export declare const resolveUserBeesDir: ({ home }: Home) => string;
10
+ export declare const resolveUserBeeDir: ({ home }: Home, name: string) => string;
11
+ export declare const resolveSegmentsDir: ({ home }: Home) => string;
12
+ export declare const resolveSegmentDir: ({ home }: Home, name: string) => string;
13
+ export declare const resolveStateDbPath: ({ home }: Home) => string;
14
+ export declare const resolveBlobsDir: ({ home }: Home) => string;
15
+ /**
16
+ * Normalize `..` segments via `path.resolve` before splitting, so a path like
17
+ * `/h/foo/../.system/evil` collapses to `/h/.system/evil` and its `.system`
18
+ * segment is correctly identified. Also defends against Windows-style
19
+ * traversal patterns such as `..\\.system\\evil`.
20
+ */
21
+ export declare function isSystemPath(p: string): boolean;
22
+ export declare function assertNotSystemPath(p: string): void;
@@ -0,0 +1,25 @@
1
+ import { join, resolve as pathResolve } from "node:path";
2
+ export class SYSTEM_PATH_FORBIDDEN extends Error {
3
+ constructor(p) { super(`SYSTEM_PATH_FORBIDDEN: refusing to write ${p}`); }
4
+ }
5
+ export const resolvePoolRoot = ({ home }) => join(home, ".peaks", "skills");
6
+ export const resolveSystemDir = ({ home }) => join(resolvePoolRoot({ home }), ".system");
7
+ export const resolveUserBeesDir = ({ home }) => join(resolvePoolRoot({ home }), "bees");
8
+ export const resolveUserBeeDir = ({ home }, name) => join(resolveUserBeesDir({ home }), name);
9
+ export const resolveSegmentsDir = ({ home }) => join(resolvePoolRoot({ home }), "segments");
10
+ export const resolveSegmentDir = ({ home }, name) => join(resolveSegmentsDir({ home }), name);
11
+ export const resolveStateDbPath = ({ home }) => join(resolvePoolRoot({ home }), "state.db");
12
+ export const resolveBlobsDir = ({ home }) => join(resolvePoolRoot({ home }), "blobs");
13
+ /**
14
+ * Normalize `..` segments via `path.resolve` before splitting, so a path like
15
+ * `/h/foo/../.system/evil` collapses to `/h/.system/evil` and its `.system`
16
+ * segment is correctly identified. Also defends against Windows-style
17
+ * traversal patterns such as `..\\.system\\evil`.
18
+ */
19
+ export function isSystemPath(p) {
20
+ return pathResolve(p).split(/[\\/]/).some((seg) => seg === ".system");
21
+ }
22
+ export function assertNotSystemPath(p) {
23
+ if (isSystemPath(p))
24
+ throw new SYSTEM_PATH_FORBIDDEN(p);
25
+ }