@event4u/agent-config 9.7.0 → 9.9.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 +314 -190
- package/CONTRIBUTING.md +23 -7
- package/MIGRATION.md +20 -0
- package/README.md +57 -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.md +1 -1
- package/dist/agent-src/commands/agents.md +1 -1
- package/dist/agent-src/commands/check-current-md.md +3 -3
- package/dist/agent-src/commands/commit/in-chunks.md +8 -0
- package/dist/agent-src/commands/commit.md +17 -0
- package/dist/agent-src/commands/fix/portability.md +2 -2
- package/dist/agent-src/commands/fix/pr-comments-loop.md +136 -0
- package/dist/agent-src/commands/fix/refs.md +2 -2
- 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/image.md +1 -1
- package/dist/agent-src/commands/optimize/augmentignore.md +1 -1
- package/dist/agent-src/commands/optimize/skills.md +2 -2
- package/dist/agent-src/commands/post-as.md +1 -1
- package/dist/agent-src/commands/pr/create.md +4 -0
- 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/security-audit-config.md +1 -1
- package/dist/agent-src/commands/team/delegate.md +4 -0
- package/dist/agent-src/commands/video.md +1 -1
- package/dist/agent-src/contexts/authority/kernel-rule-edits.md +1 -1
- package/dist/agent-src/contexts/contracts/emergency-triage-block.md +2 -2
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +48 -2
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +10 -0
- 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-spawn-contract.md +53 -3
- package/dist/agent-src/contexts/override-system.md +75 -5
- package/dist/agent-src/rules/code-provenance.md +112 -0
- package/dist/agent-src/rules/context-hygiene.md +2 -0
- package/dist/agent-src/rules/doc-screenshot-hygiene.md +97 -0
- package/dist/agent-src/rules/domain-safety-pii.md +1 -0
- package/dist/agent-src/rules/external-code-graph-interop.md +13 -3
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +2 -0
- package/dist/agent-src/rules/git-history-discipline.md +2 -0
- package/dist/agent-src/rules/history-discipline.md +80 -0
- package/dist/agent-src/rules/language-and-tone.md +2 -0
- package/dist/agent-src/rules/lethal-trifecta-guard.md +3 -0
- package/dist/agent-src/rules/media-governance-routing.md +2 -0
- package/dist/agent-src/rules/minimal-safe-diff.md +2 -0
- package/dist/agent-src/rules/no-roadmap-references.md +4 -1
- package/dist/agent-src/rules/non-destructive-by-default.md +20 -0
- package/dist/agent-src/rules/onboarding-gate.md +2 -0
- package/dist/agent-src/rules/output-discipline.md +2 -0
- package/dist/agent-src/rules/persona-governance.md +2 -0
- package/dist/agent-src/rules/php-coding.md +1 -0
- package/dist/agent-src/rules/preservation-guard.md +3 -0
- 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 +9 -0
- package/dist/agent-src/rules/scale-discipline.md +92 -0
- package/dist/agent-src/rules/secret-vcs-guard.md +106 -0
- package/dist/agent-src/rules/security-sensitive-stop.md +11 -1
- package/dist/agent-src/rules/session-canary.md +77 -0
- package/dist/agent-src/rules/skill-quality.md +2 -0
- package/dist/agent-src/rules/source-confidentiality.md +2 -0
- package/dist/agent-src/rules/source-of-truth.md +2 -0
- package/dist/agent-src/rules/telegraph-speak.md +2 -0
- package/dist/agent-src/rules/token-optimizer-maintenance.md +3 -1
- package/dist/agent-src/rules/tool-safety.md +4 -1
- package/dist/agent-src/rules/untrusted-input-defense.md +10 -0
- package/dist/agent-src/rules/verify-before-complete.md +2 -0
- package/dist/agent-src/skills/adr-create/SKILL.md +17 -1
- package/dist/agent-src/skills/agent-security-review/SKILL.md +1 -1
- package/dist/agent-src/skills/code-intelligence/SKILL.md +97 -0
- package/dist/agent-src/skills/condense-memory/SKILL.md +1 -1
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +0 -3
- package/dist/agent-src/skills/description-assist/SKILL.md +1 -1
- package/dist/agent-src/skills/design-review/SKILL.md +5 -6
- package/dist/agent-src/skills/design-tokens/SKILL.md +0 -1
- package/dist/agent-src/skills/gated-reach/SKILL.md +185 -0
- package/dist/agent-src/skills/gated-reach/evals/triggers.json +72 -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 +3 -3
- package/dist/agent-src/skills/image-analyser/SKILL.md +14 -12
- package/dist/agent-src/skills/image-editing/SKILL.md +2 -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/launch-readiness/SKILL.md +1 -1
- 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/md-language-check/SKILL.md +1 -1
- package/dist/agent-src/skills/override-management/SKILL.md +1 -1
- package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +7 -7
- package/dist/agent-src/skills/project-analysis-core/SKILL.md +1 -1
- package/dist/agent-src/skills/prompt-engineering-image/SKILL.md +3 -2
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +2 -2
- package/dist/agent-src/skills/readme-writing/SKILL.md +6 -1
- package/dist/agent-src/skills/recursive-verification/SKILL.md +6 -0
- package/dist/agent-src/skills/refine-ticket/SKILL.md +3 -3
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +4 -0
- package/dist/agent-src/skills/rtk-output-filtering/SKILL.md +31 -12
- package/dist/agent-src/skills/rule-refactor/SKILL.md +3 -3
- 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/SKILL.md +171 -0
- package/dist/agent-src/skills/secrets-management/SKILL.md +43 -1
- package/dist/agent-src/skills/security-audit/SKILL.md +1 -1
- package/dist/agent-src/skills/security-maturity-assessment/SKILL.md +1 -1
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +3 -3
- package/dist/agent-src/skills/skill-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/source-discovery/SKILL.md +5 -5
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +45 -85
- package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +5 -4
- package/dist/agent-src/skills/subagent-orchestration/prompts/adversarial-verification-council.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-and-judge-two-stage.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-and-judge.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-competitively.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-parallel.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-steps.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-worktrees.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/judge-with-debate.md +29 -0
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +2 -2
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +2 -3
- package/dist/agent-src/skills/token-optimizer/SKILL.md +4 -4
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +4 -0
- package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +2 -3
- 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/github-workflows/secret-scan.yml +65 -0
- package/dist/agent-src/templates/persona.md +2 -2
- package/dist/agent-src/templates/rule.md +2 -2
- package/dist/agent-src/templates/scripts/telemetry/engagement.ts +77 -0
- package/dist/agent-src/templates/scripts/telemetry_record.ts +33 -1
- 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/configRoot.js +112 -0
- package/dist/cli/configRoot.js.map +1 -0
- package/dist/cli/configRoot.test.js +97 -0
- package/dist/cli/configRoot.test.js.map +1 -0
- package/dist/cli/firstRunNotice.js +70 -0
- package/dist/cli/firstRunNotice.js.map +1 -0
- package/dist/cli/help.js +4 -1
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/main.js +54 -5
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/registry.js +8 -1
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +502 -101
- 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 +95 -8
- package/dist/discovery/trust-report.md +11 -11
- package/dist/discovery/workspaces.json +36 -7
- package/dist/hooks/dispatch.js +19475 -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 +791 -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 +44292 -0
- package/dist/router.json +1 -1
- package/dist/scripts/condense.js +14 -7
- package/dist/scripts/condense.js.map +1 -1
- package/dist/server/app.js +12 -0
- 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 +32 -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 +12 -2
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/server/serverInfo.js +6 -2
- package/dist/server/serverInfo.js.map +1 -1
- package/dist/server/token.js +11 -4
- package/dist/server/token.js.map +1 -1
- package/dist/server/writeRoot.js +15 -1
- package/dist/server/writeRoot.js.map +1 -1
- package/dist/shared/capabilities.js +33 -0
- package/dist/shared/capabilities.js.map +1 -0
- package/dist/shared/capabilities.test.js +39 -0
- package/dist/shared/capabilities.test.js.map +1 -0
- 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 +15 -6
- package/docs/MIGRATION.md +16 -0
- package/docs/guidelines/component-oriented-and-oop-development.md +4 -2
- package/package.json +22 -9
- package/src/agent-src/templates/AGENTS.md +1 -1
- package/src/agent-src/templates/scripts/telemetry/engagement.ts +77 -0
- package/src/agent-src/templates/scripts/telemetry_record.ts +33 -1
- package/src/config/agent-settings.template.yml +94 -13
- 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/hook-latency-budget.json +20 -0
- package/src/config/reach-channels.yml +217 -0
- package/src/config/reach-prescriptions-intake.yml +200 -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 +62 -1
- package/src/scripts/_cli/cmd_memory_get.ts +197 -0
- package/src/scripts/_cli/cmd_refresh.ts +30 -0
- package/src/scripts/_dispatch.bash +96 -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/detect_target_license.ts +714 -0
- package/src/scripts/_lib/exec_evidence.ts +251 -0
- package/src/scripts/_lib/fixtures/secret-detector/negatives.txt +15 -0
- package/src/scripts/_lib/fixtures/secret-detector/positives.txt +15 -0
- package/src/scripts/_lib/install_drift.ts +194 -0
- package/src/scripts/_lib/kernel_rules.ts +46 -0
- package/src/scripts/_lib/memory_fts_index.ts +390 -0
- package/src/scripts/_lib/orchestration_record.ts +91 -2
- 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/reddit_thread_parse.ts +598 -0
- package/src/scripts/_lib/risk_paths.ts +160 -0
- package/src/scripts/_lib/rtk_allowlist.ts +44 -0
- package/src/scripts/_lib/secret_detector.test.ts +108 -0
- package/src/scripts/_lib/secret_detector.ts +328 -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/tool_probe.ts +359 -0
- package/src/scripts/_lib/worker_budget.ts +107 -0
- package/src/scripts/adr/regenerate_index.ts +81 -6
- package/src/scripts/ai_council/blind_review.ts +0 -0
- package/src/scripts/ai_council/config.ts +12 -6
- package/src/scripts/ai_council/orchestrator.ts +73 -3
- package/src/scripts/ai_team/review_gate.ts +8 -10
- package/src/scripts/ai_team/team_dispatch.ts +48 -0
- package/src/scripts/audit_adr_coverage.ts +33 -0
- 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/build_mcp_catalog.ts +275 -0
- package/src/scripts/build_mcp_registry_manifest.ts +46 -0
- package/src/scripts/build_proof.ts +207 -0
- package/src/scripts/chat_history.ts +8 -5
- package/src/scripts/check_adr_frontmatter.ts +195 -0
- package/src/scripts/check_artefact_count_messaging.ts +4 -0
- package/src/scripts/check_backstop_debt.ts +210 -0
- package/src/scripts/check_bundle_path_leakage.ts +343 -0
- package/src/scripts/check_claims.ts +188 -8
- package/src/scripts/check_comparison.ts +12 -0
- package/src/scripts/check_enforcement_coverage.ts +592 -0
- package/src/scripts/check_evaluator_budgets.ts +99 -0
- package/src/scripts/check_kernel_rule_bundle.ts +16 -12
- package/src/scripts/check_knowledge_sharing.ts +12 -1
- package/src/scripts/check_no_external_sources.ts +2 -2
- package/src/scripts/check_reach_channels.ts +407 -0
- package/src/scripts/check_reach_staleness.ts +364 -0
- package/src/scripts/check_secret_leak.test.ts +47 -0
- package/src/scripts/check_secret_leak.ts +290 -0
- package/src/scripts/check_source_pointer_freshness.ts +28 -3
- package/src/scripts/code_graph/build.ts +0 -0
- package/src/scripts/code_graph/cli.ts +379 -0
- package/src/scripts/code_graph/detect.ts +186 -0
- package/src/scripts/code_graph/extract.ts +386 -0
- package/src/scripts/code_graph/intent.ts +45 -0
- package/src/scripts/code_graph/loader.ts +123 -0
- package/src/scripts/code_graph/query.ts +290 -0
- package/src/scripts/code_graph/sanitize.ts +30 -0
- package/src/scripts/code_graph/sqlite_store.ts +174 -0
- package/src/scripts/code_graph/types.ts +83 -0
- package/src/scripts/code_graph/validate.ts +63 -0
- package/src/scripts/condense.ts +14 -6
- package/src/scripts/context_hygiene_hook.ts +8 -5
- package/src/scripts/council_cli.ts +126 -12
- package/src/scripts/detect_target_license.ts +203 -0
- package/src/scripts/evaluator_umbrella.sh +145 -0
- package/src/scripts/external_sources_denylist.json +8 -4
- package/src/scripts/first_run_gate_hook.ts +9 -5
- package/src/scripts/generate_subagent_floor.ts +194 -0
- package/src/scripts/hermetic-install.sh +3 -3
- package/src/scripts/hook_manifest.yaml +65 -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 +191 -0
- 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 +4 -4
- package/src/scripts/install.sh +5 -4
- package/src/scripts/install.ts +264 -23
- package/src/scripts/iron_law_sha.ts +3 -12
- 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_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_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 +6 -0
- package/src/scripts/lint_mcp_registry_manifest.ts +26 -1
- package/src/scripts/lint_memory_tripwire.ts +186 -0
- package/src/scripts/lint_override_kernel_guard.ts +267 -0
- 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_spawn_payload.ts +283 -0
- package/src/scripts/lint_store_boundary.ts +152 -0
- 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 +56 -5
- package/src/scripts/mcp_telemetry_query.ts +2 -33
- package/src/scripts/mcp_telemetry_store.ts +64 -34
- package/src/scripts/measure_rule_budget.ts +3 -12
- 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/minimal_safe_diff_hook.ts +8 -5
- package/src/scripts/onboarding_gate_hook.ts +8 -5
- package/src/scripts/orchestration_record.ts +16 -0
- package/src/scripts/pr_url_reminder_hook.ts +8 -1
- 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/profile_staleness_hook.ts +8 -7
- package/src/scripts/reach_doctor.ts +1651 -0
- package/src/scripts/release.ts +24 -3
- package/src/scripts/report_install_drift.ts +109 -0
- package/src/scripts/risk_escalation_shadow.ts +160 -0
- package/src/scripts/roadmap_progress_hook.ts +8 -5
- package/src/scripts/schemas/agent-settings.schema.json +23 -0
- package/src/scripts/schemas/license-policy.schema.json +89 -0
- package/src/scripts/schemas/provenance-borrow.schema.json +46 -0
- package/src/scripts/schemas/reach-channels.schema.json +134 -0
- package/src/scripts/schemas/reach-doctor-payload.schema.json +220 -0
- package/src/scripts/schemas/rule.schema.json +20 -0
- 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 +55 -0
- package/src/scripts/smoke_quickstart.ts +2 -2
- 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_reach_prescriptions.ts +751 -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 +24 -2
- package/src/shared/capabilities.test.ts +43 -0
- package/src/shared/capabilities.ts +75 -0
- package/src/templates/minimal/agents-overrides-readme.md +20 -0
- package/dist/ui/assets/index-BPFMZWUs.css +0 -1
- package/dist/ui/assets/index-BiEZiZ31.js +0 -40
- package/dist/ui/assets/index-BiEZiZ31.js.map +0 -1
- package/docs/CLAIMS.md +0 -261
- 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 -648
- 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 -721
- package/docs/command-flows.md +0 -272
- package/docs/command-naming-audit.md +0 -60
- package/docs/comparison.yaml +0 -45
- 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/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 -59
- 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 -685
- 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 -189
- 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 -246
- package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +0 -110
- 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 -201
- 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-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 -136
- 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 -117
- 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 -44
- 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/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 -176
- 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 -29
- 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
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 033
|
|
3
|
-
status: accepted
|
|
4
|
-
date: 2026-05-29
|
|
5
|
-
decision: distribution-identity-npm-primary
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: —
|
|
8
|
-
phase: distribution-identity
|
|
9
|
-
type: structural
|
|
10
|
-
review_date: 2026-08-29
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# ADR-033 — Distribution identity: npm-primary, Packagist deprecated-in-place
|
|
14
|
-
|
|
15
|
-
## Status
|
|
16
|
-
|
|
17
|
-
**Accepted** · 2026-05-29. AI Council (claude-sonnet-4-5 + gpt-4o, analysis lens, 2026-05-29) converged on **npm-primary with Packagist deprecated-in-place**. No maintainer veto surfaced; the de-facto evidence and the operational-honesty argument both point to a single answer. Review date 2026-08-29.
|
|
18
|
-
|
|
19
|
-
## Context
|
|
20
|
-
|
|
21
|
-
External feedback rounds 10 / 12 / 13 returned to two recurring symptoms — *"Packagist still shows 1.0.4"* and *"two major bumps in six days with no breaking-change signal"*. A council deliberation (lens: analysis) re-framed both as **one distribution-identity question** the repo has answered in practice but never recorded:
|
|
22
|
-
|
|
23
|
-
- **`package.json` at `5.1.0`** — the package is past the unified-setup 4.0.0 major and a subsequent 5.0.0 line; semver discipline (per `CONTRIBUTING.md § Versioning policy`) treats installer-layout changes as major, so the cadence is policy-correct.
|
|
24
|
-
- **`scripts/release.py` invokes `npm publish` exclusively** — the only publish surface that ships from a release run.
|
|
25
|
-
- **No `composer.json` exists in this repo** — the file was removed during the npm pivot (pre-3.x era). The Packagist `event4u/agent-config` 1.0.4 listing is a zombie pointing at a repository state that no longer exists.
|
|
26
|
-
- **No automation syncs the Composer surface** — none has existed since the pivot. Pretending the channel is supported is a maintenance lie.
|
|
27
|
-
- **ADR-027** already locks the changelog-machine path (`scripts/release.py` derives `CHANGELOG.md § Breaking` from Conventional Commits). The "no breaking-change signal" symptom is stale against that surface — what is missing is a one-click pointer for consumers.
|
|
28
|
-
|
|
29
|
-
Council framing — two perspectives surfaced:
|
|
30
|
-
|
|
31
|
-
**Lens A — Strategic / consumer-positioning.** A consumer who lands on Packagist sees 1.0.4 and installs an artefact the repo cannot support. The honest signal is deprecation; dual-track without resources is worse than a single declared channel.
|
|
32
|
-
|
|
33
|
-
**Lens B — Technical / operational-honesty.** A channel is "supported" only if a release pipeline publishes to it. Composer/Packagist has had no such pipeline since the npm pivot. The simpler invariant — *one channel, one truth* — wins on every measurable axis: maintenance load, consumer trust, audit clarity.
|
|
34
|
-
|
|
35
|
-
Both lenses converged.
|
|
36
|
-
|
|
37
|
-
## Decision
|
|
38
|
-
|
|
39
|
-
1. **The package is npm-primary.** The canonical install path is `npm install @event4u/agent-config` (and the consumer-facing `npx @event4u/agent-config install` wizard). All release tooling (`scripts/release.py`, `package.json`, `CONTRIBUTING.md § Versioning policy`) already aligns with this surface — this ADR records the policy, no code changes follow from the declaration itself.
|
|
40
|
-
|
|
41
|
-
2. **Composer / Packagist is deprecated-in-place.** No `composer.json` ships from this repo; no PHP autoload surface is supported; the Packagist `event4u/agent-config` 1.0.4 listing is treated as legacy and gets a deprecation pointer through the only mechanism available to a deleted-composer-json repo: a registry-side claim/archive action by the maintainer. The corresponding human-owner item is surfaced in `docs/distribution/registries.md` (see Phase 2 of the [`road-to-distribution-identity.md`](../../agents/roadmaps/road-to-distribution-identity.md) roadmap).
|
|
42
|
-
|
|
43
|
-
3. **Breaking-change communication uses `CHANGELOG.md § Breaking`.** ADR-027 locked the auto-generated changelog from Conventional Commits. This ADR adds one consumer-facing affordance — a README / distribution-doc pointer linking that section — so a consumer who sees a major-version bump has a one-click path to *what broke, what to do*. No new `BREAKING_CHANGES.md` file unless the maintainer prefers one.
|
|
44
|
-
|
|
45
|
-
4. **Commit-subject hygiene is enforced in CI.** Because the changelog generator reads commit subjects verbatim, sloppy subjects (`leftover`, `wip`, `temp`, `fixup`, or sub-10-character one-word entries) leak directly into the public changelog. A CI lint (`task lint-commit-subjects` or sibling) rejects those subjects on PR. This is wired in Phase 3 of the same roadmap and is the one hygiene item that ties directly to distribution identity.
|
|
46
|
-
|
|
47
|
-
## Consequences
|
|
48
|
-
|
|
49
|
-
**Positive:**
|
|
50
|
-
|
|
51
|
-
- The distribution story is **single-channel, single-truth**. Anyone scanning the package — consumer, contributor, auditor, package-registry crawler — gets one consistent answer.
|
|
52
|
-
- The zombie Packagist listing no longer misdirects PHP-shop consumers (once the maintainer files the registry-side archive action).
|
|
53
|
-
- Breaking-change discoverability is two clicks from the README: "release notes" → `CHANGELOG.md § Breaking`. No bespoke `BREAKING_CHANGES.md` to maintain.
|
|
54
|
-
- CI catches sloppy commit subjects before they become public changelog lines — the changelog is as clean as the gate that feeds it.
|
|
55
|
-
|
|
56
|
-
**Negative / accepted costs:**
|
|
57
|
-
|
|
58
|
-
- A PHP-shop consumer who depends on the 1.0.4 Packagist release is left behind. Mitigation: clear deprecation notice + npm install pointer in the registry-side archive.
|
|
59
|
-
- The maintainer must perform a one-time login at `packagist.org/packages/event4u/agent-config` to claim or archive the listing — autonomous tooling cannot do that.
|
|
60
|
-
- Future re-entry into the Composer ecosystem would require a new ADR superseding this one. That cost is acceptable: a re-entry would be a strategic redirect, not a quiet re-add.
|
|
61
|
-
|
|
62
|
-
**Operationally neutral:**
|
|
63
|
-
|
|
64
|
-
- `scripts/release.py` already does the right thing; no script change follows from this ADR.
|
|
65
|
-
- `CONTRIBUTING.md § Versioning policy` already does the right thing; no policy change follows from this ADR. The major bumps that prompted the feedback (4.0.0 unified-setup, 5.0.0 follow-up) were policy-correct under the existing rule.
|
|
66
|
-
|
|
67
|
-
## Alternatives considered
|
|
68
|
-
|
|
69
|
-
- **Dual-track with auto-sync.** Rejected. The repo carries no Composer surface to sync; restoring one would mean re-introducing a `composer.json` + a sync pipeline + a PHP-side autoload story, all to support a consumer base nobody has named. The carrying cost outweighs the demand signal.
|
|
70
|
-
- **Dual-track without auto-sync (status quo).** Rejected. This is the failure mode that produced the external feedback in the first place — a stale 1.0.4 listing pretends a channel is supported when it is not. Operational-honesty argument carries.
|
|
71
|
-
- **Re-introduce composer.json as a stub linking to npm.** Rejected. A stub on Packagist is still a Packagist artifact; consumers may still try to `composer require` it and hit a non-functional package. Registry-side archive is the cleaner signal.
|
|
72
|
-
- **A bespoke `BREAKING_CHANGES.md` file.** Rejected by default; ADR-027 already locks the machine-generated changelog as the breaking-change surface. Maintainer may revisit if the changelog format proves insufficient for end-of-life or migration-guide-shape communication.
|
|
73
|
-
|
|
74
|
-
## References
|
|
75
|
-
|
|
76
|
-
- [`agents/roadmaps/road-to-distribution-identity.md`](../../agents/roadmaps/road-to-distribution-identity.md) — the work-item plan this ADR underwrites.
|
|
77
|
-
- [`ADR-027-changelog-machine-vs-manual.md`](ADR-027-changelog-machine-vs-manual.md) — the prior decision locking the auto-generated changelog.
|
|
78
|
-
- [`CONTRIBUTING.md § Versioning policy`](../../CONTRIBUTING.md) — the semver discipline this ADR confirms.
|
|
79
|
-
- [`docs/distribution/registries.md`](../distribution/registries.md) — external-registry submission posture; this ADR adds a distribution-channel-identity section to that file.
|
|
80
|
-
- `scripts/release.py` — the `npm publish` release pipeline.
|
|
81
|
-
- External feedback rounds 10 / 12 / 13 (private session transcripts; convergence summary inlined above to keep this ADR self-contained).
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 034
|
|
3
|
-
status: superseded
|
|
4
|
-
date: 2026-05-30
|
|
5
|
-
decision: per-skill-model-recommendation-transport
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: 035
|
|
8
|
-
phase: per-skill-model-autoswitch
|
|
9
|
-
type: structural
|
|
10
|
-
review_date: 2026-08-30
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# ADR-034 — Per-skill model recommendation: neutral source field, native projection on Claude
|
|
14
|
-
|
|
15
|
-
> **Superseded by [ADR-035](ADR-035-model-capability-tiers.md)** (2026-05-30).
|
|
16
|
-
> The concrete-model field (`recommended_model: opus|sonnet|gpt`) recommended a
|
|
17
|
-
> cross-vendor model to Claude users (`gpt`) and was version-brittle. ADR-035
|
|
18
|
-
> replaces it with vendor-neutral capability tiers (`model_tier: lite|medium|high`).
|
|
19
|
-
|
|
20
|
-
## Status
|
|
21
|
-
|
|
22
|
-
**Accepted** · 2026-05-30. AI Council (anthropic/claude-sonnet-4-5 + openai/gpt-4o, design lens, 2 rounds, 2026-05-30) was convened on the transport fork and the Claude projection shape. The council leaned toward putting a native `model:` key directly in source (its "Option B"); this ADR **overrides that lean on two package-specific facts the council lacked** and adopts the neutral-field transport (Option A). The council's other challenges (haiku floor, the `/model` trust boundary, measurement-first sequencing) are incorporated below.
|
|
23
|
-
|
|
24
|
-
## Context
|
|
25
|
-
|
|
26
|
-
`model-recommendation` (tier-2a, `core`) is a dead shell — it routes to `command:set-cost-profile`, which flips `rule_loading_tier` but never selects a model. The task→model intelligence already exists in `contexts/model-recommendations.md` but has no mechanism to act. Claude Code now honours a native skill `model:` frontmatter key — verified against the official skills docs (`code.claude.com/docs/en/skills.md`): the override applies for the rest of the current turn, reverts to the session model on the next prompt, and accepts the `/model` values plus `inherit`. That makes per-skill model selection structural on Claude; Augment has no per-turn override, so a rule surfaces a one-question suggestion there.
|
|
27
|
-
|
|
28
|
-
The projection constraint: source `SKILL.md` is shared across tools via `.agent-src/`. `.claude/skills/<name>` is a whole-**directory symlink** to `.agent-src/skills/<name>`; `.claude/skills/<slug>/SKILL.md` for commands is a **symlink** inside a real dir. Augment skills symlink the same target. A Claude-only native `model:` therefore cannot live in the shared symlink target without also appearing in Augment.
|
|
29
|
-
|
|
30
|
-
## Decision
|
|
31
|
-
|
|
32
|
-
1. **Transport — Option A (neutral source field).** Source carries a tool-neutral `recommended_model:`; the Claude generator rewrites it to native `model:`; Augment keeps the neutral field for the rule to consume. **Council override rationale:** (a) the skill/command schemas are `additionalProperties: false`, so a native `model:` key in source would *fail* `validate_frontmatter` — Option B is not free as the council assumed; (b) the package's portability contract (`augment-edit-discipline`) forbids tool-specific keys in the portable source. Option A also matches the existing projection-transform philosophy (path rewrites, HRR-banner injection, Cursor `.mdc` field-dropping all already transform on projection).
|
|
33
|
-
|
|
34
|
-
2. **Field + enum.** `recommended_model` with enum `opus | sonnet | gpt | inherit`. `inherit` = "no opinion, use the session model" (named to match Claude's own `inherit` value). `sonnet` is the cheapest tier — **no `haiku`** (see § Deferred). `gpt` has no Claude tier: it emits no native `model:` and only surfaces as a suggestion.
|
|
35
|
-
|
|
36
|
-
3. **Claude projection shape — Option (b), minimal break.** Keep `.claude/skills/<name>` a real dir, symlink every sub-entry **except** `SKILL.md`, and render `SKILL.md` as a copy with `model:` injected — **only for skills that actually receive a native value** (`opus`/`sonnet`). Skills tagged `inherit`/`gpt`/untagged stay pure directory symlinks. This mirrors the existing command projection (real dir + handled `SKILL.md`), is idempotent on regenerate, and copies only the SKILL.md of model-bearing skills (disk-minimal).
|
|
37
|
-
|
|
38
|
-
4. **Toggle gates native emission — `model.auto_switch`.** `.agent-settings.yml` `model.auto_switch: auto | suggest | off`, **default `suggest`**. The generator reads it: `auto` emits native `model:` into the Claude projection (auto-switch fires); `suggest` and `off` do **not** emit native `model:` — the rule surfaces a one-question suggestion on every surface instead. This resolves the council's trust-boundary concern: by default the package never silently overrides a user's explicit `/model` choice; native auto-switch is opt-in.
|
|
39
|
-
|
|
40
|
-
## Consequences
|
|
41
|
-
|
|
42
|
-
- Source stays portable and schema-valid; only the Claude projection carries `model:`.
|
|
43
|
-
- Claude skills with a native recommendation become rendered `SKILL.md` copies (sub-files still symlinked); everything else stays a symlink.
|
|
44
|
-
- The rule becomes the surface-aware decision layer (Phase 4); the task→model heuristics stay in the context file (cite, don't restate).
|
|
45
|
-
- A coverage linter (Phase 5) makes an explicit recommendation or `inherit` mandatory on every skill/command, preventing silent drift.
|
|
46
|
-
|
|
47
|
-
## Deferred (council challenges recorded, not dismissed)
|
|
48
|
-
|
|
49
|
-
- **`haiku` tier.** The council argued the `sonnet` floor is a data-free exclusion and that haiku may suit truly mechanical tasks. Kept out of the enum for this PR (conservative quality guard for a structured-agent suite). Re-evaluation is **gated on the Phase 6 measurement** + per-skill eval data; adding `haiku` later is an additive enum change.
|
|
50
|
-
- **Per-skill eval kill-switch.** The council wanted an automated "if eval failure > N%, revert to `inherit`" loop. No per-skill evals exist yet; the manual kill-switch is `model.auto_switch: off` or dropping the field (additive/reversible). Captured as a follow-up.
|
|
51
|
-
- **Measurement-first sequencing.** The council preferred instrumenting cost before tagging. Phase 6 provides the before/after token-distribution delta; the ordering is a charter choice, noted.
|
|
52
|
-
|
|
53
|
-
## Alternatives
|
|
54
|
-
|
|
55
|
-
- **Option B — native `model:` in source.** Rejected: fails `additionalProperties: false` validation and violates the portability contract.
|
|
56
|
-
- **Whole-directory copy for Claude skills.** Rejected: duplicates `evals/`, `schemas/`, etc. for zero benefit; Option (b) copies only `SKILL.md`.
|
|
57
|
-
|
|
58
|
-
## References
|
|
59
|
-
|
|
60
|
-
- `agents/roadmaps/road-to-per-skill-model-autoswitch.md` (charter).
|
|
61
|
-
- `docs/contracts/multi-tool-projection-fidelity.md` (projection map; updated in Phase 3).
|
|
62
|
-
- `contexts/model-recommendations.md` (task→model table; seeds the Phase 5 backfill).
|
|
63
|
-
- Council convergence: anthropic/claude-sonnet-4-5 + openai/gpt-4o, design lens, 2026-05-30.
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 035
|
|
3
|
-
status: accepted
|
|
4
|
-
date: 2026-05-30
|
|
5
|
-
decision: model-capability-tiers
|
|
6
|
-
supersedes: 034
|
|
7
|
-
superseded_by: —
|
|
8
|
-
phase: model-capability-tiers
|
|
9
|
-
type: structural
|
|
10
|
-
review_date: 2026-08-30
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# ADR-035 — Vendor-neutral model capability tiers (supersedes ADR-034)
|
|
14
|
-
|
|
15
|
-
## Status
|
|
16
|
-
|
|
17
|
-
**Accepted** · 2026-05-30. Supersedes **ADR-034**. AI Council
|
|
18
|
-
(anthropic/claude-sonnet-4-5 + openai/gpt-4o, deep, design lens, 3 rounds,
|
|
19
|
-
2026-05-30) converged on the design below.
|
|
20
|
-
|
|
21
|
-
## Context
|
|
22
|
-
|
|
23
|
-
ADR-034 shipped a per-skill `recommended_model` field with **vendor-specific
|
|
24
|
-
values** (`opus | sonnet | gpt | inherit`). In use this produced a cross-vendor
|
|
25
|
-
nonsense: a **Claude** user was recommended **`gpt`** for analysis-heavy skills.
|
|
26
|
-
The values are also version-brittle (model names churn) and couple the portable
|
|
27
|
-
source to specific vendors' line-ups. The fix is to recommend a **capability
|
|
28
|
-
band**, not a model, and let each agent resolve the band to its own best model.
|
|
29
|
-
|
|
30
|
-
## Decision
|
|
31
|
-
|
|
32
|
-
1. **Tiers — `lite | medium | high` (+ `inherit`).** Pure capability descriptors
|
|
33
|
-
(reasoning horsepower), not use-case names. A 4th `frontier` tier is rejected
|
|
34
|
-
— it would map sparsely (one vendor's outlier) and break vendor-neutrality.
|
|
35
|
-
`inherit` = "no opinion, keep the session model".
|
|
36
|
-
|
|
37
|
-
2. **Field rename `recommended_model` → `model_tier`.** The semantics changed
|
|
38
|
-
from a model identifier to an abstract band; keeping the old name "is lying in
|
|
39
|
-
code" (council). The 354-artefact rename is mechanical and worth the honesty.
|
|
40
|
-
|
|
41
|
-
3. **Mapping ownership — the generator owns the Claude mapping, exclusively.**
|
|
42
|
-
This is the load-bearing decision. Exactly one place resolves a tier to a
|
|
43
|
-
concrete model: `scripts/condense.py`, because Claude Code is the only surface
|
|
44
|
-
that consumes a native `model:`. The mapping is `high → opus`,
|
|
45
|
-
`medium → sonnet`, `lite → haiku`. **Non-Claude agents are suggestion-only** —
|
|
46
|
-
the `model-recommendation` rule surfaces the tier *name* and the agent/user
|
|
47
|
-
maps it to their own line-up. The package maintains **no per-vendor runtime
|
|
48
|
-
table**; that would create the "two-clocks" drift failure (generator table vs
|
|
49
|
-
runtime table diverging as vendors rename models).
|
|
50
|
-
|
|
51
|
-
4. **Long-context is orthogonal — optional `context: large` modifier.** Reasoning
|
|
52
|
-
horsepower and context length are independent (a 500-page-log summary is
|
|
53
|
-
low-reasoning + high-context). Model the rare long-context need as a sparse,
|
|
54
|
-
optional `context: large` frontmatter modifier, never as a tier. Most skills
|
|
55
|
-
omit it. It is metadata — it does not change the native Claude `model:` (the
|
|
56
|
-
tier owns the model choice).
|
|
57
|
-
|
|
58
|
-
5. **Migration map.** `opus → high`, `sonnet → medium`, `gpt → high`,
|
|
59
|
-
`inherit → inherit`. The `gpt` band (large-context analysis) collapses into
|
|
60
|
-
`high` reasoning + an optional `context: large` modifier on the genuinely
|
|
61
|
-
long-context skills. A re-runnable classifier additionally routes
|
|
62
|
-
clearly-trivial mechanical work to `lite`.
|
|
63
|
-
|
|
64
|
-
6. **`model.auto_switch` toggle unchanged** (`auto | suggest | off`, default
|
|
65
|
-
`suggest`). `suggest` emits no native `model:` and never overrides a user's
|
|
66
|
-
`/model` — the conservative staged-rollout default.
|
|
67
|
-
|
|
68
|
-
## Consequences
|
|
69
|
-
|
|
70
|
-
- No vendor model name leaves the band abstraction in source; a Claude user is
|
|
71
|
-
never recommended `gpt`.
|
|
72
|
-
- The native `model:` exists only in the Claude projection, from a single map.
|
|
73
|
-
- Other agents get a tier-name suggestion they resolve themselves — zero
|
|
74
|
-
per-vendor maintenance burden in the package.
|
|
75
|
-
- Adding a vendor or renaming a model touches **one** mapping (the generator's
|
|
76
|
-
Claude row), not 354 artefacts.
|
|
77
|
-
|
|
78
|
-
## Periodic staleness audit (council guard)
|
|
79
|
-
|
|
80
|
-
The tier→model mapping is a contract that drifts as vendors rename/retire models.
|
|
81
|
-
Guard: on each model-line-up change, update the single generator-owned Claude
|
|
82
|
-
mapping (`high/medium/lite → model`). No artefact re-tagging is needed — the band
|
|
83
|
-
is stable; only its resolution moves. Audit cadence: review at each release that
|
|
84
|
-
touches model pricing/availability, and whenever a tier's mapped model is
|
|
85
|
-
deprecated upstream.
|
|
86
|
-
|
|
87
|
-
## Alternatives
|
|
88
|
-
|
|
89
|
-
- **Keep concrete model names (ADR-034).** Rejected — the cross-vendor bug this
|
|
90
|
-
ADR fixes.
|
|
91
|
-
- **Per-vendor runtime table consumed by the rule.** Rejected — the two-clocks
|
|
92
|
-
drift failure; suggestion-only is simpler and self-maintaining.
|
|
93
|
-
- **Context length as a tier (`high-context`).** Rejected — conflates two
|
|
94
|
-
orthogonal axes; handled by the sparse `context: large` modifier instead.
|
|
95
|
-
- **4th `frontier` tier.** Rejected — sparse cross-vendor mapping.
|
|
96
|
-
|
|
97
|
-
## References
|
|
98
|
-
|
|
99
|
-
- `agents/roadmaps/road-to-model-capability-tiers.md` (charter).
|
|
100
|
-
- ADR-034 (superseded) — the concrete-model design this corrects.
|
|
101
|
-
- `docs/contracts/multi-tool-projection-fidelity.md` (updated Phase 3).
|
|
102
|
-
- `contexts/model-recommendations.md` (task→tier table; seeds the migration).
|
|
103
|
-
- Council convergence: anthropic/claude-sonnet-4-5 + openai/gpt-4o, deep design
|
|
104
|
-
lens, 2026-05-30.
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 036
|
|
3
|
-
status: accepted
|
|
4
|
-
date: 2026-06-01
|
|
5
|
-
decision: global-install-browser-wizard-handoff
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: —
|
|
8
|
-
phase: v5.x · install-UX consistency
|
|
9
|
-
type: forward-looking
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# ADR-036 — Global install hands off to the browser wizard (zero terminal prompts)
|
|
13
|
-
|
|
14
|
-
## Status
|
|
15
|
-
|
|
16
|
-
**Accepted** · 2026-06-01. Implements the install-UX half of
|
|
17
|
-
[`road-to-self-update-and-global-hook-resolution`](../../agents/roadmaps/road-to-self-update-and-global-hook-resolution.md)
|
|
18
|
-
(Phase 6). Builds on [`ADR-020`](ADR-020-global-only-consumer-scope.md)
|
|
19
|
-
(global-only consumer scope) and reuses the wizard contract from
|
|
20
|
-
[`gui-wizard`](../contracts/gui-wizard.md).
|
|
21
|
-
|
|
22
|
-
## Context
|
|
23
|
-
|
|
24
|
-
`npx @event4u/agent-config init` is the canonical first-time install
|
|
25
|
-
(README Quickstart) and `agent-config upgrade` is the self-update path
|
|
26
|
-
(ADR-020 update-lag fix). Both reach the global install through
|
|
27
|
-
`scripts/install --global` → `install.py` `install_global()`. Field use
|
|
28
|
-
surfaced four defects that made the global path drop into terminal
|
|
29
|
-
interaction instead of the browser wizard the project path already used:
|
|
30
|
-
|
|
31
|
-
1. **Terminal tool-picker.** `scripts/install`'s `prompt_tools()` fired
|
|
32
|
-
on every interactive run, pre-empting the wizard and — via
|
|
33
|
-
`TOOLS_EXPLICIT` — suppressing it (`_wizard_should_launch` treats an
|
|
34
|
-
explicit `--tools=` as "headless").
|
|
35
|
-
2. **No wizard on `--global`.** `install_global()` returned before the
|
|
36
|
-
`_wizard_should_launch` / `_wizard_spawn` block; only the project
|
|
37
|
-
path launched the GUI.
|
|
38
|
-
3. **Browser never opened.** `_wizard_await_ready` **printed** the
|
|
39
|
-
`WIZARD_READY` URL but never opened it (the child is spawned with
|
|
40
|
-
`--no-open` so the Python parent owns the open — it only printed).
|
|
41
|
-
4. **Wrong identity + ADR-020 leak.** Spawning the wizard with
|
|
42
|
-
`--project-root <detect_root>` forced project write-root, so the
|
|
43
|
-
wizard read neither nor wrote the **global**
|
|
44
|
-
`~/.event4u/agent-config/settings/.agent-user.yml` (the saved
|
|
45
|
-
identity → name/language pre-fill defaulted to the OS account, e.g.
|
|
46
|
-
`mathiasberg`, instead of the saved `Matze`/`de`), and global content
|
|
47
|
-
would land in the project tree — an ADR-020 violation.
|
|
48
|
-
|
|
49
|
-
## Decision
|
|
50
|
-
|
|
51
|
-
On the interactive global-install path (`agent-config init` / `global` /
|
|
52
|
-
`upgrade` / `refresh --global`), the install is **zero-terminal-interaction
|
|
53
|
-
and hands off to the browser wizard**:
|
|
54
|
-
|
|
55
|
-
- `scripts/install` skips `prompt_tools()` when the wizard will launch
|
|
56
|
-
(TTY · not `CI` · not `AGENT_CONFIG_NO_UI`) — the wizard is the single
|
|
57
|
-
tool-selection surface.
|
|
58
|
-
- `install.py` launches the wizard after `install_global()` (parity with
|
|
59
|
-
the project path), gated by the single source of truth
|
|
60
|
-
`_wizard_should_launch`.
|
|
61
|
-
- The wizard is spawned **without** `--project-root` so `resolveWriteRoot`
|
|
62
|
-
picks the **global** write root — the saved `.agent-user.yml` drives the
|
|
63
|
-
identity pre-fill, and no global content is written into the project
|
|
64
|
-
tree (reinforces ADR-020).
|
|
65
|
-
- `_wizard_await_ready` opens the browser (`webbrowser.open`) after
|
|
66
|
-
printing the URL; the printed URL remains the headless fallback.
|
|
67
|
-
- On the wizard-handoff path the run is non-interactive: foreign-file
|
|
68
|
-
conflicts auto-resolve to overwrite and the legacy migration runs
|
|
69
|
-
without the `[Y/n]` gate — no `--force`, no prompts. The wizard is the
|
|
70
|
-
settings + package surface that recreates fresh config.
|
|
71
|
-
|
|
72
|
-
The terminal picker, conflict prompt, and migrate prompt remain the
|
|
73
|
-
behaviour on **headless** paths (no TTY · `CI` · `--no-ui` ·
|
|
74
|
-
explicit `--tools=`), where no wizard launches.
|
|
75
|
-
|
|
76
|
-
## Consequences
|
|
77
|
-
|
|
78
|
-
**Positive.**
|
|
79
|
-
- "Run the command, it installs, then the wizard opens for packages +
|
|
80
|
-
settings" — the contract holds for `init` and `upgrade` alike.
|
|
81
|
-
- A returning user's name/language pre-fill from the saved identity, not
|
|
82
|
-
the OS account.
|
|
83
|
-
- Global content never leaks into the project tree on the wizard path.
|
|
84
|
-
|
|
85
|
-
**Negative / trade-offs.**
|
|
86
|
-
- Auto-overwrite + auto-migrate on the wizard path remove the per-file
|
|
87
|
-
confirmation. Scoped to the wizard-handoff path on paths agent-config
|
|
88
|
-
owns (ADR-020 global root); headless paths keep the prompts.
|
|
89
|
-
- The browser-open + zero-prompt flow cannot be asserted in headless CI;
|
|
90
|
-
the welcome-step identity pre-fill (`Matze`/`de` from the global
|
|
91
|
-
write root) is covered by a Playwright drive.
|
|
92
|
-
|
|
93
|
-
## Alternatives considered
|
|
94
|
-
|
|
95
|
-
- **`npx` fallback inside the PostToolUse hook.** Rejected by the
|
|
96
|
-
2026-05-30 council (per-tool-call network + version drift) and again
|
|
97
|
-
2026-06-01; orthogonal to install UX. Hooks resolve the global binary.
|
|
98
|
-
- **Keep the terminal prompts, document `--force`.** Rejected — the
|
|
99
|
-
maintainer's explicit contract is zero terminal interaction with a
|
|
100
|
-
browser handoff.
|
|
101
|
-
|
|
102
|
-
## References
|
|
103
|
-
|
|
104
|
-
- [`ADR-020`](ADR-020-global-only-consumer-scope.md) — global-only consumer scope.
|
|
105
|
-
- [`gui-wizard`](../contracts/gui-wizard.md) — wizard apply contract.
|
|
106
|
-
- [`road-to-self-update-and-global-hook-resolution`](../../agents/roadmaps/road-to-self-update-and-global-hook-resolution.md) — companion roadmap.
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 037
|
|
3
|
-
status: accepted
|
|
4
|
-
date: 2026-06-01
|
|
5
|
-
decision: cost-profile-untangle
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: —
|
|
8
|
-
phase: cost-profile-untangle
|
|
9
|
-
type: structural
|
|
10
|
-
review_date: 2026-09-01
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# ADR-037 — Untangle `cost_profile` into single-purpose settings
|
|
14
|
-
|
|
15
|
-
## Status
|
|
16
|
-
|
|
17
|
-
**Accepted** · 2026-06-01. AI Council (anthropic/claude-sonnet-4-5 +
|
|
18
|
-
openai/gpt-4o, analysis lens, 3 rounds, 2026-06-01) converged on the
|
|
19
|
-
rename + keep-decoupled design below; findings were critically evaluated
|
|
20
|
-
against the codebase before adoption.
|
|
21
|
-
|
|
22
|
-
## Context
|
|
23
|
-
|
|
24
|
-
The `cost_profile` setting had accreted multiple responsibilities plus a
|
|
25
|
-
hard naming collision:
|
|
26
|
-
|
|
27
|
-
1. **Canonical meaning** — rule-tier loading (`minimal | balanced | full |
|
|
28
|
-
custom`), a token-footprint lever resolved from `dist/router.json`.
|
|
29
|
-
2. **Colliding second meaning** — a separate contract
|
|
30
|
-
(`memory-visibility-v1`) and the work-engine hook read the *same key*
|
|
31
|
-
`cost_profile` with an incompatible value set (`lean | standard |
|
|
32
|
-
verbose`) to gate the `🧠 Memory` visibility-line cadence. Because no
|
|
33
|
-
real install ever wrote `cost_profile: lean`, the suppress branch was
|
|
34
|
-
**unreachable dead code**.
|
|
35
|
-
3. **Default drift** — the default was declared in four places with three
|
|
36
|
-
different answers (`balanced`, `minimal`, `standard`).
|
|
37
|
-
4. **Migrated intent** — `cost_profile` was originally meant to gate
|
|
38
|
-
self-optimization; that capability had already moved to the independent
|
|
39
|
-
`pipelines.skill_improvement` setting + tier-2a rule loading.
|
|
40
|
-
5. **Naming confusion** — four "cost"-sounding concepts (`cost_profile`,
|
|
41
|
-
the memory cadence, `/cost:report` + `cost.budgets`, and
|
|
42
|
-
`model_tier`/`model.auto_switch`) competed for one mental slot; only the
|
|
43
|
-
first two were literally named `cost_profile`, and the second was the
|
|
44
|
-
broken one.
|
|
45
|
-
|
|
46
|
-
The root cause was the absence of a settings schema: nothing prevented one
|
|
47
|
-
key from carrying two value vocabularies.
|
|
48
|
-
|
|
49
|
-
## Decision
|
|
50
|
-
|
|
51
|
-
1. **One key, one job.** Rename the canonical setting `cost_profile` →
|
|
52
|
-
`rule_loading_tier` (values unchanged: `minimal | balanced | full |
|
|
53
|
-
custom`). The name now describes the mechanism, not a side effect, which
|
|
54
|
-
makes the `/cost:report` mismatch obvious ("you can't lower your rule
|
|
55
|
-
loading tier to save money without losing guardrails").
|
|
56
|
-
2. **Memory cadence owns its own key.** The visibility-line cadence moves
|
|
57
|
-
to `memory.cadence` (`auto | always | never`, default `always` —
|
|
58
|
-
behaviour-neutral; the previously-dead suppress path is now reachable as
|
|
59
|
-
`auto`). Named `memory.cadence`, not `memory_status`, to avoid a clash
|
|
60
|
-
with the existing `scripts/memory_status.py`.
|
|
61
|
-
3. **Self-optimization stays decoupled.** `pipelines.skill_improvement`
|
|
62
|
-
remains the independent lever; `rule_loading_tier` is *not* re-coupled to
|
|
63
|
-
learning behaviour. The council was unanimous that coupling token
|
|
64
|
-
footprint to learning behaviour is the wrong axis.
|
|
65
|
-
4. **Schema prevents recurrence.** A new
|
|
66
|
-
`scripts/schemas/agent-settings.schema.json` (+ CI validator) enum-
|
|
67
|
-
constrains the value-bearing keys so a value-vocabulary collision is a
|
|
68
|
-
hard CI failure, not silent dead code.
|
|
69
|
-
5. **Migration, not break.** `install.py`'s `LEGACY_RENAME_MAP` rewrites
|
|
70
|
-
`cost_profile` → `rule_loading_tier`; loaders read the legacy key as a
|
|
71
|
-
fallback during a grace period. The default is consolidated to one
|
|
72
|
-
source of truth (`balanced`).
|
|
73
|
-
|
|
74
|
-
### Deliberately *not* done (scope discipline)
|
|
75
|
-
|
|
76
|
-
- **Command + file names kept** (`/set-cost-profile`,
|
|
77
|
-
`cost-profile-defaults.md`) — renaming them cascades through the
|
|
78
|
-
ownership-matrix, command-surface, discovery manifest, and marketplace
|
|
79
|
-
(all CI-enforced/generated); the cost/benefit did not clear the bar.
|
|
80
|
-
Their *content* now uses `rule_loading_tier`.
|
|
81
|
-
- **`custom` left unchanged** — it is absent from `dist/router.json`
|
|
82
|
-
profiles (documented but not router-dispatched). Its implementation is a
|
|
83
|
-
pre-existing question, tracked as a follow-up, not part of this rename.
|
|
84
|
-
- **`dist/router.json` `profiles` key kept** — it is the tier-list
|
|
85
|
-
structure, not the setting name; consumers may parse it.
|
|
86
|
-
|
|
87
|
-
## Consequences
|
|
88
|
-
|
|
89
|
-
- The silent dead-code bug is gone; the memory cadence is reachable and
|
|
90
|
-
tested.
|
|
91
|
-
- A future settings-key collision fails CI immediately.
|
|
92
|
-
- Existing installs migrate automatically; no manual action.
|
|
93
|
-
- Internal naming is slightly inconsistent (command/file still say
|
|
94
|
-
"cost-profile" while the setting is `rule_loading_tier`) — an accepted
|
|
95
|
-
trade-off against a high-churn, low-value rename of generated surfaces.
|
|
96
|
-
- Breaking change to a public settings key → next major (see
|
|
97
|
-
`BREAKING_CHANGES.md`).
|
|
98
|
-
|
|
99
|
-
## Alternatives considered
|
|
100
|
-
|
|
101
|
-
- **Re-couple `cost_profile` to self-optimization** (the original intent) —
|
|
102
|
-
rejected: couples two orthogonal axes (token footprint + learning
|
|
103
|
-
behaviour); the council and the existing decoupled architecture both
|
|
104
|
-
argue against it.
|
|
105
|
-
- **Minimal fix — resolve only the collision, keep the `cost_profile`
|
|
106
|
-
name** — rejected: leaves the misleading "cost" name and so leaves part
|
|
107
|
-
of the four-concept confusion intact.
|
|
108
|
-
- **Rename the command + doc files too** — deferred: disproportionate
|
|
109
|
-
cascade through CI-enforced manifests for marginal benefit.
|
|
110
|
-
|
|
111
|
-
## References
|
|
112
|
-
|
|
113
|
-
- `BREAKING_CHANGES.md` (next-major entry).
|
|
114
|
-
- `docs/contracts/memory-visibility-v1.md` § Cadence interaction.
|
|
115
|
-
- `docs/contracts/cost-profile-defaults.md` (rule-loading defaults).
|
|
116
|
-
- `scripts/schemas/agent-settings.schema.json` + `scripts/validate_agent_settings.py`.
|
|
117
|
-
- ADR-010 (profile / pack / preset boundary) — `cost_profile` axis renamed.
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 038
|
|
3
|
-
status: accepted
|
|
4
|
-
date: 2026-06-01
|
|
5
|
-
decision: canonical-settings-path
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: —
|
|
8
|
-
type: structural
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# ADR-038: Canonical settings path is `agents/settings/.agent-settings.yml`
|
|
12
|
-
|
|
13
|
-
- **Status:** Accepted
|
|
14
|
-
- **Date:** 2026-06-01
|
|
15
|
-
|
|
16
|
-
## Context
|
|
17
|
-
|
|
18
|
-
The project's settings *layer* lives under `agents/settings/` — it already
|
|
19
|
-
holds `contexts/`, `policies/`, and the per-machine override
|
|
20
|
-
`.agent-settings.local.yml` (relocated there by `4f887ae8`). The main
|
|
21
|
-
developer settings file, however, stayed at the repo root as
|
|
22
|
-
`./.agent-settings.yml`: `agent_settings.py` (`DEFAULT_PROJECT_FILE`),
|
|
23
|
-
`install.py` (`SETTINGS_FILE`), `sync_agent_settings.py` (`DEFAULT_SETTINGS`),
|
|
24
|
-
and ~30 reader scripts all hardcode the root path. The split is inconsistent —
|
|
25
|
-
the override sits in the settings layer while the file it overrides sits at the
|
|
26
|
-
root — and surfaced as a real defect: roadmaps and contributors referenced
|
|
27
|
-
`agents/settings/.agent-settings.yml` (the location they expected), which then
|
|
28
|
-
failed `check-references` because no such canonical file existed.
|
|
29
|
-
|
|
30
|
-
Both files are gitignored (`.gitignore` matches the `.agent-settings.yml`
|
|
31
|
-
basename anywhere) and per-machine; neither is ever committed.
|
|
32
|
-
|
|
33
|
-
## Decision
|
|
34
|
-
|
|
35
|
-
The canonical project settings file is **`agents/settings/.agent-settings.yml`**,
|
|
36
|
-
co-located with the rest of the settings layer. The repo-root
|
|
37
|
-
`./.agent-settings.yml` becomes a **back-compat read-fallback only**.
|
|
38
|
-
|
|
39
|
-
- **Read precedence (deepest wins):** legacy root `.agent-settings.yml`
|
|
40
|
-
< canonical `agents/settings/.agent-settings.yml` < per-machine
|
|
41
|
-
`agents/settings/.agent-settings.local.yml`.
|
|
42
|
-
- **Write target:** always `agents/settings/.agent-settings.yml`
|
|
43
|
-
(`canonical_settings_write_path`). The legacy root file is migrated into
|
|
44
|
-
the canonical location, never written afresh.
|
|
45
|
-
- **Resolution helper:** `project_settings_path()` returns the canonical file
|
|
46
|
-
when present, else the legacy root file when present (back-compat), else the
|
|
47
|
-
canonical path (fresh repo). All direct readers route through it.
|
|
48
|
-
- **Migration:** `install` and the `migrate` command relocate an existing root
|
|
49
|
-
`./.agent-settings.yml` to `agents/settings/.agent-settings.yml` once; no
|
|
50
|
-
consumer install breaks because the fallback keeps the old location readable
|
|
51
|
-
until it is moved.
|
|
52
|
-
|
|
53
|
-
## Consequences
|
|
54
|
-
|
|
55
|
-
- Settings layout is internally consistent: the main file and its override live
|
|
56
|
-
together under `agents/settings/`.
|
|
57
|
-
- Existing installs keep working unchanged until migrated (read-fallback).
|
|
58
|
-
- One-time cost: ~36 Python reader sites + the TS settings server/CLI route
|
|
59
|
-
through the helper; install/sync/migrate gain the relocation step; docs and
|
|
60
|
-
the gitignore-managed block name the canonical path.
|
|
61
|
-
- The `.gitignore` basename match already covers the canonical path — no new
|
|
62
|
-
ignore entry required.
|
|
63
|
-
|
|
64
|
-
## Amendment — 2026-06-03 · dev-mode resolution semantics
|
|
65
|
-
|
|
66
|
-
Recorded alongside [`ADR-049`](ADR-049-configuration-trust-boundary.md) so a
|
|
67
|
-
future contributor does not read `AGENT_CONFIG_DEV_MODE=1` as a settings-scope
|
|
68
|
-
escape hatch.
|
|
69
|
-
|
|
70
|
-
When `AGENT_CONFIG_DEV_MODE=1` (`scripts/install.py` treats the package repo as
|
|
71
|
-
both source and project surface, per [`ADR-020`](ADR-020-global-only-consumer-scope.md)):
|
|
72
|
-
|
|
73
|
-
- The package repo's `agents/settings/` **is** the project surface — its
|
|
74
|
-
`.agent-settings.yml` / `.ai-council.yml` are the maintainer's test fixtures
|
|
75
|
-
for exercising the loader against real files, not a workaround.
|
|
76
|
-
- The user-global layer (`~/.event4u/agent-config/`) still provides the
|
|
77
|
-
whitelisted identity keys and provider secrets exactly as in a consumer install.
|
|
78
|
-
- **No special merge logic.** The normal cascade composes (user-global whitelist
|
|
79
|
-
→ project-canonical → local override). Dev-mode changes *which directory* is the
|
|
80
|
-
project surface, never *which keys* may cascade — the `MERGEABLE_KEYS` trust
|
|
81
|
-
boundary from [`ADR-049`](ADR-049-configuration-trust-boundary.md) holds
|
|
82
|
-
unchanged.
|
|
83
|
-
|
|
84
|
-
## Alternatives considered
|
|
85
|
-
|
|
86
|
-
- **Keep root canonical (status quo).** Rejected: leaves the override/main-file
|
|
87
|
-
split inconsistent and keeps surfacing as wrong-path references.
|
|
88
|
-
- **Hard cut, no fallback.** Rejected: breaks every existing install (and this
|
|
89
|
-
repo) until each re-runs setup; the fallback is cheap insurance.
|
|
90
|
-
|
|
91
|
-
## References
|
|
92
|
-
|
|
93
|
-
- `scripts/_lib/agent_settings.py` — resolver cascade + `project_settings_path` / `canonical_settings_write_path`.
|
|
94
|
-
- `4f887ae8` — prior relocation of `.agent-settings.local.yml` into `agents/settings/`.
|
|
95
|
-
- `docs/guidelines/agent-infra/layered-settings.md` — precedence model.
|
|
96
|
-
- `docs/contracts/migrate-command.md` — migration surface.
|