peaks-loop 4.0.0-beta.2 → 4.0.0-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +5 -0
- package/CHANGELOG.md +853 -128
- package/README-en.md +184 -56
- package/README.md +215 -46
- package/bin/peaks.js +1 -1
- package/dist/cli/cli-helpers.d.ts +38 -0
- package/dist/cli/cli-helpers.js +62 -0
- package/dist/cli/commands/_cli-error-envelope.d.ts +19 -0
- package/dist/cli/commands/_cli-error-envelope.js +50 -0
- package/dist/cli/commands/adapter-commands-s2a.d.ts +34 -0
- package/dist/cli/commands/adapter-commands-s2a.js +92 -0
- package/dist/cli/commands/asset-commands.d.ts +45 -0
- package/dist/cli/commands/asset-commands.js +421 -0
- package/dist/cli/commands/audit-commands.js +437 -0
- package/dist/cli/commands/bee-commands.d.ts +26 -0
- package/dist/cli/commands/bee-commands.js +169 -0
- package/dist/cli/commands/capability-commands.js +45 -0
- package/dist/cli/commands/capability-worker-config-sc-commands.js +8 -0
- package/dist/cli/commands/classify-classify-commands.js +151 -0
- package/dist/cli/commands/code-commands.js +798 -0
- package/dist/cli/commands/code-review-commands.js +83 -0
- package/dist/cli/commands/codegraph-commands.js +99 -0
- package/dist/cli/commands/compact-command.js +252 -0
- package/dist/cli/commands/complexity-commands.js +34 -0
- package/dist/cli/commands/config-commands.js +149 -0
- package/dist/cli/commands/context-commands.js +254 -0
- package/dist/cli/commands/contract-commands.js +114 -0
- package/dist/cli/commands/core/artifacts-command.js +62 -0
- package/dist/cli/commands/core/binding-commands.js +58 -0
- package/dist/cli/commands/core/doctor-command.js +264 -0
- package/dist/cli/commands/core/memory-command.js +98 -0
- package/dist/cli/commands/core/profile-command.js +9 -0
- package/dist/cli/commands/core/proxy-command.js +26 -0
- package/dist/cli/commands/core/session-command.js +241 -0
- package/dist/cli/commands/core/skill-command.js +303 -0
- package/dist/cli/commands/core/standards-command.js +95 -0
- package/dist/cli/commands/dispatch-commands.js +365 -0
- package/dist/cli/commands/dispatch-from-dag.js +251 -0
- package/dist/cli/commands/doc-commands.js +65 -0
- package/dist/cli/commands/ecc-commands.d.ts +30 -0
- package/dist/cli/commands/ecc-commands.js +119 -0
- package/dist/cli/commands/evolution-commands.d.ts +27 -0
- package/dist/cli/commands/evolution-commands.js +393 -0
- package/dist/cli/commands/feedback-commands.js +145 -0
- package/dist/cli/commands/final-review-commands.js +161 -0
- package/dist/cli/commands/fixture-commands.js +91 -0
- package/dist/cli/commands/fork-commands.js +163 -0
- package/dist/cli/commands/gate-commands.js +117 -0
- package/dist/cli/commands/heartbeat-commands.js +135 -0
- package/dist/cli/commands/hook-handle.js +157 -0
- package/dist/cli/commands/hooks-commands.js +156 -0
- package/dist/cli/commands/ide-commands.d.ts +25 -0
- package/dist/cli/commands/ide-commands.js +42 -0
- package/dist/cli/commands/impact-commands.js +62 -0
- package/dist/cli/commands/job-commands.js +289 -0
- package/dist/cli/commands/legacy-commands.js +32 -0
- package/dist/cli/commands/log-commands.js +64 -0
- package/dist/cli/commands/loop-commands.d.ts +27 -0
- package/dist/cli/commands/loop-commands.js +262 -0
- package/dist/cli/commands/loop-eval-commands.js +526 -0
- package/dist/cli/commands/memory-commands.js +129 -0
- package/dist/cli/commands/migrate-1-4-1-command.js +34 -0
- package/dist/cli/commands/migrate-v2-10-to-v2-11-command.js +52 -0
- package/dist/cli/commands/mut-commands.d.ts +20 -0
- package/dist/cli/commands/mut-commands.js +235 -0
- package/dist/cli/commands/observability-commands.js +201 -0
- package/dist/cli/commands/openspec-commands.js +237 -0
- package/dist/cli/commands/perf-audit-commands.js +132 -0
- package/dist/cli/commands/perf-commands.js +41 -0
- package/dist/cli/commands/polyrepo-commands.d.ts +37 -0
- package/dist/cli/commands/polyrepo-commands.js +155 -0
- package/dist/cli/commands/prd-blocks-commands.js +50 -0
- package/dist/cli/commands/prd-commands.js +143 -0
- package/dist/cli/commands/preferences-commands.js +217 -0
- package/dist/cli/commands/project-commands.js +253 -0
- package/dist/cli/commands/qa-business-review-commands.js +148 -0
- package/dist/cli/commands/qa-commands.d.ts +94 -0
- package/dist/cli/commands/qa-commands.js +271 -0
- package/dist/cli/commands/release-commands.js +231 -0
- package/dist/cli/commands/request-commands.js +548 -0
- package/dist/cli/commands/retrospective-commands.js +175 -0
- package/dist/cli/commands/reviewer-commands.js +64 -0
- package/dist/cli/commands/role-commands.js +85 -0
- package/dist/cli/commands/runtime-commands.d.ts +52 -0
- package/dist/cli/commands/runtime-commands.js +149 -0
- package/dist/cli/commands/sc-commands.js +47 -0
- package/dist/cli/commands/scan-commands.js +445 -0
- package/dist/cli/commands/security-audit-commands.js +132 -0
- package/dist/cli/commands/sediment-commands.js +658 -0
- package/dist/cli/commands/share-commands.d.ts +36 -0
- package/dist/cli/commands/share-commands.js +415 -0
- package/dist/cli/commands/skill-conformance-commands.js +39 -0
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.d.ts +67 -0
- package/dist/cli/commands/skill-loop-engineering-readiness-commands.js +173 -0
- package/dist/cli/commands/skill-search-commands.d.ts +25 -0
- package/dist/cli/commands/skill-search-commands.js +71 -0
- package/dist/cli/commands/slice-commands.js +492 -0
- package/dist/cli/commands/slice-integrate-commands.js +74 -0
- package/dist/cli/commands/slice-review-commands.js +162 -0
- package/dist/cli/commands/smoke-commands.js +203 -0
- package/dist/cli/commands/sop-commands.js +215 -0
- package/dist/cli/commands/statusline-commands.d.ts +15 -0
- package/dist/cli/commands/statusline-commands.js +193 -0
- package/dist/cli/commands/sub-agent-commands.js +20 -0
- package/dist/cli/commands/understand-commands.js +148 -0
- package/dist/cli/commands/upgrade-commands.js +119 -0
- package/dist/cli/commands/user-touchpoint-commands.js +78 -0
- package/dist/cli/commands/verdict-aggregate-command.js +106 -0
- package/dist/cli/commands/workflow-commands.js +544 -0
- package/dist/cli/commands/workflow-plan-commands.js +163 -0
- package/dist/cli/commands/workspace/init-command.d.ts +139 -0
- package/dist/cli/commands/workspace/init-command.js +505 -0
- package/dist/cli/commands/workspace/migrate-command.js +91 -0
- package/dist/cli/commands/workspace/reconcile-command.js +103 -0
- package/dist/cli/index.js +82 -0
- package/dist/cli/program.js +450 -0
- package/dist/services/adapter/adapter-registry.d.ts +48 -0
- package/dist/services/adapter/adapter-registry.js +186 -0
- package/dist/services/artifacts/artifact-prerequisites.js +491 -0
- package/dist/services/artifacts/request-artifact-service.js +451 -0
- package/dist/services/artifacts/workspace-service.js +272 -0
- package/dist/services/audit/static-service.d.ts +67 -0
- package/dist/services/audit/static-service.js +51 -0
- package/dist/services/code/auto-compact-orchestrator.js +346 -0
- package/dist/services/code-review/ocr-service.d.ts +129 -0
- package/dist/services/code-review/ocr-service.js +372 -0
- package/dist/services/config/config-service.d.ts +58 -0
- package/dist/services/config/config-service.js +745 -0
- package/dist/services/config/config-types.d.ts +117 -0
- package/dist/services/config/config-types.js +18 -0
- package/dist/services/config/model-routing.d.ts +66 -0
- package/dist/services/config/model-routing.js +105 -0
- package/dist/services/context/context-schema.d.ts +415 -0
- package/dist/services/dashboard/project-dashboard-service.js +147 -0
- package/dist/services/dispatch/batch-counter.js +102 -0
- package/dist/services/dispatch/dispatch-record-writer.js +460 -0
- package/dist/services/evolution/evolution-service.d.ts +137 -0
- package/dist/services/evolution/evolution-service.js +281 -0
- package/dist/services/evolution/evolution-store.d.ts +57 -0
- package/dist/services/evolution/evolution-store.js +232 -0
- package/dist/services/evolution/evolution-types.d.ts +706 -0
- package/dist/services/evolution/evolution-types.js +286 -0
- package/dist/services/evolution/independent-evaluator-runner.d.ts +90 -0
- package/dist/services/evolution/independent-evaluator-runner.js +106 -0
- package/dist/services/evolution/regression-skeptic-runner.d.ts +64 -0
- package/dist/services/evolution/regression-skeptic-runner.js +113 -0
- package/dist/services/ide/adapters/zcode-adapter.d.ts +40 -0
- package/dist/services/ide/adapters/zcode-adapter.js +220 -0
- package/dist/services/ide/current-model-detector.d.ts +14 -0
- package/dist/services/ide/current-model-detector.js +60 -0
- package/dist/services/ide/ide-registry.js +63 -0
- package/dist/services/ide/ide-types.d.ts +253 -0
- package/dist/services/job/job-progress-store.d.ts +60 -0
- package/dist/services/job/job-types.d.ts +444 -0
- package/dist/services/log/retention.d.ts +50 -0
- package/dist/services/log/retention.js +95 -0
- package/dist/services/loop/loop-bee-relation-service.d.ts +107 -0
- package/dist/services/loop/loop-bee-relation-service.js +211 -0
- package/dist/services/loop/loop-bee-relation-store.d.ts +53 -0
- package/dist/services/loop/loop-bee-relation-store.js +130 -0
- package/dist/services/loop/loop-bee-relation-types.d.ts +118 -0
- package/dist/services/loop/loop-bee-relation-types.js +114 -0
- package/dist/services/loop/loop-release-service.d.ts +46 -0
- package/dist/services/loop/loop-release-service.js +66 -0
- package/dist/services/loop/loop-release-store.d.ts +55 -0
- package/dist/services/loop/loop-release-store.js +134 -0
- package/dist/services/loop/loop-release-types.d.ts +250 -0
- package/dist/services/loop/loop-release-types.js +162 -0
- package/dist/services/memory/project-context-service.d.ts +21 -0
- package/dist/services/memory/project-context-service.js +161 -0
- package/dist/services/migrate-skill-name/schema.d.ts +42 -0
- package/dist/services/openspec/openspec-archive-service.js +28 -0
- package/dist/services/openspec/openspec-bridge-service.js +76 -0
- package/dist/services/openspec/openspec-init-service.js +122 -0
- package/dist/services/openspec/openspec-propose-from-doctor-service.js +95 -0
- package/dist/services/openspec/openspec-render-service.js +130 -0
- package/dist/services/openspec/openspec-scan-service.js +123 -0
- package/dist/services/openspec/openspec-validate-service.js +77 -0
- package/dist/services/polyrepo/polyrepo-dispatcher.d.ts +34 -0
- package/dist/services/polyrepo/polyrepo-dispatcher.js +119 -0
- package/dist/services/polyrepo/polyrepo-scanner.d.ts +9 -0
- package/dist/services/polyrepo/polyrepo-scanner.js +94 -0
- package/dist/services/polyrepo/polyrepo-service.d.ts +34 -0
- package/dist/services/polyrepo/polyrepo-service.js +49 -0
- package/dist/services/polyrepo/polyrepo-types.d.ts +55 -0
- package/dist/services/prd/project-scan-bootstrap-service.d.ts +52 -0
- package/dist/services/prd/project-scan-bootstrap-service.js +445 -0
- package/dist/services/preferences/preferences-types.d.ts +148 -0
- package/dist/services/rd/rd-service.js +440 -0
- package/dist/services/rd/types.d.ts +252 -0
- package/dist/services/recommendations/capability-seed-items.js +139 -0
- package/dist/services/recommendations/capability-seed-mappings.js +53 -0
- package/dist/services/recommendations/capability-seed-sources.js +34 -0
- package/dist/services/runtime/runtime-detector.d.ts +15 -0
- package/dist/services/runtime/runtime-detector.js +62 -0
- package/dist/services/runtime/runtime-service.d.ts +59 -0
- package/dist/services/runtime/runtime-service.js +51 -0
- package/dist/services/runtime/vendor-adapter.d.ts +59 -0
- package/dist/services/runtime/vendors/claude-code.d.ts +7 -0
- package/dist/services/runtime/vendors/claude-code.js +39 -0
- package/dist/services/runtime/vendors/codex.d.ts +7 -0
- package/dist/services/runtime/vendors/codex.js +43 -0
- package/dist/services/runtime/vendors/copilot.d.ts +7 -0
- package/dist/services/runtime/vendors/copilot.js +40 -0
- package/dist/services/scan/acceptance-coverage-service.js +140 -0
- package/dist/services/scan/archetype-service.js +254 -0
- package/dist/services/scan/existing-system-service.js +300 -0
- package/dist/services/scan/libraries-service.js +419 -0
- package/dist/services/scan/scan-types.d.ts +59 -0
- package/dist/services/share/bundle-reader.d.ts +100 -0
- package/dist/services/share/bundle-reader.js +434 -0
- package/dist/services/share/bundle-types.d.ts +392 -0
- package/dist/services/share/bundle-types.js +318 -0
- package/dist/services/share/bundle-writer.d.ts +97 -0
- package/dist/services/share/bundle-writer.js +429 -0
- package/dist/services/share/run-state-contract.d.ts +133 -0
- package/dist/services/share/run-state-contract.js +138 -0
- package/dist/services/skill/skill-search-service.d.ts +93 -0
- package/dist/services/skill/skill-search-service.js +232 -0
- package/dist/services/skillhub/migrations/001-initial.sql +71 -0
- package/dist/services/skillhub/migrations/002-loop-release.sql +32 -0
- package/dist/services/skillhub/migrations/003-loop-bee-relation.sql +35 -0
- package/dist/services/skillhub/migrations/004-loop-bee-extension.sql +65 -0
- package/dist/services/skillhub/migrations/005-evolution-evaluation.sql +81 -0
- package/dist/services/skillhub/migrations/006-crystallization-event.sql +92 -0
- package/dist/services/skillhub/release-import.js +64 -0
- package/dist/services/skillhub/release-retain.js +94 -0
- package/dist/services/skillhub/sqlite-store.js +63 -0
- package/dist/services/skillhub/types.d.ts +115 -0
- package/dist/services/skills/skill-registry.d.ts +18 -0
- package/dist/services/skills/skill-registry.js +69 -0
- package/dist/services/skills/skill-runbook-service.js +128 -0
- package/dist/services/slice/slice-check-service.js +459 -0
- package/dist/services/standards/ide-aware-standards-service.js +91 -0
- package/dist/services/standards/loop-engineering-lint.d.ts +38 -0
- package/dist/services/standards/loop-engineering-lint.js +101 -0
- package/dist/services/standards/loop-engineering-readiness-lint.d.ts +111 -0
- package/dist/services/standards/loop-engineering-readiness-lint.js +248 -0
- package/dist/services/standards/migrate-claude-rules-service.js +214 -0
- package/dist/services/standards/missing-standards-detector.d.ts +106 -0
- package/dist/services/standards/missing-standards-detector.js +170 -0
- package/dist/services/standards/project-standards-service.js +693 -0
- package/dist/services/understand/hybrid-types.js +1 -0
- package/dist/services/understand/understand-hybrid-service.js +100 -0
- package/dist/services/understand/understand-scan-service.js +170 -0
- package/dist/services/understand/understand-types.js +1 -0
- package/dist/services/upgrade/upgrade-service.js +404 -0
- package/dist/services/verdict/envelopes.d.ts +93 -0
- package/dist/services/verdict/envelopes.js +349 -0
- package/dist/services/verdict/verdict-aggregator.d.ts +94 -0
- package/dist/services/workflow/autonomous-resume-writer.js +170 -0
- package/dist/services/workflow/plan-reader.d.ts +29 -0
- package/dist/services/workflow/plan-reader.js +174 -0
- package/dist/services/workflow/plan-refresher.d.ts +32 -0
- package/dist/services/workflow/plan-refresher.js +353 -0
- package/dist/services/workflow/plan-trigger-detector.d.ts +55 -0
- package/dist/services/workflow/plan-trigger-detector.js +142 -0
- package/dist/services/workflow/workflow-router-service.d.ts +85 -0
- package/dist/services/workflow/workflow-router-service.js +235 -0
- package/dist/services/workspace/migrate-service.js +613 -0
- package/dist/services/workspace/templates/project-scan/audit-output-schema.md +100 -0
- package/dist/services/workspace/templates/project-scan/business-knowledge.md +44 -0
- package/dist/services/workspace/templates/project-scan/index.d.ts +34 -0
- package/dist/services/workspace/templates/project-scan/index.js +60 -0
- package/dist/services/workspace/templates/project-scan/perf-template.md +109 -0
- package/dist/services/workspace/templates/project-scan/security-template.md +99 -0
- package/dist/services/workspace/workspace-service.js +432 -0
- package/package.json +56 -40
- package/scripts/copy-templates.mjs +80 -0
- package/scripts/install-skills.mjs +13 -10
- package/scripts/sync-version.mjs +8 -1
- package/skills/bee/peaks-perf-audit/SKILL.md +1 -0
- package/skills/bee/peaks-prd/test-prompts.json +12 -0
- package/skills/bee/peaks-qa/test-prompts.json +12 -0
- package/skills/bee/peaks-rd/SKILL.md +10 -20
- package/skills/bee/peaks-rd/references/library-version-awareness.md +2 -2
- package/skills/bee/peaks-rd/references/mock-data-placement.md +1 -1
- package/skills/bee/peaks-rd/references/rd-runbook.md +2 -2
- package/skills/bee/peaks-rd/references/rd-transition-gates.md +2 -2
- package/skills/bee/peaks-rd/references/writing-handoff-frontmatter.md +1 -1
- package/skills/bee/peaks-rd/test-prompts.json +12 -0
- package/skills/bee/peaks-reviewer/SKILL.md +1 -0
- package/skills/bee/peaks-security-audit/SKILL.md +1 -0
- package/skills/bee/peaks-txt/test-prompts.json +12 -0
- package/skills/bee/peaks-ui/SKILL.md +2 -2
- package/skills/bee/peaks-ui/test-prompts.json +12 -0
- package/skills/peaks-code/SKILL.md +61 -119
- package/skills/peaks-code/references/external-references.md +1 -3
- package/skills/peaks-code/references/external-skill-invocation.md +1 -1
- package/skills/peaks-code/references/project-scan-checklist.md +3 -1
- package/skills/peaks-code/references/runbook.md +3 -5
- package/skills/peaks-code/references/standards-preflight.md +1 -1
- package/skills/peaks-code/references/startup-sequence.md +110 -0
- package/skills/peaks-code/references/step-0-55-1x-detection.md +2 -1
- package/skills/peaks-code/references/step-11-memory-sediment.md +56 -0
- package/skills/peaks-code/references/sub-agent-dispatch.md +30 -0
- package/skills/peaks-code/references/swarm-dispatch-contract.md +1 -1
- package/skills/peaks-code/references/workflow-gates-and-types.md +4 -4
- package/skills/peaks-code/test-prompts.json +12 -0
- package/skills/peaks-content/SKILL.md +272 -0
- package/skills/peaks-doctor/SKILL.md +1 -1
- package/skills/peaks-ide/SKILL.md +1 -1
- package/skills/peaks-issue-fix-orchestrator/SKILL.md +307 -0
- package/skills/peaks-slice-decompose/SKILL.md +61 -1
- package/skills/peaks-solo/SKILL.md +197 -0
- package/skills/peaks-solo/references/fallback-tool-inventory.md +46 -0
- package/skills/peaks-solo/references/sediment-prompt-template.md +62 -0
- package/skills/peaks-solo/references/triage-decision-table.md +31 -0
- package/skills/peaks-sop/test-prompts.json +17 -0
- package/dist/src/cli/cli-helpers.d.ts +0 -43
- package/dist/src/cli/cli-helpers.js +0 -86
- package/dist/src/cli/commands/agent-commands.d.ts +0 -20
- package/dist/src/cli/commands/agent-commands.js +0 -48
- package/dist/src/cli/commands/audit-commands.js +0 -437
- package/dist/src/cli/commands/capability-commands.js +0 -45
- package/dist/src/cli/commands/capability-worker-config-sc-commands.js +0 -10
- package/dist/src/cli/commands/classify-classify-commands.js +0 -151
- package/dist/src/cli/commands/code-commands.js +0 -798
- package/dist/src/cli/commands/code-review-commands.js +0 -83
- package/dist/src/cli/commands/codegraph-commands.js +0 -99
- package/dist/src/cli/commands/compact-command.js +0 -252
- package/dist/src/cli/commands/complexity-commands.js +0 -34
- package/dist/src/cli/commands/config-commands.js +0 -220
- package/dist/src/cli/commands/context-commands.js +0 -254
- package/dist/src/cli/commands/contract-commands.js +0 -114
- package/dist/src/cli/commands/core/artifacts-command.js +0 -62
- package/dist/src/cli/commands/core/binding-commands.js +0 -58
- package/dist/src/cli/commands/core/doctor-command.js +0 -204
- package/dist/src/cli/commands/core/memory-command.js +0 -98
- package/dist/src/cli/commands/core/profile-command.js +0 -9
- package/dist/src/cli/commands/core/proxy-command.js +0 -26
- package/dist/src/cli/commands/core/session-command.js +0 -241
- package/dist/src/cli/commands/core/skill-command.js +0 -275
- package/dist/src/cli/commands/core/standards-command.js +0 -95
- package/dist/src/cli/commands/dispatch-commands.js +0 -351
- package/dist/src/cli/commands/dispatch-from-dag.js +0 -251
- package/dist/src/cli/commands/doc-commands.js +0 -65
- package/dist/src/cli/commands/feedback-commands.js +0 -145
- package/dist/src/cli/commands/final-review-commands.js +0 -161
- package/dist/src/cli/commands/fixture-commands.js +0 -91
- package/dist/src/cli/commands/fork-commands.js +0 -163
- package/dist/src/cli/commands/gate-commands.js +0 -117
- package/dist/src/cli/commands/heartbeat-commands.js +0 -135
- package/dist/src/cli/commands/hook-handle.js +0 -157
- package/dist/src/cli/commands/hooks-commands.js +0 -156
- package/dist/src/cli/commands/impact-commands.js +0 -62
- package/dist/src/cli/commands/job-commands.js +0 -289
- package/dist/src/cli/commands/legacy-commands.js +0 -32
- package/dist/src/cli/commands/log-commands.js +0 -64
- package/dist/src/cli/commands/loop-commands.d.ts +0 -21
- package/dist/src/cli/commands/loop-commands.js +0 -128
- package/dist/src/cli/commands/loop-eval-commands.js +0 -526
- package/dist/src/cli/commands/memory-commands.js +0 -129
- package/dist/src/cli/commands/migrate-1-4-1-command.js +0 -34
- package/dist/src/cli/commands/migrate-v2-10-to-v2-11-command.js +0 -52
- package/dist/src/cli/commands/mut-commands.d.ts +0 -20
- package/dist/src/cli/commands/mut-commands.js +0 -239
- package/dist/src/cli/commands/observability-commands.js +0 -201
- package/dist/src/cli/commands/openspec-commands.js +0 -237
- package/dist/src/cli/commands/perf-audit-commands.js +0 -132
- package/dist/src/cli/commands/perf-commands.js +0 -41
- package/dist/src/cli/commands/prd-blocks-commands.js +0 -50
- package/dist/src/cli/commands/prd-commands.js +0 -141
- package/dist/src/cli/commands/preferences-commands.js +0 -197
- package/dist/src/cli/commands/project-commands.js +0 -248
- package/dist/src/cli/commands/qa-business-review-commands.js +0 -148
- package/dist/src/cli/commands/qa-commands.d.ts +0 -94
- package/dist/src/cli/commands/qa-commands.js +0 -271
- package/dist/src/cli/commands/release-commands.js +0 -231
- package/dist/src/cli/commands/request-commands.js +0 -548
- package/dist/src/cli/commands/retrospective-commands.js +0 -175
- package/dist/src/cli/commands/reviewer-commands.js +0 -64
- package/dist/src/cli/commands/role-commands.js +0 -85
- package/dist/src/cli/commands/sc-commands.js +0 -45
- package/dist/src/cli/commands/scan-commands.js +0 -445
- package/dist/src/cli/commands/security-audit-commands.js +0 -132
- package/dist/src/cli/commands/sediment-commands.js +0 -640
- package/dist/src/cli/commands/share-commands.d.ts +0 -17
- package/dist/src/cli/commands/share-commands.js +0 -296
- package/dist/src/cli/commands/skill-conformance-commands.js +0 -39
- package/dist/src/cli/commands/slice-commands.js +0 -492
- package/dist/src/cli/commands/slice-integrate-commands.js +0 -74
- package/dist/src/cli/commands/slice-review-commands.js +0 -162
- package/dist/src/cli/commands/smoke-commands.js +0 -203
- package/dist/src/cli/commands/sop-commands.js +0 -215
- package/dist/src/cli/commands/statusline-commands.d.ts +0 -3
- package/dist/src/cli/commands/statusline-commands.js +0 -169
- package/dist/src/cli/commands/sub-agent-commands.js +0 -19
- package/dist/src/cli/commands/understand-commands.js +0 -148
- package/dist/src/cli/commands/upgrade-commands.js +0 -119
- package/dist/src/cli/commands/user-touchpoint-commands.js +0 -78
- package/dist/src/cli/commands/verdict-aggregate-command.js +0 -106
- package/dist/src/cli/commands/worker-commands.d.ts +0 -3
- package/dist/src/cli/commands/worker-commands.js +0 -52
- package/dist/src/cli/commands/workflow-commands.js +0 -535
- package/dist/src/cli/commands/workflow-plan-commands.js +0 -163
- package/dist/src/cli/commands/workspace/init-command.d.ts +0 -121
- package/dist/src/cli/commands/workspace/init-command.js +0 -436
- package/dist/src/cli/commands/workspace/migrate-command.js +0 -91
- package/dist/src/cli/commands/workspace/reconcile-command.js +0 -103
- package/dist/src/cli/index.js +0 -30
- package/dist/src/cli/program.js +0 -368
- package/dist/src/services/agent/ecc-agent-service.d.ts +0 -47
- package/dist/src/services/agent/ecc-agent-service.js +0 -143
- package/dist/src/services/artifacts/artifact-prerequisites.js +0 -491
- package/dist/src/services/artifacts/request-artifact-service.js +0 -451
- package/dist/src/services/artifacts/workspace-service.js +0 -272
- package/dist/src/services/audit/static-service.d.ts +0 -60
- package/dist/src/services/audit/static-service.js +0 -130
- package/dist/src/services/audit-independent/perf-audit-service.d.ts +0 -151
- package/dist/src/services/audit-independent/perf-audit-service.js +0 -316
- package/dist/src/services/audit-independent/security-audit-service.d.ts +0 -155
- package/dist/src/services/audit-independent/security-audit-service.js +0 -316
- package/dist/src/services/code/auto-compact-orchestrator.js +0 -343
- package/dist/src/services/code-review/ocr-service.d.ts +0 -129
- package/dist/src/services/code-review/ocr-service.js +0 -369
- package/dist/src/services/config/config-service.d.ts +0 -69
- package/dist/src/services/config/config-service.js +0 -814
- package/dist/src/services/config/config-types.d.ts +0 -119
- package/dist/src/services/config/config-types.js +0 -18
- package/dist/src/services/config/model-routing.d.ts +0 -4
- package/dist/src/services/config/model-routing.js +0 -17
- package/dist/src/services/config/provider-service.d.ts +0 -48
- package/dist/src/services/config/provider-service.js +0 -143
- package/dist/src/services/context/context-schema.d.ts +0 -415
- package/dist/src/services/context/dispatch-context-guard.d.ts +0 -27
- package/dist/src/services/context/dispatch-context-guard.js +0 -192
- package/dist/src/services/context/shared-channel.d.ts +0 -93
- package/dist/src/services/context/shared-channel.js +0 -308
- package/dist/src/services/dashboard/project-dashboard-service.js +0 -147
- package/dist/src/services/dispatch/batch-counter.js +0 -102
- package/dist/src/services/dispatch/dispatch-record-writer.js +0 -460
- package/dist/src/services/doctor/doctor-service.d.ts +0 -149
- package/dist/src/services/doctor/doctor-service.js +0 -929
- package/dist/src/services/filesystem/file-lock.d.ts +0 -11
- package/dist/src/services/filesystem/file-lock.js +0 -129
- package/dist/src/services/final-review/final-review-service.d.ts +0 -12
- package/dist/src/services/final-review/final-review-service.js +0 -52
- package/dist/src/services/final-review/final-review-types.d.ts +0 -42
- package/dist/src/services/final-review/final-review-types.js +0 -18
- package/dist/src/services/ide/ide-registry.js +0 -60
- package/dist/src/services/ide/ide-types.d.ts +0 -230
- package/dist/src/services/job/job-progress-store.d.ts +0 -60
- package/dist/src/services/job/job-resource-snapshot.d.ts +0 -7
- package/dist/src/services/job/job-resource-snapshot.js +0 -75
- package/dist/src/services/job/job-types.d.ts +0 -444
- package/dist/src/services/log/retention.d.ts +0 -34
- package/dist/src/services/log/retention.js +0 -78
- package/dist/src/services/memory/project-context-service.d.ts +0 -11
- package/dist/src/services/memory/project-context-service.js +0 -148
- package/dist/src/services/migrate-skill-name/schema.d.ts +0 -42
- package/dist/src/services/mut/assert-scanner.d.ts +0 -6
- package/dist/src/services/mut/assert-scanner.js +0 -116
- package/dist/src/services/mut/index.d.ts +0 -8
- package/dist/src/services/mut/index.js +0 -7
- package/dist/src/services/mut/mut-runner.d.ts +0 -39
- package/dist/src/services/mut/mut-runner.js +0 -29
- package/dist/src/services/mut/production-stryker.d.ts +0 -2
- package/dist/src/services/mut/production-stryker.js +0 -75
- package/dist/src/services/mut/report-builder.d.ts +0 -11
- package/dist/src/services/mut/report-builder.js +0 -110
- package/dist/src/services/mut/report-loader.d.ts +0 -31
- package/dist/src/services/mut/report-loader.js +0 -78
- package/dist/src/services/mut/thresholds.d.ts +0 -21
- package/dist/src/services/mut/thresholds.js +0 -22
- package/dist/src/services/mut/types.d.ts +0 -336
- package/dist/src/services/mut/types.js +0 -59
- package/dist/src/services/openspec/openspec-archive-service.js +0 -28
- package/dist/src/services/openspec/openspec-bridge-service.js +0 -76
- package/dist/src/services/openspec/openspec-init-service.js +0 -122
- package/dist/src/services/openspec/openspec-propose-from-doctor-service.js +0 -95
- package/dist/src/services/openspec/openspec-render-service.js +0 -130
- package/dist/src/services/openspec/openspec-scan-service.js +0 -123
- package/dist/src/services/openspec/openspec-validate-service.js +0 -77
- package/dist/src/services/preferences/preferences-types.d.ts +0 -148
- package/dist/src/services/providers/minimax-provider-service.d.ts +0 -24
- package/dist/src/services/providers/minimax-provider-service.js +0 -143
- package/dist/src/services/providers/minimax-worker-service.d.ts +0 -21
- package/dist/src/services/providers/minimax-worker-service.js +0 -83
- package/dist/src/services/rd/rd-service.js +0 -438
- package/dist/src/services/rd/types.d.ts +0 -252
- package/dist/src/services/recommendations/capability-seed-items.js +0 -140
- package/dist/src/services/recommendations/capability-seed-mappings.js +0 -54
- package/dist/src/services/recommendations/capability-seed-sources.js +0 -35
- package/dist/src/services/scan/acceptance-coverage-service.js +0 -140
- package/dist/src/services/scan/archetype-service.js +0 -242
- package/dist/src/services/scan/existing-system-service.js +0 -300
- package/dist/src/services/scan/libraries-service.js +0 -419
- package/dist/src/services/scan/scan-types.d.ts +0 -59
- package/dist/src/services/skillhub/release-import.js +0 -59
- package/dist/src/services/skillhub/release-retain.js +0 -89
- package/dist/src/services/skillhub/sqlite-store.js +0 -47
- package/dist/src/services/skillhub/types.d.ts +0 -105
- package/dist/src/services/skills/skill-registry.d.ts +0 -17
- package/dist/src/services/skills/skill-registry.js +0 -67
- package/dist/src/services/skills/skill-runbook-service.js +0 -128
- package/dist/src/services/slice/slice-check-service.js +0 -459
- package/dist/src/services/standards/ide-aware-standards-service.js +0 -89
- package/dist/src/services/standards/migrate-claude-rules-service.js +0 -193
- package/dist/src/services/standards/missing-standards-detector.d.ts +0 -79
- package/dist/src/services/standards/missing-standards-detector.js +0 -132
- package/dist/src/services/standards/project-standards-service.js +0 -574
- package/dist/src/services/understand/understand-hybrid-service.js +0 -100
- package/dist/src/services/understand/understand-scan-service.js +0 -170
- package/dist/src/services/upgrade/upgrade-service.js +0 -403
- package/dist/src/services/verdict/envelopes.d.ts +0 -93
- package/dist/src/services/verdict/envelopes.js +0 -349
- package/dist/src/services/verdict/verdict-aggregator.d.ts +0 -94
- package/dist/src/services/workflow/autonomous-resume-writer.js +0 -170
- package/dist/src/services/workflow/plan-reader.d.ts +0 -29
- package/dist/src/services/workflow/plan-reader.js +0 -174
- package/dist/src/services/workflow/plan-refresher.d.ts +0 -32
- package/dist/src/services/workflow/plan-refresher.js +0 -353
- package/dist/src/services/workflow/plan-trigger-detector.d.ts +0 -55
- package/dist/src/services/workflow/plan-trigger-detector.js +0 -142
- package/dist/src/services/workflow/workflow-router-service.d.ts +0 -85
- package/dist/src/services/workflow/workflow-router-service.js +0 -227
- package/dist/src/services/workspace/migrate-service.js +0 -613
- package/dist/src/services/workspace/workspace-service.js +0 -432
- package/dist/src/shared/fs.d.ts +0 -4
- package/dist/src/shared/fs.js +0 -26
- package/dist/src/shared/paths.d.ts +0 -6
- package/dist/src/shared/paths.js +0 -50
- package/dist/src/shared/result.d.ts +0 -22
- package/dist/src/shared/result.js +0 -46
- package/dist/src/shared/version.d.ts +0 -1
- package/dist/src/shared/version.js +0 -1
- package/skills/peaks-code/references/openspec-workflow.md +0 -81
- /package/dist/{src/cli → cli}/commands/adapter-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/adapter-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/audit-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/capability-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/capability-worker-config-sc-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/classify-classify-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/code-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/code-review-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/codegraph-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/compact-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/complexity-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/config-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/context-builder-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/context-builder-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/context-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/contract-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/artifacts-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/binding-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/doctor-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/memory-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/profile-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/proxy-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/session-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/skill-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core/standards-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core-artifact-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/core-artifact-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/dispatch-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/dispatch-from-dag.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/doc-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/feedback-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/final-review-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/fixture-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/fork-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/gate-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/heartbeat-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/hook-handle.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/hooks-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/impact-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/job-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/legacy-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/log-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/loop-eval-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/memory-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/migrate-1-4-1-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/migrate-v2-10-to-v2-11-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/observability-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/openspec-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/perf-audit-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/perf-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/playwright-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/playwright-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/prd-blocks-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/prd-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/preferences-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/project-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/qa-business-review-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/release-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/request-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/retrospective-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/reviewer-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/role-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sc-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/scan-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/security-audit-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sediment-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-auto-compact-hook-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-auto-compact-hook-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/session-checkpoint-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-checkpoint-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/session-migrate-skill-name.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-migrate-skill-name.js +0 -0
- /package/dist/{src/cli → cli}/commands/session-resume-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/session-resume-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/skill-conformance-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/skill-visibility.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/skill-visibility.js +0 -0
- /package/dist/{src/cli → cli}/commands/slice-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/slice-integrate-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/slice-review-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/smoke-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sop-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sub-agent-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sub-agent-dispatch-guard.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sub-agent-dispatch-guard.js +0 -0
- /package/dist/{src/cli → cli}/commands/sub-agent-shared.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/sub-agent-shared.js +0 -0
- /package/dist/{src/cli → cli}/commands/test-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/test-commands.js +0 -0
- /package/dist/{src/cli → cli}/commands/understand-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/upgrade-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/user-touchpoint-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/verdict-aggregate-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workflow-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workflow-plan-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/clean-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/clean-command.js +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/helpers.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/helpers.js +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/migrate-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace/reconcile-command.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace-commands.d.ts +0 -0
- /package/dist/{src/cli → cli}/commands/workspace-commands.js +0 -0
- /package/dist/{src/cli → cli}/index.d.ts +0 -0
- /package/dist/{src/cli → cli}/program.d.ts +0 -0
- /package/dist/{src/hooks → hooks}/pre-tool-use-sub-agent.d.ts +0 -0
- /package/dist/{src/hooks → hooks}/pre-tool-use-sub-agent.js +0 -0
- /package/dist/{src/lib → lib}/render/message-renderer.d.ts +0 -0
- /package/dist/{src/lib → lib}/render/message-renderer.js +0 -0
- /package/dist/{src/services → services}/adapter/adapter.d.ts +0 -0
- /package/dist/{src/services → services}/adapter/adapter.js +0 -0
- /package/dist/{src/services → services}/adapter/auto-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/adapter/auto-adapter.js +0 -0
- /package/dist/{src/services → services}/adapter/claude-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/adapter/claude-adapter.js +0 -0
- /package/dist/{src/services → services}/adapter/codex-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/adapter/codex-adapter.js +0 -0
- /package/dist/{src/services → services}/adapter/copilot-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/adapter/copilot-adapter.js +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-lint-service.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-lint-service.js +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-prerequisites.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-service.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-service.js +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-templates.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/artifact-templates.js +0 -0
- /package/dist/{src/services → services}/artifacts/repair-cycle-service.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/repair-cycle-service.js +0 -0
- /package/dist/{src/services → services}/artifacts/request-artifact-service.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/request-artifact-state-helpers.d.ts +0 -0
- /package/dist/{src/services → services}/artifacts/request-artifact-state-helpers.js +0 -0
- /package/dist/{src/services → services}/artifacts/workspace-service.d.ts +0 -0
- /package/dist/{src/services → services}/audit/artifact-writer.d.ts +0 -0
- /package/dist/{src/services → services}/audit/artifact-writer.js +0 -0
- /package/dist/{src/services → services}/audit/audit-goal-service.d.ts +0 -0
- /package/dist/{src/services → services}/audit/audit-goal-service.js +0 -0
- /package/dist/{src/services → services}/audit/audit-goal-types.d.ts +0 -0
- /package/dist/{src/services → services}/audit/audit-goal-types.js +0 -0
- /package/dist/{src/services → services}/audit/backing-detector.d.ts +0 -0
- /package/dist/{src/services → services}/audit/backing-detector.js +0 -0
- /package/dist/{src/services → services}/audit/classifier.d.ts +0 -0
- /package/dist/{src/services → services}/audit/classifier.js +0 -0
- /package/dist/{src/services → services}/audit/decision-writer.d.ts +0 -0
- /package/dist/{src/services → services}/audit/decision-writer.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/active-skill-resolver.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/active-skill-resolver.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/code-ban.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/code-ban.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/design-draft-confirm.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/design-draft-confirm.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-audit-regression.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-audit-regression.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-catalog-governance.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-catalog-governance.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-cli-back.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-cli-back.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-output-style.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-output-style.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-reference-integrity.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-reference-integrity.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-reference-shape.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-reference-shape.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-style.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-style.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-workflow-shape.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/lint-workflow-shape.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/login-gate.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/login-gate.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/mock-placement.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/mock-placement.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/no-root-pollution.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/no-root-pollution.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/pre-rd-scan.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/pre-rd-scan.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/prototype-fidelity.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/prototype-fidelity.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/resume-detection.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/resume-detection.js +0 -0
- /package/dist/{src/services → services}/audit/enforcers/sub-agent-sid.d.ts +0 -0
- /package/dist/{src/services → services}/audit/enforcers/sub-agent-sid.js +0 -0
- /package/dist/{src/services → services}/audit/prose-ratio-calculator.d.ts +0 -0
- /package/dist/{src/services → services}/audit/prose-ratio-calculator.js +0 -0
- /package/dist/{src/services → services}/audit/red-line-catalog-p2-a.d.ts +0 -0
- /package/dist/{src/services → services}/audit/red-line-catalog-p2-a.js +0 -0
- /package/dist/{src/services → services}/audit/red-line-catalog-p2-b.d.ts +0 -0
- /package/dist/{src/services → services}/audit/red-line-catalog-p2-b.js +0 -0
- /package/dist/{src/services → services}/audit/red-line-catalog.d.ts +0 -0
- /package/dist/{src/services → services}/audit/red-line-catalog.js +0 -0
- /package/dist/{src/services → services}/audit/red-lines-service.d.ts +0 -0
- /package/dist/{src/services → services}/audit/red-lines-service.js +0 -0
- /package/dist/{src/services → services}/audit/scanners/openspec-scanner.d.ts +0 -0
- /package/dist/{src/services → services}/audit/scanners/openspec-scanner.js +0 -0
- /package/dist/{src/services → services}/audit/scanners/rules-tree-scanner.d.ts +0 -0
- /package/dist/{src/services → services}/audit/scanners/rules-tree-scanner.js +0 -0
- /package/dist/{src/services → services}/audit/scanners/skills-tree-scanner.d.ts +0 -0
- /package/dist/{src/services → services}/audit/scanners/skills-tree-scanner.js +0 -0
- /package/dist/{src/services → services}/audit/types.d.ts +0 -0
- /package/dist/{src/services → services}/audit/types.js +0 -0
- /package/dist/{src/services → services}/classify/classify-service.d.ts +0 -0
- /package/dist/{src/services → services}/classify/classify-service.js +0 -0
- /package/dist/{src/services → services}/classify/classify-types.d.ts +0 -0
- /package/dist/{src/services → services}/classify/classify-types.js +0 -0
- /package/dist/{src/services → services}/code/auto-compact-orchestrator.d.ts +0 -0
- /package/dist/{src/services → services}/code/batch-heartbeat-poller.d.ts +0 -0
- /package/dist/{src/services → services}/code/batch-heartbeat-poller.js +0 -0
- /package/dist/{src/services → services}/code/dag-orchestrator.d.ts +0 -0
- /package/dist/{src/services → services}/code/dag-orchestrator.js +0 -0
- /package/dist/{src/services → services}/code/emit-handoff.d.ts +0 -0
- /package/dist/{src/services → services}/code/emit-handoff.js +0 -0
- /package/dist/{src/services → services}/code/job-shape-decision.d.ts +0 -0
- /package/dist/{src/services → services}/code/job-shape-decision.js +0 -0
- /package/dist/{src/services → services}/code/mode-gate.d.ts +0 -0
- /package/dist/{src/services → services}/code/mode-gate.js +0 -0
- /package/dist/{src/services → services}/code/post-compact-detector.d.ts +0 -0
- /package/dist/{src/services → services}/code/post-compact-detector.js +0 -0
- /package/dist/{src/services → services}/code/status-line-renderer.d.ts +0 -0
- /package/dist/{src/services → services}/code/status-line-renderer.js +0 -0
- /package/dist/{src/services → services}/code/step-08-gate.d.ts +0 -0
- /package/dist/{src/services → services}/code/step-08-gate.js +0 -0
- /package/dist/{src/services → services}/code/user-touchpoint-classifier.d.ts +0 -0
- /package/dist/{src/services → services}/code/user-touchpoint-classifier.js +0 -0
- /package/dist/{src/services → services}/code-review/ecc-bridge.d.ts +0 -0
- /package/dist/{src/services → services}/code-review/ecc-bridge.js +0 -0
- /package/dist/{src/services → services}/codegraph/codegraph-process-runner.d.ts +0 -0
- /package/dist/{src/services → services}/codegraph/codegraph-process-runner.js +0 -0
- /package/dist/{src/services → services}/codegraph/codegraph-service.d.ts +0 -0
- /package/dist/{src/services → services}/codegraph/codegraph-service.js +0 -0
- /package/dist/{src/services → services}/compact/decision-tables.d.ts +0 -0
- /package/dist/{src/services → services}/compact/decision-tables.js +0 -0
- /package/dist/{src/services → services}/compact/request-transition-hook.d.ts +0 -0
- /package/dist/{src/services → services}/compact/request-transition-hook.js +0 -0
- /package/dist/{src/services → services}/compact/suggest-service.d.ts +0 -0
- /package/dist/{src/services → services}/compact/suggest-service.js +0 -0
- /package/dist/{src/services → services}/complexity/complexity-estimator.d.ts +0 -0
- /package/dist/{src/services → services}/complexity/complexity-estimator.js +0 -0
- /package/dist/{src/services → services}/config/config-migration.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-migration.js +0 -0
- /package/dist/{src/services → services}/config/config-restore.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-restore.js +0 -0
- /package/dist/{src/services → services}/config/config-rollback.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-rollback.js +0 -0
- /package/dist/{src/services → services}/config/config-safety.d.ts +0 -0
- /package/dist/{src/services → services}/config/config-safety.js +0 -0
- /package/dist/{src/services → services}/config/proxy-service.d.ts +0 -0
- /package/dist/{src/services → services}/config/proxy-service.js +0 -0
- /package/dist/{src/services → services}/config/sidecar-store.d.ts +0 -0
- /package/dist/{src/services → services}/config/sidecar-store.js +0 -0
- /package/dist/{src/services → services}/config/workspace-state-service.d.ts +0 -0
- /package/dist/{src/services → services}/config/workspace-state-service.js +0 -0
- /package/dist/{src/services → services}/context/artifact-meta.d.ts +0 -0
- /package/dist/{src/services → services}/context/artifact-meta.js +0 -0
- /package/dist/{src/services → services}/context/auto-compact-dispatcher.d.ts +0 -0
- /package/dist/{src/services → services}/context/auto-compact-dispatcher.js +0 -0
- /package/dist/{src/services → services}/context/auto-compact-reader.d.ts +0 -0
- /package/dist/{src/services → services}/context/auto-compact-reader.js +0 -0
- /package/dist/{src/services → services}/context/auto-compact-types.d.ts +0 -0
- /package/dist/{src/services → services}/context/auto-compact-types.js +0 -0
- /package/dist/{src/services → services}/context/collector.d.ts +0 -0
- /package/dist/{src/services → services}/context/collector.js +0 -0
- /package/dist/{src/services → services}/context/context-builder.d.ts +0 -0
- /package/dist/{src/services → services}/context/context-builder.js +0 -0
- /package/dist/{src/services → services}/context/context-guard.d.ts +0 -0
- /package/dist/{src/services → services}/context/context-guard.js +0 -0
- /package/dist/{src/services → services}/context/context-schema.js +0 -0
- /package/dist/{src/services → services}/context/doc-retriever.d.ts +0 -0
- /package/dist/{src/services → services}/context/doc-retriever.js +0 -0
- /package/dist/{src/services → services}/context/headroom-client.d.ts +0 -0
- /package/dist/{src/services → services}/context/headroom-client.js +0 -0
- /package/dist/{src/services → services}/context/headroom-fetcher.d.ts +0 -0
- /package/dist/{src/services → services}/context/headroom-fetcher.js +0 -0
- /package/dist/{src/services → services}/context/headroom-prefs.d.ts +0 -0
- /package/dist/{src/services → services}/context/headroom-prefs.js +0 -0
- /package/dist/{src/services → services}/context/index.d.ts +0 -0
- /package/dist/{src/services → services}/context/index.js +0 -0
- /package/dist/{src/services → services}/context/main-session-monitor.d.ts +0 -0
- /package/dist/{src/services → services}/context/main-session-monitor.js +0 -0
- /package/dist/{src/services → services}/context/renderer.d.ts +0 -0
- /package/dist/{src/services → services}/context/renderer.js +0 -0
- /package/dist/{src/services → services}/context/threshold.d.ts +0 -0
- /package/dist/{src/services → services}/context/threshold.js +0 -0
- /package/dist/{src/services → services}/context/tokenizer.d.ts +0 -0
- /package/dist/{src/services → services}/context/tokenizer.js +0 -0
- /package/dist/{src/services → services}/context/types.d.ts +0 -0
- /package/dist/{src/services → services}/context/types.js +0 -0
- /package/dist/{src/services → services}/dashboard/project-dashboard-service.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/batch-counter.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/contract-store.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/contract-store.js +0 -0
- /package/dist/{src/services → services}/dispatch/dispatch-record-writer.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/heartbeat-truncator.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/heartbeat-truncator.js +0 -0
- /package/dist/{src/services → services}/dispatch/leak-detector.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/leak-detector.js +0 -0
- /package/dist/{src/services → services}/dispatch/slice-dag.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/slice-dag.js +0 -0
- /package/dist/{src/services → services}/dispatch/sub-agent-dispatcher.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/sub-agent-dispatcher.js +0 -0
- /package/dist/{src/services → services}/dispatch/test-tool-detection.d.ts +0 -0
- /package/dist/{src/services → services}/dispatch/test-tool-detection.js +0 -0
- /package/dist/{src/services → services}/doc/doc-generator.d.ts +0 -0
- /package/dist/{src/services → services}/doc/doc-generator.js +0 -0
- /package/dist/{src/services → services}/feedback/feedback-promotion-service.d.ts +0 -0
- /package/dist/{src/services → services}/feedback/feedback-promotion-service.js +0 -0
- /package/dist/{src/services → services}/fixture/fixture-capture-service.d.ts +0 -0
- /package/dist/{src/services → services}/fixture/fixture-capture-service.js +0 -0
- /package/dist/{src/services → services}/fixture/fixture-sanitize-service.d.ts +0 -0
- /package/dist/{src/services → services}/fixture/fixture-sanitize-service.js +0 -0
- /package/dist/{src/services → services}/fixture/index.d.ts +0 -0
- /package/dist/{src/services → services}/fixture/index.js +0 -0
- /package/dist/{src/services → services}/fork/fork-sync-state.d.ts +0 -0
- /package/dist/{src/services → services}/fork/fork-sync-state.js +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/fuzzy-match-service.d.ts +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/fuzzy-match-service.js +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/fzf-pick-service.d.ts +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/fzf-pick-service.js +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/types.d.ts +0 -0
- /package/dist/{src/services → services}/fuzzy-matching/types.js +0 -0
- /package/dist/{src/services → services}/handoff/handoff-parser.d.ts +0 -0
- /package/dist/{src/services → services}/handoff/handoff-parser.js +0 -0
- /package/dist/{src/services → services}/handoff/handoff-types.d.ts +0 -0
- /package/dist/{src/services → services}/handoff/handoff-types.js +0 -0
- /package/dist/{src/services → services}/handoff/handoff-writer.d.ts +0 -0
- /package/dist/{src/services → services}/handoff/handoff-writer.js +0 -0
- /package/dist/{src/services → services}/hooks/auto-compact-hook-install.d.ts +0 -0
- /package/dist/{src/services → services}/hooks/auto-compact-hook-install.js +0 -0
- /package/dist/{src/services → services}/hooks/output.d.ts +0 -0
- /package/dist/{src/services → services}/hooks/output.js +0 -0
- /package/dist/{src/services → services}/hooks/presence-marker-detector.d.ts +0 -0
- /package/dist/{src/services → services}/hooks/presence-marker-detector.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/claude-code-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/claude-code-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/codex-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/codex-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/cursor-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/cursor-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/hermes-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/hermes-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/openclaw-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/openclaw-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/adapters/trae-adapter.d.ts +0 -0
- /package/dist/{src/services → services}/ide/adapters/trae-adapter.js +0 -0
- /package/dist/{src/services → services}/ide/hook-protocol.d.ts +0 -0
- /package/dist/{src/services → services}/ide/hook-protocol.js +0 -0
- /package/dist/{src/services → services}/ide/hook-translator.d.ts +0 -0
- /package/dist/{src/services → services}/ide/hook-translator.js +0 -0
- /package/dist/{src/services → services}/ide/ide-detector.d.ts +0 -0
- /package/dist/{src/services → services}/ide/ide-detector.js +0 -0
- /package/dist/{src/services → services}/ide/ide-registry.d.ts +0 -0
- /package/dist/{src/services → services}/ide/ide-types.js +0 -0
- /package/dist/{src/services → services}/ide/resource-profile.d.ts +0 -0
- /package/dist/{src/services → services}/ide/resource-profile.js +0 -0
- /package/dist/{src/services → services}/ide/shared/atomic-json.d.ts +0 -0
- /package/dist/{src/services → services}/ide/shared/atomic-json.js +0 -0
- /package/dist/{src/services → services}/ide/shared/safe-path.d.ts +0 -0
- /package/dist/{src/services → services}/ide/shared/safe-path.js +0 -0
- /package/dist/{src/services → services}/impact/impact-scan-service.d.ts +0 -0
- /package/dist/{src/services → services}/impact/impact-scan-service.js +0 -0
- /package/dist/{src/services → services}/job/job-event-emitter.d.ts +0 -0
- /package/dist/{src/services → services}/job/job-event-emitter.js +0 -0
- /package/dist/{src/services → services}/job/job-orchestrator.d.ts +0 -0
- /package/dist/{src/services → services}/job/job-orchestrator.js +0 -0
- /package/dist/{src/services → services}/job/job-progress-store.js +0 -0
- /package/dist/{src/services → services}/job/job-rotation.d.ts +0 -0
- /package/dist/{src/services → services}/job/job-rotation.js +0 -0
- /package/dist/{src/services → services}/job/job-state-store.d.ts +0 -0
- /package/dist/{src/services → services}/job/job-state-store.js +0 -0
- /package/dist/{src/services → services}/job/job-types.js +0 -0
- /package/dist/{src/services → services}/job/subagent-job-wrapper.d.ts +0 -0
- /package/dist/{src/services → services}/job/subagent-job-wrapper.js +0 -0
- /package/dist/{src/services → services}/legacy/legacy-detector.d.ts +0 -0
- /package/dist/{src/services → services}/legacy/legacy-detector.js +0 -0
- /package/dist/{src/services → services}/log/log-commands-service.d.ts +0 -0
- /package/dist/{src/services → services}/log/log-commands-service.js +0 -0
- /package/dist/{src/services → services}/log/logger.d.ts +0 -0
- /package/dist/{src/services → services}/log/logger.js +0 -0
- /package/dist/{src/services → services}/log/redact.d.ts +0 -0
- /package/dist/{src/services → services}/log/redact.js +0 -0
- /package/dist/{src/services → services}/loop/evaluator-dispatcher.d.ts +0 -0
- /package/dist/{src/services → services}/loop/evaluator-dispatcher.js +0 -0
- /package/dist/{src/services → services}/loop/monotonic-guard.d.ts +0 -0
- /package/dist/{src/services → services}/loop/monotonic-guard.js +0 -0
- /package/dist/{src/services → services}/loop/monotonic-runner.d.ts +0 -0
- /package/dist/{src/services → services}/loop/monotonic-runner.js +0 -0
- /package/dist/{src/services → services}/loop/run-driver.d.ts +0 -0
- /package/dist/{src/services → services}/loop/run-driver.js +0 -0
- /package/dist/{src/services → services}/loop/spec-service.d.ts +0 -0
- /package/dist/{src/services → services}/loop/spec-service.js +0 -0
- /package/dist/{src/services → services}/memory/llm-reranker.d.ts +0 -0
- /package/dist/{src/services → services}/memory/llm-reranker.js +0 -0
- /package/dist/{src/services → services}/memory/memory-search-service.d.ts +0 -0
- /package/dist/{src/services → services}/memory/memory-search-service.js +0 -0
- /package/dist/{src/services → services}/memory/project-memory-service.d.ts +0 -0
- /package/dist/{src/services → services}/memory/project-memory-service.js +0 -0
- /package/dist/{src/services → services}/migrate-skill-name/migrate.d.ts +0 -0
- /package/dist/{src/services → services}/migrate-skill-name/migrate.js +0 -0
- /package/dist/{src/services → services}/migrate-skill-name/schema.js +0 -0
- /package/dist/{src/services → services}/migration/v2-10-to-v2-11-service.d.ts +0 -0
- /package/dist/{src/services → services}/migration/v2-10-to-v2-11-service.js +0 -0
- /package/dist/{src/services → services}/migration/v2-10-to-v2-11-types.d.ts +0 -0
- /package/dist/{src/services → services}/migration/v2-10-to-v2-11-types.js +0 -0
- /package/dist/{src/services → services}/mode/bypass-tracker.d.ts +0 -0
- /package/dist/{src/services → services}/mode/bypass-tracker.js +0 -0
- /package/dist/{src/services → services}/mode/mode-enforcement.d.ts +0 -0
- /package/dist/{src/services → services}/mode/mode-enforcement.js +0 -0
- /package/dist/{src/services → services}/observability/aggregation.d.ts +0 -0
- /package/dist/{src/services → services}/observability/aggregation.js +0 -0
- /package/dist/{src/services → services}/observability/jsonl-store.d.ts +0 -0
- /package/dist/{src/services → services}/observability/jsonl-store.js +0 -0
- /package/dist/{src/services → services}/observability/observability-service.d.ts +0 -0
- /package/dist/{src/services → services}/observability/observability-service.js +0 -0
- /package/dist/{src/services → services}/observability/report-formatter.d.ts +0 -0
- /package/dist/{src/services → services}/observability/report-formatter.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-archive-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-bridge-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-init-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-propose-from-doctor-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-render-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-scan-service.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-types.d.ts +0 -0
- /package/dist/{src/services → services}/openspec/openspec-types.js +0 -0
- /package/dist/{src/services → services}/openspec/openspec-validate-service.d.ts +0 -0
- /package/dist/{src/services → services}/perf/perf-baseline-service.d.ts +0 -0
- /package/dist/{src/services → services}/perf/perf-baseline-service.js +0 -0
- /package/dist/{src/services/recommendations/recommendation-types.js → services/polyrepo/polyrepo-types.js} +0 -0
- /package/dist/{src/services → services}/prd/handoff-auto-regen.d.ts +0 -0
- /package/dist/{src/services → services}/prd/handoff-auto-regen.js +0 -0
- /package/dist/{src/services → services}/prd/handoff-service.d.ts +0 -0
- /package/dist/{src/services → services}/prd/handoff-service.js +0 -0
- /package/dist/{src/services → services}/prd/handoff-types.d.ts +0 -0
- /package/dist/{src/services → services}/prd/handoff-types.js +0 -0
- /package/dist/{src/services → services}/prd/prd-blocks-checker.d.ts +0 -0
- /package/dist/{src/services → services}/prd/prd-blocks-checker.js +0 -0
- /package/dist/{src/services → services}/prd/project-scan-reader.d.ts +0 -0
- /package/dist/{src/services → services}/prd/project-scan-reader.js +0 -0
- /package/dist/{src/services → services}/prd/project-scan-sediment.d.ts +0 -0
- /package/dist/{src/services → services}/prd/project-scan-sediment.js +0 -0
- /package/dist/{src/services → services}/prd/project-scan-types.d.ts +0 -0
- /package/dist/{src/services → services}/prd/project-scan-types.js +0 -0
- /package/dist/{src/services → services}/preferences/preferences-service.d.ts +0 -0
- /package/dist/{src/services → services}/preferences/preferences-service.js +0 -0
- /package/dist/{src/services → services}/preferences/preferences-types.js +0 -0
- /package/dist/{src/services → services}/profiles/profile-service.d.ts +0 -0
- /package/dist/{src/services → services}/profiles/profile-service.js +0 -0
- /package/dist/{src/services → services}/progress/progress-service.d.ts +0 -0
- /package/dist/{src/services → services}/progress/progress-service.js +0 -0
- /package/dist/{src/services → services}/proxy/proxy-service.d.ts +0 -0
- /package/dist/{src/services → services}/proxy/proxy-service.js +0 -0
- /package/dist/{src/services → services}/qa/browser-event-logger.d.ts +0 -0
- /package/dist/{src/services → services}/qa/browser-event-logger.js +0 -0
- /package/dist/{src/services → services}/qa/browser-restart-detector.d.ts +0 -0
- /package/dist/{src/services → services}/qa/browser-restart-detector.js +0 -0
- /package/dist/{src/services → services}/qa/browser-reuse-hint.d.ts +0 -0
- /package/dist/{src/services → services}/qa/browser-reuse-hint.js +0 -0
- /package/dist/{src/services → services}/qa/browser-wrapper-service.d.ts +0 -0
- /package/dist/{src/services → services}/qa/browser-wrapper-service.js +0 -0
- /package/dist/{src/services → services}/qa/qa-business-review-state.d.ts +0 -0
- /package/dist/{src/services → services}/qa/qa-business-review-state.js +0 -0
- /package/dist/{src/services → services}/rd/ast-gate.d.ts +0 -0
- /package/dist/{src/services → services}/rd/ast-gate.js +0 -0
- /package/dist/{src/services → services}/rd/impl.d.ts +0 -0
- /package/dist/{src/services → services}/rd/impl.js +0 -0
- /package/dist/{src/services → services}/rd/rd-service.d.ts +0 -0
- /package/dist/{src/services → services}/rd/reviewer-dispatch-policy.d.ts +0 -0
- /package/dist/{src/services → services}/rd/reviewer-dispatch-policy.js +0 -0
- /package/dist/{src/services → services}/rd/standards-diagnostic.d.ts +0 -0
- /package/dist/{src/services → services}/rd/standards-diagnostic.js +0 -0
- /package/dist/{src/services → services}/rd/strategic-stage.d.ts +0 -0
- /package/dist/{src/services → services}/rd/strategic-stage.js +0 -0
- /package/dist/{src/services → services}/rd/strategy.d.ts +0 -0
- /package/dist/{src/services → services}/rd/strategy.js +0 -0
- /package/dist/{src/services → services}/rd/tactical-stage.d.ts +0 -0
- /package/dist/{src/services → services}/rd/tactical-stage.js +0 -0
- /package/dist/{src/services → services}/rd/types.js +0 -0
- /package/dist/{src/services → services}/recommendations/capability-availability.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/capability-availability.js +0 -0
- /package/dist/{src/services → services}/recommendations/capability-map-service.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/capability-map-service.js +0 -0
- /package/dist/{src/services → services}/recommendations/capability-seed-items.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/capability-seed-mappings.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/capability-seed-sources.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/recommendation-service.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/recommendation-service.js +0 -0
- /package/dist/{src/services → services}/recommendations/recommendation-types.d.ts +0 -0
- /package/dist/{src/services/scan/scan-types.js → services/recommendations/recommendation-types.js} +0 -0
- /package/dist/{src/services → services}/recommendations/seed-capability-catalog.d.ts +0 -0
- /package/dist/{src/services → services}/recommendations/seed-capability-catalog.js +0 -0
- /package/dist/{src/services → services}/refactor/refactor-service.d.ts +0 -0
- /package/dist/{src/services → services}/refactor/refactor-service.js +0 -0
- /package/dist/{src/services → services}/release/release-state.d.ts +0 -0
- /package/dist/{src/services → services}/release/release-state.js +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-index.d.ts +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-index.js +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-search-service.d.ts +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-search-service.js +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-show.d.ts +0 -0
- /package/dist/{src/services → services}/retrospective/retrospective-show.js +0 -0
- /package/dist/{src/services → services}/reviewer/model-family.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/model-family.js +0 -0
- /package/dist/{src/services → services}/reviewer/providers/anthropic.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/providers/anthropic.js +0 -0
- /package/dist/{src/services → services}/reviewer/providers/ollama.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/providers/ollama.js +0 -0
- /package/dist/{src/services → services}/reviewer/providers/openai.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/providers/openai.js +0 -0
- /package/dist/{src/services → services}/reviewer/reviewer-config.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/reviewer-config.js +0 -0
- /package/dist/{src/services → services}/reviewer/reviewer-service.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/reviewer-service.js +0 -0
- /package/dist/{src/services → services}/reviewer/selection-strategies.d.ts +0 -0
- /package/dist/{src/services → services}/reviewer/selection-strategies.js +0 -0
- /package/dist/{src/services → services}/role/role-registry.d.ts +0 -0
- /package/dist/{src/services → services}/role/role-registry.js +0 -0
- /package/dist/{src/services/sediment/types.js → services/runtime/vendor-adapter.js} +0 -0
- /package/dist/{src/services → services}/sc/index.d.ts +0 -0
- /package/dist/{src/services → services}/sc/index.js +0 -0
- /package/dist/{src/services → services}/sc/sc-service.d.ts +0 -0
- /package/dist/{src/services → services}/sc/sc-service.js +0 -0
- /package/dist/{src/services → services}/scan/acceptance-coverage-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/api-surface-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/api-surface-service.js +0 -0
- /package/dist/{src/services → services}/scan/archetype-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/diff-scope-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/diff-scope-service.js +0 -0
- /package/dist/{src/services → services}/scan/existing-system-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/file-size-scan.d.ts +0 -0
- /package/dist/{src/services → services}/scan/file-size-scan.js +0 -0
- /package/dist/{src/services → services}/scan/karpathy-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/karpathy-service.js +0 -0
- /package/dist/{src/services → services}/scan/libraries-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/libraries-types.d.ts +0 -0
- /package/dist/{src/services → services}/scan/libraries-types.js +0 -0
- /package/dist/{src/services → services}/scan/orphan-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/orphan-service.js +0 -0
- /package/dist/{src/services/skillhub/types.js → services/scan/scan-types.js} +0 -0
- /package/dist/{src/services → services}/scan/type-sanity-service.d.ts +0 -0
- /package/dist/{src/services → services}/scan/type-sanity-service.js +0 -0
- /package/dist/{src/services → services}/security/safe-settings-path.d.ts +0 -0
- /package/dist/{src/services → services}/security/safe-settings-path.js +0 -0
- /package/dist/{src/services → services}/sediment/dispose-confirm.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/dispose-confirm.js +0 -0
- /package/dist/{src/services → services}/sediment/json-schema.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/json-schema.js +0 -0
- /package/dist/{src/services → services}/sediment/manifest-lint.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/manifest-lint.js +0 -0
- /package/dist/{src/services → services}/sediment/pool-paths.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/pool-paths.js +0 -0
- /package/dist/{src/services → services}/sediment/pool-read.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/pool-read.js +0 -0
- /package/dist/{src/services → services}/sediment/pool-rebuild-index.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/pool-rebuild-index.js +0 -0
- /package/dist/{src/services → services}/sediment/pool-write.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/pool-write.js +0 -0
- /package/dist/{src/services → services}/sediment/promotion-gate.d.ts +0 -0
- /package/dist/{src/services → services}/sediment/promotion-gate.js +0 -0
- /package/dist/{src/services → services}/sediment/types.d.ts +0 -0
- /package/dist/{src/services/understand/hybrid-types.js → services/sediment/types.js} +0 -0
- /package/dist/{src/services → services}/session/binding-status-service.d.ts +0 -0
- /package/dist/{src/services → services}/session/binding-status-service.js +0 -0
- /package/dist/{src/services → services}/session/binding-store.d.ts +0 -0
- /package/dist/{src/services → services}/session/binding-store.js +0 -0
- /package/dist/{src/services → services}/session/caller-binding-service.d.ts +0 -0
- /package/dist/{src/services → services}/session/caller-binding-service.js +0 -0
- /package/dist/{src/services → services}/session/caller-id-types.d.ts +0 -0
- /package/dist/{src/services → services}/session/caller-id-types.js +0 -0
- /package/dist/{src/services → services}/session/getSessionDir.d.ts +0 -0
- /package/dist/{src/services → services}/session/getSessionDir.js +0 -0
- /package/dist/{src/services → services}/session/index.d.ts +0 -0
- /package/dist/{src/services → services}/session/index.js +0 -0
- /package/dist/{src/services → services}/session/platform-fallbacks.d.ts +0 -0
- /package/dist/{src/services → services}/session/platform-fallbacks.js +0 -0
- /package/dist/{src/services → services}/session/resolve-caller-id.d.ts +0 -0
- /package/dist/{src/services → services}/session/resolve-caller-id.js +0 -0
- /package/dist/{src/services → services}/session/session-binding-bridge.d.ts +0 -0
- /package/dist/{src/services → services}/session/session-binding-bridge.js +0 -0
- /package/dist/{src/services → services}/session/session-checkpoint-service.d.ts +0 -0
- /package/dist/{src/services → services}/session/session-checkpoint-service.js +0 -0
- /package/dist/{src/services → services}/session/session-manager.d.ts +0 -0
- /package/dist/{src/services → services}/session/session-manager.js +0 -0
- /package/dist/{src/services → services}/session/session-resume-service.d.ts +0 -0
- /package/dist/{src/services → services}/session/session-resume-service.js +0 -0
- /package/dist/{src/services → services}/signal/cancel-handler.d.ts +0 -0
- /package/dist/{src/services → services}/signal/cancel-handler.js +0 -0
- /package/dist/{src/services → services}/skill/resume-detector.d.ts +0 -0
- /package/dist/{src/services → services}/skill/resume-detector.js +0 -0
- /package/dist/{src/services → services}/skill/skill-scheduler.d.ts +0 -0
- /package/dist/{src/services → services}/skill/skill-scheduler.js +0 -0
- /package/dist/{src/services → services}/skillhub/release-diff.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/release-diff.js +0 -0
- /package/dist/{src/services → services}/skillhub/release-export.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/release-export.js +0 -0
- /package/dist/{src/services → services}/skillhub/release-gc-blobs.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/release-gc-blobs.js +0 -0
- /package/dist/{src/services → services}/skillhub/release-import.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/release-retain.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/sqlite-store.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/tar-runtime.d.ts +0 -0
- /package/dist/{src/services → services}/skillhub/tar-runtime.js +0 -0
- /package/dist/{src/services/understand/understand-types.js → services/skillhub/types.js} +0 -0
- /package/dist/{src/services → services}/skills/hooks-settings-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/hooks-settings-service.js +0 -0
- /package/dist/{src/services → services}/skills/skill-conformance-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/skill-conformance-service.js +0 -0
- /package/dist/{src/services → services}/skills/skill-presence-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/skill-presence-service.js +0 -0
- /package/dist/{src/services → services}/skills/skill-runbook-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/skill-statusline-renderer.d.ts +0 -0
- /package/dist/{src/services → services}/skills/skill-statusline-renderer.js +0 -0
- /package/dist/{src/services → services}/skills/skill-statusline-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/skill-statusline-service.js +0 -0
- /package/dist/{src/services → services}/skills/statusline-settings-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/statusline-settings-service.js +0 -0
- /package/dist/{src/services → services}/skills/sync-service.d.ts +0 -0
- /package/dist/{src/services → services}/skills/sync-service.js +0 -0
- /package/dist/{src/services → services}/slice/calibration-store.d.ts +0 -0
- /package/dist/{src/services → services}/slice/calibration-store.js +0 -0
- /package/dist/{src/services → services}/slice/cross-pass-edge-merger.d.ts +0 -0
- /package/dist/{src/services → services}/slice/cross-pass-edge-merger.js +0 -0
- /package/dist/{src/services → services}/slice/granularity-decider.d.ts +0 -0
- /package/dist/{src/services → services}/slice/granularity-decider.js +0 -0
- /package/dist/{src/services → services}/slice/llm-arbitrator.d.ts +0 -0
- /package/dist/{src/services → services}/slice/llm-arbitrator.js +0 -0
- /package/dist/{src/services → services}/slice/multi-pass-orchestrator.d.ts +0 -0
- /package/dist/{src/services → services}/slice/multi-pass-orchestrator.js +0 -0
- /package/dist/{src/services → services}/slice/schema-router.d.ts +0 -0
- /package/dist/{src/services → services}/slice/schema-router.js +0 -0
- /package/dist/{src/services → services}/slice/slice-archive-service.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-archive-service.js +0 -0
- /package/dist/{src/services → services}/slice/slice-benchmark-service.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-benchmark-service.js +0 -0
- /package/dist/{src/services → services}/slice/slice-check-service.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-check-types.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-check-types.js +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-runners.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-runners.js +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-service.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-service.js +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-types.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-decompose-types.js +0 -0
- /package/dist/{src/services → services}/slice/slice-integration.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-integration.js +0 -0
- /package/dist/{src/services → services}/slice/slice-pick-service.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-pick-service.js +0 -0
- /package/dist/{src/services → services}/slice/slice-review-state.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-review-state.js +0 -0
- /package/dist/{src/services → services}/slice/slice-topology-types.d.ts +0 -0
- /package/dist/{src/services → services}/slice/slice-topology-types.js +0 -0
- /package/dist/{src/services → services}/smoke/smoke-paths-state.d.ts +0 -0
- /package/dist/{src/services → services}/smoke/smoke-paths-state.js +0 -0
- /package/dist/{src/services → services}/sop/gate-enforce-service.d.ts +0 -0
- /package/dist/{src/services → services}/sop/gate-enforce-service.js +0 -0
- /package/dist/{src/services → services}/sop/sop-advance-service.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-advance-service.js +0 -0
- /package/dist/{src/services → services}/sop/sop-check-service.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-check-service.js +0 -0
- /package/dist/{src/services → services}/sop/sop-paths.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-paths.js +0 -0
- /package/dist/{src/services → services}/sop/sop-registry-service.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-registry-service.js +0 -0
- /package/dist/{src/services → services}/sop/sop-service.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-service.js +0 -0
- /package/dist/{src/services → services}/sop/sop-types.d.ts +0 -0
- /package/dist/{src/services → services}/sop/sop-types.js +0 -0
- /package/dist/{src/services → services}/standards/ide-aware-standards-service.d.ts +0 -0
- /package/dist/{src/services → services}/standards/migrate-claude-rules-service.d.ts +0 -0
- /package/dist/{src/services → services}/standards/migrate-service.d.ts +0 -0
- /package/dist/{src/services → services}/standards/migrate-service.js +0 -0
- /package/dist/{src/services → services}/standards/project-context.d.ts +0 -0
- /package/dist/{src/services → services}/standards/project-context.js +0 -0
- /package/dist/{src/services → services}/standards/project-standards-service.d.ts +0 -0
- /package/dist/{src/services → services}/tech/tech-service.d.ts +0 -0
- /package/dist/{src/services → services}/tech/tech-service.js +0 -0
- /package/dist/{src/services → services}/test-cache/test-cache-service.d.ts +0 -0
- /package/dist/{src/services → services}/test-cache/test-cache-service.js +0 -0
- /package/dist/{src/services → services}/understand/hybrid-types.d.ts +0 -0
- /package/dist/{src/services → services}/understand/understand-hybrid-service.d.ts +0 -0
- /package/dist/{src/services → services}/understand/understand-scan-service.d.ts +0 -0
- /package/dist/{src/services → services}/understand/understand-types.d.ts +0 -0
- /package/dist/{src/services → services}/upgrade/1x-detector-service.d.ts +0 -0
- /package/dist/{src/services → services}/upgrade/1x-detector-service.js +0 -0
- /package/dist/{src/services → services}/upgrade/gitignore-migrate-service.d.ts +0 -0
- /package/dist/{src/services → services}/upgrade/gitignore-migrate-service.js +0 -0
- /package/dist/{src/services → services}/upgrade/upgrade-service.d.ts +0 -0
- /package/dist/{src/services → services}/verdict/verdict-aggregator.js +0 -0
- /package/dist/{src/services → services}/workflow/artifact-paths.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/artifact-paths.js +0 -0
- /package/dist/{src/services → services}/workflow/autonomous-resume-writer.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/pipeline-verify-service.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/pipeline-verify-service.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-autonomous-resume-helpers.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-autonomous-resume-helpers.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-autonomous-service.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-autonomous-service.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-loader.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-loader.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-skip-service.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-skip-service.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-spec.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-spec.js +0 -0
- /package/dist/{src/services → services}/workflow/workflow-state-store.d.ts +0 -0
- /package/dist/{src/services → services}/workflow/workflow-state-store.js +0 -0
- /package/dist/{src/services → services}/workspace/claude-settings-template.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/claude-settings-template.js +0 -0
- /package/dist/{src/services → services}/workspace/migrate-1-4-1-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/migrate-1-4-1-service.js +0 -0
- /package/dist/{src/services → services}/workspace/migrate-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/migrate-types.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/migrate-types.js +0 -0
- /package/dist/{src/services → services}/workspace/reconcile-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/reconcile-service.js +0 -0
- /package/dist/{src/services → services}/workspace/reconcile-types.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/reconcile-types.js +0 -0
- /package/dist/{src/services → services}/workspace/sid-naming-guard.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/sid-naming-guard.js +0 -0
- /package/dist/{src/services → services}/workspace/workspace-claude-settings-materializer.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/workspace-claude-settings-materializer.js +0 -0
- /package/dist/{src/services → services}/workspace/workspace-clean-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/workspace-clean-service.js +0 -0
- /package/dist/{src/services → services}/workspace/workspace-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/workspace-state-service.d.ts +0 -0
- /package/dist/{src/services → services}/workspace/workspace-state-service.js +0 -0
- /package/dist/{src/shared → shared}/format-md-compact.d.ts +0 -0
- /package/dist/{src/shared → shared}/format-md-compact.js +0 -0
- /package/dist/{src/shared → shared}/frontmatter.d.ts +0 -0
- /package/dist/{src/shared → shared}/frontmatter.js +0 -0
- /package/dist/{src/shared → shared}/fs-utils.d.ts +0 -0
- /package/dist/{src/shared → shared}/fs-utils.js +0 -0
- /package/dist/{src/shared → shared}/incrementing-number.d.ts +0 -0
- /package/dist/{src/shared → shared}/incrementing-number.js +0 -0
- /package/dist/{src/shared → shared}/json-schema-mini.d.ts +0 -0
- /package/dist/{src/shared → shared}/json-schema-mini.js +0 -0
- /package/dist/{src/shared → shared}/path-safety.d.ts +0 -0
- /package/dist/{src/shared → shared}/path-safety.js +0 -0
- /package/dist/{src/shared → shared}/path-utils.d.ts +0 -0
- /package/dist/{src/shared → shared}/path-utils.js +0 -0
- /package/dist/{src/shared → shared}/planner-response.d.ts +0 -0
- /package/dist/{src/shared → shared}/planner-response.js +0 -0
- /package/dist/{src/shared → shared}/platform.d.ts +0 -0
- /package/dist/{src/shared → shared}/platform.js +0 -0
- /package/dist/{src/shared → shared}/process.d.ts +0 -0
- /package/dist/{src/shared → shared}/process.js +0 -0
- /package/dist/{src/shared → shared}/stale-policy.d.ts +0 -0
- /package/dist/{src/shared → shared}/stale-policy.js +0 -0
- /package/dist/{src/skills → skills}/peaks-maker/index.d.ts +0 -0
- /package/dist/{src/skills → skills}/peaks-maker/index.js +0 -0
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* peaks standards migrate — .claude/rules/ tree thinning.
|
|
3
|
+
* Slice: 2026-06-12-standards-migrate-claude-rules.
|
|
4
|
+
*
|
|
5
|
+
* The 1.x peaks-loop install copied a thick .claude/rules
|
|
6
|
+
* tree (skill-first / CLI-auxiliary / dogfood / commit-trailer
|
|
7
|
+
* rules) into consumer projects. In 2.0, the canonical rules
|
|
8
|
+
* live at .peaks/standards/ and every markdown file under
|
|
9
|
+
* .claude/rules becomes a 2-line pointer to the canonical path.
|
|
10
|
+
*
|
|
11
|
+
* The service:
|
|
12
|
+
* 1. Backs up the existing `.claude/rules/` tree to
|
|
13
|
+
* `.claude/rules/.peaks-2.0-backup-<ts>/` (timestamped;
|
|
14
|
+
* safe to run multiple times).
|
|
15
|
+
* 2. Replaces each .md file under .claude/rules (recursive)
|
|
16
|
+
* with a 2-line pointer.
|
|
17
|
+
* 3. Scaffolds the 2.0 canonical rules at
|
|
18
|
+
* `.peaks/standards/{common,typescript}/`, but
|
|
19
|
+
* never overwrites existing files in `.peaks/standards/`.
|
|
20
|
+
*
|
|
21
|
+
* All operations are gated by `apply: true`. Dry-run mode
|
|
22
|
+
* returns the would-change diff without writing.
|
|
23
|
+
*/
|
|
24
|
+
import { existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from 'node:fs';
|
|
25
|
+
import { dirname, join } from 'node:path';
|
|
26
|
+
const POINTER_TEXT = (canonicalPath) => `# Canonical peaks-loop 2.0 rules live at: ${canonicalPath}\n# This file is a 2-line pointer. Edit the canonical file instead.\n`;
|
|
27
|
+
function timestampSlug() {
|
|
28
|
+
return new Date().toISOString().replace(/[:.]/g, '-');
|
|
29
|
+
}
|
|
30
|
+
function readMarkdownFilesRecursive(root) {
|
|
31
|
+
if (!existsSync(root))
|
|
32
|
+
return [];
|
|
33
|
+
const out = [];
|
|
34
|
+
const stat = statSync(root);
|
|
35
|
+
if (stat.isFile()) {
|
|
36
|
+
return root.endsWith('.md') ? [root] : [];
|
|
37
|
+
}
|
|
38
|
+
if (!stat.isDirectory())
|
|
39
|
+
return [];
|
|
40
|
+
for (const entry of readdirSync(root)) {
|
|
41
|
+
out.push(...readMarkdownFilesRecursive(join(root, entry)));
|
|
42
|
+
}
|
|
43
|
+
return out;
|
|
44
|
+
}
|
|
45
|
+
function isAlreadyPointer(filePath) {
|
|
46
|
+
if (!existsSync(filePath))
|
|
47
|
+
return false;
|
|
48
|
+
try {
|
|
49
|
+
const body = readFileSync(filePath, 'utf8');
|
|
50
|
+
return body.includes('Canonical peaks-loop 2.0 rules live at:');
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
const CANONICAL_2_0_DEV_PREFERENCE = `# Peaks-Loop dev preference (2.0 canonical)
|
|
57
|
+
|
|
58
|
+
> Project-local preference, captured from the 1.x install + re-rendered with the 2.0 vocabulary.
|
|
59
|
+
> Scope: applies to every iteration, adjustment, fix, or tweak on this project.
|
|
60
|
+
> Reading: read this **before** opening a new CLI command or routing a new feature through a CLI surface.
|
|
61
|
+
|
|
62
|
+
## Rule 1 — Skill-first, CLI-auxiliary
|
|
63
|
+
|
|
64
|
+
When designing or modifying a peaks-loop feature, default to the **skill-first** design. CLI commands are **invoked by the skill prompt** when they are the right primitive: a side effect that must be atomic, a gate that must be machine-enforced, a probe that needs structured JSON, or a backstop that prevents the LLM from skipping a step. Behaviour only an LLM in a skill prompt would use lives **in the relevant skill's SKILL.md**, not as a new CLI command. See \`.claude/rules/common/dev-preference.md\` for the decision template.
|
|
65
|
+
|
|
66
|
+
## Rule 2 — Dogfood on every adjustment
|
|
67
|
+
|
|
68
|
+
**Every adjustment, iteration, or fix-problem operation must be dogfood-tested in the current project before the work is declared complete.** No exceptions for "it's a small change", "just a comment update", or "just a SKILL.md line". The unit test suite is a subset of "current effect"; the dogfood is the full set. If a change passes unit tests but breaks a CLI command, the change is a regression.
|
|
69
|
+
|
|
70
|
+
## Rule 3 — Commits belong to the human
|
|
71
|
+
|
|
72
|
+
**No AI co-author trailer.** The commit is the human's. **Identity is global gitconfig only** (\`~/.gitconfig\`). Do not set, override, or shadow \`user.name\` / \`user.email\` at the repo level, via env vars, or via \`git -c user.*=...\`. The commit's recorded author and committer must both equal the global identity.
|
|
73
|
+
`;
|
|
74
|
+
const CANONICAL_2_0_CODING_STYLE_TS = `# TypeScript Coding Standards (2.0 canonical)
|
|
75
|
+
|
|
76
|
+
> Project-local standards, derived from the 1.x install + re-rendered with the 2.0 vocabulary.
|
|
77
|
+
|
|
78
|
+
- Apply project-local conventions before generic typescript guidance.
|
|
79
|
+
- Keep public APIs typed or documented according to typescript ecosystem norms.
|
|
80
|
+
- Do not add new \`any\` types; use explicit domain types, generics, or \`unknown\` with narrowing.
|
|
81
|
+
- Prefer standard tooling and existing project scripts for formatting, linting, tests, and coverage.
|
|
82
|
+
- peaks-rd must check this file before planning code changes in typescript projects.
|
|
83
|
+
`;
|
|
84
|
+
const CANONICAL_2_0_COMMON_FILES = [
|
|
85
|
+
{ relPath: 'common/dev-preference.md', content: CANONICAL_2_0_DEV_PREFERENCE },
|
|
86
|
+
{
|
|
87
|
+
relPath: 'common/coding-style.md',
|
|
88
|
+
content: '# Coding Standards (2.0 canonical)\n\n- Prefer simple, readable code over clever abstractions.\n- Keep functions focused and files cohesive.\n- Use immutable updates unless a language-specific convention explicitly favors mutation.\n- Validate user input, external data, file paths, and configuration at system boundaries.\n- Preserve existing project conventions when they are stricter than this baseline.\n',
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
relPath: 'common/code-review.md',
|
|
92
|
+
content: '# Code Review Standards (2.0 canonical)\n\n- Review diffs for correctness, maintainability, test coverage, and regression risk.\n- Treat missing tests for changed behavior as a blocker unless the change is documentation-only.\n- Verify code paths that handle filesystem, external APIs, credentials, user input, or generated artifacts.\n',
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
relPath: 'common/security.md',
|
|
96
|
+
content: '# Security Review Standards (2.0 canonical)\n\n- Never hardcode secrets, API keys, passwords, tokens, or credentials.\n- Do not send private code or secrets to external services without explicit user authorization.\n- Guard filesystem writes against path traversal, symlink, and junction escapes.\n- Require explicit confirmation for destructive actions, external state changes, and credential use.\n',
|
|
97
|
+
},
|
|
98
|
+
{ relPath: 'typescript/coding-style.md', content: CANONICAL_2_0_CODING_STYLE_TS },
|
|
99
|
+
];
|
|
100
|
+
export function migrateClaudeRules(input) {
|
|
101
|
+
const projectRoot = input.projectRoot;
|
|
102
|
+
const apply = input.apply === true;
|
|
103
|
+
const warnings = [];
|
|
104
|
+
const nextActions = [];
|
|
105
|
+
const claudeRulesDir = join(projectRoot, '.claude', 'rules');
|
|
106
|
+
const peaksStandardsDir = join(projectRoot, '.peaks', 'standards');
|
|
107
|
+
const canonicalRelPath = '.peaks/standards/';
|
|
108
|
+
const existingRulesFiles = readMarkdownFilesRecursive(claudeRulesDir);
|
|
109
|
+
// Exclude any prior `.peaks-2.0-backup-*` directory created by an
|
|
110
|
+
// earlier migration run. The backup is real content (not a pointer),
|
|
111
|
+
// so without this filter a second run would treat the backup dir as
|
|
112
|
+
// a fresh thick tree and re-thin / re-scaffold over it
|
|
113
|
+
// (slice 2026-07-15-ice-cola-dogfood).
|
|
114
|
+
const BACKUP_DIR_PREFIX = '.peaks-2.0-backup-';
|
|
115
|
+
const thickFiles = existingRulesFiles.filter((f) => {
|
|
116
|
+
if (isAlreadyPointer(f))
|
|
117
|
+
return false;
|
|
118
|
+
const relFromRules = f.slice(claudeRulesDir.length + 1);
|
|
119
|
+
const topSegment = relFromRules.split(/[\\/]/, 1)[0] ?? '';
|
|
120
|
+
return !topSegment.startsWith(BACKUP_DIR_PREFIX);
|
|
121
|
+
});
|
|
122
|
+
const hasThickFiles = thickFiles.length > 0;
|
|
123
|
+
// The backup path is computed eagerly (so dry-run can preview
|
|
124
|
+
// the would-create location) but only created on disk in
|
|
125
|
+
// apply mode. In dry-run mode we still return the path so
|
|
126
|
+
// the user can see where the backup will land.
|
|
127
|
+
const computedBackupPath = hasThickFiles ? join(claudeRulesDir, `.peaks-2.0-backup-${timestampSlug()}`) : null;
|
|
128
|
+
const backupPath = apply ? computedBackupPath : null;
|
|
129
|
+
const thinnedFiles = [];
|
|
130
|
+
const scaffoldedFiles = [];
|
|
131
|
+
const preservedFiles = [];
|
|
132
|
+
// wouldChange is true iff there is at least one thick file to
|
|
133
|
+
// thin. An empty .claude/rules/ is NOT a wouldChange (no-op).
|
|
134
|
+
const wouldChange = hasThickFiles;
|
|
135
|
+
if (apply && hasThickFiles) {
|
|
136
|
+
// Step 1: backup
|
|
137
|
+
if (backupPath !== null) {
|
|
138
|
+
try {
|
|
139
|
+
mkdirSync(backupPath, { recursive: true });
|
|
140
|
+
for (const file of thickFiles) {
|
|
141
|
+
const body = readFileSync(file, 'utf8');
|
|
142
|
+
const rel = file.slice(claudeRulesDir.length + 1);
|
|
143
|
+
const destPath = join(backupPath, rel);
|
|
144
|
+
// Each subdirectory under .claude/rules/ (e.g. common/,
|
|
145
|
+
// typescript/) needs to be materialised before writing —
|
|
146
|
+
// `mkdirSync(backupPath, { recursive: true })` only creates
|
|
147
|
+
// the top-level backup dir, not the nested language pack
|
|
148
|
+
// dirs. Without this mkdirSync, the first file written to
|
|
149
|
+
// a nested subdir ENOENTs and the whole backup silently
|
|
150
|
+
// becomes empty (slice 2026-07-15-ice-cola-dogfood).
|
|
151
|
+
mkdirSync(dirname(destPath), { recursive: true });
|
|
152
|
+
writeFileSync(destPath, body, 'utf8');
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
warnings.push(`Backup step failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// Step 2: replace each .md with a 2-line pointer
|
|
160
|
+
for (const file of thickFiles) {
|
|
161
|
+
try {
|
|
162
|
+
writeFileSync(file, POINTER_TEXT(canonicalRelPath), 'utf8');
|
|
163
|
+
thinnedFiles.push(file);
|
|
164
|
+
}
|
|
165
|
+
catch (err) {
|
|
166
|
+
warnings.push(`Thin step failed for ${file}: ${err instanceof Error ? err.message : String(err)}`);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
// Step 3: scaffold .peaks/standards/ — never overwrite existing
|
|
170
|
+
for (const file of CANONICAL_2_0_COMMON_FILES) {
|
|
171
|
+
const dest = join(peaksStandardsDir, file.relPath);
|
|
172
|
+
if (existsSync(dest)) {
|
|
173
|
+
preservedFiles.push(dest);
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
try {
|
|
177
|
+
mkdirSync(join(dest, '..'), { recursive: true });
|
|
178
|
+
writeFileSync(dest, file.content, 'utf8');
|
|
179
|
+
scaffoldedFiles.push(dest);
|
|
180
|
+
}
|
|
181
|
+
catch (err) {
|
|
182
|
+
warnings.push(`Scaffold step failed for ${file.relPath}: ${err instanceof Error ? err.message : String(err)}`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (thinnedFiles.length > 0) {
|
|
187
|
+
nextActions.push(`Thinned ${thinnedFiles.length} .md file(s) under .claude/rules (recursive) → 2-line pointer.`);
|
|
188
|
+
}
|
|
189
|
+
if (scaffoldedFiles.length > 0) {
|
|
190
|
+
nextActions.push(`Scaffolded ${scaffoldedFiles.length} 2.0 canonical rule(s) at .peaks/standards/.`);
|
|
191
|
+
}
|
|
192
|
+
if (preservedFiles.length > 0) {
|
|
193
|
+
nextActions.push(`Preserved ${preservedFiles.length} existing .peaks/standards/ file(s) (no overwrite).`);
|
|
194
|
+
}
|
|
195
|
+
if (backupPath !== null) {
|
|
196
|
+
nextActions.push(`Backup at ${backupPath} (git-ignored).`);
|
|
197
|
+
}
|
|
198
|
+
if (!apply && wouldChange) {
|
|
199
|
+
nextActions.push('Re-run with --apply to perform the migration.');
|
|
200
|
+
}
|
|
201
|
+
return {
|
|
202
|
+
ok: true,
|
|
203
|
+
data: {
|
|
204
|
+
backupPath,
|
|
205
|
+
thinnedFiles,
|
|
206
|
+
scaffoldedFiles,
|
|
207
|
+
preservedFiles,
|
|
208
|
+
wouldChange,
|
|
209
|
+
applied: apply && hasThickFiles,
|
|
210
|
+
nextActions,
|
|
211
|
+
},
|
|
212
|
+
warnings,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slice 2026-06-16-peaks-code-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
|
+
* `.peaks/standards/{common,<language>}/` (2.0 canonical) from the curated
|
|
7
|
+
* baseline; this module detects when the consumer project's rules tree is
|
|
8
|
+
* missing or empty and emits 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
|
+
* List which standards tree components are missing vs populated.
|
|
47
|
+
*
|
|
48
|
+
* Returns one of three stable shapes:
|
|
49
|
+
* - { kind: 'complete' } — both common + language overlay populated
|
|
50
|
+
* - { kind: 'common-missing' } — common dir absent/empty (universal)
|
|
51
|
+
* - { kind: 'language-missing', language } — common ok, language overlay absent/empty
|
|
52
|
+
*
|
|
53
|
+
* The detector previously returned a single boolean that flipped to
|
|
54
|
+
* "missing: true" the moment the language overlay was empty, but printed
|
|
55
|
+
* the remediation as if BOTH common AND language were missing — a UX bug
|
|
56
|
+
* that surfaced in ice-cola (common=4 .md files; typescript=1 .md file;
|
|
57
|
+
* javascript overlay absent → label said "no project-local standards found"
|
|
58
|
+
* even though common was clearly populated). This split lets the CLI emit
|
|
59
|
+
* a precise remediation string per kind.
|
|
60
|
+
*/
|
|
61
|
+
export type StandardsTreeDiagnostic = {
|
|
62
|
+
readonly kind: 'complete';
|
|
63
|
+
} | {
|
|
64
|
+
readonly kind: 'common-missing';
|
|
65
|
+
} | {
|
|
66
|
+
readonly kind: 'language-missing';
|
|
67
|
+
readonly language: StandardsLanguage;
|
|
68
|
+
};
|
|
69
|
+
export declare function diagnoseStandardsTree(projectRoot: string, language: StandardsLanguage): StandardsTreeDiagnostic;
|
|
70
|
+
/**
|
|
71
|
+
* Detect whether a consumer project's `.peaks/standards/` tree (2.0
|
|
72
|
+
* canonical) is missing or empty.
|
|
73
|
+
*
|
|
74
|
+
* Rules (per PRD R2, slice 2026-07-15):
|
|
75
|
+
* - `.peaks/standards/common/` MUST exist AND contain at least one
|
|
76
|
+
* `.md` file.
|
|
77
|
+
* - `.peaks/standards/<language>/` MUST exist AND contain at least one
|
|
78
|
+
* `.md` file — except for `generic`, where the language dir is
|
|
79
|
+
* OPTIONAL.
|
|
80
|
+
*
|
|
81
|
+
* Returns `{ missing: true, ... }` when either required dir is absent or
|
|
82
|
+
* empty. The diagnostic is always populated so the caller can surface the
|
|
83
|
+
* remediation hint unconditionally (the CLI uses the same string for both
|
|
84
|
+
* the stderr banner and the JSON envelope warning).
|
|
85
|
+
*/
|
|
86
|
+
export declare function detectMissingProjectStandards(projectRoot: string, language: StandardsLanguage): MissingProjectStandardsDiagnostic;
|
|
87
|
+
/**
|
|
88
|
+
* Once-per-session marker file path. The CLI writes this file under
|
|
89
|
+
* `.peaks/_runtime/<sessionId>/` after the first diagnostic pass so that
|
|
90
|
+
* subsequent `peaks workspace init` invocations within the same session
|
|
91
|
+
* skip the stderr banner (the diagnostic is still computable for
|
|
92
|
+
* programmatic consumers via `detectMissingProjectStandards`).
|
|
93
|
+
*/
|
|
94
|
+
export declare function getStandardsCheckedMarkerPath(projectRoot: string, sessionId: string): string;
|
|
95
|
+
/**
|
|
96
|
+
* Mark this session as "standards checked" so subsequent invocations can
|
|
97
|
+
* skip the stderr diagnostic. Idempotent: existing marker is left as-is.
|
|
98
|
+
* Returns true if the marker was newly created, false if it already existed.
|
|
99
|
+
*/
|
|
100
|
+
export declare function markStandardsChecked(projectRoot: string, sessionId: string): boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Test seam: check whether the once-per-session marker exists. Caller is
|
|
103
|
+
* responsible for routing the result into the AC7 dedup logic.
|
|
104
|
+
*/
|
|
105
|
+
export declare function hasStandardsCheckedMarker(projectRoot: string, sessionId: string): boolean;
|
|
106
|
+
export declare const platformPathSeparator: "\\" | "/";
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slice 2026-06-16-peaks-code-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
|
+
* `.peaks/standards/{common,<language>}/` (2.0 canonical) from the curated
|
|
7
|
+
* baseline; this module detects when the consumer project's rules tree is
|
|
8
|
+
* missing or empty and emits 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
|
+
//
|
|
46
|
+
// 2.0 canonical location: `<projectRoot>/.peaks/standards/`
|
|
47
|
+
// (slice 2026-07-15-missing-standards-on-fresh-project — the 2.0
|
|
48
|
+
// writer scaffolds the rules tree under `.peaks/standards/`, not
|
|
49
|
+
// the legacy `.claude/rules/`).
|
|
50
|
+
if (process.platform === 'win32') {
|
|
51
|
+
const nativeRoot = projectRoot.replace(/\//g, '\\');
|
|
52
|
+
return `${nativeRoot}\\.peaks\\standards`;
|
|
53
|
+
}
|
|
54
|
+
return `${projectRoot}/.peaks/standards`;
|
|
55
|
+
}
|
|
56
|
+
function hasPopulatedMarkdown(dir) {
|
|
57
|
+
if (!existsSync(dir))
|
|
58
|
+
return false;
|
|
59
|
+
const stat = statSync(dir);
|
|
60
|
+
if (!stat.isDirectory())
|
|
61
|
+
return false;
|
|
62
|
+
const entries = readdirSync(dir);
|
|
63
|
+
return entries.some((entry) => entry.toLowerCase().endsWith('.md'));
|
|
64
|
+
}
|
|
65
|
+
export function diagnoseStandardsTree(projectRoot, language) {
|
|
66
|
+
if (!SUPPORTED_LANGUAGES.has(language)) {
|
|
67
|
+
throw new Error(`Unsupported standards language: ${String(language)}`);
|
|
68
|
+
}
|
|
69
|
+
const normalizedRoot = normalizeProjectRoot(projectRoot);
|
|
70
|
+
const commonDir = join(normalizedRoot, '.peaks', 'standards', 'common');
|
|
71
|
+
const languageDir = language === 'generic'
|
|
72
|
+
? null
|
|
73
|
+
: join(normalizedRoot, '.peaks', 'standards', language);
|
|
74
|
+
const commonOk = hasPopulatedMarkdown(commonDir);
|
|
75
|
+
const languageOk = languageDir === null ? true : hasPopulatedMarkdown(languageDir);
|
|
76
|
+
if (commonOk && languageOk) {
|
|
77
|
+
return { kind: 'complete' };
|
|
78
|
+
}
|
|
79
|
+
if (!commonOk) {
|
|
80
|
+
return { kind: 'common-missing' };
|
|
81
|
+
}
|
|
82
|
+
// common ok, language overlay empty/missing
|
|
83
|
+
return { kind: 'language-missing', language };
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Detect whether a consumer project's `.peaks/standards/` tree (2.0
|
|
87
|
+
* canonical) is missing or empty.
|
|
88
|
+
*
|
|
89
|
+
* Rules (per PRD R2, slice 2026-07-15):
|
|
90
|
+
* - `.peaks/standards/common/` MUST exist AND contain at least one
|
|
91
|
+
* `.md` file.
|
|
92
|
+
* - `.peaks/standards/<language>/` MUST exist AND contain at least one
|
|
93
|
+
* `.md` file — except for `generic`, where the language dir is
|
|
94
|
+
* OPTIONAL.
|
|
95
|
+
*
|
|
96
|
+
* Returns `{ missing: true, ... }` when either required dir is absent or
|
|
97
|
+
* empty. The diagnostic is always populated so the caller can surface the
|
|
98
|
+
* remediation hint unconditionally (the CLI uses the same string for both
|
|
99
|
+
* the stderr banner and the JSON envelope warning).
|
|
100
|
+
*/
|
|
101
|
+
export function detectMissingProjectStandards(projectRoot, language) {
|
|
102
|
+
if (!SUPPORTED_LANGUAGES.has(language)) {
|
|
103
|
+
throw new Error(`Unsupported standards language: ${String(language)}`);
|
|
104
|
+
}
|
|
105
|
+
const normalizedRoot = normalizeProjectRoot(projectRoot);
|
|
106
|
+
const renderedPath = renderForPlatform(normalizedRoot);
|
|
107
|
+
const diagnostic = diagnoseStandardsTree(projectRoot, language);
|
|
108
|
+
// Bug-01 fix (ice-cola surface check 2026-07-22): the previous
|
|
109
|
+
// remediation said "no project-local standards found" whenever EITHER
|
|
110
|
+
// common or the language overlay was empty, which misrepresented
|
|
111
|
+
// projects that have common populated but a missing language overlay
|
|
112
|
+
// (e.g. ice-cola has common/*.md + typescript/coding-style.md but no
|
|
113
|
+
// javascript/coding-style.md). The remediation now distinguishes the
|
|
114
|
+
// three kinds so the operator gets a precise hint.
|
|
115
|
+
let missing;
|
|
116
|
+
let remediation;
|
|
117
|
+
if (diagnostic.kind === 'complete') {
|
|
118
|
+
missing = false;
|
|
119
|
+
remediation = `Project-local standards already present at ${renderedPath}. Re-run \`peaks standards init --project ${normalizedRoot} --apply\` to refresh from the curated baseline.`;
|
|
120
|
+
}
|
|
121
|
+
else if (diagnostic.kind === 'common-missing') {
|
|
122
|
+
missing = true;
|
|
123
|
+
remediation = `⚠ no project-local common standards at ${renderedPath} — run \`peaks standards init --project ${normalizedRoot} --apply\` to scaffold (language: ${language}), or pass --init-standards to peaks workspace init for one-shot auto-apply.`;
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
missing = true;
|
|
127
|
+
const overlayName = diagnostic.language;
|
|
128
|
+
remediation = `⚠ common standards present at ${renderedPath}\\common but ${overlayName} language overlay is missing — run \`peaks standards init --project ${normalizedRoot} --apply\` to scaffold the ${overlayName} overlay (or pass --init-standards to peaks workspace init for one-shot auto-apply).`;
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
missing,
|
|
132
|
+
path: renderedPath,
|
|
133
|
+
remediation,
|
|
134
|
+
language
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Once-per-session marker file path. The CLI writes this file under
|
|
139
|
+
* `.peaks/_runtime/<sessionId>/` after the first diagnostic pass so that
|
|
140
|
+
* subsequent `peaks workspace init` invocations within the same session
|
|
141
|
+
* skip the stderr banner (the diagnostic is still computable for
|
|
142
|
+
* programmatic consumers via `detectMissingProjectStandards`).
|
|
143
|
+
*/
|
|
144
|
+
export function getStandardsCheckedMarkerPath(projectRoot, sessionId) {
|
|
145
|
+
const normalizedRoot = normalizeProjectRoot(projectRoot);
|
|
146
|
+
// Canonical session runtime dir — see `.peaks/memory/session-dir-canonical-resolver-must-route-all-writes.md`.
|
|
147
|
+
return join(normalizedRoot, '.peaks', '_runtime', sessionId, '.standards-checked');
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Mark this session as "standards checked" so subsequent invocations can
|
|
151
|
+
* skip the stderr diagnostic. Idempotent: existing marker is left as-is.
|
|
152
|
+
* Returns true if the marker was newly created, false if it already existed.
|
|
153
|
+
*/
|
|
154
|
+
export function markStandardsChecked(projectRoot, sessionId) {
|
|
155
|
+
const markerPath = getStandardsCheckedMarkerPath(projectRoot, sessionId);
|
|
156
|
+
if (existsSync(markerPath))
|
|
157
|
+
return false;
|
|
158
|
+
mkdirSync(join(markerPath, '..'), { recursive: true });
|
|
159
|
+
writeFileSync(markerPath, 'standards-checked\n', 'utf8');
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Test seam: check whether the once-per-session marker exists. Caller is
|
|
164
|
+
* responsible for routing the result into the AC7 dedup logic.
|
|
165
|
+
*/
|
|
166
|
+
export function hasStandardsCheckedMarker(projectRoot, sessionId) {
|
|
167
|
+
return existsSync(getStandardsCheckedMarkerPath(projectRoot, sessionId));
|
|
168
|
+
}
|
|
169
|
+
// Re-export path.sep for tests that want to assert the platform invariant.
|
|
170
|
+
export const platformPathSeparator = pathSep;
|