peaks-loop 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +51 -0
- package/CHANGELOG.md +3136 -0
- package/LICENSE +21 -0
- package/README-en.md +281 -0
- package/README.md +365 -0
- package/agents/karpathy-reviewer.md +229 -0
- package/bin/peaks.js +2 -0
- package/dist/src/cli/cli-helpers.d.ts +25 -0
- package/dist/src/cli/cli-helpers.js +78 -0
- package/dist/src/cli/commands/agent-commands.d.ts +20 -0
- package/dist/src/cli/commands/agent-commands.js +48 -0
- package/dist/src/cli/commands/audit-commands.d.ts +28 -0
- package/dist/src/cli/commands/audit-commands.js +437 -0
- package/dist/src/cli/commands/capability-commands.d.ts +16 -0
- package/dist/src/cli/commands/capability-commands.js +45 -0
- package/dist/src/cli/commands/capability-worker-config-sc-commands.d.ts +3 -0
- package/dist/src/cli/commands/capability-worker-config-sc-commands.js +10 -0
- package/dist/src/cli/commands/classify-classify-commands.d.ts +19 -0
- package/dist/src/cli/commands/classify-classify-commands.js +151 -0
- package/dist/src/cli/commands/code-review-commands.d.ts +34 -0
- package/dist/src/cli/commands/code-review-commands.js +83 -0
- package/dist/src/cli/commands/codegraph-commands.d.ts +3 -0
- package/dist/src/cli/commands/codegraph-commands.js +99 -0
- package/dist/src/cli/commands/complexity-commands.d.ts +9 -0
- package/dist/src/cli/commands/complexity-commands.js +34 -0
- package/dist/src/cli/commands/config-commands.d.ts +3 -0
- package/dist/src/cli/commands/config-commands.js +220 -0
- package/dist/src/cli/commands/context-builder-commands.d.ts +11 -0
- package/dist/src/cli/commands/context-builder-commands.js +85 -0
- package/dist/src/cli/commands/context-commands.d.ts +21 -0
- package/dist/src/cli/commands/context-commands.js +254 -0
- package/dist/src/cli/commands/contract-commands.d.ts +26 -0
- package/dist/src/cli/commands/contract-commands.js +114 -0
- package/dist/src/cli/commands/core/artifacts-command.d.ts +3 -0
- package/dist/src/cli/commands/core/artifacts-command.js +62 -0
- package/dist/src/cli/commands/core/binding-commands.d.ts +3 -0
- package/dist/src/cli/commands/core/binding-commands.js +58 -0
- package/dist/src/cli/commands/core/doctor-command.d.ts +11 -0
- package/dist/src/cli/commands/core/doctor-command.js +204 -0
- package/dist/src/cli/commands/core/memory-command.d.ts +3 -0
- package/dist/src/cli/commands/core/memory-command.js +98 -0
- package/dist/src/cli/commands/core/profile-command.d.ts +3 -0
- package/dist/src/cli/commands/core/profile-command.js +9 -0
- package/dist/src/cli/commands/core/proxy-command.d.ts +3 -0
- package/dist/src/cli/commands/core/proxy-command.js +26 -0
- package/dist/src/cli/commands/core/session-command.d.ts +3 -0
- package/dist/src/cli/commands/core/session-command.js +213 -0
- package/dist/src/cli/commands/core/skill-command.d.ts +3 -0
- package/dist/src/cli/commands/core/skill-command.js +275 -0
- package/dist/src/cli/commands/core/standards-command.d.ts +3 -0
- package/dist/src/cli/commands/core/standards-command.js +95 -0
- package/dist/src/cli/commands/core-artifact-commands.d.ts +15 -0
- package/dist/src/cli/commands/core-artifact-commands.js +31 -0
- package/dist/src/cli/commands/dispatch-commands.d.ts +10 -0
- package/dist/src/cli/commands/dispatch-commands.js +351 -0
- package/dist/src/cli/commands/dispatch-from-dag.d.ts +3 -0
- package/dist/src/cli/commands/dispatch-from-dag.js +251 -0
- package/dist/src/cli/commands/doc-commands.d.ts +11 -0
- package/dist/src/cli/commands/doc-commands.js +65 -0
- package/dist/src/cli/commands/feedback-commands.d.ts +18 -0
- package/dist/src/cli/commands/feedback-commands.js +145 -0
- package/dist/src/cli/commands/final-review-commands.d.ts +31 -0
- package/dist/src/cli/commands/final-review-commands.js +161 -0
- package/dist/src/cli/commands/fixture-commands.d.ts +32 -0
- package/dist/src/cli/commands/fixture-commands.js +91 -0
- package/dist/src/cli/commands/fork-commands.d.ts +16 -0
- package/dist/src/cli/commands/fork-commands.js +163 -0
- package/dist/src/cli/commands/gate-commands.d.ts +3 -0
- package/dist/src/cli/commands/gate-commands.js +117 -0
- package/dist/src/cli/commands/heartbeat-commands.d.ts +3 -0
- package/dist/src/cli/commands/heartbeat-commands.js +135 -0
- package/dist/src/cli/commands/hook-handle.d.ts +17 -0
- package/dist/src/cli/commands/hook-handle.js +157 -0
- package/dist/src/cli/commands/hooks-commands.d.ts +3 -0
- package/dist/src/cli/commands/hooks-commands.js +156 -0
- package/dist/src/cli/commands/impact-commands.d.ts +15 -0
- package/dist/src/cli/commands/impact-commands.js +62 -0
- package/dist/src/cli/commands/legacy-commands.d.ts +11 -0
- package/dist/src/cli/commands/legacy-commands.js +32 -0
- package/dist/src/cli/commands/log-commands.d.ts +17 -0
- package/dist/src/cli/commands/log-commands.js +64 -0
- package/dist/src/cli/commands/loop-commands.d.ts +21 -0
- package/dist/src/cli/commands/loop-commands.js +128 -0
- package/dist/src/cli/commands/loop-eval-commands.d.ts +20 -0
- package/dist/src/cli/commands/loop-eval-commands.js +526 -0
- package/dist/src/cli/commands/memory-commands.d.ts +23 -0
- package/dist/src/cli/commands/memory-commands.js +129 -0
- package/dist/src/cli/commands/migrate-1-4-1-command.d.ts +11 -0
- package/dist/src/cli/commands/migrate-1-4-1-command.js +34 -0
- package/dist/src/cli/commands/migrate-v2-10-to-v2-11-command.d.ts +20 -0
- package/dist/src/cli/commands/migrate-v2-10-to-v2-11-command.js +52 -0
- package/dist/src/cli/commands/mut-commands.d.ts +20 -0
- package/dist/src/cli/commands/mut-commands.js +239 -0
- package/dist/src/cli/commands/observability-commands.d.ts +22 -0
- package/dist/src/cli/commands/observability-commands.js +201 -0
- package/dist/src/cli/commands/openspec-commands.d.ts +3 -0
- package/dist/src/cli/commands/openspec-commands.js +237 -0
- package/dist/src/cli/commands/perf-audit-commands.d.ts +22 -0
- package/dist/src/cli/commands/perf-audit-commands.js +132 -0
- package/dist/src/cli/commands/perf-commands.d.ts +3 -0
- package/dist/src/cli/commands/perf-commands.js +41 -0
- package/dist/src/cli/commands/playwright-commands.d.ts +95 -0
- package/dist/src/cli/commands/playwright-commands.js +432 -0
- package/dist/src/cli/commands/prd-blocks-commands.d.ts +18 -0
- package/dist/src/cli/commands/prd-blocks-commands.js +50 -0
- package/dist/src/cli/commands/prd-commands.d.ts +18 -0
- package/dist/src/cli/commands/prd-commands.js +141 -0
- package/dist/src/cli/commands/preferences-commands.d.ts +2 -0
- package/dist/src/cli/commands/preferences-commands.js +197 -0
- package/dist/src/cli/commands/project-commands.d.ts +3 -0
- package/dist/src/cli/commands/project-commands.js +248 -0
- package/dist/src/cli/commands/qa-business-review-commands.d.ts +17 -0
- package/dist/src/cli/commands/qa-business-review-commands.js +148 -0
- package/dist/src/cli/commands/qa-commands.d.ts +94 -0
- package/dist/src/cli/commands/qa-commands.js +271 -0
- package/dist/src/cli/commands/release-commands.d.ts +24 -0
- package/dist/src/cli/commands/release-commands.js +231 -0
- package/dist/src/cli/commands/request-commands.d.ts +3 -0
- package/dist/src/cli/commands/request-commands.js +509 -0
- package/dist/src/cli/commands/retrospective-commands.d.ts +12 -0
- package/dist/src/cli/commands/retrospective-commands.js +175 -0
- package/dist/src/cli/commands/reviewer-commands.d.ts +14 -0
- package/dist/src/cli/commands/reviewer-commands.js +64 -0
- package/dist/src/cli/commands/role-commands.d.ts +13 -0
- package/dist/src/cli/commands/role-commands.js +85 -0
- package/dist/src/cli/commands/sc-commands.d.ts +3 -0
- package/dist/src/cli/commands/sc-commands.js +45 -0
- package/dist/src/cli/commands/scan-commands.d.ts +3 -0
- package/dist/src/cli/commands/scan-commands.js +445 -0
- package/dist/src/cli/commands/security-audit-commands.d.ts +23 -0
- package/dist/src/cli/commands/security-audit-commands.js +132 -0
- package/dist/src/cli/commands/session-checkpoint-command.d.ts +10 -0
- package/dist/src/cli/commands/session-checkpoint-command.js +100 -0
- package/dist/src/cli/commands/session-resume-command.d.ts +11 -0
- package/dist/src/cli/commands/session-resume-command.js +83 -0
- package/dist/src/cli/commands/share-commands.d.ts +17 -0
- package/dist/src/cli/commands/share-commands.js +296 -0
- package/dist/src/cli/commands/skill-conformance-commands.d.ts +9 -0
- package/dist/src/cli/commands/skill-conformance-commands.js +39 -0
- package/dist/src/cli/commands/slice-commands.d.ts +24 -0
- package/dist/src/cli/commands/slice-commands.js +492 -0
- package/dist/src/cli/commands/slice-integrate-commands.d.ts +11 -0
- package/dist/src/cli/commands/slice-integrate-commands.js +74 -0
- package/dist/src/cli/commands/slice-review-commands.d.ts +23 -0
- package/dist/src/cli/commands/slice-review-commands.js +162 -0
- package/dist/src/cli/commands/smoke-commands.d.ts +21 -0
- package/dist/src/cli/commands/smoke-commands.js +203 -0
- package/dist/src/cli/commands/solo-commands.d.ts +80 -0
- package/dist/src/cli/commands/solo-commands.js +435 -0
- package/dist/src/cli/commands/sop-commands.d.ts +3 -0
- package/dist/src/cli/commands/sop-commands.js +215 -0
- package/dist/src/cli/commands/statusline-commands.d.ts +3 -0
- package/dist/src/cli/commands/statusline-commands.js +169 -0
- package/dist/src/cli/commands/sub-agent-commands.d.ts +22 -0
- package/dist/src/cli/commands/sub-agent-commands.js +19 -0
- package/dist/src/cli/commands/sub-agent-dispatch-guard.d.ts +55 -0
- package/dist/src/cli/commands/sub-agent-dispatch-guard.js +57 -0
- package/dist/src/cli/commands/sub-agent-shared.d.ts +99 -0
- package/dist/src/cli/commands/sub-agent-shared.js +67 -0
- package/dist/src/cli/commands/test-commands.d.ts +47 -0
- package/dist/src/cli/commands/test-commands.js +204 -0
- package/dist/src/cli/commands/understand-commands.d.ts +3 -0
- package/dist/src/cli/commands/understand-commands.js +112 -0
- package/dist/src/cli/commands/upgrade-commands.d.ts +23 -0
- package/dist/src/cli/commands/upgrade-commands.js +119 -0
- package/dist/src/cli/commands/user-touchpoint-commands.d.ts +18 -0
- package/dist/src/cli/commands/user-touchpoint-commands.js +78 -0
- package/dist/src/cli/commands/verdict-aggregate-command.d.ts +14 -0
- package/dist/src/cli/commands/verdict-aggregate-command.js +106 -0
- package/dist/src/cli/commands/worker-commands.d.ts +3 -0
- package/dist/src/cli/commands/worker-commands.js +52 -0
- package/dist/src/cli/commands/workflow-commands.d.ts +3 -0
- package/dist/src/cli/commands/workflow-commands.js +535 -0
- package/dist/src/cli/commands/workflow-plan-commands.d.ts +39 -0
- package/dist/src/cli/commands/workflow-plan-commands.js +163 -0
- package/dist/src/cli/commands/workspace/clean-command.d.ts +14 -0
- package/dist/src/cli/commands/workspace/clean-command.js +49 -0
- package/dist/src/cli/commands/workspace/helpers.d.ts +28 -0
- package/dist/src/cli/commands/workspace/helpers.js +87 -0
- package/dist/src/cli/commands/workspace/init-command.d.ts +121 -0
- package/dist/src/cli/commands/workspace/init-command.js +436 -0
- package/dist/src/cli/commands/workspace/migrate-command.d.ts +11 -0
- package/dist/src/cli/commands/workspace/migrate-command.js +91 -0
- package/dist/src/cli/commands/workspace/reconcile-command.d.ts +14 -0
- package/dist/src/cli/commands/workspace/reconcile-command.js +103 -0
- package/dist/src/cli/commands/workspace-commands.d.ts +18 -0
- package/dist/src/cli/commands/workspace-commands.js +50 -0
- package/dist/src/cli/index.d.ts +1 -0
- package/dist/src/cli/index.js +30 -0
- package/dist/src/cli/program.d.ts +5 -0
- package/dist/src/cli/program.js +336 -0
- package/dist/src/hooks/pre-tool-use-sub-agent.d.ts +28 -0
- package/dist/src/hooks/pre-tool-use-sub-agent.js +105 -0
- package/dist/src/lib/render/message-renderer.d.ts +20 -0
- package/dist/src/lib/render/message-renderer.js +80 -0
- package/dist/src/services/agent/ecc-agent-service.d.ts +47 -0
- package/dist/src/services/agent/ecc-agent-service.js +143 -0
- package/dist/src/services/artifacts/artifact-lint-service.d.ts +23 -0
- package/dist/src/services/artifacts/artifact-lint-service.js +99 -0
- package/dist/src/services/artifacts/artifact-prerequisites.d.ts +78 -0
- package/dist/src/services/artifacts/artifact-prerequisites.js +491 -0
- package/dist/src/services/artifacts/artifact-service.d.ts +43 -0
- package/dist/src/services/artifacts/artifact-service.js +98 -0
- package/dist/src/services/artifacts/artifact-templates.d.ts +30 -0
- package/dist/src/services/artifacts/artifact-templates.js +302 -0
- package/dist/src/services/artifacts/repair-cycle-service.d.ts +23 -0
- package/dist/src/services/artifacts/repair-cycle-service.js +52 -0
- package/dist/src/services/artifacts/request-artifact-service.d.ts +116 -0
- package/dist/src/services/artifacts/request-artifact-service.js +451 -0
- package/dist/src/services/artifacts/request-artifact-state-helpers.d.ts +51 -0
- package/dist/src/services/artifacts/request-artifact-state-helpers.js +114 -0
- package/dist/src/services/artifacts/workspace-service.d.ts +34 -0
- package/dist/src/services/artifacts/workspace-service.js +272 -0
- package/dist/src/services/audit/artifact-writer.d.ts +93 -0
- package/dist/src/services/audit/artifact-writer.js +303 -0
- package/dist/src/services/audit/audit-goal-service.d.ts +35 -0
- package/dist/src/services/audit/audit-goal-service.js +75 -0
- package/dist/src/services/audit/audit-goal-types.d.ts +40 -0
- package/dist/src/services/audit/audit-goal-types.js +15 -0
- package/dist/src/services/audit/backing-detector.d.ts +24 -0
- package/dist/src/services/audit/backing-detector.js +59 -0
- package/dist/src/services/audit/classifier.d.ts +38 -0
- package/dist/src/services/audit/classifier.js +134 -0
- package/dist/src/services/audit/decision-writer.d.ts +76 -0
- package/dist/src/services/audit/decision-writer.js +217 -0
- package/dist/src/services/audit/enforcers/active-skill-resolver.d.ts +29 -0
- package/dist/src/services/audit/enforcers/active-skill-resolver.js +71 -0
- package/dist/src/services/audit/enforcers/design-draft-confirm.d.ts +24 -0
- package/dist/src/services/audit/enforcers/design-draft-confirm.js +58 -0
- package/dist/src/services/audit/enforcers/lint-audit-regression.d.ts +21 -0
- package/dist/src/services/audit/enforcers/lint-audit-regression.js +86 -0
- package/dist/src/services/audit/enforcers/lint-catalog-governance.d.ts +32 -0
- package/dist/src/services/audit/enforcers/lint-catalog-governance.js +48 -0
- package/dist/src/services/audit/enforcers/lint-cli-back.d.ts +16 -0
- package/dist/src/services/audit/enforcers/lint-cli-back.js +35 -0
- package/dist/src/services/audit/enforcers/lint-output-style.d.ts +11 -0
- package/dist/src/services/audit/enforcers/lint-output-style.js +94 -0
- package/dist/src/services/audit/enforcers/lint-reference-integrity.d.ts +6 -0
- package/dist/src/services/audit/enforcers/lint-reference-integrity.js +83 -0
- package/dist/src/services/audit/enforcers/lint-reference-shape.d.ts +30 -0
- package/dist/src/services/audit/enforcers/lint-reference-shape.js +272 -0
- package/dist/src/services/audit/enforcers/lint-style.d.ts +49 -0
- package/dist/src/services/audit/enforcers/lint-style.js +173 -0
- package/dist/src/services/audit/enforcers/lint-workflow-shape.d.ts +4 -0
- package/dist/src/services/audit/enforcers/lint-workflow-shape.js +100 -0
- package/dist/src/services/audit/enforcers/login-gate.d.ts +23 -0
- package/dist/src/services/audit/enforcers/login-gate.js +40 -0
- package/dist/src/services/audit/enforcers/mock-placement.d.ts +25 -0
- package/dist/src/services/audit/enforcers/mock-placement.js +48 -0
- package/dist/src/services/audit/enforcers/no-root-pollution.d.ts +21 -0
- package/dist/src/services/audit/enforcers/no-root-pollution.js +56 -0
- package/dist/src/services/audit/enforcers/pre-rd-scan.d.ts +22 -0
- package/dist/src/services/audit/enforcers/pre-rd-scan.js +23 -0
- package/dist/src/services/audit/enforcers/prototype-fidelity.d.ts +25 -0
- package/dist/src/services/audit/enforcers/prototype-fidelity.js +75 -0
- package/dist/src/services/audit/enforcers/resume-detection.d.ts +21 -0
- package/dist/src/services/audit/enforcers/resume-detection.js +52 -0
- package/dist/src/services/audit/enforcers/solo-code-ban.d.ts +23 -0
- package/dist/src/services/audit/enforcers/solo-code-ban.js +27 -0
- package/dist/src/services/audit/enforcers/sub-agent-sid.d.ts +25 -0
- package/dist/src/services/audit/enforcers/sub-agent-sid.js +63 -0
- package/dist/src/services/audit/prose-ratio-calculator.d.ts +45 -0
- package/dist/src/services/audit/prose-ratio-calculator.js +52 -0
- package/dist/src/services/audit/red-line-catalog-p2-a.d.ts +21 -0
- package/dist/src/services/audit/red-line-catalog-p2-a.js +229 -0
- package/dist/src/services/audit/red-line-catalog-p2-b.d.ts +19 -0
- package/dist/src/services/audit/red-line-catalog-p2-b.js +225 -0
- package/dist/src/services/audit/red-line-catalog.d.ts +51 -0
- package/dist/src/services/audit/red-line-catalog.js +195 -0
- package/dist/src/services/audit/red-lines-service.d.ts +23 -0
- package/dist/src/services/audit/red-lines-service.js +464 -0
- package/dist/src/services/audit/scanners/openspec-scanner.d.ts +15 -0
- package/dist/src/services/audit/scanners/openspec-scanner.js +55 -0
- package/dist/src/services/audit/scanners/rules-tree-scanner.d.ts +16 -0
- package/dist/src/services/audit/scanners/rules-tree-scanner.js +56 -0
- package/dist/src/services/audit/scanners/skills-tree-scanner.d.ts +17 -0
- package/dist/src/services/audit/scanners/skills-tree-scanner.js +46 -0
- package/dist/src/services/audit/static-service.d.ts +60 -0
- package/dist/src/services/audit/static-service.js +130 -0
- package/dist/src/services/audit/types.d.ts +86 -0
- package/dist/src/services/audit/types.js +13 -0
- package/dist/src/services/audit-independent/perf-audit-service.d.ts +151 -0
- package/dist/src/services/audit-independent/perf-audit-service.js +316 -0
- package/dist/src/services/audit-independent/security-audit-service.d.ts +155 -0
- package/dist/src/services/audit-independent/security-audit-service.js +316 -0
- package/dist/src/services/classify/classify-service.d.ts +42 -0
- package/dist/src/services/classify/classify-service.js +122 -0
- package/dist/src/services/classify/classify-types.d.ts +79 -0
- package/dist/src/services/classify/classify-types.js +90 -0
- package/dist/src/services/code-review/ecc-bridge.d.ts +148 -0
- package/dist/src/services/code-review/ecc-bridge.js +242 -0
- package/dist/src/services/code-review/ocr-service.d.ts +129 -0
- package/dist/src/services/code-review/ocr-service.js +369 -0
- package/dist/src/services/codegraph/codegraph-process-runner.d.ts +2 -0
- package/dist/src/services/codegraph/codegraph-process-runner.js +93 -0
- package/dist/src/services/codegraph/codegraph-service.d.ts +43 -0
- package/dist/src/services/codegraph/codegraph-service.js +160 -0
- package/dist/src/services/complexity/complexity-estimator.d.ts +34 -0
- package/dist/src/services/complexity/complexity-estimator.js +64 -0
- package/dist/src/services/config/config-migration.d.ts +45 -0
- package/dist/src/services/config/config-migration.js +154 -0
- package/dist/src/services/config/config-restore.d.ts +10 -0
- package/dist/src/services/config/config-restore.js +47 -0
- package/dist/src/services/config/config-rollback.d.ts +13 -0
- package/dist/src/services/config/config-rollback.js +26 -0
- package/dist/src/services/config/config-safety.d.ts +40 -0
- package/dist/src/services/config/config-safety.js +359 -0
- package/dist/src/services/config/config-service.d.ts +69 -0
- package/dist/src/services/config/config-service.js +814 -0
- package/dist/src/services/config/config-types.d.ts +119 -0
- package/dist/src/services/config/config-types.js +18 -0
- package/dist/src/services/config/model-routing.d.ts +4 -0
- package/dist/src/services/config/model-routing.js +17 -0
- package/dist/src/services/config/provider-service.d.ts +48 -0
- package/dist/src/services/config/provider-service.js +143 -0
- package/dist/src/services/config/proxy-service.d.ts +21 -0
- package/dist/src/services/config/proxy-service.js +44 -0
- package/dist/src/services/config/sidecar-store.d.ts +25 -0
- package/dist/src/services/config/sidecar-store.js +61 -0
- package/dist/src/services/config/workspace-state-service.d.ts +30 -0
- package/dist/src/services/config/workspace-state-service.js +142 -0
- package/dist/src/services/context/artifact-meta.d.ts +72 -0
- package/dist/src/services/context/artifact-meta.js +105 -0
- package/dist/src/services/context/auto-compact-dispatcher.d.ts +37 -0
- package/dist/src/services/context/auto-compact-dispatcher.js +190 -0
- package/dist/src/services/context/auto-compact-reader.d.ts +51 -0
- package/dist/src/services/context/auto-compact-reader.js +164 -0
- package/dist/src/services/context/auto-compact-types.d.ts +143 -0
- package/dist/src/services/context/auto-compact-types.js +36 -0
- package/dist/src/services/context/collector.d.ts +24 -0
- package/dist/src/services/context/collector.js +133 -0
- package/dist/src/services/context/context-builder.d.ts +30 -0
- package/dist/src/services/context/context-builder.js +78 -0
- package/dist/src/services/context/context-guard.d.ts +49 -0
- package/dist/src/services/context/context-guard.js +91 -0
- package/dist/src/services/context/context-schema.d.ts +415 -0
- package/dist/src/services/context/context-schema.js +73 -0
- package/dist/src/services/context/dispatch-context-guard.d.ts +27 -0
- package/dist/src/services/context/dispatch-context-guard.js +192 -0
- package/dist/src/services/context/doc-retriever.d.ts +26 -0
- package/dist/src/services/context/doc-retriever.js +51 -0
- package/dist/src/services/context/headroom-client.d.ts +34 -0
- package/dist/src/services/context/headroom-client.js +117 -0
- package/dist/src/services/context/headroom-fetcher.d.ts +6 -0
- package/dist/src/services/context/headroom-fetcher.js +28 -0
- package/dist/src/services/context/headroom-prefs.d.ts +46 -0
- package/dist/src/services/context/headroom-prefs.js +34 -0
- package/dist/src/services/context/index.d.ts +7 -0
- package/dist/src/services/context/index.js +6 -0
- package/dist/src/services/context/main-session-monitor.d.ts +77 -0
- package/dist/src/services/context/main-session-monitor.js +130 -0
- package/dist/src/services/context/renderer.d.ts +20 -0
- package/dist/src/services/context/renderer.js +30 -0
- package/dist/src/services/context/shared-channel.d.ts +93 -0
- package/dist/src/services/context/shared-channel.js +308 -0
- package/dist/src/services/context/threshold.d.ts +35 -0
- package/dist/src/services/context/threshold.js +76 -0
- package/dist/src/services/context/tokenizer.d.ts +12 -0
- package/dist/src/services/context/tokenizer.js +43 -0
- package/dist/src/services/context/types.d.ts +93 -0
- package/dist/src/services/context/types.js +9 -0
- package/dist/src/services/dashboard/project-dashboard-service.d.ts +91 -0
- package/dist/src/services/dashboard/project-dashboard-service.js +147 -0
- package/dist/src/services/dispatch/batch-counter.d.ts +27 -0
- package/dist/src/services/dispatch/batch-counter.js +102 -0
- package/dist/src/services/dispatch/contract-store.d.ts +63 -0
- package/dist/src/services/dispatch/contract-store.js +157 -0
- package/dist/src/services/dispatch/dispatch-record-writer.d.ts +138 -0
- package/dist/src/services/dispatch/dispatch-record-writer.js +460 -0
- package/dist/src/services/dispatch/heartbeat-truncator.d.ts +26 -0
- package/dist/src/services/dispatch/heartbeat-truncator.js +13 -0
- package/dist/src/services/dispatch/leak-detector.d.ts +11 -0
- package/dist/src/services/dispatch/leak-detector.js +72 -0
- package/dist/src/services/dispatch/slice-dag.d.ts +81 -0
- package/dist/src/services/dispatch/slice-dag.js +238 -0
- package/dist/src/services/dispatch/sub-agent-dispatcher.d.ts +239 -0
- package/dist/src/services/dispatch/sub-agent-dispatcher.js +382 -0
- package/dist/src/services/dispatch/test-tool-detection.d.ts +36 -0
- package/dist/src/services/dispatch/test-tool-detection.js +46 -0
- package/dist/src/services/doc/doc-generator.d.ts +38 -0
- package/dist/src/services/doc/doc-generator.js +122 -0
- package/dist/src/services/doctor/doctor-service.d.ts +149 -0
- package/dist/src/services/doctor/doctor-service.js +929 -0
- package/dist/src/services/feedback/feedback-promotion-service.d.ts +123 -0
- package/dist/src/services/feedback/feedback-promotion-service.js +300 -0
- package/dist/src/services/filesystem/file-lock.d.ts +11 -0
- package/dist/src/services/filesystem/file-lock.js +129 -0
- package/dist/src/services/final-review/final-review-service.d.ts +12 -0
- package/dist/src/services/final-review/final-review-service.js +52 -0
- package/dist/src/services/final-review/final-review-types.d.ts +42 -0
- package/dist/src/services/final-review/final-review-types.js +18 -0
- package/dist/src/services/fixture/fixture-capture-service.d.ts +87 -0
- package/dist/src/services/fixture/fixture-capture-service.js +317 -0
- package/dist/src/services/fixture/fixture-sanitize-service.d.ts +117 -0
- package/dist/src/services/fixture/fixture-sanitize-service.js +161 -0
- package/dist/src/services/fixture/index.d.ts +8 -0
- package/dist/src/services/fixture/index.js +8 -0
- package/dist/src/services/fork/fork-sync-state.d.ts +85 -0
- package/dist/src/services/fork/fork-sync-state.js +130 -0
- package/dist/src/services/fuzzy-matching/fuzzy-match-service.d.ts +15 -0
- package/dist/src/services/fuzzy-matching/fuzzy-match-service.js +56 -0
- package/dist/src/services/fuzzy-matching/fzf-pick-service.d.ts +68 -0
- package/dist/src/services/fuzzy-matching/fzf-pick-service.js +158 -0
- package/dist/src/services/fuzzy-matching/types.d.ts +20 -0
- package/dist/src/services/fuzzy-matching/types.js +1 -0
- package/dist/src/services/handoff/handoff-parser.d.ts +28 -0
- package/dist/src/services/handoff/handoff-parser.js +69 -0
- package/dist/src/services/handoff/handoff-types.d.ts +39 -0
- package/dist/src/services/handoff/handoff-types.js +19 -0
- package/dist/src/services/handoff/handoff-writer.d.ts +23 -0
- package/dist/src/services/handoff/handoff-writer.js +30 -0
- package/dist/src/services/hooks/output.d.ts +92 -0
- package/dist/src/services/hooks/output.js +111 -0
- package/dist/src/services/hooks/presence-marker-detector.d.ts +16 -0
- package/dist/src/services/hooks/presence-marker-detector.js +105 -0
- package/dist/src/services/ide/adapters/claude-code-adapter.d.ts +18 -0
- package/dist/src/services/ide/adapters/claude-code-adapter.js +91 -0
- package/dist/src/services/ide/adapters/codex-adapter.d.ts +46 -0
- package/dist/src/services/ide/adapters/codex-adapter.js +97 -0
- package/dist/src/services/ide/adapters/cursor-adapter.d.ts +36 -0
- package/dist/src/services/ide/adapters/cursor-adapter.js +84 -0
- package/dist/src/services/ide/adapters/hermes-adapter.d.ts +21 -0
- package/dist/src/services/ide/adapters/hermes-adapter.js +51 -0
- package/dist/src/services/ide/adapters/openclaw-adapter.d.ts +14 -0
- package/dist/src/services/ide/adapters/openclaw-adapter.js +42 -0
- package/dist/src/services/ide/adapters/trae-adapter.d.ts +42 -0
- package/dist/src/services/ide/adapters/trae-adapter.js +83 -0
- package/dist/src/services/ide/hook-protocol.d.ts +47 -0
- package/dist/src/services/ide/hook-protocol.js +74 -0
- package/dist/src/services/ide/hook-translator.d.ts +72 -0
- package/dist/src/services/ide/hook-translator.js +128 -0
- package/dist/src/services/ide/ide-detector.d.ts +10 -0
- package/dist/src/services/ide/ide-detector.js +19 -0
- package/dist/src/services/ide/ide-registry.d.ts +14 -0
- package/dist/src/services/ide/ide-registry.js +60 -0
- package/dist/src/services/ide/ide-types.d.ts +230 -0
- package/dist/src/services/ide/ide-types.js +2 -0
- package/dist/src/services/ide/resource-profile.d.ts +52 -0
- package/dist/src/services/ide/resource-profile.js +33 -0
- package/dist/src/services/ide/shared/atomic-json.d.ts +15 -0
- package/dist/src/services/ide/shared/atomic-json.js +58 -0
- package/dist/src/services/ide/shared/safe-path.d.ts +11 -0
- package/dist/src/services/ide/shared/safe-path.js +29 -0
- package/dist/src/services/impact/impact-scan-service.d.ts +66 -0
- package/dist/src/services/impact/impact-scan-service.js +197 -0
- package/dist/src/services/legacy/legacy-detector.d.ts +34 -0
- package/dist/src/services/legacy/legacy-detector.js +111 -0
- package/dist/src/services/log/log-commands-service.d.ts +54 -0
- package/dist/src/services/log/log-commands-service.js +83 -0
- package/dist/src/services/log/logger.d.ts +103 -0
- package/dist/src/services/log/logger.js +224 -0
- package/dist/src/services/log/redact.d.ts +32 -0
- package/dist/src/services/log/redact.js +89 -0
- package/dist/src/services/log/retention.d.ts +34 -0
- package/dist/src/services/log/retention.js +78 -0
- package/dist/src/services/loop/evaluator-dispatcher.d.ts +50 -0
- package/dist/src/services/loop/evaluator-dispatcher.js +551 -0
- package/dist/src/services/loop/monotonic-guard.d.ts +80 -0
- package/dist/src/services/loop/monotonic-guard.js +215 -0
- package/dist/src/services/loop/monotonic-runner.d.ts +55 -0
- package/dist/src/services/loop/monotonic-runner.js +197 -0
- package/dist/src/services/loop/run-driver.d.ts +70 -0
- package/dist/src/services/loop/run-driver.js +379 -0
- package/dist/src/services/loop/spec-service.d.ts +90 -0
- package/dist/src/services/loop/spec-service.js +497 -0
- package/dist/src/services/memory/llm-reranker.d.ts +174 -0
- package/dist/src/services/memory/llm-reranker.js +284 -0
- package/dist/src/services/memory/memory-search-service.d.ts +93 -0
- package/dist/src/services/memory/memory-search-service.js +117 -0
- package/dist/src/services/memory/project-context-service.d.ts +11 -0
- package/dist/src/services/memory/project-context-service.js +148 -0
- package/dist/src/services/memory/project-memory-service.d.ts +167 -0
- package/dist/src/services/memory/project-memory-service.js +817 -0
- package/dist/src/services/migration/v2-10-to-v2-11-service.d.ts +44 -0
- package/dist/src/services/migration/v2-10-to-v2-11-service.js +190 -0
- package/dist/src/services/migration/v2-10-to-v2-11-types.d.ts +41 -0
- package/dist/src/services/migration/v2-10-to-v2-11-types.js +23 -0
- package/dist/src/services/mode/bypass-tracker.d.ts +4 -0
- package/dist/src/services/mode/bypass-tracker.js +31 -0
- package/dist/src/services/mode/mode-enforcement.d.ts +14 -0
- package/dist/src/services/mode/mode-enforcement.js +84 -0
- package/dist/src/services/mut/assert-scanner.d.ts +6 -0
- package/dist/src/services/mut/assert-scanner.js +116 -0
- package/dist/src/services/mut/index.d.ts +8 -0
- package/dist/src/services/mut/index.js +7 -0
- package/dist/src/services/mut/mut-runner.d.ts +39 -0
- package/dist/src/services/mut/mut-runner.js +29 -0
- package/dist/src/services/mut/production-stryker.d.ts +7 -0
- package/dist/src/services/mut/production-stryker.js +66 -0
- package/dist/src/services/mut/report-builder.d.ts +11 -0
- package/dist/src/services/mut/report-builder.js +110 -0
- package/dist/src/services/mut/report-loader.d.ts +31 -0
- package/dist/src/services/mut/report-loader.js +78 -0
- package/dist/src/services/mut/thresholds.d.ts +21 -0
- package/dist/src/services/mut/thresholds.js +22 -0
- package/dist/src/services/mut/types.d.ts +336 -0
- package/dist/src/services/mut/types.js +59 -0
- package/dist/src/services/observability/aggregation.d.ts +64 -0
- package/dist/src/services/observability/aggregation.js +217 -0
- package/dist/src/services/observability/jsonl-store.d.ts +59 -0
- package/dist/src/services/observability/jsonl-store.js +120 -0
- package/dist/src/services/observability/observability-service.d.ts +95 -0
- package/dist/src/services/observability/observability-service.js +119 -0
- package/dist/src/services/observability/report-formatter.d.ts +42 -0
- package/dist/src/services/observability/report-formatter.js +156 -0
- package/dist/src/services/openspec/openspec-archive-service.d.ts +12 -0
- package/dist/src/services/openspec/openspec-archive-service.js +28 -0
- package/dist/src/services/openspec/openspec-bridge-service.d.ts +16 -0
- package/dist/src/services/openspec/openspec-bridge-service.js +76 -0
- package/dist/src/services/openspec/openspec-init-service.d.ts +23 -0
- package/dist/src/services/openspec/openspec-init-service.js +122 -0
- package/dist/src/services/openspec/openspec-propose-from-doctor-service.d.ts +31 -0
- package/dist/src/services/openspec/openspec-propose-from-doctor-service.js +95 -0
- package/dist/src/services/openspec/openspec-render-service.d.ts +38 -0
- package/dist/src/services/openspec/openspec-render-service.js +130 -0
- package/dist/src/services/openspec/openspec-scan-service.d.ts +6 -0
- package/dist/src/services/openspec/openspec-scan-service.js +123 -0
- package/dist/src/services/openspec/openspec-types.d.ts +39 -0
- package/dist/src/services/openspec/openspec-types.js +1 -0
- package/dist/src/services/openspec/openspec-validate-service.d.ts +27 -0
- package/dist/src/services/openspec/openspec-validate-service.js +77 -0
- package/dist/src/services/perf/perf-baseline-service.d.ts +70 -0
- package/dist/src/services/perf/perf-baseline-service.js +214 -0
- package/dist/src/services/prd/handoff-auto-regen.d.ts +22 -0
- package/dist/src/services/prd/handoff-auto-regen.js +73 -0
- package/dist/src/services/prd/handoff-service.d.ts +54 -0
- package/dist/src/services/prd/handoff-service.js +142 -0
- package/dist/src/services/prd/handoff-types.d.ts +64 -0
- package/dist/src/services/prd/handoff-types.js +22 -0
- package/dist/src/services/prd/prd-blocks-checker.d.ts +51 -0
- package/dist/src/services/prd/prd-blocks-checker.js +130 -0
- package/dist/src/services/prd/project-scan-reader.d.ts +24 -0
- package/dist/src/services/prd/project-scan-reader.js +150 -0
- package/dist/src/services/prd/project-scan-sediment.d.ts +97 -0
- package/dist/src/services/prd/project-scan-sediment.js +445 -0
- package/dist/src/services/prd/project-scan-types.d.ts +66 -0
- package/dist/src/services/prd/project-scan-types.js +20 -0
- package/dist/src/services/preferences/preferences-service.d.ts +38 -0
- package/dist/src/services/preferences/preferences-service.js +198 -0
- package/dist/src/services/preferences/preferences-types.d.ts +148 -0
- package/dist/src/services/preferences/preferences-types.js +53 -0
- package/dist/src/services/profiles/profile-service.d.ts +6 -0
- package/dist/src/services/profiles/profile-service.js +19 -0
- package/dist/src/services/progress/progress-service.d.ts +125 -0
- package/dist/src/services/progress/progress-service.js +192 -0
- package/dist/src/services/providers/minimax-provider-service.d.ts +24 -0
- package/dist/src/services/providers/minimax-provider-service.js +143 -0
- package/dist/src/services/providers/minimax-worker-service.d.ts +21 -0
- package/dist/src/services/providers/minimax-worker-service.js +83 -0
- package/dist/src/services/proxy/proxy-service.d.ts +7 -0
- package/dist/src/services/proxy/proxy-service.js +31 -0
- package/dist/src/services/qa/browser-event-logger.d.ts +40 -0
- package/dist/src/services/qa/browser-event-logger.js +54 -0
- package/dist/src/services/qa/browser-restart-detector.d.ts +74 -0
- package/dist/src/services/qa/browser-restart-detector.js +138 -0
- package/dist/src/services/qa/browser-reuse-hint.d.ts +18 -0
- package/dist/src/services/qa/browser-reuse-hint.js +18 -0
- package/dist/src/services/qa/browser-wrapper-service.d.ts +37 -0
- package/dist/src/services/qa/browser-wrapper-service.js +88 -0
- package/dist/src/services/qa/qa-business-review-state.d.ts +47 -0
- package/dist/src/services/qa/qa-business-review-state.js +96 -0
- package/dist/src/services/rd/ast-gate.d.ts +19 -0
- package/dist/src/services/rd/ast-gate.js +71 -0
- package/dist/src/services/rd/impl.d.ts +9 -0
- package/dist/src/services/rd/impl.js +57 -0
- package/dist/src/services/rd/rd-service.d.ts +129 -0
- package/dist/src/services/rd/rd-service.js +438 -0
- package/dist/src/services/rd/reviewer-dispatch-policy.d.ts +122 -0
- package/dist/src/services/rd/reviewer-dispatch-policy.js +148 -0
- package/dist/src/services/rd/standards-diagnostic.d.ts +76 -0
- package/dist/src/services/rd/standards-diagnostic.js +166 -0
- package/dist/src/services/rd/strategic-stage.d.ts +4 -0
- package/dist/src/services/rd/strategic-stage.js +15 -0
- package/dist/src/services/rd/strategy.d.ts +13 -0
- package/dist/src/services/rd/strategy.js +60 -0
- package/dist/src/services/rd/tactical-stage.d.ts +33 -0
- package/dist/src/services/rd/tactical-stage.js +62 -0
- package/dist/src/services/rd/types.d.ts +252 -0
- package/dist/src/services/rd/types.js +47 -0
- package/dist/src/services/recommendations/capability-availability.d.ts +5 -0
- package/dist/src/services/recommendations/capability-availability.js +40 -0
- package/dist/src/services/recommendations/capability-map-service.d.ts +7 -0
- package/dist/src/services/recommendations/capability-map-service.js +131 -0
- package/dist/src/services/recommendations/capability-seed-items.d.ts +2 -0
- package/dist/src/services/recommendations/capability-seed-items.js +140 -0
- package/dist/src/services/recommendations/capability-seed-mappings.d.ts +2 -0
- package/dist/src/services/recommendations/capability-seed-mappings.js +54 -0
- package/dist/src/services/recommendations/capability-seed-sources.d.ts +2 -0
- package/dist/src/services/recommendations/capability-seed-sources.js +35 -0
- package/dist/src/services/recommendations/recommendation-service.d.ts +8 -0
- package/dist/src/services/recommendations/recommendation-service.js +106 -0
- package/dist/src/services/recommendations/recommendation-types.d.ts +129 -0
- package/dist/src/services/recommendations/recommendation-types.js +1 -0
- package/dist/src/services/recommendations/seed-capability-catalog.d.ts +3 -0
- package/dist/src/services/recommendations/seed-capability-catalog.js +3 -0
- package/dist/src/services/refactor/refactor-service.d.ts +9 -0
- package/dist/src/services/refactor/refactor-service.js +36 -0
- package/dist/src/services/release/release-state.d.ts +70 -0
- package/dist/src/services/release/release-state.js +140 -0
- package/dist/src/services/retrospective/retrospective-index.d.ts +37 -0
- package/dist/src/services/retrospective/retrospective-index.js +110 -0
- package/dist/src/services/retrospective/retrospective-search-service.d.ts +55 -0
- package/dist/src/services/retrospective/retrospective-search-service.js +107 -0
- package/dist/src/services/retrospective/retrospective-show.d.ts +40 -0
- package/dist/src/services/retrospective/retrospective-show.js +109 -0
- package/dist/src/services/reviewer/model-family.d.ts +18 -0
- package/dist/src/services/reviewer/model-family.js +70 -0
- package/dist/src/services/reviewer/providers/anthropic.d.ts +2 -0
- package/dist/src/services/reviewer/providers/anthropic.js +61 -0
- package/dist/src/services/reviewer/providers/ollama.d.ts +26 -0
- package/dist/src/services/reviewer/providers/ollama.js +38 -0
- package/dist/src/services/reviewer/providers/openai.d.ts +2 -0
- package/dist/src/services/reviewer/providers/openai.js +63 -0
- package/dist/src/services/reviewer/reviewer-config.d.ts +34 -0
- package/dist/src/services/reviewer/reviewer-config.js +100 -0
- package/dist/src/services/reviewer/reviewer-service.d.ts +56 -0
- package/dist/src/services/reviewer/reviewer-service.js +263 -0
- package/dist/src/services/reviewer/selection-strategies.d.ts +27 -0
- package/dist/src/services/reviewer/selection-strategies.js +53 -0
- package/dist/src/services/role/role-registry.d.ts +38 -0
- package/dist/src/services/role/role-registry.js +83 -0
- package/dist/src/services/sc/index.d.ts +1 -0
- package/dist/src/services/sc/index.js +1 -0
- package/dist/src/services/sc/sc-service.d.ts +131 -0
- package/dist/src/services/sc/sc-service.js +552 -0
- package/dist/src/services/scan/acceptance-coverage-service.d.ts +42 -0
- package/dist/src/services/scan/acceptance-coverage-service.js +140 -0
- package/dist/src/services/scan/api-surface-service.d.ts +69 -0
- package/dist/src/services/scan/api-surface-service.js +239 -0
- package/dist/src/services/scan/archetype-service.d.ts +5 -0
- package/dist/src/services/scan/archetype-service.js +242 -0
- package/dist/src/services/scan/diff-scope-service.d.ts +40 -0
- package/dist/src/services/scan/diff-scope-service.js +198 -0
- package/dist/src/services/scan/existing-system-service.d.ts +7 -0
- package/dist/src/services/scan/existing-system-service.js +300 -0
- package/dist/src/services/scan/file-size-scan.d.ts +23 -0
- package/dist/src/services/scan/file-size-scan.js +68 -0
- package/dist/src/services/scan/karpathy-service.d.ts +60 -0
- package/dist/src/services/scan/karpathy-service.js +228 -0
- package/dist/src/services/scan/libraries-service.d.ts +24 -0
- package/dist/src/services/scan/libraries-service.js +419 -0
- package/dist/src/services/scan/libraries-types.d.ts +59 -0
- package/dist/src/services/scan/libraries-types.js +9 -0
- package/dist/src/services/scan/orphan-service.d.ts +76 -0
- package/dist/src/services/scan/orphan-service.js +538 -0
- package/dist/src/services/scan/scan-types.d.ts +59 -0
- package/dist/src/services/scan/scan-types.js +1 -0
- package/dist/src/services/scan/type-sanity-service.d.ts +23 -0
- package/dist/src/services/scan/type-sanity-service.js +116 -0
- package/dist/src/services/security/safe-settings-path.d.ts +12 -0
- package/dist/src/services/security/safe-settings-path.js +104 -0
- package/dist/src/services/session/binding-status-service.d.ts +56 -0
- package/dist/src/services/session/binding-status-service.js +106 -0
- package/dist/src/services/session/binding-store.d.ts +161 -0
- package/dist/src/services/session/binding-store.js +509 -0
- package/dist/src/services/session/caller-binding-service.d.ts +70 -0
- package/dist/src/services/session/caller-binding-service.js +148 -0
- package/dist/src/services/session/caller-id-types.d.ts +77 -0
- package/dist/src/services/session/caller-id-types.js +46 -0
- package/dist/src/services/session/getSessionDir.d.ts +1 -0
- package/dist/src/services/session/getSessionDir.js +27 -0
- package/dist/src/services/session/index.d.ts +6 -0
- package/dist/src/services/session/index.js +7 -0
- package/dist/src/services/session/platform-fallbacks.d.ts +31 -0
- package/dist/src/services/session/platform-fallbacks.js +35 -0
- package/dist/src/services/session/resolve-caller-id.d.ts +57 -0
- package/dist/src/services/session/resolve-caller-id.js +88 -0
- package/dist/src/services/session/session-binding-bridge.d.ts +76 -0
- package/dist/src/services/session/session-binding-bridge.js +247 -0
- package/dist/src/services/session/session-checkpoint-service.d.ts +57 -0
- package/dist/src/services/session/session-checkpoint-service.js +143 -0
- package/dist/src/services/session/session-manager.d.ts +168 -0
- package/dist/src/services/session/session-manager.js +502 -0
- package/dist/src/services/session/session-resume-service.d.ts +25 -0
- package/dist/src/services/session/session-resume-service.js +101 -0
- package/dist/src/services/signal/cancel-handler.d.ts +14 -0
- package/dist/src/services/signal/cancel-handler.js +76 -0
- package/dist/src/services/skill/resume-detector.d.ts +54 -0
- package/dist/src/services/skill/resume-detector.js +334 -0
- package/dist/src/services/skill/skill-scheduler.d.ts +40 -0
- package/dist/src/services/skill/skill-scheduler.js +53 -0
- package/dist/src/services/skills/hooks-settings-service.d.ts +137 -0
- package/dist/src/services/skills/hooks-settings-service.js +396 -0
- package/dist/src/services/skills/skill-conformance-service.d.ts +40 -0
- package/dist/src/services/skills/skill-conformance-service.js +136 -0
- package/dist/src/services/skills/skill-presence-service.d.ts +158 -0
- package/dist/src/services/skills/skill-presence-service.js +474 -0
- package/dist/src/services/skills/skill-registry.d.ts +17 -0
- package/dist/src/services/skills/skill-registry.js +40 -0
- package/dist/src/services/skills/skill-runbook-service.d.ts +11 -0
- package/dist/src/services/skills/skill-runbook-service.js +128 -0
- package/dist/src/services/skills/skill-statusline-renderer.d.ts +6 -0
- package/dist/src/services/skills/skill-statusline-renderer.js +55 -0
- package/dist/src/services/skills/skill-statusline-service.d.ts +24 -0
- package/dist/src/services/skills/skill-statusline-service.js +110 -0
- package/dist/src/services/skills/statusline-settings-service.d.ts +59 -0
- package/dist/src/services/skills/statusline-settings-service.js +141 -0
- package/dist/src/services/skills/sync-service.d.ts +86 -0
- package/dist/src/services/skills/sync-service.js +271 -0
- package/dist/src/services/slice/calibration-store.d.ts +39 -0
- package/dist/src/services/slice/calibration-store.js +68 -0
- package/dist/src/services/slice/cross-pass-edge-merger.d.ts +53 -0
- package/dist/src/services/slice/cross-pass-edge-merger.js +246 -0
- package/dist/src/services/slice/granularity-decider.d.ts +37 -0
- package/dist/src/services/slice/granularity-decider.js +40 -0
- package/dist/src/services/slice/llm-arbitrator.d.ts +35 -0
- package/dist/src/services/slice/llm-arbitrator.js +63 -0
- package/dist/src/services/slice/multi-pass-orchestrator.d.ts +67 -0
- package/dist/src/services/slice/multi-pass-orchestrator.js +225 -0
- package/dist/src/services/slice/schema-router.d.ts +44 -0
- package/dist/src/services/slice/schema-router.js +61 -0
- package/dist/src/services/slice/slice-archive-service.d.ts +20 -0
- package/dist/src/services/slice/slice-archive-service.js +111 -0
- package/dist/src/services/slice/slice-benchmark-service.d.ts +19 -0
- package/dist/src/services/slice/slice-benchmark-service.js +60 -0
- package/dist/src/services/slice/slice-check-service.d.ts +2 -0
- package/dist/src/services/slice/slice-check-service.js +459 -0
- package/dist/src/services/slice/slice-check-types.d.ts +104 -0
- package/dist/src/services/slice/slice-check-types.js +28 -0
- package/dist/src/services/slice/slice-decompose-runners.d.ts +23 -0
- package/dist/src/services/slice/slice-decompose-runners.js +174 -0
- package/dist/src/services/slice/slice-decompose-service.d.ts +24 -0
- package/dist/src/services/slice/slice-decompose-service.js +532 -0
- package/dist/src/services/slice/slice-decompose-types.d.ts +263 -0
- package/dist/src/services/slice/slice-decompose-types.js +30 -0
- package/dist/src/services/slice/slice-integration.d.ts +43 -0
- package/dist/src/services/slice/slice-integration.js +106 -0
- package/dist/src/services/slice/slice-pick-service.d.ts +32 -0
- package/dist/src/services/slice/slice-pick-service.js +75 -0
- package/dist/src/services/slice/slice-review-state.d.ts +70 -0
- package/dist/src/services/slice/slice-review-state.js +109 -0
- package/dist/src/services/slice/slice-topology-types.d.ts +115 -0
- package/dist/src/services/slice/slice-topology-types.js +20 -0
- package/dist/src/services/smoke/smoke-paths-state.d.ts +73 -0
- package/dist/src/services/smoke/smoke-paths-state.js +117 -0
- package/dist/src/services/solo/auto-compact-orchestrator.d.ts +98 -0
- package/dist/src/services/solo/auto-compact-orchestrator.js +343 -0
- package/dist/src/services/solo/batch-heartbeat-poller.d.ts +51 -0
- package/dist/src/services/solo/batch-heartbeat-poller.js +88 -0
- package/dist/src/services/solo/dag-orchestrator.d.ts +128 -0
- package/dist/src/services/solo/dag-orchestrator.js +304 -0
- package/dist/src/services/solo/mode-gate.d.ts +163 -0
- package/dist/src/services/solo/mode-gate.js +212 -0
- package/dist/src/services/solo/post-compact-detector.d.ts +61 -0
- package/dist/src/services/solo/post-compact-detector.js +240 -0
- package/dist/src/services/solo/status-line-renderer.d.ts +34 -0
- package/dist/src/services/solo/status-line-renderer.js +55 -0
- package/dist/src/services/solo/user-touchpoint-classifier.d.ts +44 -0
- package/dist/src/services/solo/user-touchpoint-classifier.js +145 -0
- package/dist/src/services/sop/gate-enforce-service.d.ts +33 -0
- package/dist/src/services/sop/gate-enforce-service.js +168 -0
- package/dist/src/services/sop/sop-advance-service.d.ts +74 -0
- package/dist/src/services/sop/sop-advance-service.js +115 -0
- package/dist/src/services/sop/sop-check-service.d.ts +45 -0
- package/dist/src/services/sop/sop-check-service.js +181 -0
- package/dist/src/services/sop/sop-paths.d.ts +62 -0
- package/dist/src/services/sop/sop-paths.js +92 -0
- package/dist/src/services/sop/sop-registry-service.d.ts +46 -0
- package/dist/src/services/sop/sop-registry-service.js +89 -0
- package/dist/src/services/sop/sop-service.d.ts +55 -0
- package/dist/src/services/sop/sop-service.js +222 -0
- package/dist/src/services/sop/sop-types.d.ts +95 -0
- package/dist/src/services/sop/sop-types.js +11 -0
- package/dist/src/services/standards/ide-aware-standards-service.d.ts +94 -0
- package/dist/src/services/standards/ide-aware-standards-service.js +89 -0
- package/dist/src/services/standards/migrate-claude-rules-service.d.ts +19 -0
- package/dist/src/services/standards/migrate-claude-rules-service.js +193 -0
- package/dist/src/services/standards/migrate-service.d.ts +63 -0
- package/dist/src/services/standards/migrate-service.js +193 -0
- package/dist/src/services/standards/missing-standards-detector.d.ts +79 -0
- package/dist/src/services/standards/missing-standards-detector.js +132 -0
- package/dist/src/services/standards/project-context.d.ts +24 -0
- package/dist/src/services/standards/project-context.js +314 -0
- package/dist/src/services/standards/project-standards-service.d.ts +114 -0
- package/dist/src/services/standards/project-standards-service.js +574 -0
- package/dist/src/services/tech/tech-service.d.ts +69 -0
- package/dist/src/services/tech/tech-service.js +299 -0
- package/dist/src/services/test-cache/test-cache-service.d.ts +70 -0
- package/dist/src/services/test-cache/test-cache-service.js +175 -0
- package/dist/src/services/understand/understand-scan-service.d.ts +28 -0
- package/dist/src/services/understand/understand-scan-service.js +170 -0
- package/dist/src/services/understand/understand-types.d.ts +50 -0
- package/dist/src/services/understand/understand-types.js +1 -0
- package/dist/src/services/upgrade/1x-detector-service.d.ts +7 -0
- package/dist/src/services/upgrade/1x-detector-service.js +94 -0
- package/dist/src/services/upgrade/gitignore-migrate-service.d.ts +56 -0
- package/dist/src/services/upgrade/gitignore-migrate-service.js +170 -0
- package/dist/src/services/upgrade/upgrade-service.d.ts +47 -0
- package/dist/src/services/upgrade/upgrade-service.js +381 -0
- package/dist/src/services/verdict/envelopes.d.ts +93 -0
- package/dist/src/services/verdict/envelopes.js +349 -0
- package/dist/src/services/verdict/verdict-aggregator.d.ts +94 -0
- package/dist/src/services/verdict/verdict-aggregator.js +112 -0
- package/dist/src/services/workflow/artifact-paths.d.ts +59 -0
- package/dist/src/services/workflow/artifact-paths.js +166 -0
- package/dist/src/services/workflow/autonomous-resume-writer.d.ts +16 -0
- package/dist/src/services/workflow/autonomous-resume-writer.js +170 -0
- package/dist/src/services/workflow/pipeline-verify-service.d.ts +90 -0
- package/dist/src/services/workflow/pipeline-verify-service.js +449 -0
- package/dist/src/services/workflow/plan-reader.d.ts +29 -0
- package/dist/src/services/workflow/plan-reader.js +174 -0
- package/dist/src/services/workflow/plan-refresher.d.ts +32 -0
- package/dist/src/services/workflow/plan-refresher.js +353 -0
- package/dist/src/services/workflow/plan-trigger-detector.d.ts +55 -0
- package/dist/src/services/workflow/plan-trigger-detector.js +142 -0
- package/dist/src/services/workflow/workflow-autonomous-resume-helpers.d.ts +19 -0
- package/dist/src/services/workflow/workflow-autonomous-resume-helpers.js +300 -0
- package/dist/src/services/workflow/workflow-autonomous-service.d.ts +100 -0
- package/dist/src/services/workflow/workflow-autonomous-service.js +306 -0
- package/dist/src/services/workflow/workflow-loader.d.ts +63 -0
- package/dist/src/services/workflow/workflow-loader.js +168 -0
- package/dist/src/services/workflow/workflow-router-service.d.ts +85 -0
- package/dist/src/services/workflow/workflow-router-service.js +227 -0
- package/dist/src/services/workflow/workflow-skip-service.d.ts +106 -0
- package/dist/src/services/workflow/workflow-skip-service.js +209 -0
- package/dist/src/services/workflow/workflow-spec.d.ts +116 -0
- package/dist/src/services/workflow/workflow-spec.js +431 -0
- package/dist/src/services/workflow/workflow-state-store.d.ts +27 -0
- package/dist/src/services/workflow/workflow-state-store.js +95 -0
- package/dist/src/services/workspace/claude-settings-template.d.ts +96 -0
- package/dist/src/services/workspace/claude-settings-template.js +215 -0
- package/dist/src/services/workspace/migrate-1-4-1-service.d.ts +44 -0
- package/dist/src/services/workspace/migrate-1-4-1-service.js +195 -0
- package/dist/src/services/workspace/migrate-service.d.ts +2 -0
- package/dist/src/services/workspace/migrate-service.js +613 -0
- package/dist/src/services/workspace/migrate-types.d.ts +127 -0
- package/dist/src/services/workspace/migrate-types.js +21 -0
- package/dist/src/services/workspace/reconcile-service.d.ts +188 -0
- package/dist/src/services/workspace/reconcile-service.js +683 -0
- package/dist/src/services/workspace/reconcile-types.d.ts +130 -0
- package/dist/src/services/workspace/reconcile-types.js +13 -0
- package/dist/src/services/workspace/sid-naming-guard.d.ts +17 -0
- package/dist/src/services/workspace/sid-naming-guard.js +34 -0
- package/dist/src/services/workspace/workspace-claude-settings-materializer.d.ts +45 -0
- package/dist/src/services/workspace/workspace-claude-settings-materializer.js +194 -0
- package/dist/src/services/workspace/workspace-clean-service.d.ts +28 -0
- package/dist/src/services/workspace/workspace-clean-service.js +46 -0
- package/dist/src/services/workspace/workspace-service.d.ts +177 -0
- package/dist/src/services/workspace/workspace-service.js +432 -0
- package/dist/src/services/workspace/workspace-state-service.d.ts +7 -0
- package/dist/src/services/workspace/workspace-state-service.js +43 -0
- package/dist/src/shared/format-md-compact.d.ts +32 -0
- package/dist/src/shared/format-md-compact.js +297 -0
- package/dist/src/shared/frontmatter.d.ts +6 -0
- package/dist/src/shared/frontmatter.js +165 -0
- package/dist/src/shared/fs-utils.d.ts +4 -0
- package/dist/src/shared/fs-utils.js +16 -0
- package/dist/src/shared/fs.d.ts +4 -0
- package/dist/src/shared/fs.js +26 -0
- package/dist/src/shared/incrementing-number.d.ts +23 -0
- package/dist/src/shared/incrementing-number.js +68 -0
- package/dist/src/shared/json-schema-mini.d.ts +10 -0
- package/dist/src/shared/json-schema-mini.js +113 -0
- package/dist/src/shared/path-safety.d.ts +21 -0
- package/dist/src/shared/path-safety.js +54 -0
- package/dist/src/shared/path-utils.d.ts +13 -0
- package/dist/src/shared/path-utils.js +56 -0
- package/dist/src/shared/paths.d.ts +6 -0
- package/dist/src/shared/paths.js +50 -0
- package/dist/src/shared/planner-response.d.ts +21 -0
- package/dist/src/shared/planner-response.js +26 -0
- package/dist/src/shared/platform.d.ts +6 -0
- package/dist/src/shared/platform.js +11 -0
- package/dist/src/shared/process.d.ts +5 -0
- package/dist/src/shared/process.js +12 -0
- package/dist/src/shared/result.d.ts +22 -0
- package/dist/src/shared/result.js +46 -0
- package/dist/src/shared/stale-policy.d.ts +67 -0
- package/dist/src/shared/stale-policy.js +85 -0
- package/dist/src/shared/version.d.ts +1 -0
- package/dist/src/shared/version.js +1 -0
- package/output-styles/peaks-skill-swarm.md +132 -0
- package/package.json +101 -0
- package/schemas/approval-record.schema.json +14 -0
- package/schemas/artifact-manifest.schema.json +16 -0
- package/schemas/artifact-retention-report.schema.json +38 -0
- package/schemas/artifact-workspace.schema.json +22 -0
- package/schemas/capability-availability.schema.json +36 -0
- package/schemas/capability-item.schema.json +37 -0
- package/schemas/capability-source.schema.json +30 -0
- package/schemas/change-impact.schema.json +15 -0
- package/schemas/context-capsule.schema.json +16 -0
- package/schemas/context.schema.json +360 -0
- package/schemas/decomposition-v1.json +194 -0
- package/schemas/decomposition-v2.json +193 -0
- package/schemas/doctor-report.schema.json +34 -0
- package/schemas/library-breaking-changes.data.json +141 -0
- package/schemas/library-breaking-changes.meta.json +6 -0
- package/schemas/library-breaking-changes.schema.json +50 -0
- package/schemas/mcp-apply-result.schema.json +46 -0
- package/schemas/mcp-install-plan.schema.json +71 -0
- package/schemas/mcp-install-spec.schema.json +29 -0
- package/schemas/mcp-server.schema.json +29 -0
- package/schemas/openspec-change-summary.schema.json +68 -0
- package/schemas/openspec-render-request.schema.json +61 -0
- package/schemas/openspec-validation-result.schema.json +36 -0
- package/schemas/recommendation-plan.schema.json +37 -0
- package/schemas/refactor-slice-spec.schema.json +19 -0
- package/schemas/replay-fixture.schema.json +158 -0
- package/schemas/reviewer-envelope.schema.json +79 -0
- package/schemas/sop-manifest.schema.json +52 -0
- package/scripts/clean-dist.mjs +8 -0
- package/scripts/install-skills.mjs +1202 -0
- package/scripts/sync-version.mjs +12 -0
- package/scripts/watch.mjs +389 -0
- package/skills/peaks-audit/SKILL.md +151 -0
- package/skills/peaks-audit/references/6-dimensions.md +141 -0
- package/skills/peaks-doctor/SKILL.md +59 -0
- package/skills/peaks-doctor/references/doctor-check-catalog.md +31 -0
- package/skills/peaks-doctor/references/from-doctor-flow.md +64 -0
- package/skills/peaks-doctor/test_prompts.json +17 -0
- package/skills/peaks-final-review/SKILL.md +157 -0
- package/skills/peaks-final-review/references/4-dimensions.md +117 -0
- package/skills/peaks-ide/SKILL.md +161 -0
- package/skills/peaks-ide/references/audit-log-helper.md +52 -0
- package/skills/peaks-perf-audit/SKILL.md +166 -0
- package/skills/peaks-perf-audit/references/audit-protocol.md +173 -0
- package/skills/peaks-prd/SKILL.md +319 -0
- package/skills/peaks-prd/references/artifact-contracts.md +7 -0
- package/skills/peaks-prd/references/artifact-per-request.md +78 -0
- package/skills/peaks-prd/references/command-migration.md +3 -0
- package/skills/peaks-prd/references/prd-for-multi-pass.md +49 -0
- package/skills/peaks-prd/references/workflow.md +43 -0
- package/skills/peaks-qa/SKILL.md +240 -0
- package/skills/peaks-qa/references/artifact-contracts.md +7 -0
- package/skills/peaks-qa/references/artifact-per-request.md +25 -0
- package/skills/peaks-qa/references/browser-validation-contracts.md +51 -0
- package/skills/peaks-qa/references/codegraph-regression-focus.md +5 -0
- package/skills/peaks-qa/references/command-migration.md +3 -0
- package/skills/peaks-qa/references/external-capability-guidance.md +9 -0
- package/skills/peaks-qa/references/openspec-validation-gate.md +55 -0
- package/skills/peaks-qa/references/qa-compact-handoff.md +3 -0
- package/skills/peaks-qa/references/qa-context-governance.md +24 -0
- package/skills/peaks-qa/references/qa-fanout-contract.md +158 -0
- package/skills/peaks-qa/references/qa-gstack-integration.md +7 -0
- package/skills/peaks-qa/references/qa-local-artifacts.md +3 -0
- package/skills/peaks-qa/references/qa-matt-pocock-integration.md +9 -0
- package/skills/peaks-qa/references/qa-perf-test-plan.md +67 -0
- package/skills/peaks-qa/references/qa-refactor-role.md +3 -0
- package/skills/peaks-qa/references/qa-runbook.md +72 -0
- package/skills/peaks-qa/references/qa-security-test-plan.md +73 -0
- package/skills/peaks-qa/references/qa-skill-presence.md +22 -0
- package/skills/peaks-qa/references/qa-standards-preflight.md +8 -0
- package/skills/peaks-qa/references/qa-sub-agent-dispatch.md +46 -0
- package/skills/peaks-qa/references/qa-transition-gates.md +86 -0
- package/skills/peaks-qa/references/reading-handoff-frontmatter.md +30 -0
- package/skills/peaks-qa/references/regression-gates.md +24 -0
- package/skills/peaks-qa/references/requirement-boundary-recheck.md +9 -0
- package/skills/peaks-qa/references/test-case-generation.md +27 -0
- package/skills/peaks-qa/references/test-report-output.md +14 -0
- package/skills/peaks-rd/SKILL.md +279 -0
- package/skills/peaks-rd/references/artifact-and-standards-output.md +9 -0
- package/skills/peaks-rd/references/artifact-contracts.md +7 -0
- package/skills/peaks-rd/references/artifact-per-request.md +112 -0
- package/skills/peaks-rd/references/browser-action-wrapper.md +39 -0
- package/skills/peaks-rd/references/browser-self-test-contracts.md +29 -0
- package/skills/peaks-rd/references/code-reviewer-4dim-hint.md +72 -0
- package/skills/peaks-rd/references/codegraph-project-analysis.md +5 -0
- package/skills/peaks-rd/references/command-migration.md +3 -0
- package/skills/peaks-rd/references/compact-handoff.md +3 -0
- package/skills/peaks-rd/references/external-references.md +11 -0
- package/skills/peaks-rd/references/frontend-project-generation.md +11 -0
- package/skills/peaks-rd/references/karpathy-reviewer-prompt.md +2 -0
- package/skills/peaks-rd/references/library-version-awareness.md +30 -0
- package/skills/peaks-rd/references/mandatory-perf-baseline.md +42 -0
- package/skills/peaks-rd/references/matt-pocock-integration.md +11 -0
- package/skills/peaks-rd/references/mock-data-placement.md +40 -0
- package/skills/peaks-rd/references/ocr-integration.md +229 -0
- package/skills/peaks-rd/references/openspec-cli.md +62 -0
- package/skills/peaks-rd/references/parallel-review-fanout.md +90 -0
- package/skills/peaks-rd/references/rd-context-governance.md +36 -0
- package/skills/peaks-rd/references/rd-fanout-contracts.md +216 -0
- package/skills/peaks-rd/references/rd-gstack-integration.md +16 -0
- package/skills/peaks-rd/references/rd-runbook.md +190 -0
- package/skills/peaks-rd/references/rd-standards-preflight.md +8 -0
- package/skills/peaks-rd/references/rd-sub-agent-dispatch.md +111 -0
- package/skills/peaks-rd/references/rd-transition-gates.md +148 -0
- package/skills/peaks-rd/references/reading-v2-slice-results.md +54 -0
- package/skills/peaks-rd/references/refactor-workflow.md +39 -0
- package/skills/peaks-rd/references/skill-presence-and-title.md +22 -0
- package/skills/peaks-rd/references/v2-12-fanout-collapse.md +64 -0
- package/skills/peaks-rd/references/writing-handoff-frontmatter.md +68 -0
- package/skills/peaks-reviewer/SKILL.md +76 -0
- package/skills/peaks-reviewer/references/reviewer-prompt.md +50 -0
- package/skills/peaks-reviewer/references/reviewer-schema.md +49 -0
- package/skills/peaks-sc/SKILL.md +166 -0
- package/skills/peaks-sc/references/artifact-contracts.md +3 -0
- package/skills/peaks-sc/references/artifact-retention.md +14 -0
- package/skills/peaks-sc/references/command-migration.md +3 -0
- package/skills/peaks-sc/references/openspec-commit-boundaries.md +33 -0
- package/skills/peaks-security-audit/SKILL.md +167 -0
- package/skills/peaks-security-audit/references/audit-protocol.md +175 -0
- package/skills/peaks-slice-decompose/SKILL.md +111 -0
- package/skills/peaks-slice-decompose/references/cross-pass-edge-interpretation.md +158 -0
- package/skills/peaks-slice-decompose/references/granularity-decision.md +129 -0
- package/skills/peaks-slice-decompose/references/v2-schema.md +156 -0
- package/skills/peaks-solo/SKILL.md +316 -0
- package/skills/peaks-solo/references/a2a-artifact-mapping.md +115 -0
- package/skills/peaks-solo/references/anchoring-and-session-info.md +34 -0
- package/skills/peaks-solo/references/artifact-contracts.md +65 -0
- package/skills/peaks-solo/references/boundaries.md +21 -0
- package/skills/peaks-solo/references/browser-workflow.md +127 -0
- package/skills/peaks-solo/references/checkpoint-resume.md +70 -0
- package/skills/peaks-solo/references/codegraph-orchestration.md +5 -0
- package/skills/peaks-solo/references/command-migration.md +3 -0
- package/skills/peaks-solo/references/completion-handoff.md +18 -0
- package/skills/peaks-solo/references/context-governance.md +204 -0
- package/skills/peaks-solo/references/cross-date-session-check.md +67 -0
- package/skills/peaks-solo/references/dag-orchestrator.md +56 -0
- package/skills/peaks-solo/references/envelope-contract.md +130 -0
- package/skills/peaks-solo/references/existing-system-extraction.md +78 -0
- package/skills/peaks-solo/references/external-references.md +17 -0
- package/skills/peaks-solo/references/external-skill-invocation.md +72 -0
- package/skills/peaks-solo/references/fanout-mandatory.md +109 -0
- package/skills/peaks-solo/references/fast-mode.md +23 -0
- package/skills/peaks-solo/references/frontend-only-mode.md +87 -0
- package/skills/peaks-solo/references/gstack-integration.md +7 -0
- package/skills/peaks-solo/references/headroom-integration.md +107 -0
- package/skills/peaks-solo/references/local-artifact-workspace.md +79 -0
- package/skills/peaks-solo/references/micro-cycle.md +316 -0
- package/skills/peaks-solo/references/mode-selection-with-stale-presence.md +124 -0
- package/skills/peaks-solo/references/mode-selection.md +21 -0
- package/skills/peaks-solo/references/openspec-workflow.md +81 -0
- package/skills/peaks-solo/references/periodic-checkpoint.md +71 -0
- package/skills/peaks-solo/references/playwright-mcp-multi-terminal.md +114 -0
- package/skills/peaks-solo/references/project-memory-loading.md +17 -0
- package/skills/peaks-solo/references/project-scan-checklist.md +136 -0
- package/skills/peaks-solo/references/quality-gate-cheatsheet.md +13 -0
- package/skills/peaks-solo/references/refactor-mode.md +24 -0
- package/skills/peaks-solo/references/resume-detection.md +63 -0
- package/skills/peaks-solo/references/runbook.md +188 -0
- package/skills/peaks-solo/references/skill-presence-and-title.md +31 -0
- package/skills/peaks-solo/references/standards-preflight.md +23 -0
- package/skills/peaks-solo/references/step-0-55-1x-detection.md +82 -0
- package/skills/peaks-solo/references/sub-agent-dispatch.md +334 -0
- package/skills/peaks-solo/references/swarm-dispatch-contract.md +230 -0
- package/skills/peaks-solo/references/workflow-gates-and-types.md +186 -0
- package/skills/peaks-solo/references/workflow.md +38 -0
- package/skills/peaks-solo-resume/SKILL.md +81 -0
- package/skills/peaks-solo-status/SKILL.md +120 -0
- package/skills/peaks-solo-test/SKILL.md +84 -0
- package/skills/peaks-sop/SKILL.md +209 -0
- package/skills/peaks-sop/references/sop-authoring.md +161 -0
- package/skills/peaks-txt/SKILL.md +303 -0
- package/skills/peaks-txt/references/artifact-contracts.md +7 -0
- package/skills/peaks-txt/references/command-migration.md +3 -0
- package/skills/peaks-txt/references/context-capsule.md +21 -0
- package/skills/peaks-ui/SKILL.md +369 -0
- package/skills/peaks-ui/references/artifact-contracts.md +3 -0
- package/skills/peaks-ui/references/artifact-per-request.md +71 -0
- package/skills/peaks-ui/references/command-migration.md +3 -0
- package/skills/peaks-ui/references/workflow.md +27 -0
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# Envelope contract — `peaks` CLI JSON envelope versioning
|
|
2
|
+
|
|
3
|
+
> **Slice**: 2026-06-23-audit-4th #E1. Bump on any future breaking change.
|
|
4
|
+
|
|
5
|
+
## Versioning policy
|
|
6
|
+
|
|
7
|
+
Every `peaks` CLI action that returns a JSON envelope stamps
|
|
8
|
+
`data.envelopeVersion` on the success path. The version is a
|
|
9
|
+
semver-style string (`MAJOR.MINOR.PATCH`).
|
|
10
|
+
|
|
11
|
+
- **MAJOR** — breaking change (field removed, field renamed,
|
|
12
|
+
type tightened). Consumers should refuse to operate on an
|
|
13
|
+
envelope whose MAJOR version is greater than their pinned version.
|
|
14
|
+
- **MINOR** — additive change (new optional field, new union
|
|
15
|
+
member). Consumers may ignore unknown fields; old consumers
|
|
16
|
+
continue to work.
|
|
17
|
+
- **PATCH** — no observable contract change (comment fix, internal
|
|
18
|
+
refactor that surfaces through serialization).
|
|
19
|
+
|
|
20
|
+
## Current version
|
|
21
|
+
|
|
22
|
+
**`2.1.0`** — slice 2026-06-23-audit-4th introduced the marker.
|
|
23
|
+
The only breaking change since `2.0.0` is the removal of
|
|
24
|
+
`data.prompt` from `sub-agent.dispatch` (slice
|
|
25
|
+
2026-06-23-audit-3rd #4).
|
|
26
|
+
|
|
27
|
+
## Per-command shape
|
|
28
|
+
|
|
29
|
+
### `sub-agent.dispatch` (single)
|
|
30
|
+
|
|
31
|
+
Top-level fields (post-2.1.0):
|
|
32
|
+
|
|
33
|
+
- `envelopeVersion: '2.1.0'`
|
|
34
|
+
- `role: string` — sub-agent role string
|
|
35
|
+
- `ide: string` — detected IDE label (`claude-code` etc.)
|
|
36
|
+
- `originalPromptSize: number` — bytes of the un-compressed prompt
|
|
37
|
+
- `promptSize: number` — bytes after headroom compression (or
|
|
38
|
+
equal to `originalPromptSize` when `--use-headroom` is off or
|
|
39
|
+
unavailable)
|
|
40
|
+
- `toolCall: { name: string; args: Record<string, unknown> }` —
|
|
41
|
+
the per-IDE tool-call descriptor the LLM must execute
|
|
42
|
+
- `dispatchRecordPath: string` — absolute path to the dispatch
|
|
43
|
+
record on disk
|
|
44
|
+
- `batchId: string` — uuid-like opaque token grouping one batch
|
|
45
|
+
- `dispatchedInBatch: number` — current count after this dispatch
|
|
46
|
+
- `headroomCompressed: boolean` — true if headroom-ai actually
|
|
47
|
+
reduced the prompt
|
|
48
|
+
- `headroomResult: { mode, compressed, compressionRatio, tokensSaved, warning } | null`
|
|
49
|
+
- `forcedAt: string | null` — ISO8601 when `--force` overrode
|
|
50
|
+
the G9 hard-reject tier
|
|
51
|
+
- `contextImpact: { promptBytes, artifactBytes, totalBytes }`
|
|
52
|
+
- `artifactMetas: ArtifactMeta[]` — `--write-artifact` results
|
|
53
|
+
|
|
54
|
+
Removed in 2.0.0: `data.prompt` (audit-3rd #4). Consumers MUST
|
|
55
|
+
read `data.toolCall.args.prompt` for the prompt content.
|
|
56
|
+
|
|
57
|
+
### `sub-agent.dispatch --from-dag`
|
|
58
|
+
|
|
59
|
+
Same fields as single dispatch, plus:
|
|
60
|
+
|
|
61
|
+
- `fromDag: string` — path to the input DAG file
|
|
62
|
+
- `dispatchCount: number` — N toolCalls emitted in this level
|
|
63
|
+
- `levelsTotal: number` — total topological levels
|
|
64
|
+
- `firstLevel: string[]` — slice ids at level 1 (the only ones
|
|
65
|
+
surfaced to the CLI; levels 2+ are orchestrated internally)
|
|
66
|
+
- `toolCalls: SubAgentToolCall[]` — N tool calls (one per slice)
|
|
67
|
+
- `existingContractCount: number` — number of ancestor contracts
|
|
68
|
+
spliced into the prompts
|
|
69
|
+
|
|
70
|
+
### `sub-agent.heartbeat`
|
|
71
|
+
|
|
72
|
+
- `envelopeVersion: '2.1.0'`
|
|
73
|
+
- `recordPath: string`
|
|
74
|
+
- `heartbeatCount: number`
|
|
75
|
+
- `lastBeatAt: string | null` (ISO8601)
|
|
76
|
+
- `status: 'queued' | 'running' | 'finalizing' | 'done' | 'failed' | 'stale'`
|
|
77
|
+
- `truncated: boolean` — true if the heartbeats[] array hit the
|
|
78
|
+
100-entry cap and old entries were dropped
|
|
79
|
+
|
|
80
|
+
### `sub-agent.share`
|
|
81
|
+
|
|
82
|
+
- `envelopeVersion: '2.1.0'`
|
|
83
|
+
- `ok: true`
|
|
84
|
+
- `batchId: string`
|
|
85
|
+
- `entryKey: string`
|
|
86
|
+
- `writtenAt: string` (ISO8601)
|
|
87
|
+
- `channelSize: number` — bytes of the channel file after this write
|
|
88
|
+
- `lastWriteWins: boolean` — true if `entryKey` was already present
|
|
89
|
+
- `valueSize: number`
|
|
90
|
+
|
|
91
|
+
### `sub-agent.shared-read`
|
|
92
|
+
|
|
93
|
+
- `envelopeVersion: '2.1.0'`
|
|
94
|
+
- `ok: true`
|
|
95
|
+
- `batchId: string`
|
|
96
|
+
- `entries: Record<string, SharedChannelEntry>` — key → entry
|
|
97
|
+
- `totalEntries: number`
|
|
98
|
+
- `channelSize: number` — bytes of the filtered channel
|
|
99
|
+
- `updatedAt: string` (ISO8601)
|
|
100
|
+
|
|
101
|
+
### `sub-agent.await`
|
|
102
|
+
|
|
103
|
+
- `envelopeVersion: '2.1.0'`
|
|
104
|
+
- `batchId: string`
|
|
105
|
+
- `ide: string`
|
|
106
|
+
- `results: SubAgentBatchResult[]`
|
|
107
|
+
- `summary: { total, done, failed, cancelled, timeout }`
|
|
108
|
+
|
|
109
|
+
## Migration policy
|
|
110
|
+
|
|
111
|
+
When the `MAJOR` version increments, the audit memory doc
|
|
112
|
+
(`.peaks/memory/`) MUST ship a migration memo with:
|
|
113
|
+
|
|
114
|
+
1. A diff of removed/renamed fields with old → new mapping.
|
|
115
|
+
2. A code-search commit that updates any in-repo consumers
|
|
116
|
+
(currently only `dispatch-commands.ts`, `heartbeat-commands.ts`,
|
|
117
|
+
`share-commands.ts`, `dispatch-from-dag.ts`).
|
|
118
|
+
3. A test fixture that pins the v{N-1} → v{N} migration.
|
|
119
|
+
|
|
120
|
+
For `MINOR` increments, only a changelog line in
|
|
121
|
+
`.peaks/memory/<date>-envelope-<v>.md` is required.
|
|
122
|
+
|
|
123
|
+
## Why a version field and not just a stable schema
|
|
124
|
+
|
|
125
|
+
The alternative — Zod-validate the response — was rejected as
|
|
126
|
+
over-engineering for a CLI whose consumers are LLMs (not RPC
|
|
127
|
+
clients). A short `envelopeVersion: '2.1.0'` string is cheap
|
|
128
|
+
for the LLM to ignore when unnecessary, and unambiguous when
|
|
129
|
+
needed: "if you see `envelopeVersion` >= 3.x, do not assume
|
|
130
|
+
`data.toolCall` is still shape-valid."
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Existing visual & convention system extraction
|
|
2
|
+
|
|
3
|
+
Run this step when `project-scan.md` archetype is `legacy-frontend`, `legacy-fullstack`, or `frontend-monorepo`. Skip for `greenfield` and `unknown`.
|
|
4
|
+
|
|
5
|
+
Output: `.peaks/_runtime/<session-id>/system/existing-system.md`. The path lives under `system/` (not `ui/`) because the file records both UI tokens AND code conventions (service-layer signatures, hooks, naming) that backend-only or legacy-fullstack work consumes. UI design-draft and RD implementation MUST read this file and treat extracted tokens/conventions as hard constraints. New tokens or conventions may only be introduced when PRD explicitly authorizes them.
|
|
6
|
+
|
|
7
|
+
## Step 1 — Run the CLI (deterministic, source of truth)
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
peaks scan existing-system --project <repo> --json
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The CLI emits stable JSON containing:
|
|
14
|
+
|
|
15
|
+
- `scanned`: `true | false` (skipped for greenfield / unknown archetypes; copy `scanSkippedReason` if false)
|
|
16
|
+
- `visualTokens`:
|
|
17
|
+
- `colors[]`, `spacing[]`, `typography[]`, `radii[]` — each entry is `{ name, value, source }` parsed deterministically from Less/Sass variables, CSS variables, and `tailwind.config.*` color blocks
|
|
18
|
+
- `sources[]` — every theme/style file the parser actually read (path + kind)
|
|
19
|
+
- `conventions`:
|
|
20
|
+
- `componentNaming`: `PascalCase | kebab-case | mixed | unknown` (decided from real file names under the component directory)
|
|
21
|
+
- `componentDir`, `serviceDir`, `hookDir` — first matching path found
|
|
22
|
+
- `samples[]` — up to 5 most-recently-modified files per kind
|
|
23
|
+
- `inconsistencies[]` — token names that have different values across sources
|
|
24
|
+
|
|
25
|
+
Copy these fields VERBATIM into `existing-system.md`. Do not re-classify tokens; do not invent additional samples.
|
|
26
|
+
|
|
27
|
+
## Step 2 — Render the markdown
|
|
28
|
+
|
|
29
|
+
Use the template below. Every value must come from the CLI JSON; leave a section as `- (none detected)` when the CLI returned an empty array.
|
|
30
|
+
|
|
31
|
+
```markdown
|
|
32
|
+
# Existing visual & convention system
|
|
33
|
+
**Project:** <name>
|
|
34
|
+
**Date:** YYYY-MM-DD
|
|
35
|
+
**CLI command:** peaks scan existing-system --project <repo> --json
|
|
36
|
+
**Source files inspected:** <paste visualTokens.sources[*].path>
|
|
37
|
+
|
|
38
|
+
## Color tokens
|
|
39
|
+
<paste visualTokens.colors as "- {name}: {value} (source: {source})">
|
|
40
|
+
|
|
41
|
+
## Typography
|
|
42
|
+
<paste visualTokens.typography>
|
|
43
|
+
|
|
44
|
+
## Spacing
|
|
45
|
+
<paste visualTokens.spacing>
|
|
46
|
+
|
|
47
|
+
## Radius
|
|
48
|
+
<paste visualTokens.radii>
|
|
49
|
+
|
|
50
|
+
## Component conventions
|
|
51
|
+
- Naming: <conventions.componentNaming>
|
|
52
|
+
- Directory: <conventions.componentDir>
|
|
53
|
+
- Sample files: <conventions.samples filtered by kind=component>
|
|
54
|
+
|
|
55
|
+
## Service layer convention
|
|
56
|
+
- Directory: <conventions.serviceDir>
|
|
57
|
+
- Sample files: <conventions.samples filtered by kind=service>
|
|
58
|
+
|
|
59
|
+
## Hooks convention
|
|
60
|
+
- Directory: <conventions.hookDir>
|
|
61
|
+
- Sample files: <conventions.samples filtered by kind=hook>
|
|
62
|
+
|
|
63
|
+
## Detected inconsistencies
|
|
64
|
+
<paste inconsistencies[*] verbatim; if empty, write "- (none)">
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Hard rules for downstream consumers
|
|
68
|
+
|
|
69
|
+
- **UI design-draft**: every color, font, radius, spacing value used in the draft MUST come from `visualTokens.*` above. New values require an explicit `## New tokens (requested)` section with PRD justification.
|
|
70
|
+
- **RD implementation**: new components must match `conventions.componentNaming` and live under `conventions.componentDir`. Service and hook code must match the recorded directory.
|
|
71
|
+
- **QA**: regression checks must verify that no new color/spacing values escaped the recorded token set; inconsistencies from the CLI become QA acceptance items (resolve or explicitly accept).
|
|
72
|
+
|
|
73
|
+
## When the CLI returns empty results
|
|
74
|
+
|
|
75
|
+
If `scanned=true` but all token arrays are empty AND `conventions.componentDir` is null, the project has no detectable token system or component convention. Record this verbatim in `existing-system.md` under `## Detected inconsistencies → no theme system; values are hard-coded across files; no canonical component dir`. Surface it in the TXT handoff as a known risk. Do NOT invent a token system.
|
|
76
|
+
|
|
77
|
+
When `scanned=false` (archetype = greenfield or unknown), do not write `existing-system.md` at all — the greenfield path applies.
|
|
78
|
+
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# External references and lifecycle
|
|
2
|
+
|
|
3
|
+
> Body of `## Peaks-Cli External references and lifecycle`.
|
|
4
|
+
|
|
5
|
+
**Codegraph**: Optional project-analysis before RD handoff. Use `peaks codegraph affected --project <path> <changed-files...> --json` for regression-surface hints. Output as untrusted supporting evidence only; never commit `.codegraph/` artifacts.
|
|
6
|
+
|
|
7
|
+
Solo treats `peaks codegraph affected --project <path> <changed-files...> --json` as an optional project-analysis enhancement that informs the role handoff between PRD, RD, and QA. The output is untrusted supporting evidence — Solo must not treat codegraph output as approval for scope, design, or QA verdict.
|
|
8
|
+
|
|
9
|
+
Do not run upstream installer flows, mutate agent settings, or commit `.codegraph/` artifacts into git. Peaks-Cli gates remain authoritative; codegraph context is a hint, never a substitute for role-skill output.
|
|
10
|
+
|
|
11
|
+
**External skills**: All external skill references (`mattpocock/skills`, `awesome-design-md`, `taste-skill`, `shadcn/ui`, `Chrome DevTools MCP`, `Figma Context MCP`, `Context7`, etc.) follow the three-stage pattern: capability discovery via `peaks capabilities` before naming, references only (no execute/install/persist), Peaks-Cli CLI for all side effects. Do not execute upstream installers, do not install upstream resources, do not persist sensitive examples — Peaks-Cli gates remain authoritative. External skills inform, they do not approve.
|
|
12
|
+
|
|
13
|
+
**OpenSpec lifecycle**: `render → validate → show → to-rd → validate → archive`. Solo's default runbook handles the exit gate (validate → archive after QA pass). Entry-gate validation (to-rd before slicing) is available when `openspec/` exists pre-workflow; Solo delegates it to `peaks-rd` during implementation.
|
|
14
|
+
|
|
15
|
+
**MCP lifecycle**: `list → plan → apply --yes → call → rollback`. `apply` backs up settings and refuses non-peaks entries unless `--claim` is passed.
|
|
16
|
+
|
|
17
|
+
Detailed rules: `references/external-skill-invocation.md`, `references/openspec-mcp-workflow.md`, `references/workflow.md`, `references/existing-system-extraction.md`. For an informational mapping of peaks artefact paths to the A2A (Agent2Agent) protocol's Task / Artifact / Part / Message / AgentCard vocabulary (no A2A implementation, just a shared naming layer), see `references/a2a-artifact-mapping.md`.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Canonical external-skill invocation pattern for Peaks skills
|
|
2
|
+
|
|
3
|
+
Peaks skills reference many external resources — `mattpocock/skills`, `gstack`, `awesome-design-md`, `taste-skill`, `design-taste-frontend`, `superpowers`, `shadcn/ui`, `React Bits`, `Chrome DevTools MCP`, `Agent Browser`, `Figma Context MCP`, `Penpot`, `Context7`, `SearchCode`, `claude-mem`, `context-mode`, `everything-claude-code`, `Claude Code Best Practice`, `andrej-karpathy-skills`, `OpenSpec`, `GitNexus`, and others.
|
|
4
|
+
|
|
5
|
+
Every reference must follow the same three-stage pattern so the Peaks gates stay authoritative and side effects stay observable.
|
|
6
|
+
|
|
7
|
+
> **Slice #016 (2026-06-09)**: peaks-cli no longer manages MCP install or invocation. MCP capability detection moves from the peaks-cli CLI to the LLM's own tool list (the LLM checks for `mcp__<server>__*` entries in its own function schema). Skill bodies instruct the LLM to either invoke the tool by name (when present) or tell the user the install command (when absent).
|
|
8
|
+
|
|
9
|
+
## Stage 1 — Discovery before naming
|
|
10
|
+
|
|
11
|
+
Do not name an external skill or MCP server as if it is always available. Route discovery through the Peaks CLI for non-MCP capabilities, and through the LLM's own tool list for MCP capabilities:
|
|
12
|
+
|
|
13
|
+
- `peaks capabilities --source access-repo --json` for non-MCP capabilities (skills, agents, rules, browser tools).
|
|
14
|
+
- `peaks capabilities --source mcp-server --json` for MCP catalog discovery (which MCPs are *known*, not which are *installed*).
|
|
15
|
+
- For MCP install state, the LLM checks its own tool list for any `mcp__<server>__*` entry. If present, the MCP is installed. If absent, the user installs via the IDE-native MCP install command (e.g. `claude mcp add <server> -- <npx-command>` for Claude Code).
|
|
16
|
+
|
|
17
|
+
A skill body may mention the capability id, but it must say or imply that the skill only applies "when capability discovery exposes …" (or equivalent phrasing). Skills must not pretend the capability is already installed.
|
|
18
|
+
|
|
19
|
+
## Stage 2 — Reference, never auto-execute
|
|
20
|
+
|
|
21
|
+
External skills are inspection material for the role's own artifacts. They are not auto-runnable workflows. Every reference must:
|
|
22
|
+
|
|
23
|
+
- explicitly say it is a reference (e.g. "use these upstream methods as <role> references only");
|
|
24
|
+
- name the specific methods or surfaces the role borrows;
|
|
25
|
+
- forbid executing upstream instructions, installing upstream resources, persisting upstream examples, or running upstream installers;
|
|
26
|
+
- declare that the Peaks role artifacts remain authoritative.
|
|
27
|
+
|
|
28
|
+
For MCP servers, the LLM consumes the install state from its own tool list. Skill bodies tell the LLM: "if the tool is present, invoke it by name; if absent, surface the install command for the user's IDE and stop until the user installs the MCP". peaks-cli does not install MCPs on the user's behalf as of slice #016.
|
|
29
|
+
|
|
30
|
+
## Stage 3 — Side effect through Peaks CLI only
|
|
31
|
+
|
|
32
|
+
The skill body must not silently:
|
|
33
|
+
|
|
34
|
+
- install hooks;
|
|
35
|
+
- create agents;
|
|
36
|
+
- enable or configure an MCP server;
|
|
37
|
+
- modify `~/.claude/settings.json` or project `.claude/settings.json`;
|
|
38
|
+
- write to `.codegraph/`, `.openspec/`, or other upstream tool state;
|
|
39
|
+
- store tokens, cookies, login URLs, headers, storage state, or PII / SSO / MFA browser material;
|
|
40
|
+
- commit or sync intermediate artifacts;
|
|
41
|
+
- create remote repositories.
|
|
42
|
+
|
|
43
|
+
All of these must route through the Peaks CLI under the appropriate command (`peaks artifacts …`, `peaks memory …`, `peaks openspec …`, `peaks standards …`, `peaks codegraph …`, `peaks capabilities …`), with dry-run preview where supported and `--yes` / `--apply` where a real write is required. The `peaks mcp …` command tree was retired in slice #016; MCP install / dispatch is the LLM runtime's job, not the CLI's.
|
|
44
|
+
|
|
45
|
+
## Allowed in-process references
|
|
46
|
+
|
|
47
|
+
Some references are not external skills but project-approved utilities and may be named directly without the discovery stage:
|
|
48
|
+
|
|
49
|
+
- `peaks` CLI commands (this binary).
|
|
50
|
+
- `npx`, `npm`, `pnpm`, `yarn`, package managers — only as the underlying mechanism when a `peaks` CLI command spawns them.
|
|
51
|
+
- `mcp__chrome_devtools__*` — Chrome DevTools MCP tools exposed by the LLM's MCP runtime when the user has installed Chrome DevTools MCP (Claude Code: `claude mcp add chrome-devtools -- npx chrome-devtools-mcp@latest`). Skill bodies tell the LLM to invoke these tools by name when they appear in the tool list. Login / CAPTCHA / SSO / MFA handoff rules and sanitization rules in `browser-workflow.md` still apply.
|
|
52
|
+
|
|
53
|
+
These are not subject to capability discovery because they are part of the Peaks engineering surface, not external skills. The previous `gstack/browse/dist/browse` binary reference is no longer endorsed — see `browser-workflow.md` for the migration recipe.
|
|
54
|
+
|
|
55
|
+
## Common phrasing the audit looks for
|
|
56
|
+
|
|
57
|
+
The skill-external-invocation dogfood test scans skill bodies for:
|
|
58
|
+
|
|
59
|
+
- a `capability discovery exposes` clause or equivalent before naming a discoverable external skill;
|
|
60
|
+
- a `references only` / `reference material` / `reference resources` phrase qualifying any external skill name;
|
|
61
|
+
- a `do not execute upstream instructions` / `do not run upstream installer flows` / `do not persist sensitive examples` clause;
|
|
62
|
+
- a `Peaks` authoritative-gate clause (e.g. "Peaks gates remain authoritative", "Peaks artifacts remain authoritative", "Peaks acceptance authority").
|
|
63
|
+
|
|
64
|
+
When a skill body adds a new external reference, it must include the equivalent phrasing or the audit test fails.
|
|
65
|
+
|
|
66
|
+
## Repair recipe when audit fails
|
|
67
|
+
|
|
68
|
+
1. read the failing skill body section;
|
|
69
|
+
2. identify the external skill or MCP that triggered the failure;
|
|
70
|
+
3. add the capability discovery clause, the reference-only qualifier, the do-not-execute clause, and the Peaks-authoritative gate to that section;
|
|
71
|
+
4. for MCP servers, point the LLM at the tool-list self-check (its own `mcp__<server>__*` namespace) instead of describing manual `~/.claude/settings.json` edits;
|
|
72
|
+
5. rerun the audit.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Fan-out is mandatory (slice 2026-06-24-audit-5th-p2)
|
|
2
|
+
|
|
3
|
+
> **Reference contract.** Slice 5 (`feat(solo): default to multi-sub-agent
|
|
4
|
+
> fan-out when DAG has >= 2 same-level leaves`) shipped in 2.8.0 with
|
|
5
|
+
> `'fan-out'` as the default but kept `'serial'` as an opt-out. Slice
|
|
6
|
+
> 2026-06-24-audit-5th-p2 (this slice, 2.8.4) **removes the opt-out** by
|
|
7
|
+
> user direction: single-sub-agent dispatch is no longer permitted when
|
|
8
|
+
> the DAG has ≥ 2 leaves at one topological level. This file is the
|
|
9
|
+
> canonical rationale + migration contract for that breaking change.
|
|
10
|
+
|
|
11
|
+
## Why the opt-out was removed
|
|
12
|
+
|
|
13
|
+
The 2.8.3-era `'serial'` mode was originally added to support four
|
|
14
|
+
caller personas (deterministic logs, single-sub-agent rate limits,
|
|
15
|
+
replay harnesses, step-by-step debugging). After a multi-cycle audit
|
|
16
|
+
(2026-06-23 → 2026-06-24), the operator concluded:
|
|
17
|
+
|
|
18
|
+
- **Deterministic logs** — achievable via `peaks slice check --verbose
|
|
19
|
+
--no-color` per-slice logs, no opt-out needed.
|
|
20
|
+
- **Rate limits** — handled at the LLM-side runner's batch budget, not
|
|
21
|
+
by serializing the dispatch shape (fan-out's `dispatchCount === N`
|
|
22
|
+
still gives the platform one batch to schedule concurrently).
|
|
23
|
+
- **Replay / step-debug** — already covered by `peaks contract write`
|
|
24
|
+
+ `peaks sub-agent dispatch --batch-id <existing>`; replay targets
|
|
25
|
+
one slice by id, no need to disable fan-out at the orchestrator.
|
|
26
|
+
- **The opt-out masked a foot-gun**: a user setting `'serial'` got
|
|
27
|
+
`dispatchCount === 1` per CLI invocation and silently turned the
|
|
28
|
+
orchestrator into a serial runner — wall-time `sum`, not `max`.
|
|
29
|
+
|
|
30
|
+
The hard constraint is now: when the slice DAG has ≥ 2 leaves at the
|
|
31
|
+
same topological level, the orchestrator MUST use `--from-dag` and
|
|
32
|
+
emit N parallel `buildToolCall` envelopes in one batch. There is no
|
|
33
|
+
preference, env-var, or CLI flag that overrides this.
|
|
34
|
+
|
|
35
|
+
## Default rule (unchanged)
|
|
36
|
+
|
|
37
|
+
```text
|
|
38
|
+
topological-level leaf count ≥ 2
|
|
39
|
+
→ peaks sub-agent dispatch --from-dag <dag-file> --batch-id <id>
|
|
40
|
+
→ dispatchCount === N (parallel)
|
|
41
|
+
→ wall-time ≈ max(per-slice latency), not sum
|
|
42
|
+
|
|
43
|
+
topological-level leaf count === 1
|
|
44
|
+
→ peaks sub-agent dispatch <role> --prompt ...
|
|
45
|
+
→ dispatchCount === 1 (single dispatch is fine; only one slice exists)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
`config | docs | chore` request types still skip Swarm (no DAG emitted).
|
|
49
|
+
|
|
50
|
+
## Migration: legacy `'serial'` preferences.json
|
|
51
|
+
|
|
52
|
+
A project that wrote `'serial'` into `.peaks/preferences.json` between
|
|
53
|
+
2.8.3 and 2.8.4 will see the following when it next runs `peaks`
|
|
54
|
+
(any CLI that calls `loadPreferences`):
|
|
55
|
+
|
|
56
|
+
```text
|
|
57
|
+
PREFERENCES_FANOUT_INVALID: fanout.defaultMode must be one of fan-out
|
|
58
|
+
(got "serial") in .peaks/preferences.json. The 'serial' opt-out was
|
|
59
|
+
removed in 2.8.4 — remove the fanout block to use the fan-out default.
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Recovery:** delete the `fanout` block from `.peaks/preferences.json`
|
|
63
|
+
(keeping the rest of the file intact), or run `peaks preferences
|
|
64
|
+
migrate --write` which rewrites `serial` → `fan-out` automatically
|
|
65
|
+
and surfaces a `changes[]` entry:
|
|
66
|
+
|
|
67
|
+
```text
|
|
68
|
+
fanout.defaultMode rewrote 'serial' → 'fan-out' (the 'serial' opt-out
|
|
69
|
+
was removed in 2.8.4; single-sub-agent dispatch is no longer
|
|
70
|
+
permitted when DAG has >= 2 leaves)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Schema reference (locked)
|
|
74
|
+
|
|
75
|
+
Defined in `src/services/preferences/preferences-types.ts`:
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
export type FanoutMode = 'fan-out';
|
|
79
|
+
|
|
80
|
+
export const FANOUT_MODES: readonly FanoutMode[] = ['fan-out'];
|
|
81
|
+
|
|
82
|
+
export interface FanoutPreference {
|
|
83
|
+
/** Hard-coded mode. Slice 2026-06-24-audit-5th-p2 removed the serial opt-out. */
|
|
84
|
+
readonly defaultMode: FanoutMode;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// DEFAULT_PREFERENCES
|
|
88
|
+
fanout: { defaultMode: 'fan-out' }
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
`FANOUT_MODES` is intentionally exported with a single element so the
|
|
92
|
+
type guard (`isFanoutMode`) can keep the same closed-set validation
|
|
93
|
+
shape it had pre-slice — the difference is that anything outside
|
|
94
|
+
`'fan-out'` now throws instead of being silently coerced to default.
|
|
95
|
+
|
|
96
|
+
## Tests
|
|
97
|
+
|
|
98
|
+
- `tests/unit/solo/skills-solo-fanout-mandatory.test.ts` — pins that
|
|
99
|
+
SKILL.md still mentions `--from-dag`, does NOT mention `serial`
|
|
100
|
+
opt-out, and references `references/fanout-mandatory.md`.
|
|
101
|
+
- `tests/integration/solo/multi-sub-agent-fanout.test.ts` — pins the
|
|
102
|
+
runtime fan-out behavior; not affected by this slice.
|
|
103
|
+
|
|
104
|
+
## Rollout
|
|
105
|
+
|
|
106
|
+
This is a **breaking change** for any project that opted into
|
|
107
|
+
`defaultMode = 'serial'`. The migration path is automatic on next
|
|
108
|
+
`peaks` run (silent coercion via `migratePreferences`); manual
|
|
109
|
+
recovery is `delete the fanout block from preferences.json`.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Solo fast mode (slice 2 — round-trip ≤ 30s)
|
|
2
|
+
|
|
3
|
+
For hot-fix / small-bug slices where the full 5-step workflow is overkill,
|
|
4
|
+
use **fast mode**: `peaks solo plan --fast <change-id>`. Fast mode skips
|
|
5
|
+
three steps that dominate cold-start cost:
|
|
6
|
+
|
|
7
|
+
| Step | Default | Fast |
|
|
8
|
+
|------|---------|------|
|
|
9
|
+
| `load-memory` (full `.peaks/memory/*` load) | run | **skip** (use last-touched subset / `--tag` filter) |
|
|
10
|
+
| `standards-preflight` (5-axis rule fan-out) | run | **skip** |
|
|
11
|
+
| `qa-cycle` (single round + repair loop) | repair=on | repair=off |
|
|
12
|
+
| `rd-cycle`, `emit-txt` | run | run |
|
|
13
|
+
|
|
14
|
+
## Acceptance gate
|
|
15
|
+
|
|
16
|
+
`test pass + tsc pass + lint pass` = GO. Single QA round, NO repair loop.
|
|
17
|
+
Use fast mode only when the user explicitly opts in (default stays
|
|
18
|
+
conservative).
|
|
19
|
+
|
|
20
|
+
## Karpathy-4 in fast mode
|
|
21
|
+
|
|
22
|
+
= condensed 1-paragraph version (not the full 4-block injection).
|
|
23
|
+
Full guidelines still apply, just shipped inline as one block.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Peaks-Cli Frontend-only development mode
|
|
2
|
+
|
|
3
|
+
> Extracted from `skills/peaks-solo/SKILL.md` on 2026-06-09 (slice 019 — slim skill files to references) to keep SKILL.md under the 800-line cap from `common/coding-style.md`. The content below is the verbatim Frontend-only development mode section that was previously inline; nothing was paraphrased, just relocated.
|
|
4
|
+
|
|
5
|
+
When the project has no live backend (no swagger.json, no API server), Solo must activate frontend-only mode.
|
|
6
|
+
|
|
7
|
+
### Mode determination (deterministic — CLI is the source of truth)
|
|
8
|
+
|
|
9
|
+
The CLI decision is authoritative. Read `frontendOnly` and `frontendOnlyReason` directly from the `peaks scan archetype --json` output and copy both into `project-scan.md` under `## Project mode`. Do NOT re-derive the decision from user phrasing.
|
|
10
|
+
|
|
11
|
+
User-stated intent is **only** consulted when it conflicts with the CLI result. The two conflict cases:
|
|
12
|
+
|
|
13
|
+
- **CLI says `frontendOnly=false` but the user says "前端项目 / 没有后端 / 先 mock 数据"**: STOP and `AskUserQuestion` to confirm whether to override the scan (the repo probably contains a backend folder the user wants to ignore). Record the override decision and reason in `project-scan.md`.
|
|
14
|
+
- **CLI says `frontendOnly=true` but the user says "需要做后端 / 加 API"**: STOP and `AskUserQuestion` to confirm whether the request actually targets the missing backend (the user may be confused about repo scope, or there is a separate backend repo Solo should switch to).
|
|
15
|
+
|
|
16
|
+
When there is no conflict, do not ask — the CLI value wins and the workflow proceeds.
|
|
17
|
+
|
|
18
|
+
### Mock data strategy selection
|
|
19
|
+
|
|
20
|
+
Solo records the chosen mock strategy in `.peaks/_runtime/<sessionId>/rd/tech-doc.md` under a `## Mock Data Strategy` section. The choice depends on the project scan results:
|
|
21
|
+
|
|
22
|
+
| Project data-fetching pattern | Recommended mock approach | Rationale |
|
|
23
|
+
|---|---|---|
|
|
24
|
+
| Umi + `umi-request` / `@umijs/plugins` request | Umi mock directory (`mock/*.ts`) | Built-in, zero-config, auto-reload on file change |
|
|
25
|
+
| `@tanstack/react-query` + custom fetcher | Service-layer mock with `Promise.resolve()` stubs in the service file | Keeps query hooks unchanged; swap fetcher target later |
|
|
26
|
+
| `ahooks` `useRequest` + service functions | Service-layer mock: replace HTTP call with `Promise.resolve(mockData)` | Matches existing service-function pattern |
|
|
27
|
+
| MSW (Mock Service Worker) already configured | Add new handlers to existing MSW setup | Consistent with project convention |
|
|
28
|
+
| No existing pattern (greenfield) | Service-layer mock with a `mock/` directory and typed fixture files | Clean separation, easy to delete later |
|
|
29
|
+
| Existing `src/services/*` but no fetcher abstraction | Inline mock inside the service file; preserve the function signature | Keeps existing call-sites unchanged |
|
|
30
|
+
| Mixed data-fetching styles (e.g. react-query + raw fetch in legacy files) | Match the style of the most recently added code in the same module | Avoid introducing a third style |
|
|
31
|
+
| Cannot decide from scan alone | STOP and `AskUserQuestion` | Asking once beats picking differently on every run |
|
|
32
|
+
|
|
33
|
+
**Mock data rules:**
|
|
34
|
+
|
|
35
|
+
1. Every mock response must match the shape of the expected real API response. Define a TypeScript interface for the response type first, then create mock data that satisfies it.
|
|
36
|
+
2. Mock data should be realistic (not `"test"`, `"foo"`, `123`) — use plausible Chinese/English content that resembles production data.
|
|
37
|
+
3. Each mock must export its TypeScript interface so RD implementation and QA test-cases can import the same types.
|
|
38
|
+
4. Mark every mock file with a header comment: `// MOCK: Replace with real API call when swagger.json is available`.
|
|
39
|
+
5. Before producing any mock file, register the plan in `.peaks/_runtime/<sessionId>/rd/mock-plan.md` with: chosen strategy (from the table above), planned file paths, and a one-line rationale per file. This file is the source of truth for mock locations across runs — RD must read it before writing code, QA must read it before writing test cases.
|
|
40
|
+
|
|
41
|
+
### API contract placeholder pattern
|
|
42
|
+
|
|
43
|
+
When no swagger.json exists, RD defines API contracts as TypeScript interfaces with a mock-then-real service layer:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
src/services/types/<feature>-api.types.ts ← API request/response interfaces
|
|
47
|
+
src/services/<feature>-service.ts ← Service functions (mock → real)
|
|
48
|
+
mock/<feature>-mock.ts ← Mock data satisfying interfaces
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Each service function returns a typed mock response marked with `// MOCK: Replace with real API call when swagger.json is available`.
|
|
52
|
+
|
|
53
|
+
### Mock-to-real migration path
|
|
54
|
+
|
|
55
|
+
When swagger.json becomes available later, the migration follows this sequence:
|
|
56
|
+
|
|
57
|
+
1. Generate typed API client from swagger.json (e.g. via `openapi-typescript` or manual mapping).
|
|
58
|
+
2. Replace mock imports with generated API calls, one service file at a time.
|
|
59
|
+
3. Remove corresponding mock files.
|
|
60
|
+
4. Run QA regression to verify the real API responses match the mock interface contracts.
|
|
61
|
+
|
|
62
|
+
Solo records the migration readiness in the TXT handoff capsule under a `## API Migration` section listing: mock file paths, the corresponding swagger endpoints (when known), and the migration status for each.
|
|
63
|
+
|
|
64
|
+
### Feishu document access fallback
|
|
65
|
+
|
|
66
|
+
When the PRD source is a Feishu/Lark document that requires authentication:
|
|
67
|
+
|
|
68
|
+
1. **Primary path**: Playwright MCP headed browser → user completes login → Solo reads document content via `browser_snapshot`.
|
|
69
|
+
2. **Fallback A (user cannot login)**: Ask user to copy-paste the document content or export as Markdown/PDF. Solo creates the PRD artifact from the pasted content.
|
|
70
|
+
3. **Fallback B (user provides export)**: User drops a `.md` or `.pdf` export into `.peaks/_runtime/<sessionId>/prd/source/`. Solo reads and processes it.
|
|
71
|
+
4. **Fallback C (none of the above)**: Mark PRD as `blocked` with reason `doc-inaccessible`, list the exact next steps for the user, and pause the workflow.
|
|
72
|
+
|
|
73
|
+
Never silently fall back to unauthenticated `fetch` or `WebFetch` for authenticated documents.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
### Frontend-only trigger pre-flight
|
|
78
|
+
|
|
79
|
+
> Body of `### Frontend-only trigger pre-flight`. Before computing the swarm plan, Solo runs the keyword scan deterministically:
|
|
80
|
+
|
|
81
|
+
1. Read `.peaks/_runtime/<sessionId>/prd/requests/<rid>.md` body.
|
|
82
|
+
2. Lowercase + strip markdown; check regex `\b(页面|组件|表单|弹窗|表格|样式|布局|交互|UI|UX|page|component|form|modal|table|styling|layout|interaction|frontend|前端)\b`.
|
|
83
|
+
3. If match count ≥ 1 → `frontendKeywordHit=true`.
|
|
84
|
+
4. If `frontendOnly` (from project-scan) is `true` and no keyword hit → UI joins anyway (frontend-only project, even non-visual changes may need visual sanity for regressions).
|
|
85
|
+
5. If `frontendOnly` is `false` and no keyword hit → UI skipped.
|
|
86
|
+
|
|
87
|
+
Solo records the pre-flight result in `sc/swarm-plan.json` so the audit trail shows why UI was or was not included.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Peaks-Cli GStack integration
|
|
2
|
+
|
|
3
|
+
> Body of `## Peaks-Cli GStack integration`.
|
|
4
|
+
|
|
5
|
+
Map gstack stages to Peaks-Cli role artifacts; preserve Peaks-Cli confirmation gates. Do not delegate orchestration to gstack commands.
|
|
6
|
+
|
|
7
|
+
For frontend workflows, RD and QA must use Playwright MCP for real browser E2E. The consuming LLM detects the MCP from its own tool list: any Playwright MCP entry in the LLM tool list means the MCP is installed; absent means the user needs to install (`claude mcp add playwright -- npx @playwright/mcp@latest` in Claude Code; other IDEs have their own MCP install path). The LLM invokes the tool directly (browser_navigate / browser_click / browser_snapshot / browser_take_screenshot / browser_console_messages / browser_network_requests / browser_close) by name — there is no peaks-cli indirection. Chrome DevTools MCP is a secondary CDP surface only. Sanitize browser artifacts before retention (no login URLs, cookies, tokens, PII). See `references/browser-workflow.md`.
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Headroom Integration — G7.7 opt-in compression channel
|
|
2
|
+
|
|
3
|
+
> Slice #010 (G7.7 headroom-ai integration route).
|
|
4
|
+
> Source: https://github.com/chopratejas/headroom
|
|
5
|
+
> Package: `headroom-ai@0.22.4` (Apache-2.0, MIT-compatible).
|
|
6
|
+
> See: `THIRD_PARTY_LICENSES.md` for the license record.
|
|
7
|
+
|
|
8
|
+
## Why headroom-ai is justified (R-14)
|
|
9
|
+
|
|
10
|
+
The dev-preference red line "非必要不添加新的 dep" is preserved:
|
|
11
|
+
headroom-ai is the only opt-in mechanism for G7.7 + G9 to compress
|
|
12
|
+
sub-agent prompts that exceed the 75% / 80% threshold. Without
|
|
13
|
+
headroom-ai, `--use-headroom` is a no-op and the only fallback is
|
|
14
|
+
`--force` override at CLI.
|
|
15
|
+
|
|
16
|
+
The user's explicit reference (https://github.com/chopratejas/headroom)
|
|
17
|
+
is the basis for the dev-preference override.
|
|
18
|
+
|
|
19
|
+
## API shape (real SDK, not the PRD's spec)
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
import { compress } from 'headroom-ai';
|
|
23
|
+
|
|
24
|
+
const result = await compress(messages, {
|
|
25
|
+
model: 'claude-sonnet-4-5-20250929',
|
|
26
|
+
baseUrl: 'http://localhost:8787', // local proxy; not used in slice #010
|
|
27
|
+
apiKey: 'hr_...', // Headroom Cloud; not used in slice #010
|
|
28
|
+
timeout: 30_000,
|
|
29
|
+
fallback: true, // CRITICAL: return original messages if proxy is dead
|
|
30
|
+
retries: 1,
|
|
31
|
+
tokenBudget: 4000, // compress to fit this limit
|
|
32
|
+
hooks: new MyHooks(), // pre/post compression hooks
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
result.messages // compressed messages
|
|
36
|
+
result.tokensBefore // original token count
|
|
37
|
+
result.tokensAfter // compressed token count
|
|
38
|
+
result.tokensSaved // tokens removed
|
|
39
|
+
result.compressionRatio // tokensAfter / tokensBefore
|
|
40
|
+
result.transformsApplied // e.g. ['router:smart_crusher:0.35']
|
|
41
|
+
result.compressed // false if fallback kicked in
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
`fallback: true` is the key option: if the proxy is unavailable, the SDK
|
|
45
|
+
returns the original messages + `result.compressed: false` instead of
|
|
46
|
+
throwing. This makes the failure mode non-blocking (RL-22d / RL-32).
|
|
47
|
+
|
|
48
|
+
## Mode table (peaks wrapper)
|
|
49
|
+
|
|
50
|
+
The peaks wrapper maps the user-facing `HeadroomMode` to the SDK's
|
|
51
|
+
`tokenBudget` option. Slice #010 does not consume the SDK's internal
|
|
52
|
+
"audit" / "optimize" / "simulate" modes (those are SDK-internal);
|
|
53
|
+
|
|
54
|
+
| Mode | tokenBudget | Use case |
|
|
55
|
+
|---|---|---|
|
|
56
|
+
| `balanced` (default) | promptSize * 0.40 / 4 | General sub-agent dispatch |
|
|
57
|
+
| `aggressive` | promptSize * 0.20 / 4 | Last-resort large prompt |
|
|
58
|
+
| `conservative` | promptSize * 0.70 / 4 | Sensitive code analysis, accuracy-critical |
|
|
59
|
+
|
|
60
|
+
The `0.40 / 4` factor approximates 60% byte reduction (1 token ≈ 4 bytes
|
|
61
|
+
for English text). The SDK does its own tokenization internally; the
|
|
62
|
+
`tokenBudget` is a hint, not a hard cap.
|
|
63
|
+
|
|
64
|
+
## Failure semantics (RL-22d / RL-32)
|
|
65
|
+
|
|
66
|
+
- `result.compressed === false` → `code: "HEADROOM_UNAVAILABLE"` warning
|
|
67
|
+
- `compress()` throws (network error, JSON parse error) → caught and treated as `HEADROOM_UNAVAILABLE`
|
|
68
|
+
- Import failure (headroom-ai not installed) → caught and treated as `HEADROOM_UNAVAILABLE`
|
|
69
|
+
- **NOT blocking** — peak falls back to G7 metadata-only and continues dispatch
|
|
70
|
+
|
|
71
|
+
## CCR reversible hydration (slice #011+ TODO)
|
|
72
|
+
|
|
73
|
+
The PRD mentions "CCR (Cross-Context Reversible)" as a benefit of
|
|
74
|
+
headroom. In the SDK, this is implemented via the `hooks` option on
|
|
75
|
+
`compress()`. A pre/post hook can persist the `ccrHashes` to disk,
|
|
76
|
+
and a later `rehydrate()` call can re-hydrate the compressed prompt
|
|
77
|
+
to the original. Slice #010 does NOT consume CCR — it only uses
|
|
78
|
+
compression. R-17 (CCR for aggressive / conservative modes) is
|
|
79
|
+
deferred to slice #011+.
|
|
80
|
+
|
|
81
|
+
## Cross-platform behavior (R-19)
|
|
82
|
+
|
|
83
|
+
- In-process compression (the SDK's library mode) is platform-agnostic.
|
|
84
|
+
- The long-running `headroom proxy` daemon is platform-specific
|
|
85
|
+
(Unix socket on Linux/macOS, named pipe on Windows). Slice #010
|
|
86
|
+
does NOT consume the proxy daemon.
|
|
87
|
+
- All headroom-ai calls in slice #010 go through the in-process SDK
|
|
88
|
+
with `fallback: true`. The peak wrapper at
|
|
89
|
+
`src/services/context/headroom-client.ts` catches all errors and
|
|
90
|
+
treats them as fallback.
|
|
91
|
+
|
|
92
|
+
## What slice #010 does NOT do
|
|
93
|
+
|
|
94
|
+
- Does NOT install the `headroom proxy` daemon (N-7).
|
|
95
|
+
- Does NOT consume headroom's `SharedContext` directly (G7.7.3 in the
|
|
96
|
+
PRD); the peak-internal `SharedChannel` (G8) is the cross-sub-agent
|
|
97
|
+
state store. `buildSharedContextBridge()` is a stub that returns
|
|
98
|
+
the peak-internal channel ID + a placeholder headroom context ID.
|
|
99
|
+
- Does NOT use the SDK's `audit` / `optimize` / `simulate` modes
|
|
100
|
+
(those are SDK-internal; the peak wrapper exposes
|
|
101
|
+
`balanced` / `aggressive` / `conservative` to the user).
|
|
102
|
+
|
|
103
|
+
## Security + license
|
|
104
|
+
|
|
105
|
+
- License: Apache-2.0 (MIT-compatible) — see `THIRD_PARTY_LICENSES.md`.
|
|
106
|
+
- Pinned version: exact `0.22.4` (no `^` / `~` range) per dev-preference.
|
|
107
|
+
- `pnpm audit` ran on install; no new high-severity vulnerabilities.
|