peaks-loop 3.1.2 → 4.0.0-beta.10
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 +67 -12
- package/CHANGELOG.md +576 -116
- package/README-en.md +155 -209
- package/README.md +149 -287
- package/agents/karpathy-reviewer.md +3 -3
- package/bin/peaks.js +1 -1
- package/dist/cli/cli-helpers.d.ts +43 -0
- package/dist/cli/cli-helpers.js +86 -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/adapter-commands.d.ts +30 -0
- package/dist/cli/commands/adapter-commands.js +35 -0
- package/dist/cli/commands/asset-commands.d.ts +45 -0
- package/dist/cli/commands/asset-commands.js +404 -0
- package/dist/cli/commands/bee-commands.d.ts +26 -0
- package/dist/cli/commands/bee-commands.js +169 -0
- package/dist/cli/commands/code-commands.d.ts +80 -0
- package/dist/cli/commands/code-commands.js +798 -0
- package/dist/cli/commands/context-commands.d.ts +21 -0
- package/dist/cli/commands/context-commands.js +254 -0
- package/dist/cli/commands/contract-commands.d.ts +26 -0
- package/dist/cli/commands/contract-commands.js +114 -0
- package/dist/cli/commands/core/session-command.js +241 -0
- package/dist/cli/commands/core/skill-command.js +300 -0
- package/dist/cli/commands/dispatch-commands.js +351 -0
- package/dist/cli/commands/dispatch-from-dag.js +251 -0
- package/dist/cli/commands/evolution-commands.d.ts +27 -0
- package/dist/cli/commands/evolution-commands.js +393 -0
- package/dist/cli/commands/hook-handle.js +157 -0
- package/dist/cli/commands/ide-commands.d.ts +25 -0
- package/dist/cli/commands/ide-commands.js +42 -0
- package/dist/cli/commands/job-commands.js +289 -0
- package/dist/cli/commands/loop-commands.d.ts +27 -0
- package/dist/cli/commands/loop-commands.js +262 -0
- package/dist/cli/commands/observability-commands.js +201 -0
- package/dist/cli/commands/perf-audit-commands.js +132 -0
- package/dist/cli/commands/polyrepo-commands.d.ts +37 -0
- package/dist/cli/commands/polyrepo-commands.js +155 -0
- package/dist/cli/commands/project-commands.js +253 -0
- package/dist/cli/commands/runtime-commands.d.ts +52 -0
- package/dist/cli/commands/runtime-commands.js +150 -0
- package/dist/cli/commands/security-audit-commands.js +132 -0
- package/dist/cli/commands/sediment-commands.d.ts +80 -0
- package/dist/cli/commands/sediment-commands.js +649 -0
- package/dist/cli/commands/session-auto-compact-hook-command.js +127 -0
- package/dist/cli/commands/session-migrate-skill-name.d.ts +17 -0
- package/dist/cli/commands/session-migrate-skill-name.js +41 -0
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.d.ts +67 -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 +68 -0
- package/dist/cli/commands/skill-visibility.d.ts +8 -0
- package/dist/cli/commands/skill-visibility.js +63 -0
- package/dist/cli/commands/slice-commands.js +492 -0
- package/dist/cli/commands/sub-agent-commands.d.ts +22 -0
- package/dist/cli/commands/sub-agent-commands.js +19 -0
- package/dist/cli/commands/sub-agent-shared.d.ts +99 -0
- package/dist/cli/commands/understand-commands.js +148 -0
- package/dist/cli/commands/upgrade-commands.d.ts +23 -0
- package/dist/cli/commands/upgrade-commands.js +119 -0
- package/dist/cli/commands/user-touchpoint-commands.d.ts +18 -0
- package/dist/cli/commands/user-touchpoint-commands.js +78 -0
- package/dist/cli/commands/verdict-aggregate-command.d.ts +14 -0
- package/dist/cli/commands/verdict-aggregate-command.js +106 -0
- package/dist/cli/commands/workflow-commands.js +544 -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/program.js +408 -0
- package/dist/services/adapter/adapter-registry.d.ts +48 -0
- package/dist/services/adapter/adapter-registry.js +186 -0
- package/dist/services/adapter/adapter.d.ts +27 -0
- package/dist/services/adapter/adapter.js +5 -0
- package/dist/services/adapter/auto-adapter.d.ts +11 -0
- package/dist/services/adapter/auto-adapter.js +15 -0
- package/dist/services/adapter/claude-adapter.d.ts +14 -0
- package/dist/services/adapter/claude-adapter.js +40 -0
- package/dist/services/adapter/codex-adapter.d.ts +14 -0
- package/dist/services/adapter/codex-adapter.js +14 -0
- package/dist/services/adapter/copilot-adapter.d.ts +14 -0
- package/dist/services/adapter/copilot-adapter.js +14 -0
- package/dist/services/artifacts/repair-cycle-service.js +52 -0
- package/dist/services/audit/enforcers/active-skill-resolver.d.ts +29 -0
- package/dist/services/audit/enforcers/active-skill-resolver.js +71 -0
- package/dist/services/audit/enforcers/code-ban.d.ts +23 -0
- package/dist/services/audit/enforcers/code-ban.js +27 -0
- package/dist/services/audit/red-line-catalog.d.ts +51 -0
- package/dist/services/audit/red-line-catalog.js +195 -0
- package/dist/services/audit/scanners/skills-tree-scanner.js +68 -0
- package/dist/services/audit/types.d.ts +86 -0
- package/dist/services/code/auto-compact-orchestrator.d.ts +98 -0
- package/dist/services/code/auto-compact-orchestrator.js +343 -0
- package/dist/services/code/dag-orchestrator.d.ts +128 -0
- package/dist/services/code/dag-orchestrator.js +304 -0
- package/dist/services/code/emit-handoff.d.ts +49 -0
- package/dist/services/code/emit-handoff.js +79 -0
- package/dist/services/code/job-shape-decision.d.ts +71 -0
- package/dist/services/code/job-shape-decision.js +151 -0
- package/dist/services/code/mode-gate.d.ts +163 -0
- package/dist/services/code/mode-gate.js +212 -0
- package/dist/services/code/post-compact-detector.d.ts +61 -0
- package/dist/services/code/post-compact-detector.js +240 -0
- package/dist/services/code/status-line-renderer.d.ts +34 -0
- package/dist/services/code/step-08-gate.d.ts +90 -0
- package/dist/services/code/step-08-gate.js +136 -0
- package/dist/services/code/user-touchpoint-classifier.d.ts +44 -0
- package/dist/services/code/user-touchpoint-classifier.js +145 -0
- package/dist/services/config/model-routing.d.ts +66 -0
- package/dist/services/config/model-routing.js +105 -0
- package/dist/services/context/auto-compact-dispatcher.d.ts +37 -0
- package/dist/services/context/auto-compact-dispatcher.js +240 -0
- package/dist/services/context/auto-compact-types.d.ts +143 -0
- package/dist/services/context/context-schema.d.ts +415 -0
- package/dist/services/crystallization/crystallization-service.d.ts +239 -0
- package/dist/services/crystallization/crystallization-service.js +397 -0
- package/dist/services/crystallization/crystallization-store.d.ts +75 -0
- package/dist/services/crystallization/crystallization-store.js +193 -0
- package/dist/services/crystallization/crystallization-types.d.ts +313 -0
- package/dist/services/crystallization/crystallization-types.js +299 -0
- package/dist/services/crystallization/evidence-brief-builder.d.ts +237 -0
- package/dist/services/crystallization/evidence-brief-builder.js +240 -0
- package/dist/services/dispatch/batch-counter.js +102 -0
- package/dist/services/dispatch/leak-detector.js +72 -0
- package/dist/services/dispatch/slice-dag.d.ts +81 -0
- package/dist/services/dispatch/test-tool-detection.d.ts +36 -0
- package/dist/services/dispatch/test-tool-detection.js +46 -0
- package/dist/services/doctor/doctor-service.js +929 -0
- package/dist/services/evolution/evolution-service.d.ts +137 -0
- package/dist/services/evolution/evolution-service.js +281 -0
- package/dist/services/evolution/evolution-store.d.ts +57 -0
- package/dist/services/evolution/evolution-store.js +232 -0
- package/dist/services/evolution/evolution-types.d.ts +706 -0
- package/dist/services/evolution/evolution-types.js +286 -0
- package/dist/services/evolution/independent-evaluator-runner.d.ts +90 -0
- package/dist/services/evolution/independent-evaluator-runner.js +106 -0
- package/dist/services/evolution/regression-skeptic-runner.d.ts +64 -0
- package/dist/services/evolution/regression-skeptic-runner.js +113 -0
- package/dist/services/feedback/feedback-promotion-service.js +300 -0
- package/dist/services/filesystem/file-lock.js +152 -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-progress-store.js +70 -0
- package/dist/services/job/job-resource-snapshot.js +75 -0
- package/dist/services/loop/loop-bee-relation-service.d.ts +107 -0
- package/dist/services/loop/loop-bee-relation-service.js +211 -0
- package/dist/services/loop/loop-bee-relation-store.d.ts +53 -0
- package/dist/services/loop/loop-bee-relation-store.js +130 -0
- package/dist/services/loop/loop-bee-relation-types.d.ts +118 -0
- package/dist/services/loop/loop-bee-relation-types.js +114 -0
- package/dist/services/loop/loop-release-service.d.ts +46 -0
- package/dist/services/loop/loop-release-service.js +66 -0
- package/dist/services/loop/loop-release-store.d.ts +55 -0
- package/dist/services/loop/loop-release-store.js +134 -0
- package/dist/services/loop/loop-release-types.d.ts +250 -0
- package/dist/services/loop/loop-release-types.js +162 -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/memory/project-memory-service.js +817 -0
- package/dist/services/migrate-skill-name/migrate.d.ts +17 -0
- package/dist/services/migrate-skill-name/migrate.js +152 -0
- package/dist/services/migrate-skill-name/schema.d.ts +42 -0
- package/dist/services/migrate-skill-name/schema.js +25 -0
- package/dist/services/observability/aggregation.d.ts +64 -0
- package/dist/services/observability/aggregation.js +217 -0
- package/dist/services/perf/perf-baseline-service.d.ts +70 -0
- package/dist/services/perf/perf-baseline-service.js +214 -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/handoff-types.d.ts +64 -0
- package/dist/services/prd/handoff-types.js +22 -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.d.ts +38 -0
- package/dist/services/preferences/preferences-types.d.ts +148 -0
- package/dist/services/progress/progress-service.d.ts +125 -0
- package/dist/services/progress/progress-service.js +192 -0
- package/dist/services/providers/minimax-worker-service.d.ts +21 -0
- package/dist/services/providers/minimax-worker-service.js +83 -0
- package/dist/services/rd/rd-service.js +441 -0
- package/dist/services/rd/standards-diagnostic.d.ts +76 -0
- package/dist/services/rd/standards-diagnostic.js +166 -0
- package/dist/services/rd/types.d.ts +252 -0
- package/dist/services/recommendations/capability-seed-items.js +140 -0
- package/dist/services/recommendations/capability-seed-mappings.js +54 -0
- package/dist/services/recommendations/recommendation-service.js +106 -0
- package/dist/services/refactor/refactor-service.d.ts +9 -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/sc/sc-service.js +552 -0
- package/dist/services/scan/archetype-service.js +254 -0
- package/dist/services/scan/scan-types.d.ts +59 -0
- package/dist/services/sediment/dispose-confirm.d.ts +9 -0
- package/dist/services/sediment/dispose-confirm.js +5 -0
- package/dist/services/sediment/json-schema.d.ts +247 -0
- package/dist/services/sediment/json-schema.js +26 -0
- package/dist/services/sediment/manifest-lint.d.ts +13 -0
- package/dist/services/sediment/manifest-lint.js +11 -0
- package/dist/services/sediment/pool-paths.d.ts +22 -0
- package/dist/services/sediment/pool-paths.js +25 -0
- package/dist/services/sediment/pool-read.d.ts +20 -0
- package/dist/services/sediment/pool-read.js +73 -0
- package/dist/services/sediment/pool-rebuild-index.d.ts +15 -0
- package/dist/services/sediment/pool-rebuild-index.js +28 -0
- package/dist/services/sediment/pool-write.d.ts +14 -0
- package/dist/services/sediment/pool-write.js +25 -0
- package/dist/services/sediment/promotion-gate.d.ts +12 -0
- package/dist/services/sediment/promotion-gate.js +20 -0
- package/dist/services/sediment/types.d.ts +52 -0
- package/dist/services/sediment/types.js +1 -0
- package/dist/services/session/binding-store.d.ts +161 -0
- package/dist/services/session/binding-store.js +509 -0
- package/dist/services/session/caller-id-types.d.ts +77 -0
- package/dist/services/session/session-manager.d.ts +168 -0
- package/dist/services/session/session-manager.js +502 -0
- package/dist/services/share/bundle-reader.d.ts +100 -0
- package/dist/services/share/bundle-reader.js +434 -0
- package/dist/services/share/bundle-types.d.ts +392 -0
- package/dist/services/share/bundle-types.js +318 -0
- package/dist/services/share/bundle-writer.d.ts +97 -0
- package/dist/services/share/bundle-writer.js +429 -0
- package/dist/services/share/run-state-contract.d.ts +133 -0
- package/dist/services/share/run-state-contract.js +138 -0
- package/dist/services/signal/cancel-handler.js +76 -0
- package/dist/services/skill/resume-detector.js +334 -0
- package/dist/services/skill/skill-scheduler.d.ts +40 -0
- package/dist/services/skill/skill-scheduler.js +53 -0
- package/dist/services/skill/skill-search-service.d.ts +88 -0
- package/dist/services/skill/skill-search-service.js +228 -0
- package/dist/services/skillhub/release-diff.d.ts +18 -0
- package/dist/services/skillhub/release-diff.js +38 -0
- package/dist/services/skillhub/release-export.d.ts +8 -0
- package/dist/services/skillhub/release-export.js +31 -0
- package/dist/services/skillhub/release-gc-blobs.d.ts +13 -0
- package/dist/services/skillhub/release-gc-blobs.js +32 -0
- package/dist/services/skillhub/release-import.d.ts +7 -0
- package/dist/services/skillhub/release-import.js +64 -0
- package/dist/services/skillhub/release-retain.d.ts +23 -0
- package/dist/services/skillhub/release-retain.js +94 -0
- package/dist/services/skillhub/sqlite-store.d.ts +22 -0
- package/dist/services/skillhub/sqlite-store.js +63 -0
- package/dist/services/skillhub/tar-runtime.d.ts +21 -0
- package/dist/services/skillhub/tar-runtime.js +91 -0
- package/dist/services/skillhub/types.d.ts +115 -0
- package/dist/services/skillhub/types.js +1 -0
- package/dist/services/skills/skill-conformance-service.js +139 -0
- package/dist/services/skills/skill-presence-service.d.ts +158 -0
- package/dist/services/skills/skill-presence-service.js +474 -0
- package/dist/services/skills/skill-registry.js +67 -0
- package/dist/services/skills/skill-runbook-service.js +128 -0
- package/dist/services/slice/slice-check-service.js +459 -0
- package/dist/services/slice/slice-check-types.d.ts +104 -0
- package/dist/services/slice/slice-check-types.js +28 -0
- package/dist/services/slice/slice-decompose-types.d.ts +263 -0
- package/dist/services/slice/slice-decompose-types.js +30 -0
- package/dist/services/standards/ide-aware-standards-service.js +91 -0
- package/dist/services/standards/loop-engineering-lint.d.ts +38 -0
- package/dist/services/standards/loop-engineering-lint.js +101 -0
- package/dist/services/standards/loop-engineering-readiness-lint.d.ts +111 -0
- package/dist/services/standards/loop-engineering-readiness-lint.js +248 -0
- package/dist/services/standards/migrate-claude-rules-service.js +214 -0
- package/dist/services/standards/missing-standards-detector.d.ts +81 -0
- package/dist/services/standards/missing-standards-detector.js +139 -0
- package/dist/services/standards/project-standards-service.d.ts +114 -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-types.d.ts +50 -0
- package/dist/services/understand/understand-types.js +1 -0
- package/dist/services/upgrade/1x-detector-service.js +94 -0
- package/dist/services/upgrade/upgrade-service.d.ts +81 -0
- package/dist/services/upgrade/upgrade-service.js +403 -0
- package/dist/services/verdict/verdict-aggregator.d.ts +94 -0
- package/dist/services/workflow/pipeline-verify-service.d.ts +90 -0
- package/dist/services/workflow/pipeline-verify-service.js +449 -0
- package/dist/services/workflow/workflow-autonomous-service.d.ts +100 -0
- package/dist/services/workflow/workflow-autonomous-service.js +306 -0
- package/dist/services/workflow/workflow-router-service.d.ts +85 -0
- package/dist/services/workflow/workflow-router-service.js +233 -0
- package/dist/services/workspace/claude-settings-template.d.ts +101 -0
- package/dist/services/workspace/claude-settings-template.js +254 -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-claude-settings-materializer.d.ts +45 -0
- package/dist/services/workspace/workspace-claude-settings-materializer.js +194 -0
- package/dist/services/workspace/workspace-service.d.ts +177 -0
- package/dist/services/workspace/workspace-service.js +432 -0
- package/dist/shared/paths.d.ts +6 -0
- package/dist/shared/paths.js +50 -0
- package/dist/shared/version.d.ts +1 -0
- package/dist/shared/version.js +1 -0
- package/dist/skills/peaks-maker/index.d.ts +5 -0
- package/dist/skills/peaks-maker/index.js +32 -0
- package/examples/video-demo/README.md +142 -0
- 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/output-styles/peaks-skill-swarm.md +3 -3
- package/package.json +35 -12
- package/scripts/copy-templates.mjs +64 -0
- package/scripts/install-skills.mjs +42 -14
- package/skills/bee/peaks-prd/SKILL.md +325 -0
- package/skills/bee/peaks-prd/references/workflow.md +43 -0
- package/skills/bee/peaks-qa/SKILL.md +246 -0
- package/skills/bee/peaks-qa/references/artifact-per-request.md +25 -0
- package/skills/bee/peaks-qa/references/browser-validation-contracts.md +51 -0
- package/skills/bee/peaks-qa/references/external-capability-guidance.md +9 -0
- package/skills/bee/peaks-qa/references/qa-fanout-contract.md +158 -0
- package/skills/bee/peaks-qa/references/qa-sub-agent-dispatch.md +46 -0
- package/skills/bee/peaks-rd/SKILL.md +286 -0
- package/skills/bee/peaks-rd/references/browser-self-test-contracts.md +29 -0
- package/skills/bee/peaks-rd/references/library-version-awareness.md +30 -0
- package/skills/bee/peaks-rd/references/mock-data-placement.md +40 -0
- package/skills/bee/peaks-rd/references/parallel-review-fanout.md +90 -0
- package/skills/bee/peaks-rd/references/rd-fanout-contracts.md +216 -0
- package/skills/bee/peaks-rd/references/rd-runbook.md +190 -0
- package/skills/bee/peaks-rd/references/rd-sub-agent-dispatch.md +111 -0
- package/skills/bee/peaks-rd/references/rd-transition-gates.md +148 -0
- package/skills/bee/peaks-rd/references/skill-presence-and-title.md +22 -0
- package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +68 -0
- package/skills/bee/peaks-reviewer/SKILL.md +76 -0
- package/skills/bee/peaks-sc/SKILL.md +172 -0
- package/skills/bee/peaks-txt/SKILL.md +309 -0
- package/skills/bee/peaks-ui/SKILL.md +375 -0
- package/skills/peaks-audit/SKILL.md +1 -1
- package/skills/peaks-code/SKILL.md +288 -0
- package/skills/peaks-code/references/a2a-artifact-mapping.md +115 -0
- package/skills/peaks-code/references/anchoring-and-session-info.md +34 -0
- package/skills/peaks-code/references/artifact-contracts.md +65 -0
- package/skills/peaks-code/references/boundaries.md +21 -0
- package/skills/peaks-code/references/browser-workflow.md +127 -0
- package/skills/peaks-code/references/codegraph-orchestration.md +5 -0
- package/skills/peaks-code/references/command-migration.md +3 -0
- package/skills/peaks-code/references/completion-handoff.md +23 -0
- package/skills/peaks-code/references/context-governance.md +204 -0
- package/skills/peaks-code/references/dag-orchestrator.md +56 -0
- package/skills/peaks-code/references/external-references.md +15 -0
- package/skills/peaks-code/references/external-skill-invocation.md +72 -0
- package/skills/peaks-code/references/fanout-mandatory.md +109 -0
- package/skills/peaks-code/references/fast-mode.md +23 -0
- package/skills/peaks-code/references/frontend-only-mode.md +87 -0
- package/skills/peaks-code/references/job-loop.md +68 -0
- package/skills/peaks-code/references/local-artifact-workspace.md +79 -0
- package/skills/peaks-code/references/micro-cycle.md +316 -0
- package/skills/peaks-code/references/mode-selection-with-stale-presence.md +124 -0
- package/skills/peaks-code/references/mode-selection.md +21 -0
- package/skills/peaks-code/references/periodic-checkpoint.md +81 -0
- package/skills/peaks-code/references/project-scan-checklist.md +138 -0
- package/skills/peaks-code/references/quality-gate-cheatsheet.md +13 -0
- package/skills/peaks-code/references/refactor-mode.md +24 -0
- package/skills/peaks-code/references/resume-detection.md +63 -0
- package/skills/peaks-code/references/runbook.md +247 -0
- package/skills/peaks-code/references/skill-presence-and-title.md +31 -0
- package/skills/peaks-code/references/standards-preflight.md +23 -0
- package/skills/peaks-code/references/step-0-55-1x-detection.md +83 -0
- package/skills/peaks-code/references/step-0-8-gate.md +60 -0
- package/skills/peaks-code/references/step-11-memory-sediment.md +56 -0
- package/skills/peaks-code/references/sub-agent-dispatch.md +334 -0
- package/skills/peaks-code/references/swarm-dispatch-contract.md +230 -0
- package/skills/peaks-code/references/workflow-gates-and-types.md +186 -0
- package/skills/peaks-code/references/workflow.md +38 -0
- package/skills/peaks-content/SKILL.md +272 -0
- package/skills/peaks-doctor/SKILL.md +1 -1
- package/skills/peaks-doctor/references/doctor-check-catalog.md +1 -1
- package/skills/peaks-final-review/SKILL.md +3 -3
- package/skills/peaks-final-review/references/4-dimensions.md +1 -1
- package/skills/peaks-ide/SKILL.md +1 -1
- package/skills/peaks-issue-fix-orchestrator/SKILL.md +307 -0
- package/skills/peaks-resume/SKILL.md +81 -0
- package/skills/peaks-slice-decompose/SKILL.md +61 -1
- package/skills/peaks-solo/SKILL.md +136 -231
- 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/SKILL.md +1 -1
- package/skills/peaks-status/SKILL.md +120 -0
- package/skills/peaks-test/SKILL.md +84 -0
- package/dist/src/cli/cli-helpers.d.ts +0 -25
- package/dist/src/cli/cli-helpers.js +0 -78
- package/dist/src/cli/commands/context-commands.d.ts +0 -21
- package/dist/src/cli/commands/context-commands.js +0 -254
- package/dist/src/cli/commands/contract-commands.d.ts +0 -26
- package/dist/src/cli/commands/contract-commands.js +0 -114
- package/dist/src/cli/commands/core/session-command.js +0 -229
- package/dist/src/cli/commands/core/skill-command.js +0 -275
- 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/hook-handle.js +0 -157
- package/dist/src/cli/commands/job-commands.js +0 -289
- package/dist/src/cli/commands/loop-commands.d.ts +0 -21
- package/dist/src/cli/commands/loop-commands.js +0 -128
- package/dist/src/cli/commands/observability-commands.js +0 -201
- package/dist/src/cli/commands/perf-audit-commands.js +0 -132
- package/dist/src/cli/commands/project-commands.js +0 -248
- package/dist/src/cli/commands/security-audit-commands.js +0 -132
- package/dist/src/cli/commands/session-auto-compact-hook-command.js +0 -127
- package/dist/src/cli/commands/slice-commands.js +0 -492
- package/dist/src/cli/commands/solo-commands.d.ts +0 -80
- package/dist/src/cli/commands/solo-commands.js +0 -798
- package/dist/src/cli/commands/sub-agent-commands.d.ts +0 -22
- package/dist/src/cli/commands/sub-agent-commands.js +0 -19
- package/dist/src/cli/commands/sub-agent-shared.d.ts +0 -99
- package/dist/src/cli/commands/understand-commands.js +0 -148
- package/dist/src/cli/commands/upgrade-commands.d.ts +0 -23
- package/dist/src/cli/commands/upgrade-commands.js +0 -119
- package/dist/src/cli/commands/user-touchpoint-commands.d.ts +0 -18
- package/dist/src/cli/commands/user-touchpoint-commands.js +0 -78
- package/dist/src/cli/commands/verdict-aggregate-command.d.ts +0 -14
- package/dist/src/cli/commands/verdict-aggregate-command.js +0 -106
- package/dist/src/cli/commands/workflow-commands.js +0 -535
- 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/program.js +0 -351
- package/dist/src/services/artifacts/repair-cycle-service.js +0 -52
- package/dist/src/services/audit/enforcers/active-skill-resolver.d.ts +0 -29
- package/dist/src/services/audit/enforcers/active-skill-resolver.js +0 -71
- package/dist/src/services/audit/enforcers/solo-code-ban.d.ts +0 -23
- package/dist/src/services/audit/enforcers/solo-code-ban.js +0 -27
- package/dist/src/services/audit/red-line-catalog.d.ts +0 -51
- package/dist/src/services/audit/red-line-catalog.js +0 -195
- package/dist/src/services/audit/scanners/skills-tree-scanner.js +0 -46
- package/dist/src/services/audit/types.d.ts +0 -86
- 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/context/auto-compact-dispatcher.d.ts +0 -37
- package/dist/src/services/context/auto-compact-dispatcher.js +0 -240
- package/dist/src/services/context/auto-compact-types.d.ts +0 -143
- package/dist/src/services/context/context-schema.d.ts +0 -415
- package/dist/src/services/dispatch/batch-counter.js +0 -102
- package/dist/src/services/dispatch/leak-detector.js +0 -72
- package/dist/src/services/dispatch/slice-dag.d.ts +0 -81
- package/dist/src/services/dispatch/test-tool-detection.d.ts +0 -36
- package/dist/src/services/dispatch/test-tool-detection.js +0 -46
- package/dist/src/services/doctor/doctor-service.js +0 -929
- package/dist/src/services/feedback/feedback-promotion-service.js +0 -300
- package/dist/src/services/filesystem/file-lock.js +0 -129
- 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-progress-store.js +0 -70
- package/dist/src/services/job/job-resource-snapshot.js +0 -47
- 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/memory/project-memory-service.js +0 -817
- package/dist/src/services/observability/aggregation.d.ts +0 -64
- package/dist/src/services/observability/aggregation.js +0 -217
- package/dist/src/services/perf/perf-baseline-service.d.ts +0 -70
- package/dist/src/services/perf/perf-baseline-service.js +0 -214
- package/dist/src/services/prd/handoff-types.d.ts +0 -64
- package/dist/src/services/prd/handoff-types.js +0 -22
- package/dist/src/services/preferences/preferences-service.d.ts +0 -38
- package/dist/src/services/preferences/preferences-types.d.ts +0 -148
- package/dist/src/services/progress/progress-service.d.ts +0 -125
- package/dist/src/services/progress/progress-service.js +0 -192
- 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/standards-diagnostic.d.ts +0 -76
- package/dist/src/services/rd/standards-diagnostic.js +0 -166
- 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/recommendation-service.js +0 -106
- package/dist/src/services/refactor/refactor-service.d.ts +0 -9
- package/dist/src/services/sc/sc-service.js +0 -552
- package/dist/src/services/scan/archetype-service.js +0 -242
- package/dist/src/services/scan/scan-types.d.ts +0 -59
- package/dist/src/services/session/binding-store.d.ts +0 -161
- package/dist/src/services/session/binding-store.js +0 -509
- package/dist/src/services/session/caller-id-types.d.ts +0 -77
- package/dist/src/services/session/session-manager.d.ts +0 -168
- package/dist/src/services/session/session-manager.js +0 -502
- package/dist/src/services/signal/cancel-handler.js +0 -76
- package/dist/src/services/skill/resume-detector.js +0 -334
- package/dist/src/services/skill/skill-scheduler.d.ts +0 -40
- package/dist/src/services/skill/skill-scheduler.js +0 -53
- package/dist/src/services/skills/skill-conformance-service.js +0 -136
- package/dist/src/services/skills/skill-presence-service.d.ts +0 -158
- package/dist/src/services/skills/skill-presence-service.js +0 -474
- package/dist/src/services/skills/skill-registry.js +0 -40
- 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/slice/slice-check-types.d.ts +0 -104
- package/dist/src/services/slice/slice-check-types.js +0 -28
- package/dist/src/services/slice/slice-decompose-types.d.ts +0 -263
- package/dist/src/services/slice/slice-decompose-types.js +0 -30
- package/dist/src/services/solo/auto-compact-orchestrator.d.ts +0 -98
- package/dist/src/services/solo/auto-compact-orchestrator.js +0 -343
- package/dist/src/services/solo/dag-orchestrator.d.ts +0 -128
- package/dist/src/services/solo/dag-orchestrator.js +0 -304
- package/dist/src/services/solo/emit-handoff.d.ts +0 -49
- package/dist/src/services/solo/emit-handoff.js +0 -79
- package/dist/src/services/solo/job-shape-decision.d.ts +0 -71
- package/dist/src/services/solo/job-shape-decision.js +0 -151
- package/dist/src/services/solo/mode-gate.d.ts +0 -163
- package/dist/src/services/solo/mode-gate.js +0 -212
- package/dist/src/services/solo/post-compact-detector.d.ts +0 -61
- package/dist/src/services/solo/post-compact-detector.js +0 -240
- package/dist/src/services/solo/status-line-renderer.d.ts +0 -34
- package/dist/src/services/solo/step-08-gate.d.ts +0 -90
- package/dist/src/services/solo/step-08-gate.js +0 -136
- package/dist/src/services/solo/user-touchpoint-classifier.d.ts +0 -44
- package/dist/src/services/solo/user-touchpoint-classifier.js +0 -145
- 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.d.ts +0 -114
- package/dist/src/services/standards/project-standards-service.js +0 -574
- package/dist/src/services/understand/understand-types.d.ts +0 -50
- package/dist/src/services/upgrade/1x-detector-service.js +0 -94
- package/dist/src/services/upgrade/upgrade-service.d.ts +0 -47
- package/dist/src/services/upgrade/upgrade-service.js +0 -381
- package/dist/src/services/verdict/verdict-aggregator.d.ts +0 -94
- package/dist/src/services/workflow/pipeline-verify-service.d.ts +0 -90
- package/dist/src/services/workflow/pipeline-verify-service.js +0 -449
- package/dist/src/services/workflow/workflow-autonomous-service.d.ts +0 -100
- package/dist/src/services/workflow/workflow-autonomous-service.js +0 -306
- 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/claude-settings-template.d.ts +0 -101
- package/dist/src/services/workspace/claude-settings-template.js +0 -254
- package/dist/src/services/workspace/workspace-claude-settings-materializer.d.ts +0 -45
- package/dist/src/services/workspace/workspace-claude-settings-materializer.js +0 -194
- package/dist/src/services/workspace/workspace-service.d.ts +0 -177
- package/dist/src/services/workspace/workspace-service.js +0 -432
- package/dist/src/shared/paths.d.ts +0 -6
- package/dist/src/shared/paths.js +0 -50
- package/dist/src/shared/version.d.ts +0 -1
- package/dist/src/shared/version.js +0 -1
- package/skills/peaks-prd/SKILL.md +0 -319
- package/skills/peaks-prd/references/workflow.md +0 -43
- package/skills/peaks-qa/SKILL.md +0 -240
- package/skills/peaks-qa/references/artifact-per-request.md +0 -25
- package/skills/peaks-qa/references/browser-validation-contracts.md +0 -51
- package/skills/peaks-qa/references/external-capability-guidance.md +0 -9
- package/skills/peaks-qa/references/qa-fanout-contract.md +0 -158
- package/skills/peaks-qa/references/qa-sub-agent-dispatch.md +0 -46
- package/skills/peaks-rd/SKILL.md +0 -279
- package/skills/peaks-rd/references/browser-self-test-contracts.md +0 -29
- package/skills/peaks-rd/references/library-version-awareness.md +0 -30
- package/skills/peaks-rd/references/mock-data-placement.md +0 -40
- package/skills/peaks-rd/references/parallel-review-fanout.md +0 -90
- package/skills/peaks-rd/references/rd-fanout-contracts.md +0 -216
- package/skills/peaks-rd/references/rd-runbook.md +0 -190
- package/skills/peaks-rd/references/rd-sub-agent-dispatch.md +0 -111
- package/skills/peaks-rd/references/rd-transition-gates.md +0 -148
- package/skills/peaks-rd/references/skill-presence-and-title.md +0 -22
- package/skills/peaks-rd/references/writing-handoff-frontmatter.md +0 -68
- package/skills/peaks-reviewer/SKILL.md +0 -76
- package/skills/peaks-sc/SKILL.md +0 -166
- package/skills/peaks-solo/references/a2a-artifact-mapping.md +0 -115
- package/skills/peaks-solo/references/anchoring-and-session-info.md +0 -34
- package/skills/peaks-solo/references/artifact-contracts.md +0 -65
- package/skills/peaks-solo/references/boundaries.md +0 -21
- package/skills/peaks-solo/references/browser-workflow.md +0 -127
- package/skills/peaks-solo/references/codegraph-orchestration.md +0 -5
- package/skills/peaks-solo/references/command-migration.md +0 -3
- package/skills/peaks-solo/references/completion-handoff.md +0 -23
- package/skills/peaks-solo/references/context-governance.md +0 -204
- package/skills/peaks-solo/references/dag-orchestrator.md +0 -56
- package/skills/peaks-solo/references/external-references.md +0 -17
- package/skills/peaks-solo/references/external-skill-invocation.md +0 -72
- package/skills/peaks-solo/references/fanout-mandatory.md +0 -109
- package/skills/peaks-solo/references/fast-mode.md +0 -23
- package/skills/peaks-solo/references/frontend-only-mode.md +0 -87
- package/skills/peaks-solo/references/job-loop.md +0 -68
- package/skills/peaks-solo/references/local-artifact-workspace.md +0 -79
- package/skills/peaks-solo/references/micro-cycle.md +0 -316
- package/skills/peaks-solo/references/mode-selection-with-stale-presence.md +0 -124
- package/skills/peaks-solo/references/mode-selection.md +0 -21
- package/skills/peaks-solo/references/openspec-workflow.md +0 -81
- package/skills/peaks-solo/references/periodic-checkpoint.md +0 -81
- package/skills/peaks-solo/references/project-scan-checklist.md +0 -136
- package/skills/peaks-solo/references/quality-gate-cheatsheet.md +0 -13
- package/skills/peaks-solo/references/refactor-mode.md +0 -24
- package/skills/peaks-solo/references/resume-detection.md +0 -63
- package/skills/peaks-solo/references/runbook.md +0 -249
- package/skills/peaks-solo/references/skill-presence-and-title.md +0 -31
- package/skills/peaks-solo/references/standards-preflight.md +0 -23
- package/skills/peaks-solo/references/step-0-55-1x-detection.md +0 -82
- package/skills/peaks-solo/references/step-0-8-gate.md +0 -60
- package/skills/peaks-solo/references/sub-agent-dispatch.md +0 -334
- package/skills/peaks-solo/references/swarm-dispatch-contract.md +0 -230
- package/skills/peaks-solo/references/workflow-gates-and-types.md +0 -186
- package/skills/peaks-solo/references/workflow.md +0 -38
- package/skills/peaks-solo-resume/SKILL.md +0 -81
- package/skills/peaks-solo-status/SKILL.md +0 -120
- package/skills/peaks-solo-test/SKILL.md +0 -84
- package/skills/peaks-txt/SKILL.md +0 -303
- package/skills/peaks-ui/SKILL.md +0 -369
- /package/dist/{src/cli → cli}/commands/agent-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/agent-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/audit-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/audit-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/capability-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/capability-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/capability-worker-config-sc-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/capability-worker-config-sc-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/classify-classify-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/classify-classify-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/code-review-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/code-review-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/codegraph-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/codegraph-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/compact-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/compact-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/complexity-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/complexity-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/config-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/config-commands.js +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/core/artifacts-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/artifacts-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/binding-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/binding-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/doctor-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/doctor-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/memory-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/memory-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/profile-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/profile-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/core/proxy-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/proxy-command.js +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/standards-command.js +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/doc-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/feedback-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/feedback-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/final-review-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/final-review-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/fixture-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/fixture-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/fork-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/fork-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/gate-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/gate-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/heartbeat-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/heartbeat-commands.js +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/hooks-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/impact-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/impact-commands.js +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/legacy-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/log-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/log-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/loop-eval-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/loop-eval-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/memory-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/memory-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/migrate-1-4-1-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/migrate-1-4-1-command.js +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/migrate-v2-10-to-v2-11-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/mut-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/mut-commands.js +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/openspec-commands.js +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/perf-commands.js +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-blocks-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/prd-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/prd-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/preferences-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/preferences-commands.js +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/qa-business-review-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/qa-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/qa-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/release-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/release-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/request-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/request-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/retrospective-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/retrospective-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/reviewer-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/reviewer-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/role-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/role-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/sc-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sc-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/scan-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/scan-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/security-audit-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-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-resume-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-resume-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/share-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/share-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/skill-conformance-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/skill-conformance-commands.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-integrate-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/slice-review-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/slice-review-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/smoke-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/smoke-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/sop-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sop-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/statusline-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/statusline-commands.js +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.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/worker-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/worker-commands.js +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/workflow-plan-commands.js +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/migrate-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/reconcile-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/reconcile-command.js +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}/index.js +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}/agent/ecc-agent-service.d.ts +0 -0
- /package/dist/{src/services → services}/agent/ecc-agent-service.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-prerequisites.js +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/request-artifact-service.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/request-artifact-service.js +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}/artifacts/workspace-service.js +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/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-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/static-service.d.ts +0 -0
- /package/dist/{src/services → services}/audit/static-service.js +0 -0
- /package/dist/{src/services → services}/audit/types.js +0 -0
- /package/dist/{src/services → services}/audit-independent/perf-audit-service.d.ts +0 -0
- /package/dist/{src/services → services}/audit-independent/perf-audit-service.js +0 -0
- /package/dist/{src/services → services}/audit-independent/security-audit-service.d.ts +0 -0
- /package/dist/{src/services → services}/audit-independent/security-audit-service.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/solo → services/code}/batch-heartbeat-poller.d.ts +0 -0
- /package/dist/{src/services/solo → services/code}/batch-heartbeat-poller.js +0 -0
- /package/dist/{src/services/solo → services/code}/status-line-renderer.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}/code-review/ocr-service.d.ts +0 -0
- /package/dist/{src/services → services}/code-review/ocr-service.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/config-service.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-service.js +0 -0
- /package/dist/{src/services → services}/config/config-types.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-types.js +0 -0
- /package/dist/{src/services → services}/config/provider-service.d.ts +0 -0
- /package/dist/{src/services → services}/config/provider-service.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-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.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/dispatch-context-guard.d.ts +0 -0
- /package/dist/{src/services → services}/context/dispatch-context-guard.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/shared-channel.d.ts +0 -0
- /package/dist/{src/services → services}/context/shared-channel.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}/dashboard/project-dashboard-service.js +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/dispatch-record-writer.js +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/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}/doc/doc-generator.d.ts +0 -0
- /package/dist/{src/services → services}/doc/doc-generator.js +0 -0
- /package/dist/{src/services → services}/doctor/doctor-service.d.ts +0 -0
- /package/dist/{src/services → services}/feedback/feedback-promotion-service.d.ts +0 -0
- /package/dist/{src/services → services}/filesystem/file-lock.d.ts +0 -0
- /package/dist/{src/services → services}/final-review/final-review-service.d.ts +0 -0
- /package/dist/{src/services → services}/final-review/final-review-service.js +0 -0
- /package/dist/{src/services → services}/final-review/final-review-types.d.ts +0 -0
- /package/dist/{src/services → services}/final-review/final-review-types.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-resource-snapshot.d.ts +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.d.ts +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}/log/retention.d.ts +0 -0
- /package/dist/{src/services → services}/log/retention.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/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}/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}/mut/assert-scanner.d.ts +0 -0
- /package/dist/{src/services → services}/mut/assert-scanner.js +0 -0
- /package/dist/{src/services → services}/mut/index.d.ts +0 -0
- /package/dist/{src/services → services}/mut/index.js +0 -0
- /package/dist/{src/services → services}/mut/mut-runner.d.ts +0 -0
- /package/dist/{src/services → services}/mut/mut-runner.js +0 -0
- /package/dist/{src/services → services}/mut/production-stryker.d.ts +0 -0
- /package/dist/{src/services → services}/mut/production-stryker.js +0 -0
- /package/dist/{src/services → services}/mut/report-builder.d.ts +0 -0
- /package/dist/{src/services → services}/mut/report-builder.js +0 -0
- /package/dist/{src/services → services}/mut/report-loader.d.ts +0 -0
- /package/dist/{src/services → services}/mut/report-loader.js +0 -0
- /package/dist/{src/services → services}/mut/thresholds.d.ts +0 -0
- /package/dist/{src/services → services}/mut/thresholds.js +0 -0
- /package/dist/{src/services → services}/mut/types.d.ts +0 -0
- /package/dist/{src/services → services}/mut/types.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-archive-service.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-bridge-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-bridge-service.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-init-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-init-service.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-propose-from-doctor-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-propose-from-doctor-service.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-render-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-render-service.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-scan-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-scan-service.js +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}/openspec/openspec-validate-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/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.js +0 -0
- /package/dist/{src/services → services}/preferences/preferences-types.js +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}/providers/minimax-provider-service.d.ts +0 -0
- /package/dist/{src/services → services}/providers/minimax-provider-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/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/capability-seed-sources.js +0 -0
- /package/dist/{src/services → services}/recommendations/recommendation-service.d.ts +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.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/understand/hybrid-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}/scan/acceptance-coverage-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/acceptance-coverage-service.js +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/existing-system-service.js +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-service.js +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/understand/understand-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}/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/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.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-resume-service.d.ts +0 -0
- /package/dist/{src/services → services}/session/session-resume-service.js +0 -0
- /package/dist/{src/services → services}/signal/cancel-handler.d.ts +0 -0
- /package/dist/{src/services → services}/skill/resume-detector.d.ts +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-registry.d.ts +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-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-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/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}/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-hybrid-service.js +0 -0
- /package/dist/{src/services → services}/understand/understand-scan-service.d.ts +0 -0
- /package/dist/{src/services → services}/understand/understand-scan-service.js +0 -0
- /package/dist/{src/services → services}/upgrade/1x-detector-service.d.ts +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}/verdict/envelopes.d.ts +0 -0
- /package/dist/{src/services → services}/verdict/envelopes.js +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/autonomous-resume-writer.js +0 -0
- /package/dist/{src/services → services}/workflow/plan-reader.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/plan-reader.js +0 -0
- /package/dist/{src/services → services}/workflow/plan-refresher.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/plan-refresher.js +0 -0
- /package/dist/{src/services → services}/workflow/plan-trigger-detector.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/plan-trigger-detector.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-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/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-service.js +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-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-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}/fs.d.ts +0 -0
- /package/dist/{src/shared → shared}/fs.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}/result.d.ts +0 -0
- /package/dist/{src/shared → shared}/result.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/skills/{peaks-perf-audit → bee/peaks-perf-audit}/SKILL.md +0 -0
- /package/skills/{peaks-perf-audit → bee/peaks-perf-audit}/references/audit-protocol.md +0 -0
- /package/skills/{peaks-prd → bee/peaks-prd}/references/artifact-contracts.md +0 -0
- /package/skills/{peaks-prd → bee/peaks-prd}/references/artifact-per-request.md +0 -0
- /package/skills/{peaks-prd → bee/peaks-prd}/references/command-migration.md +0 -0
- /package/skills/{peaks-prd → bee/peaks-prd}/references/prd-for-multi-pass.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/artifact-contracts.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/codegraph-regression-focus.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/command-migration.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/openspec-validation-gate.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-compact-handoff.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-context-governance.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-gstack-integration.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-local-artifacts.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-matt-pocock-integration.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-perf-test-plan.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-refactor-role.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-runbook.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-security-test-plan.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-skill-presence.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-standards-preflight.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/qa-transition-gates.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/reading-handoff-frontmatter.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/regression-gates.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/requirement-boundary-recheck.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/test-case-generation.md +0 -0
- /package/skills/{peaks-qa → bee/peaks-qa}/references/test-report-output.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/artifact-and-standards-output.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/artifact-contracts.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/artifact-per-request.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/browser-action-wrapper.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/code-reviewer-4dim-hint.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/codegraph-project-analysis.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/command-migration.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/compact-handoff.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/external-references.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/frontend-project-generation.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/karpathy-reviewer-prompt.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/mandatory-perf-baseline.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/matt-pocock-integration.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/ocr-integration.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/openspec-cli.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/rd-context-governance.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/rd-gstack-integration.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/rd-standards-preflight.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/reading-v2-slice-results.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/refactor-workflow.md +0 -0
- /package/skills/{peaks-rd → bee/peaks-rd}/references/v2-12-fanout-collapse.md +0 -0
- /package/skills/{peaks-reviewer → bee/peaks-reviewer}/references/reviewer-prompt.md +0 -0
- /package/skills/{peaks-reviewer → bee/peaks-reviewer}/references/reviewer-schema.md +0 -0
- /package/skills/{peaks-sc → bee/peaks-sc}/references/artifact-contracts.md +0 -0
- /package/skills/{peaks-sc → bee/peaks-sc}/references/artifact-retention.md +0 -0
- /package/skills/{peaks-sc → bee/peaks-sc}/references/command-migration.md +0 -0
- /package/skills/{peaks-sc → bee/peaks-sc}/references/openspec-commit-boundaries.md +0 -0
- /package/skills/{peaks-security-audit → bee/peaks-security-audit}/SKILL.md +0 -0
- /package/skills/{peaks-security-audit → bee/peaks-security-audit}/references/audit-protocol.md +0 -0
- /package/skills/{peaks-txt → bee/peaks-txt}/references/artifact-contracts.md +0 -0
- /package/skills/{peaks-txt → bee/peaks-txt}/references/command-migration.md +0 -0
- /package/skills/{peaks-txt → bee/peaks-txt}/references/context-capsule.md +0 -0
- /package/skills/{peaks-ui → bee/peaks-ui}/references/artifact-contracts.md +0 -0
- /package/skills/{peaks-ui → bee/peaks-ui}/references/artifact-per-request.md +0 -0
- /package/skills/{peaks-ui → bee/peaks-ui}/references/command-migration.md +0 -0
- /package/skills/{peaks-ui → bee/peaks-ui}/references/workflow.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/checkpoint-resume.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/cross-date-session-check.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/envelope-contract.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/existing-system-extraction.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/gstack-integration.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/headroom-integration.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/playwright-mcp-multi-terminal.md +0 -0
- /package/skills/{peaks-solo → peaks-code}/references/project-memory-loading.md +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,24 +1,484 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [Unreleased]
|
|
4
|
+
|
|
5
|
+
## 4.0.0-beta.10 — 2026-07-16
|
|
6
|
+
|
|
7
|
+
### Status: PRE-IMPLEMENTATION
|
|
8
|
+
|
|
9
|
+
> **This CHANGELOG entry documents the CONTRACT for 4.0.0-beta.10.
|
|
10
|
+
> The 3 slices below are NOT YET IMPLEMENTED in this branch.**
|
|
11
|
+
> See `docs/release/4.0.0-beta.10.md` for the user-facing runbook
|
|
12
|
+
> and `peaks workflow verify-pipeline --rid 2026-07-15-cli-surface-cleanup`
|
|
13
|
+
> for the pre-implementation gate (9/9 gates PASS).
|
|
14
|
+
>
|
|
15
|
+
> **Ship path**: user implements Slices 1+2+3 per the runbook,
|
|
16
|
+
> runs `pnpm test:full` + manual AC verification, then runs
|
|
17
|
+
> `npm publish --tag beta`. No code change is included in the
|
|
18
|
+
> sediment/version-bump commit that produced this CHANGELOG.
|
|
19
|
+
|
|
20
|
+
### Removed — `peaks minimax-worker` (Slice 1)
|
|
21
|
+
|
|
22
|
+
- **`peaks minimax-worker` CLI removed** — historical MiniMax
|
|
23
|
+
provider integration. `peaks minimax-worker --help` now exits
|
|
24
|
+
non-zero with `COMMAND_NOT_FOUND`.
|
|
25
|
+
- **`peaks worker minimax` CLI removed** — same module.
|
|
26
|
+
- **`peaks config provider minimax *` subtree removed** —
|
|
27
|
+
`peaks config provider minimax set --help` exits non-zero.
|
|
28
|
+
- **6 source files deleted**:
|
|
29
|
+
- `src/cli/commands/worker-commands.ts`
|
|
30
|
+
- `src/services/providers/minimax-provider-service.ts`
|
|
31
|
+
- `src/services/providers/minimax-worker-service.ts`
|
|
32
|
+
- `src/services/config/provider-service.ts` (entire file; 100% MiniMax)
|
|
33
|
+
- `tests/unit/minimax-worker-service.test.ts`
|
|
34
|
+
- `tests/unit/minimax-provider-service.test.ts`
|
|
35
|
+
- **~21 source files modified** (drop imports, drop function bodies,
|
|
36
|
+
drop registrations, replace `'minimax-2.7'` literal with
|
|
37
|
+
`'claude-opus-4-7'` in 5 files).
|
|
38
|
+
- **~8 test files modified** (drop MiniMax cases; replace literal in 3).
|
|
39
|
+
- **4 openspec files updated** (1-line wording fixes).
|
|
40
|
+
- **Net security improvement**: smaller secret-handling surface
|
|
41
|
+
(5 MiniMax functions removed).
|
|
42
|
+
|
|
43
|
+
### Changed — 10 role-skill CLI commands hidden (Slice 2)
|
|
44
|
+
|
|
45
|
+
- **10 top-level role-skill CLI commands** now hidden from `peaks --help`
|
|
46
|
+
via `Commander.hidden()`. Still invokable for internal
|
|
47
|
+
`peaks sub-agent dispatch --role <role>` paths. Final canonical
|
|
48
|
+
list (per QA grep audit):
|
|
49
|
+
- `peaks prd`
|
|
50
|
+
- `peaks qa`
|
|
51
|
+
- `peaks sc`
|
|
52
|
+
- `peaks audit`
|
|
53
|
+
- `peaks code-review`
|
|
54
|
+
- `peaks perf-audit`
|
|
55
|
+
- `peaks security-audit`
|
|
56
|
+
- `peaks upgrade`
|
|
57
|
+
- `peaks agent`
|
|
58
|
+
- `peaks code`
|
|
59
|
+
- **`peaks skill list`** now excludes skills with
|
|
60
|
+
`visibility: internal` frontmatter. Use `--include-internal` to opt in.
|
|
61
|
+
- **`peaks skill search`** accepts `--include-internal` flag.
|
|
62
|
+
- **8 SKILL.md files** updated to add/rename `visibility: internal`:
|
|
63
|
+
`peaks-prd`, `peaks-qa`, `peaks-rd`, `peaks-sc`, `peaks-ui`,
|
|
64
|
+
`peaks-txt`, `peaks-final-review`, `peaks-perf-audit`,
|
|
65
|
+
`peaks-security-audit`.
|
|
66
|
+
- **Integration test rewritten**:
|
|
67
|
+
`tests/integration/skill-search-cli.test.ts:72-79` now asserts
|
|
68
|
+
the new `visibility:` frontmatter field instead of legacy
|
|
69
|
+
`userInvocable`.
|
|
70
|
+
|
|
71
|
+
### Added — `peaks ecc install|status|ls|show` (Slice 3)
|
|
72
|
+
|
|
73
|
+
> **PIVOT vs initial design**: Originally Slice 3 was supposed to
|
|
74
|
+
> spawn `<cached>/ecc agent run <name> --json` as a subprocess.
|
|
75
|
+
> RD sub-agent triggered **Gate S3-0**: affaan-m/everything-claude-code
|
|
76
|
+
> has no `ecc` binary; its real structure is `agents/*.md` flat
|
|
77
|
+
> + SKILL.md descriptors. User chose Option B — drop the subprocess
|
|
78
|
+
> model entirely.
|
|
79
|
+
|
|
80
|
+
- **`peaks ecc install`** — downloads affaan-m/everything-claude-code
|
|
81
|
+
from GitHub releases to `~/.peaks/cache/ecc-<sha>/`. Selective
|
|
82
|
+
tarball extraction: ONLY `agents/` subtree (skip `rules/`,
|
|
83
|
+
`commands/`, `settings/`, `docs/`, `README.md`).
|
|
84
|
+
- **`peaks ecc status`** — reads cache manifest, reports version + sha
|
|
85
|
+
+ agent count.
|
|
86
|
+
- **`peaks ecc ls`** — lists cached agents by parsing `agents/*.md`
|
|
87
|
+
frontmatter.
|
|
88
|
+
- **`peaks ecc show <name>`** — outputs the agent's SKILL.md body
|
|
89
|
+
to stdout. LLM-side consumers (Skill-first path) read this output
|
|
90
|
+
to apply the agent's instructions.
|
|
91
|
+
- **3 source files deleted** (with Slice 1):
|
|
92
|
+
- `src/cli/commands/agent-commands.ts` (the old `peaks agent run/list`)
|
|
93
|
+
- `src/services/agent/ecc-agent-service.ts` (the spawn orchestrator)
|
|
94
|
+
- `tests/unit/services/agent/ecc-agent-service.test.ts`
|
|
95
|
+
- **3 new source files**:
|
|
96
|
+
- `src/services/agent/ecc-cache-service.ts` — pure-IO cache module
|
|
97
|
+
(`downloadToCache`, `readCacheManifest`, `listCachedAgents`,
|
|
98
|
+
`readAgentSkill`, `cleanupStaleCache`)
|
|
99
|
+
- `src/cli/commands/ecc-commands.ts` — 4 subcommands
|
|
100
|
+
- `tests/unit/agent/ecc-cache-service.test.ts`
|
|
101
|
+
- **Dead-probes removed**:
|
|
102
|
+
- `npx ecc --version` probe (was: never worked; affaan-m/ECC not on npm)
|
|
103
|
+
- `npx ecc-agentshield --version` probe in
|
|
104
|
+
`src/services/audit/static-service.ts:104` (parallel fix)
|
|
105
|
+
- **7-day cache TTL** via `bootstrapLogger.applyRetention` sweep
|
|
106
|
+
(wired at `src/cli/program.ts:121`). NOT via
|
|
107
|
+
`peaks doctor --cleanup-stale` (which is bound to `dropStale()`
|
|
108
|
+
for the binding store).
|
|
109
|
+
|
|
110
|
+
### Removed — `peaks agent run` and `peaks agent list`
|
|
111
|
+
|
|
112
|
+
- **`peaks agent run <name>` exits non-zero with `COMMAND_NOT_FOUND`**.
|
|
113
|
+
- **`peaks agent list` exits non-zero with `COMMAND_NOT_FOUND`**.
|
|
114
|
+
- **No replacement CLI** — LLM-side consumers use
|
|
115
|
+
`peaks ecc show <name>` or read `<cache>/agents/<name>.md` directly.
|
|
116
|
+
|
|
117
|
+
### Net security / performance impact
|
|
118
|
+
|
|
119
|
+
- **Security**: 0 subprocess attack surface (was: 1 per call in beta.9);
|
|
120
|
+
smaller secret-handling surface (5 MiniMax functions removed).
|
|
121
|
+
- **Performance**: cache-dir probe is pure read (<15ms vs ~500ms
|
|
122
|
+
for the npm-registry probe in beta.9); selective tarball extraction
|
|
123
|
+
saves ~95% disk footprint.
|
|
124
|
+
|
|
125
|
+
### Pre-implementation gate
|
|
126
|
+
|
|
127
|
+
`peaks workflow verify-pipeline --rid 2026-07-15-cli-surface-cleanup`
|
|
128
|
+
returns `ok: true, complete: true, violations: []` (9/9 gates PASS).
|
|
129
|
+
This CHANGELOG entry is the contract; the actual implementation
|
|
130
|
+
follows the runbook in `docs/release/4.0.0-beta.10.md`.
|
|
131
|
+
|
|
132
|
+
### Acceptance criteria
|
|
133
|
+
|
|
134
|
+
27 ACs total: 7 (Slice 1) + 8 (Slice 2) + 11 (Slice 3 redesign + 1).
|
|
135
|
+
Full list in `docs/release/4.0.0-beta.10.md` §Acceptance criteria.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 4.0.0-beta.9 — 2026-07-15
|
|
140
|
+
|
|
141
|
+
### Fixed — `npm install peaks-loop` runtime path layout
|
|
142
|
+
|
|
143
|
+
`4.0.0-beta.8` shipped a tarball where `bin/peaks.js` imported
|
|
144
|
+
`'../dist/src/cli/index.js'`, but tsc actually emitted the runtime
|
|
145
|
+
files at `dist/cli/index.js` (rootDir walked past `src/` because of
|
|
146
|
+
cross-folder imports like `src/services/hooks/output.ts → ../../cli/`).
|
|
147
|
+
Downstream `npm i -g peaks-loop` then `peaks -v` failed with
|
|
148
|
+
`ERR_MODULE_NOT_FOUND: .../dist/src/cli/index.js`. The 4 audit/business
|
|
149
|
+
templates also failed to enter the tarball because `package.json#files[]`
|
|
150
|
+
whitelisted `dist/src/**/*.js` / `.d.ts` but never `.md`.
|
|
151
|
+
|
|
152
|
+
This release:
|
|
153
|
+
|
|
154
|
+
- `bin/peaks.js` import: `'../dist/src/cli/index.js'` → `'../dist/cli/index.js'`.
|
|
155
|
+
- `scripts/copy-templates.mjs` dest: `dist/src/services/...` →
|
|
156
|
+
`dist/services/...` so the bundled templates land where the runtime
|
|
157
|
+
`import.meta.url` resolver expects them.
|
|
158
|
+
- `package.json#files[]`: prefixes shifted from `dist/src/` to `dist/`,
|
|
159
|
+
plus a new `dist/**/*.md` entry so the 4 templates bundled by
|
|
160
|
+
`copy-templates.mjs` actually ship.
|
|
161
|
+
- `tsconfig.build.json` (introduced in beta.8) confirmed correct — it
|
|
162
|
+
is the build-time emit that controls the dist tree shape.
|
|
163
|
+
|
|
164
|
+
End-to-end smoke after the fix (local):
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
$ npm pack # 30 MB tarball
|
|
168
|
+
$ npm install ./peaks-loop-4.0.0-beta.9.tgz --prefix /tmp/test
|
|
169
|
+
$ peaks --version # → "4.0.0-beta.9"
|
|
170
|
+
$ peaks workspace init --project /tmp/fresh # → templatesBooted: 5
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
`.peaks/project-scan/{project-scan.md, business-knowledge.md,
|
|
174
|
+
security-template.md, perf-template.md, audit-output-schema.md}`
|
|
175
|
+
all present after a fresh workspace init.
|
|
176
|
+
|
|
177
|
+
### Notes
|
|
178
|
+
|
|
179
|
+
- 4.0.0-beta.8 is left in place on npm as a known-broken release.
|
|
180
|
+
Consumers who already pinned `peaks-loop@4.0.0-beta.8` should bump
|
|
181
|
+
to `4.0.0-beta.9`.
|
|
182
|
+
- Beta.9 contains everything beta.8 advertised plus the path fix.
|
|
183
|
+
|
|
184
|
+
## 4.0.0-beta.8 — 2026-07-15
|
|
185
|
+
|
|
186
|
+
### Added — project-scan bootstrap (slice 2026-07-15)
|
|
187
|
+
|
|
188
|
+
- **`peaks project context` writes `.peaks/project-scan/project-scan.md`**
|
|
189
|
+
alongside `.peaks/PROJECT.md`. The project-scan.md file is the new
|
|
190
|
+
canonical home for project archetype + libraryVersions + tech stack
|
|
191
|
+
(project-scoped, git-tracked, survives session rotation). The old
|
|
192
|
+
`.peaks/_runtime/<sessionId>/rd/project-scan.md` path is fully
|
|
193
|
+
migrated across SKILL.md / references / peaks-rd SKILL.md /
|
|
194
|
+
peaks-ui SKILL.md (14 occurrences in 8 files).
|
|
195
|
+
- **`peaks workspace init` triggers `bootstrapProjectScan`** on its
|
|
196
|
+
main path. Idempotent: existing `schemaVersion: 1` files are
|
|
197
|
+
preserved unless `--force`. New CLI flags:
|
|
198
|
+
- `--no-project-scan-bootstrap` — opt out of the bootstrap call.
|
|
199
|
+
- `--force-project-scan-templates` — overwrite the 4 bundled
|
|
200
|
+
audit/business templates (default: skip if present).
|
|
201
|
+
- **5-template boot** — every `peaks workspace init` materialises
|
|
202
|
+
`.peaks/project-scan/{project-scan.md, business-knowledge.md,
|
|
203
|
+
security-template.md, perf-template.md, audit-output-schema.md}`.
|
|
204
|
+
The 4 audit/business templates are bundled at
|
|
205
|
+
`src/services/workspace/templates/project-scan/*.md` and copied
|
|
206
|
+
verbatim by `scripts/copy-templates.mjs` (post-`tsc` step; tsc
|
|
207
|
+
does not emit `.md` files).
|
|
208
|
+
- **`scripts/copy-templates.mjs`** — mirrors bundled `.md` templates
|
|
209
|
+
into `dist/`. Wired into `package.json#scripts.build` after `tsc`.
|
|
210
|
+
Required to keep `import.meta.url` template reads working for
|
|
211
|
+
downstream `npm install peaks-loop` consumers.
|
|
212
|
+
- **`tests/unit/workspace/templates/template-integrity.test.ts`**
|
|
213
|
+
(5 cases) — byte-equality guard between bundled and canonical
|
|
214
|
+
templates; fails CI on drift.
|
|
215
|
+
- **`tests/unit/services/prd/project-scan-bootstrap-service.test.ts`**
|
|
216
|
+
(13 cases) — 0-1 path, existing-project path, monorepo variants,
|
|
217
|
+
idempotency, force overrides, dual-write.
|
|
218
|
+
- **`tests/unit/workspace/init-hooks-project-scan.test.ts`**
|
|
219
|
+
(4 cases) — `peaks workspace init` integration with all 3 CLI flag
|
|
220
|
+
combinations.
|
|
221
|
+
|
|
222
|
+
### Fixed — monorepo 0-1 misjudgement + scanArchetype fall-through
|
|
223
|
+
|
|
224
|
+
Real-world smoke against `C:\Users\smallMark\Desktop\peaksclaw\ice-cola`
|
|
225
|
+
(pnpm-workspace monorepo with `packages/{server,client,admin,hermes-agent}`)
|
|
226
|
+
exposed two follow-on bugs that the unit suite missed:
|
|
227
|
+
|
|
228
|
+
- **0-1 detection now considers monorepo sentinels.**
|
|
229
|
+
`bootstrapProjectScan.isZeroToOneProject` previously only checked
|
|
230
|
+
`<root>/src/`, silently mis-classifying pnpm-workspace projects as
|
|
231
|
+
0-1 (the source lives at `packages/<pkg>/src/`). New sentinels:
|
|
232
|
+
`pnpm-workspace.yaml` / `turbo.json` / `nx.json` + the
|
|
233
|
+
`package.json#workspaces` field. Source-root candidates extended
|
|
234
|
+
to `packages/` / `apps/` / `libs/` / `services/` / `workspaces/`.
|
|
235
|
+
- **`scanArchetype` hoists `hasMonorepoConfig` above the `hasBackend`
|
|
236
|
+
check.** A monorepo with a backend sub-package (`packages/server`)
|
|
237
|
+
used to fall through to `legacy-fullstack` because `hasBackend`
|
|
238
|
+
included `backendDirsPresent.length > 0`. New behaviour: any monorepo
|
|
239
|
+
resolves to `frontend-monorepo` (no backend pkg) or
|
|
240
|
+
`fullstack-monorepo` (with backend pkg).
|
|
241
|
+
- **`ProjectArchetype` union gains `'fullstack-monorepo'`.**
|
|
242
|
+
Previously the union was 5 values; now 6. `ArchetypeService` and
|
|
243
|
+
`peaks-code` consumers updated accordingly.
|
|
244
|
+
|
|
245
|
+
### Changed
|
|
246
|
+
|
|
247
|
+
- `src/services/memory/project-context-service.ts` — `generateProjectContext`
|
|
248
|
+
is now `async` and calls `bootstrapProjectScan` after writing
|
|
249
|
+
`PROJECT.md`. The companion `peaks skill presence:clear` was missing
|
|
250
|
+
an `await`; fixed in `src/cli/commands/core/skill-command.ts`.
|
|
251
|
+
- `src/cli/commands/workspace/init-command.ts` — adds
|
|
252
|
+
`--no-project-scan-bootstrap` and `--force-project-scan-templates`;
|
|
253
|
+
surfaces `projectScan` envelope field on the init response.
|
|
254
|
+
|
|
255
|
+
### Verification
|
|
256
|
+
|
|
257
|
+
- vitest: 22/22 pass across 3 slice-owned test files.
|
|
258
|
+
- tsc: 0 errors in slice-owned `src/` files.
|
|
259
|
+
- CLI: `./bin/peaks.js workspace init --project <tmp>` writes 5 files
|
|
260
|
+
in `templatesBooted:5, durationMs:23`; `--no-project-scan-bootstrap`
|
|
261
|
+
correctly skips; `--force-project-scan-templates` correctly
|
|
262
|
+
overrides user sediment.
|
|
263
|
+
- Ice-cola: `peaks project context --project .` produces
|
|
264
|
+
`archetype: fullstack-monorepo` with 18 real library versions
|
|
265
|
+
(Docusaurus 3.9.2 / Camofox / @easyops-cn / etc.).
|
|
266
|
+
|
|
267
|
+
### Notes
|
|
268
|
+
|
|
269
|
+
- pre-existing `FILE_SIZE_VIOLATION` on
|
|
270
|
+
`src/services/standards/project-standards-service.ts` (837 lines,
|
|
271
|
+
in-flight `.claude/rules/` → `.peaks/standards/` migration) is out
|
|
272
|
+
of slice scope.
|
|
273
|
+
|
|
274
|
+
## 4.0.0-beta.7 — 2026-07-09
|
|
275
|
+
|
|
276
|
+
### Added — zcode adapter (9th IDE) + runtime model detection
|
|
277
|
+
|
|
278
|
+
- **`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).
|
|
279
|
+
- **`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.
|
|
280
|
+
- **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"`.
|
|
281
|
+
- **`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.
|
|
282
|
+
- **`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'`.
|
|
283
|
+
|
|
284
|
+
### Changed — install no longer writes hardcoded default model
|
|
285
|
+
|
|
286
|
+
- **`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).
|
|
287
|
+
- **`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'`.
|
|
288
|
+
- **`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`.
|
|
289
|
+
|
|
290
|
+
### Added — zcode IDE (peaks-loop's 9th)
|
|
291
|
+
|
|
292
|
+
- **`IdeId` union type** — `'zcode'` added in `src/services/ide/ide-types.ts`.
|
|
293
|
+
- **`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).
|
|
294
|
+
- **`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`).
|
|
295
|
+
- **`ide-registry.ts`** — registers `ZCODE_ADAPTER` alongside the existing 8 adapters (claude-code / trae / trae-cn / codex / cursor / qoder / tongyi-lingma / hermes / openclaw).
|
|
296
|
+
- **`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).
|
|
297
|
+
- **`tests/unit/ide/zcode-adapter-detect-model.test.ts`** — 14 cases (pure resolver + env-fixture file IO + path helper).
|
|
298
|
+
- **`tests/unit/cli/ide-commands.test.ts`** — 5 cases (CLI + top-level command registration).
|
|
299
|
+
- **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).
|
|
300
|
+
|
|
301
|
+
### Documentation — SKILL.md sync with 4.0.0-beta.6 CLI reality
|
|
302
|
+
|
|
303
|
+
- **`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.
|
|
304
|
+
- **`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).
|
|
305
|
+
|
|
306
|
+
### Verification (4.0.0-beta.7)
|
|
307
|
+
|
|
308
|
+
- `pnpm tsc -p tsconfig.json --noEmit` — 0 errors
|
|
309
|
+
- `pnpm vitest run tests/unit/ide/ tests/unit/cli/ide-commands.test.ts` — 15 files / 211 tests / 0 failed
|
|
310
|
+
- `peaks workflow verify-pipeline --rid 003-add-zcode-adapter` — `ok=true, complete=true`, 9/9 gate PASS
|
|
311
|
+
- `node bin/peaks.js ide model --current` (against real z-code installation) — `modelId: "M3"`, `detected: true`
|
|
312
|
+
|
|
313
|
+
### Sediment (Step 11) — 7 lessons in `.peaks/memory/`
|
|
314
|
+
|
|
315
|
+
| File | Topic |
|
|
316
|
+
|---|---|
|
|
317
|
+
| `z-code-peaks-loop-9-ide-adapter-vendor-neutrality-adapter.md` | z-code 9th IDE + vendor-neutrality adapter pattern |
|
|
318
|
+
| `peaks-loop-install-model-getstrongestmodelid-fallback.md` | install no longer hardcodes default model |
|
|
319
|
+
| `desktop-application-ide-adapter-z-code-cli.md` | desktop-app IDE adapter field-degradation decision |
|
|
320
|
+
| `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 |
|
|
321
|
+
| `2026-07-09-zcode-adapter-overview.md` | RID 003 overall summary (project record) |
|
|
322
|
+
| `peaks-ide-runtime-detect-zcode-only.md` | `peaks ide model --current` z-code 4-tier priority chain |
|
|
323
|
+
| `ide-adapter-detectcurrentmodel-optional-interface-pattern.md` | optional interface field extension pattern |
|
|
324
|
+
|
|
325
|
+
### Known follow-ups (S3-cleanup backlog)
|
|
326
|
+
|
|
327
|
+
- **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'`.
|
|
328
|
+
- **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.
|
|
329
|
+
- **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.
|
|
330
|
+
- **`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.
|
|
331
|
+
|
|
332
|
+
### Breaking changes
|
|
333
|
+
|
|
334
|
+
None. All 8 pre-existing adapters continue to load without changes. CLI subcommands `peaks ide *` and `peaks ide model --current` are additive.
|
|
335
|
+
|
|
336
|
+
## 4.0.0-beta.5 — 2026-07-08
|
|
337
|
+
|
|
338
|
+
### Added — peaks-solo dispatcher (分诊员)
|
|
339
|
+
|
|
340
|
+
- **`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.
|
|
341
|
+
- **`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).
|
|
342
|
+
- **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.
|
|
343
|
+
|
|
344
|
+
### Verification (4.0.0-beta.5)
|
|
345
|
+
|
|
346
|
+
- `peaks skill list` shows `peaks-solo` first
|
|
347
|
+
- `peaks skill search --query "code"` returns `peaks-code` with matchScore > 0
|
|
348
|
+
- `peaks skill search --query "xxxxxxxxxxxxx"` returns `[]` (no error)
|
|
349
|
+
- `pnpm vitest run` — full regression green; `peaks-code / peaks-content / peaks-doctor` tests unchanged
|
|
350
|
+
- `peaks code --help` / `peaks content --help` / `peaks doctor --help` — exit 0, behavior unchanged
|
|
351
|
+
|
|
352
|
+
## 4.0.0-beta.4 — 2026-07-08
|
|
353
|
+
|
|
354
|
+
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.
|
|
355
|
+
|
|
356
|
+
### Added — Loop Engineering Asset layer (§4.1, AC-1/AC-2/AC-3)
|
|
357
|
+
|
|
358
|
+
- **`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.
|
|
359
|
+
- **`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).
|
|
360
|
+
- **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.
|
|
361
|
+
|
|
362
|
+
### Added — Post-run crystallization flow (§5, AC-4 / AC-5 / AC-6 / AC-7)
|
|
363
|
+
|
|
364
|
+
- **`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.
|
|
365
|
+
- **`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).
|
|
366
|
+
- **`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).
|
|
367
|
+
- **`peaks asset dispose` / `peaks asset status`** — cross-asset dispose (trace_only / retain / destroy) and lifecycle status dashboard.
|
|
368
|
+
|
|
369
|
+
### Added — Darwin-style ratchet (§6, AC-8 / AC-9 / AC-10 / AC-11)
|
|
370
|
+
|
|
371
|
+
- **`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.
|
|
372
|
+
- **`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).
|
|
373
|
+
- **`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`).
|
|
374
|
+
- **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).
|
|
375
|
+
- **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'`).
|
|
376
|
+
|
|
377
|
+
### Added — Karpathy-engineered red-line set (AC-21 / AC-22 / AC-23)
|
|
378
|
+
|
|
379
|
+
- **`.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).
|
|
380
|
+
- **`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.
|
|
381
|
+
- **`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>`.
|
|
382
|
+
- **Unit guard** — `tests/unit/standards/loop-engineering-guidelines.test.ts` enforces the four-section shape for every red line in the file.
|
|
383
|
+
- **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.
|
|
384
|
+
|
|
385
|
+
### Added — Bundle share + desktop extension surface (§7A, AC-24 / AC-25 / AC-26)
|
|
386
|
+
|
|
387
|
+
- **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.
|
|
388
|
+
- **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.
|
|
389
|
+
- **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.
|
|
390
|
+
- **`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.
|
|
391
|
+
- **`peaks bee export` / `peaks bee import`** — `src/cli/commands/share-commands.ts`. Same hard-block semantics.
|
|
392
|
+
- **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).
|
|
393
|
+
|
|
394
|
+
### Added — SkillHub expansion (5 new tables / non-breaking)
|
|
395
|
+
|
|
396
|
+
The 6+ relation table layout is preserved. 5 new tables added under `.peaks/_runtime/<sessionId>/`:
|
|
397
|
+
- `loop_release` (002)
|
|
398
|
+
- `loop_bee_relation` (003)
|
|
399
|
+
- loop↔bee share / desktop extension columns (004)
|
|
400
|
+
- `evolution_evaluation` (005)
|
|
401
|
+
- `crystallization_event` (006)
|
|
402
|
+
|
|
403
|
+
Migration is non-breaking: every new column has a DEFAULT and the new tables sit alongside the existing 4.x schema.
|
|
404
|
+
|
|
405
|
+
### Added — New CLI verbs (spec §7.4)
|
|
406
|
+
|
|
407
|
+
- `peaks loop init / list / show / search / recent / export / import`
|
|
408
|
+
- `peaks asset crystallize / dispose / status`
|
|
409
|
+
- `peaks evolution propose / evaluate / revert / mark-keep / status`
|
|
410
|
+
- `peaks skill lint --category loop-engineering-readiness --path <skill-dir>`
|
|
411
|
+
- `peaks skill ready --category loop-engineering-readiness --path <skill-dir>` (alias)
|
|
412
|
+
|
|
413
|
+
### Changed
|
|
414
|
+
|
|
415
|
+
- **`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".
|
|
416
|
+
- **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.
|
|
417
|
+
|
|
418
|
+
### Verification (4.0.0-beta.4)
|
|
419
|
+
|
|
420
|
+
- `tsc --noEmit` zero errors
|
|
421
|
+
- `peaks standards lint --category loop-engineering` parses all 10 red lines + 4 sections each (lint passes)
|
|
422
|
+
- `pnpm vitest run tests/unit/{standards,crystallization,evolution,share}/` — 13 files / 154 unit tests pass
|
|
423
|
+
- `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
|
|
424
|
+
- 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)
|
|
425
|
+
|
|
426
|
+
### Migration
|
|
427
|
+
|
|
428
|
+
- 4.x `bee_release` rows continue to read. No data migration required.
|
|
429
|
+
- The 5 new tables are added via non-destructive `CREATE TABLE IF NOT EXISTS` migrations.
|
|
430
|
+
- The `bundle-writer / bundle-reader` pair is additive; existing `peaks skill sediment export / import` remains as an alias for one release cycle, then deprecates.
|
|
431
|
+
- 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.
|
|
432
|
+
|
|
433
|
+
## 4.0.0-beta.2 — 2026-07-07
|
|
434
|
+
|
|
435
|
+
### Renamed
|
|
436
|
+
- **`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`.
|
|
437
|
+
|
|
438
|
+
### Changed (Breaking)
|
|
439
|
+
- **`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"`.
|
|
440
|
+
- **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.
|
|
441
|
+
|
|
442
|
+
### Fixed (post-rename polish)
|
|
443
|
+
- **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`.
|
|
444
|
+
- **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).
|
|
445
|
+
- **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`.
|
|
446
|
+
- **CHANGELOG self-contradiction** — the rename entry previously read `peaks-code → peaks-code` (collapsed by the global `s/Solo/Code/g` substitution). Now correctly reads `peaks-solo → peaks-code`.
|
|
447
|
+
- **`deriveRuleName` test expectation** — `tests/unit/services/audit/classifier.test.ts` expected 9 words but the function correctly truncates to 8. Updated to match the new word split introduced by `Code Commit Ban` (2 words) replacing `Code Code-Change` (1 hyphenated word).
|
|
448
|
+
- **Output style mode label** — `.claude/output-styles/peaks-skill-swarm.md` now uses `Code` instead of `Solo` in the mode badge and prose (3 occurrences).
|
|
449
|
+
- **Project history row** — `.peaks/PROJECT.md` session-history row `001-solo-memory-write-broken` → `001-code-memory-write-broken`.
|
|
450
|
+
- **Video demo copy** — `examples/video-demo/src/copy.ts` `skillWas: 'peaks-solo'` → `skillWas: 'peaks-code'` (legacy label, both locales).
|
|
451
|
+
|
|
452
|
+
### Added
|
|
453
|
+
- **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.
|
|
454
|
+
- **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.
|
|
455
|
+
- **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`.
|
|
456
|
+
|
|
457
|
+
### Verification
|
|
458
|
+
- `tsc --noEmit` zero errors
|
|
459
|
+
- Full `vitest run` exit 0 (all 30 touched test files / 265 directly-tested assertions pass)
|
|
460
|
+
- `silent-warning-detector` OK on 481 files
|
|
461
|
+
- All rename+polish changes committed as `b1dbc51 chore(rename): complete peaks-solo → peaks-code sweep + polish`
|
|
462
|
+
|
|
3
463
|
## 3.1.2 — 2026-07-04
|
|
4
464
|
|
|
5
465
|
### Added — Mechanical Job-mode gates (Step 0.8 enforcement)
|
|
6
466
|
|
|
7
|
-
The v3.1.1 recorder-only design was bypassed twice under load (2026-07-03 35-slice incident, 2026-07-04 3018-file incident): the LLM skipped `peaks
|
|
467
|
+
The v3.1.1 recorder-only design was bypassed twice under load (2026-07-03 35-slice incident, 2026-07-04 3018-file incident): the LLM skipped `peaks code detect-job` and ran fake-completion narratives instead of Job mode. The v3.1.2 patch converts Step 0.8 from "LLM should call" to "LLM cannot proceed without calling" through four mechanical gates — no LLM interpretation required.
|
|
8
468
|
|
|
9
|
-
- **PreToolUse hook** — `peaks workspace init` now installs a `Bash` matcher in `.claude/settings.local.json` (TEMPLATE_VERSION bumped 1.2.0 → 1.3.0) that runs `peaks
|
|
10
|
-
- **`peaks
|
|
11
|
-
- **Size-fear ban** — `peaks
|
|
12
|
-
- **Forced auto-compact** — extended `peaks
|
|
469
|
+
- **PreToolUse hook** — `peaks workspace init` now installs a `Bash` matcher in `.claude/settings.local.json` (TEMPLATE_VERSION bumped 1.2.0 → 1.3.0) that runs `peaks code gate-step-08 --project .` before every Bash call. Exit 0 = allow, exit 2 = block. Existing `Write|Edit|MultiEdit` matcher preserved. Re-running `peaks workspace init` is idempotent (`templateContentMatches`).
|
|
470
|
+
- **`peaks code gate-step-08`** — new service `src/services/code/step-08-gate.ts` (~120 LOC) + CLI. Reads `.peaks/_runtime/<sessionId>/job-shape.json`. When `decision.isJob=true` AND `job/<jid>/progress.json` exists, prints `Next: slice #<done+1> of <total> (<currentSlice>)` so the LLM cannot wake up cold. When the file is missing AND the user's prompt (from `--prompt` / `last-prompt.txt`) matches the fail-closed backup regex `/(until|全部|until all done|disavow cost|不用考虑费用|all of them)/i`, exits 2 with `BLOCKED:` on stderr.
|
|
471
|
+
- **Size-fear ban** — `peaks code emit-handoff`. New service `src/services/code/emit-handoff.ts` (~70 LOC) + CLI. Under Job mode (`isJob=true`), refuses to emit a final handoff while `remaining > 0`. Codes: `JOB_NOT_INITIALIZED` (no state.json), `JOB_REMAINING_BLOCKED` (remaining > 0), allow when `remaining === 0`, allow under `--force-under-job` override.
|
|
472
|
+
- **Forced auto-compact** — extended `peaks code context-now` with `--enforce-job-mode` (auto-enabled when `job-shape.json` says `isJob=true`). At `ratio >= 0.85` returns `action: 'auto-compact-now'` (MANDATORY, not advisory); at `ratio >= 0.95` returns `action: 'red-line'`. SKILL.md Step N+2 prose updated: "in Job mode, ≥ 0.85 is MANDATORY auto-compact."
|
|
13
473
|
- **On-disk slice progress** — `peaks job checkpoint --state done` now writes `.peaks/_runtime/<sessionId>/job/<jid>/progress.json` after updating state.json. New `peaks job progress --job-id <jid>` reader. `gate-step-08` reads the same file in its allow-job path so the LLM gets resume context BEFORE any Bash call. SKILL.md Step 0.7 updated: "if progress.json exists, read it FIRST and surface `Next: slice #N of M (<currentSlice>)`."
|
|
14
474
|
|
|
15
475
|
### Tests (v3.1.2)
|
|
16
476
|
|
|
17
|
-
- `tests/unit/
|
|
18
|
-
- `tests/unit/
|
|
19
|
-
- `tests/integration/
|
|
20
|
-
- Extended `tests/unit/
|
|
21
|
-
- Extended `tests/unit/workspace/workspace-init-claude-hooks.test.ts` case-A to assert both PreToolUse matchers (`Write|Edit|MultiEdit` AND `Bash`) are emitted with the new Bash command invoking `peaks
|
|
477
|
+
- `tests/unit/code/gate-step-08.test.ts` — 9 unit tests covering the 4 paths + Next: slice context injection + backup-regex sanity + prompt-source fallback.
|
|
478
|
+
- `tests/unit/code/emit-handoff.test.ts` — 10 unit tests covering the 4 paths + `--force-under-job` override + `JOB_NOT_INITIALIZED` + skipped-slices edge case + `--job-id` override.
|
|
479
|
+
- `tests/integration/code-gate-step-08-hook.test.ts` — 5 integration tests spawning `node bin/peaks.js code gate-step-08` as a real child process (the hook protocol itself), asserting exit 0 / exit 2 + stderr BLOCKED line + JSON envelope shape.
|
|
480
|
+
- Extended `tests/unit/code/code-step-08-block-guard.test.ts` to assert SKILL.md + runbook.md reference `peaks code gate-step-08`, `peaks code emit-handoff`, `peaks job progress`, and the Job-mode MANDATORY auto-compact prose.
|
|
481
|
+
- Extended `tests/unit/workspace/workspace-init-claude-hooks.test.ts` case-A to assert both PreToolUse matchers (`Write|Edit|MultiEdit` AND `Bash`) are emitted with the new Bash command invoking `peaks code gate-step-08`.
|
|
22
482
|
|
|
23
483
|
### Memory
|
|
24
484
|
|
|
@@ -28,17 +488,17 @@ Two consecutive ship-day incidents motivated this release: `2026-07-03-v3-1-0-jo
|
|
|
28
488
|
|
|
29
489
|
### Added — Step 0.8 detector-as-recorder (LLM-judged, CLI-validated)
|
|
30
490
|
|
|
31
|
-
`peaks-
|
|
491
|
+
`peaks-code` Step 0.8 is no longer prose-only: the LLM makes the Job-shape judgement, the CLI records it. The CLI is a **recorder and gate**, not a detector — no keyword regex anywhere in the service or CLI (the LLM is the source of truth). Downstream steps refuse to proceed until the decision file exists.
|
|
32
492
|
|
|
33
|
-
- New service: `src/services/
|
|
493
|
+
- New service: `src/services/code/job-shape-decision.ts` — `readJobShapeDecision` / `writeJobShapeDecision` / `validateJobShapeDecision`. Persists to `.peaks/_runtime/<sessionId>/job-shape.json`; server-side stamps `decidedAt` so the LLM cannot back-date; throws `JOB_SHAPE_NOT_DECIDED` on missing / unreadable / malformed.
|
|
34
494
|
- New CLI subcommands:
|
|
35
|
-
- `peaks
|
|
36
|
-
- `peaks
|
|
37
|
-
- New tests: `tests/unit/
|
|
495
|
+
- `peaks code detect-job --is-job <bool> --rationale <text> --suggested-job-id <jid> [--suggested-strategy single|rotating] [--confidence high|medium|low] [--force]` — recorder. Validates `suggestedJobId` against `/^[a-z0-9][a-z0-9-]{2,40}$/`, hashes the user prompt, writes the file. Refuses overwrite without `--force`.
|
|
496
|
+
- `peaks code read-job-shape` — downstream gate. Returns the current record or `JOB_SHAPE_NOT_DECIDED`.
|
|
497
|
+
- New tests: `tests/unit/code/job-shape-decision.test.ts` (validate happy/sad, server-stamp `decidedAt`, force semantics, missing/unreadable/malformed, round-trip, promptHash determinism), `tests/integration/code-detect-job-command.test.ts` (CLI spawn happy / bad-flag / read-back / fresh / force), `tests/unit/code/code-step-08-block-guard.test.ts` (locks the SKILL.md / runbook contract: `BLOCKING on LLM judgement`, `peaks code detect-job`, `peaks code read-job-shape`, and runbook ordering before `# After Step 7`).
|
|
38
498
|
|
|
39
499
|
### Hard red line #10 (v3.1.1)
|
|
40
500
|
|
|
41
|
-
The LLM MUST NOT skip `peaks
|
|
501
|
+
The LLM MUST NOT skip `peaks code detect-job` even when the trigger is obvious from context. If the next step's `read-job-shape` throws `JOB_SHAPE_NOT_DECIDED`, Code MUST record a decision before proceeding. Keyword-based "I already know it's a Job" is not a substitute — the LLM is the only authority for the Job-shape judgement, and the CLI is the only place that records it.
|
|
42
502
|
|
|
43
503
|
### Memory
|
|
44
504
|
|
|
@@ -46,9 +506,9 @@ Incident + rationale: `.peaks/memory/2026-07-03-v3-1-0-job-trigger-miss.md`. Thi
|
|
|
46
506
|
|
|
47
507
|
## 3.1.0 — 2026-07-03
|
|
48
508
|
|
|
49
|
-
### Fixed — peaks-
|
|
509
|
+
### Fixed — peaks-code external-references authority declaration
|
|
50
510
|
|
|
51
|
-
- `skills/peaks-
|
|
511
|
+
- `skills/peaks-code/SKILL.md` External-references paragraph now ends with `Peaks-Loop Code gates and artifacts remain authoritative.` to satisfy `tests/unit/skill-external-invocation.test.ts:63` (`PEAKS_AUTHORITATIVE_PATTERN`). One-line surgical patch; no behaviour change.
|
|
52
512
|
|
|
53
513
|
### Added — Peaks-Loop Job
|
|
54
514
|
|
|
@@ -56,7 +516,7 @@ Incident + rationale: `.peaks/memory/2026-07-03-v3-1-0-job-trigger-miss.md`. Thi
|
|
|
56
516
|
- New CLI flag `--main-loop-strategy single|rotating` on `job init`, with rotating-mode hard default for ≥3 slices and `rotateEvery=3` cadence.
|
|
57
517
|
- New `--watch` poll mode + statusline event stub (`emitJobEvent`) for ambient progress visibility. Real statusline wire-up deferred to a follow-up slice.
|
|
58
518
|
- Sub-agent wrapper `SubAgentJobWrapper` enforces `--budget-mb 512` default + cleanup gate before slice checkpoint.
|
|
59
|
-
- New peaks-
|
|
519
|
+
- New peaks-code SKILL.md Steps 0.8 / 0.81 / 0.85 / 0.86 / 0.87 wrapping the existing single-rid runbook for multi-slice jobs.
|
|
60
520
|
- 9 hard-red-line rules embedded in the skill prose (cost re-ask ban, slice-coalesce ban, fake-completion ban, detached-mode ban, cleanup-skip ban, rotate-skip ban, etc).
|
|
61
521
|
|
|
62
522
|
### New services
|
|
@@ -71,7 +531,7 @@ Incident + rationale: `.peaks/memory/2026-07-03-v3-1-0-job-trigger-miss.md`. Thi
|
|
|
71
531
|
|
|
72
532
|
### Migration
|
|
73
533
|
|
|
74
|
-
- Existing single-rid flows are unchanged. The Job is opt-in via peaks-
|
|
534
|
+
- Existing single-rid flows are unchanged. The Job is opt-in via peaks-code Step 0.8 detection; users who do not invoke multi-slice requests see no behavior difference.
|
|
75
535
|
- The `peaks session rotate` and `peaks session cycle-summary` subcommands referenced in the spec are NOT shipped in v1; the rotation path uses constructor-injected stub callbacks. M6.5 follow-up will add the real subcommands.
|
|
76
536
|
|
|
77
537
|
### Spec / plan
|
|
@@ -90,19 +550,19 @@ The v2.13.0 auto-compact design shipped `shell-exec` as the only pathway, which
|
|
|
90
550
|
- **New `ide-native` pathway** — `src/services/context/auto-compact-dispatcher.ts:138-155` routes main-session compacts through `installAutoCompactHook`, which writes a PreToolUse hook into `.claude/settings.local.json` (matcher `Bash|Task`, command `peaks session auto-compact-hook`).
|
|
91
551
|
- **New `peaks session auto-compact-hook` CLI** — `src/cli/commands/session-auto-compact-hook-command.ts`. Reads `CLAUDE_CONTEXT_USAGE_PERCENT`; below 0.95 exits 0 silent; at ratio ≥ 0.95 spawns `claude --compact` in-band against the **current** runner (detached + unref, never blocks the runner's tool call). ENOENT-safe: if `claude` is not on PATH (e.g. user runs Claude Code as an MCP), the hook logs a stderr hint and exits 0 silent rather than crashing the runner.
|
|
92
552
|
- **New `installAutoCompactHook` / `removeAutoCompactHook` service** — `src/services/hooks/auto-compact-hook-install.ts`. Idempotent: re-install returns `already-installed` and does NOT re-write the file; remove preserves other PreToolUse entries (the existing fact-forcing bypass hook on every peaks-loop consumer project survives).
|
|
93
|
-
- **Lazy install** — hook is installed on first `peaks
|
|
553
|
+
- **Lazy install** — hook is installed on first `peaks code auto-compact` invocation, NOT on `peaks workspace init`. User has opted in by running the command; no zero-touch surprise.
|
|
94
554
|
- **Claude Code adapter** — `compactPathway` changed from `shell-exec` to `ide-native` for `target='main'`. Sub-agent shells still get the legacy `shell-exec` pathway.
|
|
95
555
|
|
|
96
|
-
### Fixed —
|
|
556
|
+
### Fixed — Code Step N+2 prose (was 75% / "do NOT auto-execute")
|
|
97
557
|
|
|
98
|
-
- `skills/peaks-
|
|
558
|
+
- `skills/peaks-code/SKILL.md` Step N+2 paragraph rewritten: thresholds now 0.85 pre-compact / 0.95 red-line (matches v2.13.0 auto-compact), explicit Karpathy §4 compact-red-line exception cited, `peaks code context-now --json` is the canonical probe primitive (replaces `peaks context check --prompt-size <bytes>` hand-pass).
|
|
99
559
|
- `src/services/context/main-session-monitor.ts` — `@deprecated` JSDoc on `evaluateMainSessionThreshold` cross-links to `evaluateCompactTrigger` (0.85/0.95); legacy 4-tier envelope retained for statusline callers (migration to v2.15.0).
|
|
100
560
|
|
|
101
561
|
### Tests — 4 new suites + 3 modified files
|
|
102
562
|
|
|
103
563
|
- `tests/unit/services/hooks/auto-compact-hook-install.test.ts` (7 cases) — install / idempotent / remove / preservation of unrelated entries.
|
|
104
564
|
- `tests/unit/services/context/auto-compact-dispatcher-ide-native.test.ts` (9 cases) — `dispatchIdeCompact({ target: 'main' })` routes to `ide-native`; round-trip install / remove.
|
|
105
|
-
- `tests/unit/skills/
|
|
565
|
+
- `tests/unit/skills/code-step-n-plus-2-prose.test.ts` (6 cases) — pins the 0.85 / 0.95 / Karpathy §4 contract; asserts `75%` is NOT in the paragraph.
|
|
106
566
|
- `tests/unit/cli/session-auto-compact-hook-command.test.ts` (3 cases) — dogfood surfacing: below-threshold silent, missing env-var silent, red-line + ENOENT exits 0 with stderr hint.
|
|
107
567
|
- `tests/unit/services/context/main-session-monitor.test.ts` (+2 AC-4 cases), `tests/unit/context/auto-compact-main-target.test.ts` (pathway assertion updated) — coverage.
|
|
108
568
|
|
|
@@ -196,7 +656,7 @@ The v2.19.0 work shipped as code commits (`f91d71c`, `5186d3d`, `b598612`, `ced8
|
|
|
196
656
|
|
|
197
657
|
The Understand Anything (UA) Claude Code plugin and `@colbymchenry/codegraph` are both complementary project-analysis tools. UA provides a high-level knowledge graph (tours, layers, expert prompts); codegraph provides low-level affected-file analysis. Until 3.0.2, peaks-loop consumers had to choose one or the other at the LLM level — there was no service-layer enforcement of either.
|
|
198
658
|
|
|
199
|
-
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-
|
|
659
|
+
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.
|
|
200
660
|
|
|
201
661
|
**Source routing** (deterministic, decided in `buildUnderstandContext`):
|
|
202
662
|
- `ua-only` — UA knowledge graph present, no codegraph
|
|
@@ -217,41 +677,41 @@ The peak-loop skill-external-invocation audit pattern (capability discovery + re
|
|
|
217
677
|
|
|
218
678
|
### Removed — change-id shim (cleanup post v2.17.0 hard-kill, rolled up from v2.19.0)
|
|
219
679
|
|
|
220
|
-
**PATCH bump from 2.18.3**. Resolves the user-reported "新项目第一次使用 peaks-
|
|
680
|
+
**PATCH bump from 2.18.3**. Resolves the user-reported "新项目第一次使用 peaks-code 时初始化完不按流程走、开发效果差、再开 session 后才正常" defect. Two surgical fixes to the first-run Code gates (3 source files, 1 new test file, 2 test-regression updates; no schema change, no new dependencies, no public API change).
|
|
221
681
|
|
|
222
682
|
### Bugfix — `step-0.55-1x-upgrade` always pauses, even in `full-auto` (P0)
|
|
223
683
|
|
|
224
|
-
The 1.x → 2.0 upgrade is an irreversible external side effect (rewrites `~/.peaks/config.json` + the on-disk cache schema). Pre-fix, `peaks
|
|
684
|
+
The 1.x → 2.0 upgrade is an irreversible external side effect (rewrites `~/.peaks/config.json` + the on-disk cache schema). Pre-fix, `peaks code should-pause --step step-0.55-1x-upgrade --mode full-auto` returned `shouldPause: false` because the step was declared in `GATED_STEPS` but missing from the `HARD_PAUSE_STEPS` `Set` that already covered `step-0.5-openspec-opt-in` and `step-0.7-resume-detection`. In `full-auto` mode, the `shouldAutoProceed` branch silently auto-proceeded the upgrade without user consent. The result: 1.x → 2.0 downgrade (or stale 1.x standards/config residue) on the very first Code run of a fresh project. Post-fix, the step pauses with `gateKind: 'mode-selection-itself'` and the LLM-side caller presents an `AskUserQuestion` to the user.
|
|
225
685
|
|
|
226
|
-
- **Modified (2):** `src/services/
|
|
686
|
+
- **Modified (2):** `src/services/code/mode-gate.ts` (added 1 entry to `HARD_PAUSE_STEPS`), `src/services/code/user-touchpoint-classifier.ts` (reclassified the row from `tech/business-only` with `fullAutoCanProceed: true` to `commit-floor/always` with `fullAutoCanProceed: false`).
|
|
227
687
|
- **User-observed symptom (now fixed):** "首次启动后开发效果差" — caused by 1.x standards/config residue silently surviving `full-auto` and contaminating subsequent RD/QA artifact contracts.
|
|
228
688
|
|
|
229
|
-
### Bugfix — `--mode` is optional on `peaks
|
|
689
|
+
### Bugfix — `--mode` is optional on `peaks code should-pause` (P1, Step 1 chicken-and-egg)
|
|
230
690
|
|
|
231
|
-
`peaks
|
|
691
|
+
`peaks code should-pause --step step-1-mode-select` (no `--mode` flag) failed pre-fix with `error: required option --mode <mode> not specified`. Step 1's SEMANTIC is "ask the user what mode to use" — requiring `--mode` to ask mode is a chicken-and-egg. Post-fix, `--mode` is `.option()` (not `.requiredOption()`); the action handler resolves `const mode = opts.mode ?? 'full-auto'` once at the top. All 5 downstream `opts.mode` references inside the same action body now use the local `mode` const. Existing `--mode <x>` callers are unaffected (backward-compatible). The service-layer `shouldPauseAtGate` still requires a resolved mode — defaulting is at the CLI boundary, which is the correct layer for ergonomics.
|
|
232
692
|
|
|
233
|
-
- **Modified (1):** `src/cli/commands/
|
|
693
|
+
- **Modified (1):** `src/cli/commands/code-commands.ts` (option() + `mode` const + 5 reference rewrites inside the same action handler).
|
|
234
694
|
- **User-observed symptom (now fixed):** "再开 session 后才正常" — the first session's failed Step 1 caused the LLM-side caller to fall back to a sticky default mode; the second session's retry landed in the "right" mode by accident.
|
|
235
695
|
|
|
236
696
|
### Test surface
|
|
237
697
|
|
|
238
|
-
- **Created (1):** `tests/unit/services/
|
|
239
|
-
- **Modified (2, regression-data extension):** `tests/unit/services/
|
|
698
|
+
- **Created (1):** `tests/unit/services/code/first-run-step-gates.test.ts` — 20 vitest cases (4 modes × `step-0.55-1x-upgrade` pause guard; default-mode vs explicit-mode Step 1; AC-3 backward-compat byte-equality; 8 regression guards on the other 2 hard-pause steps; cross-check that non-hard-pause steps still auto-proceed).
|
|
699
|
+
- **Modified (2, regression-data extension):** `tests/unit/services/code/mode-gate.test.ts` (added `step-0.55-1x-upgrade` to the local `HARD_PAUSE_STEP_SET` test fixture), `tests/unit/services/code/stale-presence-detection.test.ts` (added the new step to the case-#5 non-Step-1 filter — these existing tests encoded the BUG behavior, so leaving them stale would have caused a false-positive green).
|
|
240
700
|
- **Updated (1):** `package.json` + `src/shared/version.ts` (2.18.3 → 2.18.4).
|
|
241
701
|
|
|
242
702
|
### Why this is the simplest fix
|
|
243
703
|
|
|
244
704
|
- 1-line addition to `HARD_PAUSE_STEPS` + 5-line row replacement in the classifier + 5-line command-arg change with 5 mechanical reference rewrites = 3 source edits. No new abstractions, no new env vars, no new schemas, no CLI surface change beyond the `--mode` defaulting.
|
|
245
|
-
- 800-line file cap respected: largest modified file is `
|
|
705
|
+
- 800-line file cap respected: largest modified file is `code-commands.ts` (well below the 800 cap).
|
|
246
706
|
- Karpathy #3 surgical: 6 files touched, all justified (3 source + 1 new test + 2 test-regression updates because the existing tests encoded the BUG behavior).
|
|
247
707
|
|
|
248
708
|
### Verification (QA cycle 1, verdict pass)
|
|
249
709
|
|
|
250
|
-
- AC-1: `peaks
|
|
251
|
-
- AC-2: `peaks
|
|
252
|
-
- AC-3: `peaks
|
|
710
|
+
- AC-1: `peaks code should-pause --step step-0.55-1x-upgrade --mode full-auto` → `ok: true, shouldPause: true, gateKind: "mode-selection-itself"` ✅
|
|
711
|
+
- AC-2: `peaks code should-pause --step step-1-mode-select` (no `--mode`) → `ok: true, shouldPause: true` (no "required option" error) ✅
|
|
712
|
+
- AC-3: `peaks code should-pause --step step-1-mode-select --mode full-auto` → byte-identical to AC-2 ✅
|
|
253
713
|
- Cross-mode 4×2 matrix (full-auto / assisted / strict / swarm × step-0.55 / step-1): 8/8 pause ✅
|
|
254
|
-
- `peaks-
|
|
714
|
+
- `peaks-code` first-run sequence (skill presence:check-stale + upgrade --detect-1x + 4 should-pause steps): 6/6 clean ✅
|
|
255
715
|
- vitest 527/527 passed (27 files, 0 failed, 22.61s wallclock)
|
|
256
716
|
- 5-way fanout audit: code-reviewer PASS / karpathy-reviewer PASS (4 guidelines) / security-reviewer PASS / perf-baseline-reviewer PASS / qa-test-cases-writer PASS (21 TCs)
|
|
257
717
|
- QA verdict: `pass` (`verdict-2026-06-29-fix-first-run-step-gates.md`)
|
|
@@ -486,9 +946,9 @@ Each original file gets a sibling `import { ... } from './X-helpers.js'` + `expo
|
|
|
486
946
|
|
|
487
947
|
### Behavior changes (user-visible)
|
|
488
948
|
|
|
489
|
-
- **None at the CLI surface.** No new commands, no removed commands, no flag changes. Existing `peaks
|
|
949
|
+
- **None at the CLI surface.** No new commands, no removed commands, no flag changes. Existing `peaks code`, `peaks doctor`, `peaks request lint`, `peaks scan file-size` all behave identically.
|
|
490
950
|
- **Binding file format change (additive only):** on-disk binding files now carry a `#<pid>` suffix in `callerId` and `ownerHint`. Old v2.16.0 / v2.17.0 files without the suffix are still readable via `BindingSchema.safeParse` (v2.18.0 read path is forward-compatible); no automatic rewrite (write-amplification risk deferred to a future `peaks doctor --rebuild-binding` slice).
|
|
491
|
-
- **Multi-Claude parallel fix (user-visible in the dogfood scenarios):** opening 2 Claude Code windows in the same project and running `peaks
|
|
951
|
+
- **Multi-Claude parallel fix (user-visible in the dogfood scenarios):** opening 2 Claude Code windows in the same project and running `peaks code` in each now yields 2 distinct sids (was: 1 collided sid, per the v2.17.0 changelog dogfood scenario 1).
|
|
492
952
|
- **`/compact` resume (user-visible, no change):** same outer-session-id still reuses the same sid. Verified by dogfood.
|
|
493
953
|
|
|
494
954
|
### Verification
|
|
@@ -505,7 +965,7 @@ Each original file gets a sibling `import { ... } from './X-helpers.js'` + `expo
|
|
|
505
965
|
|---|---|---|---|
|
|
506
966
|
| 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 |
|
|
507
967
|
| B | peaks doctor stale-binding scan | PASS | 0 stale bindings, ttl=300000ms, v2.16.0 schema surface intact |
|
|
508
|
-
| C | peaks
|
|
968
|
+
| 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 |
|
|
509
969
|
| 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 |
|
|
510
970
|
|
|
511
971
|
**Dogfood verdict:** 3.5 / 4 pass; `recommend_v2.18.0_commit: true`.
|
|
@@ -557,7 +1017,7 @@ The first v2.18.0 release deferred two open items to a redo slice; both are now
|
|
|
557
1017
|
|
|
558
1018
|
### Feature — D2 Claude-instance-level hard-exclusive sid
|
|
559
1019
|
|
|
560
|
-
- Same Claude instance keeps one sid across multiple peaks-* skill activations (peaks-
|
|
1020
|
+
- Same Claude instance keeps one sid across multiple peaks-* skill activations (peaks-code → peaks-rd → peaks-qa).
|
|
561
1021
|
- `/compact` resume: same outer-session-id reuses the same sid (post-compact-resume v2.11.0 D7 alignment).
|
|
562
1022
|
|
|
563
1023
|
### Feature — Doctor stale-binding scan (AC-10)
|
|
@@ -576,7 +1036,7 @@ The first v2.18.0 release deferred two open items to a redo slice; both are now
|
|
|
576
1036
|
### Behavior changes (user-visible)
|
|
577
1037
|
|
|
578
1038
|
- **`--change-id <slug>`** is now a metadata-only slug, not a filesystem scope identifier. Existing commands that accept `--change-id` continue to work; the slug appears in envelope `data.changeId` for traceability.
|
|
579
|
-
- **On-disk artifact paths** unchanged from a CLI user's perspective — reviewable artifacts still appear at the locations `peaks
|
|
1039
|
+
- **On-disk artifact paths** unchanged from a CLI user's perspective — reviewable artifacts still appear at the locations `peaks code` / `peaks qa` write them. Internally they key off session id, not change-id.
|
|
580
1040
|
- **`peaks doctor` exit code**: now exits 1 when stale bindings are present (in addition to its existing failure conditions).
|
|
581
1041
|
|
|
582
1042
|
### Verification
|
|
@@ -590,9 +1050,9 @@ The first v2.18.0 release deferred two open items to a redo slice; both are now
|
|
|
590
1050
|
|
|
591
1051
|
Recommended scenarios before next release (see `peaks/_runtime/2026-06-29-session-88411f/txt/handoff-2026-06-29-v2-17-0.md` for details):
|
|
592
1052
|
|
|
593
|
-
1. **Multi-Claude parallel提速**: open 2 Claude instances in the same project, run `peaks
|
|
1053
|
+
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.
|
|
594
1054
|
2. **D1 conflict detection**: 2 instances both targeting the same source file. Verify each writes to its own session-scoped artifact directory.
|
|
595
|
-
3. **`/compact` resume**: run `peaks
|
|
1055
|
+
3. **`/compact` resume**: run `peaks code <goal>`, `/compact`, continue. Verify same sid reused.
|
|
596
1056
|
4. **Doctor stale**: kill -9 a Claude instance, run `peaks doctor`, verify stale binding listed + `--cleanup-stale` works.
|
|
597
1057
|
|
|
598
1058
|
### Commits
|
|
@@ -605,19 +1065,19 @@ Recommended scenarios before next release (see `peaks/_runtime/2026-06-29-sessio
|
|
|
605
1065
|
### Out of scope (deferred)
|
|
606
1066
|
|
|
607
1067
|
- Runner wiring for D1/D2 in `peaks workspace init` + `peaks audit-goal` (modules exist, not yet called).
|
|
608
|
-
- 800-line cap backlog (`session-manager.ts` 710, `
|
|
1068
|
+
- 800-line cap backlog (`session-manager.ts` 710, `code/` and `verdict/` modules) — unchanged from v2.15.x.
|
|
609
1069
|
- Final removal of `change-id.ts` shims (would require rewriting the 11 src services that still reference them).
|
|
610
1070
|
|
|
611
1071
|
---
|
|
612
1072
|
|
|
613
1073
|
## [2.15.1] — 2026-06-28 — 12 Gaps CLI 全套落地 + ice-cola dogfood 验证
|
|
614
1074
|
|
|
615
|
-
**PATCH bump from 2.15.0**. Follow-up ship for the 12 Gaps positioning memory (peaks-loop 真实定位 + 全套 15 个 Gap CLI 落地). No breaking changes. All new commands are additive top-level (no conflict with existing `peaks
|
|
1075
|
+
**PATCH bump from 2.15.0**. Follow-up ship for the 12 Gaps positioning memory (peaks-loop 真实定位 + 全套 15 个 Gap CLI 落地). No breaking changes. All new commands are additive top-level (no conflict with existing `peaks code` / `peaks qa` / `peaks slice` role commands).
|
|
616
1076
|
|
|
617
1077
|
### Feature — slice DAG layered parallelism + foundation/upstreamSync/complexity 字段
|
|
618
1078
|
|
|
619
1079
|
- `src/services/dispatch/slice-dag.ts` — `SliceNode` 加 3 optional 字段 (`foundation?: boolean` / `upstreamSync?: boolean` / `complexity?: 'trivial'|'simple'|'complex'`). `validateDag` 加字段合法性校验 + foundation-only-depends-on-foundation 防御性规则. `topologicalLevels` 同层内 priority 排序 (foundation > upstreamSync > id asc). 老 DAG hash 稳定.
|
|
620
|
-
- `src/services/
|
|
1080
|
+
- `src/services/code/dag-orchestrator.ts` — 新增 `runLayeredDag` (业务 slice 不等所有 foundation,只等其 dependsOn 子集). cancel-on-fail 保留.
|
|
621
1081
|
- `src/cli/commands/dispatch-from-dag.ts` — 切到 `runLayeredDag` + envelope 加 `sliceMeta` 字段.
|
|
622
1082
|
|
|
623
1083
|
### Feature — G11/13/14/15 CLI 全套落地 (10 commands)
|
|
@@ -631,7 +1091,7 @@ Recommended scenarios before next release (see `peaks/_runtime/2026-06-29-sessio
|
|
|
631
1091
|
|
|
632
1092
|
- **G1 slice review** (4 cmds): `peaks slice-review` / `slice-score` / `slice-accept` / `slice-reject` — 4 项业务清单 + 12 Gaps 阈值 (avg >= 3 + no item <= 2)
|
|
633
1093
|
- **G3 prd blocks** (1 cmd): `peaks prd check-blocks` — 4 必填块校验 (业务场景 / 边界 / UI 装配 / 上游基线) + 业务禁区子节
|
|
634
|
-
- **G4 user touchpoint** (3 cmds): `peaks gate-classify` / `user-touchpoints` / `commit-boundary-actions` — 14
|
|
1094
|
+
- **G4 user touchpoint** (3 cmds): `peaks gate-classify` / `user-touchpoints` / `commit-boundary-actions` — 14 Code gate 静态分类 (business / tech / mode-selection / commit-boundary / commit-floor)
|
|
635
1095
|
- **G5 qa business** (4 cmds): `peaks qa-business-review` / `-score` / `-accept` / `-reject` — 6 项业务清单 + 同一阈值
|
|
636
1096
|
|
|
637
1097
|
### Feature — G6/G7/G8/G9/G10 CLI (10 commands, 30+ tests)
|
|
@@ -645,7 +1105,7 @@ Recommended scenarios before next release (see `peaks/_runtime/2026-06-29-sessio
|
|
|
645
1105
|
### Documentation
|
|
646
1106
|
|
|
647
1107
|
- 6 new memory files: `peaks-loop-24h-ai-programmer-positioning` / `user-role-and-tech-decision` / `prd-template-design` / `slice-review-and-qa-perspective` / `fork-sync-and-layered-parallel` / `fast-iteration-quality-loop`
|
|
648
|
-
- 4 SKILL.md 校准注: peaks-
|
|
1108
|
+
- 4 SKILL.md 校准注: peaks-code / peaks-prd / peaks-rd / peaks-qa 加 2026-06-28 校准 anchor
|
|
649
1109
|
- 12 Gaps 完整定位: 24h 程序员场景 / 唯一蜂群 / 反伪选择 / 业务审阅 / 轻量回归 / 上线观察期等
|
|
650
1110
|
|
|
651
1111
|
### Fix
|
|
@@ -687,9 +1147,9 @@ Recommended scenarios before next release (see `peaks/_runtime/2026-06-29-sessio
|
|
|
687
1147
|
- **`peaks workspace init`** (MODIFIED) — When an outer-session-mismatch rotation fires, the CLI now calls `clearStalePresenceOnRotation` to clear the stale presence. Two guards prevent accidental destruction of user-explicit mode choices:
|
|
688
1148
|
- **Reconnect guard** — recorded outer id matches the NEW outer id → do NOT clear (reconnect).
|
|
689
1149
|
- **Live-different-outer guard** — recorded outer id belongs to a different LIVE outer session → do NOT clear (would destroy another user's mode).
|
|
690
|
-
- **`peaks
|
|
691
|
-
- **`skills/peaks-
|
|
692
|
-
- **`skills/peaks-
|
|
1150
|
+
- **`peaks code should-pause --step step-1-mode-select`** (MODIFIED) — Now consults `presence:check-stale` automatically. When the presence is stale, returns `shouldPause: true, reason: 'stale-presence — re-ask Step 1'`. The hard-pause on Step 1 itself is preserved (defect #1 from slice 2026-06-28-code-mode-bypass-fix).
|
|
1151
|
+
- **`skills/peaks-code/SKILL.md` Step 1** (MODIFIED) — Wording changed from "if user did not name a profile, AskUserQuestion" to "if user did not name a profile OR presence is stale, AskUserQuestion". Cross-references the new `references/mode-selection-with-stale-presence.md`.
|
|
1152
|
+
- **`skills/peaks-code/references/mode-selection-with-stale-presence.md`** (NEW) — Detection protocol + worked example (88b27d defect) + ACL.
|
|
693
1153
|
- **`src/services/skills/skill-presence-service.ts`** — New exports: `checkStalePresence`, `clearStalePresenceOnRotation`, types `StalenessCheck`, `StaleReason`.
|
|
694
1154
|
|
|
695
1155
|
### Feature — User-feedback → peaks-loop enforcement (defect B fix)
|
|
@@ -702,12 +1162,12 @@ Recommended scenarios before next release (see `peaks/_runtime/2026-06-29-sessio
|
|
|
702
1162
|
|
|
703
1163
|
### Feature — Commit-boundary hard-floor (full-auto boundary = commit only)
|
|
704
1164
|
|
|
705
|
-
- **`src/services/
|
|
1165
|
+
- **`src/services/code/mode-gate.ts`** — New `HardFloorCategory` value: `'commit-boundary-side-effect'`. New `CommitBoundaryActionId` union with 5 actions: `git-push`, `git-tag`, `npm-publish`, `npm-install-global`, `peaks-global-install`. New function `detectCommitBoundaryAction(command)` matches the patterns. New `shouldPauseAtGate({ commitBoundaryAction: true })` flag — when true, ALWAYS pauses regardless of mode (overrides full-auto / swarm auto-proceed).
|
|
706
1166
|
- **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.
|
|
707
1167
|
|
|
708
1168
|
### Test results
|
|
709
1169
|
- 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**.
|
|
710
|
-
- Existing
|
|
1170
|
+
- Existing code tests (mode-gate × 81, post-compact × 11) pass unchanged.
|
|
711
1171
|
- Full unit suite baseline 4394 → 4680 passing (286 added). 0 new failures; pre-existing 7 unrelated failures unchanged.
|
|
712
1172
|
|
|
713
1173
|
### Out-of-scope
|
|
@@ -720,10 +1180,10 @@ Recommended scenarios before next release (see `peaks/_runtime/2026-06-29-sessio
|
|
|
720
1180
|
slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 + 业务并行(节省 2-3 天 wall time);fork 场景 = 上游 tag 断点同步;复杂度分流 = user-attended vs overnight 排程。
|
|
721
1181
|
|
|
722
1182
|
- **`src/services/dispatch/slice-dag.ts`** — `SliceNode` 加 3 可选字段(`foundation?: boolean` / `upstreamSync?: boolean` / `complexity?: 'trivial'|'simple'|'complex'`)。`validateDag` 加新字段合法性校验 + 防御性规则(foundation slice 不可 dependsOn 非 foundation)。`topologicalLevels` 同层内 priority 排序: foundation > upstreamSync > id asc。`serializeDag` / `hashDag` 含新字段,**老 DAG hash 稳定**。
|
|
723
|
-
- **`src/services/
|
|
1183
|
+
- **`src/services/code/dag-orchestrator.ts`** — 新增 `runLayeredDag` 函数。同 `runDag` 语义 + 业务 slice 不等所有 foundation,只等其 `dependsOn` 子集。cancel-on-fail 保留。`runDag` 保留(向后兼容,内部走 priority-sorted levels)。
|
|
724
1184
|
- **`src/cli/commands/dispatch-from-dag.ts`** — 切到 `runLayeredDag`。envelope 加 `sliceMeta` 字段(per-slice foundation/upstreamSync/complexity)。
|
|
725
|
-
- **2 new test files** — `tests/unit/dispatch/slice-dag-foundation.test.ts` (19 cases) + `tests/unit/
|
|
726
|
-
- **dispatch +
|
|
1185
|
+
- **2 new test files** — `tests/unit/dispatch/slice-dag-foundation.test.ts` (19 cases) + `tests/unit/code/dag-orchestrator-layered.test.ts` (5 cases) = **24 new tests, 0 regression**。
|
|
1186
|
+
- **dispatch + code tests**: 215/215 通过(单跑)。
|
|
727
1187
|
- **全量 vitest** 4843 cases: 4824 passed / 2 failed(并发 race,pre-existing)。
|
|
728
1188
|
|
|
729
1189
|
**不触动:** transition gates / hard contracts / Karpathy 4 / sub-agent 协议 / 老 DAG 兼容性。
|
|
@@ -777,8 +1237,8 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
|
|
|
777
1237
|
- 8 tests pass
|
|
778
1238
|
|
|
779
1239
|
**G4 user touchpoint classifier**(slice-2026-06-28-user-touchpoints):
|
|
780
|
-
- 3 commands: `peaks
|
|
781
|
-
- 14 个
|
|
1240
|
+
- 3 commands: `peaks code gate-classify` / `peaks code user-touchpoints` / `peaks code commit-boundary-actions`
|
|
1241
|
+
- 14 个 Code gate 静态分类: business / tech / mode-selection / commit-boundary / commit-floor
|
|
782
1242
|
- `userShouldReview`: always / business-only / never
|
|
783
1243
|
- 7 tests pass
|
|
784
1244
|
|
|
@@ -838,7 +1298,7 @@ slice-2026-06-28-layered-dag PRD: 大需求(1 周内做不完)= 基础先行 +
|
|
|
838
1298
|
会话期间从资深前端 + 后端半盲 + 极致工期 + 24h AI 程序员 + 存量无 UT 的真实场景,沉淀 6 个 memory 文件 + 索引 + 4 个 SKILL.md 校准注。**核心叙事:** `90% 效率 + 80% 质量` > `80% 效率 + 90% 质量`;user 在循环里 = 业务/产品审阅者不参与技术决策;主路径 = 唯一蜂群模式;prd 质量前置 = 4 必填块;QA = 业务视角 + 轻量回归 + 上线观察期。
|
|
839
1299
|
|
|
840
1300
|
- **6 new memory files** — `.peaks/memory/peaks-loop-{24h-ai-programmer-positioning, user-role-and-tech-decision, prd-template-design, slice-review-and-qa-perspective, fork-sync-and-layered-parallel, fast-iteration-quality-loop}.md` (warm.project index 18 → 24)
|
|
841
|
-
- **4 SKILL.md 校准注** — peaks-
|
|
1301
|
+
- **4 SKILL.md 校准注** — peaks-code / peaks-prd / peaks-rd / peaks-qa 各加精简 anchor(均通过 25KB cap,只引用 memory 不重复内容)
|
|
842
1302
|
- **不触动** transition gates / hard contracts / Karpathy 4 / 模式枚举 / mode-gate.ts / sub-agent 协议
|
|
843
1303
|
|
|
844
1304
|
### Fix — 2 pre-existing bugs (2026-06-28 follow-up)
|
|
@@ -966,26 +1426,26 @@ Slice B of the v2.14.0 anti-fake-green hardening PRD (`v2-14-0-anti-fake-green-h
|
|
|
966
1426
|
|
|
967
1427
|
---
|
|
968
1428
|
|
|
969
|
-
## [2.13.4] — 2026-06-28 —
|
|
1429
|
+
## [2.13.4] — 2026-06-28 — Code mode gate + verify-pipeline canonical path + auto-compact main target
|
|
970
1430
|
|
|
971
|
-
**PATCH bump from 2.13.3** (slice `2026-06-28-
|
|
1431
|
+
**PATCH bump from 2.13.3** (slice `2026-06-28-code-mode-bypass-fix`, 4 production defects reported by user in code session 2026-06-28).
|
|
972
1432
|
|
|
973
1433
|
The four defects all stem from the v2.13.0 two-axis convention landing debt: the canonical evidence location is `.peaks/_runtime/change/<changeId>/<role>/...` (per `change-scope-service.ts`), but v2.13.0's mode-gate, verify-pipeline, and auto-compact dispatcher all referenced the pre-1.3.0 sibling-of-`_runtime/` form. v2.13.4 also adds the user-requested economy-vs-concurrency separation (per direction 2026-06-28: "效率比省钱更重要,是在效率达到最大值的时候,再去考虑经济问题").
|
|
974
1434
|
|
|
975
1435
|
### Bug fixes
|
|
976
1436
|
|
|
977
|
-
- **Step 1 AskUserQuestion is no longer auto-defaulted to `mode: full-auto`** (defect #1) — `src/services/
|
|
1437
|
+
- **Step 1 AskUserQuestion is no longer auto-defaulted to `mode: full-auto`** (defect #1) — `src/services/code/mode-gate.ts:104-196` now treats `step-1-mode-select` (and `step-0.5-openspec-opt-in`, `step-0.7-resume-detection`) as a `HARD_PAUSE_STEPS` set: even `full-auto` mode pauses for the user to pick the mode. A new `gateKind: 'mode-selection-itself' | 'mode-driven' | 'hard-floor'` discriminator lets the LLM-side runner distinguish "you paused because the user must choose" from "you paused because the user already chose assisted/strict" from "you paused because a hard-floor category always wins". Dogfood-verified: a new session no longer writes `mode: "full-auto"` to `.peaks/_runtime/active-skill.json` on the first tool call without surfacing the Step 1 AskUserQuestion. 14 new test cases in `tests/unit/code/mode-gate-step-1-hard-pause.test.ts` cover the four-mode matrix + hard-floor precedence. The pre-existing `tests/unit/services/code/mode-gate.test.ts` (77 cases) was also updated for the new `gateKind` field — 77/77 still pass.
|
|
978
1438
|
- **`peaks workflow verify-pipeline` now resolves the canonical evidence path** (defect #3) — `src/services/workflow/pipeline-verify-service.ts:216,219,260,288,295` rebuilds evidence paths as `.peaks/_runtime/change/<changeId>/<role>/...` (was `.peaks/<changeId>/<role>/...`, the SKILL.md 2.8.3 hard-ban shape). `src/services/workflow/artifact-paths.ts:67,148` gets the same fix in the security/performance findings resolver. A 1-minor-release deprecation window accepts the legacy `.peaks/<changeId>/...` and `.peaks/_runtime/<changeId>/...` forms with a `DEPRECATION_LEGACY_PATH_USED` warning so un-migrated workspaces still resolve. `PipelineVerification.usedCanonicalPath: boolean` is added to the return envelope so QA / TXT can surface the deprecation state. The CLI help-text at `src/cli/commands/workflow-commands.ts:448` is updated to cite the canonical path. 4 new test cases in `tests/unit/workflow/pipeline-verify-canonical-path.test.ts` cover canonical / legacy misplaced / top-level fallback / absent. The pre-existing `tests/unit/pipeline-verify-service.test.ts` (60 cases) was updated to write evidence at both paths so the deprecation contract is exercised end-to-end — 60/60 still pass.
|
|
979
|
-
- **`auto-compact` now targets the main-session context, not a sub-agent shell** (defect #4) — `src/services/context/auto-compact-dispatcher.ts` and `src/services/
|
|
1439
|
+
- **`auto-compact` now targets the main-session context, not a sub-agent shell** (defect #4) — `src/services/context/auto-compact-dispatcher.ts` and `src/services/code/auto-compact-orchestrator.ts` accept a new `target: 'main' | 'sub-agent'` parameter (default `'main'`). For `target='main' + ide='claude-code'`, the dispatcher returns the `llm-self-compress` pathway and the orchestrator writes `.peaks/_runtime/<sessionId>/txt/auto-compact-pending.json` (with `pending: true, target: 'main', ratio, redLine`) so the next main-session LLM turn fires `/compact` in-band rather than spawning a detached `sh -c /compact` (which previously only compressed the sub-agent shell). For `target='sub-agent'`, the legacy shell-spawn behavior is preserved. Non-claude-code IDEs + `target='main'` return `noop` with a "main-session target unsupported" reason. 6 new test cases in `tests/unit/context/auto-compact-main-target.test.ts` cover the dispatch matrix + the orchestrator's intent-file write.
|
|
980
1440
|
|
|
981
1441
|
### Features
|
|
982
1442
|
|
|
983
|
-
- **`peaks workspace migrate-change-scope --project <path> [--apply] [--json]`** — slice 2026-06-28-
|
|
1443
|
+
- **`peaks workspace migrate-change-scope --project <path> [--apply] [--json]`** — slice 2026-06-28-code-mode-bypass-fix migration tool. Dry-run by default; `--apply` atomically renames misplaced `.peaks/_runtime/<changeId>/` (and `.peaks/<changeId>/`) entries into the canonical `.peaks/_runtime/change/<changeId>/` location, writes a `.peaks-migration.json` marker (with `from:`, `slice:`, `tool:`, `migratedAt:`) for audit. **Refusal conditions** (defense-in-depth, both pre-slice audit + new): entries that look like date-stamped session ids (`YYYY-MM-DD-session-X`) are refused to avoid destroying the session workspace (`MIGRATION_REFUSED_SESSION_ID_COLLISION`); entries whose target dir exists with non-byte-equal contents are refused to avoid clobbering (`MIGRATION_REFUSED_TARGET_NOT_EMPTY`); a hard-coded `PEAKS_TOP_LEVEL_DENY` / `RUNTIME_DENY` whitelist + `looksLikeChangeScopeId` structural check ensures `.peaks/memory`, `.peaks/standards`, `.peaks/retrospective`, `.peaks/sc`, `.peaks/sops`, `.peaks/project-scan`, `.peaks/_sub_agents` are **never** treated as misplaced change-ids. **Idempotent**: re-running on a clean workspace reports no work. Dogfood-verified: the actual misplaced `.peaks/_runtime/2026-06-27-verdict-aggregator-v2-12-debt/` (8 files) was migrated end-to-end; subsequent `peaks workflow verify-pipeline --rid 2026-06-27-verdict-aggregator-v2-12-debt --change-id 2026-06-27-verdict-aggregator-v2-12-debt --project .` reports `usedCanonicalPath: true` (was `false`) and zero `DEPRECATION_LEGACY_PATH_USED` warnings. 5 new test cases in `tests/unit/workspace/migrate-change-scope.test.ts` cover dry-run, apply, idempotency, session-id refusal, and target-not-empty refusal; a 6th case locks the `.peaks/<project-data>` whitelist contract.
|
|
984
1444
|
|
|
985
1445
|
### Internal
|
|
986
1446
|
|
|
987
|
-
- `src/services/
|
|
988
|
-
- `src/services/
|
|
1447
|
+
- `src/services/code/mode-gate.ts` (+28/-4 lines) — `HARD_PAUSE_STEPS` set + `GateKind` union + `gateKind` field on `GateDecision`.
|
|
1448
|
+
- `src/services/code/auto-compact-orchestrator.ts` (+24/-2 lines) — `target` parameter, `writeMainSessionCompactIntent` helper, surface `target` in return envelope.
|
|
989
1449
|
- `src/services/context/auto-compact-dispatcher.ts` (+38/-5 lines) — `CompactTarget` type, `target` parameter, reordered non-claude-code refusal, `shell-exec + main` → `llm-self-compress` rewrite.
|
|
990
1450
|
- `src/services/context/auto-compact-types.ts` (+6 lines) — `target?: 'main' | 'sub-agent'` on `AutoCompactResult.data`.
|
|
991
1451
|
- `src/services/preferences/preferences-types.ts` (+13 lines) — explicit doc-comments on `economyMode` (model selection only, NOT concurrency) and `swarmMode` (controls subgraph shape, NOT fan-out). Fan-out is governed by `fanout.defaultMode: 'fan-out'` (hard constraint per slice 2026-06-24-audit-5th-p2).
|
|
@@ -996,12 +1456,12 @@ The four defects all stem from the v2.13.0 two-axis convention landing debt: the
|
|
|
996
1456
|
- `src/cli/commands/workspace/migrate-change-scope-command.ts` (NEW, 230 lines) — `migrateChangeScope()` core + `migrateOne()` per-entry handler with the deny-list + `shallowContentEqual` (1-level recursion) + 3 refusal conditions.
|
|
997
1457
|
- `tests/unit/workspace/banned-path-directive-guard.test.ts` (+11 lines) — added `KEEP_DESCRIPTIONS` anchor for the new help-text so the AC-2.2 banned-path-guard still passes.
|
|
998
1458
|
- `tests/unit/pipeline-verify-service.test.ts` (+24/-12 lines) — `writeRdEvidence` / `writeQaEvidence` now write at canonical + legacy paths; `isResolvedChangeId` updated for the bare-id contract.
|
|
999
|
-
- `tests/unit/services/
|
|
1000
|
-
- 5 new test files: `tests/unit/
|
|
1459
|
+
- `tests/unit/services/code/mode-gate.test.ts` (linter-updated) — assertions for the new `gateKind` field on every `GateDecision` return.
|
|
1460
|
+
- 5 new test files: `tests/unit/code/mode-gate-step-1-hard-pause.test.ts` (14 cases), `tests/unit/workflow/pipeline-verify-canonical-path.test.ts` (4 cases), `tests/unit/workflow/artifact-paths-canonical.test.ts` (4 cases), `tests/unit/context/auto-compact-main-target.test.ts` (6 cases), `tests/unit/workspace/migrate-change-scope.test.ts` (6 cases) — 34 new cases total, all pass.
|
|
1001
1461
|
|
|
1002
1462
|
### Test results
|
|
1003
1463
|
|
|
1004
|
-
- `pnpm vitest run` on the 4 affected module areas (
|
|
1464
|
+
- `pnpm vitest run` on the 4 affected module areas (code/workflow/context/workspace): **181/181 pass** (5 new test files + pre-existing suites).
|
|
1005
1465
|
- Full unit suite: 4394/4418 pass (7 pre-existing failures unrelated to this slice — `doctor.test.ts` version-mismatch × 5, `tokenizer.test.ts` time-decay flake × 1, `35-checks-aggregate.test.ts` × 1).
|
|
1006
1466
|
- `pnpm tsc --noEmit`: clean.
|
|
1007
1467
|
|
|
@@ -1051,7 +1511,7 @@ The four defects all stem from the v2.13.0 two-axis convention landing debt: the
|
|
|
1051
1511
|
|---|---|
|
|
1052
1512
|
| 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 |
|
|
1053
1513
|
|
|
1054
|
-
### Verified (peaks
|
|
1514
|
+
### Verified (peaks code dogfood + QA on this session)
|
|
1055
1515
|
|
|
1056
1516
|
- AC-1 (parser fix): `tests/unit/services/verdict/envelopes.test.ts` → **11/11 pass** (was 7/7 in v2.13.2, +4 markdown fallback cases H/I/J/K). Dogfood script confirms: real `audit/security.md` with HIGH violation → `parseSecurityEnvelope` returns non-null envelope; `peaks verdict aggregate` returns `reasons: [{severity: HIGH, file: src/auth.ts:42}]`.
|
|
1057
1517
|
- AC-2 (publish pipeline): `scripts/prepublish-build.sh` end-to-end via git-bash: `[prepublish-build] build OK — proceeding to publish` (exit 0). The `prepublishOnly` hook in `package.json` (line 47) is wired to `node scripts/prepublish-build.mjs`.
|
|
@@ -1129,7 +1589,7 @@ v2.13.1 shipped with a BLOCKER bug found via post-release dogfood: `aggregateVer
|
|
|
1129
1589
|
|---|---|
|
|
1130
1590
|
| 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 |
|
|
1131
1591
|
|
|
1132
|
-
### Verified (peaks
|
|
1592
|
+
### Verified (peaks code dogfood + QA on this session)
|
|
1133
1593
|
|
|
1134
1594
|
- AC-1 (BLOCKER fix): `tests/unit/services/verdict/verdict-aggregator.test.ts` → **16/16 pass** (was 13/13 in v2.13.1, +3 cross-source cases). Dogfood script confirms: `reasons.length = 1, sources = ["security-audit","perf-audit"], verdict = warn`.
|
|
1135
1595
|
- AC-2 (CLI surface): `tests/unit/cli/commands/verdict-aggregate-command.test.ts` → **4/4 pass**. Real CLI: `peaks verdict aggregate --help` shows `--from-rid/--sid/--project/--json` options correctly.
|
|
@@ -1160,11 +1620,11 @@ v2.13.1 shipped with a BLOCKER bug found via post-release dogfood: `aggregateVer
|
|
|
1160
1620
|
|
|
1161
1621
|
---
|
|
1162
1622
|
|
|
1163
|
-
## [2.13.1] — 2026-06-27 — Verdict reasoning layer (multi-signal convergence for peaks-
|
|
1623
|
+
## [2.13.1] — 2026-06-27 — Verdict reasoning layer (multi-signal convergence for peaks-code)
|
|
1164
1624
|
|
|
1165
1625
|
**PATCH bump from 2.13.0** (slice `2026-06-27-verdict-aggregator`, red-line scope 3 source files + 4 new test files + 2 updated test files).
|
|
1166
1626
|
|
|
1167
|
-
peaks-
|
|
1627
|
+
peaks-code previously received 5 heterogeneous signals (security-audit, perf-audit, karpathy-reviewer, peaks-mut, peaks-qa) but had no convergence layer. The v2.12.0 audit-output schema documented 4 aggregation rules (`.peaks/project-scan/audit-output-schema.md:66-78`) but they were never implemented; the `mut-report.json` was consumed by peaks-qa internally with `loadMutReport() === null → gate=skipped` (soft consumption), and `micro-cycle.md` had no verdict-reasoning surface. v2.13.1 fills the gap without unifying envelope schemas (deferred to v2.14) and without changing any verdict string.
|
|
1168
1628
|
|
|
1169
1629
|
### Features
|
|
1170
1630
|
|
|
@@ -1176,10 +1636,10 @@ peaks-solo previously received 5 heterogeneous signals (security-audit, perf-aud
|
|
|
1176
1636
|
|
|
1177
1637
|
- `src/services/verdict/verdict-aggregator.ts` (NEW, 223 lines) — pure `aggregateVerdict()` + locally-defined `KarpathyEnvelope` / `MutEnvelope` / `QaEnvelope` types (surgeon scope; v2.14 will move them to shared if a unification pass lands).
|
|
1178
1638
|
- `src/services/artifacts/artifact-prerequisites.ts` — added `MUT_REPORT` constant (32 lines) + wired into `FEATURE_TABLE['rd:qa-handoff']` (line 276) and `BUGFIX_TABLE['rd:qa-handoff']` (line 303); `REFACTOR_TABLE` inherits via reference (line 312); `MINIMAL_TABLE` / `CONFIG_TABLE` exempt.
|
|
1179
|
-
- `skills/peaks-
|
|
1639
|
+
- `skills/peaks-code/references/micro-cycle.md` — added `## Verdict reasoning (v2.13.1)` section (91 lines) after the unchanged repair-cycle cap rule.
|
|
1180
1640
|
- `tests/unit/artifact-prerequisites/mut-report-prereq.test.ts` (NEW, 4 cases).
|
|
1181
1641
|
- `tests/unit/services/verdict/verdict-aggregator.test.ts` (NEW, 13 cases).
|
|
1182
|
-
- `tests/unit/skills/
|
|
1642
|
+
- `tests/unit/skills/code/micro-cycle-verdict-reasoning.test.ts` (NEW, 4 cases).
|
|
1183
1643
|
- `tests/unit/artifact-prerequisites.test.ts` (UPDATED, +25 lines) — seeded `mut-report.json` in 3 pass-path tests; added to negative-path missing-list.
|
|
1184
1644
|
- `tests/unit/artifact-prerequisites-typed.test.ts` (UPDATED, +20 lines) — same across bugfix + feature + refactor.
|
|
1185
1645
|
|
|
@@ -1193,11 +1653,11 @@ peaks-solo previously received 5 heterogeneous signals (security-audit, perf-aud
|
|
|
1193
1653
|
|---|---|
|
|
1194
1654
|
| 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 |
|
|
1195
1655
|
|
|
1196
|
-
### Verified (peaks
|
|
1656
|
+
### Verified (peaks code dogfood on this session)
|
|
1197
1657
|
|
|
1198
1658
|
- AC-1 (MUT_REPORT prereq): `tests/unit/artifact-prerequisites/mut-report-prereq.test.ts` → 4/4 pass; `tests/unit/artifact-prerequisites.test.ts` → 9/9 pass; `tests/unit/artifact-prerequisites-typed.test.ts` → 19/19 pass.
|
|
1199
1659
|
- AC-2 (verdict-aggregator): `tests/unit/services/verdict/verdict-aggregator.test.ts` → 13/13 pass; 8 AC-2 behaviors (A all-pass, B security-block, C mut-block, D qa-return-to-rd, E mixed-warn, F all-empty, G precedence block-dominant, H CRITICAL accumulation) all asserted.
|
|
1200
|
-
- AC-3 (micro-cycle reasoning): `tests/unit/skills/
|
|
1660
|
+
- AC-3 (micro-cycle reasoning): `tests/unit/skills/code/micro-cycle-verdict-reasoning.test.ts` → 4/4 pass; 6-step cycle body byte-stable.
|
|
1201
1661
|
- AC-4 (零回归): `tests/unit/parallel-fan-out.test.ts` → 18/18 pass (v2.12.0 stability pin); `tests/unit/rd/karpathy-skip-on-config-docs-chore.test.ts` → 11/11 pass; `tests/unit/rd/deprecated-reviewer-back-compat.test.ts` → 12/12 pass.
|
|
1202
1662
|
- Total: 8 test files, **90/90** tests pass, duration 1.27s.
|
|
1203
1663
|
- `./node_modules/.bin/tsc --noEmit` → 0 errors.
|
|
@@ -1224,7 +1684,7 @@ peaks-solo previously received 5 heterogeneous signals (security-audit, perf-aud
|
|
|
1224
1684
|
|
|
1225
1685
|
**MINOR bump from 2.12.0** (slice `v2-13-0-auto-compact-protocol`, 5-sub-task plan AC-1..AC-5, red-line scope ~6 source files + 2 IDE adapter fields).
|
|
1226
1686
|
|
|
1227
|
-
peaks-
|
|
1687
|
+
peaks-code now autonomously drives context compaction so the LLM-runner stays alive with context < 95% on **any AI CLI**, with **zero human / zero LLM intervention**. Two-tier threshold model:
|
|
1228
1688
|
|
|
1229
1689
|
- **85% pre-compact zone** — peaks-loop writes a pre-compact checkpoint + convergence plan + auto-decisions log + IDE-side compact dispatch (async-friendly).
|
|
1230
1690
|
- **95% RED LINE** — peaks-loop refuses sub-agent dispatch and forces synchronous IDE compact; mandatory, LLM cannot opt out.
|
|
@@ -1233,9 +1693,9 @@ Adapter-driven protocol (no hard-coded IDE names): `IdeAdapter.compact?: IdeComp
|
|
|
1233
1693
|
|
|
1234
1694
|
### Features
|
|
1235
1695
|
|
|
1236
|
-
- **`peaks
|
|
1237
|
-
- **`peaks
|
|
1238
|
-
- **Convergence toolkit** (AC-2) — `src/services/
|
|
1696
|
+
- **`peaks code context-now`** (AC-1) — auto-probes the active IDE adapter's context-fill % without requiring the LLM to pass `--prompt-size <bytes>` manually. Adapter-driven: reads `IdeAdapter.compact.envVarForContextPercent` (Claude Code MVP: `CLAUDE_CONTEXT_USAGE_PERCENT`). Returns a verdict (`ok` / `soft-warn` / `pre-compact` / `red-line`) plus source-tagged probe (`claude-code-env` / `statusline-poll` / `conservative-fallback`). When no IDE-specific signal is available, returns `ratio: 0` with `source: 'conservative-fallback'` so the orchestrator never auto-fires on a missing signal.
|
|
1697
|
+
- **`peaks code auto-compact`** (AC-4) — 0-intervention loop. Honors D6.e in-flight-batch deferral for the pre-compact zone; forces synchronous dispatch at red-line. `--force` and `--bypass-red-line` are test seams (never `true` in production).
|
|
1698
|
+
- **Convergence toolkit** (AC-2) — `src/services/code/auto-compact-orchestrator.ts` `evaluateCompactTrigger` (pure) + `runAutoCompact` (side effects: `writePreCompactCheckpoint` + `appendAutoDecisionLog` + `dispatchIdeCompact`). Checkpoints land at `.peaks/_runtime/<sessionId>/checkpoints/{pre-compact,red-line}-<ISO>.json`; the LLM-readable decision log lands at `.peaks/_runtime/<sessionId>/txt/auto-decisions.md` so D7's post-compact-detect picks it up unchanged.
|
|
1239
1699
|
- **IDE-aware compact dispatcher** (AC-3) — `src/services/context/auto-compact-dispatcher.ts` reads `IdeAdapter.compact` and dispatches via the adapter-declared pathway. `shell-exec` (Claude Code MVP) spawns the compact command via `child_process.spawn`. `ide-native` is reserved for a future slice. `llm-self-compress` returns success + instructs the LLM to summarize on next turn. `noop` returns explicit failure for legacy adapters.
|
|
1240
1700
|
|
|
1241
1701
|
### Internal
|
|
@@ -1243,10 +1703,10 @@ Adapter-driven protocol (no hard-coded IDE names): `IdeAdapter.compact?: IdeComp
|
|
|
1243
1703
|
- `src/services/context/auto-compact-types.ts` (NEW) — types + 3 constants: `AUTO_COMPACT_SOFT_WARN_RATIO = 0.5`, `AUTO_COMPACT_PRE_COMPACT_RATIO = 0.85`, `AUTO_COMPACT_RED_LINE_RATIO = 0.95`.
|
|
1244
1704
|
- `src/services/context/auto-compact-reader.ts` (NEW) — `readContextPercent` (AC-1 probe).
|
|
1245
1705
|
- `src/services/context/auto-compact-dispatcher.ts` (NEW) — `dispatchIdeCompact` (AC-3 IDE dispatch).
|
|
1246
|
-
- `src/services/
|
|
1706
|
+
- `src/services/code/auto-compact-orchestrator.ts` (NEW) — `evaluateCompactTrigger` + `runAutoCompact` (AC-2 + AC-4 core).
|
|
1247
1707
|
- `src/services/ide/ide-types.ts` — `IdeAdapter.compact?: IdeCompactProfile` + `IdeCompactProfile` interface.
|
|
1248
1708
|
- `src/services/ide/adapters/claude-code-adapter.ts` — MVP `compact` profile: `CLAUDE_CONTEXT_USAGE_PERCENT` + `claude --compact` + `shell-exec`.
|
|
1249
|
-
- `src/cli/commands/
|
|
1709
|
+
- `src/cli/commands/code-commands.ts` — `peaks code context-now` + `peaks code auto-compact` subcommands.
|
|
1250
1710
|
- `package.json` + `src/shared/version.ts` — `2.12.0 → 2.13.0`.
|
|
1251
1711
|
|
|
1252
1712
|
### Decision records
|
|
@@ -1257,10 +1717,10 @@ Adapter-driven protocol (no hard-coded IDE names): `IdeAdapter.compact?: IdeComp
|
|
|
1257
1717
|
|
|
1258
1718
|
| Commit tag | Scope |
|
|
1259
1719
|
|---|---|
|
|
1260
|
-
| v2.13.0-alpha.1 (`edffc33`) | Two-tier threshold + auto-compact types + reader + dispatcher + orchestrator + Claude Code MVP adapter + `peaks
|
|
1720
|
+
| 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 |
|
|
1261
1721
|
| `a8b9804` | In-session dogfood limitation documented (current ad-hoc Claude Code session cannot be externally compacted — reserved for follow-up PreToolUse-hook slice) |
|
|
1262
1722
|
|
|
1263
|
-
### Verified (peaks
|
|
1723
|
+
### Verified (peaks code dogfood on this session)
|
|
1264
1724
|
|
|
1265
1725
|
- `context-now` boundary tests: `0.30 = ok` / `0.50 = soft-warn` / `0.84 = soft-warn` / `0.85 = pre-compact` / `0.949 = pre-compact` / `0.95 = red-line` / `1.0 = red-line` ✓
|
|
1266
1726
|
- `auto-compact @ 1.0` (red-line): dispatched (shell-exec ok), `red-line` checkpoint written at `.peaks/_runtime/<sessionId>/checkpoints/red-line-<ISO>.json`, convergence plan + auto-decisions.md appended, `redLineGated: true` ✓
|
|
@@ -1273,12 +1733,12 @@ Adapter-driven protocol (no hard-coded IDE names): `IdeAdapter.compact?: IdeComp
|
|
|
1273
1733
|
|
|
1274
1734
|
### Out-of-scope (NOT changed)
|
|
1275
1735
|
|
|
1276
|
-
- `src/services/code-review/ecc-bridge.ts` + `src/services/dispatch/sub-agent-dispatcher.ts` + `src/services/agent/ecc-agent-service.ts` + `src/services/prd/handoff-service.ts` + `project-scan-reader.ts` + `src/services/rd/{strategic,tactical,strategy,impl,ast-gate,types}.ts` + `peaks-qa/` + `peaks-
|
|
1736
|
+
- `src/services/code-review/ecc-bridge.ts` + `src/services/dispatch/sub-agent-dispatcher.ts` + `src/services/agent/ecc-agent-service.ts` + `src/services/prd/handoff-service.ts` + `project-scan-reader.ts` + `src/services/rd/{strategic,tactical,strategy,impl,ast-gate,types}.ts` + `peaks-qa/` + `peaks-code/SKILL.md` main flow + `peaks-prd/SKILL.md` main body — all untouched per the v2.13.0 red-line scope.
|
|
1277
1737
|
|
|
1278
1738
|
### Known limitations (carry-forward to v2.13.1)
|
|
1279
1739
|
|
|
1280
1740
|
- **Ad-hoc Claude Code runner cannot be externally compacted.** The v2.13.0-alpha.1 shell-exec pathway spawns the IDE's compact command via `child_process.spawn` — a separate child process. The current Claude Code runner that invoked `auto-compact` is unaffected; its own context window stays at 100% until that runner's own compact logic kicks in (Claude Code's own auto-compact or a user-issued `/compact` slash command). Follow-up slice: register a PreToolUse hook via `peaks hooks install` that intercepts the next Bash call and writes a stderr hint when ratio ≥ 0.95 — fills the already-reserved `ide-native` compact pathway.
|
|
1281
|
-
- **`peaks-
|
|
1741
|
+
- **`peaks-code` Step N+2 prose update** — `skills/peaks-code/SKILL.md` should mention `peaks code context-now` + `auto-compact` so LLM sessions invoke the autonomous loop instead of `--prompt-size` hand-passing.
|
|
1282
1742
|
|
|
1283
1743
|
---
|
|
1284
1744
|
|
|
@@ -1340,7 +1800,7 @@ Each Group A→D ran the full RD→QA loop independently. Group C final QA: 14/1
|
|
|
1340
1800
|
|
|
1341
1801
|
### Out-of-scope (NOT changed)
|
|
1342
1802
|
|
|
1343
|
-
`src/services/code-review/ecc-bridge.ts` + `src/services/dispatch/sub-agent-dispatcher.ts` + `src/services/agent/ecc-agent-service.ts` + `src/services/prd/handoff-service.ts` + `project-scan-reader.ts` + `src/services/rd/{strategic,tactical,strategy,impl,ast-gate,types}.ts` + `peaks-qa/` + `peaks-
|
|
1803
|
+
`src/services/code-review/ecc-bridge.ts` + `src/services/dispatch/sub-agent-dispatcher.ts` + `src/services/agent/ecc-agent-service.ts` + `src/services/prd/handoff-service.ts` + `project-scan-reader.ts` + `src/services/rd/{strategic,tactical,strategy,impl,ast-gate,types}.ts` + `peaks-qa/` + `peaks-code/SKILL.md` main flow + `peaks-prd/SKILL.md` main body — all untouched per the v2.12.0 red-line scope.
|
|
1344
1804
|
|
|
1345
1805
|
---
|
|
1346
1806
|
|
|
@@ -1355,7 +1815,7 @@ Read-only observability layer on top of the v2.11.0 slice topology + 10/90 parad
|
|
|
1355
1815
|
- **`peaks observability status`** (AC-1) — aggregate metrics for active session: total slices, success count, fail count, fanout cost total, repair-cycle peak.
|
|
1356
1816
|
- **`peaks observability slices`** (AC-2) — per-slice list with rid, state, fanout count, repair-cycle count, duration (ms).
|
|
1357
1817
|
- **`peaks observability fanout`** (AC-3) — fanout cost breakdown per sub-agent role (rd / qa / code-reviewer / security-reviewer / karpathy-reviewer).
|
|
1358
|
-
- **`peaks observability repair-cycles`** (AC-4) — RD→QA repair-cycle count per slice; cap = 3 (peaks-
|
|
1818
|
+
- **`peaks observability repair-cycles`** (AC-4) — RD→QA repair-cycle count per slice; cap = 3 (peaks-code repair-loop contract); capHit flag.
|
|
1359
1819
|
- **`peaks observability report --period day|week|month`** (AC-5) — markdown summary (header + status + slice table + fanout table + repair-cycle table + top-5 slowest) suitable for paste into PR descriptions or `.peaks/PROJECT.md` timeline entries.
|
|
1360
1820
|
- **JSONL persistence** (AC-6) — append-only `.peaks/_runtime/<sessionId>/metrics/slices.jsonl`; zod schema v1; cross-session prune to last 10 session files by mtime.
|
|
1361
1821
|
- **Hook integration** (AC-7) — metrics emitted from 7 sites: `peaks request transition` (Slice A), `peaks sub-agent dispatch`, `peaks session checkpoint`, D5 mode-gate, D6 context-trigger, D7 post-compact, `peaks request transition` RD→QA prereq (Slice C). All emits fire-and-forget per PRD Q4 (full-auto must never fail-loud).
|
|
@@ -1373,9 +1833,9 @@ Read-only observability layer on top of the v2.11.0 slice topology + 10/90 parad
|
|
|
1373
1833
|
- Modified: `src/services/artifacts/request-artifact-service.ts` (hook #1/7).
|
|
1374
1834
|
- Modified: `src/cli/commands/dispatch-commands.ts` (hook #2/7).
|
|
1375
1835
|
- Modified: `src/services/session/session-checkpoint-service.ts` (hook #3/7).
|
|
1376
|
-
- Modified: `src/cli/commands/
|
|
1836
|
+
- Modified: `src/cli/commands/code-commands.ts` (hook #4/7).
|
|
1377
1837
|
- Modified: `src/cli/commands/context-commands.ts` (hook #5/7).
|
|
1378
|
-
- Modified: `src/services/
|
|
1838
|
+
- Modified: `src/services/code/post-compact-detector.ts` (hook #6/7).
|
|
1379
1839
|
- Modified: `src/services/artifacts/artifact-prerequisites.ts` (hook #7/7).
|
|
1380
1840
|
- Modified: `src/cli/program.ts` (+1 line: registerObservabilityCommands).
|
|
1381
1841
|
- Modified: `src/shared/version.ts` (CLI_VERSION 2.11.0 → 2.11.1).
|
|
@@ -1387,7 +1847,7 @@ Read-only observability layer on top of the v2.11.0 slice topology + 10/90 parad
|
|
|
1387
1847
|
|
|
1388
1848
|
**MINOR bump from 2.10.0** (slice `v2-11-rm-rd-techdoc-immutable-handoff`, 6 multi-CC groups A-F, plan at `.peaks/memory/2026-06-26-v2-11-rm-rd-techdoc-immutable-handoff.md`).
|
|
1389
1849
|
|
|
1390
|
-
Implements the "metering is value" + "10/90 paradigm" alignment: peaks-prd produces a single immutable handoff that all downstream consumers share; peaks-rd's parallel audit fan-out (now 5-way with ECC code-review + karpathy-reviewer hard gate) owns security/perf review; peaks-qa is trimmed to business-test-only; peaks-txt sediments business knowledge; peaks-
|
|
1850
|
+
Implements the "metering is value" + "10/90 paradigm" alignment: peaks-prd produces a single immutable handoff that all downstream consumers share; peaks-rd's parallel audit fan-out (now 5-way with ECC code-review + karpathy-reviewer hard gate) owns security/perf review; peaks-qa is trimmed to business-test-only; peaks-txt sediments business knowledge; peaks-code removes runtime friction (auto-proceed, context monitor, post-compact resume).
|
|
1391
1851
|
|
|
1392
1852
|
### Features
|
|
1393
1853
|
|
|
@@ -1396,7 +1856,7 @@ Implements the "metering is value" + "10/90 paradigm" alignment: peaks-prd produ
|
|
|
1396
1856
|
- **Tier 5+6 (Group C — `9fea8eb`)** — peaks-txt sediment step (`appendBusinessConcept`, idempotent on (concept, sourceRid), 7 tests); peaks-qa trim (removed `qa/security-findings.md` + `qa/performance-findings.md` from Gate D prerequisites).
|
|
1397
1857
|
- **Tier 7 (Group D — `cd427f6`)** — ECC code-review bridge (`src/services/code-review/ecc-bridge.ts`): envelope validator `isEccEnvelope` + `adaptEccEnvelopeToRdCodeReview` + 5-state `detectEcc` + `runEccCodeReview` aggregator; 17 tests.
|
|
1398
1858
|
- **Tier 8 (Group E — this CC)** — migration codemod `peaks migrate v2-10-to-v2-11` (deprecates historical `rd/tech-doc.md` files with a YAML banner frontmatter; text-only, idempotent).
|
|
1399
|
-
- **Tier 9 (Group F — commit `9e3ef49`)** — D5 self-decision (`src/services/
|
|
1859
|
+
- **Tier 9 (Group F — commit `9e3ef49`)** — D5 self-decision (`src/services/code/mode-gate.ts` + `peaks code should-pause`); D6 context monitor (`src/services/context/main-session-monitor.ts` + `peaks context check`); D7 post-compact resume (`src/services/code/post-compact-detector.ts` + `peaks code post-compact-detect`); SKILL.md new Step N+2 + Step 0.7 D7 branch. +111 tests.
|
|
1400
1860
|
|
|
1401
1861
|
### Migration
|
|
1402
1862
|
|
|
@@ -1414,7 +1874,7 @@ Implements the "metering is value" + "10/90 paradigm" alignment: peaks-prd produ
|
|
|
1414
1874
|
|
|
1415
1875
|
- **ECC envelope validation** assumes the `everything-claude-code` plugin is installed and exposes a `code-review` agent with the `{ passed, violations[], gateAction }` shape. If the plugin is absent, peaks-rd falls back to inline review (5-state detector + `code-review-ecc-degraded-to-inline` TXT note).
|
|
1416
1876
|
- **D5 hard-floor categories** (irreversible external side effects / auth-credential / multi-day investment) still pause for AskUserQuestion regardless of mode.
|
|
1417
|
-
- **D7 post-compact resume** requires re-invoking `/peaks-
|
|
1877
|
+
- **D7 post-compact resume** requires re-invoking `/peaks-code` in fresh context (Option A — no SessionStart hook in v2.11.0; Option B deferred).
|
|
1418
1878
|
- **Migration scope** is text-only — historical `rd/tech-doc.md` files coexist with the new `prd/handoff.md`; prune is a future slice.
|
|
1419
1879
|
|
|
1420
1880
|
---
|
|
@@ -1427,7 +1887,7 @@ Implements the 10/90 paradigm foundation: 10% human / 90% LLM autonomous workflo
|
|
|
1427
1887
|
|
|
1428
1888
|
### Features
|
|
1429
1889
|
|
|
1430
|
-
- **Multi-pass slice decomposition** (`peaks slice decompose --granularity=service|file|both|auto`, slice W2/W3): produces a v2 hierarchical topology (`DecompositionResultV2` with `passes[].slices[]` and `granularity` / `parentSliceId` fields) that supports peaks-
|
|
1890
|
+
- **Multi-pass slice decomposition** (`peaks slice decompose --granularity=service|file|both|auto`, slice W2/W3): produces a v2 hierarchical topology (`DecompositionResultV2` with `passes[].slices[]` and `granularity` / `parentSliceId` fields) that supports peaks-code fan-out RD. v1 envelopes continue to read via `SchemaRouter` (`src/services/slice/schema-router.ts`).
|
|
1431
1891
|
- **LLMArbitrator** (W2 T5): content-hash SHA-256 cache (`<cacheDir>/<hash>.json`), budget cap (`resetArbitratorBudget()`), live/cache/failure-path callId routing.
|
|
1432
1892
|
- **GranularityDecider** (W2 T6): stop-condition + tie-break for file-vs-service subdivision.
|
|
1433
1893
|
- **CrossPassEdgeMerger** (W2 T7): static detection (type-shares / fixture-shares / re-exports / import-binding) + LLM fallback; static detection runs UNCONDITIONALLY (W6 fix #1) so it works without an `llmRunner`.
|
|
@@ -1437,7 +1897,7 @@ Implements the 10/90 paradigm foundation: 10% human / 90% LLM autonomous workflo
|
|
|
1437
1897
|
- **peaks slice plan PickedFileRouter** (W6 CC-β): `parsePickedFile()` helper replaces raw `JSON.parse(...)` for `-picked.json` envelope; new `PICKED_ENVELOPE_INVALID` error code on validation failure.
|
|
1438
1898
|
- **3 new skills** (W4): `peaks-slice-decompose` (v2 schema references), `peaks-audit` (6-dim reference), `peaks-final-review` (4-dim reference).
|
|
1439
1899
|
- **5 existing skill updates** (W7 CC-α):
|
|
1440
|
-
- `peaks-
|
|
1900
|
+
- `peaks-code` — new Step 0.6 (Audit + Goal gate) and Step N+1 (Final Review gate) between Step 0.5 and Step 0.7.
|
|
1441
1901
|
- `peaks-rd` — new references: `reading-v2-slice-results.md` (SchemaRouter dual-read), `writing-handoff-frontmatter.md` (frontmatter fields + canonical path).
|
|
1442
1902
|
- `peaks-qa` — new reference: `reading-handoff-frontmatter.md` (cross-check `decisions[]` vs `tests/`, `risks[]` vs `tests/unit/security/`).
|
|
1443
1903
|
- `peaks-prd` — new reference: `prd-for-multi-pass.md` (AC tagging `[pass-1]` / `[pass-2]`).
|
|
@@ -1459,7 +1919,7 @@ Implements the 10/90 paradigm foundation: 10% human / 90% LLM autonomous workflo
|
|
|
1459
1919
|
### Bugfixes — W8 / W8-b stabilization (slice `add-slice-topology-multipass`, post-W7 follow-up)
|
|
1460
1920
|
|
|
1461
1921
|
- **W8 CC-α** (commit `56a9d9e`): stabilize 3 pre-existing flaky tests — `tests/unit/cli-program.workflow.test.ts` per-file timeout raised from vitest default 5000ms → 10000ms (`vi.setConfig({ testTimeout: 10000 })`); `tests/unit/dispatch-cli-latency-benchmark.test.ts` 250ms → 300ms threshold (median + min) with description + inline-comment updates for Karpathy #3 honesty.
|
|
1462
|
-
- **W8-b CC-α** (commits `e17f868` + `30f9b51`): fix 3 newly-surfaced state-bound pre-existing failures — `tests/unit/package.test.ts` `beforeAll` runs `scripts/sync-version.mjs` so the version-source assertion is deterministic without `pnpm build`; `tests/unit/cli-program.core.test.ts` + `tests/unit/project-commands.test.ts` use `vi.hoisted` + `vi.mock` to isolate from real-project filesystem state (synthetic passing doctor report + `vi.importActual` passthrough with default `doctorReport`/`runbookHealth` injection); `src/shared/version.ts` synced to `2.10.0` (W7-
|
|
1922
|
+
- **W8-b CC-α** (commits `e17f868` + `30f9b51`): fix 3 newly-surfaced state-bound pre-existing failures — `tests/unit/package.test.ts` `beforeAll` runs `scripts/sync-version.mjs` so the version-source assertion is deterministic without `pnpm build`; `tests/unit/cli-program.core.test.ts` + `tests/unit/project-commands.test.ts` use `vi.hoisted` + `vi.mock` to isolate from real-project filesystem state (synthetic passing doctor report + `vi.importActual` passthrough with default `doctorReport`/`runbookHealth` injection); `src/shared/version.ts` synced to `2.10.0` (W7-code T22 missed this; W8-b surfaced it via the `beforeAll` sync-version run).
|
|
1463
1923
|
- Net effect: full suite `3974 / 0 failed / 17 skipped` (was `3974 / 3 failed / 17 skipped` after W7 due to the 3 state-bound failures, and 3974 / 0 / 17 was timing-flaky due to the 3 W8 targets).
|
|
1464
1924
|
|
|
1465
1925
|
### Risks / gaps carried forward
|
|
@@ -1477,7 +1937,7 @@ Implements the 10/90 paradigm foundation: 10% human / 90% LLM autonomous workflo
|
|
|
1477
1937
|
|
|
1478
1938
|
- **Sub-agent fan-out is mandatory** (slice `2026-06-24-audit-5th-p2`): `preferences.fanout.defaultMode = 'serial'` opt-out removed. When the slice DAG has ≥ 2 leaves at one topological level, the orchestrator MUST use `peaks sub-agent dispatch --from-dag <dag-file> --batch-id <id>`. No preference, env-var, or CLI flag overrides this. `FANOUT_MODES = ['fan-out']` only; legacy `serial` values auto-migrate via `peaks preferences migrate --write`.
|
|
1479
1939
|
- **4-policy bundle (slice `2026-06-24-efficiency-4p-bundle`)**: (a) default fan-out via `--from-dag`; (b) periodic checkpoint frequency locked at 20 tool calls (no `~` approximation, no `--periodic-every` override); (c) Karpathy reviewer skipped for `config | docs | chore` request types (5-way review otherwise); (d) `swarmSpeculative.maxConcurrent` default bumped 2 → 3.
|
|
1480
|
-
- **Test-tool-detection block** (slice `2026-06-24-test-tool-detection-injection`): Every sub-agent dispatched by
|
|
1940
|
+
- **Test-tool-detection block** (slice `2026-06-24-test-tool-detection-injection`): Every sub-agent dispatched by Code (`peaks-rd`, `peaks-qa`, `peaks-ui`, `peaks-txt`, `peaks-sc`, `peaks-general-purpose`, single + DAG) receives a hard "Test Tool Detection (mandatory)" block at the top of its prompt: read `package.json#scripts.test`, use project-local runner (`./node_modules/.bin/<runner>` or `pnpm test --`), NEVER `npx <runner>`. Wired at both `dispatch-commands.ts` and `dag-orchestrator.ts` chokepoints; envelope version bumped to `2.2.0`.
|
|
1481
1941
|
|
|
1482
1942
|
### Bugfixes — handoff path canonicalization (v1 + v2 + v3 + v4 + v5 + v6 + v7)
|
|
1483
1943
|
|
|
@@ -1544,7 +2004,7 @@ Replaced all 20 with a 4-helper API at `src/services/artifacts/artifact-template
|
|
|
1544
2004
|
**Added.** Sub-agent dispatch (both single + DAG paths, all roles rd/qa/ui/txt/sc/general-purpose) now prepends a `## Test Tool Detection (mandatory)` block to every sub-agent prompt. The block tells the sub-agent to read `package.json#scripts.test` first and use the project-local runner (`./node_modules/.bin/<runner>` or `pnpm test -- <file>`) — never `npx <runner>`. Runtime introspection: `peaks test --json`.
|
|
1545
2005
|
|
|
1546
2006
|
- New module: `src/services/dispatch/test-tool-detection.ts` (47 lines; exports `TEST_TOOL_DETECTION_BLOCK` + `formatTestToolDetection()`)
|
|
1547
|
-
- Dispatch chokepoints updated: `src/cli/commands/dispatch-commands.ts:187`, `src/services/
|
|
2007
|
+
- Dispatch chokepoints updated: `src/cli/commands/dispatch-commands.ts:187`, `src/services/code/dag-orchestrator.ts:157,182-183`
|
|
1548
2008
|
- Dispatch envelope bumped: `envelopeVersion: '2.1.0'` → `'2.2.0'` (consumers can detect the new prompt shape)
|
|
1549
2009
|
- New tests: `tests/unit/dispatch/test-tool-detection.test.ts` (6), `tests/unit/dispatch/test-tool-detection-injection.test.ts` (9), `tests/unit/skills/test-tool-detection-docs.test.ts` (4) — 19 new assertions
|
|
1550
2010
|
- Block size: 749 bytes UTF-8 (≤800 cap)
|
|
@@ -1558,9 +2018,9 @@ Replaced all 20 with a 4-helper API at `src/services/artifacts/artifact-template
|
|
|
1558
2018
|
### Changed
|
|
1559
2019
|
|
|
1560
2020
|
- **`FanoutMode` closed set narrowed to `['fan-out']`.** The `'serial'` member is gone from `src/services/preferences/preferences-types.ts`; any preferences.json file carrying `defaultMode = 'serial'` (or any non-fan-out value) now throws `PREFERENCES_FANOUT_INVALID` at load. The `migratePreferences` path silently rewrites legacy `'serial'` → `'fan-out'` for 2.8.3-era files and surfaces the change in the migration envelope's `changes[]`.
|
|
1561
|
-
- **SKILL.md contract flipped.** `peaks-
|
|
2021
|
+
- **SKILL.md contract flipped.** `peaks-code` SKILL.md now states "Hard constraint: fan-out is mandatory"; the previous "Fan-out opt-out" subsection is removed.
|
|
1562
2022
|
- **Reference docs reorganized.** `references/fanout-opt-out.md` (escape hatch) → `references/fanout-mandatory.md` (hard constraint + migration contract). `references/swarm-dispatch-contract.md` opt-out callout removed.
|
|
1563
|
-
- **Test surface refreshed.** `tests/unit/
|
|
2023
|
+
- **Test surface refreshed.** `tests/unit/code/skills-code-fanout-opt-out.test.ts` → `tests/unit/code/skills-code-fanout-mandatory.test.ts`; pins the new hard constraint and verifies the opt-out file is deleted.
|
|
1564
2024
|
|
|
1565
2025
|
### Migration
|
|
1566
2026
|
|
|
@@ -1889,11 +2349,11 @@ are unchanged by this release), `pnpm build` clean.
|
|
|
1889
2349
|
`.peaks/_runtime/<sessionId>/dispatch/contracts/<slice-id>.json`. The B/C/D
|
|
1890
2350
|
dispatch prompts auto-inject A's contract under a `slice A contract:`
|
|
1891
2351
|
segment so downstream slices see the dependency without re-reading source.
|
|
1892
|
-
- **
|
|
1893
|
-
`src/services/
|
|
2352
|
+
- **Code DAG orchestrator with cancel-on-fail (slice 1.2)** —
|
|
2353
|
+
`src/services/code/dag-orchestrator.ts` exports `runDag(dag, opts)`:
|
|
1894
2354
|
topological-layer fan-out, per-layer join barrier, 任一叶子失败整组回退
|
|
1895
2355
|
(any leaf failure → in-flight sub-agents receive cancel signal → RD
|
|
1896
|
-
returns to repair). peaks-
|
|
2356
|
+
returns to repair). peaks-code SKILL.md references the orchestrator.
|
|
1897
2357
|
- **5-IDE `awaitBatch` real implementation (slices 1.2 + 1.3 + 1.4)** —
|
|
1898
2358
|
`SubAgentDispatcher.awaitBatch(batchId, opts): Promise<BatchResult[]>`
|
|
1899
2359
|
is now implemented across **all 5 IDEs**: claude-code (1.2 MVP) +
|
|
@@ -1953,7 +2413,7 @@ are unchanged by this release), `pnpm build` clean.
|
|
|
1953
2413
|
- **`runDag` cancel-on-fail correctness (slice 1.2.c)** — when any leaf
|
|
1954
2414
|
fails, in-flight sub-agents in the same batch receive a cancel signal
|
|
1955
2415
|
at the envelope level; the orchestrator no longer waits for them to
|
|
1956
|
-
finish naturally. Pinned by `tests/unit/
|
|
2416
|
+
finish naturally. Pinned by `tests/unit/code/dag-orchestrator.test.ts`.
|
|
1957
2417
|
|
|
1958
2418
|
### Security
|
|
1959
2419
|
|
|
@@ -2407,10 +2867,10 @@ are unchanged by this release), `pnpm build` clean.
|
|
|
2407
2867
|
skillsActive, todoState, reason, createdAt). Max 10 retained, oldest auto-pruned.
|
|
2408
2868
|
- **`peaks session resume`** (slice 011) — reads checkpoint JSON, emits structured
|
|
2409
2869
|
markdown block for skill to prepend on session restart.
|
|
2410
|
-
- **peaks-
|
|
2411
|
-
IDE-agnostic; lives in `skills/peaks-
|
|
2412
|
-
- **peaks-
|
|
2413
|
-
- **peaks-
|
|
2870
|
+
- **peaks-code Step 0.5** (slice 011) — cross-date session check.
|
|
2871
|
+
IDE-agnostic; lives in `skills/peaks-code/references/cross-date-session-check.md`.
|
|
2872
|
+
- **peaks-code Step 0.75** (slice 011) — checkpoint resume probe.
|
|
2873
|
+
- **peaks-code Step N** (slice 011) — periodic checkpoint guidance.
|
|
2414
2874
|
|
|
2415
2875
|
### Security
|
|
2416
2876
|
|
|
@@ -2599,12 +3059,12 @@ Full suite: **2957 passed, 12 skipped, 0 failed**.
|
|
|
2599
3059
|
5+ historical slice records exist; v1.1 will switch to percentile
|
|
2600
3060
|
lookup.
|
|
2601
3061
|
|
|
2602
|
-
- **`peaks-
|
|
2603
|
-
|
|
3062
|
+
- **`peaks-code` Step 0.6** — pre-mode-selection slice decomposition.
|
|
3063
|
+
Code runs the algorithm automatically after Step 0.55 (1.x detection)
|
|
2604
3064
|
returns "fresh". The user picks a profile informed by the
|
|
2605
3065
|
decomposition's parallel structure.
|
|
2606
3066
|
|
|
2607
|
-
- **3 new `peaks-
|
|
3067
|
+
- **3 new `peaks-code/references/*.md`** — `slice-algorithm.md`
|
|
2608
3068
|
(algorithm spec), `understand-anything-integration.md` (KG consumer
|
|
2609
3069
|
contract), `fzf-integration.md` (operator-facing fzf usage).
|
|
2610
3070
|
|
|
@@ -2618,7 +3078,7 @@ Full suite: **2957 passed, 12 skipped, 0 failed**.
|
|
|
2618
3078
|
now derive from `parallelBatches` (with legacy `--type` lookup as
|
|
2619
3079
|
the fallback path).
|
|
2620
3080
|
|
|
2621
|
-
- **Extended `peaks-
|
|
3081
|
+
- **Extended `peaks-code/SKILL.md`** — adds "Peaks-Loop Slice
|
|
2622
3082
|
Decomposition (Step 0.6 — pre-mode-selection)" section.
|
|
2623
3083
|
|
|
2624
3084
|
- **Extended `runbook.md`** — adds "Step 2.5: Slice Decomposition"
|
|
@@ -3092,7 +3552,7 @@ subprocess ignores it when peaks-loop's env vars are present).
|
|
|
3092
3552
|
write. Soft-fail per sub-step; never blocks the whole upgrade.
|
|
3093
3553
|
|
|
3094
3554
|
- **`peaks upgrade --detect-1x`** — read-only probe returning a JSON
|
|
3095
|
-
envelope the peaks-
|
|
3555
|
+
envelope the peaks-code skill consumes to gate the AskUserQuestion
|
|
3096
3556
|
in Step 0.55.
|
|
3097
3557
|
|
|
3098
3558
|
- **`peaks standards migrate --from-claude-rules`** — thins `.claude/rules/`
|