@event4u/agent-config 9.7.0 → 9.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +314 -190
- package/CONTRIBUTING.md +23 -7
- package/MIGRATION.md +20 -0
- package/README.md +57 -11
- package/dist/agent-src/commands/agents/audit.md +1 -1
- package/dist/agent-src/commands/agents/optimize.md +2 -2
- package/dist/agent-src/commands/agents/user.md +1 -1
- package/dist/agent-src/commands/agents.md +1 -1
- package/dist/agent-src/commands/check-current-md.md +3 -3
- package/dist/agent-src/commands/commit/in-chunks.md +8 -0
- package/dist/agent-src/commands/commit.md +17 -0
- package/dist/agent-src/commands/fix/portability.md +2 -2
- package/dist/agent-src/commands/fix/pr-comments-loop.md +136 -0
- package/dist/agent-src/commands/fix/refs.md +2 -2
- package/dist/agent-src/commands/fix/route.md +4 -3
- package/dist/agent-src/commands/fix.md +9 -6
- package/dist/agent-src/commands/ghostwriter.md +1 -1
- package/dist/agent-src/commands/image.md +1 -1
- package/dist/agent-src/commands/optimize/augmentignore.md +1 -1
- package/dist/agent-src/commands/optimize/skills.md +2 -2
- package/dist/agent-src/commands/post-as.md +1 -1
- package/dist/agent-src/commands/pr/create.md +4 -0
- package/dist/agent-src/commands/research.md +1 -1
- package/dist/agent-src/commands/roadmap/ai-council.md +1 -1
- package/dist/agent-src/commands/security-audit-config.md +1 -1
- package/dist/agent-src/commands/team/delegate.md +4 -0
- package/dist/agent-src/commands/video.md +1 -1
- package/dist/agent-src/contexts/authority/kernel-rule-edits.md +1 -1
- package/dist/agent-src/contexts/contracts/emergency-triage-block.md +2 -2
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +48 -2
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +10 -0
- package/dist/agent-src/contexts/execution/subagent-modes-detail.md +109 -8
- package/dist/agent-src/contexts/execution/subagent-response-contract.md +20 -0
- package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +53 -3
- package/dist/agent-src/contexts/override-system.md +75 -5
- package/dist/agent-src/rules/code-provenance.md +112 -0
- package/dist/agent-src/rules/context-hygiene.md +2 -0
- package/dist/agent-src/rules/doc-screenshot-hygiene.md +97 -0
- package/dist/agent-src/rules/domain-safety-pii.md +1 -0
- package/dist/agent-src/rules/external-code-graph-interop.md +13 -3
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +2 -0
- package/dist/agent-src/rules/git-history-discipline.md +2 -0
- package/dist/agent-src/rules/history-discipline.md +80 -0
- package/dist/agent-src/rules/language-and-tone.md +2 -0
- package/dist/agent-src/rules/lethal-trifecta-guard.md +3 -0
- package/dist/agent-src/rules/media-governance-routing.md +2 -0
- package/dist/agent-src/rules/minimal-safe-diff.md +2 -0
- package/dist/agent-src/rules/no-roadmap-references.md +4 -1
- package/dist/agent-src/rules/non-destructive-by-default.md +20 -0
- package/dist/agent-src/rules/onboarding-gate.md +2 -0
- package/dist/agent-src/rules/output-discipline.md +2 -0
- package/dist/agent-src/rules/persona-governance.md +2 -0
- package/dist/agent-src/rules/php-coding.md +1 -0
- package/dist/agent-src/rules/preservation-guard.md +3 -0
- package/dist/agent-src/rules/reviewer-awareness.md +1 -0
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +1 -0
- package/dist/agent-src/rules/roadmap-progress-sync.md +9 -0
- package/dist/agent-src/rules/scale-discipline.md +92 -0
- package/dist/agent-src/rules/secret-vcs-guard.md +106 -0
- package/dist/agent-src/rules/security-sensitive-stop.md +11 -1
- package/dist/agent-src/rules/session-canary.md +77 -0
- package/dist/agent-src/rules/skill-quality.md +2 -0
- package/dist/agent-src/rules/source-confidentiality.md +2 -0
- package/dist/agent-src/rules/source-of-truth.md +2 -0
- package/dist/agent-src/rules/telegraph-speak.md +2 -0
- package/dist/agent-src/rules/token-optimizer-maintenance.md +3 -1
- package/dist/agent-src/rules/tool-safety.md +4 -1
- package/dist/agent-src/rules/untrusted-input-defense.md +10 -0
- package/dist/agent-src/rules/verify-before-complete.md +2 -0
- package/dist/agent-src/skills/adr-create/SKILL.md +17 -1
- package/dist/agent-src/skills/agent-security-review/SKILL.md +1 -1
- package/dist/agent-src/skills/code-intelligence/SKILL.md +97 -0
- package/dist/agent-src/skills/condense-memory/SKILL.md +1 -1
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +0 -3
- package/dist/agent-src/skills/description-assist/SKILL.md +1 -1
- package/dist/agent-src/skills/design-review/SKILL.md +5 -6
- package/dist/agent-src/skills/design-tokens/SKILL.md +0 -1
- package/dist/agent-src/skills/gated-reach/SKILL.md +185 -0
- package/dist/agent-src/skills/gated-reach/evals/triggers.json +72 -0
- package/dist/agent-src/skills/history-design/SKILL.md +101 -0
- package/dist/agent-src/skills/history-design/evals/triggers.json +17 -0
- package/dist/agent-src/skills/humanizer/SKILL.md +3 -3
- package/dist/agent-src/skills/image-analyser/SKILL.md +14 -12
- package/dist/agent-src/skills/image-editing/SKILL.md +2 -1
- package/dist/agent-src/skills/image-generation/SKILL.md +2 -1
- package/dist/agent-src/skills/image-provider-routing/SKILL.md +2 -2
- package/dist/agent-src/skills/launch-readiness/SKILL.md +1 -1
- package/dist/agent-src/skills/license-compliance-audit/SKILL.md +161 -0
- package/dist/agent-src/skills/license-compliance-audit/evals/triggers.json +52 -0
- package/dist/agent-src/skills/license-compliance-borrow-check/SKILL.md +145 -0
- package/dist/agent-src/skills/license-compliance-borrow-check/evals/triggers.json +52 -0
- package/dist/agent-src/skills/license-compliance-credits/SKILL.md +97 -0
- package/dist/agent-src/skills/license-compliance-credits/evals/triggers.json +52 -0
- package/dist/agent-src/skills/md-language-check/SKILL.md +1 -1
- package/dist/agent-src/skills/override-management/SKILL.md +1 -1
- package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +7 -7
- package/dist/agent-src/skills/project-analysis-core/SKILL.md +1 -1
- package/dist/agent-src/skills/prompt-engineering-image/SKILL.md +3 -2
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +2 -2
- package/dist/agent-src/skills/readme-writing/SKILL.md +6 -1
- package/dist/agent-src/skills/recursive-verification/SKILL.md +6 -0
- package/dist/agent-src/skills/refine-ticket/SKILL.md +3 -3
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +4 -0
- package/dist/agent-src/skills/rtk-output-filtering/SKILL.md +31 -12
- package/dist/agent-src/skills/rule-refactor/SKILL.md +3 -3
- package/dist/agent-src/skills/schema-review/SKILL.md +92 -0
- package/dist/agent-src/skills/schema-review/evals/triggers.json +17 -0
- package/dist/agent-src/skills/screenshot-hygiene/SKILL.md +171 -0
- package/dist/agent-src/skills/secrets-management/SKILL.md +43 -1
- package/dist/agent-src/skills/security-audit/SKILL.md +1 -1
- package/dist/agent-src/skills/security-maturity-assessment/SKILL.md +1 -1
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +3 -3
- package/dist/agent-src/skills/skill-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/source-discovery/SKILL.md +5 -5
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +45 -85
- package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +5 -4
- package/dist/agent-src/skills/subagent-orchestration/prompts/adversarial-verification-council.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-and-judge-two-stage.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-and-judge.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-competitively.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-parallel.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-steps.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-worktrees.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/judge-with-debate.md +29 -0
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +2 -2
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +2 -3
- package/dist/agent-src/skills/token-optimizer/SKILL.md +4 -4
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +4 -0
- package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +2 -3
- package/dist/agent-src/templates/AGENTS.md +1 -1
- package/dist/agent-src/templates/agents/.gitattributes.fragment +25 -6
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/command.md +3 -3
- package/dist/agent-src/templates/github-workflows/secret-scan.yml +65 -0
- package/dist/agent-src/templates/persona.md +2 -2
- package/dist/agent-src/templates/rule.md +2 -2
- package/dist/agent-src/templates/scripts/telemetry/engagement.ts +77 -0
- package/dist/agent-src/templates/scripts/telemetry_record.ts +33 -1
- package/dist/cli/commands/doctorShell.js +20 -0
- package/dist/cli/commands/doctorShell.js.map +1 -1
- package/dist/cli/commands/rtkDetect.js +58 -0
- package/dist/cli/commands/rtkDetect.js.map +1 -0
- package/dist/cli/configRoot.js +112 -0
- package/dist/cli/configRoot.js.map +1 -0
- package/dist/cli/configRoot.test.js +97 -0
- package/dist/cli/configRoot.test.js.map +1 -0
- package/dist/cli/firstRunNotice.js +70 -0
- package/dist/cli/firstRunNotice.js.map +1 -0
- package/dist/cli/help.js +4 -1
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/main.js +54 -5
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/registry.js +8 -1
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +502 -101
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +6 -4
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +95 -8
- package/dist/discovery/trust-report.md +11 -11
- package/dist/discovery/workspaces.json +36 -7
- package/dist/hooks/dispatch.js +19475 -0
- package/dist/install/agentSwitchDetection.js +75 -0
- package/dist/install/agentSwitchDetection.js.map +1 -0
- package/dist/install/agentSwitchProfile.js +117 -0
- package/dist/install/agentSwitchProfile.js.map +1 -0
- package/dist/install/atomic.js +1 -1
- package/dist/install/detect.js +1 -1
- package/dist/install/install.mjs +791 -486
- package/dist/install/rtkDetection.js +213 -0
- package/dist/install/rtkDetection.js.map +1 -0
- package/dist/install/rule_scope.js +2 -1
- package/dist/install/rule_scope.js.map +1 -1
- package/dist/install/types.js +2 -2
- package/dist/install/wizard-plan.js +1 -1
- package/dist/install/wizardDismissals.js +58 -0
- package/dist/install/wizardDismissals.js.map +1 -0
- package/dist/mcp/awesome-mcp-servers.row.md +1 -1
- package/dist/mcp/mcp-cloudflare-catalogue.json +1 -1
- package/dist/mcp/registry-manifest.json +15 -4
- package/dist/mcp/server.json +20 -0
- package/dist/mcp/server.mjs +44292 -0
- package/dist/router.json +1 -1
- package/dist/scripts/condense.js +14 -7
- package/dist/scripts/condense.js.map +1 -1
- package/dist/server/app.js +12 -0
- package/dist/server/app.js.map +1 -1
- package/dist/server/io/sharedWriteCheck.js +101 -0
- package/dist/server/io/sharedWriteCheck.js.map +1 -0
- package/dist/server/routes/ping.js +32 -0
- package/dist/server/routes/ping.js.map +1 -1
- package/dist/server/routes/settings.js +21 -4
- package/dist/server/routes/settings.js.map +1 -1
- package/dist/server/routes/userMd.js +21 -4
- package/dist/server/routes/userMd.js.map +1 -1
- package/dist/server/routes/wizard.js +68 -25
- package/dist/server/routes/wizard.js.map +1 -1
- package/dist/server/schemas/settings.js +12 -2
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/server/serverInfo.js +6 -2
- package/dist/server/serverInfo.js.map +1 -1
- package/dist/server/token.js +11 -4
- package/dist/server/token.js.map +1 -1
- package/dist/server/writeRoot.js +15 -1
- package/dist/server/writeRoot.js.map +1 -1
- package/dist/shared/capabilities.js +33 -0
- package/dist/shared/capabilities.js.map +1 -0
- package/dist/shared/capabilities.test.js +39 -0
- package/dist/shared/capabilities.test.js.map +1 -0
- package/dist/ui/assets/index-BpSQt5vm.js +40 -0
- package/dist/ui/assets/index-BpSQt5vm.js.map +1 -0
- package/dist/ui/assets/index-jSfMW8_t.css +1 -0
- package/dist/ui/index.html +15 -6
- package/docs/MIGRATION.md +16 -0
- package/docs/guidelines/component-oriented-and-oop-development.md +4 -2
- package/package.json +22 -9
- package/src/agent-src/templates/AGENTS.md +1 -1
- package/src/agent-src/templates/scripts/telemetry/engagement.ts +77 -0
- package/src/agent-src/templates/scripts/telemetry_record.ts +33 -1
- package/src/config/agent-settings.template.yml +94 -13
- package/src/config/discovery/packs.yml +22 -0
- package/src/config/discovery/workspaces.yml +1 -1
- package/src/config/evaluator-budgets.json +47 -0
- package/src/config/hook-latency-budget.json +20 -0
- package/src/config/reach-channels.yml +217 -0
- package/src/config/reach-prescriptions-intake.yml +200 -0
- package/src/install/agentSwitchDetection.ts +90 -0
- package/src/install/agentSwitchProfile.ts +131 -0
- package/src/install/atomic.ts +1 -1
- package/src/install/detect.ts +1 -1
- package/src/install/rtkDetection.ts +274 -0
- package/src/install/rule_scope.ts +9 -2
- package/src/install/types.ts +2 -2
- package/src/install/wizard-plan.ts +1 -1
- package/src/install/wizardDismissals.ts +60 -0
- package/src/scripts/_cli/cmd_doctor.ts +62 -1
- package/src/scripts/_cli/cmd_memory_get.ts +197 -0
- package/src/scripts/_cli/cmd_refresh.ts +30 -0
- package/src/scripts/_dispatch.bash +96 -0
- package/src/scripts/_lib/auto_dispatch.corpus.test.ts +64 -1
- package/src/scripts/_lib/auto_dispatch.ts +76 -0
- package/src/scripts/_lib/detect_target_license.ts +714 -0
- package/src/scripts/_lib/exec_evidence.ts +251 -0
- package/src/scripts/_lib/fixtures/secret-detector/negatives.txt +15 -0
- package/src/scripts/_lib/fixtures/secret-detector/positives.txt +15 -0
- package/src/scripts/_lib/install_drift.ts +194 -0
- package/src/scripts/_lib/kernel_rules.ts +46 -0
- package/src/scripts/_lib/memory_fts_index.ts +390 -0
- package/src/scripts/_lib/orchestration_record.ts +91 -2
- package/src/scripts/_lib/persistence/adapter_raw_sql.ts +443 -0
- package/src/scripts/_lib/persistence/detect_audit_coverage.ts +423 -0
- package/src/scripts/_lib/persistence/detect_bounded_reads.ts +154 -0
- package/src/scripts/_lib/persistence/detect_index_parity.ts +576 -0
- package/src/scripts/_lib/persistence/detect_n1_eloquent.ts +226 -0
- package/src/scripts/_lib/persistence/detect_offload.ts +441 -0
- package/src/scripts/_lib/persistence/detect_prisma_growth.ts +74 -0
- package/src/scripts/_lib/persistence/offload_catalog.ts +73 -0
- package/src/scripts/_lib/persistence/types.ts +109 -0
- package/src/scripts/_lib/reddit_thread_parse.ts +598 -0
- package/src/scripts/_lib/risk_paths.ts +160 -0
- package/src/scripts/_lib/rtk_allowlist.ts +44 -0
- package/src/scripts/_lib/secret_detector.test.ts +108 -0
- package/src/scripts/_lib/secret_detector.ts +328 -0
- package/src/scripts/_lib/secret_detector_adversarial.test.ts +116 -0
- package/src/scripts/_lib/spawn_env.ts +7 -0
- package/src/scripts/_lib/sqlite_guard.ts +191 -0
- package/src/scripts/_lib/subagent_spawn.ts +53 -0
- package/src/scripts/_lib/tool_probe.ts +359 -0
- package/src/scripts/_lib/worker_budget.ts +107 -0
- package/src/scripts/adr/regenerate_index.ts +81 -6
- package/src/scripts/ai_council/blind_review.ts +0 -0
- package/src/scripts/ai_council/config.ts +12 -6
- package/src/scripts/ai_council/orchestrator.ts +73 -3
- package/src/scripts/ai_team/review_gate.ts +8 -10
- package/src/scripts/ai_team/team_dispatch.ts +48 -0
- package/src/scripts/audit_adr_coverage.ts +33 -0
- package/src/scripts/audit_initial_context.ts +1 -1
- package/src/scripts/bench_cross_source_eval.ts +400 -0
- package/src/scripts/bench_honesty_score.ts +1093 -0
- package/src/scripts/bench_hook_latency.ts +218 -0
- package/src/scripts/build_mcp_catalog.ts +275 -0
- package/src/scripts/build_mcp_registry_manifest.ts +46 -0
- package/src/scripts/build_proof.ts +207 -0
- package/src/scripts/chat_history.ts +8 -5
- package/src/scripts/check_adr_frontmatter.ts +195 -0
- package/src/scripts/check_artefact_count_messaging.ts +4 -0
- package/src/scripts/check_backstop_debt.ts +210 -0
- package/src/scripts/check_bundle_path_leakage.ts +343 -0
- package/src/scripts/check_claims.ts +188 -8
- package/src/scripts/check_comparison.ts +12 -0
- package/src/scripts/check_enforcement_coverage.ts +592 -0
- package/src/scripts/check_evaluator_budgets.ts +99 -0
- package/src/scripts/check_kernel_rule_bundle.ts +16 -12
- package/src/scripts/check_knowledge_sharing.ts +12 -1
- package/src/scripts/check_no_external_sources.ts +2 -2
- package/src/scripts/check_reach_channels.ts +407 -0
- package/src/scripts/check_reach_staleness.ts +364 -0
- package/src/scripts/check_secret_leak.test.ts +47 -0
- package/src/scripts/check_secret_leak.ts +290 -0
- package/src/scripts/check_source_pointer_freshness.ts +28 -3
- package/src/scripts/code_graph/build.ts +0 -0
- package/src/scripts/code_graph/cli.ts +379 -0
- package/src/scripts/code_graph/detect.ts +186 -0
- package/src/scripts/code_graph/extract.ts +386 -0
- package/src/scripts/code_graph/intent.ts +45 -0
- package/src/scripts/code_graph/loader.ts +123 -0
- package/src/scripts/code_graph/query.ts +290 -0
- package/src/scripts/code_graph/sanitize.ts +30 -0
- package/src/scripts/code_graph/sqlite_store.ts +174 -0
- package/src/scripts/code_graph/types.ts +83 -0
- package/src/scripts/code_graph/validate.ts +63 -0
- package/src/scripts/condense.ts +14 -6
- package/src/scripts/context_hygiene_hook.ts +8 -5
- package/src/scripts/council_cli.ts +126 -12
- package/src/scripts/detect_target_license.ts +203 -0
- package/src/scripts/evaluator_umbrella.sh +145 -0
- package/src/scripts/external_sources_denylist.json +8 -4
- package/src/scripts/first_run_gate_hook.ts +9 -5
- package/src/scripts/generate_subagent_floor.ts +194 -0
- package/src/scripts/hermetic-install.sh +3 -3
- package/src/scripts/hook_manifest.yaml +65 -16
- package/src/scripts/hooks/block_kernel_rule_writes.ts +212 -0
- package/src/scripts/hooks/block_no_verify.ts +9 -9
- package/src/scripts/hooks/code_graph_nudge_hook.ts +191 -0
- package/src/scripts/hooks/concern_registry.ts +75 -0
- package/src/scripts/hooks/design_slop_hook.ts +8 -5
- package/src/scripts/hooks/dispatch_entry.ts +37 -0
- package/src/scripts/hooks/dispatch_hook.ts +176 -3
- package/src/scripts/hooks/hook_stdin.ts +42 -0
- package/src/scripts/hooks/rtk_wrap_hook.ts +26 -12
- package/src/scripts/hot_context_hook.ts +7 -6
- package/src/scripts/injection_scan_hook.ts +9 -1
- package/src/scripts/install +6 -6
- package/src/scripts/install-hooks.sh +4 -4
- package/src/scripts/install.sh +5 -4
- package/src/scripts/install.ts +264 -23
- package/src/scripts/iron_law_sha.ts +3 -12
- package/src/scripts/learning_sidecar.ts +0 -0
- package/src/scripts/lint_budget_ownership.ts +89 -0
- package/src/scripts/lint_command_routing.ts +35 -5
- package/src/scripts/lint_command_verbs.ts +42 -9
- package/src/scripts/lint_consumer_internal_refs.ts +211 -0
- package/src/scripts/lint_discovery_vocabulary.ts +2 -0
- package/src/scripts/lint_documented_commands.ts +670 -0
- package/src/scripts/lint_framework_leakage.ts +17 -3
- package/src/scripts/lint_framework_leakage_allowlist.json +32 -0
- package/src/scripts/lint_governed_writes.ts +335 -0
- package/src/scripts/lint_hidden_unicode.ts +6 -0
- package/src/scripts/lint_mcp_registry_manifest.ts +26 -1
- package/src/scripts/lint_memory_tripwire.ts +186 -0
- package/src/scripts/lint_override_kernel_guard.ts +267 -0
- package/src/scripts/lint_persistence.ts +171 -0
- package/src/scripts/lint_pre_migration_refs.ts +106 -0
- package/src/scripts/lint_provenance.ts +547 -0
- package/src/scripts/lint_provenance_vocabulary.ts +437 -0
- package/src/scripts/lint_spawn_payload.ts +283 -0
- package/src/scripts/lint_store_boundary.ts +152 -0
- package/src/scripts/lint_versioned_cache.ts +7 -1
- package/src/scripts/mcp_server/__main__.ts +7 -2
- package/src/scripts/mcp_server/catalog.ts +23 -1
- package/src/scripts/mcp_server/consumer_tool_catalog.json +563 -193
- package/src/scripts/mcp_server/prompts.ts +6 -0
- package/src/scripts/mcp_server/tool_catalog_source.ts +332 -0
- package/src/scripts/mcp_server/tools.ts +56 -5
- package/src/scripts/mcp_telemetry_query.ts +2 -33
- package/src/scripts/mcp_telemetry_store.ts +64 -34
- package/src/scripts/measure_rule_budget.ts +3 -12
- package/src/scripts/memory_learn_hook.ts +126 -0
- package/src/scripts/memory_lookup.ts +0 -0
- package/src/scripts/memory_replay_24.ts +312 -0
- package/src/scripts/memory_report.ts +16 -3
- package/src/scripts/memory_signal.ts +48 -0
- package/src/scripts/memory_status.ts +6 -0
- package/src/scripts/minimal_safe_diff_hook.ts +8 -5
- package/src/scripts/onboarding_gate_hook.ts +8 -5
- package/src/scripts/orchestration_record.ts +16 -0
- package/src/scripts/pr_url_reminder_hook.ts +8 -1
- package/src/scripts/prepack-check.mjs +17 -0
- package/src/scripts/prepack_lifecycle_check.d.mts +8 -0
- package/src/scripts/prepack_lifecycle_check.mjs +82 -0
- package/src/scripts/profile_staleness_hook.ts +8 -7
- package/src/scripts/reach_doctor.ts +1651 -0
- package/src/scripts/release.ts +24 -3
- package/src/scripts/report_install_drift.ts +109 -0
- package/src/scripts/risk_escalation_shadow.ts +160 -0
- package/src/scripts/roadmap_progress_hook.ts +8 -5
- package/src/scripts/schemas/agent-settings.schema.json +23 -0
- package/src/scripts/schemas/license-policy.schema.json +89 -0
- package/src/scripts/schemas/provenance-borrow.schema.json +46 -0
- package/src/scripts/schemas/reach-channels.schema.json +134 -0
- package/src/scripts/schemas/reach-doctor-payload.schema.json +220 -0
- package/src/scripts/schemas/rule.schema.json +20 -0
- package/src/scripts/self_review_gate.test.ts +173 -1
- package/src/scripts/self_review_gate.ts +155 -15
- package/src/scripts/session_canary_hook.ts +182 -0
- package/src/scripts/skill_linter.ts +55 -0
- package/src/scripts/smoke_quickstart.ts +2 -2
- package/src/scripts/surface_probe_hook.ts +8 -7
- package/src/scripts/sync_gitattributes.ts +310 -0
- package/src/scripts/team_review_gate_hook.ts +13 -16
- package/src/scripts/validate_reach_prescriptions.ts +751 -0
- package/src/scripts/verify_before_complete_hook.ts +8 -5
- package/src/scripts/wrapper_freshness_hook.ts +8 -7
- package/src/server/schemas/settings.ts +24 -2
- package/src/shared/capabilities.test.ts +43 -0
- package/src/shared/capabilities.ts +75 -0
- package/src/templates/minimal/agents-overrides-readme.md +20 -0
- package/dist/ui/assets/index-BPFMZWUs.css +0 -1
- package/dist/ui/assets/index-BiEZiZ31.js +0 -40
- package/dist/ui/assets/index-BiEZiZ31.js.map +0 -1
- package/docs/CLAIMS.md +0 -261
- package/docs/DISTRIBUTION_CHECKLIST.md +0 -170
- package/docs/RELEASE_STORY_TEMPLATE.md +0 -37
- package/docs/SKILL_CENSUS.md +0 -352
- package/docs/adrs/cost/0001-hard-stop-hook.md +0 -114
- package/docs/adrs/cost/README.md +0 -9
- package/docs/adrs/memory/0001-consumer-side-snapshot.md +0 -119
- package/docs/adrs/memory/README.md +0 -10
- package/docs/adrs/router/0001-three-tier-routing.md +0 -119
- package/docs/adrs/router/README.md +0 -9
- package/docs/adrs/schema/0001-json-schema-frontmatter.md +0 -102
- package/docs/adrs/schema/README.md +0 -9
- package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +0 -99
- package/docs/adrs/smoke/README.md +0 -9
- package/docs/adrs/telegraph/0001-default-off-until-bench.md +0 -93
- package/docs/adrs/telegraph/README.md +0 -9
- package/docs/announcements/2026-05-non-dev-launch.md +0 -79
- package/docs/announcements/2026-07-honest-cost-sweep-launch.md +0 -84
- package/docs/anti-reskin-gate.md +0 -60
- package/docs/architecture/augment-projection.md +0 -70
- package/docs/architecture/claude-bundle.md +0 -77
- package/docs/architecture/current-onboard-baseline.md +0 -126
- package/docs/architecture/current-safety-behavior.md +0 -137
- package/docs/architecture/multi-tool-projection.md +0 -125
- package/docs/architecture/setup-vs-settings-shared-surface.md +0 -114
- package/docs/architecture/source-projection.md +0 -85
- package/docs/architecture.md +0 -390
- package/docs/archive/CHANGELOG-6.0.0-overview.md +0 -953
- package/docs/archive/CHANGELOG-7.0.0.md +0 -419
- package/docs/archive/CHANGELOG-pre-2.11.0.md +0 -141
- package/docs/archive/CHANGELOG-pre-2.15.0.md +0 -244
- package/docs/archive/CHANGELOG-pre-2.16.0.md +0 -48
- package/docs/archive/CHANGELOG-pre-2.17.0.md +0 -63
- package/docs/archive/CHANGELOG-pre-2.2.0.md +0 -2138
- package/docs/archive/CHANGELOG-pre-2.20.0.md +0 -159
- package/docs/archive/CHANGELOG-pre-2.25.0.md +0 -191
- package/docs/archive/CHANGELOG-pre-2.7.0.md +0 -185
- package/docs/archive/CHANGELOG-pre-3.0.0.md +0 -130
- package/docs/archive/CHANGELOG-pre-3.1.0.md +0 -167
- package/docs/archive/CHANGELOG-pre-3.2.0.md +0 -268
- package/docs/archive/CHANGELOG-pre-4.0.0.md +0 -80
- package/docs/archive/CHANGELOG-pre-4.5.0.md +0 -289
- package/docs/archive/CHANGELOG-pre-5.4.0.md +0 -260
- package/docs/archive/CHANGELOG-pre-5.9.0.md +0 -270
- package/docs/archive/CHANGELOG-pre-6.0.0.md +0 -473
- package/docs/archive/CHANGELOG-pre-7.0.0.md +0 -126
- package/docs/archive/CHANGELOG-pre-8.0.0.md +0 -301
- package/docs/archive/CHANGELOG-pre-8.1.0.md +0 -316
- package/docs/archive/CHANGELOG-pre-8.12.0.md +0 -304
- package/docs/archive/CHANGELOG-pre-8.9.0.md +0 -306
- package/docs/archive/CHANGELOG-pre-9.2.0.md +0 -276
- package/docs/artefact-census.md +0 -71
- package/docs/benchmark.md +0 -648
- package/docs/benchmark.pinned.yml +0 -31
- package/docs/benchmarks.md +0 -85
- package/docs/capability-matrix.md +0 -33
- package/docs/case-studies/_template.md +0 -60
- package/docs/case-studies/frontend-design-positioning.md +0 -86
- package/docs/catalog.md +0 -721
- package/docs/command-flows.md +0 -272
- package/docs/command-naming-audit.md +0 -60
- package/docs/comparison.yaml +0 -45
- package/docs/contracts/CHANGELOG-conventions.md +0 -149
- package/docs/contracts/STABILITY.md +0 -188
- package/docs/contracts/adoption-signal-floor.md +0 -127
- package/docs/contracts/adr-architectural-consensus-mechanism.md +0 -68
- package/docs/contracts/adr-chat-history-split.md +0 -140
- package/docs/contracts/adr-command-suggestion.md +0 -144
- package/docs/contracts/adr-forecast-construction-shape.md +0 -90
- package/docs/contracts/adr-gtm-context-spine.md +0 -116
- package/docs/contracts/adr-implement-ticket-runtime.md +0 -121
- package/docs/contracts/adr-install-user-type-axis.md +0 -107
- package/docs/contracts/adr-layout.md +0 -107
- package/docs/contracts/adr-level-6-productization.md +0 -145
- package/docs/contracts/adr-mcp-runtime.md +0 -128
- package/docs/contracts/adr-product-ui-track.md +0 -381
- package/docs/contracts/adr-prompt-driven-execution.md +0 -186
- package/docs/contracts/adr-settings-sync-engine.md +0 -128
- package/docs/contracts/adr-user-types-axis.md +0 -127
- package/docs/contracts/adr-wing4-context-spine.md +0 -126
- package/docs/contracts/agent-user-schema.md +0 -170
- package/docs/contracts/agents-layout.md +0 -148
- package/docs/contracts/agents-md-tech-stack.md +0 -75
- package/docs/contracts/ai-council-config.md +0 -829
- package/docs/contracts/ai-team-config.md +0 -224
- package/docs/contracts/analysis-memory-loop.md +0 -149
- package/docs/contracts/at-rest-encryption.md +0 -191
- package/docs/contracts/audit-log-v1.md +0 -150
- package/docs/contracts/auto-orchestration-v1.md +0 -70
- package/docs/contracts/benchmark-ab-contract.md +0 -106
- package/docs/contracts/benchmark-corpus-spec.md +0 -125
- package/docs/contracts/benchmark-report-schema.md +0 -113
- package/docs/contracts/branch-protection-policy.md +0 -139
- package/docs/contracts/brand-token-consumption.md +0 -74
- package/docs/contracts/capability-boundary.md +0 -69
- package/docs/contracts/capability-packs.md +0 -217
- package/docs/contracts/ci-cost-budget.md +0 -111
- package/docs/contracts/ci-green-floor.md +0 -141
- package/docs/contracts/command-category-governance.md +0 -84
- package/docs/contracts/command-clusters.md +0 -399
- package/docs/contracts/command-surface-tiers.md +0 -176
- package/docs/contracts/command-taxonomy.md +0 -137
- package/docs/contracts/condensation-default-kill-criterion.md +0 -116
- package/docs/contracts/config-presets.md +0 -144
- package/docs/contracts/conformance.md +0 -84
- package/docs/contracts/consumer-bridge.md +0 -73
- package/docs/contracts/context-paths.md +0 -101
- package/docs/contracts/context-spine.md +0 -179
- package/docs/contracts/cost-dashboard.md +0 -143
- package/docs/contracts/cost-enforcement.md +0 -134
- package/docs/contracts/cost-profile-defaults.md +0 -110
- package/docs/contracts/cost-summary-schema.md +0 -107
- package/docs/contracts/creative-pack-boundary.md +0 -63
- package/docs/contracts/cross-repo-retrieval.md +0 -64
- package/docs/contracts/cross-wing-handoff.md +0 -134
- package/docs/contracts/daily-workspace.md +0 -147
- package/docs/contracts/decision-engine-gates.md +0 -120
- package/docs/contracts/decision-trace-v1.md +0 -177
- package/docs/contracts/design-artifact-lifecycle.md +0 -93
- package/docs/contracts/design-artifact-verification.md +0 -153
- package/docs/contracts/discovery-manifest.md +0 -209
- package/docs/contracts/discovery-manifest.schema.json +0 -254
- package/docs/contracts/evidence-based-pruning.md +0 -102
- package/docs/contracts/explain-modes.md +0 -187
- package/docs/contracts/explain-trace.schema.json +0 -144
- package/docs/contracts/file-ownership-matrix.json +0 -13941
- package/docs/contracts/file-ownership-matrix.md +0 -135
- package/docs/contracts/frontmatter-contract.md +0 -140
- package/docs/contracts/ghostwriter-schema.md +0 -337
- package/docs/contracts/governance-enforcement-projection.md +0 -159
- package/docs/contracts/gui-wizard.md +0 -350
- package/docs/contracts/harness-expectations.md +0 -128
- package/docs/contracts/hook-architecture-v1.md +0 -325
- package/docs/contracts/host-agent-protocol.md +0 -110
- package/docs/contracts/implement-ticket-flow.md +0 -625
- package/docs/contracts/init-telemetry.md +0 -132
- package/docs/contracts/injected-block-authenticity-model.md +0 -66
- package/docs/contracts/install-layout.md +0 -249
- package/docs/contracts/install-scopes.md +0 -82
- package/docs/contracts/installed-tools-lockfile.md +0 -144
- package/docs/contracts/installer-agent-mode.md +0 -137
- package/docs/contracts/iron-law-overrides.txt +0 -26
- package/docs/contracts/kernel-membership.md +0 -339
- package/docs/contracts/linear-ai-rules-inclusion.md +0 -143
- package/docs/contracts/linear-ai-three-layers.md +0 -130
- package/docs/contracts/linter-structural-model.md +0 -181
- package/docs/contracts/load-context-budget-model.md +0 -259
- package/docs/contracts/load-context-schema.md +0 -220
- package/docs/contracts/local-analytics.md +0 -160
- package/docs/contracts/local-knowledge-ingestion.md +0 -96
- package/docs/contracts/local-server-api.md +0 -134
- package/docs/contracts/low-impact-corpus-format.md +0 -95
- package/docs/contracts/mcp-beta-criteria.md +0 -130
- package/docs/contracts/mcp-cloud-scope.md +0 -355
- package/docs/contracts/mcp-discovery-phase-notice.md +0 -60
- package/docs/contracts/mcp-phase-1-scope.md +0 -272
- package/docs/contracts/mcp-registry-manifest.schema.json +0 -129
- package/docs/contracts/mcp-tool-inventory.md +0 -64
- package/docs/contracts/mcp-tool-stub-envelope.md +0 -78
- package/docs/contracts/measurement-baseline.md +0 -103
- package/docs/contracts/memory-visibility-v1.md +0 -160
- package/docs/contracts/mental-models.md +0 -336
- package/docs/contracts/migrate-command.md +0 -233
- package/docs/contracts/multi-tool-projection-fidelity.md +0 -134
- package/docs/contracts/namespace.md +0 -125
- package/docs/contracts/no-runtime-boundary.md +0 -61
- package/docs/contracts/one-off-script-lifecycle.md +0 -110
- package/docs/contracts/orchestration-dsl-v1.md +0 -153
- package/docs/contracts/package-self-orientation.md +0 -163
- package/docs/contracts/pilot/agent-authority.md +0 -24
- package/docs/contracts/pilot/direct-answers.md +0 -70
- package/docs/contracts/pilot/language-and-tone.md +0 -63
- package/docs/contracts/plain-language-surface.md +0 -117
- package/docs/contracts/prelaunch-diagnostics.md +0 -151
- package/docs/contracts/profile-system.md +0 -167
- package/docs/contracts/reasoning-discipline-protocol.md +0 -83
- package/docs/contracts/release-pr-gating.md +0 -151
- package/docs/contracts/release-sizing.md +0 -107
- package/docs/contracts/release-trunk-sync.md +0 -105
- package/docs/contracts/review-lens-schema.md +0 -64
- package/docs/contracts/roadmap-complexity-standard.md +0 -138
- package/docs/contracts/role-experience.md +0 -125
- package/docs/contracts/router-blending.md +0 -71
- package/docs/contracts/rule-classification.md +0 -171
- package/docs/contracts/rule-interactions.md +0 -132
- package/docs/contracts/rule-interactions.yml +0 -260
- package/docs/contracts/rule-priority-hierarchy.md +0 -88
- package/docs/contracts/rule-router.md +0 -287
- package/docs/contracts/safety-model.md +0 -129
- package/docs/contracts/session-profile-overlay.md +0 -157
- package/docs/contracts/settings-api.md +0 -264
- package/docs/contracts/settings-gui-agent-mode.schema.json +0 -128
- package/docs/contracts/settings-sync-yaml-subset.md +0 -139
- package/docs/contracts/skill-bundled-assets.md +0 -62
- package/docs/contracts/skill-discovery.md +0 -80
- package/docs/contracts/skill-distribution-channels.md +0 -66
- package/docs/contracts/skill-domains.md +0 -144
- package/docs/contracts/skill-dry-run.md +0 -47
- package/docs/contracts/skill-family-map.yml +0 -915
- package/docs/contracts/smoke-contracts.md +0 -144
- package/docs/contracts/subagent-boundary.md +0 -59
- package/docs/contracts/surface-agent-contracts.md +0 -153
- package/docs/contracts/surface-matrix.md +0 -108
- package/docs/contracts/surface-tiers.md +0 -81
- package/docs/contracts/telegraph-telemetry.md +0 -83
- package/docs/contracts/ticket-bundle-format.md +0 -233
- package/docs/contracts/tier-3-contrib-plugin.md +0 -137
- package/docs/contracts/trust-and-safety.md +0 -144
- package/docs/contracts/ui-stack-extension.md +0 -237
- package/docs/contracts/ui-track-flow.md +0 -329
- package/docs/contracts/universal-skills.md +0 -91
- package/docs/contracts/user-type-schema.md +0 -146
- package/docs/contracts/value-dashboard-spec.md +0 -378
- package/docs/contracts/value-report-schema.md +0 -168
- package/docs/contracts/workflow-packs.md +0 -121
- package/docs/contracts/workspace-boundary.md +0 -84
- package/docs/contracts/workspace-documents.md +0 -144
- package/docs/contracts/write-engine.md +0 -182
- package/docs/cookbook.md +0 -152
- package/docs/customization.md +0 -685
- package/docs/decisions/ADR-001-kernel-swap-deferred.md +0 -109
- package/docs/decisions/ADR-002-kernel-bucket-overrides.md +0 -135
- package/docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md +0 -137
- package/docs/decisions/ADR-004-rule-governance-pruning.md +0 -240
- package/docs/decisions/ADR-005-subagent-worktrees.md +0 -120
- package/docs/decisions/ADR-006-skill-tools-python-pilot.md +0 -114
- package/docs/decisions/ADR-007-agent-discovery-scopes.md +0 -371
- package/docs/decisions/ADR-008-installed-tools-manifest.md +0 -160
- package/docs/decisions/ADR-009-event4u-namespace.md +0 -188
- package/docs/decisions/ADR-010-profile-pack-preset-boundary.md +0 -168
- package/docs/decisions/ADR-011-domain-pack-readiness.md +0 -213
- package/docs/decisions/ADR-012-typescript-cli-shell.md +0 -162
- package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +0 -342
- package/docs/decisions/ADR-014-gui-framework-choice.md +0 -136
- package/docs/decisions/ADR-015-discovery-manifest-contract.md +0 -146
- package/docs/decisions/ADR-016-installer-architecture.md +0 -189
- package/docs/decisions/ADR-017-monorepo-physical-layout.md +0 -261
- package/docs/decisions/ADR-018-trust-and-safety-layer.md +0 -159
- package/docs/decisions/ADR-019-router-json-dist-location.md +0 -124
- package/docs/decisions/ADR-020-global-only-consumer-scope.md +0 -213
- package/docs/decisions/ADR-021-deployment-shape.md +0 -153
- package/docs/decisions/ADR-022-daily-workspace-decomposition.md +0 -140
- package/docs/decisions/ADR-023-host-agent-protocol.md +0 -129
- package/docs/decisions/ADR-024-workspace-v0-feature-floor.md +0 -126
- package/docs/decisions/ADR-025-workspace-chrome.md +0 -119
- package/docs/decisions/ADR-026-explain-mode-translation.md +0 -117
- package/docs/decisions/ADR-027-changelog-machine-vs-manual.md +0 -129
- package/docs/decisions/ADR-028-root-layout.md +0 -147
- package/docs/decisions/ADR-029-multi-workspace-deferred.md +0 -122
- package/docs/decisions/ADR-030-claude-code-command-projection.md +0 -147
- package/docs/decisions/ADR-031-validation-severity-tiers-and-projection-roundtrip.md +0 -97
- package/docs/decisions/ADR-032-linked-projects-scope.md +0 -122
- package/docs/decisions/ADR-033-distribution-identity-npm-primary.md +0 -81
- package/docs/decisions/ADR-034-per-skill-model-recommendation-transport.md +0 -63
- package/docs/decisions/ADR-035-model-capability-tiers.md +0 -104
- package/docs/decisions/ADR-036-global-install-browser-wizard-handoff.md +0 -106
- package/docs/decisions/ADR-037-cost-profile-untangle.md +0 -117
- package/docs/decisions/ADR-038-canonical-settings-path.md +0 -96
- package/docs/decisions/ADR-039-claude-skills-untracked.md +0 -139
- package/docs/decisions/ADR-040-execution-model-projection-time-filtering.md +0 -244
- package/docs/decisions/ADR-041-controlled-command-verbs.md +0 -133
- package/docs/decisions/ADR-042-runtime-resolver-decision-gate.md +0 -113
- package/docs/decisions/ADR-043-monorepo-collapse-to-src-domains.md +0 -128
- package/docs/decisions/ADR-044-command-naming-scheme-hyphenated.md +0 -250
- package/docs/decisions/ADR-045-src-source-layout-and-profiles-as-views.md +0 -111
- package/docs/decisions/ADR-046-thin-command-principle.md +0 -93
- package/docs/decisions/ADR-047-framework-neutral-stack-adaptive-commands.md +0 -94
- package/docs/decisions/ADR-048-command-justification-rule.md +0 -106
- package/docs/decisions/ADR-049-configuration-trust-boundary.md +0 -132
- package/docs/decisions/ADR-050-workspace-vs-package-root-boundary.md +0 -121
- package/docs/decisions/ADR-051-uncondensed-source-container-relocation.md +0 -114
- package/docs/decisions/ADR-052-packages-removal-and-pack-home-migration.md +0 -86
- package/docs/decisions/ADR-053-agents-namespace-dual-role-resolution.md +0 -132
- package/docs/decisions/ADR-054-rule-adherence-decay-triggered-restate.md +0 -143
- package/docs/decisions/ADR-055-flow-layer-data-model.md +0 -235
- package/docs/decisions/ADR-056-unvalidated-video-adapters-disposition.md +0 -124
- package/docs/decisions/ADR-057-consolidation-evidence-gate-outcomes.md +0 -135
- package/docs/decisions/ADR-058-condensed-output-relocation-to-dist.md +0 -94
- package/docs/decisions/ADR-059-render-resume-filesystem-as-state.md +0 -161
- package/docs/decisions/ADR-060-comfyui-sandbox-model.md +0 -154
- package/docs/decisions/ADR-061-corpus-grounding-layer.md +0 -230
- package/docs/decisions/ADR-062-encrypt-at-rest-store-architecture.md +0 -121
- package/docs/decisions/ADR-063-append-jsonl-encryption-deferred.md +0 -83
- package/docs/decisions/ADR-064-append-jsonl-per-record-encryption.md +0 -113
- package/docs/decisions/ADR-065-tier3-inbox-handoff-v0.md +0 -86
- package/docs/decisions/ADR-066-skill-body-prerendering.md +0 -93
- package/docs/decisions/ADR-067-glama-registry-listing.md +0 -259
- package/docs/decisions/ADR-068-host-tier-detection.md +0 -90
- package/docs/decisions/ADR-069-prompt-renderer.md +0 -97
- package/docs/decisions/ADR-070-tier1-drive-loop.md +0 -94
- package/docs/decisions/ADR-071-launch-drive-integration.md +0 -95
- package/docs/decisions/ADR-072-codex-gemini-drive-configs.md +0 -90
- package/docs/decisions/ADR-073-drive-health-kill-switch.md +0 -81
- package/docs/decisions/ADR-074-drive-kill-switch-auto-recovery.md +0 -84
- package/docs/decisions/ADR-075-workspace-gui-drive.md +0 -83
- package/docs/decisions/ADR-076-workspace-multi-turn.md +0 -92
- package/docs/decisions/ADR-077-workspace-followup-gui.md +0 -70
- package/docs/decisions/ADR-078-drive-health-panel.md +0 -70
- package/docs/decisions/ADR-079-workspace-host-picker.md +0 -81
- package/docs/decisions/ADR-080-host-session-expired-410.md +0 -92
- package/docs/decisions/ADR-081-drive-health-reset-and-410-affordance.md +0 -71
- package/docs/decisions/ADR-082-410-one-click-relaunch.md +0 -58
- package/docs/decisions/ADR-083-session-thread-and-arbitrary-continuation.md +0 -85
- package/docs/decisions/ADR-084-drive-health-refresh-on-drive.md +0 -52
- package/docs/decisions/ADR-085-mcp-stdio-end-user-distribution-shape.md +0 -158
- package/docs/decisions/ADR-086-read-only-cross-agent-mcp-discovery-helper.md +0 -171
- package/docs/decisions/ADR-087-installer-e2e-test-strategy.md +0 -111
- package/docs/decisions/ADR-088-no-external-runtime-federation.md +0 -144
- package/docs/decisions/ADR-089-lean-local-plugin-install.md +0 -111
- package/docs/decisions/ADR-090-visibility-command-frontmatter-field.md +0 -95
- package/docs/decisions/ADR-091-split-meta-capability-packs.md +0 -113
- package/docs/decisions/ADR-092-defer-command-tier-alias-removal.md +0 -117
- package/docs/decisions/ADR-093-ai-council-config-user-global.md +0 -117
- package/docs/decisions/ADR-094-agent-memory-layer-removal.md +0 -94
- package/docs/decisions/ADR-095-workspace-boundary-contract.md +0 -108
- package/docs/decisions/ADR-096-analysis-workbench.md +0 -110
- package/docs/decisions/ADR-097-mission-recipe-privilege-boundary.md +0 -121
- package/docs/decisions/ADR-098-evidence-first-structure-discovery.md +0 -154
- package/docs/decisions/ADR-099-file-first-pattern-library.md +0 -87
- package/docs/decisions/ADR-100-global-knowledge-card-sharing.md +0 -140
- package/docs/decisions/ADR-101-ticket-bundle-emission.md +0 -109
- package/docs/decisions/ADR-102-ticket-handoff-paste-and-mcp.md +0 -72
- package/docs/decisions/ADR-103-global-knowledge-default-off-until-measured.md +0 -92
- package/docs/decisions/ADR-104-ai-council-config-global-only.md +0 -119
- package/docs/decisions/ADR-105-automatic-subagent-orchestration.md +0 -108
- package/docs/decisions/ADR-106-recursive-verification-benchmark-gate.md +0 -126
- package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +0 -70
- package/docs/decisions/ADR-108-open-source-forever-no-commercial-tier.md +0 -46
- package/docs/decisions/ADR-109-subagent-v1-contract.md +0 -246
- package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +0 -110
- package/docs/decisions/ADR-111-canonical-glama-listing.md +0 -97
- package/docs/decisions/ADR-112-stdio-lite-stays-read-only.md +0 -92
- package/docs/decisions/ADR-113-ci-native-release-label-trigger.md +0 -201
- package/docs/decisions/ADR-114-commit-policy-iron-law-override.md +0 -85
- package/docs/decisions/ADR-115-command-cluster-consolidation-phase-4.md +0 -91
- package/docs/decisions/ADR-116-memory-tripwire-activation-path.md +0 -144
- package/docs/decisions/ADR-117-subagents-auto-default-on.md +0 -89
- package/docs/decisions/ADR-118-loop-engineering-boundaries.md +0 -162
- package/docs/decisions/ADR-119-global-knowledge-default-on.md +0 -104
- package/docs/decisions/ADR-120-council-chairman-mode.md +0 -70
- package/docs/decisions/ADR-121-knowledge-sensitivity-classes.md +0 -90
- package/docs/decisions/ADR-122-adversarial-verification-council.md +0 -166
- package/docs/decisions/ADR-123-runtime-security-scope-and-spawn-hardening.md +0 -142
- package/docs/decisions/ADR-200-python-to-typescript-migration.md +0 -203
- package/docs/decisions/ADR-rule-kernel-and-router.md +0 -133
- package/docs/decisions/INDEX.md +0 -136
- package/docs/deploy/connector-setup.md +0 -129
- package/docs/deploy/env-vars.md +0 -70
- package/docs/deploy/policy-cookbook.md +0 -130
- package/docs/deploy/quickstart.md +0 -112
- package/docs/deploy/small-team-recipe.md +0 -148
- package/docs/deploy/team-deployment-posture.md +0 -111
- package/docs/design/adversarial-council-eval.md +0 -106
- package/docs/design/council-vs-solo-baseline.md +0 -92
- package/docs/design/cross-model-parity-eval.md +0 -82
- package/docs/design/length-neutral-judge-rerun.md +0 -92
- package/docs/design/utilization-window-criteria.md +0 -51
- package/docs/development.md +0 -230
- package/docs/distribution/awesome-list-submission.md +0 -46
- package/docs/distribution/consumer-matrix.md +0 -96
- package/docs/distribution/launch-story-draft.md +0 -58
- package/docs/distribution/mcp-submission-checklist.md +0 -95
- package/docs/distribution/public-install-smoke.md +0 -68
- package/docs/distribution/registries.md +0 -117
- package/docs/distribution/registry-submissions.md +0 -85
- package/docs/distribution/telemetry-privacy.md +0 -128
- package/docs/distribution/telemetry-schema.md +0 -174
- package/docs/distribution/topics-equivalents-decay-policy.md +0 -51
- package/docs/end-to-end-walkthroughs.md +0 -165
- package/docs/enforcement-by-host.md +0 -44
- package/docs/examples/agent-user.example.md +0 -22
- package/docs/experiences/agency.md +0 -49
- package/docs/experiences/content_creator.md +0 -49
- package/docs/experiences/developer.md +0 -49
- package/docs/experiences/finance.md +0 -50
- package/docs/experiences/founder.md +0 -49
- package/docs/experiences/ops.md +0 -49
- package/docs/featured-commands.md +0 -27
- package/docs/featured-skills.md +0 -95
- package/docs/flows.md +0 -67
- package/docs/getting-started-by-role.md +0 -190
- package/docs/getting-started-laravel.md +0 -72
- package/docs/getting-started-local-stdio.md +0 -77
- package/docs/getting-started.md +0 -254
- package/docs/github-topics.md +0 -93
- package/docs/governance-advantage.md +0 -72
- package/docs/governance.md +0 -96
- package/docs/guides/cross-repo-linked-projects.md +0 -93
- package/docs/guides/cross-repo-retrieval.md +0 -61
- package/docs/guides/frontend-design-corpus-refresh.md +0 -83
- package/docs/guides/local-analytics.md +0 -125
- package/docs/guides/local-knowledge.md +0 -127
- package/docs/guides/skill-discovery.md +0 -71
- package/docs/guides/skill-preview.md +0 -71
- package/docs/hook-payload-capture.md +0 -221
- package/docs/install-friction-report.md +0 -66
- package/docs/installation.md +0 -959
- package/docs/maintainers/branch-protection.md +0 -105
- package/docs/maintainers/dev-mode.md +0 -106
- package/docs/maintainers/optional-media-deps.md +0 -50
- package/docs/maintainers/system-map.md +0 -85
- package/docs/mcp-registries.md +0 -94
- package/docs/mcp-server.md +0 -175
- package/docs/mcp.md +0 -147
- package/docs/media/proof-demo.cast +0 -14
- package/docs/media/proof-demo.gif +0 -0
- package/docs/migration/consumer-template-consumption-model.md +0 -145
- package/docs/migration/divergences/README.md +0 -55
- package/docs/migration/divergences/_template.md +0 -50
- package/docs/migration/divergences/bench-stats-float-precision.md +0 -72
- package/docs/migration/divergences/mcp-telemetry-node-sqlite.md +0 -61
- package/docs/migration/divergences/pack-mcp-content-gzip-body.md +0 -53
- package/docs/migration/divergences/src-scripts-build_cloud_bundle.md +0 -63
- package/docs/migration/divergences/src-scripts-check_memory.md +0 -91
- package/docs/migration/divergences/src-scripts-inventory_abstraction_budget.md +0 -65
- package/docs/migration/divergences/src-scripts-lint_marketplace.md +0 -57
- package/docs/migration/divergences/src-scripts-lint_mcp_registry_manifest.md +0 -70
- package/docs/migration/divergences/src-scripts-spotcheck_thin_root.md +0 -60
- package/docs/migration/divergences/src-scripts-validate_agent_settings.md +0 -58
- package/docs/migration/node-floor.md +0 -86
- package/docs/migration/v1-to-v2.md +0 -156
- package/docs/migration/yaml-roundtrip-spike.md +0 -163
- package/docs/migrations/commands-1.15.0.md +0 -117
- package/docs/parity/bench-external.json +0 -58
- package/docs/parity/bench.json +0 -41
- package/docs/parity/command-frontmatter.md +0 -60
- package/docs/parity/external-runtime.md +0 -46
- package/docs/personas.md +0 -178
- package/docs/positioning-evidence.md +0 -86
- package/docs/profiles.md +0 -108
- package/docs/proof.md +0 -176
- package/docs/quality.md +0 -98
- package/docs/readme-split-plan.md +0 -102
- package/docs/recruits/_template.md +0 -81
- package/docs/release-runbook.md +0 -141
- package/docs/role-experiences.md +0 -19
- package/docs/safety.md +0 -30
- package/docs/second-brain-scope.md +0 -116
- package/docs/self-review-gate.md +0 -65
- package/docs/setup/enterprise-and-offline.md +0 -201
- package/docs/setup/mcp-client-config.md +0 -358
- package/docs/setup/mcp-cloud-endpoints.md +0 -116
- package/docs/setup/mcp-cloud-registry-listing.md +0 -99
- package/docs/setup/mcp-cloud-setup.md +0 -183
- package/docs/setup/mcp-r2-bootstrap.md +0 -82
- package/docs/setup/mcp-server-docker.md +0 -101
- package/docs/setup/per-ide/aider.md +0 -48
- package/docs/setup/per-ide/antigravity.md +0 -68
- package/docs/setup/per-ide/augment.md +0 -89
- package/docs/setup/per-ide/claude-code.md +0 -97
- package/docs/setup/per-ide/claude-desktop.md +0 -207
- package/docs/setup/per-ide/cline.md +0 -43
- package/docs/setup/per-ide/codebuddy.md +0 -63
- package/docs/setup/per-ide/codex.md +0 -46
- package/docs/setup/per-ide/continue.md +0 -68
- package/docs/setup/per-ide/copilot.md +0 -80
- package/docs/setup/per-ide/cursor.md +0 -125
- package/docs/setup/per-ide/droid.md +0 -65
- package/docs/setup/per-ide/gemini-cli.md +0 -45
- package/docs/setup/per-ide/jetbrains.md +0 -76
- package/docs/setup/per-ide/kilocode.md +0 -66
- package/docs/setup/per-ide/kiro.md +0 -72
- package/docs/setup/per-ide/opencode.md +0 -62
- package/docs/setup/per-ide/qoder.md +0 -63
- package/docs/setup/per-ide/roocode.md +0 -68
- package/docs/setup/per-ide/trae.md +0 -63
- package/docs/setup/per-ide/warp.md +0 -63
- package/docs/setup/per-ide/windsurf.md +0 -109
- package/docs/setup/per-ide/zed.md +0 -73
- package/docs/showcase.md +0 -209
- package/docs/skill-duplication-findings.md +0 -91
- package/docs/skills-catalog.md +0 -265
- package/docs/skills-taxonomy.md +0 -90
- package/docs/spawn-site-policy.md +0 -72
- package/docs/succession.md +0 -80
- package/docs/threat-model.md +0 -29
- package/docs/troubleshooting.md +0 -155
- package/docs/ui-track-mental-model.md +0 -121
- package/docs/us-vs-the-category.md +0 -38
- package/docs/value.md +0 -86
- package/docs/walkthroughs/assets/workspace-role-grid.png +0 -0
- package/docs/walkthroughs/assets/workspace-session-started.png +0 -0
- package/docs/walkthroughs/assets/workspace-task-picker.png +0 -0
- package/docs/walkthroughs/daily-workspace-a11y.md +0 -87
- package/docs/walkthroughs/daily-workspace.md +0 -127
- package/docs/wedge/production-validator/README.md +0 -81
- package/docs/wedge/production-validator/first-run-check.sh +0 -42
- package/docs/wedge/production-validator/production-validator.md +0 -83
- package/docs/wizard.md +0 -173
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 086
|
|
3
|
-
status: rejected
|
|
4
|
-
date: 2026-06-11
|
|
5
|
-
decision: read-only-cross-agent-mcp-discovery-helper
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: —
|
|
8
|
-
phase: mcp-onboarding · discovery-first
|
|
9
|
-
type: structural
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# ADR-086 — Read-only cross-agent MCP discovery helper (defer auto-install)
|
|
13
|
-
|
|
14
|
-
## Status
|
|
15
|
-
|
|
16
|
-
**Rejected at its own Phase-0 gate** · 2026-06-11. The proposal to *build* the
|
|
17
|
-
read-only discovery helper was not adopted: the Phase-0 demand gate in
|
|
18
|
-
`road-to-mcp-discovery-helper` (which this ADR was pending) resolved to **STOP per
|
|
19
|
-
Option C**. The defer-auto-install half of the decision stands (auto-install remains
|
|
20
|
-
deferred to a future security-first ADR). Originally proposed 2026-06-10, routed
|
|
21
|
-
through the AI council (claude-sonnet-4-5 + gpt-4o, design mode, 2026-06-10 —
|
|
22
|
-
converged on the proposal); the build was then rejected at the gate by a second
|
|
23
|
-
council round (claude-sonnet-4-5 + gpt-4o, design mode, 2026-06-11 — converged STOP).
|
|
24
|
-
|
|
25
|
-
**Why rejected (verified at the gate, 2026-06-11):**
|
|
26
|
-
|
|
27
|
-
- **Existing tooling covers it.** Smithery's CLI already does cross-client *install*
|
|
28
|
-
(read-write — the harder capability) for **5 of our 6 target agents** (Claude Code,
|
|
29
|
-
Cursor, Windsurf, Cline, VS Code/Copilot; verified in `src/config/clients.ts`,
|
|
30
|
-
`VALID_CLIENTS`, 23 clients). The lone gap is **Augment**. A read-only discovery
|
|
31
|
-
tool for the same 5 agents is strictly weaker — this trips ADR-086 Step 2's own
|
|
32
|
-
"if Smithery covers our full set read-write, reassess whether discovery is
|
|
33
|
-
non-duplicative" criterion.
|
|
34
|
-
- **No demand signal.** Zero responses to the demand probe (shipped to the CHANGELOG
|
|
35
|
-
`[Unreleased]` notes → GitHub Discussions). ADR-086 made "weak signal → stop" the
|
|
36
|
-
gate condition.
|
|
37
|
-
- **Surviving value is doc-shaped, not tool-shaped.** Registry-agnostic coverage is a
|
|
38
|
-
comparison matrix, not a 500-line CLI. Building the CLI would also create sunk-cost
|
|
39
|
-
bias toward reimplementing (rather than wrapping) Smithery in any future phase.
|
|
40
|
-
|
|
41
|
-
**Verified registry facts (live-checked 2026-06-11, recorded for any future reopen):**
|
|
42
|
-
both registries are queryable read-only with **no API key** — official
|
|
43
|
-
`GET registry.modelcontextprotocol.io/v0/servers?search=&limit=&cursor=` (200, returns
|
|
44
|
-
`server.json` records + `nextCursor`) and Glama
|
|
45
|
-
`GET glama.ai/api/mcp/v1/servers?first=&after=` (200; resolves ADR-086's open
|
|
46
|
-
"does Glama need a key?" question — it does not).
|
|
47
|
-
|
|
48
|
-
**Follow-up — resolved 2026-06-11 (AI council, claude-sonnet-4-5 + gpt-4o, design
|
|
49
|
-
mode; split → tie-break → converged C-only):** the surviving value is captured as a
|
|
50
|
-
reference doc, [`docs/mcp-registries.md`](../mcp-registries.md) — the three-registry
|
|
51
|
-
comparison plus a per-agent install path (Smithery covers 5/6; Augment via manual
|
|
52
|
-
Import-from-JSON). An automated **Smithery → Augment** contribution is **deferred, not
|
|
53
|
-
filed**: Augment's writable surface is undocumented/nested and there is no demand
|
|
54
|
-
signal, so a PR or issue would externalise risk for zero proven benefit. Reopen only
|
|
55
|
-
if all three hold: ≥ 3 independent user requests, Augment documents its `settings.json`
|
|
56
|
-
MCP schema as stable, and the Smithery maintainers pre-approve the approach (mirrored
|
|
57
|
-
in the doc footer).
|
|
58
|
-
|
|
59
|
-
**Reopen criteria:** 5+ demand responses citing a concrete need Smithery cannot serve,
|
|
60
|
-
OR Smithery registry-locks / declines Augment support / shuts down. Any reopen is a new
|
|
61
|
-
ADR (security-first if it touches auto-install).
|
|
62
|
-
|
|
63
|
-
## Context
|
|
64
|
-
|
|
65
|
-
`event4u/agent-config` is a tool-agnostic skill/rule/command suite whose core
|
|
66
|
-
competency is **projection**: one canonical source in `src/` is generated into
|
|
67
|
-
per-tool trees (`.claude/`, `.cursor/`, `.augment/`, `.windsurfrules`,
|
|
68
|
-
`.clinerules/`, `.github/copilot-instructions.md`). Today users wire up MCP
|
|
69
|
-
servers manually, separately per agent. The package publishes its own read-only
|
|
70
|
-
MCP server (Glama-indexed) but offers no help installing other people's servers.
|
|
71
|
-
|
|
72
|
-
A deep-dive (2026-06-10, cite-checked) established:
|
|
73
|
-
|
|
74
|
-
- **An official, vendor-neutral MCP registry exists** —
|
|
75
|
-
`registry.modelcontextprotocol.io`, public API `/v0/servers`, canonical
|
|
76
|
-
`server.json` schema. `server.json` carries `name` (reverse-DNS), `packages[]`
|
|
77
|
-
(`registryType` npm/pypi/oci/mcpb/nuget/cargo, `identifier`, `transport`
|
|
78
|
-
stdio/streamable-http/sse, `runtimeHint`, `packageArguments`,
|
|
79
|
-
`environmentVariables` with `isSecret` flags), `remotes[]`, `repository`. It is
|
|
80
|
-
a **discovery/catalog** spec — it does **not** write per-client config.
|
|
81
|
-
- **Glama is a superset** of the official registry (~32k servers, +quality/safety
|
|
82
|
-
scoring, sandbox testing). API `glama.ai/api/mcp/v1/servers/{ns}/{name}` returns
|
|
83
|
-
`environmentVariablesJsonSchema`, `repository`, `spdxLicense`, `tools`. A
|
|
84
|
-
commercial third party; its "score" is not a verified security property.
|
|
85
|
-
- **Smithery already does cross-client install** (`smithery install X --client …`)
|
|
86
|
-
— but its coverage of *our* agent set (Augment / Windsurf / Cline / Copilot) is
|
|
87
|
-
**unverified**; only `claude` and `cursor` are confirmed.
|
|
88
|
-
|
|
89
|
-
The council split the question into two surfaces with opposite risk/value:
|
|
90
|
-
|
|
91
|
-
| Surface | Risk | Value |
|
|
92
|
-
|---|---|---|
|
|
93
|
-
| **Discovery** ("which servers exist, what do they need") | low (read-only) | high, undisputed |
|
|
94
|
-
| **Installation** ("write config into every agent") | high (secrets, supply-chain, no rollback) | disputed, demand unproven |
|
|
95
|
-
|
|
96
|
-
Three convergent objections to building auto-install now:
|
|
97
|
-
|
|
98
|
-
1. **Demand unproven.** No evidence that a meaningful share of users run multiple
|
|
99
|
-
agents *simultaneously* and feel config-sync pain. Measure before building.
|
|
100
|
-
2. **Secrets + trust gate absent.** Auto-writing configs that contain API keys
|
|
101
|
-
without a trust model is negligent. The official registry has no central
|
|
102
|
-
vetting; Glama's score may be popularity, not safety.
|
|
103
|
-
3. **Kill-switch paradox.** A feature that auto-writes configs has no
|
|
104
|
-
*non-centralized* rollback; a phone-home kill-switch contradicts the package's
|
|
105
|
-
tool-agnostic model. The only safe shape (staging + manual apply) collapses the
|
|
106
|
-
auto-install value.
|
|
107
|
-
|
|
108
|
-
A fourth concern: MCP config may be **runtime state**, not portable source —
|
|
109
|
-
forcing it into `src/` would create user-vs-project split complexity. This stays
|
|
110
|
-
open and is explicitly out of scope for the discovery helper.
|
|
111
|
-
|
|
112
|
-
## Decision
|
|
113
|
-
|
|
114
|
-
Ship a **read-only, registry-agnostic MCP discovery helper** and **defer**
|
|
115
|
-
auto-install (cross-agent config writes) to a future, security-first ADR.
|
|
116
|
-
|
|
117
|
-
The helper:
|
|
118
|
-
|
|
119
|
-
- Queries the **official MCP registry** as the primary source and **Glama** as an
|
|
120
|
-
optional enrichment source (quality/safety signals, env-var schema), behind a
|
|
121
|
-
registry-agnostic interface — **no hard coupling to any single registry**.
|
|
122
|
-
- Normalizes results to the official `server.json` shape.
|
|
123
|
-
- Renders, per matched server: name, description, declared `environmentVariables`
|
|
124
|
-
(marking `isSecret`), supported transports, and the **copy-paste install snippet
|
|
125
|
-
for each supported agent** — the user pastes it (and any secrets) themselves.
|
|
126
|
-
- **Writes nothing** to any agent config file. Zero secrets touch disk via the
|
|
127
|
-
tool.
|
|
128
|
-
|
|
129
|
-
Its adoption is the demand test for whether auto-install is ever worth building.
|
|
130
|
-
|
|
131
|
-
## Consequences
|
|
132
|
-
|
|
133
|
-
**Positive**
|
|
134
|
-
- Solves the real pain (discovery) at zero security risk; no secrets handling.
|
|
135
|
-
- Honors tool-agnosticism — one canonical shape, optional registries, no vendor lock.
|
|
136
|
-
- Doubles as a falsifiable demand signal for the deferred auto-install question.
|
|
137
|
-
- Small first slice — registry query + normalizer + per-agent snippet renderer.
|
|
138
|
-
|
|
139
|
-
**Negative / accepted**
|
|
140
|
-
- Users still copy-paste per agent (the auto-install toil is *not* eliminated).
|
|
141
|
-
- A network dependency on external registries at query time (read-only, cacheable).
|
|
142
|
-
- If demand proves high, a second, harder design cycle (trust gate, secret
|
|
143
|
-
handling, rollback) is still required before any auto-write.
|
|
144
|
-
|
|
145
|
-
**Neutral**
|
|
146
|
-
- Whether MCP config belongs in `src/` projection stays an open question, revisited
|
|
147
|
-
only if/when auto-install is reconsidered.
|
|
148
|
-
|
|
149
|
-
## Alternatives considered
|
|
150
|
-
|
|
151
|
-
- **A — MCP-config-as-projection on the official spec (auto-write all agents).**
|
|
152
|
-
Rejected *now*: demand unproven, secrets/trust/rollback unsolved. Remains the
|
|
153
|
-
natural successor *if* the discovery helper shows strong adoption — under a new
|
|
154
|
-
security-first ADR.
|
|
155
|
-
- **B — Couple to Glama or delegate to Smithery's CLI.** Rejected: coupling a
|
|
156
|
-
tool-agnostic package to a single commercial registry contradicts its own
|
|
157
|
-
portability doctrine; Smithery's coverage of our agent set is unverified and
|
|
158
|
-
would add a third-party runtime dependency.
|
|
159
|
-
- **C (pure) — Skip entirely.** Rejected: leaves the low-risk, high-value
|
|
160
|
-
discovery win on the table and forgoes the demand signal.
|
|
161
|
-
|
|
162
|
-
## References
|
|
163
|
-
|
|
164
|
-
- AI council convergence, design mode, 2026-06-10 (claude-sonnet-4-5 + gpt-4o):
|
|
165
|
-
Option C with a read-only discovery carve-out; verify Smithery coverage; gate on
|
|
166
|
-
a demand survey.
|
|
167
|
-
- Official MCP registry `server.json` schema —
|
|
168
|
-
`static.modelcontextprotocol.io/schemas/.../server.schema.json`.
|
|
169
|
-
- `src/skills/mcp/SKILL.md` — existing MCP tool-usage skill.
|
|
170
|
-
- `internal/glama/README.md` — the package's own Glama-indexed MCP server (distinct
|
|
171
|
-
concern: we are *listed*, this ADR is about *consuming* registries).
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 087
|
|
3
|
-
status: accepted
|
|
4
|
-
date: 2026-06-11
|
|
5
|
-
decision: installer-e2e-test-strategy
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: —
|
|
8
|
-
phase: installer-hardening · wizard-apply
|
|
9
|
-
type: structural
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# ADR-087 — Installer e2e test strategy: HTTP-API container e2e now, browser-driven Playwright deferred
|
|
13
|
-
|
|
14
|
-
## Status
|
|
15
|
-
|
|
16
|
-
**Accepted** · 2026-06-11. Lands with the fix for the browser-wizard
|
|
17
|
-
"Finish writes nothing" bug and the first containerized installer e2e.
|
|
18
|
-
|
|
19
|
-
## Context
|
|
20
|
-
|
|
21
|
-
A consumer ran `npx -y @event4u/agent-config@latest init`, clicked through the
|
|
22
|
-
browser wizard, saw only a "migration not available" notice, and **nothing was
|
|
23
|
-
installed**. The headless CLI form (`init --global --tools=all …`) worked.
|
|
24
|
-
|
|
25
|
-
Root cause (reproduced): the wizard server spawns
|
|
26
|
-
`python3 install.py --apply-payload` with **no `PYTHONPATH`**
|
|
27
|
-
(`src/server/routes/wizard.ts`), whereas the bash dispatcher always sets
|
|
28
|
-
`PYTHONPATH=$PACKAGE_ROOT/src` (`src/scripts/_dispatch.bash`). For a consumer
|
|
29
|
-
that already has a legacy tool dir (`.claude/` — every Claude Code user has
|
|
30
|
-
one), the global-scope apply triggers migrate-to-global, whose
|
|
31
|
-
`importlib.import_module("scripts._cli.cmd_migrate")` then raised
|
|
32
|
-
`ImportError: No module named 'scripts'` → `warn("migrate unavailable")` →
|
|
33
|
-
`return 1` → `install_global` never ran → an empty tree. (Fix: `install.py`
|
|
34
|
-
self-bootstraps `sys.path` for that import, and the wizard spawn helpers seed
|
|
35
|
-
`PYTHONPATH` for parity. Covered by `tests/test_install_wizard_wiring.py` and
|
|
36
|
-
`tests/server/wizard.applySse.test.ts`.)
|
|
37
|
-
|
|
38
|
-
The class of bug — the installer behaving differently depending on the spawn
|
|
39
|
-
environment — is invisible to in-process unit tests that inherit the test
|
|
40
|
-
runner's `sys.path`/`PYTHONPATH`. It only surfaces in a pristine process with no
|
|
41
|
-
host leakage. That argues for a **container** e2e that runs the real installer
|
|
42
|
-
end-to-end, including the real wizard HTTP apply path.
|
|
43
|
-
|
|
44
|
-
The open question was the **wizard test depth**: drive the real SPA in a
|
|
45
|
-
headless browser (Playwright, full UX) versus drive the wizard's HTTP API (the
|
|
46
|
-
exact routes the SPA calls) inside a container.
|
|
47
|
-
|
|
48
|
-
## Decision
|
|
49
|
-
|
|
50
|
-
1. **Ship an HTTP-API-level container e2e now** —
|
|
51
|
-
`tests/fixtures/installer-e2e.Dockerfile` builds a pristine `node:20` +
|
|
52
|
-
`python3` image and `tests/fixtures/installer-e2e/run-scenarios.sh` runs two
|
|
53
|
-
scenarios, asserting a populated tree (`installed.lock` + terminal `done`
|
|
54
|
-
frame) lands on disk:
|
|
55
|
-
- **A.** `install.py --apply-payload` in a clean env (no `PYTHONPATH`,
|
|
56
|
-
legacy `.claude/` present) — the exact field condition.
|
|
57
|
-
- **B.** The real `createApp` wizard server, driven over HTTP via
|
|
58
|
-
`POST /api/v1/wizard/apply` — the exact path that spawns the installer.
|
|
59
|
-
|
|
60
|
-
Driven by `tests/test_e2e_container_install.py`, gated opt-in behind
|
|
61
|
-
`AGENT_CONFIG_E2E_DOCKER=1` (`task test-installer-e2e`) so the multi-minute
|
|
62
|
-
image build never runs in the default `task test` suite (and never per
|
|
63
|
-
xdist worker).
|
|
64
|
-
|
|
65
|
-
2. **Defer browser-driven (Playwright UI) installer e2e** — do not add a
|
|
66
|
-
containerized full-browser walkthrough of the wizard that asserts a real
|
|
67
|
-
install. Document the deferral here; it can be added later.
|
|
68
|
-
|
|
69
|
-
## Consequences
|
|
70
|
-
|
|
71
|
-
- The regression that shipped to a consumer is now pinned at three layers:
|
|
72
|
-
Python (`--apply-payload`, no-`PYTHONPATH`), TypeScript (spawn env carries
|
|
73
|
-
`PYTHONPATH`), and a container e2e exercising both the CLI apply and the real
|
|
74
|
-
wizard HTTP apply in a clean process.
|
|
75
|
-
- The container test is opt-in: contributors and CI run it deliberately
|
|
76
|
-
(`task test-installer-e2e`), not on every `task test`. The wiring into the
|
|
77
|
-
required CI gate is a follow-up decision, kept out of scope here.
|
|
78
|
-
- `.dockerignore` now also excludes `internal/bench` (~145 MB) so the build
|
|
79
|
-
context stays lean.
|
|
80
|
-
|
|
81
|
-
## Alternatives considered
|
|
82
|
-
|
|
83
|
-
- **Full browser-driven Playwright installer e2e (rejected for now).**
|
|
84
|
-
`@playwright/test` is already a devDependency and
|
|
85
|
-
`tests/e2e/setup-wizard-9-steps.spec.ts` already drives the wizard's HTTP API
|
|
86
|
-
via `request.newContext()` (no browser binary) — but in dry-run, asserting
|
|
87
|
-
**zero** writes. A real-install browser walkthrough would add: a Chromium
|
|
88
|
-
layer to the image (heavier build), UI-rendering flakiness (selectors,
|
|
89
|
-
timing) on a path whose actual risk surface is the **apply** step, and
|
|
90
|
-
duplicate coverage of the state machine already covered in dry-run. The
|
|
91
|
-
apply/install logic is fully exercised at the HTTP level, which is where the
|
|
92
|
-
bug lived. The cost/benefit favours HTTP-API depth first.
|
|
93
|
-
- **Why it can be added later.** The pieces exist: the Playwright config + the
|
|
94
|
-
9-step spec, plus the now-proven `createApp` boot harness
|
|
95
|
-
(`tests/fixtures/installer-e2e/boot-wizard.mjs`). A future browser e2e would
|
|
96
|
-
add a `--with-chromium` image variant and a `*.spec.ts` that walks the SPA to
|
|
97
|
-
"Finish" against a real (non-dry-run) backend, reusing the same write-root
|
|
98
|
-
assertions. Trigger to revisit: a UI-layer regression that the HTTP-API
|
|
99
|
-
e2e cannot catch (e.g. a frontend step that never posts the apply payload).
|
|
100
|
-
|
|
101
|
-
## References
|
|
102
|
-
|
|
103
|
-
- `tests/fixtures/installer-e2e.Dockerfile`,
|
|
104
|
-
`tests/fixtures/installer-e2e/run-scenarios.sh`,
|
|
105
|
-
`tests/fixtures/installer-e2e/boot-wizard.mjs`
|
|
106
|
-
- `tests/test_e2e_container_install.py` · `task test-installer-e2e`
|
|
107
|
-
- `tests/test_install_wizard_wiring.py` (no-`PYTHONPATH` apply regression)
|
|
108
|
-
- `tests/server/wizard.applySse.test.ts` (spawn env carries `PYTHONPATH`)
|
|
109
|
-
- `src/scripts/install.py::_run_migrate_to_global`,
|
|
110
|
-
`src/server/routes/wizard.ts::installerSpawnEnv`
|
|
111
|
-
- `tests/fixtures/hermetic-smoke.Dockerfile` (prior container-test pattern)
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 088
|
|
3
|
-
status: accepted
|
|
4
|
-
date: 2026-06-11
|
|
5
|
-
decision: no-external-runtime-federation
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: —
|
|
8
|
-
phase: external-runtime-coexistence
|
|
9
|
-
type: structural
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# ADR-088 — agent-config does not bridge to external tool runtimes; federation needs its own explicit decision
|
|
13
|
-
|
|
14
|
-
## Status
|
|
15
|
-
|
|
16
|
-
**Accepted** · 2026-06-11. Lands with the closure of PR #262
|
|
17
|
-
("external-runtime coexistence bridge") as superseded.
|
|
18
|
-
|
|
19
|
-
## Context
|
|
20
|
-
|
|
21
|
-
An external multi-agent runtime is a multi-agent
|
|
22
|
-
orchestration **runtime** (swarms, persistent memory / RAG, an MCP server,
|
|
23
|
-
a hooks system, background workers). It also writes `.claude/` lifecycle
|
|
24
|
-
hooks, so it shares a Claude Code project's `.claude/` directory with
|
|
25
|
-
`event4u/agent-config`.
|
|
26
|
-
|
|
27
|
-
PR #262 (authored 2026-05-27) proposed an "external-runtime coexistence bridge" with four
|
|
28
|
-
parts:
|
|
29
|
-
|
|
30
|
-
1. **Plugin-scope hook delivery** — ship agent-config's Claude hooks via the
|
|
31
|
-
plugin (`hooks/hooks.json`) instead of the shared `.claude/settings.json`
|
|
32
|
-
hooks array, to stop colliding with neighbour tools' hook arrays.
|
|
33
|
-
2. **`detect_external` + `coexist`/`skip` mode + dispatcher skip-gate** — detect
|
|
34
|
-
the external runtime, offer a one-time choice, optionally skip agent-config's own
|
|
35
|
-
dispatcher so the two tools' hooks don't double-fire.
|
|
36
|
-
3. **A detection-gated `external-runtime-bridge` pack** (`external-runtime-routing` rule +
|
|
37
|
-
`external-runtime-orchestration` skill) documenting the external runtime's MCP-tool surface and a
|
|
38
|
-
persona→agent-type map so the host agent can **drive the external runtime's swarm**.
|
|
39
|
-
4. **A coexistence contract + an 8-phase roadmap** (later phases: shared
|
|
40
|
-
cross-tool memory, collision namespacing, git-layer enforcement of the external runtime's
|
|
41
|
-
swarm commits, docs).
|
|
42
|
-
|
|
43
|
-
Two things happened on `main` after the PR was authored:
|
|
44
|
-
|
|
45
|
-
- **(A) Part 1 landed independently.** Plugin-scope hook delivery is on `main`
|
|
46
|
-
(`hooks/hooks.json` generated from `src/scripts/hook_manifest.yaml`;
|
|
47
|
-
`ensure_claude_bridge` writes only `enabledPlugins`, canonical id
|
|
48
|
-
`agent-config@event4u`). agent-config no longer owns the `settings.json`
|
|
49
|
-
hooks array, so it coexists with *any* neighbour tool's hooks generically —
|
|
50
|
-
the external runtime included. The original hook-collision motivation is solved without
|
|
51
|
-
anything external-runtime-specific.
|
|
52
|
-
- **(B) An "external-runtime adoption" decision was recorded** (cross-vendor council,
|
|
53
|
-
claude-sonnet-4-5 + gpt-4o, 2026-05-06; see an internal parity record (local-only)).
|
|
54
|
-
Verdict: harvest only **portable** patterns from the external runtime (ADR methodology,
|
|
55
|
-
cost-tracker, HMAC signing) and **explicitly do not couple to the external runtime's
|
|
56
|
-
runtime / swarm / MCP tools** — wording used: "out of suite identity".
|
|
57
|
-
Candidates requiring the external runtime (`observe-trace`, `test-gaps`) were
|
|
58
|
-
dropped for that reason; an MCP/HTTP-bridge was only "deferred-with-trigger".
|
|
59
|
-
|
|
60
|
-
PR #262's parts 2–4 are precisely the runtime coupling decision (B) rejected.
|
|
61
|
-
They also drifted structurally out of the tree (`packages/core/` removed,
|
|
62
|
-
`scripts/` → `src/scripts/`, `.agent-src.uncondensed/` → `src/`), so a 1:1
|
|
63
|
-
finish was no longer viable regardless.
|
|
64
|
-
|
|
65
|
-
The "finish & merge" question was re-routed through the AI council
|
|
66
|
-
(design lens, deep). Cross-vendor transport was degraded to anthropic-only by a
|
|
67
|
-
local CLI-adapter incompatibility (the `codex` and `gemini` CLI adapters pass
|
|
68
|
-
flags the installed CLI versions reject), but the verdict converges with the
|
|
69
|
-
2026-05-06 cross-vendor decision: close as superseded, and record the boundary
|
|
70
|
-
so it is not re-litigated. The council's sharpest framing: PR #262 is an
|
|
71
|
-
**unsanctioned strategic pivot** from "skill suite for AI coding tools" to
|
|
72
|
-
"federation platform that orchestrates orchestrators" — a strategic decision,
|
|
73
|
-
not a feature, smuggled in via an incremental PR.
|
|
74
|
-
|
|
75
|
-
## Decision
|
|
76
|
-
|
|
77
|
-
1. **agent-config does not bridge to, or drive, external tool runtimes.**
|
|
78
|
-
It is a **content suite** (skills, rules, commands) for AI coding tools —
|
|
79
|
-
not a runtime coordinator. It ships no `external-runtime-orchestration`,
|
|
80
|
-
`cursor-orchestration`, `aider-routing`, `windsurf-bridge`, or equivalent
|
|
81
|
-
artifact that calls another tool's runtime / swarm / MCP surface. This is a
|
|
82
|
-
**category** boundary, not an external-runtime-specific one. Consistent with the
|
|
83
|
-
"no app runtime" identity in
|
|
84
|
-
[`package-self-orientation`](../contracts/package-self-orientation.md).
|
|
85
|
-
|
|
86
|
-
2. **Cross-tool coexistence is handled generically at the plugin / protocol
|
|
87
|
-
layer, never via tool-specific content.** Plugin-scope hook delivery (A)
|
|
88
|
-
already lets agent-config coexist with any neighbour's `settings.json`
|
|
89
|
-
hooks. Any future cross-tool coordination need must be solved the same way —
|
|
90
|
-
protocol-level (e.g. metadata in `hooks.json`), generic (any neighbour, not
|
|
91
|
-
one named vendor), opt-in, and demand-driven (a documented user pain), not
|
|
92
|
-
as a skill / rule / pack.
|
|
93
|
-
|
|
94
|
-
3. **Federation is a separate, explicit decision.** If agent-config should ever
|
|
95
|
-
expand from skill-suite to a "federation platform" that orchestrates
|
|
96
|
-
external orchestrators, that requires its **own** ADR answering, at minimum:
|
|
97
|
-
(a) should the suite take on that identity; (b) the generic design (an external runtime +
|
|
98
|
-
Cursor + Copilot + Windsurf, not one vendor); (c) the maintenance model for
|
|
99
|
-
N external bridges; (d) the trust contract — who validates an external
|
|
100
|
-
runtime's output, and how agent-config's safety floors
|
|
101
|
-
(`non-destructive-by-default`, `commit-policy`, `verify-before-complete`)
|
|
102
|
-
are enforced across the boundary. Until such an ADR is accepted, runtime
|
|
103
|
-
coupling is **out of scope**.
|
|
104
|
-
|
|
105
|
-
4. **PR #262 is closed as superseded** under this boundary. Reopen only if the
|
|
106
|
-
federation decision in (3) is made.
|
|
107
|
-
|
|
108
|
-
## Consequences
|
|
109
|
-
|
|
110
|
-
- agent-config's identity stays clean: portable content, no dependence on any
|
|
111
|
-
neighbour tool's installation, version, or MCP-tool stability.
|
|
112
|
-
- The maintenance surface does not grow by one bridge per orchestrator, and
|
|
113
|
-
behaviour does not vary by which neighbours are installed.
|
|
114
|
-
- Users who run both agent-config and the external runtime (or any neighbour) get hook
|
|
115
|
-
coexistence for free via plugin scope; they do not get agent-config-driven
|
|
116
|
-
external-runtime orchestration.
|
|
117
|
-
- Future "let's just add detection / a bridge for tool X" PRs have a recorded
|
|
118
|
-
boundary to point at, preventing re-litigation. They are redirected to the
|
|
119
|
-
generic, protocol-level, ADR-gated path in (2)–(3).
|
|
120
|
-
|
|
121
|
-
## Alternatives considered
|
|
122
|
-
|
|
123
|
-
- **Finish & merge PR #262 as-is** — rejected: reintroduces the runtime
|
|
124
|
-
coupling decision (B) dropped, across an unvalidated trust boundary, and
|
|
125
|
-
enacts a strategic pivot without an explicit decision.
|
|
126
|
-
- **Repurpose to the defensive sliver only** (`detect_external` + dispatcher
|
|
127
|
-
skip-gate + a generalised neighbour-coexistence contract) — rejected as the
|
|
128
|
-
default: the council found it wrong-layer (coordination belongs at the
|
|
129
|
-
protocol layer, not in tool-specific detection code) and redundant given (A),
|
|
130
|
-
with no documented user pain. The generic, protocol-level path in decision
|
|
131
|
-
(2) remains available if real pain is later documented.
|
|
132
|
-
- **Keep PR #262 parked as a draft** — rejected: it had drifted structurally
|
|
133
|
-
out of the tree and its premise was superseded; an open draft on a dead
|
|
134
|
-
premise is maintenance debt, not optionality.
|
|
135
|
-
|
|
136
|
-
## References
|
|
137
|
-
|
|
138
|
-
- PR #262 — "feat: external-runtime coexistence bridge" (closed as superseded, 2026-06-11).
|
|
139
|
-
- An internal parity record (local-only) — external-runtime parity verdict
|
|
140
|
-
(all patterns mechanism-covered; no runtime coupling).
|
|
141
|
-
- An internal parity record (local-only) — the 2026-05-06 cross-vendor council
|
|
142
|
-
decision: harvest portable patterns, "out of suite identity" for the runtime.
|
|
143
|
-
- [`package-self-orientation`](../contracts/package-self-orientation.md) —
|
|
144
|
-
"no app runtime" identity.
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 089
|
|
3
|
-
status: accepted
|
|
4
|
-
date: 2026-06-12
|
|
5
|
-
decision: lean-local-plugin-install
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: —
|
|
8
|
-
phase: plugin-distribution-hygiene
|
|
9
|
-
type: structural
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# ADR-089 — Lean local plugin installs via git-worktree source; marketplace restructure rejected
|
|
13
|
-
|
|
14
|
-
## Status
|
|
15
|
-
|
|
16
|
-
**Accepted** · 2026-06-12.
|
|
17
|
-
|
|
18
|
-
## Context
|
|
19
|
-
|
|
20
|
-
The Claude Code plugin `agent-config@event4u-agent-config`
|
|
21
|
-
([`.claude-plugin/marketplace.json`](../../.claude-plugin/marketplace.json))
|
|
22
|
-
declares `source: "./"` — the repo root is the plugin root. Two channels
|
|
23
|
-
consume it:
|
|
24
|
-
|
|
25
|
-
- **GitHub (official, documented):** Claude Code `git clone`s the repo →
|
|
26
|
-
committed files only → lean (`git archive HEAD` ≈ 27 MB).
|
|
27
|
-
- **Local path** (`claude plugin marketplace add <repo>`): Claude Code
|
|
28
|
-
**raw-copies the entire `source` dir verbatim** — neither `.gitignore`
|
|
29
|
-
nor `.claudeignore` is honored (verified empirically, 2026-06-12) — so
|
|
30
|
-
untracked dev trees (`.venv`, `.venv-mcp`, `node_modules`,
|
|
31
|
-
`internal/bench/ab/clones`) come along: **~1.5 GB per snapshot**,
|
|
32
|
-
regrown on every `claude plugin update`.
|
|
33
|
-
|
|
34
|
-
Additionally, whenever the plugin source contains a `package.json`,
|
|
35
|
-
Claude Code runs a full `npm install` (devDependencies included) into the
|
|
36
|
-
cache during install — ~180 MB of `@babel`/`@eslint`/`@esbuild` the plugin
|
|
37
|
-
never uses at runtime (hooks delegate to the global binary; skills are
|
|
38
|
-
markdown). This is unavoidable on any source that carries the package
|
|
39
|
-
manifest.
|
|
40
|
-
|
|
41
|
-
A failed/never-registered local-path install on this machine left a
|
|
42
|
-
1.1 GB orphan under `~/.claude/plugins/cache/event4u-agent-config/` that
|
|
43
|
-
surfaced a stale, pre-rename `commit-in-chunks` skill alongside the
|
|
44
|
-
current `git-commit-in-chunks`. Cleaning it + registering the plugin
|
|
45
|
-
properly exposed the bloat as a local-path-channel artifact.
|
|
46
|
-
|
|
47
|
-
The forcing question: can the local-path channel be made lean so a
|
|
48
|
-
maintainer can dogfood plugin changes without a 1.5 GB snapshot?
|
|
49
|
-
|
|
50
|
-
## Decision
|
|
51
|
-
|
|
52
|
-
**Keep `source: "./"`. Do not restructure the marketplace source.** For
|
|
53
|
-
lean local installs, point the marketplace at a **dedicated git worktree**
|
|
54
|
-
of the repo instead of the live working tree:
|
|
55
|
-
|
|
56
|
-
- `git worktree add <path> <ref>` → a checkout of committed files only
|
|
57
|
-
(~27 MB), with the 146 symlinked command-skills resolving because the
|
|
58
|
-
full tracked tree is present.
|
|
59
|
-
- `claude plugin marketplace add <worktree-path>` → Claude Code copies
|
|
60
|
-
only the ~45 MB worktree (tracked files; no `.venv`/`internal` clones),
|
|
61
|
-
then `npm install`s the manifest deps → **~224 MB total** (vs 1.5 GB).
|
|
62
|
-
- Test local plugin edits: commit on the worktree's branch +
|
|
63
|
-
`claude plugin update` (snapshots key on commit SHA, so a commit is
|
|
64
|
-
required either way; no push needed).
|
|
65
|
-
|
|
66
|
-
This is operational, not a contract change — `source`, the skill-path
|
|
67
|
-
shape, the two marketplace linters, and the GitHub channel are all
|
|
68
|
-
untouched.
|
|
69
|
-
|
|
70
|
-
## Consequences
|
|
71
|
-
|
|
72
|
-
- Local install drops 1.5 GB → ~224 MB (−85 %) **and** keeps local-change
|
|
73
|
-
testing, with zero risk to the consumer-facing marketplace contract or
|
|
74
|
-
the GitHub channel. The residual ~180 MB is Claude Code's auto
|
|
75
|
-
`npm install`; eliminating it would require a `package.json`-free
|
|
76
|
-
assembled source — i.e. the rejected restructure below.
|
|
77
|
-
- Maintainer keeps one extra worktree dir; to test a branch's plugin,
|
|
78
|
-
`git -C <worktree> checkout <branch>` + `claude plugin update`.
|
|
79
|
-
- No content duplication, no generator/linter churn, no stale generated
|
|
80
|
-
tree to drift.
|
|
81
|
-
- The 1.5 GB cost is simply avoided by never installing from the live
|
|
82
|
-
working tree.
|
|
83
|
-
|
|
84
|
-
## Alternatives
|
|
85
|
-
|
|
86
|
-
- **Restructure `source` to a self-contained lean plugin root**
|
|
87
|
-
(e.g. `source: ".claude-plugin"` or an assembled `dist/plugin/`) —
|
|
88
|
-
**rejected.** The 373 plugin skills are layout-spread: 227 are real
|
|
89
|
-
files under `dist/agent-src/skills/`, and 146 under
|
|
90
|
-
`.claude-plugin/skills/` are **symlinks pointing out of the dir**
|
|
91
|
-
(`../../../src/domains/…`, `dist/agent-src/commands/`). A lean source
|
|
92
|
-
would dangle all 146 symlinks and drop the 227. Making it work needs a
|
|
93
|
-
new assembly step that materializes all 373 skills as real files into a
|
|
94
|
-
committed plugin dir — generator rewrite, committed content
|
|
95
|
-
duplication, both marketplace linters, both-channel re-verification —
|
|
96
|
-
for a **disk-only** benefit (the GitHub channel is already 27 MB).
|
|
97
|
-
Cost/risk far exceeds the gain.
|
|
98
|
-
- **`.claudeignore` allowlist** — rejected: not honored for local-path
|
|
99
|
-
copies (verified).
|
|
100
|
-
- **GitHub-source-only install** — rejected as the primary dev loop:
|
|
101
|
-
lean, but cannot test local commits without pushing to the shared
|
|
102
|
-
remote first.
|
|
103
|
-
- **Leave the live-working-tree local install** — rejected: 1.5 GB per
|
|
104
|
-
snapshot, regrown every update.
|
|
105
|
-
|
|
106
|
-
## References
|
|
107
|
-
|
|
108
|
-
- [`.claude-plugin/marketplace.json`](../../.claude-plugin/marketplace.json) — `source: "./"` unchanged by this decision.
|
|
109
|
-
- [`docs/contracts/skill-distribution-channels.md`](../contracts/skill-distribution-channels.md) — git-consumed marketplace channel.
|
|
110
|
-
- [`src/scripts/condense.py`](../../src/scripts/condense.py) — `generate_plugin_hooks`; skill projection into `.claude-plugin/skills/` (the symlinks).
|
|
111
|
-
- ADR-085 (MCP stdio distribution shape), ADR-088 (no external runtime federation) — sibling distribution-shape decisions.
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
adr: 090
|
|
3
|
-
status: accepted
|
|
4
|
-
date: 2026-06-13
|
|
5
|
-
decision: visibility-command-frontmatter-field
|
|
6
|
-
supersedes: —
|
|
7
|
-
superseded_by: —
|
|
8
|
-
phase: command-surface-refactor-residuals
|
|
9
|
-
type: structural
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# ADR-090 — First-class `visibility:` command-frontmatter field
|
|
13
|
-
|
|
14
|
-
## Status
|
|
15
|
-
|
|
16
|
-
**Accepted** · 2026-06-13. Decided by AI council (anthropic/claude-sonnet-4-5
|
|
17
|
-
+ openai/gpt-4o, peer-review, deep) — converged on **Option A** with execution
|
|
18
|
-
refinements. Council necessity-gate: borderline (3 necessary / 3 unnecessary);
|
|
19
|
-
proceeded on the standing reviewer ask plus design-intent evidence already in
|
|
20
|
-
the codebase (the `visibilityLabel(tier)` helper and the
|
|
21
|
-
`# Proxy until the 'visibility:' field lands` comment).
|
|
22
|
-
|
|
23
|
-
## Context
|
|
24
|
-
|
|
25
|
-
A reviewer repeatedly asked for a real
|
|
26
|
-
`visibility: visible | advanced | internal` command-frontmatter field instead of
|
|
27
|
-
overloading the integer `tier:` (`0/1/2`) as the visibility proxy
|
|
28
|
-
(`docs/contracts/command-surface-tiers.md`). All 150 command sources under
|
|
29
|
-
`src/domains/<pack>/<verb>/command.md` carry `tier:`; no `visibility:` field
|
|
30
|
-
existed.
|
|
31
|
-
|
|
32
|
-
Design-intent evidence already in the tree:
|
|
33
|
-
|
|
34
|
-
- `src/cli/commands/commands.ts` has `visibilityLabel(tier) →
|
|
35
|
-
{0:'visible',1:'advanced',2:'internal'}` and a `--visible` filter on
|
|
36
|
-
`VISIBLE_TIERS={0,1}`. The consumer surface already speaks "visibility",
|
|
37
|
-
derived from the integer.
|
|
38
|
-
- `src/scripts/audit_command_surface.py` carries a standing comment:
|
|
39
|
-
`# Proxy until the 'visibility:' field lands (6.0.0-C Step 4b)`.
|
|
40
|
-
|
|
41
|
-
`tier:` was always a backend integer encoding; "visibility" is the correct
|
|
42
|
-
domain concept for a classification surface consumed by humans and LLM routers.
|
|
43
|
-
Keeping the integer as the contract source of truth is a reversed abstraction.
|
|
44
|
-
|
|
45
|
-
## Decision
|
|
46
|
-
|
|
47
|
-
**Option A — `visibility:` becomes the classifier source of truth; `tier:`
|
|
48
|
-
stays as a derived, back-compat alias.**
|
|
49
|
-
|
|
50
|
-
1. Add an optional `visibility:` enum (`visible | advanced | internal`) to the
|
|
51
|
-
command frontmatter schema. Keep `tier:` (`0/1/2`) in the schema as a
|
|
52
|
-
back-compat alias.
|
|
53
|
-
2. Backfill `visibility:` on all 150 command sources, derived from the current
|
|
54
|
-
`tier:` mapping: `0 → visible`, `1 → advanced`, `2 → internal`. Scripted +
|
|
55
|
-
auditable (one diff, reviewable).
|
|
56
|
-
3. Repoint every reader to **prefer `visibility:`, fall back to `tier:`**:
|
|
57
|
-
`commands.ts` (ls/explain), `audit_command_surface.py` (per-pack
|
|
58
|
-
visible-command budget), `build_discovery_manifest.py`.
|
|
59
|
-
4. The discovery manifest is a **published data contract**. To avoid a silent
|
|
60
|
-
breaking change for external consumers that read the integer `tier` key, the
|
|
61
|
-
manifest **dual-emits** both `tier` and `visibility` during the deprecation
|
|
62
|
-
window.
|
|
63
|
-
5. Validation is **backfill-first, then enforce**: once every command carries
|
|
64
|
-
`visibility:`, the existing tier lint (`lint_command_tiers.py`) is extended
|
|
65
|
-
to require `visibility:` present + a valid enum + consistent with `tier:`
|
|
66
|
-
when both are set. No new standalone script; the check rides the existing
|
|
67
|
-
lint that already runs in CI.
|
|
68
|
-
|
|
69
|
-
### Rejected alternatives
|
|
70
|
-
|
|
71
|
-
- **Option B — hard rename `tier:` → `visibility:`, drop `tier:`.** Cleanest
|
|
72
|
-
end-state but largest blast radius and a hard break of the published manifest
|
|
73
|
-
contract with no migration window. Deferred; may follow once the deprecation
|
|
74
|
-
window closes.
|
|
75
|
-
- **Option C — keep `tier:` authoritative, add `visibility:` only as a
|
|
76
|
-
validate-when-present label (category-field precedent).** Lowest blast radius
|
|
77
|
-
but fails the phase acceptance criterion ("`visibility:` … is the classifier's
|
|
78
|
-
source of truth").
|
|
79
|
-
|
|
80
|
-
## Consequences
|
|
81
|
-
|
|
82
|
-
- Two fields encode the same concept during the deprecation window → drift risk,
|
|
83
|
-
mitigated by the lint consistency check (when both present, they must agree)
|
|
84
|
-
and the scripted single-source backfill.
|
|
85
|
-
- External manifest consumers keep working (dual-emit); migration to read
|
|
86
|
-
`visibility` can proceed on their own schedule.
|
|
87
|
-
- A future ADR may drop `tier:` (Option B end-state) once readers and the
|
|
88
|
-
manifest have fully migrated; `tier:` removal is out of scope here.
|
|
89
|
-
|
|
90
|
-
## References
|
|
91
|
-
|
|
92
|
-
- `agents/roadmaps/archive/road-to-command-surface-refactor-residuals.md` — Phase 1.
|
|
93
|
-
- `docs/contracts/command-surface-tiers.md` — tier contract this field supersedes
|
|
94
|
-
as the human-facing source of truth.
|
|
95
|
-
- ADR-048 — the `category:` validate-when-present precedent weighed against here.
|