@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root,[data-theme=dark]{color-scheme:dark;--color-bg: #0b0c0e;--color-surface: #121316;--color-surface-alt: #1a1c20;--color-surface-hover:#1f2126;--color-sidebar: #232427;--color-border: rgba(255, 255, 255, .09);--color-border-strong:rgba(255, 255, 255, .22);--color-text: #ededef;--color-text-muted: #a2a5ad;--color-text-subtle: #6f7280;--color-text-inverse: #101114;--color-accent: #d66d4d;--color-accent-hover: #db7e61;--color-accent-fg: #101114;--color-accent-soft: rgba(209, 92, 56, .14);--color-success: #4ade80;--color-success-soft: rgba(74, 222, 128, .13);--color-warning: #fbbf24;--color-warning-soft: rgba(251, 191, 36, .13);--color-danger: #f87171;--color-danger-soft: rgba(248, 113, 113, .12);--color-info: #38bdf8;--color-info-soft: rgba(56, 189, 248, .13);--color-focus-ring: #db7e61;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .5);--shadow-md: 0 4px 10px -2px rgba(0, 0, 0, .55);--shadow-lg: 0 12px 28px -6px rgba(0, 0, 0, .65);--shadow-focus: 0 0 0 2px var(--color-focus-ring)}[data-theme=light]{color-scheme:light;--color-bg: #f7f7f8;--color-surface: #ffffff;--color-surface-alt: #f1f2f4;--color-surface-hover:#e9eaee;--color-sidebar: #f1f2f4;--color-border: rgba(17, 18, 24, .1);--color-border-strong:rgba(17, 18, 24, .28);--color-text: #16171b;--color-text-muted: #565963;--color-text-subtle: #7d808c;--color-text-inverse: #f7f7f8;--color-accent: #b24929;--color-accent-hover: #9d4024;--color-accent-fg: #ffffff;--color-accent-soft: rgba(209, 92, 56, .1);--color-success: #16a34a;--color-success-soft: rgba(22, 163, 74, .12);--color-warning: #d97706;--color-warning-soft: rgba(217, 119, 6, .12);--color-danger: #dc2626;--color-danger-soft: rgba(220, 38, 38, .1);--color-info: #0284c7;--color-info-soft: rgba(2, 132, 199, .11);--color-focus-ring: #be4e2c;--shadow-sm: 0 1px 2px 0 rgba(16, 17, 20, .05);--shadow-md: 0 4px 10px -2px rgba(16, 17, 20, .08);--shadow-lg: 0 12px 28px -6px rgba(16, 17, 20, .14);--shadow-focus: 0 0 0 2px var(--color-focus-ring)}:root{--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono: ui-monospace, "SFMono-Regular", "JetBrains Mono", "Menlo", "Consolas", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: .9375rem;--font-size-lg: 1.0625rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.75rem;--font-weight-regular:400;--font-weight-medium: 500;--font-weight-bold: 600;--line-height-tight: 1.25;--line-height-base: 1.55;--line-height-loose: 1.75;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .625rem;--radius-xl: .75rem;--radius-full: 9999px;--duration-fast: .12s;--duration-base: .2s;--duration-slow: .32s;--easing-standard: cubic-bezier(.2, 0, 0, 1);--layout-max-width: 52rem;--layout-side-padding: var(--space-6);--layout-content-gap: var(--space-4);--z-base: 0;--z-overlay: 10;--z-modal: 20;--z-toast: 30}@media (prefers-reduced-motion: reduce){:root{--duration-fast: 0ms;--duration-base: 0ms;--duration-slow: 0ms}}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-base)}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}code{font-family:var(--font-mono);font-size:var(--font-size-sm);background:var(--color-surface-alt);padding:0 var(--space-1);border-radius:var(--radius-sm)}#app{min-height:100vh}.ac-dryrun-banner{position:sticky;top:0;z-index:10;padding:var(--space-2) var(--space-4);background:var(--color-warning-soft);color:var(--color-warning);border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm);text-align:center}.ac-dryrun-banner strong{letter-spacing:.08em;text-transform:uppercase}.ac-topnav{position:sticky;top:0;z-index:9;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.ac-topnav__theme{appearance:none;background:transparent;border:1px solid var(--color-border);color:var(--color-text-muted);width:2rem;height:2rem;border-radius:var(--radius-full);cursor:pointer;font-size:var(--font-size-base);line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:background var(--duration-fast) var(--easing-standard),color var(--duration-fast) var(--easing-standard)}.ac-topnav__theme:hover{background:var(--color-surface-hover);color:var(--color-text)}.ac-topnav__theme:focus-visible{outline:none;box-shadow:var(--shadow-focus)}.ac-topnav__inner{max-width:var(--layout-max-width);margin:0 auto;padding:var(--space-3) var(--layout-side-padding);display:flex;align-items:center;gap:var(--space-4)}.ac-topnav__brand{display:flex;flex-direction:column;gap:0;margin-right:var(--space-2)}.ac-topnav__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);margin:0;line-height:1.2}.ac-topnav__subtitle{margin:0;color:var(--color-text-muted);font-size:var(--font-size-xs)}.ac-topnav__tabs{display:flex;gap:var(--space-1);flex:1;flex-wrap:wrap}.ac-topnav__tab{appearance:none;background:transparent;border:1px solid transparent;color:var(--color-text-muted);padding:var(--space-2) var(--space-3);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);cursor:pointer}.ac-topnav__tab:hover{background:var(--color-surface-alt);color:var(--color-text)}.ac-topnav__tab--active{background:var(--color-surface-alt);color:var(--color-accent);border-color:var(--color-border)}.ac-page{max-width:var(--layout-max-width);margin:0 auto;padding:var(--space-8) var(--layout-side-padding);display:flex;flex-direction:column;gap:var(--layout-content-gap)}.ac-page__header{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--color-border);padding-bottom:var(--space-3)}.ac-page h1{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin:0}.ac-banner{background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md)}.ac-banner--error{border-left-color:var(--color-danger)}.ac-banner--success{border-left-color:var(--color-success)}.ac-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6)}.ac-section__title{font-size:var(--font-size-lg);margin:0 0 var(--space-2)}.ac-section__description{color:var(--color-text-muted);margin:0 0 var(--space-4)}.ac-section__fields{display:flex;flex-direction:column;gap:var(--space-4)}.ac-field{display:flex;flex-direction:column;gap:var(--space-1)}.ac-field__label{font-weight:var(--font-weight-medium);font-size:var(--font-size-sm)}.ac-field__description{color:var(--color-text-muted);font-size:var(--font-size-xs);margin:0}.ac-field__error{color:var(--color-danger);font-size:var(--font-size-xs);margin:0;border-left:3px solid var(--color-danger);padding-left:var(--space-2)}.ac-input,.ac-textarea{font:inherit;color:var(--color-text);background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);width:100%;transition:border-color var(--duration-fast) var(--easing-standard),box-shadow var(--duration-fast) var(--easing-standard)}.ac-input:hover,.ac-textarea:hover{border-color:var(--color-border-strong)}.ac-input:focus,.ac-textarea:focus{outline:none;box-shadow:var(--shadow-focus);border-color:var(--color-focus-ring)}.ac-input[aria-invalid=true],.ac-textarea[aria-invalid=true]{border-color:var(--color-danger)}.ac-input[aria-invalid=true]:focus,.ac-textarea[aria-invalid=true]:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px var(--color-danger-soft, rgba(239, 68, 68, .18))}.ac-textarea{font-family:var(--font-mono);font-size:var(--font-size-sm);resize:vertical}.ac-toggle{display:inline-flex;gap:var(--space-2);align-items:center;cursor:pointer}.ac-radio-group{display:flex;flex-direction:column;gap:var(--space-2)}.ac-radio{display:inline-flex;gap:var(--space-2);align-items:center;cursor:pointer}.ac-field[data-invalid=true] .ac-toggle input[type=checkbox],.ac-field[data-invalid=true] .ac-radio input[type=radio]{outline:2px solid var(--color-danger);outline-offset:2px;border-radius:2px}.ac-button{font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);cursor:pointer;transition:background var(--duration-fast) var(--easing-standard)}.ac-button:hover{background:var(--color-surface-hover);border-color:var(--color-border-strong)}.ac-button:disabled{opacity:.6;cursor:not-allowed}.ac-button--primary{background:var(--color-accent);color:var(--color-accent-fg);border-color:var(--color-accent)}.ac-button--primary:hover{background:var(--color-accent-hover)}.ac-button:focus{outline:none;box-shadow:var(--shadow-focus)}.ac-form{display:flex;flex-direction:column;gap:var(--space-5)}.ac-form__actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.ac-modal{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal)}.ac-modal__panel{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-6);max-width:32rem;width:90vw;max-height:80vh;overflow:auto;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;gap:var(--space-4)}.ac-modal__actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.ac-diff{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.ac-diff li{display:grid;grid-template-columns:1fr auto auto auto;gap:var(--space-2);font-size:var(--font-size-sm);align-items:center}.ac-diff__before{color:var(--color-text-muted);text-decoration:line-through}.ac-diff__arrow{color:var(--color-text-subtle)}.ac-diff__after{color:var(--color-success);font-weight:var(--font-weight-medium)}.ac-page__progress{color:var(--color-text-muted);margin:0}.ac-wizard__header{display:flex;flex-direction:column;gap:var(--space-3);align-items:stretch}.ac-wizard__header-text{display:flex;flex-direction:column;gap:var(--space-1)}.ac-wizard__subtitle{color:var(--color-text-muted);margin:0}.ac-wizard__step-count{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.ac-wizard__progress{display:flex;gap:var(--space-1)}.ac-wizard__progress-segment{flex:1;height:5px;background:var(--color-border);border-radius:var(--radius-sm);transition:background var(--duration-fast) var(--easing-standard)}.ac-wizard__progress-segment--filled{background:var(--color-accent)}.ac-wizard__step{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-sm)}.ac-wizard__nav{justify-content:space-between}.ac-wizard__nav .ac-button:first-child{margin-right:auto}.ac-wizard__skip{color:var(--color-text-muted)}.ac-wizard__hint{margin:var(--space-3) 0 0;color:var(--color-warning, #b45309);font-size:.875rem}.ac-wizard__review{display:flex;flex-direction:column;gap:var(--space-4)}.ac-wizard__tool-list{list-style:none;padding-left:0;margin:0;display:flex;flex-direction:column;gap:var(--space-1)}.ac-wizard__tool-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--easing-standard),background var(--duration-fast) var(--easing-standard)}.ac-wizard__tool-row:hover{border-color:var(--color-border-strong)}.ac-wizard__tool-row:has(input:checked){border-color:var(--color-accent);background:var(--color-accent-soft)}.ac-wizard__tool-label{display:flex;align-items:center;gap:var(--space-2);cursor:pointer}.ac-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:.1rem var(--space-2);border-radius:var(--radius-sm);white-space:nowrap}.ac-badge--installed{background:var(--color-success-soft);color:var(--color-success)}.ac-badge--detected{background:var(--color-info-soft, rgba(2, 132, 199, .12));color:var(--color-info)}.ac-badge--missing{background:var(--color-surface-alt);color:var(--color-text-muted)}.ac-badge--ws{font-size:.6875rem;padding:.05rem .4rem;background:var(--color-surface-alt);color:var(--color-text-muted);border:1px solid var(--color-border)}.ac-badge--ws-active{background:var(--color-accent);color:var(--color-accent-fg);border-color:var(--color-accent)}.ac-wizard__pack-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-3)}.ac-pack-tile{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);transition:border-color var(--duration-fast) var(--easing-standard),background var(--duration-fast) var(--easing-standard)}.ac-pack-tile:hover{border-color:var(--color-border-strong)}.ac-pack-tile:has(>.ac-pack-tile__head input:checked){border-color:var(--color-accent);background:var(--color-accent-soft)}.ac-pack-tile__head{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;font-weight:var(--font-weight-medium)}.ac-pack-tile__title{flex:1}.ac-pack-tile__role{margin:0;font-size:var(--font-size-xs);color:var(--color-text)}.ac-pack-tile__role code{font-size:var(--font-size-xs)}.ac-pack-tile__desc{margin:0;color:var(--color-text-muted);font-size:var(--font-size-xs)}.ac-pack-tile__ws{display:flex;flex-wrap:wrap;gap:var(--space-1)}.ac-pack-tile__children{display:flex;flex-direction:column;gap:var(--space-1);margin:0;padding:var(--space-2) 0 0 var(--space-4);border:0;border-top:1px solid var(--color-border)}.ac-pack-tile__children:disabled{opacity:.5}.ac-pack-tile__child{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);cursor:pointer}.ac-wizard__module-fields{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-4)}.ac-rtk-row{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);margin-bottom:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md)}.ac-rtk-row__head{display:flex;align-items:center;gap:var(--space-2)}.ac-rtk-row__label{font-weight:var(--font-weight-medium)}.ac-rtk-row__install{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}.ac-rtk-row__cmd{display:block;width:100%;padding:var(--space-2) var(--space-3);background:var(--color-surface-alt);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-xs);user-select:all}.ac-council{display:flex;flex-direction:column;gap:var(--space-4)}.ac-council__master{display:flex;align-items:center;gap:var(--space-2);font-weight:var(--font-weight-medium)}.ac-council__section{display:flex;flex-direction:column;gap:var(--space-4);border:0;padding:0;margin:0}.ac-council__section:disabled{opacity:.55}.ac-council__h{margin:var(--space-2) 0 0;font-size:var(--font-size-sm);color:var(--color-text-muted)}.ac-settings-hub__toolbar{display:flex;gap:var(--space-2);align-items:center}.ac-settings-hub__search{flex:1}.ac-chip-toggle{appearance:none;font:inherit;font-size:var(--font-size-sm);font-family:var(--font-mono);color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);cursor:pointer;white-space:nowrap;transition:background var(--duration-fast) var(--easing-standard),color var(--duration-fast) var(--easing-standard)}.ac-chip-toggle:hover{background:var(--color-surface-hover);color:var(--color-text)}.ac-chip-toggle--active{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent)}.ac-settings-hub__empty{color:var(--color-text-muted)}.ac-settings-hub__disclosure{appearance:none;font:inherit;font-size:var(--font-size-sm);color:var(--color-text-muted);background:transparent;border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);margin-top:var(--space-4);width:100%;cursor:pointer;transition:color var(--duration-fast) var(--easing-standard),border-color var(--duration-fast) var(--easing-standard)}.ac-settings-hub__disclosure:hover{color:var(--color-text);border-color:var(--color-accent)}.ac-field-row{display:flex;gap:var(--space-2);align-items:flex-start;padding-left:var(--space-2);margin-left:calc(-1 * var(--space-2));border-left:3px solid transparent}.ac-field-row--modified{border-left-color:var(--color-accent)}.ac-field-row__body{flex:1;min-width:0}.ac-field-row__meta{display:flex;flex-direction:column;gap:var(--space-1);align-items:flex-end}.ac-badge--source{background:var(--color-surface-alt);color:var(--color-text-subtle);border:1px solid var(--color-border)}.ac-field-row__reset{appearance:none;font:inherit;font-size:var(--font-size-xs);color:var(--color-text-muted);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:2px var(--space-2);margin-top:var(--space-1);cursor:pointer;white-space:nowrap}.ac-field-row__reset:hover{color:var(--color-danger);border-color:var(--color-danger)}.ac-start{display:grid;grid-template-columns:3fr 2fr;gap:var(--space-4)}@media (max-width: 700px){.ac-start{grid-template-columns:1fr}}.ac-start__card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface)}.ac-start__card--primary{border-color:var(--color-accent)}.ac-start__title{margin:0;font-size:var(--font-size-xl)}.ac-start__desc{margin:0;color:var(--color-text-muted)}.ac-start__facts{margin:0;padding-left:var(--space-5);display:flex;flex-direction:column;gap:var(--space-1);color:var(--color-text-muted);font-size:var(--font-size-sm)}.ac-start__cta{margin-top:auto;align-self:flex-start}.ac-review-summary{border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);background:var(--color-surface);overflow-wrap:anywhere;min-width:0}.ac-review-summary__title{margin:0 0 var(--space-2);font-size:var(--font-size-base)}.ac-review-summary__list{margin:0;padding-left:var(--space-5);display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--font-size-sm)}.ac-review-summary__chips{display:inline-flex;flex-wrap:wrap;gap:var(--space-1);margin-left:var(--space-1);vertical-align:top}.ac-review-summary__chip{white-space:nowrap}.ac-checklist{display:flex;flex-direction:column;gap:var(--space-5)}.ac-checklist__hero{display:flex;flex-direction:column;gap:var(--space-2)}.ac-checklist__headline{margin:0;font-size:var(--font-size-2xl)}.ac-checklist__message{margin:0;color:var(--color-text-muted);font-size:var(--font-size-sm)}.ac-checklist__items{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-3);counter-reset:checklist}.ac-checklist__item{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);counter-increment:checklist}.ac-checklist__text{display:flex;flex-direction:column;gap:2px}.ac-checklist__item-title{font-weight:var(--font-weight-medium)}.ac-checklist__item-title:before{content:counter(checklist) ". ";color:var(--color-text-subtle)}.ac-checklist__item-detail{color:var(--color-text-muted);font-size:var(--font-size-sm)}.ac-checklist__cmd-row{display:flex;gap:var(--space-2);align-items:center}.ac-checklist__cmd{flex:1;padding:var(--space-2) var(--space-3);background:var(--color-surface-alt);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--font-size-sm);user-select:all}.ac-checklist__copy{padding:var(--space-1) var(--space-3);font-size:var(--font-size-sm)}.ac-checklist__close-hint{margin:0;color:var(--color-text-subtle);font-size:var(--font-size-sm)}.ac-review-removals{border:1px solid var(--color-danger);border-left:3px solid var(--color-danger);border-radius:var(--radius-md);background:var(--color-danger-soft, rgba(239, 68, 68, .08));padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.ac-review-removals__title{margin:0;font-weight:var(--font-weight-medium);color:var(--color-danger)}.ac-review-removals__list{margin:0;padding-left:var(--space-5)}.ac-review-removals__confirm{display:flex;gap:var(--space-2);align-items:flex-start;cursor:pointer;font-size:var(--font-size-sm)}.ac-wizard__review-nav{display:flex;flex-direction:column;gap:var(--space-2)}.ac-wizard__review-nav-label{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.ac-wizard__review-nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.ac-wizard__review-nav-button{width:100%;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:transparent;border:1px solid var(--color-border);border-left:3px solid var(--color-success);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--font-size-sm);text-align:left;cursor:pointer;transition:background var(--duration-fast) var(--easing-standard),border-color var(--duration-fast) var(--easing-standard)}.ac-wizard__review-nav-button:hover{background:var(--color-surface);border-color:var(--color-accent);border-left-color:var(--color-success)}.ac-wizard__review-nav-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.ac-wizard__review-nav-index{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 .375rem;background:var(--color-border);border-radius:999px;font-size:var(--font-size-xs);font-weight:600}.ac-wizard__review-nav-text{flex:1}.ac-wizard__review-nav-status{margin-left:auto;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:.125rem .5rem;border-radius:999px;white-space:nowrap}.ac-wizard__review-nav-status--changed{background:var(--color-success-soft, rgba(34, 197, 94, .12));color:var(--color-success)}.ac-wizard__review-nav-status--error{background:var(--color-danger-soft, rgba(239, 68, 68, .12));color:var(--color-danger)}.ac-wizard__review-nav-button--error{border-left-color:var(--color-danger)}.ac-wizard__review-nav-button--error:hover{border-color:var(--color-accent);border-left-color:var(--color-danger)}.ac-user-md-form{display:flex;flex-direction:column;gap:var(--space-5)}.ac-chip-list{list-style:none;margin:0 0 var(--space-2);padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}.ac-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:999px;font-size:var(--font-size-sm)}.ac-chip__remove{appearance:none;background:transparent;border:0;color:var(--color-text-muted);cursor:pointer;font-size:1rem;line-height:1;padding:0 var(--space-1)}.ac-chip__remove:hover:not(:disabled){color:var(--color-text)}.ac-chip__remove:disabled{opacity:.4;cursor:not-allowed}.ac-role-add{display:flex;gap:var(--space-2);align-items:center}.ac-role-add .ac-input{flex:1}.ac-workspace__grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2fr) minmax(260px,1fr);gap:var(--space-4);margin-top:var(--space-4)}@media (max-width: 900px){.ac-workspace__grid{grid-template-columns:1fr}}.ac-workspace__heading{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);margin:0 0 var(--space-2) 0;color:var(--color-text)}.ac-workspace__empty{color:var(--color-text-muted);font-size:var(--font-size-sm)}.ac-workspace__role-grid{display:flex;flex-direction:column;gap:var(--space-2)}.ac-workspace__role{text-align:left;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:var(--space-1);color:inherit;font:inherit}.ac-workspace__role:hover{border-color:var(--color-border-strong)}.ac-workspace__role--active{border-color:var(--color-primary, var(--color-text));background:var(--color-surface-alt)}.ac-workspace__role:focus-visible{outline:2px solid var(--color-primary, var(--color-text));outline-offset:2px}.ac-workspace__role-name{font-weight:var(--font-weight-medium)}.ac-workspace__role-status{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.ac-workspace__role-status[data-status=stable]{color:var(--color-success, #15803d)}.ac-workspace__role-status[data-status=beta]{color:var(--color-warn, #b45309)}.ac-workspace__role-status[data-status=draft]{color:var(--color-text-muted)}.ac-workspace__role-tagline{grid-column:1 / -1;color:var(--color-text-muted);font-size:var(--font-size-sm)}.ac-workspace__main{display:flex;flex-direction:column;gap:var(--space-4)}.ac-workspace__task-list,.ac-workspace__session-list,.ac-workspace__doc-list,.ac-workspace__skill-list,.ac-workspace__citation-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.ac-workspace__task{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface)}.ac-workspace__task-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}.ac-workspace__task-name{font-weight:var(--font-weight-medium)}.ac-workspace__task-intent{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:var(--space-1) 0 0 0}.ac-workspace__task-prompt{display:inline-block;margin-top:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted)}.ac-workspace__session{display:grid;grid-template-columns:minmax(120px,1fr) minmax(80px,1fr) 2fr;gap:var(--space-2);font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.ac-workspace__session-id{font-family:var(--font-mono, monospace);color:var(--color-text-muted)}.ac-workspace__rail{display:flex;flex-direction:column;gap:var(--space-4)}.ac-workspace__citation{border-left:3px solid var(--color-border);padding:var(--space-1) var(--space-2)}.ac-workspace__citation-marker{font-weight:var(--font-weight-medium);margin-right:var(--space-1)}.ac-workspace__citation-source{text-decoration:none;color:var(--color-text);border-bottom:1px dotted var(--color-border-strong)}.ac-workspace__citation-source:hover{color:var(--color-primary, var(--color-text))}.ac-workspace__citation-pin{margin-left:var(--space-1);color:var(--color-warn, #b45309)}.ac-workspace__citation-excerpt{margin:var(--space-1) 0 0 0;color:var(--color-text-muted);font-size:var(--font-size-xs)}.ac-workspace__doc{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-2);align-items:center;font-size:var(--font-size-sm);padding:var(--space-2);border-radius:var(--radius-sm)}.ac-workspace__doc-type{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0 var(--space-1)}.ac-workspace__doc-time{font-family:var(--font-mono, monospace);color:var(--color-text-muted);font-size:var(--font-size-xs)}.ac-workspace__explain{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3)}.ac-workspace__explain legend{padding:0 var(--space-1)}.ac-workspace__explain-option{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;padding:var(--space-1) 0}.ac-workspace__explain-hint{margin:var(--space-2) 0 0 0;color:var(--color-text-muted);font-size:var(--font-size-xs)}.ac-banner--pending{border-left-color:var(--color-warning);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.ac-button--small{padding:var(--space-1) var(--space-3);font-size:var(--font-size-sm)}.ac-page__lede{color:var(--color-text-muted);margin:var(--space-1) 0 0 0}.ac-settings-changes__group h2{font-size:var(--font-size-lg);margin:0 0 var(--space-1)}.ac-settings-changes__count{color:var(--color-text-muted);font-weight:var(--font-weight-regular, 400)}.ac-settings-changes__hint{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0 0 var(--space-3)}.ac-settings-changes__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.ac-change-card{background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.ac-change-card--must_fix{border-left-color:var(--color-danger)}.ac-change-card--adopt{border-left-color:var(--color-accent)}.ac-change-card--review{border-left-color:var(--color-warning)}.ac-change-card__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);flex-wrap:wrap}.ac-change-card__key{font-size:var(--font-size-sm);overflow-wrap:anywhere}.ac-change-card__badge{font-size:var(--font-size-xs);border-radius:var(--radius-sm);padding:0 var(--space-2);border:1px solid var(--color-border);white-space:nowrap;color:var(--color-text-muted)}.ac-change-card__badge--must_fix{color:var(--color-danger);border-color:var(--color-danger)}.ac-change-card__badge--adopt{color:var(--color-accent);border-color:var(--color-accent)}.ac-change-card__badge--review{color:var(--color-warning);border-color:var(--color-warning)}.ac-change-card__desc{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.ac-change-card__detail{font-size:var(--font-size-sm);margin:0;overflow-wrap:anywhere}.ac-change-card__choices{display:flex;flex-direction:column;gap:var(--space-1)}.ac-change-card__choice{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--font-size-sm)}.ac-change-card .ac-input{max-width:24rem}
|
package/dist/ui/index.html
CHANGED
|
@@ -8,18 +8,27 @@
|
|
|
8
8
|
<script>
|
|
9
9
|
// Theme boot — set data-theme BEFORE first paint so there is no
|
|
10
10
|
// flash of the wrong theme (road-to-setup-experience § Phase 4.2).
|
|
11
|
-
//
|
|
11
|
+
// Precedence: a host-supplied `?theme=light|dark` boot query wins
|
|
12
|
+
// (reciprocal-ecosystem embed contract — the host owns the theme),
|
|
13
|
+
// then a persisted localStorage override, then the OS preference.
|
|
12
14
|
(function () {
|
|
15
|
+
var query = null;
|
|
16
|
+
try {
|
|
17
|
+
var q = new URLSearchParams(window.location.search).get('theme');
|
|
18
|
+
if (q === 'light' || q === 'dark') query = q;
|
|
19
|
+
} catch (e) { /* older engine */ }
|
|
13
20
|
var stored = null;
|
|
14
21
|
try { stored = localStorage.getItem('agent-config-theme'); } catch (e) { /* private mode */ }
|
|
15
|
-
var theme =
|
|
16
|
-
?
|
|
17
|
-
:
|
|
22
|
+
var theme = query
|
|
23
|
+
? query
|
|
24
|
+
: stored === 'light' || stored === 'dark'
|
|
25
|
+
? stored
|
|
26
|
+
: (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');
|
|
18
27
|
document.documentElement.setAttribute('data-theme', theme);
|
|
19
28
|
})();
|
|
20
29
|
</script>
|
|
21
|
-
<script type="module" crossorigin src="/assets/index-
|
|
22
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
30
|
+
<script type="module" crossorigin src="/assets/index-BpSQt5vm.js"></script>
|
|
31
|
+
<link rel="stylesheet" crossorigin href="/assets/index-jSfMW8_t.css">
|
|
23
32
|
</head>
|
|
24
33
|
<body>
|
|
25
34
|
<main id="app"></main>
|
package/docs/MIGRATION.md
CHANGED
|
@@ -6,6 +6,22 @@ only the version you are upgrading to.
|
|
|
6
6
|
|
|
7
7
|
> Symbol legend — 🔄 automatic, ✋ manual, 💡 advisory.
|
|
8
8
|
|
|
9
|
+
## Scheduled deprecations (forward-looking — read before cutting a major)
|
|
10
|
+
|
|
11
|
+
Every section below this one records a change that **already shipped**. This
|
|
12
|
+
table is the opposite: commitments made now, due at a **future** major. It
|
|
13
|
+
exists so a "deprecate at the next major, remove the major after" promise
|
|
14
|
+
cannot decay into folklore — the release runbook's pre-flight (§ 1) sends the
|
|
15
|
+
releaser here on every `release:major`.
|
|
16
|
+
|
|
17
|
+
| Surface | Committed | Deprecation notice due | Removal due | Reversal condition |
|
|
18
|
+
|---|---|---|---|---|
|
|
19
|
+
| `code_graph` native code-graph engine (`code_graph.enabled`, the `code-intelligence` skill's native arm, `code_graph_nudge_hook`) | 2026-07-28 | next major after 9.x | the major after that | A consumer case the graph answers and disciplined grep cannot. Measured null: recall 0.365 vs grep 0.797 (`docs/CLAIMS.md` `code-graph-retrieval-null`). Until then `enabled: false` is permanent. |
|
|
20
|
+
|
|
21
|
+
**Adding a row:** any change that ships a capability as default-off-pending-removal,
|
|
22
|
+
or that promises a future breaking removal, gets a row here in the same commit
|
|
23
|
+
that makes the promise. A promise with no row is not tracked and will be missed.
|
|
24
|
+
|
|
9
25
|
## 8.x → 9.0.0 — consumer rule projection scoped by default
|
|
10
26
|
|
|
11
27
|
9.0.0 flips the consumer rule-projection default to **scoped**: fresh
|
|
@@ -171,8 +171,10 @@ standard's stated purpose (OOP *is* a deliberate high priority for the operator)
|
|
|
171
171
|
Divergence held: the frontend section stays (an intentional FE / backend
|
|
172
172
|
entry-point + carve-out index, per the operator's explicit "split by FE /
|
|
173
173
|
backend" ask) — against the anthropic "delete as redundant"; it is a cohesive
|
|
174
|
-
index of the existing FE surfaces, not a claim of novel guidance.
|
|
175
|
-
|
|
174
|
+
index of the existing FE surfaces, not a claim of novel guidance. The trace is
|
|
175
|
+
the 2026-07-15 session above, not a path: council output is gitignored and
|
|
176
|
+
auto-pruned, and this guideline is a stable artifact that must not carry a link
|
|
177
|
+
which rots (`no-roadmap-references`).
|
|
176
178
|
|
|
177
179
|
## See also
|
|
178
180
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@event4u/agent-config",
|
|
3
|
-
"
|
|
4
|
-
"
|
|
3
|
+
"mcpName": "io.github.event4u-app/agent-config",
|
|
4
|
+
"version": "9.9.0",
|
|
5
|
+
"description": "Governed skills, rules and commands for AI coding tools (Claude Code, Cursor, Windsurf, Copilot) — every claim machine-checked, including \"zero runtime daemon\".",
|
|
5
6
|
"license": "MIT",
|
|
6
7
|
"private": false,
|
|
7
8
|
"type": "module",
|
|
@@ -22,13 +23,11 @@
|
|
|
22
23
|
"copilot",
|
|
23
24
|
"llm",
|
|
24
25
|
"agent-governance",
|
|
25
|
-
"ai-video",
|
|
26
26
|
"skills",
|
|
27
27
|
"prompt-engineering",
|
|
28
28
|
"typescript",
|
|
29
29
|
"python",
|
|
30
|
-
"agent-skills"
|
|
31
|
-
"cinematic-ai-video"
|
|
30
|
+
"agent-skills"
|
|
32
31
|
],
|
|
33
32
|
"files": [
|
|
34
33
|
"dist/agent-src/",
|
|
@@ -36,7 +35,9 @@
|
|
|
36
35
|
".claude-plugin/",
|
|
37
36
|
"src/config/",
|
|
38
37
|
"dist/",
|
|
39
|
-
"docs/",
|
|
38
|
+
"docs/guidelines/",
|
|
39
|
+
"docs/contracts/persona-schema.md",
|
|
40
|
+
"docs/contracts/provider-lifecycle.md",
|
|
40
41
|
"src/scripts/",
|
|
41
42
|
"src/server/schemas/",
|
|
42
43
|
"src/shared/",
|
|
@@ -62,13 +63,19 @@
|
|
|
62
63
|
"scripts": {
|
|
63
64
|
"build:cli": "tsc -p tsconfig.json && chmod +x dist/cli/agent-config.js",
|
|
64
65
|
"build:install-bundle": "esbuild src/scripts/install.ts --bundle --platform=node --format=esm --target=node20 --define:__AGENT_CONFIG_BUNDLE__=true --outfile=dist/install/install.mjs --banner:js=\"import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);\"",
|
|
66
|
+
"build:hooks": "esbuild src/scripts/hooks/dispatch_entry.ts --bundle --platform=node --format=esm --target=node20 --define:__AGENT_CONFIG_BUNDLE__=true --outfile=dist/hooks/dispatch.js --banner:js=\"import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url); const __acPath = require('node:path'); const __acFs = require('node:fs'); const __acUrl = require('node:url'); const __acReal = (p) => { try { return __acFs.realpathSync(p); } catch { return p; } }; const __acSelf = __acReal(__acUrl.fileURLToPath(import.meta.url)); if (process.argv[1] !== undefined && __acReal(__acPath.resolve(process.argv[1])) === __acSelf) { globalThis.__AC_HOOKS_BUNDLE_DIRECT = true; process.argv = [process.argv[0], __acSelf + '.__direct__', ...process.argv.slice(2)]; }\"",
|
|
67
|
+
"build:mcp-bundle": "esbuild src/scripts/mcp_server/__main__.ts --bundle --platform=node --format=esm --target=node20 --define:__AGENT_CONFIG_BUNDLE__=true --outfile=dist/mcp/server.mjs --banner:js=\"import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url); const __acPath = require('node:path'); const __acFs = require('node:fs'); const __acUrl = require('node:url'); const __acReal = (p) => { try { return __acFs.realpathSync(p); } catch { return p; } }; const __acSelf = __acReal(__acUrl.fileURLToPath(import.meta.url)); if (process.argv[1] !== undefined && __acReal(__acPath.resolve(process.argv[1])) === __acSelf) { globalThis.__AC_MCP_BUNDLE_DIRECT = true; process.argv = [process.argv[0], __acSelf + '.__direct__', ...process.argv.slice(2)]; }\"",
|
|
65
68
|
"build:ui": "vite build",
|
|
69
|
+
"tokens:build": "node tokens/build-ac.mjs && node tokens/build-as.mjs",
|
|
70
|
+
"tokens:check": "node tokens/build-ac.mjs --check && node tokens/build-as.mjs --check && node tokens/check-contrast.mjs",
|
|
66
71
|
"build:discovery": "./scripts-run src/scripts/build_discovery_manifest --write --strict",
|
|
67
72
|
"build:mcp-manifest": "./scripts-run src/scripts/build_mcp_registry_manifest --write --strict",
|
|
68
|
-
"build": "
|
|
73
|
+
"build:mcp-catalog": "./scripts-run src/scripts/build_mcp_catalog --write --strict",
|
|
74
|
+
"build": "npm run build:cli && npm run build:install-bundle && npm run build:hooks && npm run build:mcp-bundle && npm run build:ui",
|
|
69
75
|
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.scripts.json",
|
|
70
76
|
"lint:ts": "eslint 'src/**/*.ts'",
|
|
71
77
|
"test:ts": "vitest run",
|
|
78
|
+
"lint:publint": "publint",
|
|
72
79
|
"prepack": "npm run build && npm run build:discovery && npm run build:mcp-manifest && node src/scripts/prepack-check.mjs",
|
|
73
80
|
"prepublishOnly": "./scripts-run src/scripts/check_release_includes_discovery",
|
|
74
81
|
"prepare": "[ -d .git ] && bash src/scripts/install-hooks.sh || true"
|
|
@@ -89,12 +96,14 @@
|
|
|
89
96
|
"eslint": "^9.39.4",
|
|
90
97
|
"happy-dom": "^20.9.0",
|
|
91
98
|
"js-tiktoken": "^1.0.21",
|
|
99
|
+
"publint": "^0.3.22",
|
|
100
|
+
"tsx": "^4.22.3",
|
|
92
101
|
"typescript": "^5.9.3",
|
|
93
102
|
"vite": "^5.4.21",
|
|
94
103
|
"vitest": "^2.1.9"
|
|
95
104
|
},
|
|
96
105
|
"dependencies": {
|
|
97
|
-
"@fastify/static": "^
|
|
106
|
+
"@fastify/static": "^10.1.2",
|
|
98
107
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
99
108
|
"@preact/signals": "^2.9.0",
|
|
100
109
|
"commander": "^12.1.0",
|
|
@@ -103,9 +112,13 @@
|
|
|
103
112
|
"js-yaml": "^4.1.0",
|
|
104
113
|
"open": "^10.2.0",
|
|
105
114
|
"preact": "^10.29.0",
|
|
106
|
-
"
|
|
115
|
+
"tree-sitter-wasms": "0.1.13",
|
|
116
|
+
"web-tree-sitter": "0.24.7",
|
|
107
117
|
"yaml": "^2.9.0",
|
|
108
118
|
"zod": "^3.25.0",
|
|
109
119
|
"zod-to-json-schema": "^3.25.0"
|
|
120
|
+
},
|
|
121
|
+
"overrides": {
|
|
122
|
+
"@hono/node-server": "^2.0.5"
|
|
110
123
|
}
|
|
111
124
|
}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
## Pointers
|
|
20
20
|
|
|
21
21
|
- **Filling out this AGENTS.md** — section templates, capability bullets, multi-agent entry flow, monorepo per-package layout: [`.augment/contexts/contracts/consumer-agents-md-guide.md`](.augment/contexts/contracts/consumer-agents-md-guide.md).
|
|
22
|
-
- **Behavior rules (always active)** —
|
|
22
|
+
- **Behavior rules (always active)** — [`.augment/rules/`](.augment/rules/). Kernel rules are **immutable** — never propose an edit; tighten-only via the override registry.
|
|
23
23
|
- **Skills (on-demand expertise)** — domain skills surfaced by description; invoked when their trigger fires: [`.augment/skills/`](.augment/skills/).
|
|
24
24
|
- **Commands (workflows)** — slash-commands the agent runs end-to-end (`/work`, `/implement-ticket`, `/commit`, `/create-pr`, …): [`.augment/commands/`](.augment/commands/).
|
|
25
25
|
- **Project-specific docs** — your own architecture notes, roadmaps, sessions, contexts: [`agents/`](agents/).
|
|
@@ -21,6 +21,10 @@
|
|
|
21
21
|
* (same PII-exclusion-by-construction shape as consulted).
|
|
22
22
|
* "outcomes": ["blocked", "verification_failed", ...] # optional
|
|
23
23
|
* "tokens_estimate": {"consulted_load": <int>} # optional
|
|
24
|
+
* "cross_source": [{"id": "d1", "type": "text-image", "asked": true}] # optional
|
|
25
|
+
* (road-to-feedback-9.2.0-followups 1.4): per-task ask-rate facet
|
|
26
|
+
* for the cross-source-consistency rule. Structural only — id +
|
|
27
|
+
* a closed type enum + a bool, no free-form fields.
|
|
24
28
|
* }
|
|
25
29
|
*/
|
|
26
30
|
import * as fs from 'node:fs';
|
|
@@ -55,6 +59,18 @@ export const ALLOWED_OUTCOMES = [
|
|
|
55
59
|
] as const;
|
|
56
60
|
export const MAX_OUTCOMES_PER_EVENT = ALLOWED_OUTCOMES.length;
|
|
57
61
|
|
|
62
|
+
// cross_source facet (road-to-feedback-9.2.0-followups 1.4) — the
|
|
63
|
+
// cross-source-consistency rule's discrepancy taxonomy (a)-(d) from
|
|
64
|
+
// src/rules/cross-source-consistency.md.
|
|
65
|
+
export const ALLOWED_CROSS_SOURCE_TYPES = [
|
|
66
|
+
'text-image',
|
|
67
|
+
'silent-needed',
|
|
68
|
+
'spec-code',
|
|
69
|
+
'intra-ticket',
|
|
70
|
+
] as const;
|
|
71
|
+
export const MAX_CROSS_SOURCE_PER_EVENT = 32;
|
|
72
|
+
const _CROSS_SOURCE_KEYS = ['asked', 'id', 'type'] as const;
|
|
73
|
+
|
|
58
74
|
// Phase 5 redaction validator — keep id fields from leaking paths,
|
|
59
75
|
// free-text, or filenames.
|
|
60
76
|
const _FORBIDDEN_ID_CHARS = ['/', '\\', '\n', '\r', '\t'] as const;
|
|
@@ -125,6 +141,13 @@ export function check_id_redaction(label: string, value: unknown): void {
|
|
|
125
141
|
}
|
|
126
142
|
}
|
|
127
143
|
|
|
144
|
+
/** One surfaced cross-source discrepancy — structural only, no free text. */
|
|
145
|
+
export interface CrossSourceEntry {
|
|
146
|
+
id: string;
|
|
147
|
+
type: string;
|
|
148
|
+
asked: boolean;
|
|
149
|
+
}
|
|
150
|
+
|
|
128
151
|
export interface EngagementEventInit {
|
|
129
152
|
ts: string;
|
|
130
153
|
task_id: string;
|
|
@@ -134,6 +157,7 @@ export interface EngagementEventInit {
|
|
|
134
157
|
loaded?: Record<string, string[]> | null;
|
|
135
158
|
outcomes?: string[] | null;
|
|
136
159
|
tokens_estimate?: Record<string, number> | null;
|
|
160
|
+
cross_source?: CrossSourceEntry[] | null;
|
|
137
161
|
schema_version?: number;
|
|
138
162
|
}
|
|
139
163
|
|
|
@@ -146,6 +170,7 @@ export class EngagementEvent {
|
|
|
146
170
|
loaded: Record<string, string[]> | null;
|
|
147
171
|
outcomes: string[] | null;
|
|
148
172
|
tokens_estimate: Record<string, number> | null;
|
|
173
|
+
cross_source: CrossSourceEntry[] | null;
|
|
149
174
|
schema_version: number;
|
|
150
175
|
|
|
151
176
|
constructor(init: EngagementEventInit) {
|
|
@@ -157,6 +182,7 @@ export class EngagementEvent {
|
|
|
157
182
|
this.loaded = init.loaded ?? null;
|
|
158
183
|
this.outcomes = init.outcomes ?? null;
|
|
159
184
|
this.tokens_estimate = init.tokens_estimate ?? null;
|
|
185
|
+
this.cross_source = init.cross_source ?? null;
|
|
160
186
|
this.schema_version = init.schema_version ?? SCHEMA_VERSION;
|
|
161
187
|
}
|
|
162
188
|
|
|
@@ -195,6 +221,9 @@ export class EngagementEvent {
|
|
|
195
221
|
if (this.outcomes !== null) {
|
|
196
222
|
_validate_outcomes(this.outcomes);
|
|
197
223
|
}
|
|
224
|
+
if (this.cross_source !== null) {
|
|
225
|
+
_validate_cross_source(this.cross_source);
|
|
226
|
+
}
|
|
198
227
|
if (this.tokens_estimate !== null) {
|
|
199
228
|
if (!_isPlainObject(this.tokens_estimate)) {
|
|
200
229
|
throw new EngagementSchemaError(
|
|
@@ -236,6 +265,13 @@ export class EngagementEvent {
|
|
|
236
265
|
if (this.outcomes && this.outcomes.length > 0) {
|
|
237
266
|
out['outcomes'] = [...this.outcomes];
|
|
238
267
|
}
|
|
268
|
+
if (this.cross_source && this.cross_source.length > 0) {
|
|
269
|
+
out['cross_source'] = this.cross_source.map((e) => ({
|
|
270
|
+
id: e.id,
|
|
271
|
+
type: e.type,
|
|
272
|
+
asked: e.asked,
|
|
273
|
+
}));
|
|
274
|
+
}
|
|
239
275
|
if (this.tokens_estimate && Object.keys(this.tokens_estimate).length > 0) {
|
|
240
276
|
out['tokens_estimate'] = { ...this.tokens_estimate };
|
|
241
277
|
}
|
|
@@ -317,6 +353,46 @@ function _validate_outcomes(payload: unknown): void {
|
|
|
317
353
|
}
|
|
318
354
|
}
|
|
319
355
|
|
|
356
|
+
function _validate_cross_source(payload: unknown): void {
|
|
357
|
+
if (!Array.isArray(payload)) {
|
|
358
|
+
throw new EngagementSchemaError('cross_source must be a list of dict or None');
|
|
359
|
+
}
|
|
360
|
+
if (payload.length > MAX_CROSS_SOURCE_PER_EVENT) {
|
|
361
|
+
throw new EngagementSchemaError(
|
|
362
|
+
`cross_source exceeds ${MAX_CROSS_SOURCE_PER_EVENT} entries`,
|
|
363
|
+
);
|
|
364
|
+
}
|
|
365
|
+
for (const entry of payload) {
|
|
366
|
+
if (!_isPlainObject(entry)) {
|
|
367
|
+
throw new EngagementSchemaError('cross_source entries must be dict[str, ...]');
|
|
368
|
+
}
|
|
369
|
+
const keys = Object.keys(entry);
|
|
370
|
+
const extra = keys.filter((k) => !(_CROSS_SOURCE_KEYS as readonly string[]).includes(k));
|
|
371
|
+
if (extra.length > 0) {
|
|
372
|
+
throw new EngagementSchemaError(
|
|
373
|
+
`cross_source entry has unexpected key(s): ${extra.sort().join(', ')}; `
|
|
374
|
+
+ `allowed keys: ${_CROSS_SOURCE_KEYS.join(', ')}`,
|
|
375
|
+
);
|
|
376
|
+
}
|
|
377
|
+
for (const required of _CROSS_SOURCE_KEYS) {
|
|
378
|
+
if (!(required in entry)) {
|
|
379
|
+
throw new EngagementSchemaError(`cross_source entry missing required key '${required}'`);
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
check_id_redaction('cross_source.id', entry['id']);
|
|
383
|
+
const type_val = entry['type'];
|
|
384
|
+
if (typeof type_val !== 'string' || !(ALLOWED_CROSS_SOURCE_TYPES as readonly string[]).includes(type_val)) {
|
|
385
|
+
throw new EngagementSchemaError(
|
|
386
|
+
`cross_source.type must be one of ${_reprTuple(ALLOWED_CROSS_SOURCE_TYPES)}, `
|
|
387
|
+
+ `got ${_reprScalar(type_val)}`,
|
|
388
|
+
);
|
|
389
|
+
}
|
|
390
|
+
if (typeof entry['asked'] !== 'boolean') {
|
|
391
|
+
throw new EngagementSchemaError('cross_source.asked must be a bool');
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
|
|
320
396
|
export function parse_event(line: string): EngagementEvent {
|
|
321
397
|
if (typeof line !== 'string' || !line.trim()) {
|
|
322
398
|
throw new EngagementSchemaError('line must be a non-empty JSONL record');
|
|
@@ -342,6 +418,7 @@ export function parse_event(line: string): EngagementEvent {
|
|
|
342
418
|
: _orEmptyDict(r['loaded']),
|
|
343
419
|
outcomes: (r['outcomes'] as string[] | null | undefined) ?? null,
|
|
344
420
|
tokens_estimate: (r['tokens_estimate'] as Record<string, number> | null | undefined) ?? null,
|
|
421
|
+
cross_source: (r['cross_source'] as CrossSourceEntry[] | null | undefined) ?? null,
|
|
345
422
|
schema_version: r['schema_version'] === undefined
|
|
346
423
|
? SCHEMA_VERSION
|
|
347
424
|
: (r['schema_version'] as number),
|
|
@@ -21,6 +21,7 @@ import * as path from 'node:path';
|
|
|
21
21
|
import { record_event } from './telemetry/boundary.js';
|
|
22
22
|
import {
|
|
23
23
|
ALLOWED_OUTCOMES,
|
|
24
|
+
type CrossSourceEntry,
|
|
24
25
|
EngagementEvent,
|
|
25
26
|
EngagementSchemaError,
|
|
26
27
|
now_utc_iso,
|
|
@@ -58,6 +59,30 @@ function _reprStr(s: string): string {
|
|
|
58
59
|
return `'${s}'`;
|
|
59
60
|
}
|
|
60
61
|
|
|
62
|
+
/** Turn `["d1:text-image:ask", ...]` into cross_source entries. Unknown
|
|
63
|
+
* `type` values are left to schema validation (consistent with how
|
|
64
|
+
* `_parse_kv_list` leaves unknown artefact kinds to the schema); only
|
|
65
|
+
* the CLI-only `id:type:ask|warn` shape is checked here. */
|
|
66
|
+
function _parse_cross_source_list(values: string[]): CrossSourceEntry[] {
|
|
67
|
+
const out: CrossSourceEntry[] = [];
|
|
68
|
+
for (const raw of values) {
|
|
69
|
+
const parts = raw.split(':');
|
|
70
|
+
if (parts.length !== 3 || !parts[0] || !parts[1] || !parts[2]) {
|
|
71
|
+
throw new SystemExitError(
|
|
72
|
+
`❌ --cross-source must be 'id:type:ask|warn', got ${_reprStr(raw)}`,
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
const [id, type, verdict] = parts as [string, string, string];
|
|
76
|
+
if (verdict !== 'ask' && verdict !== 'warn') {
|
|
77
|
+
throw new SystemExitError(
|
|
78
|
+
`❌ --cross-source verdict must be 'ask' or 'warn', got ${_reprStr(verdict)}`,
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
out.push({ id, type, asked: verdict === 'ask' });
|
|
82
|
+
}
|
|
83
|
+
return out;
|
|
84
|
+
}
|
|
85
|
+
|
|
61
86
|
interface RecordArgs {
|
|
62
87
|
task_id: string;
|
|
63
88
|
boundary: string;
|
|
@@ -65,6 +90,7 @@ interface RecordArgs {
|
|
|
65
90
|
applied: string[] | null;
|
|
66
91
|
loaded: string[] | null;
|
|
67
92
|
outcome: string[] | null;
|
|
93
|
+
cross_source: string[] | null;
|
|
68
94
|
ts: string;
|
|
69
95
|
payload_file: string | null;
|
|
70
96
|
stdin: boolean;
|
|
@@ -81,6 +107,9 @@ function _build_event_from_args(args: RecordArgs): EngagementEvent {
|
|
|
81
107
|
applied: _parse_kv_list(args.applied ?? []),
|
|
82
108
|
loaded: args.loaded && args.loaded.length > 0 ? _parse_kv_list(args.loaded) : null,
|
|
83
109
|
outcomes: args.outcome && args.outcome.length > 0 ? [...args.outcome] : null,
|
|
110
|
+
cross_source: args.cross_source && args.cross_source.length > 0
|
|
111
|
+
? _parse_cross_source_list(args.cross_source)
|
|
112
|
+
: null,
|
|
84
113
|
});
|
|
85
114
|
}
|
|
86
115
|
|
|
@@ -106,6 +135,7 @@ function _build_event_from_payload(raw: string): EngagementEvent {
|
|
|
106
135
|
loaded: d['loaded'] === undefined || d['loaded'] === null ? null : _orEmpty(d['loaded']),
|
|
107
136
|
outcomes: (d['outcomes'] as string[] | null | undefined) ?? null,
|
|
108
137
|
tokens_estimate: (d['tokens_estimate'] as Record<string, number> | null | undefined) ?? null,
|
|
138
|
+
cross_source: (d['cross_source'] as CrossSourceEntry[] | null | undefined) ?? null,
|
|
109
139
|
});
|
|
110
140
|
}
|
|
111
141
|
|
|
@@ -126,6 +156,7 @@ function _parseArgs(argv: string[]): RecordArgs {
|
|
|
126
156
|
applied: null,
|
|
127
157
|
loaded: null,
|
|
128
158
|
outcome: null,
|
|
159
|
+
cross_source: null,
|
|
129
160
|
ts: '',
|
|
130
161
|
payload_file: null,
|
|
131
162
|
stdin: false,
|
|
@@ -170,7 +201,8 @@ function _parseArgs(argv: string[]): RecordArgs {
|
|
|
170
201
|
);
|
|
171
202
|
}
|
|
172
203
|
(a.outcome ??= []).push(v);
|
|
173
|
-
} else if (tok === '--
|
|
204
|
+
} else if (tok === '--cross-source') (a.cross_source ??= []).push(next());
|
|
205
|
+
else if (tok === '--ts') a.ts = next();
|
|
174
206
|
else if (tok === '--payload-file') a.payload_file = next();
|
|
175
207
|
else if (tok === '--stdin') a.stdin = true;
|
|
176
208
|
else if (tok === '--settings') a.settings = next();
|
|
@@ -40,18 +40,25 @@ profile:
|
|
|
40
40
|
# trees (.claude/ .cursor/ .windsurf/) or only the active profile + packs'
|
|
41
41
|
# artefacts. See docs/decisions/ADR-040 and docs/contracts/capability-packs.md.
|
|
42
42
|
#
|
|
43
|
-
#
|
|
44
|
-
#
|
|
45
|
-
#
|
|
46
|
-
#
|
|
47
|
-
#
|
|
43
|
+
# scoped = (DEFAULT for new installs — road-to-credible-install Phase 2,
|
|
44
|
+
# 2026-07-27) project only the active profile's `packs` unioned
|
|
45
|
+
# with the runtime.active_packs overlay, expanded over the
|
|
46
|
+
# `requires` graph. With the default `profile.id: developer`
|
|
47
|
+
# this ships the engineering surface only; the full catalog is
|
|
48
|
+
# one explicit opt-in away (`legacy-all` below, or
|
|
49
|
+
# `agent-config use --profile=<id>` / packs overlay).
|
|
50
|
+
# legacy-all = project the full surface, exactly as 5.x did. EXISTING
|
|
51
|
+
# installs keep their recorded setting on upgrade (this file is
|
|
52
|
+
# never rewritten by `npm update`); a missing key also still
|
|
53
|
+
# means legacy-all, so only fresh installs get the scoped
|
|
54
|
+
# default. See MIGRATION.md for the flip note.
|
|
48
55
|
#
|
|
49
|
-
# Scoping is
|
|
50
|
-
#
|
|
51
|
-
#
|
|
52
|
-
#
|
|
56
|
+
# Scoping is controlled by THIS key alone — never inferred from profile.id.
|
|
57
|
+
# A failed scoped projection restores the full tree. The committed plugin
|
|
58
|
+
# marketplace (.claude-plugin/) and the Augment tree (.augment/) always
|
|
59
|
+
# project the full set.
|
|
53
60
|
projection:
|
|
54
|
-
mode:
|
|
61
|
+
mode: scoped
|
|
55
62
|
# --- Consumer-scoped RULE projection (road-to-request-scoped-rule-load P1,
|
|
56
63
|
# opt-in) ---
|
|
57
64
|
# Workspace scope for the RULE layer only (independent of `mode` above,
|
|
@@ -214,6 +221,14 @@ personal:
|
|
|
214
221
|
# false = silently investigate, only report the conclusion
|
|
215
222
|
play_by_play: false
|
|
216
223
|
|
|
224
|
+
# Session canary — the name the agent addresses you with at the start of
|
|
225
|
+
# every new task (e.g. "Alex"). Like a canary in a coal mine: when the
|
|
226
|
+
# greeting silently disappears, the context window is degrading and it is
|
|
227
|
+
# time for a fresh conversation. Also keeps the reply-close markers alive
|
|
228
|
+
# (ONE end-summary; PR URL as the literal last line).
|
|
229
|
+
# Empty = feature off. See rules/session-canary.md.
|
|
230
|
+
canary_name: ""
|
|
231
|
+
|
|
217
232
|
# Prefix PR comment replies with a bot icon 🤖 (true, false)
|
|
218
233
|
# Personal preference — each developer decides for themselves.
|
|
219
234
|
pr_comment_bot_icon: false
|
|
@@ -546,6 +561,39 @@ consistency:
|
|
|
546
561
|
# reading of whichever source it happened to read).
|
|
547
562
|
cross_source: "on"
|
|
548
563
|
|
|
564
|
+
# --- Documentation screenshots ---
|
|
565
|
+
#
|
|
566
|
+
# When the agent creates screenshots for documentation (e.g. generating a docs
|
|
567
|
+
# site) and embeds them, sensitive data visible on the screenshot MUST be
|
|
568
|
+
# anonymized / pixelated before it ships. Consumed by the `doc-screenshot-hygiene`
|
|
569
|
+
# rule and the `screenshot-hygiene` skill. Automated detection is a helper that
|
|
570
|
+
# flags + pre-redacts — never a clearance; the gate for a data-bearing screenshot
|
|
571
|
+
# is human confirmation (routing into `non-destructive-by-default`, since a
|
|
572
|
+
# shipped screenshot is an irreversible published egress).
|
|
573
|
+
screenshots:
|
|
574
|
+
# Public identity tokens that are SAFE to show unredacted — the maintainer's
|
|
575
|
+
# OWN public handles (e.g. a username shown in an admin panel) plus well-known
|
|
576
|
+
# fake-data tokens. This is NOT a general fake-data dictionary and NOT
|
|
577
|
+
# identity-resolution: everything not on this list is treated as sensitive by
|
|
578
|
+
# default. A public handle co-located with a real name does NOT whitelist the
|
|
579
|
+
# real name. Default: [] (nothing auto-allowed; every identity is human-decided).
|
|
580
|
+
identity_allowlist: []
|
|
581
|
+
|
|
582
|
+
# true | false (default: true)
|
|
583
|
+
# true = terminal / CLI / IDE screenshots are FORBIDDEN (highest leak vector:
|
|
584
|
+
# absolute local paths, env tokens). Use text code blocks with text
|
|
585
|
+
# redaction instead.
|
|
586
|
+
# false = allowed, but still subject to the data-bearing human gate.
|
|
587
|
+
forbid_terminal_capture: true
|
|
588
|
+
|
|
589
|
+
# on | off (default: on)
|
|
590
|
+
# on = a data-bearing screenshot embed is gated behind this-turn human
|
|
591
|
+
# confirmation; uncertain/unresolved regions → redact-or-refuse, never
|
|
592
|
+
# ship-and-hope. Illustrative / no-data screenshots (diagrams, logos,
|
|
593
|
+
# placeholder-only UI) may embed with a stated justification.
|
|
594
|
+
# off = no data-bearing gate (legacy; the anonymization taxonomy still applies).
|
|
595
|
+
data_bearing_gate: "on"
|
|
596
|
+
|
|
549
597
|
code_style:
|
|
550
598
|
# minimal | full (default: minimal)
|
|
551
599
|
#
|
|
@@ -707,9 +755,12 @@ ai_team:
|
|
|
707
755
|
|
|
708
756
|
# Per-day cap on team calls. Team calls count into the EXISTING
|
|
709
757
|
# cli_call_budget openai bucket (~/.event4u/agent-config/cli-calls.json,
|
|
710
|
-
# daily UTC reset) —
|
|
711
|
-
#
|
|
712
|
-
#
|
|
758
|
+
# daily UTC reset) — the counter tracks MACHINE-WIDE spend across ALL
|
|
759
|
+
# subscriptions/profiles on this machine (an `agent-switch` profile
|
|
760
|
+
# switch does NOT get its own counter; the bucket is deliberately one
|
|
761
|
+
# per machine, never parallel counts). This key is the team-side
|
|
762
|
+
# ceiling read against that shared bucket. 0 = block all team calls;
|
|
763
|
+
# raise if you review heavily.
|
|
713
764
|
max_calls_per_day: 50
|
|
714
765
|
|
|
715
766
|
# Suppress the one-line wizard/init recommendation to set up the codex
|
|
@@ -882,6 +933,17 @@ memory:
|
|
|
882
933
|
# on = inject the compact index (spotlighted as DATA).
|
|
883
934
|
session_index: "off"
|
|
884
935
|
|
|
936
|
+
# session_end learning-sidecar aggregation (road-to-reachable-code-memory
|
|
937
|
+
# Phase 4). When true, the session_end hook aggregates
|
|
938
|
+
# agents/memory/intake/*.jsonl through the learning sidecar (30-day decay,
|
|
939
|
+
# ≥2-origin corroboration) into the gitignored .agent-learning.json +
|
|
940
|
+
# LESSONS.md and emits the one-line memory-visibility marker. Local-only,
|
|
941
|
+
# budget-capped (2 s), fail-open; promotion into curated memory stays
|
|
942
|
+
# human via /memory:propose. SHIPS OFF (council 2026-07-27): the default
|
|
943
|
+
# flip is proposed only after the 30-day dogfood shows non-trivial signal
|
|
944
|
+
# AND session-end p95 < 2 s.
|
|
945
|
+
learn_on_session_end: false
|
|
946
|
+
|
|
885
947
|
# --- Knowledge cards: global cross-project sharing (ADR-100) ---
|
|
886
948
|
#
|
|
887
949
|
# Structure-grounding v2. Promote *expensive* (remote) knowledge cards from
|
|
@@ -1007,6 +1069,25 @@ hooks:
|
|
|
1007
1069
|
design_slop:
|
|
1008
1070
|
enabled: false
|
|
1009
1071
|
|
|
1072
|
+
# PreToolUse code-graph nudge (ADR-124 Phase 4). Default-OFF. When enabled
|
|
1073
|
+
# AND a native code-graph engine has built a cache (or the repo ships a
|
|
1074
|
+
# graph.json / SCIP index), WARNS once per session (exit 2, never blocks) as
|
|
1075
|
+
# the agent is about to Grep/Glob or Read a source file: query the graph
|
|
1076
|
+
# first for "who calls / where used / impact" questions (or rebuild if the
|
|
1077
|
+
# index is stale, or build one if absent). Source G's strict block-first-read
|
|
1078
|
+
# mode is deliberately un-ported. Build the cache with
|
|
1079
|
+
# `agent-config code-graph build`.
|
|
1080
|
+
#
|
|
1081
|
+
# DEPRECATED (honest null, 2026-07-28): the pre-registered 2-arm retrieval
|
|
1082
|
+
# benchmark measured the native graph at recall 0.365 vs grep 0.797 on
|
|
1083
|
+
# graph-shaped questions across 3 real repos (internal/bench/reports/
|
|
1084
|
+
# code-graph-vs-grep.md; claim code-graph-retrieval-null). `enabled: false`
|
|
1085
|
+
# is permanent; deprecation notice lands at the next major, removal the
|
|
1086
|
+
# major after — unless external evidence (a consumer case the graph answers
|
|
1087
|
+
# and grep cannot) appears first.
|
|
1088
|
+
code_graph:
|
|
1089
|
+
enabled: false
|
|
1090
|
+
|
|
1010
1091
|
# --- Decision engine ---
|
|
1011
1092
|
#
|
|
1012
1093
|
# Controllable gates layered over the observability surface. Absent
|