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,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slice 2026-06-16-peaks-solo-auto-scaffold (RD#7) — missing-standards-detector.
|
|
3
|
+
*
|
|
4
|
+
* Read-side companion to the `peaks standards init` / `peaks standards update`
|
|
5
|
+
* writers in `./project-standards-service.ts`. The writer KNOWS how to scaffold
|
|
6
|
+
* `.claude/rules/{common,<language>}/` from the curated baseline; this module
|
|
7
|
+
* detects when the consumer project's rules tree is missing or empty and emits
|
|
8
|
+
* a copy-pasteable diagnostic for the operator.
|
|
9
|
+
*
|
|
10
|
+
* Why a separate read module: the writer is `apply`-gated and write-bounded
|
|
11
|
+
* (it touches the filesystem via `prevalidateWrites`/`assertNotHomedirBaseline`).
|
|
12
|
+
* The detector is read-only and platform-aware (win32 path separators for
|
|
13
|
+
* Windows consumers) — coupling the two would force the writer to grow a
|
|
14
|
+
* read-only flag and a platform-switching argument.
|
|
15
|
+
*
|
|
16
|
+
* Cross-platform path rendering (AC6): the detector switches on
|
|
17
|
+
* `process.platform` and renders the project path with `path.sep` so Windows
|
|
18
|
+
* consumers see `C:\Users\<u>\project\.claude\rules\` verbatim rather than the
|
|
19
|
+
* POSIX form. The detection logic itself (readdirSync on `node:fs`) is
|
|
20
|
+
* platform-neutral.
|
|
21
|
+
*
|
|
22
|
+
* Once-per-session dedup (AC7): `peaks workspace init` writes a marker at
|
|
23
|
+
* `.peaks/_runtime/<sessionId>/.standards-checked` after the first detection
|
|
24
|
+
* pass. `detectMissingProjectStandards` does NOT consult the marker — that's
|
|
25
|
+
* the caller's responsibility (the CLI command decides whether to skip per
|
|
26
|
+
* AC7's "once per session" contract).
|
|
27
|
+
*/
|
|
28
|
+
import type { StandardsLanguage } from './project-standards-service.js';
|
|
29
|
+
export type MissingProjectStandardsDiagnostic = {
|
|
30
|
+
readonly missing: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Absolute path to the rules root (`<projectRoot>/.claude/rules`). Rendered
|
|
33
|
+
* with the platform-native separator so Windows consumers see
|
|
34
|
+
* `C:\...\.claude\rules` verbatim.
|
|
35
|
+
*/
|
|
36
|
+
readonly path: string;
|
|
37
|
+
/**
|
|
38
|
+
* Copy-pasteable remediation hint for the operator. Always present, even
|
|
39
|
+
* when `missing: false`, so downstream callers can show "if you ever need
|
|
40
|
+
* to re-scaffold: ..." as a nextAction without re-running the detector.
|
|
41
|
+
*/
|
|
42
|
+
readonly remediation: string;
|
|
43
|
+
readonly language: StandardsLanguage;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Detect whether a consumer project's `.claude/rules/` tree is missing or
|
|
47
|
+
* empty.
|
|
48
|
+
*
|
|
49
|
+
* Rules (per PRD R2):
|
|
50
|
+
* - `.claude/rules/common/` MUST exist AND contain at least one `.md` file.
|
|
51
|
+
* - `.claude/rules/<language>/` MUST exist AND contain at least one `.md`
|
|
52
|
+
* file — except for `generic`, where the language dir is OPTIONAL.
|
|
53
|
+
*
|
|
54
|
+
* Returns `{ missing: true, ... }` when either required dir is absent or
|
|
55
|
+
* empty. The diagnostic is always populated so the caller can surface the
|
|
56
|
+
* remediation hint unconditionally (the CLI uses the same string for both
|
|
57
|
+
* the stderr banner and the JSON envelope warning).
|
|
58
|
+
*/
|
|
59
|
+
export declare function detectMissingProjectStandards(projectRoot: string, language: StandardsLanguage): MissingProjectStandardsDiagnostic;
|
|
60
|
+
/**
|
|
61
|
+
* Once-per-session marker file path. The CLI writes this file under
|
|
62
|
+
* `.peaks/_runtime/<sessionId>/` after the first diagnostic pass so that
|
|
63
|
+
* subsequent `peaks workspace init` invocations within the same session
|
|
64
|
+
* skip the stderr banner (the diagnostic is still computable for
|
|
65
|
+
* programmatic consumers via `detectMissingProjectStandards`).
|
|
66
|
+
*/
|
|
67
|
+
export declare function getStandardsCheckedMarkerPath(projectRoot: string, sessionId: string): string;
|
|
68
|
+
/**
|
|
69
|
+
* Mark this session as "standards checked" so subsequent invocations can
|
|
70
|
+
* skip the stderr diagnostic. Idempotent: existing marker is left as-is.
|
|
71
|
+
* Returns true if the marker was newly created, false if it already existed.
|
|
72
|
+
*/
|
|
73
|
+
export declare function markStandardsChecked(projectRoot: string, sessionId: string): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Test seam: check whether the once-per-session marker exists. Caller is
|
|
76
|
+
* responsible for routing the result into the AC7 dedup logic.
|
|
77
|
+
*/
|
|
78
|
+
export declare function hasStandardsCheckedMarker(projectRoot: string, sessionId: string): boolean;
|
|
79
|
+
export declare const platformPathSeparator: "\\" | "/";
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slice 2026-06-16-peaks-solo-auto-scaffold (RD#7) — missing-standards-detector.
|
|
3
|
+
*
|
|
4
|
+
* Read-side companion to the `peaks standards init` / `peaks standards update`
|
|
5
|
+
* writers in `./project-standards-service.ts`. The writer KNOWS how to scaffold
|
|
6
|
+
* `.claude/rules/{common,<language>}/` from the curated baseline; this module
|
|
7
|
+
* detects when the consumer project's rules tree is missing or empty and emits
|
|
8
|
+
* a copy-pasteable diagnostic for the operator.
|
|
9
|
+
*
|
|
10
|
+
* Why a separate read module: the writer is `apply`-gated and write-bounded
|
|
11
|
+
* (it touches the filesystem via `prevalidateWrites`/`assertNotHomedirBaseline`).
|
|
12
|
+
* The detector is read-only and platform-aware (win32 path separators for
|
|
13
|
+
* Windows consumers) — coupling the two would force the writer to grow a
|
|
14
|
+
* read-only flag and a platform-switching argument.
|
|
15
|
+
*
|
|
16
|
+
* Cross-platform path rendering (AC6): the detector switches on
|
|
17
|
+
* `process.platform` and renders the project path with `path.sep` so Windows
|
|
18
|
+
* consumers see `C:\Users\<u>\project\.claude\rules\` verbatim rather than the
|
|
19
|
+
* POSIX form. The detection logic itself (readdirSync on `node:fs`) is
|
|
20
|
+
* platform-neutral.
|
|
21
|
+
*
|
|
22
|
+
* Once-per-session dedup (AC7): `peaks workspace init` writes a marker at
|
|
23
|
+
* `.peaks/_runtime/<sessionId>/.standards-checked` after the first detection
|
|
24
|
+
* pass. `detectMissingProjectStandards` does NOT consult the marker — that's
|
|
25
|
+
* the caller's responsibility (the CLI command decides whether to skip per
|
|
26
|
+
* AC7's "once per session" contract).
|
|
27
|
+
*/
|
|
28
|
+
import { existsSync, mkdirSync, readdirSync, statSync, writeFileSync } from 'node:fs';
|
|
29
|
+
import { isAbsolute, join, sep as pathSep } from 'node:path';
|
|
30
|
+
const SUPPORTED_LANGUAGES = new Set([
|
|
31
|
+
'generic',
|
|
32
|
+
'typescript',
|
|
33
|
+
'javascript',
|
|
34
|
+
'python',
|
|
35
|
+
'go',
|
|
36
|
+
'rust'
|
|
37
|
+
]);
|
|
38
|
+
function normalizeProjectRoot(projectRoot) {
|
|
39
|
+
return isAbsolute(projectRoot) ? projectRoot : join(process.cwd(), projectRoot);
|
|
40
|
+
}
|
|
41
|
+
function renderForPlatform(projectRoot) {
|
|
42
|
+
// AC6: render with the platform-native separator. On win32 we replace '/'
|
|
43
|
+
// with '\\' in the project path; the rest of the path is constructed with
|
|
44
|
+
// the same separator via the literal '\\' join below.
|
|
45
|
+
if (process.platform === 'win32') {
|
|
46
|
+
const nativeRoot = projectRoot.replace(/\//g, '\\');
|
|
47
|
+
return `${nativeRoot}\\.claude\\rules`;
|
|
48
|
+
}
|
|
49
|
+
return `${projectRoot}/.claude/rules`;
|
|
50
|
+
}
|
|
51
|
+
function hasPopulatedMarkdown(dir) {
|
|
52
|
+
if (!existsSync(dir))
|
|
53
|
+
return false;
|
|
54
|
+
const stat = statSync(dir);
|
|
55
|
+
if (!stat.isDirectory())
|
|
56
|
+
return false;
|
|
57
|
+
const entries = readdirSync(dir);
|
|
58
|
+
return entries.some((entry) => entry.toLowerCase().endsWith('.md'));
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Detect whether a consumer project's `.claude/rules/` tree is missing or
|
|
62
|
+
* empty.
|
|
63
|
+
*
|
|
64
|
+
* Rules (per PRD R2):
|
|
65
|
+
* - `.claude/rules/common/` MUST exist AND contain at least one `.md` file.
|
|
66
|
+
* - `.claude/rules/<language>/` MUST exist AND contain at least one `.md`
|
|
67
|
+
* file — except for `generic`, where the language dir is OPTIONAL.
|
|
68
|
+
*
|
|
69
|
+
* Returns `{ missing: true, ... }` when either required dir is absent or
|
|
70
|
+
* empty. The diagnostic is always populated so the caller can surface the
|
|
71
|
+
* remediation hint unconditionally (the CLI uses the same string for both
|
|
72
|
+
* the stderr banner and the JSON envelope warning).
|
|
73
|
+
*/
|
|
74
|
+
export function detectMissingProjectStandards(projectRoot, language) {
|
|
75
|
+
if (!SUPPORTED_LANGUAGES.has(language)) {
|
|
76
|
+
throw new Error(`Unsupported standards language: ${String(language)}`);
|
|
77
|
+
}
|
|
78
|
+
const normalizedRoot = normalizeProjectRoot(projectRoot);
|
|
79
|
+
const renderedPath = renderForPlatform(normalizedRoot);
|
|
80
|
+
const commonDir = join(normalizedRoot, '.claude', 'rules', 'common');
|
|
81
|
+
const languageDir = language === 'generic'
|
|
82
|
+
? null
|
|
83
|
+
: join(normalizedRoot, '.claude', 'rules', language);
|
|
84
|
+
const commonOk = hasPopulatedMarkdown(commonDir);
|
|
85
|
+
const languageOk = languageDir === null ? true : hasPopulatedMarkdown(languageDir);
|
|
86
|
+
const missing = !(commonOk && languageOk);
|
|
87
|
+
// Remediation message: copy-pasteable, mentions language, references the
|
|
88
|
+
// resolved project path, and hints at the `--init-standards` opt-in flag.
|
|
89
|
+
const remediation = missing
|
|
90
|
+
? `⚠ no project-local standards found at ${renderedPath} — run \`peaks standards init --project ${normalizedRoot} --apply\` to scaffold, or pass --init-standards to peaks workspace init for one-shot auto-apply (language: ${language}).`
|
|
91
|
+
: `Project-local standards already present at ${renderedPath}. Re-run \`peaks standards init --project ${normalizedRoot} --apply\` to refresh from the curated baseline.`;
|
|
92
|
+
return {
|
|
93
|
+
missing,
|
|
94
|
+
path: renderedPath,
|
|
95
|
+
remediation,
|
|
96
|
+
language
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Once-per-session marker file path. The CLI writes this file under
|
|
101
|
+
* `.peaks/_runtime/<sessionId>/` after the first diagnostic pass so that
|
|
102
|
+
* subsequent `peaks workspace init` invocations within the same session
|
|
103
|
+
* skip the stderr banner (the diagnostic is still computable for
|
|
104
|
+
* programmatic consumers via `detectMissingProjectStandards`).
|
|
105
|
+
*/
|
|
106
|
+
export function getStandardsCheckedMarkerPath(projectRoot, sessionId) {
|
|
107
|
+
const normalizedRoot = normalizeProjectRoot(projectRoot);
|
|
108
|
+
// Canonical session runtime dir — see `.peaks/memory/session-dir-canonical-resolver-must-route-all-writes.md`.
|
|
109
|
+
return join(normalizedRoot, '.peaks', '_runtime', sessionId, '.standards-checked');
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Mark this session as "standards checked" so subsequent invocations can
|
|
113
|
+
* skip the stderr diagnostic. Idempotent: existing marker is left as-is.
|
|
114
|
+
* Returns true if the marker was newly created, false if it already existed.
|
|
115
|
+
*/
|
|
116
|
+
export function markStandardsChecked(projectRoot, sessionId) {
|
|
117
|
+
const markerPath = getStandardsCheckedMarkerPath(projectRoot, sessionId);
|
|
118
|
+
if (existsSync(markerPath))
|
|
119
|
+
return false;
|
|
120
|
+
mkdirSync(join(markerPath, '..'), { recursive: true });
|
|
121
|
+
writeFileSync(markerPath, 'standards-checked\n', 'utf8');
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Test seam: check whether the once-per-session marker exists. Caller is
|
|
126
|
+
* responsible for routing the result into the AC7 dedup logic.
|
|
127
|
+
*/
|
|
128
|
+
export function hasStandardsCheckedMarker(projectRoot, sessionId) {
|
|
129
|
+
return existsSync(getStandardsCheckedMarkerPath(projectRoot, sessionId));
|
|
130
|
+
}
|
|
131
|
+
// Re-export path.sep for tests that want to assert the platform invariant.
|
|
132
|
+
export const platformPathSeparator = pathSep;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export type BuildTool = 'umi' | 'next' | 'vite' | 'rsbuild' | 'rspack' | 'farm' | 'craco' | 'webpack' | 'gulp' | 'angular' | 'custom' | 'unknown';
|
|
2
|
+
export type ComponentLibrary = {
|
|
3
|
+
readonly name: 'antd' | 'antd-pro' | 'mui' | 'element-plus' | 'element-ui' | 'arco' | 'tdesign' | 'semi' | 'nextui' | 'chakra' | 'vant' | 'none';
|
|
4
|
+
readonly majorVersion?: string;
|
|
5
|
+
readonly hasProSuite?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export type CssFramework = 'less' | 'sass' | 'tailwind' | 'css-modules' | 'styled-components' | 'emotion' | 'plain-css' | 'unknown';
|
|
8
|
+
export type ProjectContext = {
|
|
9
|
+
readonly hasPackageJson: boolean;
|
|
10
|
+
readonly buildTool: BuildTool;
|
|
11
|
+
readonly buildConfigPath?: string;
|
|
12
|
+
readonly componentLibrary: ComponentLibrary;
|
|
13
|
+
readonly cssFrameworks: CssFramework[];
|
|
14
|
+
readonly cssConflicts: string[];
|
|
15
|
+
readonly stateManagement: string[];
|
|
16
|
+
readonly routing: string[];
|
|
17
|
+
readonly dataFetching: string[];
|
|
18
|
+
readonly legacySignals: string[];
|
|
19
|
+
readonly notableDeps: string[];
|
|
20
|
+
};
|
|
21
|
+
export declare function detectProjectContext(projectRoot: string): ProjectContext;
|
|
22
|
+
export declare function buildToolLabel(tool: BuildTool): string;
|
|
23
|
+
export declare function componentLibraryLabel(lib: ComponentLibrary): string;
|
|
24
|
+
export declare function cssFrameworkLabel(framework: CssFramework): string;
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
function readPackageJson(projectRoot) {
|
|
4
|
+
const pkgPath = join(projectRoot, 'package.json');
|
|
5
|
+
if (!existsSync(pkgPath))
|
|
6
|
+
return { exists: false, deps: {} };
|
|
7
|
+
try {
|
|
8
|
+
const raw = readFileSync(pkgPath, 'utf8');
|
|
9
|
+
const parsed = JSON.parse(raw);
|
|
10
|
+
return {
|
|
11
|
+
exists: true,
|
|
12
|
+
deps: {
|
|
13
|
+
...(parsed.dependencies ?? {}),
|
|
14
|
+
...(parsed.devDependencies ?? {}),
|
|
15
|
+
...(parsed.peerDependencies ?? {})
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return { exists: true, deps: {} };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function configExists(projectRoot, candidates) {
|
|
24
|
+
for (const candidate of candidates) {
|
|
25
|
+
if (existsSync(join(projectRoot, candidate)))
|
|
26
|
+
return candidate;
|
|
27
|
+
}
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
function detectBuildTool(projectRoot) {
|
|
31
|
+
const map = [
|
|
32
|
+
['umi', ['.umirc.ts', '.umirc.js', 'config/config.ts', 'config/config.js']],
|
|
33
|
+
['next', ['next.config.js', 'next.config.ts', 'next.config.mjs']],
|
|
34
|
+
['vite', ['vite.config.ts', 'vite.config.js', 'vite.config.mjs']],
|
|
35
|
+
['rsbuild', ['rsbuild.config.ts', 'rsbuild.config.js']],
|
|
36
|
+
['rspack', ['rspack.config.ts', 'rspack.config.js']],
|
|
37
|
+
['farm', ['farm.config.ts', 'farm.config.js']],
|
|
38
|
+
['craco', ['craco.config.js', 'craco.config.ts']],
|
|
39
|
+
['webpack', ['webpack.config.js', 'webpack.config.ts']],
|
|
40
|
+
['gulp', ['gulpfile.js', 'gulpfile.ts']],
|
|
41
|
+
['angular', ['angular.json']]
|
|
42
|
+
];
|
|
43
|
+
for (const [tool, candidates] of map) {
|
|
44
|
+
const found = configExists(projectRoot, candidates);
|
|
45
|
+
if (found !== undefined)
|
|
46
|
+
return { tool, path: found };
|
|
47
|
+
}
|
|
48
|
+
return { tool: 'unknown' };
|
|
49
|
+
}
|
|
50
|
+
function majorOf(version) {
|
|
51
|
+
if (version === undefined)
|
|
52
|
+
return undefined;
|
|
53
|
+
const cleaned = version.replace(/^[\^~>=<]+/, '').trim();
|
|
54
|
+
const major = cleaned.split('.')[0];
|
|
55
|
+
return major !== undefined && /^\d+$/.test(major) ? major : undefined;
|
|
56
|
+
}
|
|
57
|
+
function detectComponentLibrary(deps) {
|
|
58
|
+
if ('antd' in deps) {
|
|
59
|
+
const major = majorOf(deps['antd']);
|
|
60
|
+
const hasProSuite = '@ant-design/pro-components' in deps || Object.keys(deps).some((d) => d.startsWith('@ant-design/pro-'));
|
|
61
|
+
return hasProSuite
|
|
62
|
+
? { name: 'antd-pro', ...(major !== undefined ? { majorVersion: major } : {}), hasProSuite: true }
|
|
63
|
+
: { name: 'antd', ...(major !== undefined ? { majorVersion: major } : {}) };
|
|
64
|
+
}
|
|
65
|
+
if ('@mui/material' in deps)
|
|
66
|
+
return { name: 'mui', ...(majorOf(deps['@mui/material']) !== undefined ? { majorVersion: majorOf(deps['@mui/material']) } : {}) };
|
|
67
|
+
if ('element-plus' in deps)
|
|
68
|
+
return { name: 'element-plus' };
|
|
69
|
+
if ('element-ui' in deps)
|
|
70
|
+
return { name: 'element-ui' };
|
|
71
|
+
if ('@arco-design/web-react' in deps)
|
|
72
|
+
return { name: 'arco' };
|
|
73
|
+
if ('tdesign-react' in deps || 'tdesign-vue-next' in deps)
|
|
74
|
+
return { name: 'tdesign' };
|
|
75
|
+
if ('@douyinfe/semi-ui' in deps)
|
|
76
|
+
return { name: 'semi' };
|
|
77
|
+
if ('@nextui-org/react' in deps)
|
|
78
|
+
return { name: 'nextui' };
|
|
79
|
+
if ('@chakra-ui/react' in deps)
|
|
80
|
+
return { name: 'chakra' };
|
|
81
|
+
if ('vant' in deps)
|
|
82
|
+
return { name: 'vant' };
|
|
83
|
+
return { name: 'none' };
|
|
84
|
+
}
|
|
85
|
+
function detectCssFrameworks(projectRoot, deps) {
|
|
86
|
+
const frameworks = [];
|
|
87
|
+
if ('tailwindcss' in deps || existsSync(join(projectRoot, 'tailwind.config.js')) || existsSync(join(projectRoot, 'tailwind.config.ts'))) {
|
|
88
|
+
frameworks.push('tailwind');
|
|
89
|
+
}
|
|
90
|
+
if ('less' in deps || 'less-loader' in deps)
|
|
91
|
+
frameworks.push('less');
|
|
92
|
+
if ('sass' in deps || 'node-sass' in deps || 'sass-loader' in deps)
|
|
93
|
+
frameworks.push('sass');
|
|
94
|
+
if ('styled-components' in deps)
|
|
95
|
+
frameworks.push('styled-components');
|
|
96
|
+
if ('@emotion/react' in deps || '@emotion/styled' in deps)
|
|
97
|
+
frameworks.push('emotion');
|
|
98
|
+
// css-modules detection is heuristic (Umi/Next default); skip unless we see *.module.* in src
|
|
99
|
+
return frameworks;
|
|
100
|
+
}
|
|
101
|
+
function detectCssConflicts(library, frameworks) {
|
|
102
|
+
const conflicts = [];
|
|
103
|
+
const hasTailwind = frameworks.includes('tailwind');
|
|
104
|
+
if (hasTailwind && (library.name === 'antd' || library.name === 'antd-pro')) {
|
|
105
|
+
conflicts.push("Tailwind preflight reset can break antd component base styles; set `corePlugins.preflight: false` in tailwind.config or scope Tailwind via `important: '#root'`.");
|
|
106
|
+
}
|
|
107
|
+
if (hasTailwind && library.name === 'mui') {
|
|
108
|
+
conflicts.push('Tailwind preflight overrides MUI base styles; disable Tailwind preflight or scope it away from MUI roots.');
|
|
109
|
+
}
|
|
110
|
+
const cssInJsCount = [frameworks.includes('styled-components'), frameworks.includes('emotion')].filter(Boolean).length;
|
|
111
|
+
if (cssInJsCount >= 2) {
|
|
112
|
+
conflicts.push('Multiple CSS-in-JS libraries detected (styled-components + emotion); pick one and remove the other.');
|
|
113
|
+
}
|
|
114
|
+
return conflicts;
|
|
115
|
+
}
|
|
116
|
+
function detectStateManagement(deps) {
|
|
117
|
+
const map = [
|
|
118
|
+
['zustand', 'zustand'],
|
|
119
|
+
['jotai', 'jotai'],
|
|
120
|
+
['@reduxjs/toolkit', 'Redux Toolkit'],
|
|
121
|
+
['redux', 'redux'],
|
|
122
|
+
['valtio', 'valtio'],
|
|
123
|
+
['mobx', 'mobx'],
|
|
124
|
+
['hox', 'hox']
|
|
125
|
+
];
|
|
126
|
+
return map.filter(([dep]) => dep in deps).map(([, label]) => label);
|
|
127
|
+
}
|
|
128
|
+
function detectRouting(deps) {
|
|
129
|
+
const out = [];
|
|
130
|
+
if ('react-router-dom' in deps)
|
|
131
|
+
out.push('react-router-dom');
|
|
132
|
+
if ('@umijs/max' in deps || '@umijs/preset-react' in deps)
|
|
133
|
+
out.push('Umi router');
|
|
134
|
+
if ('next' in deps)
|
|
135
|
+
out.push('Next.js file-based');
|
|
136
|
+
if ('vue-router' in deps)
|
|
137
|
+
out.push('vue-router');
|
|
138
|
+
return out;
|
|
139
|
+
}
|
|
140
|
+
function detectDataFetching(deps) {
|
|
141
|
+
const out = [];
|
|
142
|
+
if ('@tanstack/react-query' in deps)
|
|
143
|
+
out.push('@tanstack/react-query');
|
|
144
|
+
if ('swr' in deps)
|
|
145
|
+
out.push('swr');
|
|
146
|
+
if ('ahooks' in deps)
|
|
147
|
+
out.push('ahooks (useRequest)');
|
|
148
|
+
if ('umi-request' in deps)
|
|
149
|
+
out.push('umi-request');
|
|
150
|
+
if ('axios' in deps)
|
|
151
|
+
out.push('axios');
|
|
152
|
+
return out;
|
|
153
|
+
}
|
|
154
|
+
function detectLegacySignals(projectRoot, deps) {
|
|
155
|
+
const signals = [];
|
|
156
|
+
if ('moment' in deps)
|
|
157
|
+
signals.push('`moment` in deps — prefer `dayjs` or `date-fns` for new code');
|
|
158
|
+
if (Object.keys(deps).some((d) => d.startsWith('enzyme')))
|
|
159
|
+
signals.push('Enzyme test suite — write new tests with React Testing Library');
|
|
160
|
+
if ('redux-saga' in deps)
|
|
161
|
+
signals.push('redux-saga — keep saga patterns for existing flows; use Redux Toolkit thunks/RTK Query for new code');
|
|
162
|
+
if ('redux-thunk' in deps && !('@reduxjs/toolkit' in deps))
|
|
163
|
+
signals.push('Plain redux-thunk — prefer Redux Toolkit createAsyncThunk for new code');
|
|
164
|
+
if ('jquery' in deps)
|
|
165
|
+
signals.push('jQuery — do not add new jQuery usage');
|
|
166
|
+
if ('backbone' in deps)
|
|
167
|
+
signals.push('Backbone — legacy; do not add new Backbone code');
|
|
168
|
+
if (deps['vue']?.startsWith('2') === true)
|
|
169
|
+
signals.push('Vue 2 — preserve Options API for existing components');
|
|
170
|
+
// Lightweight heuristic for class components and inline styles in src/
|
|
171
|
+
const srcRoot = join(projectRoot, 'src');
|
|
172
|
+
if (existsSync(srcRoot)) {
|
|
173
|
+
const sample = sampleSourceFiles(srcRoot, 80);
|
|
174
|
+
let classComponentHits = 0;
|
|
175
|
+
let inlineStyleHits = 0;
|
|
176
|
+
for (const filePath of sample) {
|
|
177
|
+
try {
|
|
178
|
+
const content = readFileSync(filePath, 'utf8');
|
|
179
|
+
if (/extends\s+(?:React\.)?Component\b/.test(content))
|
|
180
|
+
classComponentHits += 1;
|
|
181
|
+
const matches = content.match(/style=\{\{/g);
|
|
182
|
+
if (matches !== null)
|
|
183
|
+
inlineStyleHits += matches.length;
|
|
184
|
+
}
|
|
185
|
+
catch { // TODO(g2): legacy silent catch — grace: 1 minor release (v2.14.0)
|
|
186
|
+
// ignore unreadable files
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
if (classComponentHits >= 1)
|
|
190
|
+
signals.push(`React class components detected (${classComponentHits}+ files) — keep class style for existing modules, use function components + hooks for new code`);
|
|
191
|
+
if (inlineStyleHits >= 50)
|
|
192
|
+
signals.push(`Inline styles dominant (${inlineStyleHits}+ occurrences) — match existing styling for new code in same modules`);
|
|
193
|
+
}
|
|
194
|
+
return signals;
|
|
195
|
+
}
|
|
196
|
+
function sampleSourceFiles(root, limit) {
|
|
197
|
+
const out = [];
|
|
198
|
+
const queue = [root];
|
|
199
|
+
while (queue.length > 0 && out.length < limit) {
|
|
200
|
+
const dir = queue.shift();
|
|
201
|
+
let entries;
|
|
202
|
+
try {
|
|
203
|
+
entries = readdirSync(dir);
|
|
204
|
+
}
|
|
205
|
+
catch {
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
for (const entry of entries) {
|
|
209
|
+
if (entry.startsWith('.') || entry === 'node_modules' || entry === 'dist' || entry === 'build')
|
|
210
|
+
continue;
|
|
211
|
+
const full = join(dir, entry);
|
|
212
|
+
let s;
|
|
213
|
+
try {
|
|
214
|
+
s = statSync(full);
|
|
215
|
+
}
|
|
216
|
+
catch {
|
|
217
|
+
continue;
|
|
218
|
+
}
|
|
219
|
+
if (s.isDirectory()) {
|
|
220
|
+
queue.push(full);
|
|
221
|
+
}
|
|
222
|
+
else if (/\.(tsx|jsx)$/.test(entry)) {
|
|
223
|
+
out.push(full);
|
|
224
|
+
if (out.length >= limit)
|
|
225
|
+
break;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return out;
|
|
230
|
+
}
|
|
231
|
+
function notableDepsList(deps) {
|
|
232
|
+
const interesting = ['monaco-editor', '@monaco-editor/react', 'react-querybuilder', '@dnd-kit/core', 'react-dnd', 'echarts', 'recharts', '@ant-design/charts', 'antd-style', 'lodash', 'lodash-es', 'rxjs', 'socket.io-client'];
|
|
233
|
+
return interesting.filter((d) => d in deps);
|
|
234
|
+
}
|
|
235
|
+
export function detectProjectContext(projectRoot) {
|
|
236
|
+
const { exists, deps } = readPackageJson(projectRoot);
|
|
237
|
+
const { tool, path } = detectBuildTool(projectRoot);
|
|
238
|
+
const componentLibrary = detectComponentLibrary(deps);
|
|
239
|
+
const cssFrameworks = detectCssFrameworks(projectRoot, deps);
|
|
240
|
+
return {
|
|
241
|
+
hasPackageJson: exists,
|
|
242
|
+
buildTool: tool,
|
|
243
|
+
...(path !== undefined ? { buildConfigPath: path } : {}),
|
|
244
|
+
componentLibrary,
|
|
245
|
+
cssFrameworks,
|
|
246
|
+
cssConflicts: detectCssConflicts(componentLibrary, cssFrameworks),
|
|
247
|
+
stateManagement: detectStateManagement(deps),
|
|
248
|
+
routing: detectRouting(deps),
|
|
249
|
+
dataFetching: detectDataFetching(deps),
|
|
250
|
+
legacySignals: detectLegacySignals(projectRoot, deps),
|
|
251
|
+
notableDeps: notableDepsList(deps)
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
export function buildToolLabel(tool) {
|
|
255
|
+
const labels = {
|
|
256
|
+
umi: 'Umi',
|
|
257
|
+
next: 'Next.js',
|
|
258
|
+
vite: 'Vite',
|
|
259
|
+
rsbuild: 'Rsbuild',
|
|
260
|
+
rspack: 'Rspack',
|
|
261
|
+
farm: 'Farm',
|
|
262
|
+
craco: 'CRA + craco',
|
|
263
|
+
webpack: 'Webpack',
|
|
264
|
+
gulp: 'Gulp (legacy)',
|
|
265
|
+
angular: 'Angular',
|
|
266
|
+
custom: 'Custom build pipeline',
|
|
267
|
+
unknown: 'unknown'
|
|
268
|
+
};
|
|
269
|
+
return labels[tool];
|
|
270
|
+
}
|
|
271
|
+
export function componentLibraryLabel(lib) {
|
|
272
|
+
const base = (() => {
|
|
273
|
+
switch (lib.name) {
|
|
274
|
+
case 'antd':
|
|
275
|
+
return 'Ant Design';
|
|
276
|
+
case 'antd-pro':
|
|
277
|
+
return 'Ant Design + Ant Design Pro';
|
|
278
|
+
case 'mui':
|
|
279
|
+
return 'Material UI';
|
|
280
|
+
case 'element-plus':
|
|
281
|
+
return 'Element Plus';
|
|
282
|
+
case 'element-ui':
|
|
283
|
+
return 'Element UI';
|
|
284
|
+
case 'arco':
|
|
285
|
+
return 'Arco Design';
|
|
286
|
+
case 'tdesign':
|
|
287
|
+
return 'TDesign';
|
|
288
|
+
case 'semi':
|
|
289
|
+
return 'Semi Design';
|
|
290
|
+
case 'nextui':
|
|
291
|
+
return 'NextUI';
|
|
292
|
+
case 'chakra':
|
|
293
|
+
return 'Chakra UI';
|
|
294
|
+
case 'vant':
|
|
295
|
+
return 'Vant (mobile)';
|
|
296
|
+
case 'none':
|
|
297
|
+
return 'no component library detected';
|
|
298
|
+
}
|
|
299
|
+
})();
|
|
300
|
+
return lib.majorVersion !== undefined ? `${base} v${lib.majorVersion}` : base;
|
|
301
|
+
}
|
|
302
|
+
export function cssFrameworkLabel(framework) {
|
|
303
|
+
const labels = {
|
|
304
|
+
less: 'Less',
|
|
305
|
+
sass: 'Sass/SCSS',
|
|
306
|
+
tailwind: 'TailwindCSS',
|
|
307
|
+
'css-modules': 'CSS Modules',
|
|
308
|
+
'styled-components': 'styled-components',
|
|
309
|
+
emotion: 'Emotion',
|
|
310
|
+
'plain-css': 'plain CSS',
|
|
311
|
+
unknown: 'unknown'
|
|
312
|
+
};
|
|
313
|
+
return labels[framework];
|
|
314
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed error raised when a planned `peaks standards` write target would
|
|
3
|
+
* land outside `projectRoot` (or collide with the user-level baseline
|
|
4
|
+
* under `<homedir>/.claude/**`). Surfaced as a stable error code so CLI
|
|
5
|
+
* callers can map it to a recoverable hint.
|
|
6
|
+
*/
|
|
7
|
+
export type ProjectStandardsWriteTargetReason = 'outside-project-root' | 'resolves-to-homedir-claude';
|
|
8
|
+
export declare class ProjectStandardsWriteTargetError extends Error {
|
|
9
|
+
readonly code: "PROJECT_STANDARDS_WRITE_TARGET_OUTSIDE_ROOT";
|
|
10
|
+
readonly filePath: string;
|
|
11
|
+
readonly projectRoot: string;
|
|
12
|
+
readonly reason: ProjectStandardsWriteTargetReason;
|
|
13
|
+
constructor(input: {
|
|
14
|
+
readonly filePath: string;
|
|
15
|
+
readonly projectRoot: string;
|
|
16
|
+
readonly reason: ProjectStandardsWriteTargetReason;
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
export type StandardsLanguage = 'generic' | 'typescript' | 'javascript' | 'python' | 'go' | 'rust';
|
|
20
|
+
export type StandardsWriteStatus = 'planned' | 'existing' | 'written' | 'appended' | 'review';
|
|
21
|
+
export type StandardsWrite = {
|
|
22
|
+
readonly relativePath: string;
|
|
23
|
+
readonly filePath: string;
|
|
24
|
+
readonly content: string;
|
|
25
|
+
readonly status: StandardsWriteStatus;
|
|
26
|
+
};
|
|
27
|
+
export type ProjectStandardsSource = {
|
|
28
|
+
readonly sourceId: 'everything-claude-code';
|
|
29
|
+
readonly url: 'https://github.com/affaan-m/everything-claude-code';
|
|
30
|
+
readonly usage: 'curated-baseline-reference';
|
|
31
|
+
};
|
|
32
|
+
export type StandardsSkillPreflight = {
|
|
33
|
+
readonly appliesTo: readonly ['peaks-rd', 'peaks-qa', 'peaks-solo'];
|
|
34
|
+
readonly summary: string;
|
|
35
|
+
};
|
|
36
|
+
export type ProjectStandardsInitPlan = {
|
|
37
|
+
readonly apply: boolean;
|
|
38
|
+
readonly projectRoot: string;
|
|
39
|
+
readonly language: StandardsLanguage;
|
|
40
|
+
readonly source: ProjectStandardsSource;
|
|
41
|
+
readonly skillPreflight: StandardsSkillPreflight;
|
|
42
|
+
readonly plannedWrites: StandardsWrite[];
|
|
43
|
+
};
|
|
44
|
+
export type ProjectStandardsInitResult = ProjectStandardsInitPlan & {
|
|
45
|
+
readonly writtenFiles: string[];
|
|
46
|
+
};
|
|
47
|
+
export type ProjectStandardsInitSummary = {
|
|
48
|
+
readonly apply: boolean;
|
|
49
|
+
readonly projectRoot: string;
|
|
50
|
+
readonly language: StandardsLanguage;
|
|
51
|
+
readonly source: ProjectStandardsSource;
|
|
52
|
+
readonly skillPreflight: StandardsSkillPreflight;
|
|
53
|
+
readonly plannedWrites: Array<Pick<StandardsWrite, 'relativePath' | 'status'>>;
|
|
54
|
+
readonly writtenFiles: string[];
|
|
55
|
+
readonly skippedFiles: string[];
|
|
56
|
+
};
|
|
57
|
+
export type ProjectStandardsUpdatePlan = ProjectStandardsInitPlan & {
|
|
58
|
+
readonly claudeMd: {
|
|
59
|
+
readonly relativePath: 'CLAUDE.md';
|
|
60
|
+
readonly filePath: string;
|
|
61
|
+
readonly status: StandardsWriteStatus;
|
|
62
|
+
readonly content: string;
|
|
63
|
+
readonly appendBlock: string;
|
|
64
|
+
readonly reviewSuggestions: string[];
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
export type ProjectStandardsUpdateResult = ProjectStandardsUpdatePlan & {
|
|
68
|
+
readonly writtenFiles: string[];
|
|
69
|
+
readonly appendedFiles: string[];
|
|
70
|
+
readonly reviewSuggestions: string[];
|
|
71
|
+
};
|
|
72
|
+
export type ProjectStandardsUpdateSummary = {
|
|
73
|
+
readonly apply: boolean;
|
|
74
|
+
readonly projectRoot: string;
|
|
75
|
+
readonly language: StandardsLanguage;
|
|
76
|
+
readonly source: ProjectStandardsSource;
|
|
77
|
+
readonly skillPreflight: StandardsSkillPreflight;
|
|
78
|
+
readonly plannedWrites: Array<Pick<StandardsWrite, 'relativePath' | 'status'>>;
|
|
79
|
+
readonly writtenFiles: string[];
|
|
80
|
+
readonly appendedFiles: string[];
|
|
81
|
+
readonly skippedFiles: string[];
|
|
82
|
+
readonly reviewSuggestions: string[];
|
|
83
|
+
readonly claudeMd: {
|
|
84
|
+
readonly relativePath: 'CLAUDE.md';
|
|
85
|
+
readonly status: StandardsWriteStatus;
|
|
86
|
+
readonly reviewSuggestions: string[];
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
export type ProjectStandardsInitOptions = {
|
|
90
|
+
readonly projectRoot: string;
|
|
91
|
+
readonly language?: string;
|
|
92
|
+
readonly apply?: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Test seam: override the homedir resolver used by the
|
|
95
|
+
* write-target containment guard. Defaults to `os.homedir()`.
|
|
96
|
+
* Production callers should NOT pass this — it exists so unit
|
|
97
|
+
* tests can simulate the "projectRoot === homedir" trap without
|
|
98
|
+
* mutating global Node state (which is read-only).
|
|
99
|
+
*/
|
|
100
|
+
readonly resolveHomedir?: () => string;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Public alias for `detectLanguageInternal` so callers outside this
|
|
104
|
+
* module (e.g. `workspace-service.ts` for the slice 2026-06-16 RD#7
|
|
105
|
+
* auto-detect path) can ask the same heuristic without re-implementing
|
|
106
|
+
* the file-probe logic.
|
|
107
|
+
*/
|
|
108
|
+
export declare function detectLanguage(projectRoot: string): StandardsLanguage;
|
|
109
|
+
export declare function createProjectStandardsInitPlan(options: ProjectStandardsInitOptions): ProjectStandardsInitPlan;
|
|
110
|
+
export declare function createProjectStandardsUpdatePlan(options: ProjectStandardsInitOptions): ProjectStandardsUpdatePlan;
|
|
111
|
+
export declare function executeProjectStandardsInit(options: ProjectStandardsInitOptions): ProjectStandardsInitResult;
|
|
112
|
+
export declare function executeProjectStandardsUpdate(options: ProjectStandardsInitOptions): ProjectStandardsUpdateResult;
|
|
113
|
+
export declare function summarizeProjectStandardsInitResult(result: ProjectStandardsInitResult): ProjectStandardsInitSummary;
|
|
114
|
+
export declare function summarizeProjectStandardsUpdateResult(result: ProjectStandardsUpdateResult): ProjectStandardsUpdateSummary;
|