@event4u/agent-config 9.8.0 → 9.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +234 -295
- package/CONTRIBUTING.md +23 -7
- package/MIGRATION.md +20 -0
- package/README.md +55 -9
- package/dist/agent-src/commands/agent-status.md +12 -11
- package/dist/agent-src/commands/agents/audit.md +1 -1
- package/dist/agent-src/commands/agents/optimize.md +2 -2
- package/dist/agent-src/commands/agents/user/accept.md +115 -30
- package/dist/agent-src/commands/agents/user/delete.md +147 -0
- package/dist/agent-src/commands/agents/user/review.md +65 -28
- package/dist/agent-src/commands/agents/user/show.md +82 -29
- package/dist/agent-src/commands/agents/user/update.md +2 -2
- package/dist/agent-src/commands/agents/user.md +17 -4
- package/dist/agent-src/commands/agents.md +1 -1
- package/dist/agent-src/commands/check-current-md.md +3 -13
- package/dist/agent-src/commands/condense.md +28 -97
- package/dist/agent-src/commands/cost/report.md +7 -0
- package/dist/agent-src/commands/fix/portability.md +2 -10
- package/dist/agent-src/commands/fix/pr-comments-loop.md +136 -0
- package/dist/agent-src/commands/fix/refs.md +2 -10
- package/dist/agent-src/commands/fix/route.md +4 -3
- package/dist/agent-src/commands/fix.md +9 -6
- package/dist/agent-src/commands/ghostwriter.md +1 -1
- package/dist/agent-src/commands/humanize.md +2 -2
- package/dist/agent-src/commands/image.md +1 -1
- package/dist/agent-src/commands/jira-ticket.md +1 -1
- package/dist/agent-src/commands/memory/load.md +11 -0
- package/dist/agent-src/commands/optimize/augmentignore.md +1 -1
- package/dist/agent-src/commands/optimize/skills.md +3 -3
- package/dist/agent-src/commands/post-as.md +1 -1
- package/dist/agent-src/commands/pr/create.md +4 -4
- package/dist/agent-src/commands/profile/show.md +3 -3
- package/dist/agent-src/commands/research.md +1 -1
- package/dist/agent-src/commands/roadmap/ai-council.md +1 -1
- package/dist/agent-src/commands/rule-compliance-audit.md +5 -4
- package/dist/agent-src/commands/sync/gitignore/fix.md +1 -1
- package/dist/agent-src/commands/tdd.md +21 -0
- package/dist/agent-src/commands/team/delegate.md +4 -0
- package/dist/agent-src/commands/team-knowledge/bootstrap.md +9 -8
- package/dist/agent-src/commands/team-knowledge/consolidate.md +8 -7
- package/dist/agent-src/commands/team.md +4 -1
- package/dist/agent-src/commands/upstream-contribute.md +0 -1
- package/dist/agent-src/commands/video.md +1 -1
- package/dist/agent-src/contexts/authority/commit-mechanics.md +7 -0
- package/dist/agent-src/contexts/authority/destructive-mechanics.md +16 -0
- package/dist/agent-src/contexts/authority/kernel-rule-edits.md +1 -1
- package/dist/agent-src/contexts/authority/scope-mechanics.md +61 -0
- package/dist/agent-src/contexts/communication/rules-auto/reply-close-mechanics.md +20 -18
- package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
- package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +1 -1
- package/dist/agent-src/contexts/communication/rules-auto/source-of-truth-mechanics.md +9 -10
- package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +1 -1
- package/dist/agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +11 -0
- package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +26 -15
- package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +3 -0
- package/dist/agent-src/contexts/contracts/emergency-triage-block.md +2 -2
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +99 -23
- package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +1 -1
- package/dist/agent-src/contexts/execution/autonomy-examples.md +1 -1
- package/dist/agent-src/contexts/execution/autonomy-mechanics.md +7 -6
- package/dist/agent-src/contexts/execution/evidence-discipline.md +92 -77
- package/dist/agent-src/contexts/execution/orchestration-benchmark-gate.md +22 -21
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +34 -0
- package/dist/agent-src/contexts/execution/project-intelligence.md +122 -103
- package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +23 -21
- package/dist/agent-src/contexts/execution/subagent-modes-detail.md +109 -8
- package/dist/agent-src/contexts/execution/subagent-response-contract.md +20 -0
- package/dist/agent-src/contexts/execution/subagent-routing.md +11 -0
- package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +53 -3
- package/dist/agent-src/contexts/execution/subagent-steering.md +36 -34
- package/dist/agent-src/contexts/execution/toolchain-resolver.md +1 -1
- package/dist/agent-src/contexts/execution/user-memory-channels.md +189 -0
- package/dist/agent-src/contexts/execution/verification-mechanics.md +9 -0
- package/dist/agent-src/contexts/model-recommendations.md +3 -2
- package/dist/agent-src/contexts/subagent-configuration.md +3 -3
- package/dist/agent-src/ghostwriter/README.md +2 -2
- package/dist/agent-src/packs/README.md +1 -1
- package/dist/agent-src/personas/README.md +5 -5
- package/dist/agent-src/personas/_template-specialist/persona.md +3 -3
- package/dist/agent-src/personas/backend-architect.md +24 -23
- package/dist/agent-src/personas/eloquent-tamer.md +30 -30
- package/dist/agent-src/personas/frontend-engineer.md +30 -30
- package/dist/agent-src/personas/product-owner.md +41 -38
- package/dist/agent-src/personas/qa.md +13 -13
- package/dist/agent-src/personas/security-engineer.md +22 -22
- package/dist/agent-src/presets/README.md +3 -3
- package/dist/agent-src/profiles/README.md +3 -3
- package/dist/agent-src/rules/active-remediation.md +2 -2
- package/dist/agent-src/rules/artifact-engagement-recording.md +4 -4
- package/dist/agent-src/rules/ask-when-uncertain.md +0 -4
- package/dist/agent-src/rules/augment-edit-discipline.md +1 -1
- package/dist/agent-src/rules/broken-access-control.md +4 -4
- package/dist/agent-src/rules/code-comment-discipline.md +1 -1
- package/dist/agent-src/rules/code-provenance.md +112 -0
- package/dist/agent-src/rules/commit-policy.md +4 -9
- package/dist/agent-src/rules/communication-through-line.md +5 -5
- package/dist/agent-src/rules/decision-revisit-gate.md +1 -1
- package/dist/agent-src/rules/doc-screenshot-hygiene.md +1 -1
- package/dist/agent-src/rules/domain-adoption-policy.md +1 -1
- package/dist/agent-src/rules/domain-safety-pii.md +1 -1
- package/dist/agent-src/rules/external-code-graph-interop.md +5 -5
- package/dist/agent-src/rules/fast-path-marker-visibility.md +43 -7
- package/dist/agent-src/rules/finance-safety-floor.md +1 -1
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +3 -3
- package/dist/agent-src/rules/history-discipline.md +80 -0
- package/dist/agent-src/rules/legal-safety-floor.md +1 -1
- package/dist/agent-src/rules/lethal-trifecta-guard.md +5 -5
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +10 -8
- package/dist/agent-src/rules/media-governance-routing.md +13 -13
- package/dist/agent-src/rules/media-sync-ground-truth.md +29 -11
- package/dist/agent-src/rules/no-cheap-questions.md +7 -7
- package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +29 -18
- package/dist/agent-src/rules/no-roadmap-references.md +1 -1
- package/dist/agent-src/rules/non-destructive-by-default.md +5 -23
- package/dist/agent-src/rules/onboarding-gate.md +14 -4
- package/dist/agent-src/rules/persona-governance.md +2 -2
- package/dist/agent-src/rules/php-coding.md +1 -0
- package/dist/agent-src/rules/prefer-enums-over-literals.md +9 -9
- package/dist/agent-src/rules/preservation-guard.md +10 -2
- package/dist/agent-src/rules/question-not-instruction.md +1 -1
- package/dist/agent-src/rules/reviewer-awareness.md +1 -0
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +1 -0
- package/dist/agent-src/rules/roadmap-progress-sync.md +7 -0
- package/dist/agent-src/rules/rule-type-governance.md +1 -1
- package/dist/agent-src/rules/scale-discipline.md +92 -0
- package/dist/agent-src/rules/scope-control.md +1 -1
- package/dist/agent-src/rules/secret-vcs-guard.md +1 -1
- package/dist/agent-src/rules/security-sensitive-stop.md +24 -8
- package/dist/agent-src/rules/senior-engineering-discipline.md +17 -17
- package/dist/agent-src/rules/session-canary.md +77 -0
- package/dist/agent-src/rules/skill-quality.md +1 -1
- package/dist/agent-src/rules/source-confidentiality.md +21 -19
- package/dist/agent-src/rules/source-of-truth.md +6 -5
- package/dist/agent-src/rules/spreadsheet-source-quality.md +2 -2
- package/dist/agent-src/rules/strategy-safety-floor.md +1 -1
- package/dist/agent-src/rules/think-before-action.md +5 -5
- package/dist/agent-src/rules/token-budget-discipline.md +5 -3
- package/dist/agent-src/rules/token-efficiency.md +2 -2
- package/dist/agent-src/rules/token-optimizer-maintenance.md +1 -1
- package/dist/agent-src/rules/tool-safety.md +3 -1
- package/dist/agent-src/rules/untrusted-input-defense.md +10 -0
- package/dist/agent-src/rules/user-interaction.md +12 -0
- package/dist/agent-src/rules/verify-before-complete.md +4 -24
- package/dist/agent-src/skills/adversarial-review/SKILL.md +2 -2
- package/dist/agent-src/skills/agent-security-review/SKILL.md +53 -46
- package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +2 -2
- package/dist/agent-src/skills/ai-code-blindspots/SKILL.md +20 -20
- package/dist/agent-src/skills/ai-council/SKILL.md +185 -128
- package/dist/agent-src/skills/analysis-skill-router/SKILL.md +3 -3
- package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -2
- package/dist/agent-src/skills/artisan-commands/SKILL.md +2 -2
- package/dist/agent-src/skills/async-python-patterns/SKILL.md +8 -7
- package/dist/agent-src/skills/authz-review/SKILL.md +16 -15
- package/dist/agent-src/skills/aws-infrastructure/SKILL.md +5 -5
- package/dist/agent-src/skills/blade-ui/SKILL.md +1 -1
- package/dist/agent-src/skills/bug-analyzer/SKILL.md +30 -12
- package/dist/agent-src/skills/code-intelligence/SKILL.md +17 -15
- package/dist/agent-src/skills/code-intelligence/evals/triggers.json +52 -0
- package/dist/agent-src/skills/code-review/SKILL.md +6 -6
- package/dist/agent-src/skills/command-routing/SKILL.md +5 -4
- package/dist/agent-src/skills/composer-packages/SKILL.md +2 -2
- package/dist/agent-src/skills/condense-memory/SKILL.md +43 -41
- package/dist/agent-src/skills/context-document/SKILL.md +23 -21
- package/dist/agent-src/skills/copilot-config/SKILL.md +6 -1
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +0 -3
- package/dist/agent-src/skills/decision-record/SKILL.md +20 -18
- package/dist/agent-src/skills/description-assist/SKILL.md +1 -1
- package/dist/agent-src/skills/design-intelligence/SKILL.md +4 -4
- package/dist/agent-src/skills/design-review/SKILL.md +20 -20
- package/dist/agent-src/skills/design-system-capture/reference/design-system-json.md +28 -25
- package/dist/agent-src/skills/design-tokens/SKILL.md +0 -1
- package/dist/agent-src/skills/devcontainer/SKILL.md +2 -2
- package/dist/agent-src/skills/docker/SKILL.md +1 -1
- package/dist/agent-src/skills/docx-authoring/evals/triggers.json +52 -0
- package/dist/agent-src/skills/emit-tickets/SKILL.md +2 -2
- package/dist/agent-src/skills/error-handling-patterns/SKILL.md +1 -1
- package/dist/agent-src/skills/estimate-ticket/SKILL.md +2 -2
- package/dist/agent-src/skills/evaluate-llm-feature/SKILL.md +0 -1
- package/dist/agent-src/skills/evaluate-llm-feature/evals/triggers.json +52 -0
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +6 -5
- package/dist/agent-src/skills/feature-planning/SKILL.md +2 -2
- package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +3 -3
- package/dist/agent-src/skills/flux/SKILL.md +1 -1
- package/dist/agent-src/skills/frontend-render-security/SKILL.md +13 -13
- package/dist/agent-src/skills/git-workflow/SKILL.md +33 -33
- package/dist/agent-src/skills/grafana/SKILL.md +5 -0
- package/dist/agent-src/skills/history-design/SKILL.md +101 -0
- package/dist/agent-src/skills/history-design/evals/triggers.json +17 -0
- package/dist/agent-src/skills/humanizer/SKILL.md +84 -67
- package/dist/agent-src/skills/humanizer/data/patterns.md +14 -14
- package/dist/agent-src/skills/humanizer/references/anti-aiisms.md +4 -4
- package/dist/agent-src/skills/image-editing/SKILL.md +1 -1
- package/dist/agent-src/skills/image-generation/SKILL.md +2 -1
- package/dist/agent-src/skills/image-provider-routing/SKILL.md +2 -2
- package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +82 -37
- package/dist/agent-src/skills/judge-bug-hunter/SKILL.md +17 -5
- package/dist/agent-src/skills/judge-injection-defense/SKILL.md +63 -25
- package/dist/agent-src/skills/judge-security-auditor/SKILL.md +2 -0
- package/dist/agent-src/skills/judge-synthesis/SKILL.md +72 -28
- package/dist/agent-src/skills/laravel-horizon/SKILL.md +5 -0
- package/dist/agent-src/skills/laravel-mail/SKILL.md +5 -4
- package/dist/agent-src/skills/laravel-middleware/SKILL.md +5 -4
- package/dist/agent-src/skills/laravel-notifications/SKILL.md +10 -9
- package/dist/agent-src/skills/laravel-pennant/SKILL.md +1 -1
- package/dist/agent-src/skills/laravel-pulse/SKILL.md +9 -8
- package/dist/agent-src/skills/laravel-reverb/SKILL.md +6 -5
- package/dist/agent-src/skills/laravel-scheduling/SKILL.md +6 -1
- package/dist/agent-src/skills/laravel-validation/SKILL.md +12 -0
- package/dist/agent-src/skills/launch-readiness/SKILL.md +2 -2
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +7 -7
- package/dist/agent-src/skills/learning-tutor/SKILL.md +44 -43
- package/dist/agent-src/skills/learning-tutor/evals/triggers.json +52 -0
- package/dist/agent-src/skills/license-compliance-audit/SKILL.md +161 -0
- package/dist/agent-src/skills/license-compliance-audit/evals/triggers.json +52 -0
- package/dist/agent-src/skills/license-compliance-borrow-check/SKILL.md +145 -0
- package/dist/agent-src/skills/license-compliance-borrow-check/evals/triggers.json +52 -0
- package/dist/agent-src/skills/license-compliance-credits/SKILL.md +97 -0
- package/dist/agent-src/skills/license-compliance-credits/evals/triggers.json +52 -0
- package/dist/agent-src/skills/llm-provider-knowledge/SKILL.md +0 -1
- package/dist/agent-src/skills/md-language-check/SKILL.md +1 -1
- package/dist/agent-src/skills/memory-consolidation/SKILL.md +69 -64
- package/dist/agent-src/skills/motion-choreographer/SKILL.md +6 -6
- package/dist/agent-src/skills/override-management/SKILL.md +1 -1
- package/dist/agent-src/skills/pdf-tools/evals/triggers.json +52 -0
- package/dist/agent-src/skills/performance-analysis/SKILL.md +7 -3
- package/dist/agent-src/skills/persona-improvement/SKILL.md +0 -2
- package/dist/agent-src/skills/persona-improvement/evals/triggers.json +52 -0
- package/dist/agent-src/skills/php-coder/SKILL.md +10 -0
- package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +136 -127
- package/dist/agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +36 -35
- package/dist/agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +45 -41
- package/dist/agent-src/skills/project-analysis-core/SKILL.md +5 -5
- package/dist/agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +3 -3
- package/dist/agent-src/skills/project-analysis-react/SKILL.md +1 -1
- package/dist/agent-src/skills/project-analysis-symfony/SKILL.md +1 -1
- package/dist/agent-src/skills/project-analysis-zend-laminas/SKILL.md +2 -2
- package/dist/agent-src/skills/prompt-engineering-image/SKILL.md +3 -2
- package/dist/agent-src/skills/prompt-engineering-patterns/SKILL.md +1 -1
- package/dist/agent-src/skills/prompt-validator/SKILL.md +39 -39
- package/dist/agent-src/skills/quality-tools/SKILL.md +15 -15
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +57 -21
- package/dist/agent-src/skills/react-shadcn-ui/reference/registry.md +29 -27
- package/dist/agent-src/skills/readme-writing-package/SKILL.md +2 -2
- package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +25 -25
- package/dist/agent-src/skills/recursive-verification/SKILL.md +7 -0
- package/dist/agent-src/skills/refine-prompt/SKILL.md +1 -1
- package/dist/agent-src/skills/refine-ticket/SKILL.md +23 -5
- package/dist/agent-src/skills/repomix-packer/SKILL.md +1 -1
- package/dist/agent-src/skills/requesting-code-review/SKILL.md +2 -2
- package/dist/agent-src/skills/roadmap-management/SKILL.md +80 -66
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +84 -73
- package/dist/agent-src/skills/rtk-output-filtering/SKILL.md +31 -12
- package/dist/agent-src/skills/rule-refactor/SKILL.md +4 -4
- package/dist/agent-src/skills/schema-review/SKILL.md +92 -0
- package/dist/agent-src/skills/schema-review/evals/triggers.json +17 -0
- package/dist/agent-src/skills/screenshot-hygiene/evals/triggers.json +52 -0
- package/dist/agent-src/skills/secrets-management/SKILL.md +3 -4
- package/dist/agent-src/skills/security-audit/SKILL.md +27 -10
- package/dist/agent-src/skills/security-maturity-assessment/SKILL.md +39 -17
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +17 -14
- package/dist/agent-src/skills/skill-writing/SKILL.md +11 -10
- package/dist/agent-src/skills/song-to-script/SKILL.md +93 -85
- package/dist/agent-src/skills/source-discovery/SKILL.md +5 -5
- package/dist/agent-src/skills/sql-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/stakeholder-tradeoff/SKILL.md +4 -3
- package/dist/agent-src/skills/standards-from-config/SKILL.md +61 -43
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +60 -86
- package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +33 -6
- package/dist/agent-src/skills/supply-chain-intake/SKILL.md +13 -13
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +24 -23
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +3 -4
- package/dist/agent-src/skills/technical-specification/SKILL.md +5 -0
- package/dist/agent-src/skills/terraform/SKILL.md +2 -2
- package/dist/agent-src/skills/terragrunt/SKILL.md +8 -8
- package/dist/agent-src/skills/testing-anti-patterns/process-anti-patterns.md +1 -1
- package/dist/agent-src/skills/threat-modeling/SKILL.md +19 -13
- package/dist/agent-src/skills/token-optimizer/SKILL.md +4 -4
- package/dist/agent-src/skills/universal-project-analysis/SKILL.md +1 -1
- package/dist/agent-src/skills/upstream-contribute/SKILL.md +0 -1
- package/dist/agent-src/skills/using-git-worktrees/SKILL.md +9 -9
- package/dist/agent-src/skills/validate-feature-fit/SKILL.md +3 -1
- package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +4 -6
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +67 -61
- package/dist/agent-src/skills/video-director/SKILL.md +7 -7
- package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +5 -6
- package/dist/agent-src/templates/AGENTS.md +1 -1
- package/dist/agent-src/templates/agents/.gitattributes.fragment +25 -6
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/command.md +3 -3
- package/dist/agent-src/templates/contexts/knowledge-pages.md +47 -45
- package/dist/agent-src/templates/contexts/lesson-card.md +2 -2
- package/dist/agent-src/templates/contexts/tenant-boundaries.md +2 -2
- package/dist/agent-src/templates/contexts.md +1 -1
- package/dist/agent-src/templates/features.md +1 -1
- package/dist/agent-src/templates/persona.md +2 -2
- package/dist/agent-src/templates/roadmaps.md +125 -116
- package/dist/agent-src/templates/rule.md +4 -3
- package/dist/agent-src/templates/scripts/pr_risk_review.ts +0 -0
- package/dist/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
- package/dist/agent-src/templates/scripts/telemetry/engagement.ts +77 -0
- package/dist/agent-src/templates/scripts/telemetry_record.ts +33 -1
- package/dist/agent-src/templates/scripts/tier_usage_report.ts +2 -2
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +2 -2
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/review.ts +1 -1
- package/dist/agent-src/user-types/README.md +8 -8
- package/dist/agent-src/user-types/galabau-field-crew.md +34 -33
- package/dist/agent-src/user-types/metalworking-shop.md +35 -34
- package/dist/agent-src/user-types/truck-driver.md +22 -20
- package/dist/cli/commands/doctorShell.js +20 -0
- package/dist/cli/commands/doctorShell.js.map +1 -1
- package/dist/cli/commands/rtkDetect.js +58 -0
- package/dist/cli/commands/rtkDetect.js.map +1 -0
- package/dist/cli/firstRunNotice.js +70 -0
- package/dist/cli/firstRunNotice.js.map +1 -0
- package/dist/cli/main.js +35 -3
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/python/workspace_roles.js +2 -2
- package/dist/cli/python/workspace_roles.js.map +1 -1
- package/dist/cli/registry.js +7 -1
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +429 -119
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +6 -4
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +91 -8
- package/dist/discovery/trust-report.md +11 -11
- package/dist/discovery/workspaces.json +32 -7
- package/dist/hooks/dispatch.js +19649 -0
- package/dist/install/agentSwitchDetection.js +75 -0
- package/dist/install/agentSwitchDetection.js.map +1 -0
- package/dist/install/agentSwitchProfile.js +117 -0
- package/dist/install/agentSwitchProfile.js.map +1 -0
- package/dist/install/atomic.js +1 -1
- package/dist/install/detect.js +1 -1
- package/dist/install/install.mjs +783 -486
- package/dist/install/rtkDetection.js +213 -0
- package/dist/install/rtkDetection.js.map +1 -0
- package/dist/install/rule_scope.js +2 -1
- package/dist/install/rule_scope.js.map +1 -1
- package/dist/install/types.js +2 -2
- package/dist/install/wizard-plan.js +1 -1
- package/dist/install/wizardDismissals.js +58 -0
- package/dist/install/wizardDismissals.js.map +1 -0
- package/dist/mcp/awesome-mcp-servers.row.md +1 -1
- package/dist/mcp/mcp-cloudflare-catalogue.json +1 -1
- package/dist/mcp/registry-manifest.json +15 -4
- package/dist/mcp/server.json +20 -0
- package/dist/mcp/server.mjs +44634 -0
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/compile_time_toggles.js +48 -0
- package/dist/scripts/_lib/compile_time_toggles.js.map +1 -0
- package/dist/scripts/condense.js +248 -224
- package/dist/scripts/condense.js.map +1 -1
- package/dist/server/app.js +4 -2
- package/dist/server/app.js.map +1 -1
- package/dist/server/io/sharedWriteCheck.js +101 -0
- package/dist/server/io/sharedWriteCheck.js.map +1 -0
- package/dist/server/routes/ping.js +14 -0
- package/dist/server/routes/ping.js.map +1 -1
- package/dist/server/routes/settings.js +21 -4
- package/dist/server/routes/settings.js.map +1 -1
- package/dist/server/routes/userMd.js +21 -4
- package/dist/server/routes/userMd.js.map +1 -1
- package/dist/server/routes/wizard.js +68 -25
- package/dist/server/routes/wizard.js.map +1 -1
- package/dist/server/schemas/settings.js +8 -2
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/shared/userMd/utils.js +30 -0
- package/dist/shared/userMd/utils.js.map +1 -1
- package/dist/ui/assets/index-BpSQt5vm.js +40 -0
- package/dist/ui/assets/index-BpSQt5vm.js.map +1 -0
- package/dist/ui/assets/index-jSfMW8_t.css +1 -0
- package/dist/ui/index.html +2 -2
- package/docs/MIGRATION.md +16 -0
- package/docs/guidelines/agent-infra/api-cost-levers.md +56 -5
- package/docs/guidelines/agent-infra/simplicity-and-goal-demos.md +93 -33
- package/docs/guidelines/component-oriented-and-oop-development.md +4 -2
- package/package.json +21 -11
- package/src/agent-src/templates/AGENTS.md +1 -1
- package/src/agent-src/templates/scripts/pr_risk_review.ts +0 -0
- package/src/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
- package/src/agent-src/templates/scripts/telemetry/engagement.ts +77 -0
- package/src/agent-src/templates/scripts/telemetry_record.ts +33 -1
- package/src/agent-src/templates/scripts/tier_usage_report.ts +2 -2
- package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +2 -2
- package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +1 -1
- package/src/config/agent-settings.template.yml +84 -16
- package/src/config/ci-local-parity.yml +142 -0
- package/src/config/discovery/packs.yml +22 -0
- package/src/config/discovery/workspaces.yml +1 -1
- package/src/config/evaluator-budgets.json +47 -0
- package/src/config/gate-coverage.yml +127 -0
- package/src/config/hook-latency-budget.json +20 -0
- package/src/config/preamble-payload-budget.json +44 -0
- package/src/install/agentSwitchDetection.ts +90 -0
- package/src/install/agentSwitchProfile.ts +131 -0
- package/src/install/atomic.ts +1 -1
- package/src/install/detect.ts +1 -1
- package/src/install/rtkDetection.ts +274 -0
- package/src/install/rule_scope.ts +9 -2
- package/src/install/types.ts +2 -2
- package/src/install/wizard-plan.ts +1 -1
- package/src/install/wizardDismissals.ts +60 -0
- package/src/scripts/_cli/cmd_doctor.ts +139 -2
- package/src/scripts/_cli/cmd_memory_get.ts +197 -0
- package/src/scripts/_cli/cmd_refresh.ts +30 -0
- package/src/scripts/_dispatch.bash +81 -0
- package/src/scripts/_lib/agent_user_profile.ts +381 -0
- package/src/scripts/_lib/agents_overlay.ts +9 -0
- package/src/scripts/_lib/anchor_eval.ts +311 -0
- package/src/scripts/_lib/auto_dispatch.corpus.test.ts +64 -1
- package/src/scripts/_lib/auto_dispatch.ts +76 -0
- package/src/scripts/_lib/cc_transcript.ts +316 -0
- package/src/scripts/_lib/compile_time_toggles.ts +79 -0
- package/src/scripts/_lib/confusables.ts +101 -0
- package/src/scripts/_lib/detect_target_license.ts +714 -0
- package/src/scripts/_lib/duplicate_scope_census.ts +77 -0
- package/src/scripts/_lib/fixtures/secret-detector/negatives.txt +5 -0
- package/src/scripts/_lib/fixtures/secret-detector/positives.txt +4 -0
- package/src/scripts/_lib/install_drift.ts +194 -0
- package/src/scripts/_lib/managed_agents_folder.ts +181 -0
- package/src/scripts/_lib/memory_fts_index.ts +390 -0
- package/src/scripts/_lib/orchestration_record.ts +91 -2
- package/src/scripts/_lib/payload_hash_drift.ts +126 -0
- package/src/scripts/_lib/persistence/adapter_raw_sql.ts +443 -0
- package/src/scripts/_lib/persistence/detect_audit_coverage.ts +423 -0
- package/src/scripts/_lib/persistence/detect_bounded_reads.ts +154 -0
- package/src/scripts/_lib/persistence/detect_index_parity.ts +576 -0
- package/src/scripts/_lib/persistence/detect_n1_eloquent.ts +226 -0
- package/src/scripts/_lib/persistence/detect_offload.ts +441 -0
- package/src/scripts/_lib/persistence/detect_prisma_growth.ts +74 -0
- package/src/scripts/_lib/persistence/offload_catalog.ts +73 -0
- package/src/scripts/_lib/persistence/types.ts +109 -0
- package/src/scripts/_lib/preservation_migration.ts +291 -0
- package/src/scripts/_lib/retrieval_sanitize.ts +166 -2
- package/src/scripts/_lib/rtk_allowlist.ts +44 -0
- package/src/scripts/_lib/scan_scope.ts +115 -0
- package/src/scripts/_lib/secret_detector.test.ts +5 -0
- package/src/scripts/_lib/secret_detector.ts +9 -0
- package/src/scripts/_lib/secret_detector_adversarial.test.ts +116 -0
- package/src/scripts/_lib/spawn_env.ts +7 -0
- package/src/scripts/_lib/sqlite_guard.ts +191 -0
- package/src/scripts/_lib/subagent_spawn.ts +53 -0
- package/src/scripts/_lib/user_global_memory_audit.ts +187 -0
- package/src/scripts/_lib/user_global_observations.ts +830 -0
- package/src/scripts/_lib/user_global_revocations.ts +110 -0
- package/src/scripts/_lib/user_memory_gate_counters.ts +291 -0
- package/src/scripts/_lib/worker_budget.ts +107 -0
- package/src/scripts/ai_council/blind_review.ts +212 -0
- package/src/scripts/ai_council/budget_guard.ts +90 -11
- package/src/scripts/ai_council/bundler.ts +2 -2
- package/src/scripts/ai_council/clients.ts +59 -3
- package/src/scripts/ai_council/config.ts +50 -6
- package/src/scripts/ai_council/orchestrator.ts +127 -12
- package/src/scripts/ai_team/review_gate.ts +8 -10
- package/src/scripts/ai_team/team_dispatch.ts +65 -6
- package/src/scripts/anchor_eval_falsify.ts +198 -0
- package/src/scripts/anchor_scoring_run.ts +239 -0
- package/src/scripts/annotate_discovery.ts +1 -65
- package/src/scripts/audit_initial_context.ts +1 -1
- package/src/scripts/bench_cross_source_eval.ts +400 -0
- package/src/scripts/bench_honesty_score.ts +1093 -0
- package/src/scripts/bench_hook_latency.ts +218 -0
- package/src/scripts/bench_quality_run.ts +168 -4
- package/src/scripts/build_mcp_catalog.ts +275 -0
- package/src/scripts/build_mcp_registry_manifest.ts +46 -0
- package/src/scripts/build_proof.ts +45 -0
- package/src/scripts/cache_realization_report.ts +782 -0
- package/src/scripts/chat_history.ts +8 -5
- package/src/scripts/check_artefact_count_messaging.ts +5 -1
- package/src/scripts/check_augment_description_cap.ts +15 -4
- package/src/scripts/check_backstop_debt.ts +23 -13
- package/src/scripts/check_bundle_path_leakage.ts +343 -0
- package/src/scripts/check_ci_local_parity.ts +317 -0
- package/src/scripts/check_condensation.ts +96 -191
- package/src/scripts/check_context_paths.ts +38 -9
- package/src/scripts/check_evaluator_budgets.ts +99 -0
- package/src/scripts/check_gate_coverage.ts +299 -0
- package/src/scripts/check_iron_law_prominence.ts +22 -1
- package/src/scripts/check_kernel_prefix_stability.ts +0 -0
- package/src/scripts/check_knowledge_sharing.ts +12 -1
- package/src/scripts/check_no_external_sources.ts +2 -2
- package/src/scripts/check_no_new_legacy_path.ts +16 -6
- package/src/scripts/check_no_roadmap_refs.ts +22 -9
- package/src/scripts/check_originality_freshness.ts +167 -0
- package/src/scripts/check_preamble_payload_budget.ts +130 -0
- package/src/scripts/check_proposal.ts +0 -0
- package/src/scripts/check_references.ts +0 -1
- package/src/scripts/check_safety_floor_untouched.ts +171 -24
- package/src/scripts/check_site_links.ts +62 -3
- package/src/scripts/check_source_pointer_freshness.ts +28 -3
- package/src/scripts/ci_status.ts +0 -0
- package/src/scripts/cluster_near_miss_patterns.ts +0 -0
- package/src/scripts/code_graph/build.ts +0 -0
- package/src/scripts/code_graph/cli.ts +181 -9
- package/src/scripts/code_graph/detect.ts +52 -0
- package/src/scripts/code_graph/intent.ts +45 -0
- package/src/scripts/code_graph/query.ts +143 -29
- package/src/scripts/code_graph/sqlite_store.ts +174 -0
- package/src/scripts/command_suggester/types.ts +0 -0
- package/src/scripts/compile_router.ts +10 -14
- package/src/scripts/condense.sh +3 -4
- package/src/scripts/condense.ts +261 -234
- package/src/scripts/context_hygiene_hook.ts +8 -5
- package/src/scripts/cost/track.mjs +168 -33
- package/src/scripts/cost_summary.ts +33 -1
- package/src/scripts/council_cli.ts +171 -15
- package/src/scripts/detect_target_license.ts +203 -0
- package/src/scripts/discovery_graph.ts +0 -0
- package/src/scripts/encoding_corpus.ts +500 -0
- package/src/scripts/encoding_corpus_report.ts +216 -0
- package/src/scripts/evaluator_umbrella.sh +145 -0
- package/src/scripts/external_sources_denylist.json +5 -3
- package/src/scripts/first_run_gate_hook.ts +9 -5
- package/src/scripts/generate_index.ts +19 -2
- package/src/scripts/hermetic-install.sh +3 -3
- package/src/scripts/hook_manifest.yaml +55 -16
- package/src/scripts/hooks/block_kernel_rule_writes.ts +212 -0
- package/src/scripts/hooks/block_no_verify.ts +9 -9
- package/src/scripts/hooks/code_graph_nudge_hook.ts +11 -4
- package/src/scripts/hooks/concern_registry.ts +75 -0
- package/src/scripts/hooks/design_slop_hook.ts +8 -5
- package/src/scripts/hooks/dispatch_entry.ts +37 -0
- package/src/scripts/hooks/dispatch_hook.ts +176 -3
- package/src/scripts/hooks/hook_stdin.ts +42 -0
- package/src/scripts/hooks/rtk_wrap_hook.ts +26 -12
- package/src/scripts/hot_context_hook.ts +7 -6
- package/src/scripts/injection_scan_hook.ts +9 -1
- package/src/scripts/install +6 -6
- package/src/scripts/install-hooks.sh +6 -6
- package/src/scripts/install.sh +5 -4
- package/src/scripts/install.ts +264 -23
- package/src/scripts/learning_sidecar.ts +0 -0
- package/src/scripts/lint_budget_ownership.ts +89 -0
- package/src/scripts/lint_command_routing.ts +35 -5
- package/src/scripts/lint_command_verbs.ts +42 -9
- package/src/scripts/lint_confusables.ts +10 -72
- package/src/scripts/lint_consumer_internal_refs.ts +211 -0
- package/src/scripts/lint_discovery_vocabulary.ts +2 -0
- package/src/scripts/lint_documented_commands.ts +670 -0
- package/src/scripts/lint_featured_skills.ts +0 -0
- package/src/scripts/lint_framework_leakage.ts +17 -3
- package/src/scripts/lint_framework_leakage_allowlist.json +32 -0
- package/src/scripts/lint_governed_writes.ts +335 -0
- package/src/scripts/lint_hidden_unicode.ts +214 -0
- package/src/scripts/lint_load_context.ts +17 -5
- package/src/scripts/lint_mcp_registry_manifest.ts +26 -1
- package/src/scripts/lint_memory_tripwire.ts +186 -0
- package/src/scripts/lint_new_skill_gate.ts +9 -3
- package/src/scripts/lint_no_python_twin_rationale.ts +17 -2
- package/src/scripts/lint_originality.ts +1 -1
- package/src/scripts/lint_override_kernel_guard.ts +74 -26
- package/src/scripts/lint_persistence.ts +171 -0
- package/src/scripts/lint_pre_migration_refs.ts +106 -0
- package/src/scripts/lint_provenance.ts +547 -0
- package/src/scripts/lint_provenance_vocabulary.ts +437 -0
- package/src/scripts/lint_skill_originality.ts +1 -1
- package/src/scripts/lint_spawn_payload.ts +283 -0
- package/src/scripts/lint_store_boundary.ts +152 -0
- package/src/scripts/lint_ticket_buildable.ts +1 -1
- package/src/scripts/lint_versioned_cache.ts +7 -1
- package/src/scripts/mcp_server/__main__.ts +7 -2
- package/src/scripts/mcp_server/catalog.ts +23 -1
- package/src/scripts/mcp_server/consumer_tool_catalog.json +563 -193
- package/src/scripts/mcp_server/prompts.ts +6 -0
- package/src/scripts/mcp_server/tool_catalog_source.ts +332 -0
- package/src/scripts/mcp_server/tools.ts +57 -6
- package/src/scripts/mcp_telemetry_query.ts +2 -33
- package/src/scripts/mcp_telemetry_store.ts +64 -34
- package/src/scripts/measure_scope_dedup.ts +224 -0
- package/src/scripts/memory_learn_hook.ts +126 -0
- package/src/scripts/memory_lookup.ts +0 -0
- package/src/scripts/memory_replay_24.ts +312 -0
- package/src/scripts/memory_report.ts +16 -3
- package/src/scripts/memory_signal.ts +48 -0
- package/src/scripts/memory_status.ts +6 -0
- package/src/scripts/mine_session.ts +98 -0
- package/src/scripts/minimal_safe_diff_hook.ts +8 -5
- package/src/scripts/onboarding_gate_hook.ts +8 -5
- package/src/scripts/orchestration_payload_hash_drift.ts +145 -0
- package/src/scripts/orchestration_record.ts +16 -0
- package/src/scripts/pr_url_reminder_hook.ts +8 -1
- package/src/scripts/preamble_byte_census.ts +574 -0
- package/src/scripts/prepack-check.mjs +17 -0
- package/src/scripts/prepack_lifecycle_check.d.mts +8 -0
- package/src/scripts/prepack_lifecycle_check.mjs +82 -0
- package/src/scripts/probe_skill_registration.ts +2 -2
- package/src/scripts/profile_staleness_hook.ts +8 -7
- package/src/scripts/redact_hook_capture.ts +13 -0
- package/src/scripts/release.ts +65 -10
- package/src/scripts/report_install_drift.ts +109 -0
- package/src/scripts/roadmap_progress_hook.ts +8 -5
- package/src/scripts/router_telemetry.ts +1 -1
- package/src/scripts/schemas/license-policy.schema.json +89 -0
- package/src/scripts/schemas/provenance-borrow.schema.json +46 -0
- package/src/scripts/schemas/rule.schema.json +10 -0
- package/src/scripts/second_brain_retrieval.ts +14 -4
- package/src/scripts/self_review_gate.test.ts +173 -1
- package/src/scripts/self_review_gate.ts +155 -15
- package/src/scripts/session_canary_hook.ts +182 -0
- package/src/scripts/skill_linter.ts +5 -0
- package/src/scripts/smoke_quickstart.ts +2 -2
- package/src/scripts/surface-tiers.yml +2 -0
- package/src/scripts/surface_probe_hook.ts +8 -7
- package/src/scripts/sync_gitattributes.ts +310 -0
- package/src/scripts/team_review_gate_hook.ts +13 -16
- package/src/scripts/validate_pack_yaml.ts +0 -0
- package/src/scripts/verify_before_complete_hook.ts +8 -5
- package/src/scripts/wrapper_freshness_hook.ts +8 -7
- package/src/server/schemas/settings.ts +16 -2
- package/src/shared/userMd/utils.ts +31 -0
- package/dist/agent-src/rules/telegraph-speak.md +0 -87
- package/dist/ui/assets/index-BPFMZWUs.css +0 -1
- package/dist/ui/assets/index-CrmZ34Rg.js +0 -40
- package/dist/ui/assets/index-CrmZ34Rg.js.map +0 -1
- package/docs/CLAIMS.md +0 -286
- package/docs/DISTRIBUTION_CHECKLIST.md +0 -170
- package/docs/RELEASE_STORY_TEMPLATE.md +0 -37
- package/docs/SKILL_CENSUS.md +0 -352
- package/docs/adrs/cost/0001-hard-stop-hook.md +0 -114
- package/docs/adrs/cost/README.md +0 -9
- package/docs/adrs/memory/0001-consumer-side-snapshot.md +0 -119
- package/docs/adrs/memory/README.md +0 -10
- package/docs/adrs/router/0001-three-tier-routing.md +0 -119
- package/docs/adrs/router/README.md +0 -9
- package/docs/adrs/schema/0001-json-schema-frontmatter.md +0 -102
- package/docs/adrs/schema/README.md +0 -9
- package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +0 -99
- package/docs/adrs/smoke/README.md +0 -9
- package/docs/adrs/telegraph/0001-default-off-until-bench.md +0 -93
- package/docs/adrs/telegraph/README.md +0 -9
- package/docs/announcements/2026-05-non-dev-launch.md +0 -79
- package/docs/announcements/2026-07-honest-cost-sweep-launch.md +0 -84
- package/docs/anti-reskin-gate.md +0 -60
- package/docs/architecture/augment-projection.md +0 -70
- package/docs/architecture/claude-bundle.md +0 -77
- package/docs/architecture/current-onboard-baseline.md +0 -126
- package/docs/architecture/current-safety-behavior.md +0 -137
- package/docs/architecture/multi-tool-projection.md +0 -125
- package/docs/architecture/setup-vs-settings-shared-surface.md +0 -114
- package/docs/architecture/source-projection.md +0 -85
- package/docs/architecture.md +0 -390
- package/docs/archive/CHANGELOG-6.0.0-overview.md +0 -953
- package/docs/archive/CHANGELOG-7.0.0.md +0 -419
- package/docs/archive/CHANGELOG-pre-2.11.0.md +0 -141
- package/docs/archive/CHANGELOG-pre-2.15.0.md +0 -244
- package/docs/archive/CHANGELOG-pre-2.16.0.md +0 -48
- package/docs/archive/CHANGELOG-pre-2.17.0.md +0 -63
- package/docs/archive/CHANGELOG-pre-2.2.0.md +0 -2138
- package/docs/archive/CHANGELOG-pre-2.20.0.md +0 -159
- package/docs/archive/CHANGELOG-pre-2.25.0.md +0 -191
- package/docs/archive/CHANGELOG-pre-2.7.0.md +0 -185
- package/docs/archive/CHANGELOG-pre-3.0.0.md +0 -130
- package/docs/archive/CHANGELOG-pre-3.1.0.md +0 -167
- package/docs/archive/CHANGELOG-pre-3.2.0.md +0 -268
- package/docs/archive/CHANGELOG-pre-4.0.0.md +0 -80
- package/docs/archive/CHANGELOG-pre-4.5.0.md +0 -289
- package/docs/archive/CHANGELOG-pre-5.4.0.md +0 -260
- package/docs/archive/CHANGELOG-pre-5.9.0.md +0 -270
- package/docs/archive/CHANGELOG-pre-6.0.0.md +0 -473
- package/docs/archive/CHANGELOG-pre-7.0.0.md +0 -126
- package/docs/archive/CHANGELOG-pre-8.0.0.md +0 -301
- package/docs/archive/CHANGELOG-pre-8.1.0.md +0 -316
- package/docs/archive/CHANGELOG-pre-8.12.0.md +0 -304
- package/docs/archive/CHANGELOG-pre-8.9.0.md +0 -306
- package/docs/archive/CHANGELOG-pre-9.2.0.md +0 -276
- package/docs/artefact-census.md +0 -71
- package/docs/benchmark.md +0 -785
- package/docs/benchmark.pinned.yml +0 -31
- package/docs/benchmarks.md +0 -85
- package/docs/capability-matrix.md +0 -33
- package/docs/case-studies/_template.md +0 -60
- package/docs/case-studies/frontend-design-positioning.md +0 -86
- package/docs/catalog.md +0 -726
- package/docs/command-flows.md +0 -272
- package/docs/command-naming-audit.md +0 -60
- package/docs/comparison.yaml +0 -87
- package/docs/contracts/CHANGELOG-conventions.md +0 -149
- package/docs/contracts/STABILITY.md +0 -188
- package/docs/contracts/adoption-signal-floor.md +0 -127
- package/docs/contracts/adr-architectural-consensus-mechanism.md +0 -68
- package/docs/contracts/adr-chat-history-split.md +0 -140
- package/docs/contracts/adr-command-suggestion.md +0 -144
- package/docs/contracts/adr-forecast-construction-shape.md +0 -90
- package/docs/contracts/adr-gtm-context-spine.md +0 -116
- package/docs/contracts/adr-implement-ticket-runtime.md +0 -121
- package/docs/contracts/adr-install-user-type-axis.md +0 -107
- package/docs/contracts/adr-layout.md +0 -107
- package/docs/contracts/adr-level-6-productization.md +0 -145
- package/docs/contracts/adr-mcp-runtime.md +0 -128
- package/docs/contracts/adr-product-ui-track.md +0 -381
- package/docs/contracts/adr-prompt-driven-execution.md +0 -186
- package/docs/contracts/adr-settings-sync-engine.md +0 -128
- package/docs/contracts/adr-user-types-axis.md +0 -127
- package/docs/contracts/adr-wing4-context-spine.md +0 -126
- package/docs/contracts/agent-user-schema.md +0 -170
- package/docs/contracts/agents-layout.md +0 -148
- package/docs/contracts/agents-md-tech-stack.md +0 -75
- package/docs/contracts/ai-council-config.md +0 -829
- package/docs/contracts/ai-team-config.md +0 -224
- package/docs/contracts/analysis-memory-loop.md +0 -149
- package/docs/contracts/at-rest-encryption.md +0 -191
- package/docs/contracts/audit-log-v1.md +0 -150
- package/docs/contracts/auto-orchestration-v1.md +0 -70
- package/docs/contracts/benchmark-ab-contract.md +0 -106
- package/docs/contracts/benchmark-corpus-spec.md +0 -125
- package/docs/contracts/benchmark-report-schema.md +0 -113
- package/docs/contracts/branch-protection-policy.md +0 -139
- package/docs/contracts/brand-token-consumption.md +0 -74
- package/docs/contracts/capability-boundary.md +0 -69
- package/docs/contracts/capability-packs.md +0 -217
- package/docs/contracts/ci-cost-budget.md +0 -111
- package/docs/contracts/ci-green-floor.md +0 -141
- package/docs/contracts/command-category-governance.md +0 -84
- package/docs/contracts/command-clusters.md +0 -399
- package/docs/contracts/command-surface-tiers.md +0 -176
- package/docs/contracts/command-taxonomy.md +0 -137
- package/docs/contracts/condensation-default-kill-criterion.md +0 -116
- package/docs/contracts/config-presets.md +0 -144
- package/docs/contracts/conformance.md +0 -84
- package/docs/contracts/consumer-bridge.md +0 -73
- package/docs/contracts/context-paths.md +0 -101
- package/docs/contracts/context-spine.md +0 -179
- package/docs/contracts/cost-dashboard.md +0 -143
- package/docs/contracts/cost-enforcement.md +0 -134
- package/docs/contracts/cost-profile-defaults.md +0 -110
- package/docs/contracts/cost-summary-schema.md +0 -107
- package/docs/contracts/creative-pack-boundary.md +0 -63
- package/docs/contracts/cross-repo-retrieval.md +0 -64
- package/docs/contracts/cross-wing-handoff.md +0 -134
- package/docs/contracts/daily-workspace.md +0 -147
- package/docs/contracts/decision-engine-gates.md +0 -120
- package/docs/contracts/decision-trace-v1.md +0 -177
- package/docs/contracts/design-artifact-lifecycle.md +0 -93
- package/docs/contracts/design-artifact-verification.md +0 -153
- package/docs/contracts/discovery-manifest.md +0 -209
- package/docs/contracts/discovery-manifest.schema.json +0 -254
- package/docs/contracts/evidence-based-pruning.md +0 -102
- package/docs/contracts/explain-modes.md +0 -187
- package/docs/contracts/explain-trace.schema.json +0 -144
- package/docs/contracts/file-ownership-matrix.json +0 -13941
- package/docs/contracts/file-ownership-matrix.md +0 -135
- package/docs/contracts/frontmatter-contract.md +0 -140
- package/docs/contracts/ghostwriter-schema.md +0 -337
- package/docs/contracts/governance-enforcement-projection.md +0 -159
- package/docs/contracts/gui-wizard.md +0 -350
- package/docs/contracts/harness-expectations.md +0 -128
- package/docs/contracts/hook-architecture-v1.md +0 -325
- package/docs/contracts/host-agent-protocol.md +0 -110
- package/docs/contracts/implement-ticket-flow.md +0 -625
- package/docs/contracts/init-telemetry.md +0 -132
- package/docs/contracts/injected-block-authenticity-model.md +0 -66
- package/docs/contracts/install-layout.md +0 -249
- package/docs/contracts/install-scopes.md +0 -82
- package/docs/contracts/installed-tools-lockfile.md +0 -144
- package/docs/contracts/installer-agent-mode.md +0 -137
- package/docs/contracts/iron-law-overrides.txt +0 -26
- package/docs/contracts/kernel-membership.md +0 -339
- package/docs/contracts/linear-ai-rules-inclusion.md +0 -143
- package/docs/contracts/linear-ai-three-layers.md +0 -130
- package/docs/contracts/linter-structural-model.md +0 -181
- package/docs/contracts/load-context-budget-model.md +0 -259
- package/docs/contracts/load-context-schema.md +0 -220
- package/docs/contracts/local-analytics.md +0 -160
- package/docs/contracts/local-knowledge-ingestion.md +0 -96
- package/docs/contracts/local-server-api.md +0 -134
- package/docs/contracts/local-server-ports.md +0 -53
- package/docs/contracts/low-impact-corpus-format.md +0 -95
- package/docs/contracts/mcp-beta-criteria.md +0 -130
- package/docs/contracts/mcp-cloud-scope.md +0 -355
- package/docs/contracts/mcp-discovery-phase-notice.md +0 -60
- package/docs/contracts/mcp-phase-1-scope.md +0 -272
- package/docs/contracts/mcp-registry-manifest.schema.json +0 -129
- package/docs/contracts/mcp-tool-inventory.md +0 -64
- package/docs/contracts/mcp-tool-stub-envelope.md +0 -78
- package/docs/contracts/measurement-baseline.md +0 -103
- package/docs/contracts/memory-visibility-v1.md +0 -160
- package/docs/contracts/mental-models.md +0 -336
- package/docs/contracts/migrate-command.md +0 -233
- package/docs/contracts/multi-tool-projection-fidelity.md +0 -134
- package/docs/contracts/namespace.md +0 -125
- package/docs/contracts/no-runtime-boundary.md +0 -61
- package/docs/contracts/one-off-script-lifecycle.md +0 -110
- package/docs/contracts/orchestration-dsl-v1.md +0 -153
- package/docs/contracts/package-self-orientation.md +0 -163
- package/docs/contracts/pilot/agent-authority.md +0 -24
- package/docs/contracts/pilot/direct-answers.md +0 -70
- package/docs/contracts/pilot/language-and-tone.md +0 -63
- package/docs/contracts/plain-language-surface.md +0 -117
- package/docs/contracts/prelaunch-diagnostics.md +0 -151
- package/docs/contracts/profile-system.md +0 -167
- package/docs/contracts/reasoning-discipline-protocol.md +0 -83
- package/docs/contracts/release-pr-gating.md +0 -151
- package/docs/contracts/release-sizing.md +0 -107
- package/docs/contracts/release-trunk-sync.md +0 -105
- package/docs/contracts/review-lens-schema.md +0 -64
- package/docs/contracts/roadmap-complexity-standard.md +0 -138
- package/docs/contracts/role-experience.md +0 -125
- package/docs/contracts/router-blending.md +0 -71
- package/docs/contracts/rule-classification.md +0 -171
- package/docs/contracts/rule-interactions.md +0 -132
- package/docs/contracts/rule-interactions.yml +0 -260
- package/docs/contracts/rule-priority-hierarchy.md +0 -88
- package/docs/contracts/rule-router.md +0 -287
- package/docs/contracts/safety-model.md +0 -129
- package/docs/contracts/session-profile-overlay.md +0 -157
- package/docs/contracts/settings-api.md +0 -264
- package/docs/contracts/settings-gui-agent-mode.schema.json +0 -128
- package/docs/contracts/settings-sync-yaml-subset.md +0 -139
- package/docs/contracts/skill-bundled-assets.md +0 -62
- package/docs/contracts/skill-discovery.md +0 -80
- package/docs/contracts/skill-distribution-channels.md +0 -66
- package/docs/contracts/skill-domains.md +0 -144
- package/docs/contracts/skill-dry-run.md +0 -47
- package/docs/contracts/skill-family-map.yml +0 -915
- package/docs/contracts/smoke-contracts.md +0 -144
- package/docs/contracts/subagent-boundary.md +0 -74
- package/docs/contracts/surface-agent-contracts.md +0 -153
- package/docs/contracts/surface-matrix.md +0 -108
- package/docs/contracts/surface-tiers.md +0 -81
- package/docs/contracts/telegraph-telemetry.md +0 -83
- package/docs/contracts/ticket-bundle-format.md +0 -233
- package/docs/contracts/tier-3-contrib-plugin.md +0 -137
- package/docs/contracts/trust-and-safety.md +0 -144
- package/docs/contracts/ui-stack-extension.md +0 -237
- package/docs/contracts/ui-track-flow.md +0 -329
- package/docs/contracts/universal-skills.md +0 -91
- package/docs/contracts/user-type-schema.md +0 -146
- package/docs/contracts/value-dashboard-spec.md +0 -378
- package/docs/contracts/value-report-schema.md +0 -168
- package/docs/contracts/workflow-packs.md +0 -121
- package/docs/contracts/workspace-boundary.md +0 -84
- package/docs/contracts/workspace-documents.md +0 -144
- package/docs/contracts/write-engine.md +0 -182
- package/docs/cookbook.md +0 -152
- package/docs/customization.md +0 -696
- package/docs/decisions/ADR-001-kernel-swap-deferred.md +0 -109
- package/docs/decisions/ADR-002-kernel-bucket-overrides.md +0 -135
- package/docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md +0 -137
- package/docs/decisions/ADR-004-rule-governance-pruning.md +0 -240
- package/docs/decisions/ADR-005-subagent-worktrees.md +0 -120
- package/docs/decisions/ADR-006-skill-tools-python-pilot.md +0 -114
- package/docs/decisions/ADR-007-agent-discovery-scopes.md +0 -371
- package/docs/decisions/ADR-008-installed-tools-manifest.md +0 -160
- package/docs/decisions/ADR-009-event4u-namespace.md +0 -188
- package/docs/decisions/ADR-010-profile-pack-preset-boundary.md +0 -168
- package/docs/decisions/ADR-011-domain-pack-readiness.md +0 -213
- package/docs/decisions/ADR-012-typescript-cli-shell.md +0 -162
- package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +0 -342
- package/docs/decisions/ADR-014-gui-framework-choice.md +0 -136
- package/docs/decisions/ADR-015-discovery-manifest-contract.md +0 -146
- package/docs/decisions/ADR-016-installer-architecture.md +0 -191
- package/docs/decisions/ADR-017-monorepo-physical-layout.md +0 -261
- package/docs/decisions/ADR-018-trust-and-safety-layer.md +0 -159
- package/docs/decisions/ADR-019-router-json-dist-location.md +0 -124
- package/docs/decisions/ADR-020-global-only-consumer-scope.md +0 -213
- package/docs/decisions/ADR-021-deployment-shape.md +0 -153
- package/docs/decisions/ADR-022-daily-workspace-decomposition.md +0 -140
- package/docs/decisions/ADR-023-host-agent-protocol.md +0 -129
- package/docs/decisions/ADR-024-workspace-v0-feature-floor.md +0 -126
- package/docs/decisions/ADR-025-workspace-chrome.md +0 -119
- package/docs/decisions/ADR-026-explain-mode-translation.md +0 -117
- package/docs/decisions/ADR-027-changelog-machine-vs-manual.md +0 -129
- package/docs/decisions/ADR-028-root-layout.md +0 -147
- package/docs/decisions/ADR-029-multi-workspace-deferred.md +0 -122
- package/docs/decisions/ADR-030-claude-code-command-projection.md +0 -147
- package/docs/decisions/ADR-031-validation-severity-tiers-and-projection-roundtrip.md +0 -97
- package/docs/decisions/ADR-032-linked-projects-scope.md +0 -122
- package/docs/decisions/ADR-033-distribution-identity-npm-primary.md +0 -81
- package/docs/decisions/ADR-034-per-skill-model-recommendation-transport.md +0 -63
- package/docs/decisions/ADR-035-model-capability-tiers.md +0 -104
- package/docs/decisions/ADR-036-global-install-browser-wizard-handoff.md +0 -106
- package/docs/decisions/ADR-037-cost-profile-untangle.md +0 -117
- package/docs/decisions/ADR-038-canonical-settings-path.md +0 -96
- package/docs/decisions/ADR-039-claude-skills-untracked.md +0 -139
- package/docs/decisions/ADR-040-execution-model-projection-time-filtering.md +0 -244
- package/docs/decisions/ADR-041-controlled-command-verbs.md +0 -133
- package/docs/decisions/ADR-042-runtime-resolver-decision-gate.md +0 -113
- package/docs/decisions/ADR-043-monorepo-collapse-to-src-domains.md +0 -128
- package/docs/decisions/ADR-044-command-naming-scheme-hyphenated.md +0 -250
- package/docs/decisions/ADR-045-src-source-layout-and-profiles-as-views.md +0 -111
- package/docs/decisions/ADR-046-thin-command-principle.md +0 -93
- package/docs/decisions/ADR-047-framework-neutral-stack-adaptive-commands.md +0 -94
- package/docs/decisions/ADR-048-command-justification-rule.md +0 -106
- package/docs/decisions/ADR-049-configuration-trust-boundary.md +0 -132
- package/docs/decisions/ADR-050-workspace-vs-package-root-boundary.md +0 -121
- package/docs/decisions/ADR-051-uncondensed-source-container-relocation.md +0 -114
- package/docs/decisions/ADR-052-packages-removal-and-pack-home-migration.md +0 -86
- package/docs/decisions/ADR-053-agents-namespace-dual-role-resolution.md +0 -132
- package/docs/decisions/ADR-054-rule-adherence-decay-triggered-restate.md +0 -143
- package/docs/decisions/ADR-055-flow-layer-data-model.md +0 -235
- package/docs/decisions/ADR-056-unvalidated-video-adapters-disposition.md +0 -124
- package/docs/decisions/ADR-057-consolidation-evidence-gate-outcomes.md +0 -135
- package/docs/decisions/ADR-058-condensed-output-relocation-to-dist.md +0 -94
- package/docs/decisions/ADR-059-render-resume-filesystem-as-state.md +0 -161
- package/docs/decisions/ADR-060-comfyui-sandbox-model.md +0 -154
- package/docs/decisions/ADR-061-corpus-grounding-layer.md +0 -230
- package/docs/decisions/ADR-062-encrypt-at-rest-store-architecture.md +0 -121
- package/docs/decisions/ADR-063-append-jsonl-encryption-deferred.md +0 -83
- package/docs/decisions/ADR-064-append-jsonl-per-record-encryption.md +0 -113
- package/docs/decisions/ADR-065-tier3-inbox-handoff-v0.md +0 -86
- package/docs/decisions/ADR-066-skill-body-prerendering.md +0 -93
- package/docs/decisions/ADR-067-glama-registry-listing.md +0 -259
- package/docs/decisions/ADR-068-host-tier-detection.md +0 -90
- package/docs/decisions/ADR-069-prompt-renderer.md +0 -97
- package/docs/decisions/ADR-070-tier1-drive-loop.md +0 -94
- package/docs/decisions/ADR-071-launch-drive-integration.md +0 -95
- package/docs/decisions/ADR-072-codex-gemini-drive-configs.md +0 -90
- package/docs/decisions/ADR-073-drive-health-kill-switch.md +0 -81
- package/docs/decisions/ADR-074-drive-kill-switch-auto-recovery.md +0 -84
- package/docs/decisions/ADR-075-workspace-gui-drive.md +0 -83
- package/docs/decisions/ADR-076-workspace-multi-turn.md +0 -92
- package/docs/decisions/ADR-077-workspace-followup-gui.md +0 -70
- package/docs/decisions/ADR-078-drive-health-panel.md +0 -70
- package/docs/decisions/ADR-079-workspace-host-picker.md +0 -81
- package/docs/decisions/ADR-080-host-session-expired-410.md +0 -92
- package/docs/decisions/ADR-081-drive-health-reset-and-410-affordance.md +0 -71
- package/docs/decisions/ADR-082-410-one-click-relaunch.md +0 -58
- package/docs/decisions/ADR-083-session-thread-and-arbitrary-continuation.md +0 -85
- package/docs/decisions/ADR-084-drive-health-refresh-on-drive.md +0 -52
- package/docs/decisions/ADR-085-mcp-stdio-end-user-distribution-shape.md +0 -158
- package/docs/decisions/ADR-086-read-only-cross-agent-mcp-discovery-helper.md +0 -171
- package/docs/decisions/ADR-087-installer-e2e-test-strategy.md +0 -111
- package/docs/decisions/ADR-088-no-external-runtime-federation.md +0 -144
- package/docs/decisions/ADR-089-lean-local-plugin-install.md +0 -111
- package/docs/decisions/ADR-090-visibility-command-frontmatter-field.md +0 -95
- package/docs/decisions/ADR-091-split-meta-capability-packs.md +0 -113
- package/docs/decisions/ADR-092-defer-command-tier-alias-removal.md +0 -117
- package/docs/decisions/ADR-093-ai-council-config-user-global.md +0 -117
- package/docs/decisions/ADR-094-agent-memory-layer-removal.md +0 -94
- package/docs/decisions/ADR-095-workspace-boundary-contract.md +0 -108
- package/docs/decisions/ADR-096-analysis-workbench.md +0 -110
- package/docs/decisions/ADR-097-mission-recipe-privilege-boundary.md +0 -121
- package/docs/decisions/ADR-098-evidence-first-structure-discovery.md +0 -154
- package/docs/decisions/ADR-099-file-first-pattern-library.md +0 -87
- package/docs/decisions/ADR-100-global-knowledge-card-sharing.md +0 -140
- package/docs/decisions/ADR-101-ticket-bundle-emission.md +0 -109
- package/docs/decisions/ADR-102-ticket-handoff-paste-and-mcp.md +0 -72
- package/docs/decisions/ADR-103-global-knowledge-default-off-until-measured.md +0 -92
- package/docs/decisions/ADR-104-ai-council-config-global-only.md +0 -119
- package/docs/decisions/ADR-105-automatic-subagent-orchestration.md +0 -108
- package/docs/decisions/ADR-106-recursive-verification-benchmark-gate.md +0 -126
- package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +0 -70
- package/docs/decisions/ADR-108-open-source-forever-no-commercial-tier.md +0 -46
- package/docs/decisions/ADR-109-subagent-v1-contract.md +0 -248
- package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +0 -112
- package/docs/decisions/ADR-111-canonical-glama-listing.md +0 -97
- package/docs/decisions/ADR-112-stdio-lite-stays-read-only.md +0 -92
- package/docs/decisions/ADR-113-ci-native-release-label-trigger.md +0 -209
- package/docs/decisions/ADR-114-commit-policy-iron-law-override.md +0 -85
- package/docs/decisions/ADR-115-command-cluster-consolidation-phase-4.md +0 -91
- package/docs/decisions/ADR-116-memory-tripwire-activation-path.md +0 -144
- package/docs/decisions/ADR-117-subagents-auto-default-on.md +0 -89
- package/docs/decisions/ADR-118-loop-engineering-boundaries.md +0 -162
- package/docs/decisions/ADR-119-global-knowledge-default-on.md +0 -104
- package/docs/decisions/ADR-120-council-chairman-mode.md +0 -70
- package/docs/decisions/ADR-121-knowledge-sensitivity-classes.md +0 -90
- package/docs/decisions/ADR-122-adversarial-verification-council.md +0 -166
- package/docs/decisions/ADR-123-runtime-security-scope-and-spawn-hardening.md +0 -142
- package/docs/decisions/ADR-124-embedded-engine-doctrine.md +0 -255
- package/docs/decisions/ADR-125-doc-screenshot-anonymization.md +0 -131
- package/docs/decisions/ADR-126-internet-reach-operator-tooling.md +0 -254
- package/docs/decisions/ADR-127-enforcement-claims-must-resolve.md +0 -150
- package/docs/decisions/ADR-128-executable-evidence-and-measured-escalation.md +0 -201
- package/docs/decisions/ADR-200-python-to-typescript-migration.md +0 -203
- package/docs/decisions/ADR-rule-kernel-and-router.md +0 -133
- package/docs/decisions/INDEX.md +0 -157
- package/docs/decisions/engine-reclassification-2026-07.md +0 -104
- package/docs/deploy/connector-setup.md +0 -129
- package/docs/deploy/env-vars.md +0 -70
- package/docs/deploy/policy-cookbook.md +0 -130
- package/docs/deploy/quickstart.md +0 -112
- package/docs/deploy/small-team-recipe.md +0 -148
- package/docs/deploy/team-deployment-posture.md +0 -111
- package/docs/design/adversarial-council-eval.md +0 -106
- package/docs/design/council-vs-solo-baseline.md +0 -92
- package/docs/design/cross-model-parity-eval.md +0 -82
- package/docs/design/length-neutral-judge-rerun.md +0 -92
- package/docs/design/utilization-window-criteria.md +0 -51
- package/docs/development.md +0 -230
- package/docs/distribution/awesome-list-submission.md +0 -46
- package/docs/distribution/consumer-matrix.md +0 -96
- package/docs/distribution/launch-story-draft.md +0 -58
- package/docs/distribution/mcp-submission-checklist.md +0 -95
- package/docs/distribution/public-install-smoke.md +0 -68
- package/docs/distribution/registries.md +0 -126
- package/docs/distribution/registry-submissions.md +0 -85
- package/docs/distribution/telemetry-privacy.md +0 -128
- package/docs/distribution/telemetry-schema.md +0 -174
- package/docs/distribution/topics-equivalents-decay-policy.md +0 -51
- package/docs/end-to-end-walkthroughs.md +0 -165
- package/docs/enforcement-by-host.md +0 -51
- package/docs/examples/agent-user.example.md +0 -22
- package/docs/experiences/agency.md +0 -49
- package/docs/experiences/content_creator.md +0 -49
- package/docs/experiences/developer.md +0 -49
- package/docs/experiences/finance.md +0 -50
- package/docs/experiences/founder.md +0 -49
- package/docs/experiences/ops.md +0 -49
- package/docs/featured-commands.md +0 -27
- package/docs/featured-skills.md +0 -95
- package/docs/flows.md +0 -67
- package/docs/getting-started-by-role.md +0 -190
- package/docs/getting-started-laravel.md +0 -72
- package/docs/getting-started-local-stdio.md +0 -77
- package/docs/getting-started.md +0 -254
- package/docs/github-topics.md +0 -93
- package/docs/governance-advantage.md +0 -72
- package/docs/governance.md +0 -96
- package/docs/guides/cross-repo-linked-projects.md +0 -93
- package/docs/guides/cross-repo-retrieval.md +0 -61
- package/docs/guides/frontend-design-corpus-refresh.md +0 -83
- package/docs/guides/gated-platform-reads.md +0 -221
- package/docs/guides/local-analytics.md +0 -125
- package/docs/guides/local-knowledge.md +0 -127
- package/docs/guides/skill-discovery.md +0 -71
- package/docs/guides/skill-preview.md +0 -71
- package/docs/hook-payload-capture.md +0 -221
- package/docs/install-friction-report.md +0 -66
- package/docs/installation.md +0 -959
- package/docs/maintainers/branch-protection.md +0 -105
- package/docs/maintainers/dev-mode.md +0 -106
- package/docs/maintainers/optional-media-deps.md +0 -50
- package/docs/maintainers/system-map.md +0 -85
- package/docs/mcp-registries.md +0 -94
- package/docs/mcp-server.md +0 -175
- package/docs/mcp.md +0 -147
- package/docs/media/proof-demo.cast +0 -14
- package/docs/media/proof-demo.gif +0 -0
- package/docs/migration/consumer-template-consumption-model.md +0 -145
- package/docs/migration/divergences/README.md +0 -55
- package/docs/migration/divergences/_template.md +0 -50
- package/docs/migration/divergences/bench-stats-float-precision.md +0 -72
- package/docs/migration/divergences/mcp-telemetry-node-sqlite.md +0 -61
- package/docs/migration/divergences/pack-mcp-content-gzip-body.md +0 -53
- package/docs/migration/divergences/src-scripts-build_cloud_bundle.md +0 -63
- package/docs/migration/divergences/src-scripts-check_memory.md +0 -91
- package/docs/migration/divergences/src-scripts-inventory_abstraction_budget.md +0 -65
- package/docs/migration/divergences/src-scripts-lint_marketplace.md +0 -57
- package/docs/migration/divergences/src-scripts-lint_mcp_registry_manifest.md +0 -70
- package/docs/migration/divergences/src-scripts-spotcheck_thin_root.md +0 -60
- package/docs/migration/divergences/src-scripts-validate_agent_settings.md +0 -58
- package/docs/migration/node-floor.md +0 -86
- package/docs/migration/v1-to-v2.md +0 -156
- package/docs/migration/yaml-roundtrip-spike.md +0 -163
- package/docs/migrations/commands-1.15.0.md +0 -117
- package/docs/parity/bench-external.json +0 -58
- package/docs/parity/bench.json +0 -41
- package/docs/parity/command-frontmatter.md +0 -60
- package/docs/parity/external-runtime.md +0 -46
- package/docs/personas.md +0 -178
- package/docs/positioning-evidence.md +0 -86
- package/docs/profiles.md +0 -108
- package/docs/proof.md +0 -252
- package/docs/quality.md +0 -98
- package/docs/readme-split-plan.md +0 -102
- package/docs/recruits/_template.md +0 -81
- package/docs/release-runbook.md +0 -141
- package/docs/role-experiences.md +0 -19
- package/docs/safety.md +0 -30
- package/docs/second-brain-scope.md +0 -116
- package/docs/self-review-gate.md +0 -65
- package/docs/setup/enterprise-and-offline.md +0 -201
- package/docs/setup/mcp-client-config.md +0 -358
- package/docs/setup/mcp-cloud-endpoints.md +0 -116
- package/docs/setup/mcp-cloud-registry-listing.md +0 -99
- package/docs/setup/mcp-cloud-setup.md +0 -183
- package/docs/setup/mcp-r2-bootstrap.md +0 -82
- package/docs/setup/mcp-server-docker.md +0 -101
- package/docs/setup/per-ide/aider.md +0 -48
- package/docs/setup/per-ide/antigravity.md +0 -68
- package/docs/setup/per-ide/augment.md +0 -89
- package/docs/setup/per-ide/claude-code.md +0 -97
- package/docs/setup/per-ide/claude-desktop.md +0 -207
- package/docs/setup/per-ide/cline.md +0 -43
- package/docs/setup/per-ide/codebuddy.md +0 -63
- package/docs/setup/per-ide/codex.md +0 -46
- package/docs/setup/per-ide/continue.md +0 -68
- package/docs/setup/per-ide/copilot.md +0 -80
- package/docs/setup/per-ide/cursor.md +0 -125
- package/docs/setup/per-ide/droid.md +0 -65
- package/docs/setup/per-ide/gemini-cli.md +0 -45
- package/docs/setup/per-ide/jetbrains.md +0 -76
- package/docs/setup/per-ide/kilocode.md +0 -66
- package/docs/setup/per-ide/kiro.md +0 -72
- package/docs/setup/per-ide/opencode.md +0 -62
- package/docs/setup/per-ide/qoder.md +0 -63
- package/docs/setup/per-ide/roocode.md +0 -68
- package/docs/setup/per-ide/trae.md +0 -63
- package/docs/setup/per-ide/warp.md +0 -63
- package/docs/setup/per-ide/windsurf.md +0 -109
- package/docs/setup/per-ide/zed.md +0 -73
- package/docs/showcase.md +0 -209
- package/docs/skill-duplication-findings.md +0 -91
- package/docs/skills-catalog.md +0 -265
- package/docs/skills-taxonomy.md +0 -90
- package/docs/spawn-site-policy.md +0 -72
- package/docs/succession.md +0 -80
- package/docs/threat-model.md +0 -30
- package/docs/troubleshooting.md +0 -155
- package/docs/ui-track-mental-model.md +0 -121
- package/docs/us-vs-the-category.md +0 -38
- package/docs/value.md +0 -86
- package/docs/walkthroughs/assets/workspace-role-grid.png +0 -0
- package/docs/walkthroughs/assets/workspace-session-started.png +0 -0
- package/docs/walkthroughs/assets/workspace-task-picker.png +0 -0
- package/docs/walkthroughs/daily-workspace-a11y.md +0 -87
- package/docs/walkthroughs/daily-workspace.md +0 -127
- package/docs/wedge/production-validator/README.md +0 -81
- package/docs/wedge/production-validator/first-run-check.sh +0 -42
- package/docs/wedge/production-validator/production-validator.md +0 -83
- package/docs/wizard.md +0 -173
- package/src/scripts/postinstall_gui.ts +0 -129
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Council Blind Review — Phase 1 protocol diff (road-to-council-blind-review).
|
|
3
|
+
*
|
|
4
|
+
* Three flag-gated, default-off deliberation-protocol experiments, all
|
|
5
|
+
* subordinate to the existing Iron Law of Neutrality (`docs/contracts/
|
|
6
|
+
* ai-council-config.md` § "Normative behaviour — migrated verbatim") — this
|
|
7
|
+
* module never touches that text, it only adds optional layers on top:
|
|
8
|
+
*
|
|
9
|
+
* - Ü1 (blind synthesis) — `deterministic_shuffle_indices` + `build_blind_labels`
|
|
10
|
+
* reuse the EXISTING `consensus.anonymize_responses` seam to strip provider
|
|
11
|
+
* identity from the chairman transcript, seeded deterministically from the
|
|
12
|
+
* question text (no `Math.random`, no `Date`). `render_deanonymization_block`
|
|
13
|
+
* restores the mapping AFTER the verdict — blind is only at decision time,
|
|
14
|
+
* never the archive.
|
|
15
|
+
* - Ü2 (stance assignment) — `STANCE_DEFS` + `assign_stances` rotate five
|
|
16
|
+
* orthogonal examine-from-perspective-Y prompts deterministically over the
|
|
17
|
+
* config-ordered member list (never "recommend X" — that would breach the
|
|
18
|
+
* neutrality contract). The `outsider` seat is the one stance the caller
|
|
19
|
+
* (orchestrator `consult()`) ablates project context for.
|
|
20
|
+
* - Ü3 (chairman fields) — `CHAIRMAN_FIELDS_ADDENDUM` / `with_chairman_fields`
|
|
21
|
+
* append two mandatory trailing sections to the synthesis template.
|
|
22
|
+
*
|
|
23
|
+
* All four exports are inert unless a CLI flag opts in (`council_cli.ts`
|
|
24
|
+
* `--chairman` / `--blind-chairman` / `--stances` / `--chairman-fields`).
|
|
25
|
+
*/
|
|
26
|
+
import { createHash } from 'node:crypto';
|
|
27
|
+
|
|
28
|
+
import { anonymize_responses } from './consensus.js';
|
|
29
|
+
|
|
30
|
+
type Dict = Record<string, unknown>;
|
|
31
|
+
|
|
32
|
+
// ── deterministic seeding (sha256 of the question text — no Math.random, no Date) ──
|
|
33
|
+
|
|
34
|
+
function _sha256_hex(s: string): string {
|
|
35
|
+
return createHash('sha256').update(s, 'utf-8').digest('hex');
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Seeded permutation of `0..n-1`, deterministic in `seed`. Decorate-sort:
|
|
40
|
+
* each index gets `sha256(seed + NUL + index)` as its sort key, ascending.
|
|
41
|
+
*/
|
|
42
|
+
export function deterministic_shuffle_indices(seed: string, n: number): number[] {
|
|
43
|
+
const keyed = Array.from({ length: n }, (_, i) => ({ i, key: _sha256_hex(`${seed}\0${i}`) }));
|
|
44
|
+
keyed.sort((a, b) => (a.key < b.key ? -1 : a.key > b.key ? 1 : 0));
|
|
45
|
+
return keyed.map((k) => k.i);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// ── Ü1 — blind chairman transcript (reuses consensus.anonymize_responses) ──
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Build a blinded chairman transcript from `[source, text]` pairs (source =
|
|
52
|
+
* canonical `provider:model`). The pair ORDER fed to `anonymize_responses` is
|
|
53
|
+
* a deterministic shuffle seeded by `question_text` — which pair becomes
|
|
54
|
+
* `Response-A` is not simply input order, so position alone leaks nothing.
|
|
55
|
+
*
|
|
56
|
+
* Returns the rendered transcript (label-headed blocks) AND the
|
|
57
|
+
* `label -> provider:model` map the caller must keep for post-verdict
|
|
58
|
+
* de-anonymization (never fed back into the prompt).
|
|
59
|
+
*/
|
|
60
|
+
export function build_blind_labels(
|
|
61
|
+
question_text: string,
|
|
62
|
+
pairs: ReadonlyArray<readonly [string, string]>,
|
|
63
|
+
): { transcript: string; label_to_source: Map<string, string> } {
|
|
64
|
+
const order = deterministic_shuffle_indices(question_text, pairs.length);
|
|
65
|
+
const shuffled = order.map((i) => pairs[i] as readonly [string, string]);
|
|
66
|
+
const [anon_text, label_to_source] = anonymize_responses(shuffled, { persona_labels: null });
|
|
67
|
+
const transcript = Array.from(anon_text.entries())
|
|
68
|
+
.map(([label, text]) => `## ${label}\n\n${text}`)
|
|
69
|
+
.join('\n\n---\n\n');
|
|
70
|
+
return { transcript, label_to_source };
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Render the post-verdict de-anonymization map. `heading` lets callers use
|
|
75
|
+
* the member-chairman heading (`### De-anonymization (post-verdict)`) or the
|
|
76
|
+
* host-render heading (`### De-anonymization map`) — the two Phase-1 call
|
|
77
|
+
* sites use distinct wording by design.
|
|
78
|
+
*/
|
|
79
|
+
export function render_deanonymization_block(heading: string, label_to_source: ReadonlyMap<string, string>): string {
|
|
80
|
+
const lines = Array.from(label_to_source.entries()).map(([label, source]) => {
|
|
81
|
+
const idx = source.indexOf(':');
|
|
82
|
+
const provider = idx === -1 ? source : source.slice(0, idx);
|
|
83
|
+
const model = idx === -1 ? '' : source.slice(idx + 1);
|
|
84
|
+
return `- ${label} → ${provider} · ${model}`;
|
|
85
|
+
});
|
|
86
|
+
return `${heading}\n\n${lines.join('\n')}`;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// ── Ü2 — orthogonal stance assignment per seat ──
|
|
90
|
+
|
|
91
|
+
export interface StanceDef {
|
|
92
|
+
readonly name: string;
|
|
93
|
+
readonly prompt: string;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
const _EXAMINE = 'Examine the question from the perspective of';
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Five orthogonal stances, UNDER the existing neutrality contract: every
|
|
100
|
+
* prompt reads "examine from perspective Y", never "recommend X" — a stance
|
|
101
|
+
* frames the lens, it never picks the answer.
|
|
102
|
+
*/
|
|
103
|
+
export const STANCE_DEFS: readonly StanceDef[] = [
|
|
104
|
+
{
|
|
105
|
+
name: 'skeptic',
|
|
106
|
+
prompt:
|
|
107
|
+
`${_EXAMINE} a skeptic: name the weakest assumption underneath the ` +
|
|
108
|
+
`artefact and the failure mode most likely to be overlooked.`,
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: 'first-principles',
|
|
112
|
+
prompt:
|
|
113
|
+
`${_EXAMINE} first principles: decompose the artefact into its most ` +
|
|
114
|
+
`basic true statements and reason upward from there, setting existing ` +
|
|
115
|
+
`conventions aside.`,
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
name: 'opportunity',
|
|
119
|
+
prompt:
|
|
120
|
+
`${_EXAMINE} opportunity: surface the upside case and the option ` +
|
|
121
|
+
`value a narrower reading of the artefact might miss.`,
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
name: 'outsider',
|
|
125
|
+
prompt:
|
|
126
|
+
`${_EXAMINE} an outsider unfamiliar with this project's history and ` +
|
|
127
|
+
`conventions: work only from the artefact in front of you.`,
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
name: 'operator',
|
|
131
|
+
prompt:
|
|
132
|
+
`${_EXAMINE} an operator who has to run the resulting decision day to ` +
|
|
133
|
+
`day: surface the operational cost and the maintenance burden.`,
|
|
134
|
+
},
|
|
135
|
+
] as const;
|
|
136
|
+
|
|
137
|
+
/** The one seat whose deliberation prompt drops `project_context` (Ü2). */
|
|
138
|
+
export const OUTSIDER_STANCE_NAME = 'outsider';
|
|
139
|
+
|
|
140
|
+
/** `sha256(question_text)` first byte, mod `STANCE_DEFS.length` — the rotation offset. */
|
|
141
|
+
export function stance_offset(question_text: string): number {
|
|
142
|
+
const hex = _sha256_hex(question_text);
|
|
143
|
+
return parseInt(hex.slice(0, 2), 16) % STANCE_DEFS.length;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* Member `i` (in the given config order) gets
|
|
148
|
+
* `STANCE_DEFS[(offset + i) mod 5]`, `offset` deterministic from
|
|
149
|
+
* `question_text`. Same question → same assignment; different question →
|
|
150
|
+
* (usually) a different rotation offset.
|
|
151
|
+
*/
|
|
152
|
+
export function assign_stances(member_names: readonly string[], question_text: string): Map<string, StanceDef> {
|
|
153
|
+
const offset = stance_offset(question_text);
|
|
154
|
+
const out = new Map<string, StanceDef>();
|
|
155
|
+
member_names.forEach((name, i) => {
|
|
156
|
+
out.set(name, STANCE_DEFS[(offset + i) % STANCE_DEFS.length] as StanceDef);
|
|
157
|
+
});
|
|
158
|
+
return out;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// ── Ü3 — mandatory chairman fields ──
|
|
162
|
+
|
|
163
|
+
export const CHAIRMAN_FIELDS_ADDENDUM = `## Collective blind spot
|
|
164
|
+
What did ALL members miss — non-obvious, specific.
|
|
165
|
+
|
|
166
|
+
## One-line verdict
|
|
167
|
+
One sentence, and the single strongest reason.`;
|
|
168
|
+
|
|
169
|
+
/** Append the two Ü3 sections to a synthesis template (host or member-chairman). */
|
|
170
|
+
export function with_chairman_fields(template: string): string {
|
|
171
|
+
return template ? `${template}\n\n${CHAIRMAN_FIELDS_ADDENDUM}` : CHAIRMAN_FIELDS_ADDENDUM;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// ── `--chairman <host|auto|member:NAME>` override parsing ──
|
|
175
|
+
|
|
176
|
+
export interface ChairmanOverride {
|
|
177
|
+
readonly mode: 'host' | 'auto' | 'member';
|
|
178
|
+
readonly member: string | null;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/** Parse the `--chairman` flag value. `null` input → `null` (no override). Throws on malformed input. */
|
|
182
|
+
export function parse_chairman_override(raw: string | null): ChairmanOverride | null {
|
|
183
|
+
if (raw === null) {
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
if (raw === 'host' || raw === 'auto') {
|
|
187
|
+
return { mode: raw, member: null };
|
|
188
|
+
}
|
|
189
|
+
if (raw.startsWith('member:')) {
|
|
190
|
+
const member = raw.slice('member:'.length).trim();
|
|
191
|
+
if (!member) {
|
|
192
|
+
throw new Error(`--chairman member: form requires a name, got ${JSON.stringify(raw)}.`);
|
|
193
|
+
}
|
|
194
|
+
return { mode: 'member', member };
|
|
195
|
+
}
|
|
196
|
+
throw new Error(`--chairman expects host|auto|member:NAME, got ${JSON.stringify(raw)}.`);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/** Apply a parsed `--chairman` override to a raw `ai_council` config dict — a pure override, no config write. */
|
|
200
|
+
export function apply_chairman_override(ai_cfg: Dict, override: ChairmanOverride | null): Dict {
|
|
201
|
+
if (override === null) {
|
|
202
|
+
return ai_cfg;
|
|
203
|
+
}
|
|
204
|
+
const existing = (ai_cfg['chairman'] as Dict) || {};
|
|
205
|
+
const next: Dict = { ...existing, mode: override.mode };
|
|
206
|
+
if (override.mode === 'member') {
|
|
207
|
+
next['member'] = override.member;
|
|
208
|
+
} else {
|
|
209
|
+
delete next['member'];
|
|
210
|
+
}
|
|
211
|
+
return { ...ai_cfg, chairman: next };
|
|
212
|
+
}
|
|
@@ -12,9 +12,13 @@
|
|
|
12
12
|
* same permission discipline as the API keys). The legacy
|
|
13
13
|
* `~/.config/agent-config/council-spend.jsonl` is read as a fallback.
|
|
14
14
|
*
|
|
15
|
-
* Contract (verbatim from the Python module
|
|
15
|
+
* Contract (verbatim from the Python module, plus the additive TS-only
|
|
16
|
+
* cache extension below):
|
|
16
17
|
* - The ledger is **append-only**. Each line is `{"ts": ISO-8601 UTC,
|
|
17
|
-
* "usd": float, "provider": str, "model": str}
|
|
18
|
+
* "usd": float, "provider": str, "model": str}`, optionally followed by
|
|
19
|
+
* `"cache_read_input_tokens": int, "cache_creation_input_tokens": int,
|
|
20
|
+
* "cache_ttl": "5m"|"1h"` when the caller reports cache activity — absent
|
|
21
|
+
* on every entry recorded before this extension shipped.
|
|
18
22
|
* - `today_spend_usd()` sums entries within the last 24h from "now".
|
|
19
23
|
* - `would_exceed(limit_usd, next_call_usd)` returns true iff the next call
|
|
20
24
|
* would push the rolling window past the limit.
|
|
@@ -75,6 +79,12 @@ export interface SpendEntry {
|
|
|
75
79
|
usd: number;
|
|
76
80
|
provider: string;
|
|
77
81
|
model: string;
|
|
82
|
+
// Prompt-cache accounting (additive — absent on entries recorded before
|
|
83
|
+
// this field existed, and on calls with no cache activity to report).
|
|
84
|
+
cache_read_input_tokens?: number;
|
|
85
|
+
cache_creation_input_tokens?: number;
|
|
86
|
+
/** Write-multiplier TTL tier in effect when this entry was recorded. */
|
|
87
|
+
cache_ttl?: '5m' | '1h';
|
|
78
88
|
}
|
|
79
89
|
|
|
80
90
|
function _nowUtcMs(): number {
|
|
@@ -259,14 +269,37 @@ function _pyJsonString(s: string): string {
|
|
|
259
269
|
* `json.dumps({"ts": ts, "usd": round(usd, 6), "provider": provider,
|
|
260
270
|
* "model": model})` does: default separators (`", "`, `": "`), insertion
|
|
261
271
|
* order (NOT sorted). `usd` is a float (`pyFloatRepr`); the rest are strings.
|
|
272
|
+
*
|
|
273
|
+
* The three cache params are appended only when the CALLER passed them
|
|
274
|
+
* (`!== undefined`) — a call with none of the three reproduces the original
|
|
275
|
+
* 4-key line byte-for-byte, which is what keeps every pre-existing caller
|
|
276
|
+
* (and the python3 byte-parity test, which has no Python-side cache
|
|
277
|
+
* counterpart) unaffected by this additive extension.
|
|
262
278
|
*/
|
|
263
|
-
function _dumpEntry(
|
|
264
|
-
|
|
265
|
-
|
|
279
|
+
function _dumpEntry(
|
|
280
|
+
ts: string,
|
|
281
|
+
usd: number,
|
|
282
|
+
provider: string,
|
|
283
|
+
model: string,
|
|
284
|
+
cacheRead?: number,
|
|
285
|
+
cacheWrite?: number,
|
|
286
|
+
cacheTtl?: '5m' | '1h',
|
|
287
|
+
): string {
|
|
288
|
+
let body =
|
|
289
|
+
`${_pyJsonString('ts')}: ${_pyJsonString(ts)}, ` +
|
|
266
290
|
`${_pyJsonString('usd')}: ${pyFloatRepr(usd)}, ` +
|
|
267
291
|
`${_pyJsonString('provider')}: ${_pyJsonString(provider)}, ` +
|
|
268
|
-
`${_pyJsonString('model')}: ${_pyJsonString(model)}
|
|
269
|
-
)
|
|
292
|
+
`${_pyJsonString('model')}: ${_pyJsonString(model)}`;
|
|
293
|
+
if (cacheRead !== undefined) {
|
|
294
|
+
body += `, ${_pyJsonString('cache_read_input_tokens')}: ${Math.trunc(cacheRead)}`;
|
|
295
|
+
}
|
|
296
|
+
if (cacheWrite !== undefined) {
|
|
297
|
+
body += `, ${_pyJsonString('cache_creation_input_tokens')}: ${Math.trunc(cacheWrite)}`;
|
|
298
|
+
}
|
|
299
|
+
if (cacheTtl !== undefined) {
|
|
300
|
+
body += `, ${_pyJsonString('cache_ttl')}: ${_pyJsonString(cacheTtl)}`;
|
|
301
|
+
}
|
|
302
|
+
return `{${body}}`;
|
|
270
303
|
}
|
|
271
304
|
|
|
272
305
|
/** Coerce a parsed JSON value to a float like Python's `float(obj.get(...))`. */
|
|
@@ -366,16 +399,46 @@ export function read_entries(p: string | null = null): SpendEntry[] {
|
|
|
366
399
|
if (usd === null) {
|
|
367
400
|
continue;
|
|
368
401
|
}
|
|
369
|
-
|
|
402
|
+
const entry: SpendEntry = {
|
|
370
403
|
ts,
|
|
371
404
|
usd,
|
|
372
405
|
provider: _toStr(record.provider, ''),
|
|
373
406
|
model: _toStr(record.model, ''),
|
|
374
|
-
}
|
|
407
|
+
};
|
|
408
|
+
// exactOptionalPropertyTypes forbids `key: undefined` on an object
|
|
409
|
+
// literal — assign conditionally so a legacy (or cache-less) line
|
|
410
|
+
// leaves these keys absent rather than present-but-undefined.
|
|
411
|
+
const cacheRead = _toOptionalNonNegInt(record.cache_read_input_tokens);
|
|
412
|
+
if (cacheRead !== undefined) {
|
|
413
|
+
entry.cache_read_input_tokens = cacheRead;
|
|
414
|
+
}
|
|
415
|
+
const cacheWrite = _toOptionalNonNegInt(record.cache_creation_input_tokens);
|
|
416
|
+
if (cacheWrite !== undefined) {
|
|
417
|
+
entry.cache_creation_input_tokens = cacheWrite;
|
|
418
|
+
}
|
|
419
|
+
const cacheTtl = _toOptionalTtl(record.cache_ttl);
|
|
420
|
+
if (cacheTtl !== undefined) {
|
|
421
|
+
entry.cache_ttl = cacheTtl;
|
|
422
|
+
}
|
|
423
|
+
out.push(entry);
|
|
375
424
|
}
|
|
376
425
|
return out;
|
|
377
426
|
}
|
|
378
427
|
|
|
428
|
+
/** A non-negative finite number, or `undefined` when absent/malformed. */
|
|
429
|
+
function _toOptionalNonNegInt(v: unknown): number | undefined {
|
|
430
|
+
if (v === undefined || v === null) {
|
|
431
|
+
return undefined;
|
|
432
|
+
}
|
|
433
|
+
const n = _toFloat(v);
|
|
434
|
+
return n === null || n < 0 ? undefined : n;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
/** `'5m' | '1h'`, or `undefined` for anything else (including absent). */
|
|
438
|
+
function _toOptionalTtl(v: unknown): '5m' | '1h' | undefined {
|
|
439
|
+
return v === '5m' || v === '1h' ? v : undefined;
|
|
440
|
+
}
|
|
441
|
+
|
|
379
442
|
/** `str(obj.get("ts", ""))` — the timestamp is read as a string before parsing. */
|
|
380
443
|
function _rawStr(v: unknown): string {
|
|
381
444
|
if (v === undefined) {
|
|
@@ -424,7 +487,15 @@ export function record_spend(
|
|
|
424
487
|
usd: number,
|
|
425
488
|
provider: string,
|
|
426
489
|
model: string,
|
|
427
|
-
options: {
|
|
490
|
+
options: {
|
|
491
|
+
path?: string | null;
|
|
492
|
+
now?: number | null;
|
|
493
|
+
// Additive prompt-cache accounting (Step B). Omitting all three
|
|
494
|
+
// reproduces the original 4-field ledger line exactly.
|
|
495
|
+
cache_read_input_tokens?: number;
|
|
496
|
+
cache_creation_input_tokens?: number;
|
|
497
|
+
cache_ttl?: '5m' | '1h';
|
|
498
|
+
} = {},
|
|
428
499
|
): boolean {
|
|
429
500
|
if (usd <= 0) {
|
|
430
501
|
return true; // zero-cost calls (manual mode) skip the ledger
|
|
@@ -435,7 +506,15 @@ export function record_spend(
|
|
|
435
506
|
}
|
|
436
507
|
const nowMs = options.now ?? _nowUtcMs();
|
|
437
508
|
const ts = nowUtcIso(nowMs);
|
|
438
|
-
const entry = `${_dumpEntry(
|
|
509
|
+
const entry = `${_dumpEntry(
|
|
510
|
+
ts,
|
|
511
|
+
_pyRound6(usd),
|
|
512
|
+
provider,
|
|
513
|
+
model,
|
|
514
|
+
options.cache_read_input_tokens,
|
|
515
|
+
options.cache_creation_input_tokens,
|
|
516
|
+
options.cache_ttl,
|
|
517
|
+
)}\n`;
|
|
439
518
|
try {
|
|
440
519
|
fs.appendFileSync(p, entry, { encoding: 'utf-8' });
|
|
441
520
|
} catch (exc) {
|
|
@@ -263,7 +263,7 @@ export function bundle_diff_with_context(
|
|
|
263
263
|
}
|
|
264
264
|
|
|
265
265
|
const root = cwd ? cwd : '.';
|
|
266
|
-
const seen = new Set<string>(); // `${file}
|
|
266
|
+
const seen = new Set<string>(); // `${file}\0${signature_line}`
|
|
267
267
|
// Preserve insertion order of first-seen files (Python dict order).
|
|
268
268
|
const byFile = new Map<string, Array<[number, string]>>();
|
|
269
269
|
|
|
@@ -279,7 +279,7 @@ export function bundle_diff_with_context(
|
|
|
279
279
|
if (sig === null) {
|
|
280
280
|
continue;
|
|
281
281
|
}
|
|
282
|
-
const key = `${filePath}
|
|
282
|
+
const key = `${filePath}\0${sig[0]}`;
|
|
283
283
|
if (seen.has(key)) {
|
|
284
284
|
continue;
|
|
285
285
|
}
|
|
@@ -109,7 +109,7 @@ export const UNLIMITED_TOKENS_FALLBACK = 16384;
|
|
|
109
109
|
// OpenAI reasoning models (o1, o3, o4 families) reject `max_tokens` and the
|
|
110
110
|
// `system` role; they require `max_completion_tokens` and accept only `user`
|
|
111
111
|
// (and `developer`) messages.
|
|
112
|
-
const _REASONING_PREFIXES: readonly string[] = ['o1', 'o3', 'o4'];
|
|
112
|
+
const _REASONING_PREFIXES: readonly string[] = ['o1', 'o3', 'o4', 'gpt-5'];
|
|
113
113
|
|
|
114
114
|
export function _is_reasoning_model(model: string): boolean {
|
|
115
115
|
const name = model.toLowerCase();
|
|
@@ -132,6 +132,38 @@ export class CliClientError extends Error {
|
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
+
/**
|
|
136
|
+
* Anthropic cache_control TTL tiers (road-to-cache-economy Phase 4).
|
|
137
|
+
* `'5m'` is the permanent default — see `prompt_cache.ttl` in
|
|
138
|
+
* `docs/contracts/ai-council-config.md` for the falsification condition
|
|
139
|
+
* that would be required before `'1h'` is ever enabled anywhere.
|
|
140
|
+
*/
|
|
141
|
+
export type PromptCacheTtl = '5m' | '1h';
|
|
142
|
+
export const DEFAULT_PROMPT_CACHE_TTL: PromptCacheTtl = '5m';
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Anthropic's cache_control ordering rule: within one request, a 1-hour
|
|
146
|
+
* breakpoint must be positioned before any 5-minute breakpoint. This
|
|
147
|
+
* client always applies the SAME configured ttl to both of its
|
|
148
|
+
* breakpoints (see `_ask_impl`), so the two are never mixed in
|
|
149
|
+
* practice — this guard exists so a future per-breakpoint ttl never
|
|
150
|
+
* regresses that invariant silently.
|
|
151
|
+
*/
|
|
152
|
+
export function assertCacheBreakpointOrder(ttls: readonly PromptCacheTtl[]): void {
|
|
153
|
+
let sawFiveMinute = false;
|
|
154
|
+
for (const ttl of ttls) {
|
|
155
|
+
if (ttl === '5m') {
|
|
156
|
+
sawFiveMinute = true;
|
|
157
|
+
} else if (ttl === '1h' && sawFiveMinute) {
|
|
158
|
+
throw new TypeError(
|
|
159
|
+
`cache_control breakpoint order violation: a '1h' breakpoint ` +
|
|
160
|
+
`followed a '5m' one (${JSON.stringify(ttls)}) — Anthropic ` +
|
|
161
|
+
`requires every 1h breakpoint before any 5m breakpoint.`,
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
135
167
|
/** Normalised output from a single council member (dataclass `CouncilResponse`). */
|
|
136
168
|
export class CouncilResponse {
|
|
137
169
|
provider: string;
|
|
@@ -319,6 +351,10 @@ interface ApiClientOptions {
|
|
|
319
351
|
// unless it asks — so a single call never pays the ~1.25× write premium by
|
|
320
352
|
// surprise. Only AnthropicClient consumes this; other providers ignore it.
|
|
321
353
|
enable_prompt_cache?: boolean | undefined;
|
|
354
|
+
// TTL tier for both cache_control breakpoints (road-to-cache-economy
|
|
355
|
+
// Phase 4). Default '5m' when omitted — see `DEFAULT_PROMPT_CACHE_TTL`.
|
|
356
|
+
// Only meaningful when `enable_prompt_cache` is true.
|
|
357
|
+
prompt_cache_ttl?: PromptCacheTtl | undefined;
|
|
322
358
|
}
|
|
323
359
|
|
|
324
360
|
/** Shared ctor-options shape for the CLI clients. */
|
|
@@ -380,11 +416,17 @@ export class AnthropicClient extends ExternalAIClient {
|
|
|
380
416
|
// ApiClientOptions.enable_prompt_cache. Prevents silent activation (and the
|
|
381
417
|
// write premium) for callers that don't benefit from a shared-prefix cache.
|
|
382
418
|
private _enablePromptCache: boolean;
|
|
419
|
+
// TTL applied to BOTH cache_control breakpoints below. '5m' (the
|
|
420
|
+
// default) is never serialised on the wire — omitting `ttl` is the
|
|
421
|
+
// Anthropic API's own 5-minute default, so the default case stays
|
|
422
|
+
// byte-identical to the pre-Phase-4 request shape.
|
|
423
|
+
private _promptCacheTtl: PromptCacheTtl;
|
|
383
424
|
|
|
384
425
|
constructor(opts: ApiClientOptions = {}) {
|
|
385
426
|
super();
|
|
386
427
|
this.model = opts.model ?? DEFAULT_ANTHROPIC_MODEL;
|
|
387
428
|
this._enablePromptCache = opts.enable_prompt_cache ?? false;
|
|
429
|
+
this._promptCacheTtl = opts.prompt_cache_ttl ?? DEFAULT_PROMPT_CACHE_TTL;
|
|
388
430
|
if (opts.client !== undefined && opts.client !== null) {
|
|
389
431
|
this._client = opts.client;
|
|
390
432
|
return;
|
|
@@ -455,6 +497,18 @@ export class AnthropicClient extends ExternalAIClient {
|
|
|
455
497
|
// base_system_prompt alone is often below the model's min cacheable
|
|
456
498
|
// prefix and would never cache solo — the artefact block is where
|
|
457
499
|
// the real saving lands. Two breakpoints (≤ the 4 allowed).
|
|
500
|
+
//
|
|
501
|
+
// Both breakpoints share the SAME configured ttl (road-to-
|
|
502
|
+
// cache-economy Phase 4) — they never diverge, so the API's
|
|
503
|
+
// "1h before 5m" ordering rule can never be violated here; the
|
|
504
|
+
// assertion below is a regression guard, not a live branch.
|
|
505
|
+
// Default '5m' omits the `ttl` field entirely (Anthropic's own
|
|
506
|
+
// default), so an unconfigured member's wire shape is unchanged
|
|
507
|
+
// from before Phase 4.
|
|
508
|
+
const ttl = this._promptCacheTtl;
|
|
509
|
+
assertCacheBreakpointOrder([ttl, ttl]);
|
|
510
|
+
const cache_control: Record<string, unknown> =
|
|
511
|
+
ttl === '1h' ? { type: 'ephemeral', ttl: '1h' } : { type: 'ephemeral' };
|
|
458
512
|
const kwargs: Record<string, unknown> = this._enablePromptCache
|
|
459
513
|
? {
|
|
460
514
|
model: this.model,
|
|
@@ -463,7 +517,7 @@ export class AnthropicClient extends ExternalAIClient {
|
|
|
463
517
|
{
|
|
464
518
|
type: 'text',
|
|
465
519
|
text: system_prompt,
|
|
466
|
-
cache_control
|
|
520
|
+
cache_control,
|
|
467
521
|
},
|
|
468
522
|
],
|
|
469
523
|
messages: [
|
|
@@ -473,11 +527,13 @@ export class AnthropicClient extends ExternalAIClient {
|
|
|
473
527
|
// volatile suffix (round critiques) rides after
|
|
474
528
|
// it, so round N+1 reads the cached prefix
|
|
475
529
|
// instead of re-writing it (A3 read unlock).
|
|
530
|
+
// The volatile suffix NEVER carries cache_control
|
|
531
|
+
// — the ttl reaches only the stable prefix.
|
|
476
532
|
content: [
|
|
477
533
|
{
|
|
478
534
|
type: 'text',
|
|
479
535
|
text: stable_prompt,
|
|
480
|
-
cache_control
|
|
536
|
+
cache_control,
|
|
481
537
|
},
|
|
482
538
|
...(volatile_suffix
|
|
483
539
|
? [{ type: 'text', text: volatile_suffix }]
|
|
@@ -362,6 +362,9 @@ export interface CostBudgetConfig {
|
|
|
362
362
|
readonly max_output_tokens: number;
|
|
363
363
|
readonly max_calls: number;
|
|
364
364
|
readonly max_total_usd: number;
|
|
365
|
+
/** Rolling 24h cap. 0 disables it — and disabling it also disables the spend
|
|
366
|
+
* ledger, since the orchestrator only appends an entry while a cap is live. */
|
|
367
|
+
readonly daily_limit_usd: number;
|
|
365
368
|
}
|
|
366
369
|
|
|
367
370
|
export interface MemberConfig {
|
|
@@ -380,6 +383,13 @@ export interface MemberConfig {
|
|
|
380
383
|
* back to deterministic config order.
|
|
381
384
|
*/
|
|
382
385
|
readonly tier: number | null;
|
|
386
|
+
/**
|
|
387
|
+
* Cache-control TTL tier for this member's Anthropic breakpoints
|
|
388
|
+
* (road-to-cache-economy Phase 4). `'5m'` is the permanent default —
|
|
389
|
+
* see `prompt_cache.ttl` in `docs/contracts/ai-council-config.md` for
|
|
390
|
+
* the falsification condition that gates ever enabling `'1h'`.
|
|
391
|
+
*/
|
|
392
|
+
readonly prompt_cache_ttl: '5m' | '1h';
|
|
383
393
|
}
|
|
384
394
|
|
|
385
395
|
/**
|
|
@@ -915,10 +925,15 @@ function _build_model_downgrade(d: Dict): ModelDowngradeConfig {
|
|
|
915
925
|
if (!_isBool(enabled)) {
|
|
916
926
|
throw new CouncilConfigError('`model_downgrade.enabled` must be a bool.');
|
|
917
927
|
}
|
|
918
|
-
//
|
|
919
|
-
//
|
|
920
|
-
//
|
|
921
|
-
|
|
928
|
+
// 2026-07-28 (road-to-feedback-9.8.0-followups Phase 3): auto_apply
|
|
929
|
+
// default downgraded back to FALSE (suggest, don't silently apply). The
|
|
930
|
+
// A3 flip to TRUE (2026-07-20) shipped without a paired quality
|
|
931
|
+
// measurement and was the only default-ON surface without one (R7
|
|
932
|
+
// watch-item); until a paired eval measures downgraded-member council
|
|
933
|
+
// quality, the downgrade surfaces as a suggestion the caller applies
|
|
934
|
+
// explicitly. Revisit: a paired eval (full-tier vs downgraded, blind
|
|
935
|
+
// judge) showing held quality re-flips this to true.
|
|
936
|
+
const auto_apply = _get(d, 'auto_apply', false);
|
|
922
937
|
if (!_isBool(auto_apply)) {
|
|
923
938
|
throw new CouncilConfigError('`model_downgrade.auto_apply` must be a bool.');
|
|
924
939
|
}
|
|
@@ -1331,8 +1346,9 @@ function _build_lens_overrides(d: Dict): LensOverridesConfig {
|
|
|
1331
1346
|
`\`lenses.${lens_name}.model_downgrade.enabled\` must be a bool.`,
|
|
1332
1347
|
);
|
|
1333
1348
|
}
|
|
1334
|
-
// Lens overrides inherit the
|
|
1335
|
-
|
|
1349
|
+
// Lens overrides inherit the suggest-by-default posture
|
|
1350
|
+
// (2026-07-28 downgrade of the unmeasured A3 auto-default).
|
|
1351
|
+
const md_auto = _get(md_block, 'auto_apply', false);
|
|
1336
1352
|
if (!_isBool(md_auto)) {
|
|
1337
1353
|
throw new CouncilConfigError(
|
|
1338
1354
|
`\`lenses.${lens_name}.model_downgrade.auto_apply\` must be a bool.`,
|
|
@@ -1585,12 +1601,14 @@ function _build_cost_budget(d: Dict): CostBudgetConfig {
|
|
|
1585
1601
|
max_output_tokens: _pyInt(_get(d, 'max_output_tokens', 200_000)),
|
|
1586
1602
|
max_calls: _pyInt(_get(d, 'max_calls', 50)),
|
|
1587
1603
|
max_total_usd: _pyFloat(_get(d, 'max_total_usd', 20.0)),
|
|
1604
|
+
daily_limit_usd: _pyFloat(_get(d, 'daily_limit_usd', 0.0)),
|
|
1588
1605
|
};
|
|
1589
1606
|
const fields: Array<[keyof CostBudgetConfig, boolean]> = [
|
|
1590
1607
|
['max_input_tokens', false],
|
|
1591
1608
|
['max_output_tokens', false],
|
|
1592
1609
|
['max_calls', false],
|
|
1593
1610
|
['max_total_usd', true],
|
|
1611
|
+
['daily_limit_usd', true],
|
|
1594
1612
|
];
|
|
1595
1613
|
for (const [fname, isFloat] of fields) {
|
|
1596
1614
|
const val = cb[fname];
|
|
@@ -1710,6 +1728,31 @@ function _build_member(
|
|
|
1710
1728
|
}
|
|
1711
1729
|
tier = tier_raw;
|
|
1712
1730
|
}
|
|
1731
|
+
// road-to-cache-economy Phase 4: `prompt_cache` stays accepted as a
|
|
1732
|
+
// bare bool (the pre-existing, undocumented enable/disable form —
|
|
1733
|
+
// untouched here) OR as a mapping carrying `ttl`. '5m' is the
|
|
1734
|
+
// permanent default; see docs/contracts/ai-council-config.md
|
|
1735
|
+
// § Prompt cache TTL for the falsification condition on '1h'.
|
|
1736
|
+
const prompt_cache_raw = _get(cfg, 'prompt_cache', null);
|
|
1737
|
+
let prompt_cache_ttl: '5m' | '1h' = '5m';
|
|
1738
|
+
if (prompt_cache_raw !== null && prompt_cache_raw !== undefined && !_isBool(prompt_cache_raw)) {
|
|
1739
|
+
if (!_isDict(prompt_cache_raw)) {
|
|
1740
|
+
throw new CouncilConfigError(
|
|
1741
|
+
`members.${name}.prompt_cache must be a bool or a mapping ` +
|
|
1742
|
+
`(got ${_pyTypeName(prompt_cache_raw)}).`,
|
|
1743
|
+
);
|
|
1744
|
+
}
|
|
1745
|
+
const ttl_raw = _get(prompt_cache_raw, 'ttl', '5m');
|
|
1746
|
+
if (ttl_raw !== '5m' && ttl_raw !== '1h') {
|
|
1747
|
+
throw new CouncilConfigError(
|
|
1748
|
+
`members.${name}.prompt_cache.ttl must be '5m' or '1h' (got ` +
|
|
1749
|
+
`${_pyRepr(ttl_raw)}). '5m' remains the default until a ` +
|
|
1750
|
+
`pre-registered 30-debate gap sample clears 40% at ` +
|
|
1751
|
+
`>=5-minute inter-round gaps.`,
|
|
1752
|
+
);
|
|
1753
|
+
}
|
|
1754
|
+
prompt_cache_ttl = ttl_raw;
|
|
1755
|
+
}
|
|
1713
1756
|
return {
|
|
1714
1757
|
name,
|
|
1715
1758
|
enabled: member_enabled,
|
|
@@ -1720,6 +1763,7 @@ function _build_member(
|
|
|
1720
1763
|
model_ladder: ladder,
|
|
1721
1764
|
participate_low_impact: participate_raw,
|
|
1722
1765
|
tier,
|
|
1766
|
+
prompt_cache_ttl,
|
|
1723
1767
|
};
|
|
1724
1768
|
}
|
|
1725
1769
|
|