peaks-loop 4.0.0-beta.3 → 4.0.0-beta.30
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.
- package/.claude-plugin/marketplace.json +5 -0
- package/CHANGELOG.md +1141 -128
- package/README-en.md +182 -65
- package/README.md +213 -55
- package/bin/peaks.js +1 -1
- package/dist/cli/cli-helpers.d.ts +38 -0
- package/dist/cli/cli-helpers.js +62 -0
- package/dist/cli/commands/_cli-error-envelope.d.ts +19 -0
- package/dist/cli/commands/_cli-error-envelope.js +50 -0
- package/dist/cli/commands/adapter-commands-s2a.d.ts +34 -0
- package/dist/cli/commands/adapter-commands-s2a.js +92 -0
- package/dist/cli/commands/asset-commands.js +421 -0
- package/dist/cli/commands/audit-commands.js +437 -0
- package/dist/cli/commands/bee-commands.js +169 -0
- package/dist/cli/commands/capability-commands.js +45 -0
- package/dist/cli/commands/capability-worker-config-sc-commands.js +8 -0
- package/dist/cli/commands/classify-classify-commands.js +151 -0
- package/dist/cli/commands/code-commands.js +798 -0
- package/dist/cli/commands/code-review-commands.js +83 -0
- package/dist/cli/commands/codegraph-commands.js +99 -0
- package/dist/cli/commands/compact-command.js +252 -0
- package/dist/cli/commands/complexity-commands.js +34 -0
- package/dist/cli/commands/config-commands.js +149 -0
- package/dist/cli/commands/context-commands.js +254 -0
- package/dist/cli/commands/contract-commands.js +114 -0
- package/dist/cli/commands/core/artifacts-command.js +62 -0
- package/dist/cli/commands/core/binding-commands.js +58 -0
- package/dist/cli/commands/core/doctor-command.js +264 -0
- package/dist/cli/commands/core/memory-command.js +98 -0
- package/dist/cli/commands/core/profile-command.js +9 -0
- package/dist/cli/commands/core/proxy-command.js +26 -0
- package/dist/cli/commands/core/session-command.js +241 -0
- package/dist/cli/commands/core/skill-command.js +303 -0
- package/dist/cli/commands/core/standards-command.js +95 -0
- package/dist/cli/commands/dispatch-commands.js +380 -0
- package/dist/cli/commands/dispatch-from-dag.js +251 -0
- package/dist/cli/commands/doc-commands.js +65 -0
- package/dist/cli/commands/ecc-commands.d.ts +30 -0
- package/dist/cli/commands/ecc-commands.js +119 -0
- package/dist/cli/commands/evolution-commands.js +393 -0
- package/dist/cli/commands/feedback-commands.js +145 -0
- package/dist/cli/commands/final-review-commands.js +161 -0
- package/dist/cli/commands/fixture-commands.js +91 -0
- package/dist/cli/commands/fork-commands.js +163 -0
- package/dist/cli/commands/gate-commands.js +117 -0
- package/dist/cli/commands/heartbeat-commands.js +135 -0
- package/dist/cli/commands/hook-handle.js +157 -0
- package/dist/cli/commands/hooks-commands.js +156 -0
- package/dist/cli/commands/ide-commands.d.ts +25 -0
- package/dist/cli/commands/ide-commands.js +42 -0
- package/dist/cli/commands/impact-commands.js +62 -0
- package/dist/cli/commands/job-commands.js +289 -0
- package/dist/cli/commands/legacy-commands.js +32 -0
- package/dist/cli/commands/log-commands.js +64 -0
- package/dist/cli/commands/loop-commands.js +262 -0
- package/dist/cli/commands/loop-eval-commands.js +526 -0
- package/dist/cli/commands/memory-commands.js +129 -0
- package/dist/cli/commands/migrate-1-4-1-command.js +34 -0
- package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +52 -0
- package/dist/cli/commands/mut-commands.d.ts +20 -0
- package/dist/cli/commands/mut-commands.js +235 -0
- package/dist/cli/commands/observability-commands.js +201 -0
- package/dist/cli/commands/openspec-commands.js +237 -0
- package/dist/cli/commands/perf-audit-commands.js +132 -0
- package/dist/cli/commands/perf-commands.js +41 -0
- package/dist/cli/commands/polyrepo-commands.d.ts +37 -0
- package/dist/cli/commands/polyrepo-commands.js +155 -0
- package/dist/cli/commands/prd-blocks-commands.js +50 -0
- package/dist/cli/commands/prd-commands.js +143 -0
- package/dist/cli/commands/preferences-commands.js +217 -0
- package/dist/cli/commands/project-commands.js +253 -0
- package/dist/cli/commands/qa-business-review-commands.js +148 -0
- package/dist/cli/commands/qa-commands.d.ts +94 -0
- package/dist/cli/commands/qa-commands.js +271 -0
- package/dist/cli/commands/release-commands.js +231 -0
- package/dist/cli/commands/request-commands.js +548 -0
- package/dist/cli/commands/retrospective-commands.js +175 -0
- package/dist/cli/commands/reviewer-commands.js +64 -0
- package/dist/cli/commands/role-commands.js +85 -0
- package/dist/cli/commands/runtime-commands.d.ts +52 -0
- package/dist/cli/commands/runtime-commands.js +149 -0
- package/dist/cli/commands/sc-commands.js +47 -0
- package/dist/cli/commands/scan-commands.js +445 -0
- package/dist/cli/commands/security-audit-commands.js +132 -0
- package/dist/cli/commands/sediment-commands.js +658 -0
- package/dist/cli/commands/share-commands.d.ts +36 -0
- package/dist/cli/commands/share-commands.js +415 -0
- package/dist/cli/commands/skill-conformance-commands.js +39 -0
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +173 -0
- package/dist/cli/commands/skill-search-commands.d.ts +25 -0
- package/dist/cli/commands/skill-search-commands.js +71 -0
- package/dist/cli/commands/slice-commands.js +492 -0
- package/dist/cli/commands/slice-integrate-commands.js +74 -0
- package/dist/cli/commands/slice-review-commands.js +162 -0
- package/dist/cli/commands/smoke-commands.js +203 -0
- package/dist/cli/commands/sop-commands.js +215 -0
- package/dist/cli/commands/statusline-commands.d.ts +15 -0
- package/dist/cli/commands/statusline-commands.js +193 -0
- package/dist/cli/commands/sub-agent-commands.js +20 -0
- package/dist/cli/commands/understand-commands.js +148 -0
- package/dist/cli/commands/upgrade-commands.js +119 -0
- package/dist/cli/commands/user-touchpoint-commands.js +78 -0
- package/dist/cli/commands/verdict-aggregate-command.js +106 -0
- package/dist/cli/commands/workflow-commands.js +544 -0
- package/dist/cli/commands/workflow-plan-commands.js +163 -0
- package/dist/cli/commands/workspace/init-command.d.ts +139 -0
- package/dist/cli/commands/workspace/init-command.js +505 -0
- package/dist/cli/commands/workspace/migrate-command.js +91 -0
- package/dist/cli/commands/workspace/reconcile-command.js +103 -0
- package/dist/cli/index.js +82 -0
- package/dist/cli/program.js +450 -0
- package/dist/services/adapter/adapter-registry.d.ts +48 -0
- package/dist/services/adapter/adapter-registry.js +186 -0
- package/dist/services/artifacts/artifact-prerequisites.js +491 -0
- package/dist/services/artifacts/request-artifact-service.js +451 -0
- package/dist/services/artifacts/workspace-service.js +272 -0
- package/dist/services/audit/static-service.d.ts +67 -0
- package/dist/services/audit/static-service.js +51 -0
- package/dist/services/code/auto-compact-orchestrator.js +346 -0
- package/dist/services/code-review/ocr-service.d.ts +129 -0
- package/dist/services/code-review/ocr-service.js +372 -0
- package/dist/services/config/config-service.d.ts +58 -0
- package/dist/services/config/config-service.js +745 -0
- package/dist/services/config/config-types.d.ts +117 -0
- package/dist/services/config/config-types.js +18 -0
- package/dist/services/config/model-routing.d.ts +66 -0
- package/dist/services/config/model-routing.js +105 -0
- package/dist/services/context/build-dispatch-system-prompt.d.ts +36 -0
- package/dist/services/context/build-dispatch-system-prompt.js +22 -0
- package/dist/services/context/context-schema.d.ts +415 -0
- package/dist/services/context/memory-index-reader.d.ts +8 -0
- package/dist/services/context/memory-index-reader.js +57 -0
- package/dist/services/context/memory-lru-cache.d.ts +12 -0
- package/dist/services/context/memory-lru-cache.js +60 -0
- package/dist/services/context/memory-preflight-config.d.ts +19 -0
- package/dist/services/context/memory-preflight-config.js +25 -0
- package/dist/services/context/memory-preflight-service.d.ts +19 -0
- package/dist/services/context/memory-preflight-service.js +120 -0
- package/dist/services/dashboard/project-dashboard-service.js +147 -0
- package/dist/services/dispatch/batch-counter.js +102 -0
- package/dist/services/dispatch/dispatch-record-writer.js +460 -0
- package/dist/services/ide/adapters/zcode-adapter.d.ts +40 -0
- package/dist/services/ide/adapters/zcode-adapter.js +220 -0
- package/dist/services/ide/current-model-detector.d.ts +14 -0
- package/dist/services/ide/current-model-detector.js +60 -0
- package/dist/services/ide/ide-registry.js +63 -0
- package/dist/services/ide/ide-types.d.ts +253 -0
- package/dist/services/job/job-progress-store.d.ts +60 -0
- package/dist/services/job/job-types.d.ts +444 -0
- package/dist/services/log/retention.d.ts +50 -0
- package/dist/services/log/retention.js +95 -0
- package/dist/services/memory/project-context-service.d.ts +21 -0
- package/dist/services/memory/project-context-service.js +161 -0
- package/dist/services/migrate-skill-name/schema.d.ts +42 -0
- package/dist/services/openspec/openspec-archive-service.js +28 -0
- package/dist/services/openspec/openspec-bridge-service.js +76 -0
- package/dist/services/openspec/openspec-init-service.js +122 -0
- package/dist/services/openspec/openspec-propose-from-doctor-service.js +95 -0
- package/dist/services/openspec/openspec-render-service.js +130 -0
- package/dist/services/openspec/openspec-scan-service.js +123 -0
- package/dist/services/openspec/openspec-validate-service.js +77 -0
- package/dist/services/polyrepo/polyrepo-dispatcher.d.ts +34 -0
- package/dist/services/polyrepo/polyrepo-dispatcher.js +119 -0
- package/dist/services/polyrepo/polyrepo-scanner.d.ts +9 -0
- package/dist/services/polyrepo/polyrepo-scanner.js +94 -0
- package/dist/services/polyrepo/polyrepo-service.d.ts +34 -0
- package/dist/services/polyrepo/polyrepo-service.js +49 -0
- package/dist/services/polyrepo/polyrepo-types.d.ts +55 -0
- package/dist/services/prd/project-scan-bootstrap-service.d.ts +52 -0
- package/dist/services/prd/project-scan-bootstrap-service.js +445 -0
- package/dist/services/preferences/preferences-service.js +208 -0
- package/dist/services/preferences/preferences-types.d.ts +161 -0
- package/dist/services/preferences/preferences-types.js +64 -0
- package/dist/services/rd/rd-service.js +440 -0
- package/dist/services/rd/types.d.ts +252 -0
- package/dist/services/recommendations/capability-seed-items.js +139 -0
- package/dist/services/recommendations/capability-seed-mappings.js +53 -0
- package/dist/services/recommendations/capability-seed-sources.js +34 -0
- package/dist/services/runtime/runtime-detector.d.ts +15 -0
- package/dist/services/runtime/runtime-detector.js +62 -0
- package/dist/services/runtime/runtime-service.d.ts +59 -0
- package/dist/services/runtime/runtime-service.js +51 -0
- package/dist/services/runtime/vendor-adapter.d.ts +59 -0
- package/dist/services/runtime/vendors/claude-code.d.ts +7 -0
- package/dist/services/runtime/vendors/claude-code.js +39 -0
- package/dist/services/runtime/vendors/codex.d.ts +7 -0
- package/dist/services/runtime/vendors/codex.js +43 -0
- package/dist/services/runtime/vendors/copilot.d.ts +7 -0
- package/dist/services/runtime/vendors/copilot.js +40 -0
- package/dist/services/scan/acceptance-coverage-service.js +140 -0
- package/dist/services/scan/archetype-service.js +254 -0
- package/dist/services/scan/existing-system-service.js +300 -0
- package/dist/services/scan/libraries-service.js +419 -0
- package/dist/services/scan/scan-types.d.ts +59 -0
- package/dist/services/skill/skill-search-service.d.ts +93 -0
- package/dist/services/skill/skill-search-service.js +232 -0
- package/dist/services/skillhub/migrations/001-initial.sql +71 -0
- package/dist/services/skillhub/migrations/002-loop-release.sql +32 -0
- package/dist/services/skillhub/migrations/003-loop-bee-relation.sql +35 -0
- package/dist/services/skillhub/migrations/004-loop-bee-extension.sql +65 -0
- package/dist/services/skillhub/migrations/005-evolution-evaluation.sql +81 -0
- package/dist/services/skillhub/migrations/006-crystallization-event.sql +92 -0
- package/dist/services/skills/skill-registry.d.ts +18 -0
- package/dist/services/skills/skill-registry.js +69 -0
- package/dist/services/skills/skill-runbook-service.js +128 -0
- package/dist/services/slice/slice-check-service.js +459 -0
- package/dist/services/standards/ide-aware-standards-service.js +91 -0
- package/dist/services/standards/migrate-claude-rules-service.js +214 -0
- package/dist/services/standards/missing-standards-detector.d.ts +106 -0
- package/dist/services/standards/missing-standards-detector.js +170 -0
- package/dist/services/standards/project-standards-service.js +693 -0
- package/dist/services/understand/hybrid-types.js +1 -0
- package/dist/services/understand/understand-hybrid-service.js +100 -0
- package/dist/services/understand/understand-scan-service.js +170 -0
- package/dist/services/understand/understand-types.js +1 -0
- package/dist/services/upgrade/upgrade-service.js +404 -0
- package/dist/services/verdict/envelopes.d.ts +93 -0
- package/dist/services/verdict/envelopes.js +349 -0
- package/dist/services/verdict/verdict-aggregator.d.ts +94 -0
- package/dist/services/workflow/autonomous-resume-writer.js +170 -0
- package/dist/services/workflow/plan-reader.d.ts +29 -0
- package/dist/services/workflow/plan-reader.js +174 -0
- package/dist/services/workflow/plan-refresher.d.ts +32 -0
- package/dist/services/workflow/plan-refresher.js +353 -0
- package/dist/services/workflow/plan-trigger-detector.d.ts +55 -0
- package/dist/services/workflow/plan-trigger-detector.js +142 -0
- package/dist/services/workflow/workflow-router-service.d.ts +85 -0
- package/dist/services/workflow/workflow-router-service.js +235 -0
- package/dist/services/workspace/migrate-service.js +613 -0
- package/dist/services/workspace/templates/project-scan/audit-output-schema.md +100 -0
- package/dist/services/workspace/templates/project-scan/business-knowledge.md +44 -0
- package/dist/services/workspace/templates/project-scan/index.d.ts +34 -0
- package/dist/services/workspace/templates/project-scan/index.js +60 -0
- package/dist/services/workspace/templates/project-scan/perf-template.md +109 -0
- package/dist/services/workspace/templates/project-scan/security-template.md +99 -0
- package/dist/services/workspace/workspace-service.js +432 -0
- package/package.json +57 -45
- package/scripts/copy-templates.mjs +80 -0
- package/scripts/install-skills.mjs +13 -10
- package/scripts/sync-version.mjs +70 -2
- package/skills/bee/peaks-perf-audit/SKILL.md +1 -0
- package/skills/bee/peaks-prd/test-prompts.json +12 -0
- package/skills/bee/peaks-qa/test-prompts.json +12 -0
- package/skills/bee/peaks-rd/SKILL.md +10 -20
- package/skills/bee/peaks-rd/references/library-version-awareness.md +2 -2
- package/skills/bee/peaks-rd/references/mock-data-placement.md +1 -1
- package/skills/bee/peaks-rd/references/rd-runbook.md +2 -2
- package/skills/bee/peaks-rd/references/rd-transition-gates.md +2 -2
- package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +1 -1
- package/skills/bee/peaks-rd/test-prompts.json +12 -0
- package/skills/bee/peaks-reviewer/SKILL.md +1 -0
- package/skills/bee/peaks-security-audit/SKILL.md +1 -0
- package/skills/bee/peaks-txt/test-prompts.json +12 -0
- package/skills/bee/peaks-ui/SKILL.md +2 -2
- package/skills/bee/peaks-ui/test-prompts.json +12 -0
- package/skills/peaks-code/SKILL.md +48 -119
- package/skills/peaks-code/references/external-references.md +1 -3
- package/skills/peaks-code/references/external-skill-invocation.md +1 -1
- package/skills/peaks-code/references/project-scan-checklist.md +3 -1
- package/skills/peaks-code/references/runbook.md +3 -5
- package/skills/peaks-code/references/standards-preflight.md +1 -1
- package/skills/peaks-code/references/startup-sequence.md +110 -0
- package/skills/peaks-code/references/step-0-55-1x-detection.md +2 -1
- package/skills/peaks-code/references/step-11-memory-sediment.md +56 -0
- package/skills/peaks-code/references/sub-agent-dispatch.md +30 -0
- package/skills/peaks-code/references/swarm-dispatch-contract.md +1 -1
- package/skills/peaks-code/references/workflow-gates-and-types.md +4 -4
- package/skills/peaks-code/test-prompts.json +12 -0
- package/skills/peaks-doctor/SKILL.md +1 -1
- package/skills/peaks-ide/SKILL.md +1 -1
- package/skills/peaks-slice-decompose/SKILL.md +61 -1
- package/skills/peaks-solo/SKILL.md +197 -0
- package/skills/peaks-solo/references/fallback-tool-inventory.md +46 -0
- package/skills/peaks-solo/references/sediment-prompt-template.md +62 -0
- package/skills/peaks-solo/references/triage-decision-table.md +31 -0
- package/skills/peaks-sop/test-prompts.json +17 -0
- package/dist/src/cli/cli-helpers.d.ts +0 -43
- package/dist/src/cli/cli-helpers.js +0 -86
- package/dist/src/cli/commands/agent-commands.d.ts +0 -20
- package/dist/src/cli/commands/agent-commands.js +0 -48
- package/dist/src/cli/commands/asset-commands.js +0 -404
- package/dist/src/cli/commands/audit-commands.js +0 -437
- package/dist/src/cli/commands/bee-commands.js +0 -169
- package/dist/src/cli/commands/capability-commands.js +0 -45
- package/dist/src/cli/commands/capability-worker-config-sc-commands.js +0 -10
- package/dist/src/cli/commands/classify-classify-commands.js +0 -151
- package/dist/src/cli/commands/code-commands.js +0 -798
- package/dist/src/cli/commands/code-review-commands.js +0 -83
- package/dist/src/cli/commands/codegraph-commands.js +0 -99
- package/dist/src/cli/commands/compact-command.js +0 -252
- package/dist/src/cli/commands/complexity-commands.js +0 -34
- package/dist/src/cli/commands/config-commands.js +0 -220
- package/dist/src/cli/commands/context-commands.js +0 -254
- package/dist/src/cli/commands/contract-commands.js +0 -114
- package/dist/src/cli/commands/core/artifacts-command.js +0 -62
- package/dist/src/cli/commands/core/binding-commands.js +0 -58
- package/dist/src/cli/commands/core/doctor-command.js +0 -204
- package/dist/src/cli/commands/core/memory-command.js +0 -98
- package/dist/src/cli/commands/core/profile-command.js +0 -9
- package/dist/src/cli/commands/core/proxy-command.js +0 -26
- package/dist/src/cli/commands/core/session-command.js +0 -241
- package/dist/src/cli/commands/core/skill-command.js +0 -275
- package/dist/src/cli/commands/core/standards-command.js +0 -95
- package/dist/src/cli/commands/dispatch-commands.js +0 -351
- package/dist/src/cli/commands/dispatch-from-dag.js +0 -251
- package/dist/src/cli/commands/doc-commands.js +0 -65
- package/dist/src/cli/commands/evolution-commands.js +0 -393
- package/dist/src/cli/commands/feedback-commands.js +0 -145
- package/dist/src/cli/commands/final-review-commands.js +0 -161
- package/dist/src/cli/commands/fixture-commands.js +0 -91
- package/dist/src/cli/commands/fork-commands.js +0 -163
- package/dist/src/cli/commands/gate-commands.js +0 -117
- package/dist/src/cli/commands/heartbeat-commands.js +0 -135
- package/dist/src/cli/commands/hook-handle.js +0 -157
- package/dist/src/cli/commands/hooks-commands.js +0 -156
- package/dist/src/cli/commands/impact-commands.js +0 -62
- package/dist/src/cli/commands/job-commands.js +0 -289
- package/dist/src/cli/commands/legacy-commands.js +0 -32
- package/dist/src/cli/commands/log-commands.js +0 -64
- package/dist/src/cli/commands/loop-commands.js +0 -262
- package/dist/src/cli/commands/loop-eval-commands.js +0 -526
- package/dist/src/cli/commands/memory-commands.js +0 -129
- package/dist/src/cli/commands/migrate-1-4-1-command.js +0 -34
- package/dist/src/cli/commands/migrate-v2-10-to-v2-11-command.js +0 -52
- package/dist/src/cli/commands/mut-commands.d.ts +0 -20
- package/dist/src/cli/commands/mut-commands.js +0 -239
- package/dist/src/cli/commands/observability-commands.js +0 -201
- package/dist/src/cli/commands/openspec-commands.js +0 -237
- package/dist/src/cli/commands/perf-audit-commands.js +0 -132
- package/dist/src/cli/commands/perf-commands.js +0 -41
- package/dist/src/cli/commands/prd-blocks-commands.js +0 -50
- package/dist/src/cli/commands/prd-commands.js +0 -141
- package/dist/src/cli/commands/preferences-commands.js +0 -197
- package/dist/src/cli/commands/project-commands.js +0 -248
- package/dist/src/cli/commands/qa-business-review-commands.js +0 -148
- package/dist/src/cli/commands/qa-commands.d.ts +0 -94
- package/dist/src/cli/commands/qa-commands.js +0 -271
- package/dist/src/cli/commands/release-commands.js +0 -231
- package/dist/src/cli/commands/request-commands.js +0 -548
- package/dist/src/cli/commands/retrospective-commands.js +0 -175
- package/dist/src/cli/commands/reviewer-commands.js +0 -64
- package/dist/src/cli/commands/role-commands.js +0 -85
- package/dist/src/cli/commands/sc-commands.js +0 -45
- package/dist/src/cli/commands/scan-commands.js +0 -445
- package/dist/src/cli/commands/security-audit-commands.js +0 -132
- package/dist/src/cli/commands/sediment-commands.js +0 -649
- package/dist/src/cli/commands/share-commands.d.ts +0 -17
- package/dist/src/cli/commands/share-commands.js +0 -296
- package/dist/src/cli/commands/skill-conformance-commands.js +0 -39
- package/dist/src/cli/commands/skill-loop-engineering-readiness-commands.js +0 -173
- package/dist/src/cli/commands/slice-commands.js +0 -492
- package/dist/src/cli/commands/slice-integrate-commands.js +0 -74
- package/dist/src/cli/commands/slice-review-commands.js +0 -162
- package/dist/src/cli/commands/smoke-commands.js +0 -203
- package/dist/src/cli/commands/sop-commands.js +0 -215
- package/dist/src/cli/commands/statusline-commands.d.ts +0 -3
- package/dist/src/cli/commands/statusline-commands.js +0 -169
- package/dist/src/cli/commands/sub-agent-commands.js +0 -19
- package/dist/src/cli/commands/understand-commands.js +0 -148
- package/dist/src/cli/commands/upgrade-commands.js +0 -119
- package/dist/src/cli/commands/user-touchpoint-commands.js +0 -78
- package/dist/src/cli/commands/verdict-aggregate-command.js +0 -106
- package/dist/src/cli/commands/worker-commands.d.ts +0 -3
- package/dist/src/cli/commands/worker-commands.js +0 -52
- package/dist/src/cli/commands/workflow-commands.js +0 -535
- package/dist/src/cli/commands/workflow-plan-commands.js +0 -163
- package/dist/src/cli/commands/workspace/init-command.d.ts +0 -121
- package/dist/src/cli/commands/workspace/init-command.js +0 -436
- package/dist/src/cli/commands/workspace/migrate-command.js +0 -91
- package/dist/src/cli/commands/workspace/reconcile-command.js +0 -103
- package/dist/src/cli/index.js +0 -30
- package/dist/src/cli/program.js +0 -385
- package/dist/src/services/agent/ecc-agent-service.d.ts +0 -47
- package/dist/src/services/agent/ecc-agent-service.js +0 -143
- package/dist/src/services/artifacts/artifact-prerequisites.js +0 -491
- package/dist/src/services/artifacts/request-artifact-service.js +0 -451
- package/dist/src/services/artifacts/workspace-service.js +0 -272
- package/dist/src/services/audit/static-service.d.ts +0 -60
- package/dist/src/services/audit/static-service.js +0 -130
- package/dist/src/services/audit-independent/perf-audit-service.d.ts +0 -151
- package/dist/src/services/audit-independent/perf-audit-service.js +0 -316
- package/dist/src/services/audit-independent/security-audit-service.d.ts +0 -155
- package/dist/src/services/audit-independent/security-audit-service.js +0 -316
- package/dist/src/services/code/auto-compact-orchestrator.js +0 -343
- package/dist/src/services/code-review/ocr-service.d.ts +0 -129
- package/dist/src/services/code-review/ocr-service.js +0 -369
- package/dist/src/services/config/config-service.d.ts +0 -69
- package/dist/src/services/config/config-service.js +0 -814
- package/dist/src/services/config/config-types.d.ts +0 -119
- package/dist/src/services/config/config-types.js +0 -18
- package/dist/src/services/config/model-routing.d.ts +0 -4
- package/dist/src/services/config/model-routing.js +0 -17
- package/dist/src/services/config/provider-service.d.ts +0 -48
- package/dist/src/services/config/provider-service.js +0 -143
- package/dist/src/services/context/context-schema.d.ts +0 -415
- package/dist/src/services/context/dispatch-context-guard.d.ts +0 -27
- package/dist/src/services/context/dispatch-context-guard.js +0 -192
- package/dist/src/services/context/shared-channel.d.ts +0 -93
- package/dist/src/services/context/shared-channel.js +0 -308
- package/dist/src/services/crystallization/crystallization-service.d.ts +0 -239
- package/dist/src/services/crystallization/crystallization-service.js +0 -397
- package/dist/src/services/crystallization/crystallization-store.d.ts +0 -75
- package/dist/src/services/crystallization/crystallization-store.js +0 -193
- package/dist/src/services/crystallization/crystallization-types.d.ts +0 -313
- package/dist/src/services/crystallization/crystallization-types.js +0 -299
- package/dist/src/services/crystallization/evidence-brief-builder.d.ts +0 -237
- package/dist/src/services/crystallization/evidence-brief-builder.js +0 -240
- package/dist/src/services/dashboard/project-dashboard-service.js +0 -147
- package/dist/src/services/dispatch/batch-counter.js +0 -102
- package/dist/src/services/dispatch/dispatch-record-writer.js +0 -460
- package/dist/src/services/doctor/doctor-service.d.ts +0 -149
- package/dist/src/services/doctor/doctor-service.js +0 -929
- package/dist/src/services/filesystem/file-lock.d.ts +0 -11
- package/dist/src/services/filesystem/file-lock.js +0 -129
- package/dist/src/services/final-review/final-review-service.d.ts +0 -12
- package/dist/src/services/final-review/final-review-service.js +0 -52
- package/dist/src/services/final-review/final-review-types.d.ts +0 -42
- package/dist/src/services/final-review/final-review-types.js +0 -18
- package/dist/src/services/ide/ide-registry.js +0 -60
- package/dist/src/services/ide/ide-types.d.ts +0 -230
- package/dist/src/services/job/job-progress-store.d.ts +0 -60
- package/dist/src/services/job/job-resource-snapshot.d.ts +0 -7
- package/dist/src/services/job/job-resource-snapshot.js +0 -75
- package/dist/src/services/job/job-types.d.ts +0 -444
- package/dist/src/services/log/retention.d.ts +0 -34
- package/dist/src/services/log/retention.js +0 -78
- package/dist/src/services/memory/project-context-service.d.ts +0 -11
- package/dist/src/services/memory/project-context-service.js +0 -148
- package/dist/src/services/migrate-skill-name/schema.d.ts +0 -42
- package/dist/src/services/mut/assert-scanner.d.ts +0 -6
- package/dist/src/services/mut/assert-scanner.js +0 -116
- package/dist/src/services/mut/index.d.ts +0 -8
- package/dist/src/services/mut/index.js +0 -7
- package/dist/src/services/mut/mut-runner.d.ts +0 -39
- package/dist/src/services/mut/mut-runner.js +0 -29
- package/dist/src/services/mut/production-stryker.d.ts +0 -2
- package/dist/src/services/mut/production-stryker.js +0 -75
- package/dist/src/services/mut/report-builder.d.ts +0 -11
- package/dist/src/services/mut/report-builder.js +0 -110
- package/dist/src/services/mut/report-loader.d.ts +0 -31
- package/dist/src/services/mut/report-loader.js +0 -78
- package/dist/src/services/mut/thresholds.d.ts +0 -21
- package/dist/src/services/mut/thresholds.js +0 -22
- package/dist/src/services/mut/types.d.ts +0 -336
- package/dist/src/services/mut/types.js +0 -59
- package/dist/src/services/openspec/openspec-archive-service.js +0 -28
- package/dist/src/services/openspec/openspec-bridge-service.js +0 -76
- package/dist/src/services/openspec/openspec-init-service.js +0 -122
- package/dist/src/services/openspec/openspec-propose-from-doctor-service.js +0 -95
- package/dist/src/services/openspec/openspec-render-service.js +0 -130
- package/dist/src/services/openspec/openspec-scan-service.js +0 -123
- package/dist/src/services/openspec/openspec-validate-service.js +0 -77
- package/dist/src/services/preferences/preferences-service.js +0 -198
- package/dist/src/services/preferences/preferences-types.d.ts +0 -148
- package/dist/src/services/preferences/preferences-types.js +0 -53
- package/dist/src/services/providers/minimax-provider-service.d.ts +0 -24
- package/dist/src/services/providers/minimax-provider-service.js +0 -143
- package/dist/src/services/providers/minimax-worker-service.d.ts +0 -21
- package/dist/src/services/providers/minimax-worker-service.js +0 -83
- package/dist/src/services/rd/rd-service.js +0 -438
- package/dist/src/services/rd/types.d.ts +0 -252
- package/dist/src/services/recommendations/capability-seed-items.js +0 -140
- package/dist/src/services/recommendations/capability-seed-mappings.js +0 -54
- package/dist/src/services/recommendations/capability-seed-sources.js +0 -35
- package/dist/src/services/scan/acceptance-coverage-service.js +0 -140
- package/dist/src/services/scan/archetype-service.js +0 -242
- package/dist/src/services/scan/existing-system-service.js +0 -300
- package/dist/src/services/scan/libraries-service.js +0 -419
- package/dist/src/services/scan/scan-types.d.ts +0 -59
- package/dist/src/services/skills/skill-registry.d.ts +0 -17
- package/dist/src/services/skills/skill-registry.js +0 -67
- package/dist/src/services/skills/skill-runbook-service.js +0 -128
- package/dist/src/services/slice/slice-check-service.js +0 -459
- package/dist/src/services/standards/ide-aware-standards-service.js +0 -89
- package/dist/src/services/standards/migrate-claude-rules-service.js +0 -193
- package/dist/src/services/standards/missing-standards-detector.d.ts +0 -79
- package/dist/src/services/standards/missing-standards-detector.js +0 -132
- package/dist/src/services/standards/project-standards-service.js +0 -574
- package/dist/src/services/understand/understand-hybrid-service.js +0 -100
- package/dist/src/services/understand/understand-scan-service.js +0 -170
- package/dist/src/services/upgrade/upgrade-service.js +0 -403
- package/dist/src/services/verdict/envelopes.d.ts +0 -93
- package/dist/src/services/verdict/envelopes.js +0 -349
- package/dist/src/services/verdict/verdict-aggregator.d.ts +0 -94
- package/dist/src/services/workflow/autonomous-resume-writer.js +0 -170
- package/dist/src/services/workflow/plan-reader.d.ts +0 -29
- package/dist/src/services/workflow/plan-reader.js +0 -174
- package/dist/src/services/workflow/plan-refresher.d.ts +0 -32
- package/dist/src/services/workflow/plan-refresher.js +0 -353
- package/dist/src/services/workflow/plan-trigger-detector.d.ts +0 -55
- package/dist/src/services/workflow/plan-trigger-detector.js +0 -142
- package/dist/src/services/workflow/workflow-router-service.d.ts +0 -85
- package/dist/src/services/workflow/workflow-router-service.js +0 -227
- package/dist/src/services/workspace/migrate-service.js +0 -613
- package/dist/src/services/workspace/workspace-service.js +0 -432
- package/dist/src/shared/fs.d.ts +0 -4
- package/dist/src/shared/fs.js +0 -26
- package/dist/src/shared/paths.d.ts +0 -6
- package/dist/src/shared/paths.js +0 -50
- package/dist/src/shared/result.d.ts +0 -22
- package/dist/src/shared/result.js +0 -46
- package/dist/src/shared/version.d.ts +0 -1
- package/dist/src/shared/version.js +0 -1
- package/examples/video-demo/README.md +0 -57
- package/examples/video-demo/out/en-closing-960.png +0 -0
- package/examples/video-demo/out/zh-closing-960.png +0 -0
- package/examples/video-demo/preview/peaks-loop-demo-en.mp4 +0 -0
- package/examples/video-demo/preview/peaks-loop-demo.mp4 +0 -0
- package/skills/peaks-code/references/openspec-workflow.md +0 -81
- /package/dist/{src/cli → cli}/commands/adapter-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/adapter-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/asset-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/audit-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/bee-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/capability-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/capability-worker-config-sc-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/classify-classify-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/code-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/code-review-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/codegraph-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/compact-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/complexity-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/config-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/context-builder-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/context-builder-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/context-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/contract-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/artifacts-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/binding-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/doctor-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/memory-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/profile-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/proxy-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/session-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/skill-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/standards-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core-artifact-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core-artifact-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/dispatch-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/dispatch-from-dag.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/doc-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/evolution-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/feedback-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/final-review-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/fixture-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/fork-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/gate-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/heartbeat-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/hook-handle.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/hooks-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/impact-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/job-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/legacy-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/log-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/loop-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/loop-eval-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/memory-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/migrate-1-4-1-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/migrate-v2-10-to-v2-11-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/observability-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/openspec-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/perf-audit-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/perf-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/playwright-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/playwright-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/prd-blocks-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/prd-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/preferences-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/project-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/qa-business-review-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/release-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/request-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/retrospective-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/reviewer-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/role-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sc-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/scan-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/security-audit-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sediment-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-auto-compact-hook-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-auto-compact-hook-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/session-checkpoint-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-checkpoint-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/session-migrate-skill-name.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-migrate-skill-name.js +0 -0
- /package/dist/{src/cli → cli}/commands/session-resume-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-resume-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/skill-conformance-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/skill-loop-engineering-readiness-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/skill-visibility.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/skill-visibility.js +0 -0
- /package/dist/{src/cli → cli}/commands/slice-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/slice-integrate-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/slice-review-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/smoke-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sop-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sub-agent-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sub-agent-dispatch-guard.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sub-agent-dispatch-guard.js +0 -0
- /package/dist/{src/cli → cli}/commands/sub-agent-shared.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sub-agent-shared.js +0 -0
- /package/dist/{src/cli → cli}/commands/test-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/test-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/understand-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/upgrade-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/user-touchpoint-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/verdict-aggregate-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workflow-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workflow-plan-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/clean-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/clean-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/helpers.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/helpers.js +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/migrate-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/reconcile-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace-commands.js +0 -0
- /package/dist/{src/cli → cli}/index.d.ts +0 -0
- /package/dist/{src/cli → cli}/program.d.ts +0 -0
- /package/dist/{src/hooks → hooks}/pre-tool-use-sub-agent.d.ts +0 -0
- /package/dist/{src/hooks → hooks}/pre-tool-use-sub-agent.js +0 -0
- /package/dist/{src/lib → lib}/render/message-renderer.d.ts +0 -0
- /package/dist/{src/lib → lib}/render/message-renderer.js +0 -0
- /package/dist/{src/services → services}/adapter/adapter.d.ts +0 -0
- /package/dist/{src/services → services}/adapter/adapter.js +0 -0
- /package/dist/{src/services → services}/adapter/auto-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/adapter/auto-adapter.js +0 -0
- /package/dist/{src/services → services}/adapter/claude-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/adapter/claude-adapter.js +0 -0
- /package/dist/{src/services → services}/adapter/codex-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/adapter/codex-adapter.js +0 -0
- /package/dist/{src/services → services}/adapter/copilot-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/adapter/copilot-adapter.js +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-lint-service.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-lint-service.js +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-prerequisites.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-service.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-service.js +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-templates.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-templates.js +0 -0
- /package/dist/{src/services → services}/artifacts/repair-cycle-service.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/repair-cycle-service.js +0 -0
- /package/dist/{src/services → services}/artifacts/request-artifact-service.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/request-artifact-state-helpers.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/request-artifact-state-helpers.js +0 -0
- /package/dist/{src/services → services}/artifacts/workspace-service.d.ts +0 -0
- /package/dist/{src/services → services}/audit/artifact-writer.d.ts +0 -0
- /package/dist/{src/services → services}/audit/artifact-writer.js +0 -0
- /package/dist/{src/services → services}/audit/audit-goal-service.d.ts +0 -0
- /package/dist/{src/services → services}/audit/audit-goal-service.js +0 -0
- /package/dist/{src/services → services}/audit/audit-goal-types.d.ts +0 -0
- /package/dist/{src/services → services}/audit/audit-goal-types.js +0 -0
- /package/dist/{src/services → services}/audit/backing-detector.d.ts +0 -0
- /package/dist/{src/services → services}/audit/backing-detector.js +0 -0
- /package/dist/{src/services → services}/audit/classifier.d.ts +0 -0
- /package/dist/{src/services → services}/audit/classifier.js +0 -0
- /package/dist/{src/services → services}/audit/decision-writer.d.ts +0 -0
- /package/dist/{src/services → services}/audit/decision-writer.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/active-skill-resolver.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/active-skill-resolver.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/code-ban.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/code-ban.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/design-draft-confirm.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/design-draft-confirm.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-audit-regression.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-audit-regression.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-catalog-governance.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-catalog-governance.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-cli-back.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-cli-back.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-output-style.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-output-style.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-reference-integrity.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-reference-integrity.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-reference-shape.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-reference-shape.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-style.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-style.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-workflow-shape.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-workflow-shape.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/login-gate.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/login-gate.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/mock-placement.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/mock-placement.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/no-root-pollution.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/no-root-pollution.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/pre-rd-scan.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/pre-rd-scan.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/prototype-fidelity.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/prototype-fidelity.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/resume-detection.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/resume-detection.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/sub-agent-sid.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/sub-agent-sid.js +0 -0
- /package/dist/{src/services → services}/audit/prose-ratio-calculator.d.ts +0 -0
- /package/dist/{src/services → services}/audit/prose-ratio-calculator.js +0 -0
- /package/dist/{src/services → services}/audit/red-line-catalog-p2-a.d.ts +0 -0
- /package/dist/{src/services → services}/audit/red-line-catalog-p2-a.js +0 -0
- /package/dist/{src/services → services}/audit/red-line-catalog-p2-b.d.ts +0 -0
- /package/dist/{src/services → services}/audit/red-line-catalog-p2-b.js +0 -0
- /package/dist/{src/services → services}/audit/red-line-catalog.d.ts +0 -0
- /package/dist/{src/services → services}/audit/red-line-catalog.js +0 -0
- /package/dist/{src/services → services}/audit/red-lines-service.d.ts +0 -0
- /package/dist/{src/services → services}/audit/red-lines-service.js +0 -0
- /package/dist/{src/services → services}/audit/scanners/openspec-scanner.d.ts +0 -0
- /package/dist/{src/services → services}/audit/scanners/openspec-scanner.js +0 -0
- /package/dist/{src/services → services}/audit/scanners/rules-tree-scanner.d.ts +0 -0
- /package/dist/{src/services → services}/audit/scanners/rules-tree-scanner.js +0 -0
- /package/dist/{src/services → services}/audit/scanners/skills-tree-scanner.d.ts +0 -0
- /package/dist/{src/services → services}/audit/scanners/skills-tree-scanner.js +0 -0
- /package/dist/{src/services → services}/audit/types.d.ts +0 -0
- /package/dist/{src/services → services}/audit/types.js +0 -0
- /package/dist/{src/services → services}/classify/classify-service.d.ts +0 -0
- /package/dist/{src/services → services}/classify/classify-service.js +0 -0
- /package/dist/{src/services → services}/classify/classify-types.d.ts +0 -0
- /package/dist/{src/services → services}/classify/classify-types.js +0 -0
- /package/dist/{src/services → services}/code/auto-compact-orchestrator.d.ts +0 -0
- /package/dist/{src/services → services}/code/batch-heartbeat-poller.d.ts +0 -0
- /package/dist/{src/services → services}/code/batch-heartbeat-poller.js +0 -0
- /package/dist/{src/services → services}/code/dag-orchestrator.d.ts +0 -0
- /package/dist/{src/services → services}/code/dag-orchestrator.js +0 -0
- /package/dist/{src/services → services}/code/emit-handoff.d.ts +0 -0
- /package/dist/{src/services → services}/code/emit-handoff.js +0 -0
- /package/dist/{src/services → services}/code/job-shape-decision.d.ts +0 -0
- /package/dist/{src/services → services}/code/job-shape-decision.js +0 -0
- /package/dist/{src/services → services}/code/mode-gate.d.ts +0 -0
- /package/dist/{src/services → services}/code/mode-gate.js +0 -0
- /package/dist/{src/services → services}/code/post-compact-detector.d.ts +0 -0
- /package/dist/{src/services → services}/code/post-compact-detector.js +0 -0
- /package/dist/{src/services → services}/code/status-line-renderer.d.ts +0 -0
- /package/dist/{src/services → services}/code/status-line-renderer.js +0 -0
- /package/dist/{src/services → services}/code/step-08-gate.d.ts +0 -0
- /package/dist/{src/services → services}/code/step-08-gate.js +0 -0
- /package/dist/{src/services → services}/code/user-touchpoint-classifier.d.ts +0 -0
- /package/dist/{src/services → services}/code/user-touchpoint-classifier.js +0 -0
- /package/dist/{src/services → services}/code-review/ecc-bridge.d.ts +0 -0
- /package/dist/{src/services → services}/code-review/ecc-bridge.js +0 -0
- /package/dist/{src/services → services}/codegraph/codegraph-process-runner.d.ts +0 -0
- /package/dist/{src/services → services}/codegraph/codegraph-process-runner.js +0 -0
- /package/dist/{src/services → services}/codegraph/codegraph-service.d.ts +0 -0
- /package/dist/{src/services → services}/codegraph/codegraph-service.js +0 -0
- /package/dist/{src/services → services}/compact/decision-tables.d.ts +0 -0
- /package/dist/{src/services → services}/compact/decision-tables.js +0 -0
- /package/dist/{src/services → services}/compact/request-transition-hook.d.ts +0 -0
- /package/dist/{src/services → services}/compact/request-transition-hook.js +0 -0
- /package/dist/{src/services → services}/compact/suggest-service.d.ts +0 -0
- /package/dist/{src/services → services}/compact/suggest-service.js +0 -0
- /package/dist/{src/services → services}/complexity/complexity-estimator.d.ts +0 -0
- /package/dist/{src/services → services}/complexity/complexity-estimator.js +0 -0
- /package/dist/{src/services → services}/config/config-migration.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-migration.js +0 -0
- /package/dist/{src/services → services}/config/config-restore.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-restore.js +0 -0
- /package/dist/{src/services → services}/config/config-rollback.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-rollback.js +0 -0
- /package/dist/{src/services → services}/config/config-safety.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-safety.js +0 -0
- /package/dist/{src/services → services}/config/proxy-service.d.ts +0 -0
- /package/dist/{src/services → services}/config/proxy-service.js +0 -0
- /package/dist/{src/services → services}/config/sidecar-store.d.ts +0 -0
- /package/dist/{src/services → services}/config/sidecar-store.js +0 -0
- /package/dist/{src/services → services}/config/workspace-state-service.d.ts +0 -0
- /package/dist/{src/services → services}/config/workspace-state-service.js +0 -0
- /package/dist/{src/services → services}/context/artifact-meta.d.ts +0 -0
- /package/dist/{src/services → services}/context/artifact-meta.js +0 -0
- /package/dist/{src/services → services}/context/auto-compact-dispatcher.d.ts +0 -0
- /package/dist/{src/services → services}/context/auto-compact-dispatcher.js +0 -0
- /package/dist/{src/services → services}/context/auto-compact-reader.d.ts +0 -0
- /package/dist/{src/services → services}/context/auto-compact-reader.js +0 -0
- /package/dist/{src/services → services}/context/auto-compact-types.d.ts +0 -0
- /package/dist/{src/services → services}/context/auto-compact-types.js +0 -0
- /package/dist/{src/services → services}/context/collector.d.ts +0 -0
- /package/dist/{src/services → services}/context/collector.js +0 -0
- /package/dist/{src/services → services}/context/context-builder.d.ts +0 -0
- /package/dist/{src/services → services}/context/context-builder.js +0 -0
- /package/dist/{src/services → services}/context/context-guard.d.ts +0 -0
- /package/dist/{src/services → services}/context/context-guard.js +0 -0
- /package/dist/{src/services → services}/context/context-schema.js +0 -0
- /package/dist/{src/services → services}/context/doc-retriever.d.ts +0 -0
- /package/dist/{src/services → services}/context/doc-retriever.js +0 -0
- /package/dist/{src/services → services}/context/headroom-client.d.ts +0 -0
- /package/dist/{src/services → services}/context/headroom-client.js +0 -0
- /package/dist/{src/services → services}/context/headroom-fetcher.d.ts +0 -0
- /package/dist/{src/services → services}/context/headroom-fetcher.js +0 -0
- /package/dist/{src/services → services}/context/headroom-prefs.d.ts +0 -0
- /package/dist/{src/services → services}/context/headroom-prefs.js +0 -0
- /package/dist/{src/services → services}/context/index.d.ts +0 -0
- /package/dist/{src/services → services}/context/index.js +0 -0
- /package/dist/{src/services → services}/context/main-session-monitor.d.ts +0 -0
- /package/dist/{src/services → services}/context/main-session-monitor.js +0 -0
- /package/dist/{src/services → services}/context/renderer.d.ts +0 -0
- /package/dist/{src/services → services}/context/renderer.js +0 -0
- /package/dist/{src/services → services}/context/threshold.d.ts +0 -0
- /package/dist/{src/services → services}/context/threshold.js +0 -0
- /package/dist/{src/services → services}/context/tokenizer.d.ts +0 -0
- /package/dist/{src/services → services}/context/tokenizer.js +0 -0
- /package/dist/{src/services → services}/context/types.d.ts +0 -0
- /package/dist/{src/services → services}/context/types.js +0 -0
- /package/dist/{src/services → services}/dashboard/project-dashboard-service.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/batch-counter.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/contract-store.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/contract-store.js +0 -0
- /package/dist/{src/services → services}/dispatch/dispatch-record-writer.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/heartbeat-truncator.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/heartbeat-truncator.js +0 -0
- /package/dist/{src/services → services}/dispatch/leak-detector.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/leak-detector.js +0 -0
- /package/dist/{src/services → services}/dispatch/slice-dag.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/slice-dag.js +0 -0
- /package/dist/{src/services → services}/dispatch/sub-agent-dispatcher.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/sub-agent-dispatcher.js +0 -0
- /package/dist/{src/services → services}/dispatch/test-tool-detection.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/test-tool-detection.js +0 -0
- /package/dist/{src/services → services}/doc/doc-generator.d.ts +0 -0
- /package/dist/{src/services → services}/doc/doc-generator.js +0 -0
- /package/dist/{src/services → services}/evolution/evolution-service.d.ts +0 -0
- /package/dist/{src/services → services}/evolution/evolution-service.js +0 -0
- /package/dist/{src/services → services}/evolution/evolution-store.d.ts +0 -0
- /package/dist/{src/services → services}/evolution/evolution-store.js +0 -0
- /package/dist/{src/services → services}/evolution/evolution-types.d.ts +0 -0
- /package/dist/{src/services → services}/evolution/evolution-types.js +0 -0
- /package/dist/{src/services → services}/evolution/independent-evaluator-runner.d.ts +0 -0
- /package/dist/{src/services → services}/evolution/independent-evaluator-runner.js +0 -0
- /package/dist/{src/services → services}/evolution/regression-skeptic-runner.d.ts +0 -0
- /package/dist/{src/services → services}/evolution/regression-skeptic-runner.js +0 -0
- /package/dist/{src/services → services}/feedback/feedback-promotion-service.d.ts +0 -0
- /package/dist/{src/services → services}/feedback/feedback-promotion-service.js +0 -0
- /package/dist/{src/services → services}/fixture/fixture-capture-service.d.ts +0 -0
- /package/dist/{src/services → services}/fixture/fixture-capture-service.js +0 -0
- /package/dist/{src/services → services}/fixture/fixture-sanitize-service.d.ts +0 -0
- /package/dist/{src/services → services}/fixture/fixture-sanitize-service.js +0 -0
- /package/dist/{src/services → services}/fixture/index.d.ts +0 -0
- /package/dist/{src/services → services}/fixture/index.js +0 -0
- /package/dist/{src/services → services}/fork/fork-sync-state.d.ts +0 -0
- /package/dist/{src/services → services}/fork/fork-sync-state.js +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/fuzzy-match-service.d.ts +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/fuzzy-match-service.js +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/fzf-pick-service.d.ts +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/fzf-pick-service.js +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/types.d.ts +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/types.js +0 -0
- /package/dist/{src/services → services}/handoff/handoff-parser.d.ts +0 -0
- /package/dist/{src/services → services}/handoff/handoff-parser.js +0 -0
- /package/dist/{src/services → services}/handoff/handoff-types.d.ts +0 -0
- /package/dist/{src/services → services}/handoff/handoff-types.js +0 -0
- /package/dist/{src/services → services}/handoff/handoff-writer.d.ts +0 -0
- /package/dist/{src/services → services}/handoff/handoff-writer.js +0 -0
- /package/dist/{src/services → services}/hooks/auto-compact-hook-install.d.ts +0 -0
- /package/dist/{src/services → services}/hooks/auto-compact-hook-install.js +0 -0
- /package/dist/{src/services → services}/hooks/output.d.ts +0 -0
- /package/dist/{src/services → services}/hooks/output.js +0 -0
- /package/dist/{src/services → services}/hooks/presence-marker-detector.d.ts +0 -0
- /package/dist/{src/services → services}/hooks/presence-marker-detector.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/claude-code-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/claude-code-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/codex-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/codex-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/cursor-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/cursor-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/hermes-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/hermes-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/openclaw-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/openclaw-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/trae-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/trae-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/hook-protocol.d.ts +0 -0
- /package/dist/{src/services → services}/ide/hook-protocol.js +0 -0
- /package/dist/{src/services → services}/ide/hook-translator.d.ts +0 -0
- /package/dist/{src/services → services}/ide/hook-translator.js +0 -0
- /package/dist/{src/services → services}/ide/ide-detector.d.ts +0 -0
- /package/dist/{src/services → services}/ide/ide-detector.js +0 -0
- /package/dist/{src/services → services}/ide/ide-registry.d.ts +0 -0
- /package/dist/{src/services → services}/ide/ide-types.js +0 -0
- /package/dist/{src/services → services}/ide/resource-profile.d.ts +0 -0
- /package/dist/{src/services → services}/ide/resource-profile.js +0 -0
- /package/dist/{src/services → services}/ide/shared/atomic-json.d.ts +0 -0
- /package/dist/{src/services → services}/ide/shared/atomic-json.js +0 -0
- /package/dist/{src/services → services}/ide/shared/safe-path.d.ts +0 -0
- /package/dist/{src/services → services}/ide/shared/safe-path.js +0 -0
- /package/dist/{src/services → services}/impact/impact-scan-service.d.ts +0 -0
- /package/dist/{src/services → services}/impact/impact-scan-service.js +0 -0
- /package/dist/{src/services → services}/job/job-event-emitter.d.ts +0 -0
- /package/dist/{src/services → services}/job/job-event-emitter.js +0 -0
- /package/dist/{src/services → services}/job/job-orchestrator.d.ts +0 -0
- /package/dist/{src/services → services}/job/job-orchestrator.js +0 -0
- /package/dist/{src/services → services}/job/job-progress-store.js +0 -0
- /package/dist/{src/services → services}/job/job-rotation.d.ts +0 -0
- /package/dist/{src/services → services}/job/job-rotation.js +0 -0
- /package/dist/{src/services → services}/job/job-state-store.d.ts +0 -0
- /package/dist/{src/services → services}/job/job-state-store.js +0 -0
- /package/dist/{src/services → services}/job/job-types.js +0 -0
- /package/dist/{src/services → services}/job/subagent-job-wrapper.d.ts +0 -0
- /package/dist/{src/services → services}/job/subagent-job-wrapper.js +0 -0
- /package/dist/{src/services → services}/legacy/legacy-detector.d.ts +0 -0
- /package/dist/{src/services → services}/legacy/legacy-detector.js +0 -0
- /package/dist/{src/services → services}/log/log-commands-service.d.ts +0 -0
- /package/dist/{src/services → services}/log/log-commands-service.js +0 -0
- /package/dist/{src/services → services}/log/logger.d.ts +0 -0
- /package/dist/{src/services → services}/log/logger.js +0 -0
- /package/dist/{src/services → services}/log/redact.d.ts +0 -0
- /package/dist/{src/services → services}/log/redact.js +0 -0
- /package/dist/{src/services → services}/loop/evaluator-dispatcher.d.ts +0 -0
- /package/dist/{src/services → services}/loop/evaluator-dispatcher.js +0 -0
- /package/dist/{src/services → services}/loop/loop-bee-relation-service.d.ts +0 -0
- /package/dist/{src/services → services}/loop/loop-bee-relation-service.js +0 -0
- /package/dist/{src/services → services}/loop/loop-bee-relation-store.d.ts +0 -0
- /package/dist/{src/services → services}/loop/loop-bee-relation-store.js +0 -0
- /package/dist/{src/services → services}/loop/loop-bee-relation-types.d.ts +0 -0
- /package/dist/{src/services → services}/loop/loop-bee-relation-types.js +0 -0
- /package/dist/{src/services → services}/loop/loop-release-service.d.ts +0 -0
- /package/dist/{src/services → services}/loop/loop-release-service.js +0 -0
- /package/dist/{src/services → services}/loop/loop-release-store.d.ts +0 -0
- /package/dist/{src/services → services}/loop/loop-release-store.js +0 -0
- /package/dist/{src/services → services}/loop/loop-release-types.d.ts +0 -0
- /package/dist/{src/services → services}/loop/loop-release-types.js +0 -0
- /package/dist/{src/services → services}/loop/monotonic-guard.d.ts +0 -0
- /package/dist/{src/services → services}/loop/monotonic-guard.js +0 -0
- /package/dist/{src/services → services}/loop/monotonic-runner.d.ts +0 -0
- /package/dist/{src/services → services}/loop/monotonic-runner.js +0 -0
- /package/dist/{src/services → services}/loop/run-driver.d.ts +0 -0
- /package/dist/{src/services → services}/loop/run-driver.js +0 -0
- /package/dist/{src/services → services}/loop/spec-service.d.ts +0 -0
- /package/dist/{src/services → services}/loop/spec-service.js +0 -0
- /package/dist/{src/services → services}/memory/llm-reranker.d.ts +0 -0
- /package/dist/{src/services → services}/memory/llm-reranker.js +0 -0
- /package/dist/{src/services → services}/memory/memory-search-service.d.ts +0 -0
- /package/dist/{src/services → services}/memory/memory-search-service.js +0 -0
- /package/dist/{src/services → services}/memory/project-memory-service.d.ts +0 -0
- /package/dist/{src/services → services}/memory/project-memory-service.js +0 -0
- /package/dist/{src/services → services}/migrate-skill-name/migrate.d.ts +0 -0
- /package/dist/{src/services → services}/migrate-skill-name/migrate.js +0 -0
- /package/dist/{src/services → services}/migrate-skill-name/schema.js +0 -0
- /package/dist/{src/services → services}/migration/v2-10-to-v2-11-service.d.ts +0 -0
- /package/dist/{src/services → services}/migration/v2-10-to-v2-11-service.js +0 -0
- /package/dist/{src/services → services}/migration/v2-10-to-v2-11-types.d.ts +0 -0
- /package/dist/{src/services → services}/migration/v2-10-to-v2-11-types.js +0 -0
- /package/dist/{src/services → services}/mode/bypass-tracker.d.ts +0 -0
- /package/dist/{src/services → services}/mode/bypass-tracker.js +0 -0
- /package/dist/{src/services → services}/mode/mode-enforcement.d.ts +0 -0
- /package/dist/{src/services → services}/mode/mode-enforcement.js +0 -0
- /package/dist/{src/services → services}/observability/aggregation.d.ts +0 -0
- /package/dist/{src/services → services}/observability/aggregation.js +0 -0
- /package/dist/{src/services → services}/observability/jsonl-store.d.ts +0 -0
- /package/dist/{src/services → services}/observability/jsonl-store.js +0 -0
- /package/dist/{src/services → services}/observability/observability-service.d.ts +0 -0
- /package/dist/{src/services → services}/observability/observability-service.js +0 -0
- /package/dist/{src/services → services}/observability/report-formatter.d.ts +0 -0
- /package/dist/{src/services → services}/observability/report-formatter.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-archive-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-bridge-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-init-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-propose-from-doctor-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-render-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-scan-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-types.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-types.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-validate-service.d.ts +0 -0
- /package/dist/{src/services → services}/perf/perf-baseline-service.d.ts +0 -0
- /package/dist/{src/services → services}/perf/perf-baseline-service.js +0 -0
- /package/dist/{src/services/recommendations/recommendation-types.js → services/polyrepo/polyrepo-types.js} +0 -0
- /package/dist/{src/services → services}/prd/handoff-auto-regen.d.ts +0 -0
- /package/dist/{src/services → services}/prd/handoff-auto-regen.js +0 -0
- /package/dist/{src/services → services}/prd/handoff-service.d.ts +0 -0
- /package/dist/{src/services → services}/prd/handoff-service.js +0 -0
- /package/dist/{src/services → services}/prd/handoff-types.d.ts +0 -0
- /package/dist/{src/services → services}/prd/handoff-types.js +0 -0
- /package/dist/{src/services → services}/prd/prd-blocks-checker.d.ts +0 -0
- /package/dist/{src/services → services}/prd/prd-blocks-checker.js +0 -0
- /package/dist/{src/services → services}/prd/project-scan-reader.d.ts +0 -0
- /package/dist/{src/services → services}/prd/project-scan-reader.js +0 -0
- /package/dist/{src/services → services}/prd/project-scan-sediment.d.ts +0 -0
- /package/dist/{src/services → services}/prd/project-scan-sediment.js +0 -0
- /package/dist/{src/services → services}/prd/project-scan-types.d.ts +0 -0
- /package/dist/{src/services → services}/prd/project-scan-types.js +0 -0
- /package/dist/{src/services → services}/preferences/preferences-service.d.ts +0 -0
- /package/dist/{src/services → services}/profiles/profile-service.d.ts +0 -0
- /package/dist/{src/services → services}/profiles/profile-service.js +0 -0
- /package/dist/{src/services → services}/progress/progress-service.d.ts +0 -0
- /package/dist/{src/services → services}/progress/progress-service.js +0 -0
- /package/dist/{src/services → services}/proxy/proxy-service.d.ts +0 -0
- /package/dist/{src/services → services}/proxy/proxy-service.js +0 -0
- /package/dist/{src/services → services}/qa/browser-event-logger.d.ts +0 -0
- /package/dist/{src/services → services}/qa/browser-event-logger.js +0 -0
- /package/dist/{src/services → services}/qa/browser-restart-detector.d.ts +0 -0
- /package/dist/{src/services → services}/qa/browser-restart-detector.js +0 -0
- /package/dist/{src/services → services}/qa/browser-reuse-hint.d.ts +0 -0
- /package/dist/{src/services → services}/qa/browser-reuse-hint.js +0 -0
- /package/dist/{src/services → services}/qa/browser-wrapper-service.d.ts +0 -0
- /package/dist/{src/services → services}/qa/browser-wrapper-service.js +0 -0
- /package/dist/{src/services → services}/qa/qa-business-review-state.d.ts +0 -0
- /package/dist/{src/services → services}/qa/qa-business-review-state.js +0 -0
- /package/dist/{src/services → services}/rd/ast-gate.d.ts +0 -0
- /package/dist/{src/services → services}/rd/ast-gate.js +0 -0
- /package/dist/{src/services → services}/rd/impl.d.ts +0 -0
- /package/dist/{src/services → services}/rd/impl.js +0 -0
- /package/dist/{src/services → services}/rd/rd-service.d.ts +0 -0
- /package/dist/{src/services → services}/rd/reviewer-dispatch-policy.d.ts +0 -0
- /package/dist/{src/services → services}/rd/reviewer-dispatch-policy.js +0 -0
- /package/dist/{src/services → services}/rd/standards-diagnostic.d.ts +0 -0
- /package/dist/{src/services → services}/rd/standards-diagnostic.js +0 -0
- /package/dist/{src/services → services}/rd/strategic-stage.d.ts +0 -0
- /package/dist/{src/services → services}/rd/strategic-stage.js +0 -0
- /package/dist/{src/services → services}/rd/strategy.d.ts +0 -0
- /package/dist/{src/services → services}/rd/strategy.js +0 -0
- /package/dist/{src/services → services}/rd/tactical-stage.d.ts +0 -0
- /package/dist/{src/services → services}/rd/tactical-stage.js +0 -0
- /package/dist/{src/services → services}/rd/types.js +0 -0
- /package/dist/{src/services → services}/recommendations/capability-availability.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/capability-availability.js +0 -0
- /package/dist/{src/services → services}/recommendations/capability-map-service.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/capability-map-service.js +0 -0
- /package/dist/{src/services → services}/recommendations/capability-seed-items.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/capability-seed-mappings.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/capability-seed-sources.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/recommendation-service.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/recommendation-service.js +0 -0
- /package/dist/{src/services → services}/recommendations/recommendation-types.d.ts +0 -0
- /package/dist/{src/services/scan/scan-types.js → services/recommendations/recommendation-types.js} +0 -0
- /package/dist/{src/services → services}/recommendations/seed-capability-catalog.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/seed-capability-catalog.js +0 -0
- /package/dist/{src/services → services}/refactor/refactor-service.d.ts +0 -0
- /package/dist/{src/services → services}/refactor/refactor-service.js +0 -0
- /package/dist/{src/services → services}/release/release-state.d.ts +0 -0
- /package/dist/{src/services → services}/release/release-state.js +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-index.d.ts +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-index.js +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-search-service.d.ts +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-search-service.js +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-show.d.ts +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-show.js +0 -0
- /package/dist/{src/services → services}/reviewer/model-family.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/model-family.js +0 -0
- /package/dist/{src/services → services}/reviewer/providers/anthropic.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/providers/anthropic.js +0 -0
- /package/dist/{src/services → services}/reviewer/providers/ollama.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/providers/ollama.js +0 -0
- /package/dist/{src/services → services}/reviewer/providers/openai.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/providers/openai.js +0 -0
- /package/dist/{src/services → services}/reviewer/reviewer-config.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/reviewer-config.js +0 -0
- /package/dist/{src/services → services}/reviewer/reviewer-service.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/reviewer-service.js +0 -0
- /package/dist/{src/services → services}/reviewer/selection-strategies.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/selection-strategies.js +0 -0
- /package/dist/{src/services → services}/role/role-registry.d.ts +0 -0
- /package/dist/{src/services → services}/role/role-registry.js +0 -0
- /package/dist/{src/services/sediment/types.js → services/runtime/vendor-adapter.js} +0 -0
- /package/dist/{src/services → services}/sc/index.d.ts +0 -0
- /package/dist/{src/services → services}/sc/index.js +0 -0
- /package/dist/{src/services → services}/sc/sc-service.d.ts +0 -0
- /package/dist/{src/services → services}/sc/sc-service.js +0 -0
- /package/dist/{src/services → services}/scan/acceptance-coverage-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/api-surface-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/api-surface-service.js +0 -0
- /package/dist/{src/services → services}/scan/archetype-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/diff-scope-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/diff-scope-service.js +0 -0
- /package/dist/{src/services → services}/scan/existing-system-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/file-size-scan.d.ts +0 -0
- /package/dist/{src/services → services}/scan/file-size-scan.js +0 -0
- /package/dist/{src/services → services}/scan/karpathy-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/karpathy-service.js +0 -0
- /package/dist/{src/services → services}/scan/libraries-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/libraries-types.d.ts +0 -0
- /package/dist/{src/services → services}/scan/libraries-types.js +0 -0
- /package/dist/{src/services → services}/scan/orphan-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/orphan-service.js +0 -0
- /package/dist/{src/services/skillhub/types.js → services/scan/scan-types.js} +0 -0
- /package/dist/{src/services → services}/scan/type-sanity-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/type-sanity-service.js +0 -0
- /package/dist/{src/services → services}/security/safe-settings-path.d.ts +0 -0
- /package/dist/{src/services → services}/security/safe-settings-path.js +0 -0
- /package/dist/{src/services → services}/sediment/dispose-confirm.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/dispose-confirm.js +0 -0
- /package/dist/{src/services → services}/sediment/json-schema.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/json-schema.js +0 -0
- /package/dist/{src/services → services}/sediment/manifest-lint.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/manifest-lint.js +0 -0
- /package/dist/{src/services → services}/sediment/pool-paths.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/pool-paths.js +0 -0
- /package/dist/{src/services → services}/sediment/pool-read.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/pool-read.js +0 -0
- /package/dist/{src/services → services}/sediment/pool-rebuild-index.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/pool-rebuild-index.js +0 -0
- /package/dist/{src/services → services}/sediment/pool-write.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/pool-write.js +0 -0
- /package/dist/{src/services → services}/sediment/promotion-gate.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/promotion-gate.js +0 -0
- /package/dist/{src/services → services}/sediment/types.d.ts +0 -0
- /package/dist/{src/services/understand/hybrid-types.js → services/sediment/types.js} +0 -0
- /package/dist/{src/services → services}/session/binding-status-service.d.ts +0 -0
- /package/dist/{src/services → services}/session/binding-status-service.js +0 -0
- /package/dist/{src/services → services}/session/binding-store.d.ts +0 -0
- /package/dist/{src/services → services}/session/binding-store.js +0 -0
- /package/dist/{src/services → services}/session/caller-binding-service.d.ts +0 -0
- /package/dist/{src/services → services}/session/caller-binding-service.js +0 -0
- /package/dist/{src/services → services}/session/caller-id-types.d.ts +0 -0
- /package/dist/{src/services → services}/session/caller-id-types.js +0 -0
- /package/dist/{src/services → services}/session/getSessionDir.d.ts +0 -0
- /package/dist/{src/services → services}/session/getSessionDir.js +0 -0
- /package/dist/{src/services → services}/session/index.d.ts +0 -0
- /package/dist/{src/services → services}/session/index.js +0 -0
- /package/dist/{src/services → services}/session/platform-fallbacks.d.ts +0 -0
- /package/dist/{src/services → services}/session/platform-fallbacks.js +0 -0
- /package/dist/{src/services → services}/session/resolve-caller-id.d.ts +0 -0
- /package/dist/{src/services → services}/session/resolve-caller-id.js +0 -0
- /package/dist/{src/services → services}/session/session-binding-bridge.d.ts +0 -0
- /package/dist/{src/services → services}/session/session-binding-bridge.js +0 -0
- /package/dist/{src/services → services}/session/session-checkpoint-service.d.ts +0 -0
- /package/dist/{src/services → services}/session/session-checkpoint-service.js +0 -0
- /package/dist/{src/services → services}/session/session-manager.d.ts +0 -0
- /package/dist/{src/services → services}/session/session-manager.js +0 -0
- /package/dist/{src/services → services}/session/session-resume-service.d.ts +0 -0
- /package/dist/{src/services → services}/session/session-resume-service.js +0 -0
- /package/dist/{src/services → services}/share/bundle-reader.d.ts +0 -0
- /package/dist/{src/services → services}/share/bundle-reader.js +0 -0
- /package/dist/{src/services → services}/share/bundle-types.d.ts +0 -0
- /package/dist/{src/services → services}/share/bundle-types.js +0 -0
- /package/dist/{src/services → services}/share/bundle-writer.d.ts +0 -0
- /package/dist/{src/services → services}/share/bundle-writer.js +0 -0
- /package/dist/{src/services → services}/share/run-state-contract.d.ts +0 -0
- /package/dist/{src/services → services}/share/run-state-contract.js +0 -0
- /package/dist/{src/services → services}/signal/cancel-handler.d.ts +0 -0
- /package/dist/{src/services → services}/signal/cancel-handler.js +0 -0
- /package/dist/{src/services → services}/skill/resume-detector.d.ts +0 -0
- /package/dist/{src/services → services}/skill/resume-detector.js +0 -0
- /package/dist/{src/services → services}/skill/skill-scheduler.d.ts +0 -0
- /package/dist/{src/services → services}/skill/skill-scheduler.js +0 -0
- /package/dist/{src/services → services}/skillhub/release-diff.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/release-diff.js +0 -0
- /package/dist/{src/services → services}/skillhub/release-export.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/release-export.js +0 -0
- /package/dist/{src/services → services}/skillhub/release-gc-blobs.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/release-gc-blobs.js +0 -0
- /package/dist/{src/services → services}/skillhub/release-import.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/release-import.js +0 -0
- /package/dist/{src/services → services}/skillhub/release-retain.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/release-retain.js +0 -0
- /package/dist/{src/services → services}/skillhub/sqlite-store.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/sqlite-store.js +0 -0
- /package/dist/{src/services → services}/skillhub/tar-runtime.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/tar-runtime.js +0 -0
- /package/dist/{src/services → services}/skillhub/types.d.ts +0 -0
- /package/dist/{src/services/understand/understand-types.js → services/skillhub/types.js} +0 -0
- /package/dist/{src/services → services}/skills/hooks-settings-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/hooks-settings-service.js +0 -0
- /package/dist/{src/services → services}/skills/skill-conformance-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/skill-conformance-service.js +0 -0
- /package/dist/{src/services → services}/skills/skill-presence-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/skill-presence-service.js +0 -0
- /package/dist/{src/services → services}/skills/skill-runbook-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/skill-statusline-renderer.d.ts +0 -0
- /package/dist/{src/services → services}/skills/skill-statusline-renderer.js +0 -0
- /package/dist/{src/services → services}/skills/skill-statusline-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/skill-statusline-service.js +0 -0
- /package/dist/{src/services → services}/skills/statusline-settings-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/statusline-settings-service.js +0 -0
- /package/dist/{src/services → services}/skills/sync-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/sync-service.js +0 -0
- /package/dist/{src/services → services}/slice/calibration-store.d.ts +0 -0
- /package/dist/{src/services → services}/slice/calibration-store.js +0 -0
- /package/dist/{src/services → services}/slice/cross-pass-edge-merger.d.ts +0 -0
- /package/dist/{src/services → services}/slice/cross-pass-edge-merger.js +0 -0
- /package/dist/{src/services → services}/slice/granularity-decider.d.ts +0 -0
- /package/dist/{src/services → services}/slice/granularity-decider.js +0 -0
- /package/dist/{src/services → services}/slice/llm-arbitrator.d.ts +0 -0
- /package/dist/{src/services → services}/slice/llm-arbitrator.js +0 -0
- /package/dist/{src/services → services}/slice/multi-pass-orchestrator.d.ts +0 -0
- /package/dist/{src/services → services}/slice/multi-pass-orchestrator.js +0 -0
- /package/dist/{src/services → services}/slice/schema-router.d.ts +0 -0
- /package/dist/{src/services → services}/slice/schema-router.js +0 -0
- /package/dist/{src/services → services}/slice/slice-archive-service.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-archive-service.js +0 -0
- /package/dist/{src/services → services}/slice/slice-benchmark-service.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-benchmark-service.js +0 -0
- /package/dist/{src/services → services}/slice/slice-check-service.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-check-types.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-check-types.js +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-runners.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-runners.js +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-service.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-service.js +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-types.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-types.js +0 -0
- /package/dist/{src/services → services}/slice/slice-integration.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-integration.js +0 -0
- /package/dist/{src/services → services}/slice/slice-pick-service.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-pick-service.js +0 -0
- /package/dist/{src/services → services}/slice/slice-review-state.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-review-state.js +0 -0
- /package/dist/{src/services → services}/slice/slice-topology-types.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-topology-types.js +0 -0
- /package/dist/{src/services → services}/smoke/smoke-paths-state.d.ts +0 -0
- /package/dist/{src/services → services}/smoke/smoke-paths-state.js +0 -0
- /package/dist/{src/services → services}/sop/gate-enforce-service.d.ts +0 -0
- /package/dist/{src/services → services}/sop/gate-enforce-service.js +0 -0
- /package/dist/{src/services → services}/sop/sop-advance-service.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-advance-service.js +0 -0
- /package/dist/{src/services → services}/sop/sop-check-service.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-check-service.js +0 -0
- /package/dist/{src/services → services}/sop/sop-paths.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-paths.js +0 -0
- /package/dist/{src/services → services}/sop/sop-registry-service.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-registry-service.js +0 -0
- /package/dist/{src/services → services}/sop/sop-service.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-service.js +0 -0
- /package/dist/{src/services → services}/sop/sop-types.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-types.js +0 -0
- /package/dist/{src/services → services}/standards/ide-aware-standards-service.d.ts +0 -0
- /package/dist/{src/services → services}/standards/loop-engineering-lint.d.ts +0 -0
- /package/dist/{src/services → services}/standards/loop-engineering-lint.js +0 -0
- /package/dist/{src/services → services}/standards/loop-engineering-readiness-lint.d.ts +0 -0
- /package/dist/{src/services → services}/standards/loop-engineering-readiness-lint.js +0 -0
- /package/dist/{src/services → services}/standards/migrate-claude-rules-service.d.ts +0 -0
- /package/dist/{src/services → services}/standards/migrate-service.d.ts +0 -0
- /package/dist/{src/services → services}/standards/migrate-service.js +0 -0
- /package/dist/{src/services → services}/standards/project-context.d.ts +0 -0
- /package/dist/{src/services → services}/standards/project-context.js +0 -0
- /package/dist/{src/services → services}/standards/project-standards-service.d.ts +0 -0
- /package/dist/{src/services → services}/tech/tech-service.d.ts +0 -0
- /package/dist/{src/services → services}/tech/tech-service.js +0 -0
- /package/dist/{src/services → services}/test-cache/test-cache-service.d.ts +0 -0
- /package/dist/{src/services → services}/test-cache/test-cache-service.js +0 -0
- /package/dist/{src/services → services}/understand/hybrid-types.d.ts +0 -0
- /package/dist/{src/services → services}/understand/understand-hybrid-service.d.ts +0 -0
- /package/dist/{src/services → services}/understand/understand-scan-service.d.ts +0 -0
- /package/dist/{src/services → services}/understand/understand-types.d.ts +0 -0
- /package/dist/{src/services → services}/upgrade/1x-detector-service.d.ts +0 -0
- /package/dist/{src/services → services}/upgrade/1x-detector-service.js +0 -0
- /package/dist/{src/services → services}/upgrade/gitignore-migrate-service.d.ts +0 -0
- /package/dist/{src/services → services}/upgrade/gitignore-migrate-service.js +0 -0
- /package/dist/{src/services → services}/upgrade/upgrade-service.d.ts +0 -0
- /package/dist/{src/services → services}/verdict/verdict-aggregator.js +0 -0
- /package/dist/{src/services → services}/workflow/artifact-paths.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/artifact-paths.js +0 -0
- /package/dist/{src/services → services}/workflow/autonomous-resume-writer.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/pipeline-verify-service.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/pipeline-verify-service.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-autonomous-resume-helpers.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-autonomous-resume-helpers.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-autonomous-service.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-autonomous-service.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-loader.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-loader.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-skip-service.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-skip-service.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-spec.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-spec.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-state-store.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-state-store.js +0 -0
- /package/dist/{src/services → services}/workspace/claude-settings-template.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/claude-settings-template.js +0 -0
- /package/dist/{src/services → services}/workspace/migrate-1-4-1-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/migrate-1-4-1-service.js +0 -0
- /package/dist/{src/services → services}/workspace/migrate-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/migrate-types.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/migrate-types.js +0 -0
- /package/dist/{src/services → services}/workspace/reconcile-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/reconcile-service.js +0 -0
- /package/dist/{src/services → services}/workspace/reconcile-types.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/reconcile-types.js +0 -0
- /package/dist/{src/services → services}/workspace/sid-naming-guard.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/sid-naming-guard.js +0 -0
- /package/dist/{src/services → services}/workspace/workspace-claude-settings-materializer.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/workspace-claude-settings-materializer.js +0 -0
- /package/dist/{src/services → services}/workspace/workspace-clean-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/workspace-clean-service.js +0 -0
- /package/dist/{src/services → services}/workspace/workspace-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/workspace-state-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/workspace-state-service.js +0 -0
- /package/dist/{src/shared → shared}/format-md-compact.d.ts +0 -0
- /package/dist/{src/shared → shared}/format-md-compact.js +0 -0
- /package/dist/{src/shared → shared}/frontmatter.d.ts +0 -0
- /package/dist/{src/shared → shared}/frontmatter.js +0 -0
- /package/dist/{src/shared → shared}/fs-utils.d.ts +0 -0
- /package/dist/{src/shared → shared}/fs-utils.js +0 -0
- /package/dist/{src/shared → shared}/incrementing-number.d.ts +0 -0
- /package/dist/{src/shared → shared}/incrementing-number.js +0 -0
- /package/dist/{src/shared → shared}/json-schema-mini.d.ts +0 -0
- /package/dist/{src/shared → shared}/json-schema-mini.js +0 -0
- /package/dist/{src/shared → shared}/path-safety.d.ts +0 -0
- /package/dist/{src/shared → shared}/path-safety.js +0 -0
- /package/dist/{src/shared → shared}/path-utils.d.ts +0 -0
- /package/dist/{src/shared → shared}/path-utils.js +0 -0
- /package/dist/{src/shared → shared}/planner-response.d.ts +0 -0
- /package/dist/{src/shared → shared}/planner-response.js +0 -0
- /package/dist/{src/shared → shared}/platform.d.ts +0 -0
- /package/dist/{src/shared → shared}/platform.js +0 -0
- /package/dist/{src/shared → shared}/process.d.ts +0 -0
- /package/dist/{src/shared → shared}/process.js +0 -0
- /package/dist/{src/shared → shared}/stale-policy.d.ts +0 -0
- /package/dist/{src/shared → shared}/stale-policy.js +0 -0
- /package/dist/{src/skills → skills}/peaks-maker/index.d.ts +0 -0
- /package/dist/{src/skills → skills}/peaks-maker/index.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,17 +1,992 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 4.0.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
- peaks-loop-shared@0.0.19
|
|
9
|
+
- peaks-loop-audit-independent@0.0.12
|
|
10
|
+
- peaks-loop-crystallization@0.0.13
|
|
11
|
+
- peaks-loop-doctor@0.0.12
|
|
12
|
+
- peaks-loop-final-review@0.0.12
|
|
13
|
+
|
|
14
|
+
## 4.0.0
|
|
15
|
+
|
|
16
|
+
### Patch Changes
|
|
17
|
+
|
|
18
|
+
- Updated dependencies
|
|
19
|
+
- peaks-loop-shared@0.0.18
|
|
20
|
+
- peaks-loop-audit-independent@0.0.12
|
|
21
|
+
- peaks-loop-crystallization@0.0.13
|
|
22
|
+
- peaks-loop-doctor@0.0.12
|
|
23
|
+
- peaks-loop-final-review@0.0.12
|
|
24
|
+
|
|
25
|
+
## 4.0.0-beta.26 — 2026-07-22 (peaks-loop-shared lockstep)
|
|
26
|
+
|
|
27
|
+
- Monorepo recurrence fix: `scripts/sync-version.mjs` now auto-bumps
|
|
28
|
+
`peaks-loop-shared` by 0.0.1 each time the root version is bumped,
|
|
29
|
+
gated by `PEAKS_AUTO_BUMP_SHARED=1` in the publish workflow's
|
|
30
|
+
`build` step. Without this, the publish workflow's
|
|
31
|
+
`isAlreadyPublished` guard short-circuits the shared subpackage
|
|
32
|
+
re-publish, leaving downstream `peaks -v` to read a stale
|
|
33
|
+
CLI_VERSION from the cached tarball. Tests: pretest/predev
|
|
34
|
+
invocations of sync-version are now no-ops w.r.t. the shared
|
|
35
|
+
version (no ratcheting during local dev loops).
|
|
36
|
+
|
|
37
|
+
## 4.0.0
|
|
38
|
+
|
|
39
|
+
### Patch Changes
|
|
40
|
+
|
|
41
|
+
- Updated dependencies
|
|
42
|
+
- peaks-loop-shared@0.0.18
|
|
43
|
+
- peaks-loop-audit-independent@0.0.12
|
|
44
|
+
- peaks-loop-crystallization@0.0.13
|
|
45
|
+
- peaks-loop-doctor@0.0.12
|
|
46
|
+
- peaks-loop-final-review@0.0.12
|
|
47
|
+
|
|
48
|
+
## 4.0.0
|
|
49
|
+
|
|
50
|
+
### Patch Changes
|
|
51
|
+
|
|
52
|
+
- Updated dependencies
|
|
53
|
+
- peaks-loop-shared@0.0.18
|
|
54
|
+
- peaks-loop-audit-independent@0.0.12
|
|
55
|
+
- peaks-loop-crystallization@0.0.13
|
|
56
|
+
- peaks-loop-doctor@0.0.12
|
|
57
|
+
- peaks-loop-final-review@0.0.12
|
|
58
|
+
|
|
59
|
+
## 4.1.0 (Unreleased)
|
|
60
|
+
|
|
61
|
+
### Added
|
|
62
|
+
|
|
63
|
+
- **Sub-agent memory preflight**: peaks-code orchestrator now
|
|
64
|
+
automatically injects a token-bounded `feedback / layer A` memory
|
|
65
|
+
block from `.peaks/memory/index.json` into every sub-agent's
|
|
66
|
+
system prompt. Defaults to 1.2k token cap (configurable via
|
|
67
|
+
`.peaks/preferences.json::memoryPreflight.maxTokens`); silent
|
|
68
|
+
degradation when the index is missing. No new CLI surface.
|
|
69
|
+
See `docs/superpowers/specs/2026-07-22-orchestrator-memory-preflight-design.md`.
|
|
70
|
+
|
|
71
|
+
## 4.0.0
|
|
72
|
+
|
|
73
|
+
### Patch Changes
|
|
74
|
+
|
|
75
|
+
- Updated dependencies
|
|
76
|
+
- peaks-loop-shared@0.0.18
|
|
77
|
+
- peaks-loop-audit-independent@0.0.12
|
|
78
|
+
- peaks-loop-crystallization@0.0.13
|
|
79
|
+
- peaks-loop-doctor@0.0.12
|
|
80
|
+
- peaks-loop-final-review@0.0.12
|
|
81
|
+
|
|
82
|
+
## 4.0.0
|
|
83
|
+
|
|
84
|
+
### Patch Changes
|
|
85
|
+
|
|
86
|
+
- Updated dependencies
|
|
87
|
+
- peaks-loop-shared@0.0.18
|
|
88
|
+
- peaks-loop-audit-independent@0.0.12
|
|
89
|
+
- peaks-loop-crystallization@0.0.13
|
|
90
|
+
- peaks-loop-doctor@0.0.12
|
|
91
|
+
- peaks-loop-final-review@0.0.12
|
|
92
|
+
|
|
93
|
+
## 4.0.0
|
|
94
|
+
|
|
95
|
+
### Patch Changes
|
|
96
|
+
|
|
97
|
+
- Updated dependencies
|
|
98
|
+
- peaks-loop-shared@0.0.18
|
|
99
|
+
- peaks-loop-audit-independent@0.0.12
|
|
100
|
+
- peaks-loop-crystallization@0.0.13
|
|
101
|
+
- peaks-loop-doctor@0.0.12
|
|
102
|
+
- peaks-loop-final-review@0.0.12
|
|
103
|
+
|
|
104
|
+
## 4.0.0
|
|
105
|
+
|
|
106
|
+
### Patch Changes
|
|
107
|
+
|
|
108
|
+
- Updated dependencies
|
|
109
|
+
- peaks-loop-shared@0.0.18
|
|
110
|
+
- peaks-loop-audit-independent@0.0.12
|
|
111
|
+
- peaks-loop-crystallization@0.0.13
|
|
112
|
+
- peaks-loop-doctor@0.0.12
|
|
113
|
+
- peaks-loop-final-review@0.0.12
|
|
114
|
+
|
|
115
|
+
## 4.0.0
|
|
116
|
+
|
|
117
|
+
### Patch Changes
|
|
118
|
+
|
|
119
|
+
- Updated dependencies
|
|
120
|
+
- peaks-loop-shared@0.0.18
|
|
121
|
+
- peaks-loop-audit-independent@0.0.12
|
|
122
|
+
- peaks-loop-crystallization@0.0.13
|
|
123
|
+
- peaks-loop-doctor@0.0.12
|
|
124
|
+
- peaks-loop-final-review@0.0.12
|
|
125
|
+
|
|
126
|
+
## 4.0.0
|
|
127
|
+
|
|
128
|
+
### Patch Changes
|
|
129
|
+
|
|
130
|
+
- Updated dependencies
|
|
131
|
+
- peaks-loop-shared@0.0.18
|
|
132
|
+
- peaks-loop-audit-independent@0.0.12
|
|
133
|
+
- peaks-loop-crystallization@0.0.13
|
|
134
|
+
- peaks-loop-doctor@0.0.12
|
|
135
|
+
- peaks-loop-final-review@0.0.12
|
|
136
|
+
|
|
137
|
+
## 4.0.0
|
|
138
|
+
|
|
139
|
+
### Patch Changes
|
|
140
|
+
|
|
141
|
+
- Updated dependencies
|
|
142
|
+
- peaks-loop-shared@0.0.18
|
|
143
|
+
- peaks-loop-audit-independent@0.0.12
|
|
144
|
+
- peaks-loop-crystallization@0.0.13
|
|
145
|
+
- peaks-loop-doctor@0.0.12
|
|
146
|
+
- peaks-loop-final-review@0.0.12
|
|
147
|
+
|
|
148
|
+
## 4.0.0
|
|
149
|
+
|
|
150
|
+
### Patch Changes
|
|
151
|
+
|
|
152
|
+
- Updated dependencies
|
|
153
|
+
- peaks-loop-shared@0.0.18
|
|
154
|
+
- peaks-loop-audit-independent@0.0.12
|
|
155
|
+
- peaks-loop-crystallization@0.0.13
|
|
156
|
+
- peaks-loop-doctor@0.0.12
|
|
157
|
+
- peaks-loop-final-review@0.0.12
|
|
158
|
+
|
|
159
|
+
## 4.0.0
|
|
160
|
+
|
|
161
|
+
### Patch Changes
|
|
162
|
+
|
|
163
|
+
- Updated dependencies
|
|
164
|
+
- peaks-loop-shared@0.0.18
|
|
165
|
+
- peaks-loop-audit-independent@0.0.12
|
|
166
|
+
- peaks-loop-crystallization@0.0.13
|
|
167
|
+
- peaks-loop-doctor@0.0.12
|
|
168
|
+
- peaks-loop-final-review@0.0.12
|
|
169
|
+
|
|
170
|
+
## 4.0.0
|
|
171
|
+
|
|
172
|
+
### Patch Changes
|
|
173
|
+
|
|
174
|
+
- Updated dependencies
|
|
175
|
+
- peaks-loop-shared@0.0.18
|
|
176
|
+
- peaks-loop-audit-independent@0.0.12
|
|
177
|
+
- peaks-loop-crystallization@0.0.13
|
|
178
|
+
- peaks-loop-doctor@0.0.12
|
|
179
|
+
- peaks-loop-final-review@0.0.12
|
|
180
|
+
|
|
181
|
+
## 4.0.0
|
|
182
|
+
|
|
183
|
+
### Patch Changes
|
|
184
|
+
|
|
185
|
+
- Updated dependencies
|
|
186
|
+
- peaks-loop-shared@0.0.18
|
|
187
|
+
- peaks-loop-audit-independent@0.0.12
|
|
188
|
+
- peaks-loop-crystallization@0.0.13
|
|
189
|
+
- peaks-loop-doctor@0.0.12
|
|
190
|
+
- peaks-loop-final-review@0.0.12
|
|
191
|
+
|
|
192
|
+
## 4.0.0
|
|
193
|
+
|
|
194
|
+
### Patch Changes
|
|
195
|
+
|
|
196
|
+
- Updated dependencies
|
|
197
|
+
- peaks-loop-shared@0.0.18
|
|
198
|
+
- peaks-loop-audit-independent@0.0.12
|
|
199
|
+
- peaks-loop-crystallization@0.0.13
|
|
200
|
+
- peaks-loop-doctor@0.0.12
|
|
201
|
+
- peaks-loop-final-review@0.0.12
|
|
202
|
+
|
|
203
|
+
## 4.0.0
|
|
204
|
+
|
|
205
|
+
### Patch Changes
|
|
206
|
+
|
|
207
|
+
- Updated dependencies
|
|
208
|
+
- peaks-loop-shared@0.0.18
|
|
209
|
+
- peaks-loop-audit-independent@0.0.12
|
|
210
|
+
- peaks-loop-crystallization@0.0.13
|
|
211
|
+
- peaks-loop-doctor@0.0.12
|
|
212
|
+
- peaks-loop-final-review@0.0.12
|
|
213
|
+
|
|
214
|
+
## 4.0.0
|
|
215
|
+
|
|
216
|
+
### Patch Changes
|
|
217
|
+
|
|
218
|
+
- Updated dependencies
|
|
219
|
+
- peaks-loop-shared@0.0.18
|
|
220
|
+
- peaks-loop-audit-independent@0.0.12
|
|
221
|
+
- peaks-loop-crystallization@0.0.13
|
|
222
|
+
- peaks-loop-doctor@0.0.12
|
|
223
|
+
- peaks-loop-final-review@0.0.12
|
|
224
|
+
|
|
225
|
+
## 4.0.0
|
|
226
|
+
|
|
227
|
+
### Patch Changes
|
|
228
|
+
|
|
229
|
+
- Updated dependencies
|
|
230
|
+
- peaks-loop-shared@0.0.18
|
|
231
|
+
- peaks-loop-audit-independent@0.0.12
|
|
232
|
+
- peaks-loop-crystallization@0.0.13
|
|
233
|
+
- peaks-loop-doctor@0.0.12
|
|
234
|
+
- peaks-loop-final-review@0.0.12
|
|
235
|
+
|
|
236
|
+
## 4.0.0
|
|
237
|
+
|
|
238
|
+
### Patch Changes
|
|
239
|
+
|
|
240
|
+
- Updated dependencies
|
|
241
|
+
- peaks-loop-shared@0.0.18
|
|
242
|
+
- peaks-loop-audit-independent@0.0.12
|
|
243
|
+
- peaks-loop-crystallization@0.0.13
|
|
244
|
+
- peaks-loop-doctor@0.0.12
|
|
245
|
+
- peaks-loop-final-review@0.0.12
|
|
246
|
+
|
|
247
|
+
## 4.0.0
|
|
248
|
+
|
|
249
|
+
### Patch Changes
|
|
250
|
+
|
|
251
|
+
- Updated dependencies
|
|
252
|
+
- peaks-loop-shared@0.0.18
|
|
253
|
+
- peaks-loop-audit-independent@0.0.12
|
|
254
|
+
- peaks-loop-crystallization@0.0.13
|
|
255
|
+
- peaks-loop-doctor@0.0.12
|
|
256
|
+
- peaks-loop-final-review@0.0.12
|
|
257
|
+
|
|
258
|
+
## 4.0.0
|
|
259
|
+
|
|
260
|
+
### Patch Changes
|
|
261
|
+
|
|
262
|
+
- Updated dependencies
|
|
263
|
+
- peaks-loop-shared@0.0.18
|
|
264
|
+
- peaks-loop-audit-independent@0.0.12
|
|
265
|
+
- peaks-loop-crystallization@0.0.13
|
|
266
|
+
- peaks-loop-doctor@0.0.12
|
|
267
|
+
- peaks-loop-final-review@0.0.12
|
|
268
|
+
|
|
269
|
+
## 4.0.0
|
|
270
|
+
|
|
271
|
+
### Patch Changes
|
|
272
|
+
|
|
273
|
+
- Updated dependencies
|
|
274
|
+
- peaks-loop-shared@0.0.18
|
|
275
|
+
- peaks-loop-audit-independent@0.0.12
|
|
276
|
+
- peaks-loop-crystallization@0.0.13
|
|
277
|
+
- peaks-loop-doctor@0.0.12
|
|
278
|
+
- peaks-loop-final-review@0.0.12
|
|
279
|
+
|
|
280
|
+
## 4.0.0
|
|
281
|
+
|
|
282
|
+
### Patch Changes
|
|
283
|
+
|
|
284
|
+
- Updated dependencies
|
|
285
|
+
- peaks-loop-shared@0.0.15
|
|
286
|
+
- peaks-loop-audit-independent@0.0.11
|
|
287
|
+
- peaks-loop-crystallization@0.0.12
|
|
288
|
+
- peaks-loop-doctor@0.0.11
|
|
289
|
+
- peaks-loop-final-review@0.0.11
|
|
290
|
+
|
|
291
|
+
## 4.0.0
|
|
292
|
+
|
|
293
|
+
### Patch Changes
|
|
294
|
+
|
|
295
|
+
- Updated dependencies
|
|
296
|
+
- peaks-loop-shared@0.0.15
|
|
297
|
+
- peaks-loop-audit-independent@0.0.11
|
|
298
|
+
- peaks-loop-crystallization@0.0.12
|
|
299
|
+
- peaks-loop-doctor@0.0.11
|
|
300
|
+
- peaks-loop-final-review@0.0.11
|
|
301
|
+
|
|
302
|
+
## 4.0.0
|
|
303
|
+
|
|
304
|
+
### Patch Changes
|
|
305
|
+
|
|
306
|
+
- Updated dependencies
|
|
307
|
+
- peaks-loop-shared@0.0.15
|
|
308
|
+
- peaks-loop-audit-independent@0.0.11
|
|
309
|
+
- peaks-loop-crystallization@0.0.12
|
|
310
|
+
- peaks-loop-doctor@0.0.11
|
|
311
|
+
- peaks-loop-final-review@0.0.11
|
|
312
|
+
|
|
313
|
+
## 4.0.0-beta.21 — 2026-07-22 (ice-cola surface-check fixes, republish)
|
|
314
|
+
|
|
315
|
+
This release is the **republish** after the accidental 4.0.2
|
|
316
|
+
publish earlier on 2026-07-22. The 4.0.2 manifest is being
|
|
317
|
+
unpublished (`npm unpublish --force`, within 72h window). The
|
|
318
|
+
intended release is `4.0.0-beta.21`, the version that was
|
|
319
|
+
manually pinned but the publish workflow's `pnpm exec changeset
|
|
320
|
+
version` step overrode it to `4.0.2` due to a pending
|
|
321
|
+
`.changeset/*.md` in the tagged commit.
|
|
322
|
+
|
|
323
|
+
### Bug fixes
|
|
324
|
+
|
|
325
|
+
- **standardsMissing UX (`fix(standards)`)** — `peaks workspace init`
|
|
326
|
+
previously reported `standardsMissing.missing: true` with the
|
|
327
|
+
remediation text "no project-local standards found" whenever the
|
|
328
|
+
language overlay was empty, even when common was clearly populated
|
|
329
|
+
(ice-cola shape: common/\*.md + typescript overlay populated, but
|
|
330
|
+
no javascript/ dir). The detector now distinguishes three states
|
|
331
|
+
(`complete` / `common-missing` / `language-missing`) and the
|
|
332
|
+
remediation text calls out the precise failing component.
|
|
333
|
+
|
|
334
|
+
- **`peaks statusline` default action (`fix(statusline)`)** — `peaks
|
|
335
|
+
statusline` (no subcommand) was documented as "Run with no
|
|
336
|
+
subcommand to render" but commander was printing usage instead of
|
|
337
|
+
dispatching to the hidden `render` subcommand. The fix attaches
|
|
338
|
+
a default `.action(...)` on the parent `statusline` command that
|
|
339
|
+
delegates to a public `runDefaultStatuslineRender` body, and adds
|
|
340
|
+
`--project <path>` to the parent so the default path inherits the
|
|
341
|
+
project label.
|
|
342
|
+
|
|
343
|
+
- **release-pack test version pinning (`fix(release-tests)`)** —
|
|
344
|
+
five `tests/unit/release/*.test.ts` files hard-coded `'4.0.0-beta.17'`
|
|
345
|
+
and `'0.0.4'` literals. Root bumping from 4.0.0-beta.17 to
|
|
346
|
+
4.0.0-beta.20 made three tests fail immediately, demonstrating the
|
|
347
|
+
tests were carrying version knowledge the production code does not.
|
|
348
|
+
Expectations now derive from the on-disk `package.json` instead,
|
|
349
|
+
so future version bumps are a no-op for the suite.
|
|
350
|
+
|
|
351
|
+
- **`peaks preferences` unknown-key error (`fix(preferences)`)** —
|
|
352
|
+
the prior error was `PREFERENCES_KEY_UNKNOWN: <key>` which forced
|
|
353
|
+
the operator to look up valid keys elsewhere. All three sites
|
|
354
|
+
(`get` / `set` / `reset`) now throw via a shared `unknownKeyError`
|
|
355
|
+
helper that includes the sorted `ALLOWED_KEYS_LIST` inline.
|
|
356
|
+
|
|
357
|
+
### Chore
|
|
358
|
+
|
|
359
|
+
- **`chore(deps)`** — Migrate `onlyBuiltDependencies: [better-sqlite3]`
|
|
360
|
+
out of `package.json#pnpm` (no longer read by pnpm 10.11+) into
|
|
361
|
+
`.npmrc` as the canonical pnpm config key. Silences the per-package
|
|
362
|
+
`WARN The "pnpm" field in package.json is no longer read by pnpm`
|
|
363
|
+
log line without changing install behavior.
|
|
364
|
+
|
|
365
|
+
### CI
|
|
366
|
+
|
|
367
|
+
- **`ci(publish)`** — Add `workflow_dispatch` input
|
|
368
|
+
`skip_changeset_version` to `.github/workflows/publish.yml`. When
|
|
369
|
+
set, the conditional `pnpm exec changeset version` step is
|
|
370
|
+
skipped, so manual version pins in `package.json` survive the
|
|
371
|
+
registry-repair release path.
|
|
372
|
+
|
|
373
|
+
- **`ci(unpublish)`** — One-shot `unpublish-4-0-2` workflow that
|
|
374
|
+
uses Trusted Publishing + OIDC to remove peaks-loop@4.0.2 + 8
|
|
375
|
+
subpackages. Triggered by `gh workflow run` with
|
|
376
|
+
`confirm_destructive=yes-i-am-sure`. Retired (kept for audit)
|
|
377
|
+
once the unpublish completes (npm 72h propagation).
|
|
378
|
+
|
|
379
|
+
### Validation
|
|
380
|
+
|
|
381
|
+
- `vitest tests/unit/standards/missing-standards-detector.test.ts` — 18/18
|
|
382
|
+
- `vitest tests/unit/cli/commands/statusline-default-render.test.ts` — 3/3
|
|
383
|
+
- `vitest tests/unit/release` — 20/20
|
|
384
|
+
- `vitest tests/integration/preferences-cli.test.ts` — 5/5
|
|
385
|
+
- `PEAKS_DRY_RUN=1 node scripts/release-pack.mjs` — 9/9 packages, zero WARN
|
|
386
|
+
|
|
387
|
+
## 4.0.0-beta.17
|
|
388
|
+
|
|
389
|
+
### Patch Changes
|
|
390
|
+
|
|
391
|
+
- Repair registry install: `npm i -g peaks-loop` previously failed with
|
|
392
|
+
`EUNSUPPORTEDPROTOCOL / workspace:*` because the publish workflow
|
|
393
|
+
called `npm publish` on each workspace directory directly, which
|
|
394
|
+
serialized the manifest verbatim and leaked the pnpm-only
|
|
395
|
+
`workspace:*` protocol into the published tarballs. The new
|
|
396
|
+
`scripts/release-pack.mjs` packs each workspace package with
|
|
397
|
+
`pnpm pack` (which rewrites `workspace:*` to exact semver pins) and
|
|
398
|
+
then publishes the resulting tarball via `npm publish <tarball>` so
|
|
399
|
+
npm 11+ OIDC Trusted Publishing remains in effect.
|
|
400
|
+
|
|
401
|
+
Bumped versions: `peaks-loop` 4.0.0-beta.16 → 4.0.0-beta.17; all
|
|
402
|
+
eight subpackages 0.0.3 → 0.0.4. The publish workflow's changeset
|
|
403
|
+
step is now conditional on detected `.changeset/*.md` files so the
|
|
404
|
+
registry-repair release keeps its manually-pinned versions, and
|
|
405
|
+
future releases still pick up automated `changeset version` bumps.
|
|
406
|
+
|
|
407
|
+
- per-package OIDC Trusted Publisher entries still need to be added
|
|
408
|
+
once on npmjs.com (one-time UI step per package).
|
|
409
|
+
- the install smoke verifies the registry tarball surface: bin shim,
|
|
410
|
+
package layout, postinstall, and registry metadata. `peaks
|
|
411
|
+
--version`/`--help` may fail at runtime until
|
|
412
|
+
`peaks-loop-crystallization` declares `zod` as a runtime
|
|
413
|
+
dependency (a separate source bug, out of scope for this repair).
|
|
414
|
+
|
|
415
|
+
## 4.0.0
|
|
416
|
+
|
|
417
|
+
### Patch Changes
|
|
418
|
+
|
|
419
|
+
- Updated dependencies
|
|
420
|
+
- peaks-loop-shared@0.0.5
|
|
421
|
+
- peaks-loop-audit-independent@0.0.5
|
|
422
|
+
- peaks-loop-crystallization@0.0.5
|
|
423
|
+
- peaks-loop-doctor@0.0.5
|
|
424
|
+
- peaks-loop-final-review@0.0.5
|
|
425
|
+
|
|
426
|
+
## 4.0.0
|
|
427
|
+
|
|
428
|
+
### Patch Changes
|
|
429
|
+
|
|
430
|
+
- Updated dependencies
|
|
431
|
+
- peaks-loop-shared@0.0.5
|
|
432
|
+
- peaks-loop-audit-independent@0.0.5
|
|
433
|
+
- peaks-loop-crystallization@0.0.5
|
|
434
|
+
- peaks-loop-doctor@0.0.5
|
|
435
|
+
- peaks-loop-final-review@0.0.5
|
|
436
|
+
|
|
437
|
+
## 4.0.0
|
|
438
|
+
|
|
439
|
+
### Minor Changes
|
|
440
|
+
|
|
441
|
+
- 5d01343: Monorepo extraction: peaks-loop 4.0.0-beta.15 ships the new pnpm
|
|
442
|
+
workspace shell with 6 independent packages extracted from the main
|
|
443
|
+
repo as Tier-A zero/low-coupling domains:
|
|
444
|
+
|
|
445
|
+
- peaks-loop-shared (4 utils: fs / paths / result / version)
|
|
446
|
+
- peaks-loop-mut (mutation testing + ECC cache)
|
|
447
|
+
- peaks-loop-doctor (project health check)
|
|
448
|
+
- peaks-loop-crystallization (crystallization pipeline)
|
|
449
|
+
- peaks-loop-final-review (4-dim business review)
|
|
450
|
+
- peaks-loop-audit-independent (security + perf audit)
|
|
451
|
+
|
|
452
|
+
Each subpackage has its own typecheck / build / vitest pipeline; they
|
|
453
|
+
are wired back into the main peaks-loop CLI via workspace:_ protocol.
|
|
454
|
+
Trusted Publishing (OIDC) is wired via .github/workflows/publish.yml
|
|
455
|
+
on push tags v_._._ — no NPM_TOKEN required.
|
|
456
|
+
|
|
457
|
+
Also:
|
|
458
|
+
|
|
459
|
+
- D21: peaks sub-agent finalize command (LLM-side completion signal
|
|
460
|
+
to mark dispatch records done/failed/cancelled; without it records
|
|
461
|
+
would stay queued forever).
|
|
462
|
+
- Trusted Publishing via OIDC — npmjs.com trusted publisher
|
|
463
|
+
configured; npm token removed from ~/.npmrc.
|
|
464
|
+
|
|
465
|
+
### Patch Changes
|
|
466
|
+
|
|
467
|
+
- Updated dependencies [5d01343]
|
|
468
|
+
- peaks-loop-shared@0.1.0
|
|
469
|
+
- peaks-loop-mut@0.1.0
|
|
470
|
+
- peaks-loop-doctor@0.1.0
|
|
471
|
+
- peaks-loop-crystallization@0.1.0
|
|
472
|
+
- peaks-loop-final-review@0.1.0
|
|
473
|
+
- peaks-loop-audit-independent@0.1.0
|
|
474
|
+
|
|
3
475
|
## [Unreleased]
|
|
4
476
|
|
|
477
|
+
## 4.0.0-beta.14 — 2026-07-16
|
|
478
|
+
|
|
479
|
+
### Status: RELEASED (D-019: copy-templates.mjs + package.json files[])
|
|
480
|
+
|
|
481
|
+
> **This release fixes D-019 (full end-to-end)**:
|
|
482
|
+
>
|
|
483
|
+
> 1. `scripts/copy-templates.mjs` now copies
|
|
484
|
+
> `src/services/skillhub/migrations/*.sql` into `dist/services/skillhub/migrations/`.
|
|
485
|
+
> 2. `package.json` `"files"` whitelist now includes `dist/**/*.sql`
|
|
486
|
+
> (previously the whitelist was `dist/**/*.js | .d.ts | .md` only,
|
|
487
|
+
> so the migrations were filtered out of the npm tarball even
|
|
488
|
+
> after being copied to `dist/`).
|
|
489
|
+
>
|
|
490
|
+
> Without this fix, the published `peaks-loop` tarball shipped without
|
|
491
|
+
> the SkillHub SQLite schema, breaking any downstream consumer's first
|
|
492
|
+
> `peaks skill sediment <verb>` with `no such table: bee_release`.
|
|
493
|
+
>
|
|
494
|
+
> **Verdict**: `pnpm build` copies 6 migrations; tarball includes them.
|
|
495
|
+
> In-process vitest tests were always green (they use tsx + source tree
|
|
496
|
+
> directly, not `dist/`), so no test count change. Combined with
|
|
497
|
+
> 4.0.0-beta.13's D-018 path fix, the published tarball is now
|
|
498
|
+
> correct end-to-end.
|
|
499
|
+
|
|
500
|
+
## 4.0.0-beta.13 — 2026-07-16
|
|
501
|
+
|
|
502
|
+
### Status: RELEASED (D-018: state.db path relocation)
|
|
503
|
+
|
|
504
|
+
> **This release fixes the SQLite `state.db` location** to match the
|
|
505
|
+
> original peaks-loop design contract: `PEAKS_HOME/.peaks/skills/state.db`
|
|
506
|
+
> (PEAKS_HOME defaults to `~/.peaks`). Previously, the code resolved
|
|
507
|
+
> `home` to `process.cwd()` when invoked from a project root, producing
|
|
508
|
+
> `<project>/.peaks/state.db` — wrong location for loop engineering
|
|
509
|
+
>
|
|
510
|
+
> - bee sediment data.
|
|
511
|
+
>
|
|
512
|
+
> **Fix**: `src/cli/commands/sediment-commands.ts:664-665` now uses
|
|
513
|
+
> `peaksHome()` from `src/services/sop/sop-paths.ts:29` (which honors
|
|
514
|
+
> `PEAKS_HOME` override for test isolation). The downstream
|
|
515
|
+
> `resolveStateDbPath({ home })` (in `src/services/sediment/pool-paths.ts:15`)
|
|
516
|
+
> already correctly returned `{home}/.peaks/skills/state.db`; only the
|
|
517
|
+
> `home` resolution was broken.
|
|
518
|
+
>
|
|
519
|
+
> **Side bug found but out of scope**: `src/services/skillhub/migrations/*.sql`
|
|
520
|
+
> is not copied to `dist/` by `scripts/copy-templates.mjs`. This is a
|
|
521
|
+
> pre-existing build-config issue separate from D-018. Tracked as
|
|
522
|
+
> follow-up; tests still pass because the tests use vitest + tsx
|
|
523
|
+
> (which sees the source tree directly), but the published
|
|
524
|
+
> `peaks-loop@4.0.0-beta.13` will hit `no such table: bee_release` until
|
|
525
|
+
> a D-019 follow-up adds `.sql` to the copy-templates extensions.
|
|
526
|
+
>
|
|
527
|
+
> **Verdict**: 27/27 AC PASS (beta.12 verdict preserved; D-018 is
|
|
528
|
+
> architecture fix, no AC change). Old `<peaks-loop>/.peaks/state.db`
|
|
529
|
+
> discarded (beta phase, single user).
|
|
530
|
+
|
|
531
|
+
## 4.0.0-beta.12 — 2026-07-16
|
|
532
|
+
|
|
533
|
+
### Status: RELEASED (follow-up to `4.0.0-beta.11`; D-013 wrapper exit-code fix)
|
|
534
|
+
|
|
535
|
+
> \*\*This CHANGELOG entry documents the D-013 follow-up release.
|
|
536
|
+
> Same source tree as `4.0.0-beta.11`; pure fix for the wrapper
|
|
537
|
+
> exit-code bug that previously caused `peaks <unknown>` and
|
|
538
|
+
> `peaks <unknown> --help` to exit 0 with the help banner.
|
|
539
|
+
>
|
|
540
|
+
> **Verdict**: All 4 regression paths now exit 1 with a
|
|
541
|
+
> `COMMAND_NOT_FOUND` JSON envelope. ice-cola baseline 27/27 PASS
|
|
542
|
+
> (AC3.9/AC3.10 now functionally correct).
|
|
543
|
+
|
|
544
|
+
> \*\*This CHANGELOG entry documents the SHIPPED 4.0.0-beta.11.
|
|
545
|
+
> It is the post-implementation release of the 4.0.0-beta.10 contract
|
|
546
|
+
> documented at `docs/release/4.0.0-beta.10.md` (runbook filename
|
|
547
|
+
> preserved for cross-reference stability).
|
|
548
|
+
>
|
|
549
|
+
> The 3 slices (del-minimax-worker, hide-role-skills, on-demand-ecc)
|
|
550
|
+
> all landed PASS in this branch — see `peaks workflow verify-pipeline
|
|
551
|
+
--rid 2026-07-15-cli-surface-cleanup` and the Slice 1/2/3 sediment
|
|
552
|
+
> memories in `.peaks/memory/`.
|
|
553
|
+
>
|
|
554
|
+
> **Version bump rationale** (D-016): 4.0.0-beta.10 was the pre-impl
|
|
555
|
+
> contract name; 4.0.0-beta.11 is the actual release of that contract.
|
|
556
|
+
> One-line summary: **"CLI surface cleanup + on-demand ECC"**.
|
|
557
|
+
>
|
|
558
|
+
> **Verdict**: 10/12 AC PASS + 2 PASS-WITH-DEFERRED (D-013 wrapper
|
|
559
|
+
> exit-code bug, separate follow-up slice after publish).
|
|
560
|
+
> Ice-cola baseline gate: 27/27 AC functionally pass.
|
|
561
|
+
|
|
562
|
+
### Removed — `peaks minimax-worker` (Slice 1)
|
|
563
|
+
|
|
564
|
+
- **`peaks minimax-worker` CLI removed** — historical MiniMax
|
|
565
|
+
provider integration. `peaks minimax-worker --help` now exits
|
|
566
|
+
non-zero with `COMMAND_NOT_FOUND`.
|
|
567
|
+
- **`peaks worker minimax` CLI removed** — same module.
|
|
568
|
+
- **`peaks config provider minimax *` subtree removed** —
|
|
569
|
+
`peaks config provider minimax set --help` exits non-zero.
|
|
570
|
+
- **6 source files deleted**:
|
|
571
|
+
- `src/cli/commands/worker-commands.ts`
|
|
572
|
+
- `src/services/providers/minimax-provider-service.ts`
|
|
573
|
+
- `src/services/providers/minimax-worker-service.ts`
|
|
574
|
+
- `src/services/config/provider-service.ts` (entire file; 100% MiniMax)
|
|
575
|
+
- `tests/unit/minimax-worker-service.test.ts`
|
|
576
|
+
- `tests/unit/minimax-provider-service.test.ts`
|
|
577
|
+
- **~21 source files modified** (drop imports, drop function bodies,
|
|
578
|
+
drop registrations, replace `'minimax-2.7'` literal with
|
|
579
|
+
`'claude-opus-4-7'` in 5 files).
|
|
580
|
+
- **~8 test files modified** (drop MiniMax cases; replace literal in 3).
|
|
581
|
+
- **4 openspec files updated** (1-line wording fixes).
|
|
582
|
+
- **Net security improvement**: smaller secret-handling surface
|
|
583
|
+
(5 MiniMax functions removed).
|
|
584
|
+
|
|
585
|
+
### Changed — 10 role-skill CLI commands hidden (Slice 2)
|
|
586
|
+
|
|
587
|
+
- **10 top-level role-skill CLI commands** now hidden from `peaks --help`
|
|
588
|
+
via `Commander.hidden()`. Still invokable for internal
|
|
589
|
+
`peaks sub-agent dispatch --role <role>` paths. Final canonical
|
|
590
|
+
list (per QA grep audit):
|
|
591
|
+
- `peaks prd`
|
|
592
|
+
- `peaks qa`
|
|
593
|
+
- `peaks sc`
|
|
594
|
+
- `peaks audit`
|
|
595
|
+
- `peaks code-review`
|
|
596
|
+
- `peaks perf-audit`
|
|
597
|
+
- `peaks security-audit`
|
|
598
|
+
- `peaks upgrade`
|
|
599
|
+
- `peaks agent`
|
|
600
|
+
- `peaks code`
|
|
601
|
+
- **`peaks skill list`** now excludes skills with
|
|
602
|
+
`visibility: internal` frontmatter. Use `--include-internal` to opt in.
|
|
603
|
+
- **`peaks skill search`** accepts `--include-internal` flag.
|
|
604
|
+
- **8 SKILL.md files** updated to add/rename `visibility: internal`:
|
|
605
|
+
`peaks-prd`, `peaks-qa`, `peaks-rd`, `peaks-sc`, `peaks-ui`,
|
|
606
|
+
`peaks-txt`, `peaks-final-review`, `peaks-perf-audit`,
|
|
607
|
+
`peaks-security-audit`.
|
|
608
|
+
- **Integration test rewritten**:
|
|
609
|
+
`tests/integration/skill-search-cli.test.ts:72-79` now asserts
|
|
610
|
+
the new `visibility:` frontmatter field instead of legacy
|
|
611
|
+
`userInvocable`.
|
|
612
|
+
|
|
613
|
+
### Added — `peaks ecc install|status|ls|show` (Slice 3)
|
|
614
|
+
|
|
615
|
+
> **PIVOT vs initial design**: Originally Slice 3 was supposed to
|
|
616
|
+
> spawn `<cached>/ecc agent run <name> --json` as a subprocess.
|
|
617
|
+
> RD sub-agent triggered **Gate S3-0**: affaan-m/everything-claude-code
|
|
618
|
+
> has no `ecc` binary; its real structure is `agents/*.md` flat
|
|
619
|
+
>
|
|
620
|
+
> - SKILL.md descriptors. User chose Option B — drop the subprocess
|
|
621
|
+
> model entirely.
|
|
622
|
+
|
|
623
|
+
- **`peaks ecc install`** — downloads affaan-m/everything-claude-code
|
|
624
|
+
from GitHub releases to `~/.peaks/cache/ecc-<sha>/`. Selective
|
|
625
|
+
tarball extraction: ONLY `agents/` subtree (skip `rules/`,
|
|
626
|
+
`commands/`, `settings/`, `docs/`, `README.md`).
|
|
627
|
+
- **`peaks ecc status`** — reads cache manifest, reports version + sha
|
|
628
|
+
- agent count.
|
|
629
|
+
- **`peaks ecc ls`** — lists cached agents by parsing `agents/*.md`
|
|
630
|
+
frontmatter.
|
|
631
|
+
- **`peaks ecc show <name>`** — outputs the agent's SKILL.md body
|
|
632
|
+
to stdout. LLM-side consumers (Skill-first path) read this output
|
|
633
|
+
to apply the agent's instructions.
|
|
634
|
+
- **3 source files deleted** (with Slice 1):
|
|
635
|
+
- `src/cli/commands/agent-commands.ts` (the old `peaks agent run/list`)
|
|
636
|
+
- `src/services/agent/ecc-agent-service.ts` (the spawn orchestrator)
|
|
637
|
+
- `tests/unit/services/agent/ecc-agent-service.test.ts`
|
|
638
|
+
- **3 new source files**:
|
|
639
|
+
- `src/services/agent/ecc-cache-service.ts` — pure-IO cache module
|
|
640
|
+
(`downloadToCache`, `readCacheManifest`, `listCachedAgents`,
|
|
641
|
+
`readAgentSkill`, `cleanupStaleCache`)
|
|
642
|
+
- `src/cli/commands/ecc-commands.ts` — 4 subcommands
|
|
643
|
+
- `tests/unit/agent/ecc-cache-service.test.ts`
|
|
644
|
+
- **Dead-probes removed**:
|
|
645
|
+
- `npx ecc --version` probe (was: never worked; affaan-m/ECC not on npm)
|
|
646
|
+
- `npx ecc-agentshield --version` probe in
|
|
647
|
+
`src/services/audit/static-service.ts:104` (parallel fix)
|
|
648
|
+
- **7-day cache TTL** via `bootstrapLogger.applyRetention` sweep
|
|
649
|
+
(wired at `src/cli/program.ts:121`). NOT via
|
|
650
|
+
`peaks doctor --cleanup-stale` (which is bound to `dropStale()`
|
|
651
|
+
for the binding store).
|
|
652
|
+
|
|
653
|
+
### Removed — `peaks agent run` and `peaks agent list`
|
|
654
|
+
|
|
655
|
+
- **`peaks agent run <name>` exits non-zero with `COMMAND_NOT_FOUND`**.
|
|
656
|
+
- **`peaks agent list` exits non-zero with `COMMAND_NOT_FOUND`**.
|
|
657
|
+
- **No replacement CLI** — LLM-side consumers use
|
|
658
|
+
`peaks ecc show <name>` or read `<cache>/agents/<name>.md` directly.
|
|
659
|
+
|
|
660
|
+
### Net security / performance impact
|
|
661
|
+
|
|
662
|
+
- **Security**: 0 subprocess attack surface (was: 1 per call in beta.9);
|
|
663
|
+
smaller secret-handling surface (5 MiniMax functions removed).
|
|
664
|
+
- **Performance**: cache-dir probe is pure read (<15ms vs ~500ms
|
|
665
|
+
for the npm-registry probe in beta.9); selective tarball extraction
|
|
666
|
+
saves ~95% disk footprint.
|
|
667
|
+
|
|
668
|
+
### Pre-implementation gate
|
|
669
|
+
|
|
670
|
+
`peaks workflow verify-pipeline --rid 2026-07-15-cli-surface-cleanup`
|
|
671
|
+
returns `ok: true, complete: true, violations: []` (9/9 gates PASS).
|
|
672
|
+
This CHANGELOG entry is the contract; the actual implementation
|
|
673
|
+
follows the runbook in `docs/release/4.0.0-beta.10.md`.
|
|
674
|
+
|
|
675
|
+
### Acceptance criteria
|
|
676
|
+
|
|
677
|
+
27 ACs total: 7 (Slice 1) + 8 (Slice 2) + 11 (Slice 3 redesign + 1).
|
|
678
|
+
Full list in `docs/release/4.0.0-beta.10.md` §Acceptance criteria.
|
|
679
|
+
|
|
680
|
+
---
|
|
681
|
+
|
|
682
|
+
## 4.0.0-beta.9 — 2026-07-15
|
|
683
|
+
|
|
684
|
+
### Fixed — `npm install peaks-loop` runtime path layout
|
|
685
|
+
|
|
686
|
+
`4.0.0-beta.8` shipped a tarball where `bin/peaks.js` imported
|
|
687
|
+
`'../dist/src/cli/index.js'`, but tsc actually emitted the runtime
|
|
688
|
+
files at `dist/cli/index.js` (rootDir walked past `src/` because of
|
|
689
|
+
cross-folder imports like `src/services/hooks/output.ts → ../../cli/`).
|
|
690
|
+
Downstream `npm i -g peaks-loop` then `peaks -v` failed with
|
|
691
|
+
`ERR_MODULE_NOT_FOUND: .../dist/src/cli/index.js`. The 4 audit/business
|
|
692
|
+
templates also failed to enter the tarball because `package.json#files[]`
|
|
693
|
+
whitelisted `dist/src/**/*.js` / `.d.ts` but never `.md`.
|
|
694
|
+
|
|
695
|
+
This release:
|
|
696
|
+
|
|
697
|
+
- `bin/peaks.js` import: `'../dist/src/cli/index.js'` → `'../dist/cli/index.js'`.
|
|
698
|
+
- `scripts/copy-templates.mjs` dest: `dist/src/services/...` →
|
|
699
|
+
`dist/services/...` so the bundled templates land where the runtime
|
|
700
|
+
`import.meta.url` resolver expects them.
|
|
701
|
+
- `package.json#files[]`: prefixes shifted from `dist/src/` to `dist/`,
|
|
702
|
+
plus a new `dist/**/*.md` entry so the 4 templates bundled by
|
|
703
|
+
`copy-templates.mjs` actually ship.
|
|
704
|
+
- `tsconfig.build.json` (introduced in beta.8) confirmed correct — it
|
|
705
|
+
is the build-time emit that controls the dist tree shape.
|
|
706
|
+
|
|
707
|
+
End-to-end smoke after the fix (local):
|
|
708
|
+
|
|
709
|
+
```
|
|
710
|
+
$ npm pack # 30 MB tarball
|
|
711
|
+
$ npm install ./peaks-loop-4.0.0-beta.9.tgz --prefix /tmp/test
|
|
712
|
+
$ peaks --version # → "4.0.0-beta.9"
|
|
713
|
+
$ peaks workspace init --project /tmp/fresh # → templatesBooted: 5
|
|
714
|
+
```
|
|
715
|
+
|
|
716
|
+
`.peaks/project-scan/{project-scan.md, business-knowledge.md,
|
|
717
|
+
security-template.md, perf-template.md, audit-output-schema.md}`
|
|
718
|
+
all present after a fresh workspace init.
|
|
719
|
+
|
|
720
|
+
### Notes
|
|
721
|
+
|
|
722
|
+
- 4.0.0-beta.8 is left in place on npm as a known-broken release.
|
|
723
|
+
Consumers who already pinned `peaks-loop@4.0.0-beta.8` should bump
|
|
724
|
+
to `4.0.0-beta.9`.
|
|
725
|
+
- Beta.9 contains everything beta.8 advertised plus the path fix.
|
|
726
|
+
|
|
727
|
+
## 4.0.0-beta.8 — 2026-07-15
|
|
728
|
+
|
|
729
|
+
### Added — project-scan bootstrap (slice 2026-07-15)
|
|
730
|
+
|
|
731
|
+
- **`peaks project context` writes `.peaks/project-scan/project-scan.md`**
|
|
732
|
+
alongside `.peaks/PROJECT.md`. The project-scan.md file is the new
|
|
733
|
+
canonical home for project archetype + libraryVersions + tech stack
|
|
734
|
+
(project-scoped, git-tracked, survives session rotation). The old
|
|
735
|
+
`.peaks/_runtime/<sessionId>/rd/project-scan.md` path is fully
|
|
736
|
+
migrated across SKILL.md / references / peaks-rd SKILL.md /
|
|
737
|
+
peaks-ui SKILL.md (14 occurrences in 8 files).
|
|
738
|
+
- **`peaks workspace init` triggers `bootstrapProjectScan`** on its
|
|
739
|
+
main path. Idempotent: existing `schemaVersion: 1` files are
|
|
740
|
+
preserved unless `--force`. New CLI flags:
|
|
741
|
+
- `--no-project-scan-bootstrap` — opt out of the bootstrap call.
|
|
742
|
+
- `--force-project-scan-templates` — overwrite the 4 bundled
|
|
743
|
+
audit/business templates (default: skip if present).
|
|
744
|
+
- **5-template boot** — every `peaks workspace init` materialises
|
|
745
|
+
`.peaks/project-scan/{project-scan.md, business-knowledge.md,
|
|
746
|
+
security-template.md, perf-template.md, audit-output-schema.md}`.
|
|
747
|
+
The 4 audit/business templates are bundled at
|
|
748
|
+
`src/services/workspace/templates/project-scan/*.md` and copied
|
|
749
|
+
verbatim by `scripts/copy-templates.mjs` (post-`tsc` step; tsc
|
|
750
|
+
does not emit `.md` files).
|
|
751
|
+
- **`scripts/copy-templates.mjs`** — mirrors bundled `.md` templates
|
|
752
|
+
into `dist/`. Wired into `package.json#scripts.build` after `tsc`.
|
|
753
|
+
Required to keep `import.meta.url` template reads working for
|
|
754
|
+
downstream `npm install peaks-loop` consumers.
|
|
755
|
+
- **`tests/unit/workspace/templates/template-integrity.test.ts`**
|
|
756
|
+
(5 cases) — byte-equality guard between bundled and canonical
|
|
757
|
+
templates; fails CI on drift.
|
|
758
|
+
- **`tests/unit/services/prd/project-scan-bootstrap-service.test.ts`**
|
|
759
|
+
(13 cases) — 0-1 path, existing-project path, monorepo variants,
|
|
760
|
+
idempotency, force overrides, dual-write.
|
|
761
|
+
- **`tests/unit/workspace/init-hooks-project-scan.test.ts`**
|
|
762
|
+
(4 cases) — `peaks workspace init` integration with all 3 CLI flag
|
|
763
|
+
combinations.
|
|
764
|
+
|
|
765
|
+
### Fixed — monorepo 0-1 misjudgement + scanArchetype fall-through
|
|
766
|
+
|
|
767
|
+
Real-world smoke against `C:\Users\smallMark\Desktop\peaksclaw\ice-cola`
|
|
768
|
+
(pnpm-workspace monorepo with `packages/{server,client,admin,hermes-agent}`)
|
|
769
|
+
exposed two follow-on bugs that the unit suite missed:
|
|
770
|
+
|
|
771
|
+
- **0-1 detection now considers monorepo sentinels.**
|
|
772
|
+
`bootstrapProjectScan.isZeroToOneProject` previously only checked
|
|
773
|
+
`<root>/src/`, silently mis-classifying pnpm-workspace projects as
|
|
774
|
+
0-1 (the source lives at `packages/<pkg>/src/`). New sentinels:
|
|
775
|
+
`pnpm-workspace.yaml` / `turbo.json` / `nx.json` + the
|
|
776
|
+
`package.json#workspaces` field. Source-root candidates extended
|
|
777
|
+
to `packages/` / `apps/` / `libs/` / `services/` / `workspaces/`.
|
|
778
|
+
- **`scanArchetype` hoists `hasMonorepoConfig` above the `hasBackend`
|
|
779
|
+
check.** A monorepo with a backend sub-package (`packages/server`)
|
|
780
|
+
used to fall through to `legacy-fullstack` because `hasBackend`
|
|
781
|
+
included `backendDirsPresent.length > 0`. New behaviour: any monorepo
|
|
782
|
+
resolves to `frontend-monorepo` (no backend pkg) or
|
|
783
|
+
`fullstack-monorepo` (with backend pkg).
|
|
784
|
+
- **`ProjectArchetype` union gains `'fullstack-monorepo'`.**
|
|
785
|
+
Previously the union was 5 values; now 6. `ArchetypeService` and
|
|
786
|
+
`peaks-code` consumers updated accordingly.
|
|
787
|
+
|
|
788
|
+
### Changed
|
|
789
|
+
|
|
790
|
+
- `src/services/memory/project-context-service.ts` — `generateProjectContext`
|
|
791
|
+
is now `async` and calls `bootstrapProjectScan` after writing
|
|
792
|
+
`PROJECT.md`. The companion `peaks skill presence:clear` was missing
|
|
793
|
+
an `await`; fixed in `src/cli/commands/core/skill-command.ts`.
|
|
794
|
+
- `src/cli/commands/workspace/init-command.ts` — adds
|
|
795
|
+
`--no-project-scan-bootstrap` and `--force-project-scan-templates`;
|
|
796
|
+
surfaces `projectScan` envelope field on the init response.
|
|
797
|
+
|
|
798
|
+
### Verification
|
|
799
|
+
|
|
800
|
+
- vitest: 22/22 pass across 3 slice-owned test files.
|
|
801
|
+
- tsc: 0 errors in slice-owned `src/` files.
|
|
802
|
+
- CLI: `./bin/peaks.js workspace init --project <tmp>` writes 5 files
|
|
803
|
+
in `templatesBooted:5, durationMs:23`; `--no-project-scan-bootstrap`
|
|
804
|
+
correctly skips; `--force-project-scan-templates` correctly
|
|
805
|
+
overrides user sediment.
|
|
806
|
+
- Ice-cola: `peaks project context --project .` produces
|
|
807
|
+
`archetype: fullstack-monorepo` with 18 real library versions
|
|
808
|
+
(Docusaurus 3.9.2 / Camofox / @easyops-cn / etc.).
|
|
809
|
+
|
|
810
|
+
### Notes
|
|
811
|
+
|
|
812
|
+
- pre-existing `FILE_SIZE_VIOLATION` on
|
|
813
|
+
`src/services/standards/project-standards-service.ts` (837 lines,
|
|
814
|
+
in-flight `.claude/rules/` → `.peaks/standards/` migration) is out
|
|
815
|
+
of slice scope.
|
|
816
|
+
|
|
817
|
+
## 4.0.0-beta.7 — 2026-07-09
|
|
818
|
+
|
|
819
|
+
### Added — zcode adapter (9th IDE) + runtime model detection
|
|
820
|
+
|
|
821
|
+
- **`peaks ide model --current` CLI** — `src/cli/commands/ide-commands.ts` (80 lines) + register in `src/cli/program.ts`. Outputs `{ modelId, detected, registeredAdapters }`. Available as a top-level primitive (not adapter-specific).
|
|
822
|
+
- **`detectCurrentIdeModel()` service** — `src/services/ide/current-model-detector.ts` (43 lines). Walks the adapter registry in insertion order, calls each adapter's optional `detectCurrentModel()` with try/catch isolation — one bad adapter cannot poison the chain.
|
|
823
|
+
- **zcode-adapter `detectCurrentModel()` method** — `src/services/ide/adapters/zcode-adapter.ts`. Reads `~/.zcode/v2/config.json`, resolves active provider via 4-tier priority chain (env override → non-`builtin:` provider → first enabled → first provider), returns the model's id. Live test: `peaks ide model --current` against a real z-code installation → `"modelId": "M3"`.
|
|
824
|
+
- **`IdeAdapter` interface optional field** — `readonly detectCurrentModel?: () => Promise<string | undefined>` in `src/services/ide/ide-types.ts`. Back-compat: 8 existing adapters without the field are unaffected.
|
|
825
|
+
- **`getStrongestModelIdAsync()` async variant** — `src/services/config/model-routing.ts`. Sync `getStrongestModelId()` is unchanged (rd-service compat); new async variant lets future async callers fall back to runtime probe instead of `'claude-opus-4-7'`.
|
|
826
|
+
|
|
827
|
+
### Changed — install no longer writes hardcoded default model
|
|
828
|
+
|
|
829
|
+
- **`scripts/install-skills.mjs`** — removed `model: 'sonnet'` default and `providers.minimax.model` default from `createConfigDefaults()`. After install, `~/.peaks/config.json` no longer contains a Claude model recommendation; users set their own via `peaks config set model <id>` (or leave unset and the back-compat fallback applies).
|
|
830
|
+
- **`STRONGEST_MODEL_ID` constant removed** — replaced by `getStrongestModelId(config?)` function in `src/services/config/model-routing.ts`. Resolution order: `config.model` → `PEAKS_STRONGEST_MODEL_DEFAULT` env var → back-compat `'claude-opus-4-7'`.
|
|
831
|
+
- **`workflow-router-service.ts` / `minimax-worker-service.ts` / `rd-service.ts`** — threaded dynamic modelId through 16 call sites in `workflow-router-service.ts`, replaced literal `'claude-opus-4-7'` in `minimax-worker-service.ts` (×2) and `rd-service.ts`.
|
|
832
|
+
|
|
833
|
+
### Added — zcode IDE (peaks-loop's 9th)
|
|
834
|
+
|
|
835
|
+
- **`IdeId` union type** — `'zcode'` added in `src/services/ide/ide-types.ts`.
|
|
836
|
+
- **`ZCODE_ADAPTER`** — new `src/services/ide/adapters/zcode-adapter.ts` (98 lines). Template: `claude-code-adapter.ts` with `compact.compactCommand` / `hookEvent` / `toolMatcher` / `envVar` degraded (z-code is a desktop application, no CLI binary; UNVERIFIED sentinel strings used where the interface requires non-optional types).
|
|
837
|
+
- **`IDE_DETECTION_DIRS` + `IDE_SKILL_INSTALL_PROFILES`** — `scripts/install-skills.mjs`. New `{ id: 'zcode', dir: '.zcode' }` detection entry + zcode profile (skillsDir `~/.zcode/skills`, env override `PEAKS_ZCODE_SKILLS_DIR`).
|
|
838
|
+
- **`ide-registry.ts`** — registers `ZCODE_ADAPTER` alongside the existing 8 adapters (claude-code / trae / trae-cn / codex / cursor / qoder / tongyi-lingma / hermes / openclaw).
|
|
839
|
+
- **`tests/unit/ide/zcode-adapter.test.ts`** — 10 cases (T-1 id, T-2 dirName, T-3 standards rootFile = `CLAUDE.md`, T-4 rulesDir = `.claude/rules`, T-5 skillsDir, T-6 compactCommand undefined, T-7 hookEvent is string, T-8 type test, T-9 IDE_DETECTION_DIRS contains, T-10 IDE_SKILL_INSTALL_PROFILES contains).
|
|
840
|
+
- **`tests/unit/ide/zcode-adapter-detect-model.test.ts`** — 14 cases (pure resolver + env-fixture file IO + path helper).
|
|
841
|
+
- **`tests/unit/cli/ide-commands.test.ts`** — 5 cases (CLI + top-level command registration).
|
|
842
|
+
- **Fixture sync** — `tests/unit/install-skills-script.test.ts` + `tests/unit/cli-program.workflow.test.ts` (Strategy A: env-var override, no hardcoded literals) + `tests/unit/ide/ide-registry.test.ts` (whitelist 6 → 7 adapters).
|
|
843
|
+
|
|
844
|
+
### Documentation — SKILL.md sync with 4.0.0-beta.6 CLI reality
|
|
845
|
+
|
|
846
|
+
- **`skills/peaks-code/SKILL.md`** — added inline `> CLI reality check` blocks at §Step 0.8 (D-001 `peaks code detect-job` is `peaks job init`), §Step 0.8 third paragraph (D-003 `JOB_SHAPE_NOT_DECIDED` is now passive `done: 0` warning, not exception), §Step 2.5 (D-002 `peaks session title` takes positional sid, not `--session-id` flag), §Step 11c + 11d (D-010 `<!-- peaks-memory:start -->` block requires YAML frontmatter `title:` + `kind:` + `---` + closing `<!-- peaks-memory:end -->`, otherwise `extractedCount: 0` silently). New **§CLI Drift Index** section after Boundaries provides single landing page for D-001/002/003/010 with inline-anchor table.
|
|
847
|
+
- **`skills/peaks-slice-decompose/SKILL.md`** — new **§SC template hard rules (sediment 2026-07-09)** section with 3 rules: Rule 1 ESM/CJS pre-flight before specifying export syntax (D-009c), Rule 2 whitelist fixture sync is a primary task not collateral (D-009a), Rule 3 adapter-interface optional fields > required (D-009b reciprocal).
|
|
848
|
+
|
|
849
|
+
### Verification (4.0.0-beta.7)
|
|
850
|
+
|
|
851
|
+
- `pnpm tsc -p tsconfig.json --noEmit` — 0 errors
|
|
852
|
+
- `pnpm vitest run tests/unit/ide/ tests/unit/cli/ide-commands.test.ts` — 15 files / 211 tests / 0 failed
|
|
853
|
+
- `peaks workflow verify-pipeline --rid 003-add-zcode-adapter` — `ok=true, complete=true`, 9/9 gate PASS
|
|
854
|
+
- `node bin/peaks.js ide model --current` (against real z-code installation) — `modelId: "M3"`, `detected: true`
|
|
855
|
+
|
|
856
|
+
### Sediment (Step 11) — 7 lessons in `.peaks/memory/`
|
|
857
|
+
|
|
858
|
+
| File | Topic |
|
|
859
|
+
| ------------------------------------------------------------------------- | -------------------------------------------------------- |
|
|
860
|
+
| `z-code-peaks-loop-9-ide-adapter-vendor-neutrality-adapter.md` | z-code 9th IDE + vendor-neutrality adapter pattern |
|
|
861
|
+
| `peaks-loop-install-model-getstrongestmodelid-fallback.md` | install no longer hardcodes default model |
|
|
862
|
+
| `desktop-application-ide-adapter-z-code-cli.md` | desktop-app IDE adapter field-degradation decision |
|
|
863
|
+
| `peaks-code-runbook-4-0-0-beta-6-skill-md-cli-d-001-d-002-d-003-d-010.md` | 4 SKILL.md / CLI drift points |
|
|
864
|
+
| `2026-07-09-zcode-adapter-overview.md` | RID 003 overall summary (project record) |
|
|
865
|
+
| `peaks-ide-runtime-detect-zcode-only.md` | `peaks ide model --current` z-code 4-tier priority chain |
|
|
866
|
+
| `ide-adapter-detectcurrentmodel-optional-interface-pattern.md` | optional interface field extension pattern |
|
|
867
|
+
|
|
868
|
+
### Known follow-ups (S3-cleanup backlog)
|
|
869
|
+
|
|
870
|
+
- **Slice C extension** — other 8 IDEs' `detectCurrentModel()` (claude-code / trae / cursor / codex / qoder / tongyi-lingma / hermes / openclaw). Currently only z-code has a working detector; all 8 still fall through to the back-compat `'claude-opus-4-7'`.
|
|
871
|
+
- **zai / GLM provider entry** — `D-008`: peaks-loop has no built-in provider entry for z-code's default `builtin:zai` (GLM) or `builtin:bigmodel` providers. Users on those providers must add custom `provider.<uuid>` entries to their `~/.peaks/config.json` themselves.
|
|
872
|
+
- **zcode-adapter UNVERIFIED sentinel values** — `hookEvent: 'PreToolUse'`, `toolMatcher: 'Bash'`, `envVar: 'ZCODE_PROJECT_DIR'` are placeholder guesses based on Anthropic-compatible protocol. Real z-code desktop application dogfood will reveal the actual values; replace once known.
|
|
873
|
+
- **`IdeAdapter` interface optional fields** — `D-009b` proposes converting `hookEvent` / `toolMatcher` / `envVar` to optional types, or adding an `unverified: boolean` flag, so future adapters with unknown protocols don't need to fabricate sentinel values.
|
|
874
|
+
|
|
875
|
+
### Breaking changes
|
|
876
|
+
|
|
877
|
+
None. All 8 pre-existing adapters continue to load without changes. CLI subcommands `peaks ide *` and `peaks ide model --current` are additive.
|
|
878
|
+
|
|
879
|
+
## 4.0.0-beta.5 — 2026-07-08
|
|
880
|
+
|
|
881
|
+
### Added — peaks-solo dispatcher (分诊员)
|
|
882
|
+
|
|
883
|
+
- **`peaks-solo` skill** — `skills/peaks-solo/SKILL.md` + 3 references (triage / fallback / sediment). Natural-language front door for the Peaks-Loop skill family. Use when the user describes a task in NL and does not know which peaks-\* skill fits. 0 breaking change: 3.x / 4.x `/peaks-code` / `/peaks-content` / `/peaks-doctor` etc. continue to work.
|
|
884
|
+
- **`peaks skill search` CLI** — `src/services/skill/skill-search-service.ts` + `src/cli/commands/skill-search-commands.ts`. Query / tag / domain filters; substring match; structured JSON output. Used by `peaks-solo` to find the right leaf skill. Available as a top-level primitive (not dispatcher-specific).
|
|
885
|
+
- **Sub-skills unchanged** — `peaks-code / peaks-content / peaks-doctor / peaks-issue-fix-orchestrator / peaks-sop / etc.` are NOT modified. peaks-solo sits alongside, not on top.
|
|
886
|
+
|
|
887
|
+
### Verification (4.0.0-beta.5)
|
|
888
|
+
|
|
889
|
+
- `peaks skill list` shows `peaks-solo` first
|
|
890
|
+
- `peaks skill search --query "code"` returns `peaks-code` with matchScore > 0
|
|
891
|
+
- `peaks skill search --query "xxxxxxxxxxxxx"` returns `[]` (no error)
|
|
892
|
+
- `pnpm vitest run` — full regression green; `peaks-code / peaks-content / peaks-doctor` tests unchanged
|
|
893
|
+
- `peaks code --help` / `peaks content --help` / `peaks doctor --help` — exit 0, behavior unchanged
|
|
894
|
+
|
|
895
|
+
## 4.0.0-beta.4 — 2026-07-08
|
|
896
|
+
|
|
897
|
+
Loop Engineering crystallization is now the product surface. The 4.0.0-beta.3 line shipped the framework; this release ships the post-run crystallization engine, the Darwin-style ratchet, the bundle share / desktop extension surface, and the karpathy-engineered red-line set that locks them together. Every durable-change entry is gated on a real, completed run; every evolution round is gated on an independent-context evaluation.
|
|
898
|
+
|
|
899
|
+
### Added — Loop Engineering Asset layer (§4.1, AC-1/AC-2/AC-3)
|
|
900
|
+
|
|
901
|
+
- **`loop_release` table** — `src/services/skillhub/migrations/002-loop-release.sql`. Schema version pinned to `peaks.loop/1` via CHECK constraint. Indexes on `lifecycle_status` and `scenario`. Non-breaking: 4.x `bee_release` rows continue to read.
|
|
902
|
+
- **`loop_bee_relation` table** — `src/services/skillhub/migrations/003-loop-bee-relation.sql`. Schema version `peaks.loop-bee-relation/1`. Roles: `main` / `supporting` / `candidate` / `retired`. Partial UNIQUE index `WHERE role='main'` enforces at most one main bee per loop at the storage layer (defense in depth; the service layer also enforces it).
|
|
903
|
+
- **Schema for the four-loop + dual-asset model** — Zod schemas in `src/services/loop/loop-release-types.ts` and `src/services/loop/loop-bee-relation-types.ts` mirror the §4.1 / §4.6 row shapes and refuse to parse rows whose `schema_version` is not the fixed literal.
|
|
904
|
+
|
|
905
|
+
### Added — Post-run crystallization flow (§5, AC-4 / AC-5 / AC-6 / AC-7)
|
|
906
|
+
|
|
907
|
+
- **`crystallization_event` table** — `src/services/skillhub/migrations/006-crystallization-event.sql`. Schema version `peaks.crystallization/1`. Carries the 4-section evidence brief inline; FKs to optional created/updated loop_release / bee_release.
|
|
908
|
+
- **`CrystallizationService`** — `src/services/crystallization/crystallization-service.ts`. Pre-run gate: `task_status='completed'` AND `gates_passed=true` AND `evidence_collected=true` (Zod literal enforcement + service-layer re-assertion). Atomic single-transaction write of loop_release + bee_release header + bee_manifest + loop_bee_relation(main) + crystallization_event(brief inline).
|
|
909
|
+
- **`peaks asset crystallize`** CLI — `src/cli/commands/asset-commands.ts`. Required options: `--brief-what-happened`, `--brief-why-it-matters`, `--brief-what-learned`, `--brief-what-action`. A partial brief is rejected with `MISSING_BRIEF_SECTION` and exit 1 (RL-7).
|
|
910
|
+
- **`peaks asset dispose` / `peaks asset status`** — cross-asset dispose (trace_only / retain / destroy) and lifecycle status dashboard.
|
|
911
|
+
|
|
912
|
+
### Added — Darwin-style ratchet (§6, AC-8 / AC-9 / AC-10 / AC-11)
|
|
913
|
+
|
|
914
|
+
- **`evolution_evaluation` table** — `src/services/skillhub/migrations/005-evolution-evaluation.sql`. Schema version `peaks.evolution/1`. Carries `target_kind`, `target_release_id`, `optimization_dimensions_json` (length-1 enforced at service layer), `target_count=1` (CHECK), `author_id`, `evaluator_id`, `skeptic_id` (three independent agents), `verdict` ∈ {`keep`, `revert`, `needs-user-decision`}, `user_confirmation_pointer`, `brief_pointer`, and the four-section brief projection.
|
|
915
|
+
- **`EvolutionService`** — `src/services/evolution/evolution-service.ts`. Hard rules: single object (AC-8) + single optimization dimension (AC-8) + author ≠ evaluator ≠ skeptic (AC-10/AC-12/AC-14) + score_delta >= score_delta_min for `keep` (AC-11, default 1.0) + user_confirmation_pointer required for `keep` (AC-15).
|
|
916
|
+
- **`peaks evolution propose / evaluate / revert / mark-keep / status`** CLI — `src/cli/commands/evolution-commands.ts`. Each error path emits a stable wire-format code (`EVOLUTION_MULTI_OBJECT` / `EVOLUTION_MULTI_DIMENSION` / `EVOLUTION_SELF_SCORE` / `EVOLUTION_DELTA_BELOW_THRESHOLD` / `EVOLUTION_MISSING_USER_CONFIRMATION`).
|
|
917
|
+
- **Independent-evaluator runner** — `src/services/evolution/independent-evaluator-runner.ts`. Frozen `EvaluationPackage` containing only `target_kind / target_release_id / optimization_dimension / before_snapshot / after_snapshot / diff / rubric / red_lines / source_traces` — no author session, no author reasoning, no recommendation framing (AC-12 / AC-13).
|
|
918
|
+
- **Regression-skeptic runner** — `src/services/evolution/regression-skeptic-runner.ts`. A SEPARATE agent that emits `driftRisks / overfitRisks / safetyRegressionRisks` plus an optional `blocker` (which forces `verdict='revert'`).
|
|
919
|
+
|
|
920
|
+
### Added — Karpathy-engineered red-line set (AC-21 / AC-22 / AC-23)
|
|
921
|
+
|
|
922
|
+
- **`.peaks/standards/loop-engineering-guidelines.md`** — the single source of truth for the 10 red lines RL-0..RL-9, each in the four-section karpathy form (Failure modes / Rewrite / Self-check / Out-of-scope). Co-equal karpathy × darwin layers (RL-0).
|
|
923
|
+
- **`peaks standards lint --category loop-engineering`** — `src/services/standards/loop-engineering-lint.ts`. Parses the guideline file and asserts every red line has all four sections, fails closed otherwise.
|
|
924
|
+
- **`peaks skill lint --category loop-engineering-readiness --path <skill-dir>`** — `src/services/standards/loop-engineering-readiness-lint.ts` + `src/cli/commands/skill-loop-engineering-readiness-commands.ts`. Asserts a peaks-\* SKILL.md (a) references `.peaks/standards/loop-engineering-guidelines.md`, (b) does not introduce a CLI verb the user is meant to type, (c) does not introduce a JSON / manifest hand-authoring surface. Alias verb: `peaks skill ready --category loop-engineering-readiness --path <skill-dir>`.
|
|
925
|
+
- **Unit guard** — `tests/unit/standards/loop-engineering-guidelines.test.ts` enforces the four-section shape for every red line in the file.
|
|
926
|
+
- **peaks-code domain boundary (RL-8)** — `skills/peaks-code/SKILL.md` self-declares as the code-domain long-task loop engineering orchestrator and is NOT a general-purpose orchestrator. Cross-domain peaks-\* skills (peaks-content, peaks-issue-fix-orchestrator) import the shared guideline file and pass the readiness lint.
|
|
927
|
+
|
|
928
|
+
### Added — Bundle share + desktop extension surface (§7A, AC-24 / AC-25 / AC-26)
|
|
929
|
+
|
|
930
|
+
- **Share / desktop fields** — `src/services/skillhub/migrations/004-loop-bee-extension.sql`. Adds `shareable / share_excluded_paths / desktop_visible / export_bundle_format` to `loop_release`, and `shareable / desktop_visible` to `bee_release`. `export_bundle_format` is pinned to `peaks.bundle/1` via CHECK constraint. Non-breaking: every new column has a DEFAULT.
|
|
931
|
+
- **Bundle writer** — `src/services/share/bundle-writer.ts`. Writes a `peaks.bundle/1` tar.gz with `manifest.json`, `relations.json`, `evidence_briefs/*.json`, content-addressed `blobs/<sha256>`, and `EVALUATION_REQUIRED.md`. Hard block: `shareable=false` throws `BundleNotShareableError(SHARE_BUNDLE_ERROR_CODES.NOT_SHAREABLE)` BEFORE any tarball work, for both loop and bee kinds.
|
|
932
|
+
- **Bundle reader** — `src/services/share/bundle-reader.ts`. Hard blocks: `format_version_major != 1` is rejected (AC-25); `schema_versions` mismatch is rejected; the imported release ALWAYS lands as `candidate` (AC-25 / §10 RL-9). The bundle carries an `EVALUATION_REQUIRED.md` marker telling the receiver to run an independent evaluation before any durable change.
|
|
933
|
+
- **`peaks loop export` / `peaks loop import`** — `src/cli/commands/loop-commands.ts`. Existing 14.x `peaks loop *` subcommands are preserved; M7 only ADDS export / import.
|
|
934
|
+
- **`peaks bee export` / `peaks bee import`** — `src/cli/commands/share-commands.ts`. Same hard-block semantics.
|
|
935
|
+
- **Receiver-side integration test** — `tests/integration/share-bundle-roundtrip.test.ts` asserts the round-trip lands as `candidate` (AC-25), that `shareable=false` blocks the export at the CLI layer, and that without an `evolution_evaluation` row the receiver has no path to `stable` (AC-26).
|
|
936
|
+
|
|
937
|
+
### Added — SkillHub expansion (5 new tables / non-breaking)
|
|
938
|
+
|
|
939
|
+
The 6+ relation table layout is preserved. 5 new tables added under `.peaks/_runtime/<sessionId>/`:
|
|
940
|
+
|
|
941
|
+
- `loop_release` (002)
|
|
942
|
+
- `loop_bee_relation` (003)
|
|
943
|
+
- loop↔bee share / desktop extension columns (004)
|
|
944
|
+
- `evolution_evaluation` (005)
|
|
945
|
+
- `crystallization_event` (006)
|
|
946
|
+
|
|
947
|
+
Migration is non-breaking: every new column has a DEFAULT and the new tables sit alongside the existing 4.x schema.
|
|
948
|
+
|
|
949
|
+
### Added — New CLI verbs (spec §7.4)
|
|
950
|
+
|
|
951
|
+
- `peaks loop init / list / show / search / recent / export / import`
|
|
952
|
+
- `peaks asset crystallize / dispose / status`
|
|
953
|
+
- `peaks evolution propose / evaluate / revert / mark-keep / status`
|
|
954
|
+
- `peaks skill lint --category loop-engineering-readiness --path <skill-dir>`
|
|
955
|
+
- `peaks skill ready --category loop-engineering-readiness --path <skill-dir>` (alias)
|
|
956
|
+
|
|
957
|
+
### Changed
|
|
958
|
+
|
|
959
|
+
- **`peaks workflow *`** is reframed as the execution trace surface (per spec §7.6 demotion); it remains functional. The user-facing verb is "replay this run", not "create a new asset".
|
|
960
|
+
- **peaks-maker skill** is narratively repositioned to "Loop crystallizer + Bee creator + Evolution gatekeeper" (per spec §7.5); only the SKILL.md and memory references are re-narrated, the `id` is preserved.
|
|
961
|
+
|
|
962
|
+
### Verification (4.0.0-beta.4)
|
|
963
|
+
|
|
964
|
+
- `tsc --noEmit` zero errors
|
|
965
|
+
- `peaks standards lint --category loop-engineering` parses all 10 red lines + 4 sections each (lint passes)
|
|
966
|
+
- `pnpm vitest run tests/unit/{standards,crystallization,evolution,share}/` — 13 files / 154 unit tests pass
|
|
967
|
+
- `pnpm vitest run tests/integration/{share-bundle-roundtrip,dogfood-loop-engineering-crystallization,asset-crystallize-cli,evolution-cli,skill-loop-engineering-readiness-cli}.test.ts` — 5 files / 26 integration tests pass
|
|
968
|
+
- M8 dogfood (`tests/integration/dogfood-loop-engineering-crystallization.test.ts`) crystallizes the M0..M7 work into a real loop + bee + relation + event in 644ms (defense in depth: the release crystallizes itself)
|
|
969
|
+
|
|
970
|
+
### Migration
|
|
971
|
+
|
|
972
|
+
- 4.x `bee_release` rows continue to read. No data migration required.
|
|
973
|
+
- The 5 new tables are added via non-destructive `CREATE TABLE IF NOT EXISTS` migrations.
|
|
974
|
+
- The `bundle-writer / bundle-reader` pair is additive; existing `peaks skill sediment export / import` remains as an alias for one release cycle, then deprecates.
|
|
975
|
+
- The peaks-code SKILL.md is unchanged from 4.0.0-beta.3 — no `peaks-solo` migration needed for users already on beta.2 or later.
|
|
976
|
+
|
|
5
977
|
## 4.0.0-beta.2 — 2026-07-07
|
|
6
978
|
|
|
7
979
|
### Renamed
|
|
980
|
+
|
|
8
981
|
- **`peaks-solo` → `peaks-code`** — the long-running code-domain orchestrator skill (PRD/RD/QA/UI/SC/TXT pipeline) has been renamed to communicate its scope more accurately. The on-disk directory `~/.peaks/skills/.system/bees/peaks-code/` is preserved as a stable install location; only the manifest `id` and `displayName` change (`peaks-code` / `Peaks Code`). All four sibling skills (`peaks-solo-resume` → `peaks-resume`, `peaks-solo-status` → `peaks-status`, `peaks-solo-test` → `peaks-test`) are now top-level primitives rather than child skills of `peaks-solo`. Migration: `peaks session migrate-skill-name --from peaks-solo --to peaks-code --apply`.
|
|
9
982
|
|
|
10
983
|
### Changed (Breaking)
|
|
984
|
+
|
|
11
985
|
- **`peaks skill presence:set peaks-solo` no longer recognized** — the canonical skill name is now `peaks-code`. Existing `.peaks/_runtime/*/active-skill.json` files carrying `skill: "peaks-solo"` are migrated by `peaks session migrate-skill-name`. Manual override: edit the file and replace `"skill": "peaks-solo"` with `"skill": "peaks-code"`.
|
|
12
986
|
- **CLI surface unchanged** — `peaks code`, `peaks code --fast`, and the entire `peaks-code` skill runbook continue to function; only the skill-identification field (`id`, `displayName`, presence `skill` value) changes. The runbook name `peaks code` is the user-facing verb and remains as-is.
|
|
13
987
|
|
|
14
988
|
### Fixed (post-rename polish)
|
|
989
|
+
|
|
15
990
|
- **Rule name normalization** — `Code Code-Change Red Line` → `Code Commit Ban Red Line` (8 occurrences across `src/services/audit/enforcers/code-ban.ts`, `src/cli/commands/hook-handle.ts`, and the audit tests). Aligns with `red-line-catalog.ts` entry `rl-code-ban-001` / `Code Commit Ban`.
|
|
16
991
|
- **Wire-format error code rename** — `SOLO_MODE_REQUIRES_SOLO_WORKFLOW` → `CODE_MODE_REQUIRES_CODE_WORKFLOW` and `UNSUPPORTED_SOLO_MODE` → `UNSUPPORTED_CODE_MODE` in `src/cli/commands/workflow-commands.ts` (4 test sites updated).
|
|
17
992
|
- **Test local consts** — `soloResult/soloOutput` → `codeResult/codeOutput` in `tests/unit/cli-program.workflow.test.ts`; `SOLO_PATH/soloAbsPath` → `CODE_PATH/codeAbsPath` in `tests/unit/code/skills-subagent-scope-dir.test.ts`; `SOLO_REF/SOLO_FANOUT_REF` → `CODE_REF/CODE_FANOUT_REF` in `tests/unit/dispatch/dispatch-fanout-mandatory.test.ts`.
|
|
@@ -22,11 +997,13 @@
|
|
|
22
997
|
- **Video demo copy** — `examples/video-demo/src/copy.ts` `skillWas: 'peaks-solo'` → `skillWas: 'peaks-code'` (legacy label, both locales).
|
|
23
998
|
|
|
24
999
|
### Added
|
|
1000
|
+
|
|
25
1001
|
- **Manifest id field** — `.peaks/skills/.system/bees/peaks-code/manifest.json` now carries `{ "id": "peaks-code", "displayName": "Peaks Code" }`. The `migrate-skill-name` service explicitly skips this file (test: `session-migrate-skill-name.test.ts:69` "跳过 .peaks/skills/.system/bees/peaks-code/manifest.json") so the canonical id is only ever edited by hand or by an explicit `peaks skill sediment refine-bee` flow, never by bulk migration.
|
|
26
1002
|
- **Spec §4.1.1 rewrite** — `docs/superpowers/specs/2026-07-04-peaks-maker-dynamic-skill-sediment-design.md` §4.1.1 has been rewritten from "peaks-code as preserved alias" to "peaks-code as the system-stable code-domain bee (renamed from peaks-code)". The plan's spec-coverage table now references the renamed heading.
|
|
27
1003
|
- **Migration helper** — `peaks session migrate-skill-name --from <old> --to <new> [--apply]` is the supported path for renaming skill references in `.peaks/_runtime/`. Idempotent; skip-list includes `.peaks/memory/**` and `.peaks/skills/.system/bees/peaks-code/manifest.json`.
|
|
28
1004
|
|
|
29
1005
|
### Verification
|
|
1006
|
+
|
|
30
1007
|
- `tsc --noEmit` zero errors
|
|
31
1008
|
- Full `vitest run` exit 0 (all 30 touched test files / 265 directly-tested assertions pass)
|
|
32
1009
|
- `silent-warning-detector` OK on 481 files
|
|
@@ -145,10 +1122,11 @@ Validated on `C:/Users/smallMark/Desktop/peaksclaw/ice-cola` (consumer project).
|
|
|
145
1122
|
## [3.0.2] — 2026-07-02 — change-id shim retirement (v2.19.0) + Understand Anything hybrid context (3.0.2)
|
|
146
1123
|
|
|
147
1124
|
**PATCH bump from 3.0.1**. Two independent slices bundled into one release:
|
|
1125
|
+
|
|
148
1126
|
- **v2.19.0 change-id shim retirement** — full removal of the peaks-loop change-id axis (filesystem axis, code shim, envelope JSON slug, CLI flags). The change-id was a no-op post-v2.17.0 hard-kill; this slice retires the v2.17.0 shim half-life. OpenSpec's independent `openspec/changes/<change-id>/` vocabulary (L4) is preserved untouched.
|
|
149
1127
|
- **3.0.2 Understand Anything hybrid context** — new `peaks understand context` subcommand that encapsulates the UA-first / codegraph-fallback / hybrid-union routing decision in the service layer (per the peaks-loop "skill-first / CLI-auxiliary" architecture). Consumers no longer pick one or the other at the LLM level.
|
|
150
1128
|
|
|
151
|
-
The v2.19.0 work shipped as code commits (`f91d71c`, `5186d3d`, `b598612`, `ced835e`, `7ee9d8f`, plus follow-up tests) but was never formally released. v2.19.0 is therefore
|
|
1129
|
+
The v2.19.0 work shipped as code commits (`f91d71c`, `5186d3d`, `b598612`, `ced835e`, `7ee9d8f`, plus follow-up tests) but was never formally released. v2.19.0 is therefore _not_ a separate release line — its changes are rolled forward into 3.0.2. Future releases resume numeric sequence from 3.0.3.
|
|
152
1130
|
|
|
153
1131
|
### Removed — change-id shim (cleanup post v2.17.0 hard-kill)
|
|
154
1132
|
|
|
@@ -171,7 +1149,7 @@ The v2.19.0 work shipped as code commits (`f91d71c`, `5186d3d`, `b598612`, `ced8
|
|
|
171
1149
|
- 12 JSDoc references to the deleted `src/shared/change-id.ts` file scrubbed across `src/services/session/session-binding-bridge.ts`, `src/services/session/session-manager.ts`, `src/shared/path-safety.ts`, `tests/unit/session-manager.test.ts`, `tests/vitest.setup.ts`. The 3 pre-slim `tests/fixtures/skills/pre-slim/*.SKILL.md` fixtures preserve the historical reference per the FROZEN EVIDENCE rule.
|
|
172
1150
|
- 2 weakened `tests/unit/rd/repair-cycle-2-cli-wiring.test.ts` cases restored with real assertions: the test now bootstraps a real session via `peaks workspace init` then drives `peaks swarm plan` end-to-end, asserting `standardsErrorCode`, `standardsDiagnostic`, and `process.exitCode` (no `expect(true).toBe(true)`, no `.skip`).
|
|
173
1151
|
|
|
174
|
-
### Round 3 — change-id彻底根治
|
|
1152
|
+
### Round 3 — change-id 彻底根治
|
|
175
1153
|
|
|
176
1154
|
- All 275 internal `changeId` field references in `src/` renamed to `sessionId` across 35 source files (cli/commands, services/workflow, services/tech, services/workspace, services/sc, services/rd, services/prd, services/audit, services/fixture, services/slice, services/mut, services/providers, services/artifacts, services/openspec-adjacent callers). The 65 remaining `changeId` hits are EXCLUSIVELY in `src/cli/commands/openspec-commands.ts` and `src/services/openspec/*.ts` — L4 OpenSpec vocabulary (positional `<change-id>` arg, `openspec/changes/<change-id>/` dir name, OpenSpec spec/proposal markdown tokens). The rename preserves L4 per PRD §Non-Goals.
|
|
177
1155
|
- `WorkspaceInitOptions.changeId?: string` field REMOVED entirely (was a no-op post-v2.17.0; the slice deletes the binding-file legacy and the inline lstatSync guard now scopes the v2.8.3 hard-ban to date-stamped top-level siblings at `.peaks/<YYYY-MM-DD-*>/` only).
|
|
@@ -187,6 +1165,7 @@ The v2.19.0 work shipped as code commits (`f91d71c`, `5186d3d`, `b598612`, `ced8
|
|
|
187
1165
|
- `pnpm build` regenerated `dist/` to drop the dead `migrate-change-scope` JS. AC-15 (`node bin/peaks.js workspace migrate-change-scope`) now reports `error: unknown command 'migrate-change-scope'`.
|
|
188
1166
|
|
|
189
1167
|
### Round 4 — change-id full root-out (fix 55 test regressions)
|
|
1168
|
+
|
|
190
1169
|
- Fixed 55 unit tests failing across 15 files (regressions from round-3 rename script + incomplete code paths).
|
|
191
1170
|
- `peaks request *` dry-run mode no longer creates `.peaks/_runtime/<sid>/` dir eagerly (test updated to assert the canonical single-axis scope dir at apply-time only).
|
|
192
1171
|
- Observability event hook restored on `peaks request transition` (3 tests): root cause was `readSummary` returning the scope fragment (`_runtime/<sid>`) as the bare session id, so `emitObservabilityEvent` landed at `.peaks/_runtime/_runtime/<sid>/metrics/slices.jsonl`. Fix strips the `_runtime[\\/]` prefix when storing the summary's sessionId.
|
|
@@ -219,10 +1198,11 @@ The v2.19.0 work shipped as code commits (`f91d71c`, `5186d3d`, `b598612`, `ced8
|
|
|
219
1198
|
## [3.0.2] — 2026-07-02 — change-id shim retirement (v2.19.0) + Understand Anything hybrid context (3.0.2)
|
|
220
1199
|
|
|
221
1200
|
**PATCH bump from 3.0.1**. Two independent slices bundled into one release:
|
|
1201
|
+
|
|
222
1202
|
- **v2.19.0 change-id shim retirement** — full removal of the peaks-loop change-id axis (filesystem axis, code shim, envelope JSON slug, CLI flags). The change-id was a no-op post-v2.17.0 hard-kill; this slice retires the v2.17.0 shim half-life. OpenSpec's independent `openspec/changes/<change-id>/` vocabulary (L4) is preserved untouched.
|
|
223
1203
|
- **3.0.2 Understand Anything hybrid context** — new `peaks understand context` subcommand that encapsulates the UA-first / codegraph-fallback / hybrid-union routing decision in the service layer (per the peaks-loop "skill-first / CLI-auxiliary" architecture). Consumers no longer pick one or the other at the LLM level.
|
|
224
1204
|
|
|
225
|
-
The v2.19.0 work shipped as code commits (`f91d71c`, `5186d3d`, `b598612`, `ced835e`, `7ee9d8f`, plus follow-up tests) but was never formally released. v2.19.0 is therefore
|
|
1205
|
+
The v2.19.0 work shipped as code commits (`f91d71c`, `5186d3d`, `b598612`, `ced835e`, `7ee9d8f`, plus follow-up tests) but was never formally released. v2.19.0 is therefore _not_ a separate release line — its changes are rolled forward into 3.0.2. Future releases resume numeric sequence from 3.0.3.
|
|
226
1206
|
|
|
227
1207
|
### Added — `peaks understand context` (3.0.2 user-facing feature)
|
|
228
1208
|
|
|
@@ -231,12 +1211,14 @@ The Understand Anything (UA) Claude Code plugin and `@colbymchenry/codegraph` ar
|
|
|
231
1211
|
This slice adds a single `peaks understand context` subcommand that encapsulates the routing decision in the service layer (per the peaks-loop "skill-first / CLI-auxiliary" architecture — see `peaks-code` SKILL.md). The envelope carries a `source` tag so downstream consumers can audit which evidence contributed to the context.
|
|
232
1212
|
|
|
233
1213
|
**Source routing** (deterministic, decided in `buildUnderstandContext`):
|
|
1214
|
+
|
|
234
1215
|
- `ua-only` — UA knowledge graph present, no codegraph
|
|
235
1216
|
- `ua-missing-fallback-codegraph` — UA absent, codegraph produced evidence
|
|
236
1217
|
- `ua-and-codegraph-hybrid` — both present, both contribute (parallel `Promise.all`)
|
|
237
1218
|
- `both-missing` — neither produced evidence, exit code 2
|
|
238
1219
|
|
|
239
1220
|
**Added files (5):**
|
|
1221
|
+
|
|
240
1222
|
- `src/services/understand/understand-hybrid-service.ts` (133L, new): `buildUnderstandContext({projectRoot, files?, sampleSize?, artifactDir?, codegraphRunner?})` uses `Promise.all` to run UA scan and codegraph affected in parallel; total wall-clock = `max(uaMs, codegraphMs)`, not sum. Failures are caught into `warnings[]` (best-effort); the main envelope is always returned so consumers can audit missing evidence.
|
|
241
1223
|
- `src/services/understand/hybrid-types.ts` (39L, new): `UnderstandContextResult` envelope + 4-value source enum + `CodegraphContextBlock`.
|
|
242
1224
|
- `src/cli/commands/understand-commands.ts` (208L, +51L net): new `peaks understand context` subcommand at base path `admin/audit-logs` (the only 3rd CLI surface in the understand module family). The subcommand accepts `--project --files --sample --artifact-dir` and emits the envelope as JSON or human-readable summary.
|
|
@@ -383,12 +1365,12 @@ The 1.x → 2.0 upgrade is an irreversible external side effect (rewrites `~/.pe
|
|
|
383
1365
|
|
|
384
1366
|
The split methodology follows the v2.18.0 `session-binding-bridge.ts` pattern: identify a natural seam (state/helpers vs business logic, types vs impl, etc.), extract the chosen section into a new sibling file, and re-export the moved symbols from the original module so external imports are unchanged. Internal references are routed through a local `import { ... }` so the body of the original module continues to compile and behave identically.
|
|
385
1367
|
|
|
386
|
-
| #
|
|
387
|
-
|
|
388
|
-
| 1
|
|
389
|
-
| 2
|
|
390
|
-
| 3
|
|
391
|
-
| 4
|
|
1368
|
+
| # | File | Before | After (orig + sibling) | New sibling | Seam |
|
|
1369
|
+
| --- | ------------------------------------------------------ | -----: | ---------------------: | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
1370
|
+
| 1 | `src/services/artifacts/request-artifact-service.ts` | 783 | 649 + 153 | `request-artifact-state-helpers.ts` | `RequestArtifactState` type, `ALLOWED_STATES_PER_ROLE`, `allowedStatesForRole`, 4 transition error classes, `updateStatusBlock` frontmatter mutator |
|
|
1371
|
+
| 2 | `src/services/slice/slice-decompose-service.ts` | 775 | 632 + 178 | `slice-decompose-runners.ts` | 3 default runner factories (`defaultCodegraphRunner`, `defaultUnderstandRunner`, `defaultImportEdgeRunner`) + `runCodegraph` shell-out helper |
|
|
1372
|
+
| 3 | `src/services/workflow/workflow-autonomous-service.ts` | 774 | 465 + 337 | `workflow-autonomous-resume-helpers.ts` | Resume validation pipeline (`getResumeRequiredArtifacts`, `readResumeArtifact`, `stripChangeScopePrefix`, JSON / frontmatter parsers, `getResumeArtifactsStatus`, `createResumePlan`) + `MAX_RESUME_ARTIFACT_BYTES` const |
|
|
1373
|
+
| 4 | `src/services/workspace/workspace-service.ts` | 742 | 550 + 217 | `workspace-claude-settings-materializer.ts` | Consumer `.claude/settings.local.json` materialization (`materializeClaudeSettingsLocal`, `writeOfflineTemplateCopy`, `upsertPeaksGitignoreSnippet`) + `PEAKS_GITIGNORE_*` constants |
|
|
392
1374
|
|
|
393
1375
|
The original 4 files land at 465-649 LOC (well below the 800 cap; target range 600-650). The 4 new sibling files are 153-337 LOC. Total LOC across the 8 files is unchanged (3074) — this is a structural refactor only, not a deletion or compression.
|
|
394
1376
|
|
|
@@ -459,12 +1441,12 @@ Each original file gets a sibling `import { ... } from './X-helpers.js'` + `expo
|
|
|
459
1441
|
|
|
460
1442
|
### Dogfood
|
|
461
1443
|
|
|
462
|
-
| #
|
|
463
|
-
|
|
464
|
-
| A
|
|
465
|
-
| B
|
|
466
|
-
| C
|
|
467
|
-
| D
|
|
1444
|
+
| # | Scenario | Verdict | Evidence |
|
|
1445
|
+
| --- | ------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------- |
|
|
1446
|
+
| A | v2.18.1 verify-pipeline happy-path (session-axis) | PASS | `.peaks/_runtime/2026-06-29-session-9cac8e/{rd,qa}/...` resolves as canonical; `data.changeId` slug preserved in envelope |
|
|
1447
|
+
| B | v2.18.1 verify-pipeline missing-evidence | PASS | Clear `RD evidence missing: ...` violations, no `ReferenceError` |
|
|
1448
|
+
| C | v2.18.1 prd check-blocks well-formed PRD | PASS | `report.ok: true`, all 4 blocks pass, JSON envelope `{ 业务场景: 'pass', 边界 case: 'pass', UI 装配意图: 'pass' }` |
|
|
1449
|
+
| D | v2.18.1 prd check-blocks missing 业务场景 block | PASS | `report.ok: false`, `issues: ["Missing required block: 业务场景"]`, no `ReferenceError` |
|
|
468
1450
|
|
|
469
1451
|
### Commits
|
|
470
1452
|
|
|
@@ -495,7 +1477,7 @@ Each original file gets a sibling `import { ... } from './X-helpers.js'` + `expo
|
|
|
495
1477
|
- `src/services/session/binding-store.ts:259` — `ownerHint` field is now `${envSignal}#${pid}` (was bare env signal). Preserves the existing v2.17.0 field shape; only the value format changes.
|
|
496
1478
|
- `registerInstance` distinguishes instances by `(callerId, pid)` tuple, not by `ownerHint` alone. Same pid + same callerId → auto-resume (D2 Claude-instance-level hard-exclusive sid preserved); same callerId + different pid → distinct sids.
|
|
497
1479
|
- `/compact` resume: same outer-session-id + same pid → reuses sid (verified by new Case B test). Different pid (rare, but possible if the harness restarts) → new sid (safe default, not a stale resume).
|
|
498
|
-
- Sub-agent dispatch: sub-agents inherit parent's `CLAUDE_CODE_SESSION_ID` but run in the same Node process → same pid → same callerId → same sid (D2 sid-aggregation across peaks
|
|
1480
|
+
- Sub-agent dispatch: sub-agents inherit parent's `CLAUDE_CODE_SESSION_ID` but run in the same Node process → same pid → same callerId → same sid (D2 sid-aggregation across peaks-\* skill activations preserved).
|
|
499
1481
|
- 6 new test cases in `tests/unit/services/session/binding-store.test.ts:151-242`:
|
|
500
1482
|
- **Case A:** 2 instances, same `callerId`, different `pid` → 2 distinct sids
|
|
501
1483
|
- **Case B:** 2 instances, same `callerId`, same `pid`, same outer-session-id → 1 sid (auto-resume)
|
|
@@ -533,12 +1515,12 @@ Each original file gets a sibling `import { ... } from './X-helpers.js'` + `expo
|
|
|
533
1515
|
|
|
534
1516
|
### Dogfood (ice-cola NestJS project, 2026-06-29-session-2e81dc)
|
|
535
1517
|
|
|
536
|
-
| #
|
|
537
|
-
|
|
538
|
-
| A
|
|
539
|
-
| B
|
|
540
|
-
| C
|
|
541
|
-
| D
|
|
1518
|
+
| # | Scenario | Verdict | Evidence |
|
|
1519
|
+
| --- | ----------------------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
1520
|
+
| A | P0 fix verification (binding file format) | PASS | `callerId: 5fa8a7d8-...#13472` matches shell pid 13472; pre-existing instance pid 3876 ≠ current shell — fix works in production-shape data |
|
|
1521
|
+
| B | peaks doctor stale-binding scan | PASS | 0 stale bindings, ttl=300000ms, v2.16.0 schema surface intact |
|
|
1522
|
+
| C | peaks code smoke (4 sub-commands) | PARTIAL | 3/4 pass; `peaks request lint --project .` is invalid syntax (needs `<rid>` + `--role`); not a v2.18.0 regression |
|
|
1523
|
+
| D | env-collision simulation (single shell, 2 envs) | PASS | `fake-session-A#20984` + `fake-session-B#20984` → 2 distinct sids (fupv8b / xnntb1); transposed axis (same pid, different env) verified; primary 2-Claude-windows scenario needs CI integration test with 2 child node processes |
|
|
542
1524
|
|
|
543
1525
|
**Dogfood verdict:** 3.5 / 4 pass; `recommend_v2.18.0_commit: true`.
|
|
544
1526
|
|
|
@@ -577,7 +1559,7 @@ The first v2.18.0 release deferred two open items to a redo slice; both are now
|
|
|
577
1559
|
### Feature — binding-store v2 sentinel (v2.16.0-alpha + v2.17.0)
|
|
578
1560
|
|
|
579
1561
|
- `src/services/session/binding-store.ts` — zod-validated multi-instance binding schema with auto-migration from legacy `{ sessionId, createdAt, projectRoot }`. New shape: `{ ownerHint, pid, lastHeartbeat, scope, instances: Record<sid, InstanceRecord> }`.
|
|
580
|
-
- `InstanceRecord` = `{ startedAt, roles: string[], callerId, lastHeartbeat }` — `roles` accumulates as the Claude instance activates multiple peaks
|
|
1562
|
+
- `InstanceRecord` = `{ startedAt, roles: string[], callerId, lastHeartbeat }` — `roles` accumulates as the Claude instance activates multiple peaks-\* skills (solos → rd → qa all share one sid).
|
|
581
1563
|
- Auto-resume: same callerId reuses the same sid; different callers get different sids in the same `instances` map.
|
|
582
1564
|
- `dropStale(projectRoot, ttlMs)` for Doctor integration.
|
|
583
1565
|
|
|
@@ -589,7 +1571,7 @@ The first v2.18.0 release deferred two open items to a redo slice; both are now
|
|
|
589
1571
|
|
|
590
1572
|
### Feature — D2 Claude-instance-level hard-exclusive sid
|
|
591
1573
|
|
|
592
|
-
- Same Claude instance keeps one sid across multiple peaks
|
|
1574
|
+
- Same Claude instance keeps one sid across multiple peaks-\* skill activations (peaks-code → peaks-rd → peaks-qa).
|
|
593
1575
|
- `/compact` resume: same outer-session-id reuses the same sid (post-compact-resume v2.11.0 D7 alignment).
|
|
594
1576
|
|
|
595
1577
|
### Feature — Doctor stale-binding scan (AC-10)
|
|
@@ -622,7 +1604,7 @@ The first v2.18.0 release deferred two open items to a redo slice; both are now
|
|
|
622
1604
|
|
|
623
1605
|
Recommended scenarios before next release (see `peaks/_runtime/2026-06-29-session-88411f/txt/handoff-2026-06-29-v2-17-0.md` for details):
|
|
624
1606
|
|
|
625
|
-
1. **Multi-Claude parallel提速**: open 2 Claude instances in the same project, run `peaks code <different goal>` in each. Verify both bindings coexist with distinct sids.
|
|
1607
|
+
1. **Multi-Claude parallel 提速**: open 2 Claude instances in the same project, run `peaks code <different goal>` in each. Verify both bindings coexist with distinct sids.
|
|
626
1608
|
2. **D1 conflict detection**: 2 instances both targeting the same source file. Verify each writes to its own session-scoped artifact directory.
|
|
627
1609
|
3. **`/compact` resume**: run `peaks code <goal>`, `/compact`, continue. Verify same sid reused.
|
|
628
1610
|
4. **Doctor stale**: kill -9 a Claude instance, run `peaks doctor`, verify stale binding listed + `--cleanup-stale` works.
|
|
@@ -738,11 +1720,13 @@ Recommended scenarios before next release (see `peaks/_runtime/2026-06-29-sessio
|
|
|
738
1720
|
- **Per the user-given rule** `.peaks/memory/2026-06-28-full-auto-boundary.md`: "full-auto 只做到 commit 就是,push 不用". The commit-boundary hard-floor is the machine enforcement of that advisory rule.
|
|
739
1721
|
|
|
740
1722
|
### Test results
|
|
1723
|
+
|
|
741
1724
|
- 4 new test files: `presence-staleness.test.ts` (12), `stale-presence-detection.test.ts` (9), `feedback-promotion.test.ts` (18), `commit-boundary-hard-floor.test.ts` (247). Total new cases: **286**.
|
|
742
1725
|
- Existing code tests (mode-gate × 81, post-compact × 11) pass unchanged.
|
|
743
1726
|
- Full unit suite baseline 4394 → 4680 passing (286 added). 0 new failures; pre-existing 7 unrelated failures unchanged.
|
|
744
1727
|
|
|
745
1728
|
### Out-of-scope
|
|
1729
|
+
|
|
746
1730
|
- Push / tag / npm publish — full-auto boundary = commit only; the commit-boundary hard-floor now BLOCKS these in full-auto (was advisory). User must explicitly confirm via AskUserQuestion to proceed.
|
|
747
1731
|
- `peaks hooks install` — slice is code-only. Hooks remain user-only.
|
|
748
1732
|
- Cleaning the 88b27d session's stale presence on disk — slice ships the detection + auto-clear, does NOT proactively touch the live tree.
|
|
@@ -765,12 +1749,14 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
|
|
|
765
1749
|
4 个 PRD + 4 个 service + 4 个 CLI 文件 + 4 个 test 文件,共 **17 个新命令 + 63 个新测试通过**。
|
|
766
1750
|
|
|
767
1751
|
**G11 上游 tag 同步**(slice-2026-06-28-fork-cli):
|
|
1752
|
+
|
|
768
1753
|
- 5 commands: `peaks fork status` / `upstream-check` / `sync-plan` / `sync` / `sync-verify`
|
|
769
1754
|
- 持久化 `.peaks/fork-state.json` (baseline + history)
|
|
770
1755
|
- `recommendStableTags` 过滤 pre-release 标签(alpha/beta/rc/dev/preview)
|
|
771
1756
|
- 15 tests pass
|
|
772
1757
|
|
|
773
1758
|
**G13 存量影响面扫描**(slice-2026-06-28-impact-cli):
|
|
1759
|
+
|
|
774
1760
|
- 2 commands: `peaks impact scan --files <list>` / `peaks impact must-check --files <list>`
|
|
775
1761
|
- 手写 glob 匹配(`**` / `*`),无 AST 依赖
|
|
776
1762
|
- 10 个默认业务流(用户管理 / 权限校验 / 登录流程 / Skill 权限 / 数据列表 / API 网关 / DB schema / ...)
|
|
@@ -778,6 +1764,7 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
|
|
|
778
1764
|
- 13 tests pass
|
|
779
1765
|
|
|
780
1766
|
**G14 轻量回归 critical-paths**(slice-2026-06-28-smoke-cli):
|
|
1767
|
+
|
|
781
1768
|
- 4 commands: `peaks smoke define` / `run` / `run-and-repair` / `add-path`
|
|
782
1769
|
- 持久化 `.peaks/smoke-paths.json`
|
|
783
1770
|
- 5 个 source (prd-business-scenario / boss-stated / historical-incident / impact-must-check / manual)
|
|
@@ -785,6 +1772,7 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
|
|
|
785
1772
|
- 16 tests pass
|
|
786
1773
|
|
|
787
1774
|
**G15 上线观察期状态机**(slice-2026-06-28-release-cli):
|
|
1775
|
+
|
|
788
1776
|
- 7 commands: `peaks release plan` / `canary` / `promote` / `watch` / `done` / `rollback` / `hotfix`
|
|
789
1777
|
- 8 阶段状态机: planned → canary-10 → canary-50 → promoted → watching → done
|
|
790
1778
|
- side branches: → rolled-back (from any pre-done), → hotfixed (from watching)
|
|
@@ -795,6 +1783,7 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
|
|
|
795
1783
|
**触动:** 新增 4 个 service / 4 个 CLI / 4 个 test 文件 = **12 个新文件**。CLI 注册全在 `src/cli/program.ts`,**不触动** transition gates / hard contracts / Karpathy 4 / sub-agent 协议 / mode-gate。
|
|
796
1784
|
|
|
797
1785
|
**已知未实现**(后续切片):
|
|
1786
|
+
|
|
798
1787
|
- 真实 git fetch + merge(G11)
|
|
799
1788
|
- 真实 Playwright 路径执行(G14)
|
|
800
1789
|
- 真实 k8s rollout / LB config / 监控集成(G15)
|
|
@@ -804,23 +1793,27 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
|
|
|
804
1793
|
4 个 service + 4 个 CLI 文件 + 4 个 test 文件,共 **16 个新命令 + 40+ 个新测试通过**。所有 CLI 都遵循 12 Gaps 核心原则: user 在循环里 = 业务/产品审阅,不参与技术决策。
|
|
805
1794
|
|
|
806
1795
|
**G3 prd 4 必填块**(slice-2026-06-28-prd-blocks):
|
|
1796
|
+
|
|
807
1797
|
- `peaks prd check-blocks <rid>` — 验证 4 必填块(业务场景/边界/UI 装配/上游基线)+ 业务禁区子节
|
|
808
1798
|
- 上游基线仅在 fork 项目上 required(检测 `.peaks/fork-state.json`)
|
|
809
1799
|
- 8 tests pass
|
|
810
1800
|
|
|
811
1801
|
**G4 user touchpoint classifier**(slice-2026-06-28-user-touchpoints):
|
|
1802
|
+
|
|
812
1803
|
- 3 commands: `peaks code gate-classify` / `peaks code user-touchpoints` / `peaks code commit-boundary-actions`
|
|
813
1804
|
- 14 个 Code gate 静态分类: business / tech / mode-selection / commit-boundary / commit-floor
|
|
814
1805
|
- `userShouldReview`: always / business-only / never
|
|
815
1806
|
- 7 tests pass
|
|
816
1807
|
|
|
817
1808
|
**G1 slice 业务审阅**(slice-2026-06-28-slice-review):
|
|
1809
|
+
|
|
818
1810
|
- 4 commands: `peaks slice review` / `score` / `accept` / `reject`
|
|
819
1811
|
- 4 个默认 review item: business-match / boundary-cases / ui-assembly / mergeable
|
|
820
1812
|
- 12 Gaps 阈值: avg >= 3 AND no item <= 2 → accepted
|
|
821
1813
|
- 16 tests pass
|
|
822
1814
|
|
|
823
1815
|
**G5 QA 业务视角验收**(slice-2026-06-28-qa-business):
|
|
1816
|
+
|
|
824
1817
|
- 4 commands: `peaks qa business-review` / `business-score` / `business-accept` / `business-reject`
|
|
825
1818
|
- 6 个默认 review item: business-flow / req-coverage / boundary-cases / ui-assembly / exception-tone / mergeable
|
|
826
1819
|
- 同一阈值(avg >= 3, no item <= 2)
|
|
@@ -833,29 +1826,35 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
|
|
|
833
1826
|
5 个 PRD 一次性收尾剩余 5 个 Gaps。每 G 一个 service + CLI + test,**10 个新文件 + 30+ 个新测试通过**。
|
|
834
1827
|
|
|
835
1828
|
**G6 跨 slice 集成**(slice-2026-06-28-slice-integrate):
|
|
1829
|
+
|
|
836
1830
|
- `peaks slice-integrate --slices <id1,id2,...>` — 验证多个 slice 的公共契约不冲突(重复 export / signature drift)
|
|
837
1831
|
- 5 tests pass
|
|
838
1832
|
|
|
839
1833
|
**G7 文档自动化**(slice-2026-06-28-doc):
|
|
1834
|
+
|
|
840
1835
|
- `peaks doc generate-skill --name --from <commands-dir>` — 扫描 program.command() 自动生成 SKILL.md skeleton
|
|
841
1836
|
- `peaks doc changelog-suggest --since <ref>` — git log 解析 conventional commit + 生成 [Unreleased] 块
|
|
842
1837
|
- 6 tests pass
|
|
843
1838
|
|
|
844
1839
|
**G8 存量代码 smell 扫描**(slice-2026-06-28-legacy):
|
|
1840
|
+
|
|
845
1841
|
- `peaks legacy-detect --dir <path>` — TODO/FIXME/HACK/console.log/any-type/large-file/ts-ignore 启发式扫描
|
|
846
1842
|
- 5 tests pass
|
|
847
1843
|
|
|
848
1844
|
**G9 角色 RBAC**(slice-2026-06-28-role):
|
|
1845
|
+
|
|
849
1846
|
- `peaks role list/add/grant/check` — 4 命令,持久化 .peaks/role-registry.json
|
|
850
1847
|
- `--preset senior-fe` 一键预置 12 Gaps 高级前端权限
|
|
851
1848
|
- 5 tests pass
|
|
852
1849
|
|
|
853
1850
|
**G10 复杂度估算**(slice-2026-06-28-complexity):
|
|
1851
|
+
|
|
854
1852
|
- `peaks complexity-estimate --files <list>` — 按 LOC + exports + async 估算 trivial/simple/complex
|
|
855
1853
|
- 与 G2 字段(complexity tier)对齐,驱动 user-attended vs overnight 排程
|
|
856
1854
|
- 5 tests pass
|
|
857
1855
|
|
|
858
1856
|
**Dogfood 验证(ice-cola NestJS 项目):**
|
|
1857
|
+
|
|
859
1858
|
- peaks legacy-detect (164 文件, smells=high, 406 个 any-type, 15 个 large-file)
|
|
860
1859
|
- peaks role add senior-fe --preset senior-fe + role list + role check (granted/not)
|
|
861
1860
|
- peaks complexity-estimate (auth files → complex, 41 lines + hasAsync)
|
|
@@ -880,6 +1879,7 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
|
|
|
880
1879
|
- `tests/unit/services/context/tokenizer.test.ts:23` — `fetchedAt` 硬编码 `2026-06-21` 距今 7 天触发 `timeDecayScore 0.886 < 0.9` 期望,改 `new Date().toISOString()` 符合"fresh fetch"测试意图
|
|
881
1880
|
|
|
882
1881
|
**测试结果:**
|
|
1882
|
+
|
|
883
1883
|
- silent-warning-detector: 2 violations → 0
|
|
884
1884
|
- `tests/unit/services/context/`: 49/50 → 50/50
|
|
885
1885
|
- 全量 vitest 4819 tests:3 failed → 2 failed(剩下 2 个是并发 race condition,单跑 context 50/50 全过,pre-existing)
|
|
@@ -891,19 +1891,23 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
|
|
|
891
1891
|
**PATCH bump from 2.14.1** (slice `2026-06-28-tilde-peaks-p3p4`). Closes P3 + P4 from `.peaks/memory/2026-06-28-tilde-peaks-inventory.md`.
|
|
892
1892
|
|
|
893
1893
|
### Cleanup
|
|
1894
|
+
|
|
894
1895
|
- **`skills/peaks-companion/`** — REMOVED. Skill was dead: SKILL.md documented `peaks companion status/install/setup/start` but no CLI implementation existed (`src/services/companion/` not present, `peaks --help` had no companion entry). Empty `~/.peaks/companion/` directory is no longer expected to receive `cc-connect.log` writes.
|
|
895
1896
|
- **`tests/unit/skills/peaks-companion.test.ts`** — REMOVED (9 cases). The companion skill-count assertion (19 → 18 skills) is now verified by `tests/unit/skills/skill-count.test.ts` (already covers the meta count, not companion specifically).
|
|
896
1897
|
- **`.peaks/memory/peaks-companion-*.md`** — REMOVED (4 files: `cc-connect-dogfood-2026-06-15`, `qr-autoopen-2026-06-15`, `qr-inline-display-2026-06-15`, `watcher-ecs-url-config`). Historical dogfood records, no longer relevant.
|
|
897
1898
|
|
|
898
1899
|
### Refactor
|
|
1900
|
+
|
|
899
1901
|
- **`~/.peaks/providers.json`** (NEW sidecar) — MiniMax provider config migrated from deprecated `~/.peaks/config.json.providers` to canonical `~/.peaks/providers.json` per `provider-service.ts` schema. The slim `config.json` (per `config-types.ts`) no longer carries the `providers` field.
|
|
900
1902
|
- **MiniMax model field preserved** — `~/.peaks/providers.json.providers.minimax.model = "minimax-2.7"`; `peaks config provider minimax get/status` continue to report correctly via the back-compat fallback in `provider-service.ts`.
|
|
901
1903
|
|
|
902
1904
|
### Test results
|
|
1905
|
+
|
|
903
1906
|
- `pnpm vitest run tests/unit/doctor.test.ts` — 50/50 pass
|
|
904
1907
|
- `pnpm vitest run` full unit suite — `peaks-companion.test.ts` no longer runs; total cases drop from 4418 → 4409. Pre-existing failures (`doctor.test.ts` × 0, `tokenizer.test.ts` × 1, `35-checks-aggregate.test.ts` × 1) unchanged.
|
|
905
1908
|
|
|
906
1909
|
### Out-of-scope
|
|
1910
|
+
|
|
907
1911
|
- Push / tag / npm publish — full-auto mode boundary = commit only; user-only.
|
|
908
1912
|
- Re-implementing peaks-companion CLI — user chose delete over revive.
|
|
909
1913
|
- Cleaning `~/.peaks/companion/` empty dir — left in place; harmless.
|
|
@@ -915,14 +1919,17 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
|
|
|
915
1919
|
**PATCH bump from 2.14.0** (carry-forward from v2.13.3 AC-2 partial fix + npm 11.x config rename).
|
|
916
1920
|
|
|
917
1921
|
### Bug fixes
|
|
1922
|
+
|
|
918
1923
|
- `scripts/prepublish-build.mjs` — use `execFileSync('pnpm', ['run', 'build'])` (no shell) with Windows fallback to `prepublish-build.ps1` (proven dogfood). Eliminates the v2.13.4 partial-fix `spawnSync cmd.exe ENOENT` on Node 22 + Windows native.
|
|
919
1924
|
- `.npmrc` (NEW, repo-local template) — documents that `https_proxy` (underscore) is NO LONGER VALID in npm 11.x; use `https-proxy` or `proxy`. User-global `~/.npmrc` may still have `https_proxy`; npm 11.x warns, npm 12 will error.
|
|
920
1925
|
|
|
921
1926
|
### Test results
|
|
1927
|
+
|
|
922
1928
|
- `tests/unit/scripts/prepublish-build.test.ts` (NEW, 6 cases) — covers execFile happy path + Windows ps1 fallback + error propagation + version validation + ENOENT regression
|
|
923
1929
|
- `node scripts/prepublish-build.mjs` end-to-end: `[prepublish-build] build OK` exit 0 (verified on this Windows session)
|
|
924
1930
|
|
|
925
1931
|
### Out-of-scope
|
|
1932
|
+
|
|
926
1933
|
- Do NOT modify user-global `~/.npmrc` (user-only boundary); user must run `npm config delete https_proxy` themselves if they want to silence the warning before npm 12.
|
|
927
1934
|
|
|
928
1935
|
---
|
|
@@ -1043,7 +2050,7 @@ The four defects all stem from the v2.13.0 two-axis convention landing debt: the
|
|
|
1043
2050
|
|
|
1044
2051
|
**PATCH bump from 2.13.2** (slice `2026-06-27-verdict-aggregator-v2-12-debt`, red-line scope 7 source files + 3 test files modified + 3 new scripts + 1 package.json hook).
|
|
1045
2052
|
|
|
1046
|
-
2.13.2 dogfood surfaced 4 bugs that all stem from v2.12.0 envelope-schema落地 debt: the v2.12.0 audit artifacts (`audit/security.md`, `audit/perf.md`) are YAML-frontmatter + markdown, but v2.13.2's `parseSecurityEnvelope` / `parsePerfEnvelope` used `JSON.parse` (which is the wrong shape). v2.13.3 also fixes a cross-version publish-pipeline issue (`bin/peaks.js` was shipping a Jun 13 stale dist because `prepublishOnly` was never wired) and adds a soft-block-warning surface in the CLI so users can see v2.13.2's `mut-report-missing-deprecated-in-v2.14.0` warning instead of having it silently downgraded in service-layer.
|
|
2053
|
+
2.13.2 dogfood surfaced 4 bugs that all stem from v2.12.0 envelope-schema 落地 debt: the v2.12.0 audit artifacts (`audit/security.md`, `audit/perf.md`) are YAML-frontmatter + markdown, but v2.13.2's `parseSecurityEnvelope` / `parsePerfEnvelope` used `JSON.parse` (which is the wrong shape). v2.13.3 also fixes a cross-version publish-pipeline issue (`bin/peaks.js` was shipping a Jun 13 stale dist because `prepublishOnly` was never wired) and adds a soft-block-warning surface in the CLI so users can see v2.13.2's `mut-report-missing-deprecated-in-v2.14.0` warning instead of having it silently downgraded in service-layer.
|
|
1047
2054
|
|
|
1048
2055
|
### Bug fixes
|
|
1049
2056
|
|
|
@@ -1079,9 +2086,9 @@ The four defects all stem from the v2.13.0 two-axis convention landing debt: the
|
|
|
1079
2086
|
|
|
1080
2087
|
### Multi-CC commit boundaries
|
|
1081
2088
|
|
|
1082
|
-
| Commit tag | Scope
|
|
1083
|
-
|
|
1084
|
-
| v2.13.3
|
|
2089
|
+
| Commit tag | Scope |
|
|
2090
|
+
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
2091
|
+
| v2.13.3 | 4 bug fixes (parser / publish pipeline / CLI warnings / handoff sha256) + 3 new scripts + 4 new test cases + package.json prepublishOnly + README publish note + CHANGELOG + version bump + ship-state memory |
|
|
1085
2092
|
|
|
1086
2093
|
### Verified (peaks code dogfood + QA on this session)
|
|
1087
2094
|
|
|
@@ -1157,9 +2164,9 @@ v2.13.1 shipped with a BLOCKER bug found via post-release dogfood: `aggregateVer
|
|
|
1157
2164
|
|
|
1158
2165
|
### Multi-CC commit boundaries
|
|
1159
2166
|
|
|
1160
|
-
| Commit tag | Scope
|
|
1161
|
-
|
|
1162
|
-
| v2.13.2
|
|
2167
|
+
| Commit tag | Scope |
|
|
2168
|
+
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
2169
|
+
| v2.13.2 | `aggregateVerdict()` dedup bug fix + `peaks verdict aggregate` CLI + `envelopes.ts` unification + `prd/handoff.md` auto-regen + `MUT_REPORT` soft-block window + 4 new test files + 4 updated test files + CHANGELOG + version bump + ship-state memory |
|
|
1163
2170
|
|
|
1164
2171
|
### Verified (peaks code dogfood + QA on this session)
|
|
1165
2172
|
|
|
@@ -1221,9 +2228,9 @@ peaks-code previously received 5 heterogeneous signals (security-audit, perf-aud
|
|
|
1221
2228
|
|
|
1222
2229
|
### Multi-CC commit boundaries
|
|
1223
2230
|
|
|
1224
|
-
| Commit tag | Scope
|
|
1225
|
-
|
|
1226
|
-
| v2.13.1
|
|
2231
|
+
| Commit tag | Scope |
|
|
2232
|
+
| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
2233
|
+
| v2.13.1 | MUT_REPORT prereq + `aggregateVerdict()` service + `## Verdict reasoning` section + 4 new test files + 2 updated test files + CHANGELOG + version bump + ship-state memory |
|
|
1227
2234
|
|
|
1228
2235
|
### Verified (peaks code dogfood on this session)
|
|
1229
2236
|
|
|
@@ -1287,10 +2294,10 @@ Adapter-driven protocol (no hard-coded IDE names): `IdeAdapter.compact?: IdeComp
|
|
|
1287
2294
|
|
|
1288
2295
|
### Multi-CC commit boundaries
|
|
1289
2296
|
|
|
1290
|
-
| Commit tag
|
|
1291
|
-
|
|
2297
|
+
| Commit tag | Scope |
|
|
2298
|
+
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
1292
2299
|
| v2.13.0-alpha.1 (`edffc33`) | Two-tier threshold + auto-compact types + reader + dispatcher + orchestrator + Claude Code MVP adapter + `peaks code context-now` + `peaks code auto-compact` CLI |
|
|
1293
|
-
| `a8b9804`
|
|
2300
|
+
| `a8b9804` | In-session dogfood limitation documented (current ad-hoc Claude Code session cannot be externally compacted — reserved for follow-up PreToolUse-hook slice) |
|
|
1294
2301
|
|
|
1295
2302
|
### Verified (peaks code dogfood on this session)
|
|
1296
2303
|
|
|
@@ -1301,7 +2308,7 @@ Adapter-driven protocol (no hard-coded IDE names): `IdeAdapter.compact?: IdeComp
|
|
|
1301
2308
|
- `post-compact-detect` after pre-compact: `shouldAutoResume: true`, `reason: post-compact-match` ✓
|
|
1302
2309
|
- Trae IDE (no `compact` profile): `ratio: 0` + `source: conservative-fallback` + `below-threshold` (no auto-fire on missing signal — by design) ✓
|
|
1303
2310
|
- `pnpm tsc --noEmit`: clean
|
|
1304
|
-
- `pnpm vitest run` (full suite): `4317 / 4317` pass + 17 skipped (2 pre-existing baseline failures on session-checkpoint + _archive-removal-guard unchanged)
|
|
2311
|
+
- `pnpm vitest run` (full suite): `4317 / 4317` pass + 17 skipped (2 pre-existing baseline failures on session-checkpoint + \_archive-removal-guard unchanged)
|
|
1305
2312
|
|
|
1306
2313
|
### Out-of-scope (NOT changed)
|
|
1307
2314
|
|
|
@@ -1358,17 +2365,17 @@ v2.13.0 hard-deletes the legacy paths.
|
|
|
1358
2365
|
|
|
1359
2366
|
### Multi-CC commit boundaries
|
|
1360
2367
|
|
|
1361
|
-
| Group | Tiers | Commit tag
|
|
1362
|
-
|
|
1363
|
-
| A
|
|
1364
|
-
| B
|
|
1365
|
-
| C
|
|
1366
|
-
| D
|
|
1367
|
-
| E
|
|
2368
|
+
| Group | Tiers | Commit tag | Scope |
|
|
2369
|
+
| ----- | ----- | ----------------- | --------------------------------------------------------------------- |
|
|
2370
|
+
| A | 1+2+3 | v2.12.0-alpha.1 | Templates + new skills (fa082f5) |
|
|
2371
|
+
| B | 4+5 | v2.12.0-alpha.2 | 5→3 fanout collapse + prereq migration (6485f1c) |
|
|
2372
|
+
| C | 6 | v2.12.0-alpha.3 | peaks-txt sediment extension (ab2757b) |
|
|
2373
|
+
| D | 7 | v2.12.0-alpha.4 | fan-out SKILL.md updates (b6c4fae) |
|
|
2374
|
+
| E | 8+9 | v2.12.0 (release) | Decision records + migration + CHANGELOG + version bump (this commit) |
|
|
1368
2375
|
|
|
1369
2376
|
### Zero regression (verified per group)
|
|
1370
2377
|
|
|
1371
|
-
Each Group A→D ran the full RD→QA loop independently. Group C final QA: 14/14 sediment tests pass + 39/39 prd service tests pass; 9 pre-existing baseline failures unchanged (doctor / _archive-removal-guard / request-commands / observability / session-checkpoint / tech-service / workflow-autonomous-resume / jsonl-store / 35-checks-aggregate — all unrelated to v2.12.0). Group D final QA: 35/35 fan-out SKILL.md contract tests pass; same 9 pre-existing baseline failures.
|
|
2378
|
+
Each Group A→D ran the full RD→QA loop independently. Group C final QA: 14/14 sediment tests pass + 39/39 prd service tests pass; 9 pre-existing baseline failures unchanged (doctor / \_archive-removal-guard / request-commands / observability / session-checkpoint / tech-service / workflow-autonomous-resume / jsonl-store / 35-checks-aggregate — all unrelated to v2.12.0). Group D final QA: 35/35 fan-out SKILL.md contract tests pass; same 9 pre-existing baseline failures.
|
|
1372
2379
|
|
|
1373
2380
|
### Out-of-scope (NOT changed)
|
|
1374
2381
|
|
|
@@ -1549,6 +2556,7 @@ LLM was creating top-level `.peaks/_runtime/<change-id>/` siblings of `.peaks/_r
|
|
|
1549
2556
|
- Bumps `package.json#version` from 2.9.1 to 2.9.2
|
|
1550
2557
|
|
|
1551
2558
|
**Pre-existing violations preserved as-is** (intentional historical/forbidden documentation, all explicitly labeled):
|
|
2559
|
+
|
|
1552
2560
|
- 6 ban-explanation memory files under `.peaks/memory/` (slice 005 / 2.8.3 / 2.7.1 lessons)
|
|
1553
2561
|
- 28 historic session files under `.peaks/_runtime/2026-06-*/`
|
|
1554
2562
|
- 5 historic dispatch records under `.peaks/_sub_agents/`
|
|
@@ -1645,37 +2653,37 @@ the four-step recipe; no data is lost.
|
|
|
1645
2653
|
final root-out of a 2.8.0-era orphan (`.peaks/2026-06-22-cc-connect-orphan-cleanup/`,
|
|
1646
2654
|
4 files, 28 KB, untracked) and pins the rule across FOUR layers so a
|
|
1647
2655
|
regression cannot survive:
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
2656
|
+
1. **`.gitignore` fnmatch rule** —
|
|
2657
|
+
`.peaks/[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]-*/` blocks any
|
|
2658
|
+
future untracked date-prefix sibling at `.peaks/_runtime/<seg>/`. Path-anchored
|
|
2659
|
+
so it does not over-match (`.peaks/_runtime/<date>/` is still ignored
|
|
2660
|
+
by the existing `.peaks/_runtime/` rule, not this one).
|
|
2661
|
+
2. **Vitest guard** at
|
|
2662
|
+
`tests/unit/workspace/top-level-change-id-guard.test.ts` (8 cases)
|
|
2663
|
+
pins the gitignore rule literal, asserts fnmatch matches a synthetic
|
|
2664
|
+
candidate, asserts it does NOT match `.peaks/_runtime/-nested`
|
|
2665
|
+
candidates, scans the live working tree for orphan date-prefix
|
|
2666
|
+
siblings, scans `git ls-files` for tracked escapes, asserts both
|
|
2667
|
+
`CLAUDE.md` and `.peaks/PROJECT.md` carry the ban wording, AND
|
|
2668
|
+
asserts the CLI help text (`init-command.ts`) teaches the
|
|
2669
|
+
`.peaks/_runtime/current-change` binding path + the four
|
|
2670
|
+
migration verbs (inspect / move / delete / unlink / re-run).
|
|
2671
|
+
3. **Source-code redirect** —
|
|
2672
|
+
`src/shared/change-id.ts#setCurrentChangeId` now defaults to
|
|
2673
|
+
`{ form: 'file' }` (was `'symlink'`); the file form writes ONLY
|
|
2674
|
+
`.peaks/_runtime/current-change` and never creates
|
|
2675
|
+
`.peaks/_runtime/<changeId>/`. The legacy `'symlink'` form is kept for
|
|
2676
|
+
back-compat reads but is no longer written by `peaks workspace init`.
|
|
2677
|
+
`src/services/workspace/workspace-service.ts#initWorkspace`
|
|
2678
|
+
pre-flights the existence of `.peaks/_runtime/<changeId>/` and throws
|
|
2679
|
+
`LegacyChangeIdSiblingError` if found.
|
|
2680
|
+
4. **CLI help-text guard** — `src/cli/commands/workspace/init-command.ts`
|
|
2681
|
+
rewrites the `init` command description and `--change-id` option
|
|
2682
|
+
description so an LLM reading `peaks workspace init --help` is
|
|
2683
|
+
taught the correct path (`.peaks/_runtime/current-change`) instead
|
|
2684
|
+
of the legacy `.peaks/_runtime/<change-id>/` sibling dir. A new catch block
|
|
2685
|
+
surfaces `LegacyChangeIdSiblingError` with the 4-step migration
|
|
2686
|
+
recipe in the JSON envelope.
|
|
1679
2687
|
- **`CLI_VERSION`** sync bumped 2.8.2 → 2.8.3 (regenerated via
|
|
1680
2688
|
`scripts/sync-version.mjs` from `package.json#version`).
|
|
1681
2689
|
|
|
@@ -1801,7 +2809,7 @@ are unchanged by this release), `pnpm build` clean.
|
|
|
1801
2809
|
`src/services/companion/*` module + `src/cli/commands/companion.ts`
|
|
1802
2810
|
CLI + 14 `tests/unit/companion/*` test files are removed
|
|
1803
2811
|
(~7,700 lines deleted, 0 added). The `peaks companion install|setup|
|
|
1804
|
-
|
|
2812
|
+
start|stop|bind|status|restart|verify|token|qr` command tree is gone
|
|
1805
2813
|
along with the `peaks scan companion-binary` sub-command and the
|
|
1806
2814
|
`capability:companion-binary-resolution` doctor check. Companion
|
|
1807
2815
|
types (`CompanionConfig`, `CompanionWeixinConfig`, `CompanionChannel`,
|
|
@@ -1829,7 +2837,7 @@ are unchanged by this release), `pnpm build` clean.
|
|
|
1829
2837
|
- **`@alibaba-group/open-code-review` is now a peer dependency** —
|
|
1830
2838
|
moved from `optionalDependencies` to `peerDependencies` with
|
|
1831
2839
|
`peerDependenciesMeta."@alibaba-group/open-code-review".optional =
|
|
1832
|
-
|
|
2840
|
+
true`. The peer hint lets npm skip the optional resolution entirely
|
|
1833
2841
|
during global install; users who want second-opinion reviews via
|
|
1834
2842
|
`peaks code-review run-ocr` install it manually with
|
|
1835
2843
|
`npm i -g @alibaba-group/open-code-review`. Install hint copy in
|
|
@@ -1861,8 +2869,8 @@ are unchanged by this release), `pnpm build` clean.
|
|
|
1861
2869
|
- **Defense-in-depth comment cites H6 verbatim (Plan 5 R1-W3 MED)** —
|
|
1862
2870
|
`src/services/rd/impl.ts` defense-in-depth check now cites spec H6
|
|
1863
2871
|
(CLI 计算裁决) directly. The accompanying `docs/superpowers/specs/
|
|
1864
|
-
|
|
1865
|
-
|
|
2872
|
+
2026-06-21-context-audit-redesign-design.md` gained a new §4.3
|
|
2873
|
+
_战术审计_ subsection that consolidates §3.2 / §3.3 / H6 / H8 / Phase 3
|
|
1866
2874
|
AC-2 into a single canonical anchor (previous code references to
|
|
1867
2875
|
`§4.2` updated to `§4.3`).
|
|
1868
2876
|
|
|
@@ -1879,7 +2887,7 @@ are unchanged by this release), `pnpm build` clean.
|
|
|
1879
2887
|
is in the test name, not just the body.
|
|
1880
2888
|
|
|
1881
2889
|
- **Atomic-write crash test (Plan 5 R1-W5 LOW)** — new test
|
|
1882
|
-
|
|
2890
|
+
_unlinks .tmp when rename throws_ pins the catch→unlink fallback in
|
|
1883
2891
|
`writeImpl` (EISDIR-triggered real-rename failure). Mutation probe
|
|
1884
2892
|
KILLED: commenting out the unlink makes the test fail at the
|
|
1885
2893
|
`existsSync(tmp)` assertion.
|
|
@@ -1981,7 +2989,7 @@ are unchanged by this release), `pnpm build` clean.
|
|
|
1981
2989
|
`C:\Users\name\.trae\agents` and a Mac user gets
|
|
1982
2990
|
`/Users/name/.trae/agents`. No hardcoded `/Users/...` or `C:\...` in
|
|
1983
2991
|
any 5-IDE `awaitBatch` path. The 4 new IDE paths (`trae / trae-cn /
|
|
1984
|
-
|
|
2992
|
+
codex / cursor`) follow the same discipline.
|
|
1985
2993
|
- **`runDag` cancel-on-fail correctness (slice 1.2.c)** — when any leaf
|
|
1986
2994
|
fails, in-flight sub-agents in the same batch receive a cancel signal
|
|
1987
2995
|
at the envelope level; the orchestrator no longer waits for them to
|
|
@@ -2072,11 +3080,11 @@ are unchanged by this release), `pnpm build` clean.
|
|
|
2072
3080
|
4. `scanExportsInFile` now matches `export default function name()`
|
|
2073
3081
|
and `export default class Name`; `importedNameCount` now treats
|
|
2074
3082
|
re-exports (`export { x } from './y'`, `export type { T } from
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
3083
|
+
'./y'`) as consumer references.
|
|
3084
|
+
Bonus: `OrphanScanOptions.baseRef` lets the scan diff against an
|
|
3085
|
+
arbitrary git ref (default: `HEAD`) for branch-vs-main reviews.
|
|
2078
3086
|
- **karpathy-service code-fence skip (Slice 2.6.1.B)** — `peaks scan
|
|
2079
|
-
|
|
3087
|
+
karpathy` no longer flags anti-pattern phrases (TODO, "should be
|
|
2080
3088
|
fine", "maybe", "probably") when they appear inside fenced markdown
|
|
2081
3089
|
code blocks. Illustrative code snippets were eroding trust in the
|
|
2082
3090
|
structural scanner. The 4 guideline-marker tests
|
|
@@ -2099,7 +3107,7 @@ are unchanged by this release), `pnpm build` clean.
|
|
|
2099
3107
|
byte-identical.
|
|
2100
3108
|
- **KARPATHY_REVIEW heading-anchored gate (Slice 2.6.1.F)** — the L3
|
|
2101
3109
|
LOW (the 4 guideline `mustContain` substring markers could be
|
|
2102
|
-
spoofed by any file that just
|
|
3110
|
+
spoofed by any file that just _mentioned_ the marker names as
|
|
2103
3111
|
prose) is fixed by a new `headingMustContain: string[]` field on
|
|
2104
3112
|
`ArtifactPrerequisite`. `KARPATHY_REVIEW` now requires each of
|
|
2105
3113
|
the 4 guidelines to appear as an actual markdown heading
|
|
@@ -2116,8 +3124,7 @@ are unchanged by this release), `pnpm build` clean.
|
|
|
2116
3124
|
|
|
2117
3125
|
- **L2-install dogfood verification (Slice 2.6.1.D)** — confirmed
|
|
2118
3126
|
end-to-end on a temp HOME that the 2.6.0 tarball's `postinstall`
|
|
2119
|
-
creates `~/.claude/agents/karpathy-reviewer.md` (15.4 KB, mode
|
|
2120
|
-
0600) and the matching `.peaks-managed` marker (245 bytes, JSON
|
|
3127
|
+
creates `~/.claude/agents/karpathy-reviewer.md` (15.4 KB, mode 0600) and the matching `.peaks-managed` marker (245 bytes, JSON
|
|
2121
3128
|
with `version`, `kind`, `agentName`, `sourcePath`, `contentSha256`).
|
|
2122
3129
|
The 8-platform skill fan-out also confirmed (codex, cursor, trae,
|
|
2123
3130
|
trae-cn, qoder, tongyi-lingma, hermes, openclaw). After Slice E,
|
|
@@ -2147,7 +3154,7 @@ are unchanged by this release), `pnpm build` clean.
|
|
|
2147
3154
|
title-case section markers (Think Before Coding / Simplicity First /
|
|
2148
3155
|
Surgical Changes / Goal-Driven Execution). CLI error code
|
|
2149
3156
|
`PREREQUISITES_MISSING`. Escape hatch: `peaks request transition
|
|
2150
|
-
|
|
3157
|
+
--allow-incomplete --confirm` (assisted mode).
|
|
2151
3158
|
- **Karpathy prompt-injection across the full RD surface** (slice 1) —
|
|
2152
3159
|
4-layer guard: SKILL.md body + 3 reference docs
|
|
2153
3160
|
(`mandatory-tech-doc.md`, `rd-fanout-contracts.md`,
|
|
@@ -2169,7 +3176,7 @@ are unchanged by this release), `pnpm build` clean.
|
|
|
2169
3176
|
endpoints / components / stores / mocks in the consumer project
|
|
2170
3177
|
before any new code is written. `--project --format --scope --max-per-kind`
|
|
2171
3178
|
options; output feeds the tech-doc's `## Existing API or Component
|
|
2172
|
-
|
|
3179
|
+
Inventory` section. New service
|
|
2173
3180
|
`src/services/scan/api-surface-service.ts` (~280 lines).
|
|
2174
3181
|
- **`peaks scan orphan` CLI** (slice 4) — 4-kind orphan detection
|
|
2175
3182
|
(exportOrphan / importOrphan / cliSubcommandOrphan /
|
|
@@ -2286,8 +3293,8 @@ are unchanged by this release), `pnpm build` clean.
|
|
|
2286
3293
|
`references/checkpoint-resume.md` + `references/periodic-checkpoint.md`, but
|
|
2287
3294
|
SKILL.md body only mentioned them in a single line. New Claude Code sessions
|
|
2288
3295
|
that load SKILL.md never learned the optimization existed. `### Peaks-Loop
|
|
2289
|
-
|
|
2290
|
-
|
|
3296
|
+
Step 0.75: Resume from checkpoint` and `### Peaks-Loop Step N: Periodic
|
|
3297
|
+
checkpoint` headings are now in the body (≥ 5 lines each), with explicit
|
|
2291
3298
|
`peaks session checkpoint` / `peaks session resume` CLI mentions and
|
|
2292
3299
|
reference-doc pointers. Byte cap bumped 22K → 24K (precedent: 18K → 20K → 22K).
|
|
2293
3300
|
- **`peaks test <pattern...>` CLI with smart cache** (sub-fix B) — new CLI
|
|
@@ -2396,7 +3403,7 @@ are unchanged by this release), `pnpm build` clean.
|
|
|
2396
3403
|
(~/.claude/skills + ~/.claude/output-styles)" and writes to
|
|
2397
3404
|
`~/.claude/skills/`.
|
|
2398
3405
|
- Byte-stability: `git diff
|
|
2399
|
-
|
|
3406
|
+
src/services/ide/adapters/{claude-code,trae}-adapter.ts` returns
|
|
2400
3407
|
empty (AC8 / AC15 ✓). Dispatch chokepoints `resource-profile.ts` /
|
|
2401
3408
|
`ide-aware-standards-service.ts` / `install-skills.mjs` untouched
|
|
2402
3409
|
(R6 inverse rule ✓).
|
|
@@ -2491,6 +3498,7 @@ are unchanged by this release), `pnpm build` clean.
|
|
|
2491
3498
|
registered SOP gate.
|
|
2492
3499
|
|
|
2493
3500
|
Concrete changes:
|
|
3501
|
+
|
|
2494
3502
|
- `src/services/workspace/claude-settings-template.ts` — deleted
|
|
2495
3503
|
`PEAKS_SUBCOMMAND_ALLOWLIST`, `buildBashHookCommand()`. The
|
|
2496
3504
|
template now emits only the `Write|Edit|MultiEdit` matcher.
|
|
@@ -2543,11 +3551,12 @@ Full suite: **2957 passed, 12 skipped, 0 failed**.
|
|
|
2543
3551
|
- **`headroom-ai` preferences resolver** — `src/services/context/headroom-prefs.ts` with
|
|
2544
3552
|
`resolveHeadroomOptions` and `shouldCompressResults` (pure functions, no IO). Sub-agent
|
|
2545
3553
|
dispatch now reads `loadPreferences().headroom` and:
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2550
|
-
|
|
3554
|
+
|
|
3555
|
+
- Hard-blocks `--use-headroom` when `headroom.enabled = false` (new error code
|
|
3556
|
+
`HEADROOM_DISABLED_BY_PREFERENCE`, exit 1).
|
|
3557
|
+
- Respects `--headroom-mode <m>` CLI override > `perTouchpoint.subAgentDispatch` >
|
|
3558
|
+
`defaultMode` precedence.
|
|
3559
|
+
- Falls back to G7 metadata-only on any preferences load failure (no dispatch break).
|
|
2551
3560
|
|
|
2552
3561
|
- **New preferences fields** — `headroom.perTouchpoint.subAgentDispatch` and
|
|
2553
3562
|
`headroom.compressMinBytes` (default 4096). Shallow-merge on existing
|
|
@@ -2677,7 +3686,7 @@ Full suite: **2957 passed, 12 skipped, 0 failed**.
|
|
|
2677
3686
|
|
|
2678
3687
|
- The "one rid = one feature" pattern. From 2.1.1 onward, the
|
|
2679
3688
|
recommended workflow is: PRD -> `peaks slice decompose` -> `peaks
|
|
2680
|
-
|
|
3689
|
+
slice pick` (interactive) -> `peaks slice plan` -> N child rids.
|
|
2681
3690
|
Legacy `--type`-based fan-out still works as a fallback for rids
|
|
2682
3691
|
that pre-date the algorithm.
|
|
2683
3692
|
|
|
@@ -2755,10 +3764,10 @@ Full suite: **2957 passed, 12 skipped, 0 failed**.
|
|
|
2755
3764
|
(canonical home: proxy-service.ts).
|
|
2756
3765
|
- `~/.peaks/workspaces.json` — registered workspaces + current-workspace
|
|
2757
3766
|
pointer (canonical home: workspace-state-service.ts).
|
|
2758
|
-
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
3767
|
+
On-disk legacy bloat is auto-detected and promoted to the correct
|
|
3768
|
+
sidecar on next CLI invocation; the slim `config.json` is then
|
|
3769
|
+
rewritten. The migration is **idempotent and silent** — no user
|
|
3770
|
+
action required.
|
|
2762
3771
|
- **`peaks config migrate --apply` distributes legacy fields across
|
|
2763
3772
|
their canonical homes.** `economyMode` / `swarmMode` continue to
|
|
2764
3773
|
forward to `<project>/.peaks/preferences.json`; `providers` /
|
|
@@ -2777,9 +3786,9 @@ Full suite: **2957 passed, 12 skipped, 0 failed**.
|
|
|
2777
3786
|
|
|
2778
3787
|
- **New `src/services/config/sidecar-store.ts`** — path helpers
|
|
2779
3788
|
(`providersConfigPath()`, `proxyConfigPath()`, `workspacesConfigPath()`)
|
|
2780
|
-
|
|
2781
|
-
|
|
2782
|
-
|
|
3789
|
+
- generic `readSidecarJson<T>` / `writeSidecarJson` with the same
|
|
3790
|
+
hardened-fs guarantees as `config-safety.ts` (symlink / hardlink
|
|
3791
|
+
guards, atomic temp-file rename, 0o600 mode).
|
|
2783
3792
|
- **New `src/services/config/provider-service.ts`** —
|
|
2784
3793
|
`getMiniMaxProviderConfig()`, `setMiniMaxProviderConfig()`,
|
|
2785
3794
|
`getMiniMaxProviderStatus()`, `getAllProviders()`,
|
|
@@ -2898,10 +3907,10 @@ Full suite: **2957 passed, 12 skipped, 0 failed**.
|
|
|
2898
3907
|
call; a missing or anonymous caller-id is rejected.
|
|
2899
3908
|
3. **Mandatory `--reason`** — the CLI rejects `--reason ""`; the
|
|
2900
3909
|
reason is persisted into the slice record for the retrospective.
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
3910
|
+
Three rules, not one: each rule is independently fail-closed, so a
|
|
3911
|
+
misuse in any one of them blocks the bypass. The classifier is the
|
|
3912
|
+
pure function `canSkipSlice(slice, callerId, reason)` so the rule
|
|
3913
|
+
set is testable in isolation.
|
|
2905
3914
|
- **`peaks workflow verify-pipeline --gate-skipped`** — reporting
|
|
2906
3915
|
flag that surfaces slices that completed via the skip classifier
|
|
2907
3916
|
during a pipeline run. The default `verify-pipeline` output hides
|
|
@@ -2938,27 +3947,29 @@ Full suite: **2957 passed, 12 skipped, 0 failed**.
|
|
|
2938
3947
|
bash saw literal `const c=process.argv[1]...` and tripped
|
|
2939
3948
|
`syntax error near unexpected token`. Net effect on every 2.0.3
|
|
2940
3949
|
install on Windows + macOS + Linux:
|
|
3950
|
+
|
|
2941
3951
|
- Every Bash tool call (peaks CLI or otherwise) was rejected.
|
|
2942
3952
|
- Every Write / Edit / MultiEdit call was rejected.
|
|
2943
3953
|
- The [Fact-Forcing Gate] bypass that `peaks workspace init` was
|
|
2944
3954
|
supposed to install was therefore self-defeating — the bypass
|
|
2945
3955
|
broke the gate itself, and the gate could not be reached to fix
|
|
2946
3956
|
it.
|
|
2947
|
-
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
|
|
3957
|
+
Recovery required the user to delete `.claude/settings.local.json`
|
|
3958
|
+
manually (losing the bypass permanently) or hand-patch the
|
|
3959
|
+
`command` field (drift vs the template).
|
|
3960
|
+
The fix wraps both builders' JS payloads in a real shell-evaluable
|
|
3961
|
+
`node -e "<js>"` form via a new `wrapAsNodeOneLiner` helper in
|
|
3962
|
+
`src/services/workspace/claude-settings-template.ts`. Inner `"`
|
|
3963
|
+
are escaped to `\"`; backslashes pass through unchanged so regex
|
|
3964
|
+
literals like `/\.peaks\//` still match correctly. `process.argv[1]`
|
|
3965
|
+
is the correct slot under `-e` per Node.js docs
|
|
3966
|
+
(https://nodejs.org/api/process.html#processargv) — consistent
|
|
3967
|
+
across Windows, macOS, and Linux. The docstring is reconciled
|
|
3968
|
+
with the implementation (the previous docstring incorrectly said
|
|
3969
|
+
`argv[2]`).
|
|
2960
3970
|
|
|
2961
3971
|
Regression tests cover:
|
|
3972
|
+
|
|
2962
3973
|
- `buildBashHookCommand()` and `buildWriteHookCommand()` return
|
|
2963
3974
|
`node -e "..."` form.
|
|
2964
3975
|
- Inner `"` are escaped to `\"`.
|
|
@@ -3073,6 +4084,7 @@ config surface.
|
|
|
3073
4084
|
> `optionalDependencies`; everything else in this section
|
|
3074
4085
|
> (env-var injection, `config-template` CLI, `missingKeys`,
|
|
3075
4086
|
> source-of-truth under `peaksConfig.ocr.llm`) is unchanged.
|
|
4087
|
+
|
|
3076
4088
|
- **`detectOcr` / `runOcrReview` no longer read `~/.opencodereview/config.json`.**
|
|
3077
4089
|
The source of truth is `peaksConfig.ocr.llm` (parsed by
|
|
3078
4090
|
`getOcrLlmConfig()` in `config-service.ts`). Missing fields surface
|
|
@@ -3134,7 +4146,7 @@ subprocess ignores it when peaks-loop's env vars are present).
|
|
|
3134
4146
|
supported IDE platforms in one command.
|
|
3135
4147
|
|
|
3136
4148
|
- **`peaks audit red-lines`** — L2 catalog audit (P0/P1/P2-a/P2-b
|
|
3137
|
-
enforcers) for skills/SKILL.md, references
|
|
4149
|
+
enforcers) for skills/SKILL.md, references/\*.md, and the agent shield.
|
|
3138
4150
|
|
|
3139
4151
|
- **`peaks agent run`** — ECC 64 agents soft-optional integration
|
|
3140
4152
|
(spec §7.2). When the L3 stack is installed, peaks delegates to it;
|
|
@@ -3169,6 +4181,7 @@ subprocess ignores it when peaks-loop's env vars are present).
|
|
|
3169
4181
|
expands globs on disk before spawning.
|
|
3170
4182
|
|
|
3171
4183
|
- **(2026-06-12) Three bugs surfaced by real-world ice-cola dogfood:**
|
|
4184
|
+
|
|
3172
4185
|
- memory-extract was called without `--apply` → always dry-ran, never
|
|
3173
4186
|
actually wrote.
|
|
3174
4187
|
- `.claude/skills/**/SKILL.md` (the standard Claude-Code consumer
|
|
@@ -3292,7 +4305,7 @@ call-to-action text differ.
|
|
|
3292
4305
|
Chinese tagline: `peaks-loop: 跨 AI IDE 的工程门禁与编排`).
|
|
3293
4306
|
- `README-en.md` synced to mirror the new layout (typing animation
|
|
3294
4307
|
uses the English tagline: `peaks-loop: cross-AI-IDE engineering
|
|
3295
|
-
|
|
4308
|
+
gates & orchestration`).
|
|
3296
4309
|
- Card anchors renamed to ASCII-friendly slugs on the English file
|
|
3297
4310
|
(`30-seconds-to-running`, `5-minute-onboarding`, `11-skills-in-the-family`,
|
|
3298
4311
|
`killer-feature-un-bypassable-gates`) so the README renders
|