@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.
Files changed (901) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +314 -190
  3. package/CONTRIBUTING.md +23 -7
  4. package/MIGRATION.md +20 -0
  5. package/README.md +57 -11
  6. package/dist/agent-src/commands/agents/audit.md +1 -1
  7. package/dist/agent-src/commands/agents/optimize.md +2 -2
  8. package/dist/agent-src/commands/agents/user.md +1 -1
  9. package/dist/agent-src/commands/agents.md +1 -1
  10. package/dist/agent-src/commands/check-current-md.md +3 -3
  11. package/dist/agent-src/commands/commit/in-chunks.md +8 -0
  12. package/dist/agent-src/commands/commit.md +17 -0
  13. package/dist/agent-src/commands/fix/portability.md +2 -2
  14. package/dist/agent-src/commands/fix/pr-comments-loop.md +136 -0
  15. package/dist/agent-src/commands/fix/refs.md +2 -2
  16. package/dist/agent-src/commands/fix/route.md +4 -3
  17. package/dist/agent-src/commands/fix.md +9 -6
  18. package/dist/agent-src/commands/ghostwriter.md +1 -1
  19. package/dist/agent-src/commands/image.md +1 -1
  20. package/dist/agent-src/commands/optimize/augmentignore.md +1 -1
  21. package/dist/agent-src/commands/optimize/skills.md +2 -2
  22. package/dist/agent-src/commands/post-as.md +1 -1
  23. package/dist/agent-src/commands/pr/create.md +4 -0
  24. package/dist/agent-src/commands/research.md +1 -1
  25. package/dist/agent-src/commands/roadmap/ai-council.md +1 -1
  26. package/dist/agent-src/commands/security-audit-config.md +1 -1
  27. package/dist/agent-src/commands/team/delegate.md +4 -0
  28. package/dist/agent-src/commands/video.md +1 -1
  29. package/dist/agent-src/contexts/authority/kernel-rule-edits.md +1 -1
  30. package/dist/agent-src/contexts/contracts/emergency-triage-block.md +2 -2
  31. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +48 -2
  32. package/dist/agent-src/contexts/execution/orchestration-telemetry.md +10 -0
  33. package/dist/agent-src/contexts/execution/subagent-modes-detail.md +109 -8
  34. package/dist/agent-src/contexts/execution/subagent-response-contract.md +20 -0
  35. package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +53 -3
  36. package/dist/agent-src/contexts/override-system.md +75 -5
  37. package/dist/agent-src/rules/code-provenance.md +112 -0
  38. package/dist/agent-src/rules/context-hygiene.md +2 -0
  39. package/dist/agent-src/rules/doc-screenshot-hygiene.md +97 -0
  40. package/dist/agent-src/rules/domain-safety-pii.md +1 -0
  41. package/dist/agent-src/rules/external-code-graph-interop.md +13 -3
  42. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +2 -0
  43. package/dist/agent-src/rules/git-history-discipline.md +2 -0
  44. package/dist/agent-src/rules/history-discipline.md +80 -0
  45. package/dist/agent-src/rules/language-and-tone.md +2 -0
  46. package/dist/agent-src/rules/lethal-trifecta-guard.md +3 -0
  47. package/dist/agent-src/rules/media-governance-routing.md +2 -0
  48. package/dist/agent-src/rules/minimal-safe-diff.md +2 -0
  49. package/dist/agent-src/rules/no-roadmap-references.md +4 -1
  50. package/dist/agent-src/rules/non-destructive-by-default.md +20 -0
  51. package/dist/agent-src/rules/onboarding-gate.md +2 -0
  52. package/dist/agent-src/rules/output-discipline.md +2 -0
  53. package/dist/agent-src/rules/persona-governance.md +2 -0
  54. package/dist/agent-src/rules/php-coding.md +1 -0
  55. package/dist/agent-src/rules/preservation-guard.md +3 -0
  56. package/dist/agent-src/rules/reviewer-awareness.md +1 -0
  57. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +1 -0
  58. package/dist/agent-src/rules/roadmap-progress-sync.md +9 -0
  59. package/dist/agent-src/rules/scale-discipline.md +92 -0
  60. package/dist/agent-src/rules/secret-vcs-guard.md +106 -0
  61. package/dist/agent-src/rules/security-sensitive-stop.md +11 -1
  62. package/dist/agent-src/rules/session-canary.md +77 -0
  63. package/dist/agent-src/rules/skill-quality.md +2 -0
  64. package/dist/agent-src/rules/source-confidentiality.md +2 -0
  65. package/dist/agent-src/rules/source-of-truth.md +2 -0
  66. package/dist/agent-src/rules/telegraph-speak.md +2 -0
  67. package/dist/agent-src/rules/token-optimizer-maintenance.md +3 -1
  68. package/dist/agent-src/rules/tool-safety.md +4 -1
  69. package/dist/agent-src/rules/untrusted-input-defense.md +10 -0
  70. package/dist/agent-src/rules/verify-before-complete.md +2 -0
  71. package/dist/agent-src/skills/adr-create/SKILL.md +17 -1
  72. package/dist/agent-src/skills/agent-security-review/SKILL.md +1 -1
  73. package/dist/agent-src/skills/code-intelligence/SKILL.md +97 -0
  74. package/dist/agent-src/skills/condense-memory/SKILL.md +1 -1
  75. package/dist/agent-src/skills/corpus-grounding/SKILL.md +0 -3
  76. package/dist/agent-src/skills/description-assist/SKILL.md +1 -1
  77. package/dist/agent-src/skills/design-review/SKILL.md +5 -6
  78. package/dist/agent-src/skills/design-tokens/SKILL.md +0 -1
  79. package/dist/agent-src/skills/gated-reach/SKILL.md +185 -0
  80. package/dist/agent-src/skills/gated-reach/evals/triggers.json +72 -0
  81. package/dist/agent-src/skills/history-design/SKILL.md +101 -0
  82. package/dist/agent-src/skills/history-design/evals/triggers.json +17 -0
  83. package/dist/agent-src/skills/humanizer/SKILL.md +3 -3
  84. package/dist/agent-src/skills/image-analyser/SKILL.md +14 -12
  85. package/dist/agent-src/skills/image-editing/SKILL.md +2 -1
  86. package/dist/agent-src/skills/image-generation/SKILL.md +2 -1
  87. package/dist/agent-src/skills/image-provider-routing/SKILL.md +2 -2
  88. package/dist/agent-src/skills/launch-readiness/SKILL.md +1 -1
  89. package/dist/agent-src/skills/license-compliance-audit/SKILL.md +161 -0
  90. package/dist/agent-src/skills/license-compliance-audit/evals/triggers.json +52 -0
  91. package/dist/agent-src/skills/license-compliance-borrow-check/SKILL.md +145 -0
  92. package/dist/agent-src/skills/license-compliance-borrow-check/evals/triggers.json +52 -0
  93. package/dist/agent-src/skills/license-compliance-credits/SKILL.md +97 -0
  94. package/dist/agent-src/skills/license-compliance-credits/evals/triggers.json +52 -0
  95. package/dist/agent-src/skills/md-language-check/SKILL.md +1 -1
  96. package/dist/agent-src/skills/override-management/SKILL.md +1 -1
  97. package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +7 -7
  98. package/dist/agent-src/skills/project-analysis-core/SKILL.md +1 -1
  99. package/dist/agent-src/skills/prompt-engineering-image/SKILL.md +3 -2
  100. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +2 -2
  101. package/dist/agent-src/skills/readme-writing/SKILL.md +6 -1
  102. package/dist/agent-src/skills/recursive-verification/SKILL.md +6 -0
  103. package/dist/agent-src/skills/refine-ticket/SKILL.md +3 -3
  104. package/dist/agent-src/skills/roadmap-writing/SKILL.md +4 -0
  105. package/dist/agent-src/skills/rtk-output-filtering/SKILL.md +31 -12
  106. package/dist/agent-src/skills/rule-refactor/SKILL.md +3 -3
  107. package/dist/agent-src/skills/schema-review/SKILL.md +92 -0
  108. package/dist/agent-src/skills/schema-review/evals/triggers.json +17 -0
  109. package/dist/agent-src/skills/screenshot-hygiene/SKILL.md +171 -0
  110. package/dist/agent-src/skills/secrets-management/SKILL.md +43 -1
  111. package/dist/agent-src/skills/security-audit/SKILL.md +1 -1
  112. package/dist/agent-src/skills/security-maturity-assessment/SKILL.md +1 -1
  113. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +3 -3
  114. package/dist/agent-src/skills/skill-writing/SKILL.md +2 -2
  115. package/dist/agent-src/skills/source-discovery/SKILL.md +5 -5
  116. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +45 -85
  117. package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +5 -4
  118. package/dist/agent-src/skills/subagent-orchestration/prompts/adversarial-verification-council.md +29 -0
  119. package/dist/agent-src/skills/subagent-orchestration/prompts/do-and-judge-two-stage.md +29 -0
  120. package/dist/agent-src/skills/subagent-orchestration/prompts/do-and-judge.md +29 -0
  121. package/dist/agent-src/skills/subagent-orchestration/prompts/do-competitively.md +29 -0
  122. package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-parallel.md +29 -0
  123. package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-steps.md +29 -0
  124. package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-worktrees.md +29 -0
  125. package/dist/agent-src/skills/subagent-orchestration/prompts/judge-with-debate.md +29 -0
  126. package/dist/agent-src/skills/systematic-debugging/SKILL.md +2 -2
  127. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +2 -3
  128. package/dist/agent-src/skills/token-optimizer/SKILL.md +4 -4
  129. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +4 -0
  130. package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +2 -3
  131. package/dist/agent-src/templates/AGENTS.md +1 -1
  132. package/dist/agent-src/templates/agents/.gitattributes.fragment +25 -6
  133. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  134. package/dist/agent-src/templates/command.md +3 -3
  135. package/dist/agent-src/templates/github-workflows/secret-scan.yml +65 -0
  136. package/dist/agent-src/templates/persona.md +2 -2
  137. package/dist/agent-src/templates/rule.md +2 -2
  138. package/dist/agent-src/templates/scripts/telemetry/engagement.ts +77 -0
  139. package/dist/agent-src/templates/scripts/telemetry_record.ts +33 -1
  140. package/dist/cli/commands/doctorShell.js +20 -0
  141. package/dist/cli/commands/doctorShell.js.map +1 -1
  142. package/dist/cli/commands/rtkDetect.js +58 -0
  143. package/dist/cli/commands/rtkDetect.js.map +1 -0
  144. package/dist/cli/configRoot.js +112 -0
  145. package/dist/cli/configRoot.js.map +1 -0
  146. package/dist/cli/configRoot.test.js +97 -0
  147. package/dist/cli/configRoot.test.js.map +1 -0
  148. package/dist/cli/firstRunNotice.js +70 -0
  149. package/dist/cli/firstRunNotice.js.map +1 -0
  150. package/dist/cli/help.js +4 -1
  151. package/dist/cli/help.js.map +1 -1
  152. package/dist/cli/main.js +54 -5
  153. package/dist/cli/main.js.map +1 -1
  154. package/dist/cli/registry.js +8 -1
  155. package/dist/cli/registry.js.map +1 -1
  156. package/dist/discovery/deprecation-report.md +1 -1
  157. package/dist/discovery/discovery-manifest.json +502 -101
  158. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  159. package/dist/discovery/discovery-manifest.summary.md +6 -4
  160. package/dist/discovery/orphan-report.md +1 -1
  161. package/dist/discovery/packs.json +95 -8
  162. package/dist/discovery/trust-report.md +11 -11
  163. package/dist/discovery/workspaces.json +36 -7
  164. package/dist/hooks/dispatch.js +19475 -0
  165. package/dist/install/agentSwitchDetection.js +75 -0
  166. package/dist/install/agentSwitchDetection.js.map +1 -0
  167. package/dist/install/agentSwitchProfile.js +117 -0
  168. package/dist/install/agentSwitchProfile.js.map +1 -0
  169. package/dist/install/atomic.js +1 -1
  170. package/dist/install/detect.js +1 -1
  171. package/dist/install/install.mjs +791 -486
  172. package/dist/install/rtkDetection.js +213 -0
  173. package/dist/install/rtkDetection.js.map +1 -0
  174. package/dist/install/rule_scope.js +2 -1
  175. package/dist/install/rule_scope.js.map +1 -1
  176. package/dist/install/types.js +2 -2
  177. package/dist/install/wizard-plan.js +1 -1
  178. package/dist/install/wizardDismissals.js +58 -0
  179. package/dist/install/wizardDismissals.js.map +1 -0
  180. package/dist/mcp/awesome-mcp-servers.row.md +1 -1
  181. package/dist/mcp/mcp-cloudflare-catalogue.json +1 -1
  182. package/dist/mcp/registry-manifest.json +15 -4
  183. package/dist/mcp/server.json +20 -0
  184. package/dist/mcp/server.mjs +44292 -0
  185. package/dist/router.json +1 -1
  186. package/dist/scripts/condense.js +14 -7
  187. package/dist/scripts/condense.js.map +1 -1
  188. package/dist/server/app.js +12 -0
  189. package/dist/server/app.js.map +1 -1
  190. package/dist/server/io/sharedWriteCheck.js +101 -0
  191. package/dist/server/io/sharedWriteCheck.js.map +1 -0
  192. package/dist/server/routes/ping.js +32 -0
  193. package/dist/server/routes/ping.js.map +1 -1
  194. package/dist/server/routes/settings.js +21 -4
  195. package/dist/server/routes/settings.js.map +1 -1
  196. package/dist/server/routes/userMd.js +21 -4
  197. package/dist/server/routes/userMd.js.map +1 -1
  198. package/dist/server/routes/wizard.js +68 -25
  199. package/dist/server/routes/wizard.js.map +1 -1
  200. package/dist/server/schemas/settings.js +12 -2
  201. package/dist/server/schemas/settings.js.map +1 -1
  202. package/dist/server/serverInfo.js +6 -2
  203. package/dist/server/serverInfo.js.map +1 -1
  204. package/dist/server/token.js +11 -4
  205. package/dist/server/token.js.map +1 -1
  206. package/dist/server/writeRoot.js +15 -1
  207. package/dist/server/writeRoot.js.map +1 -1
  208. package/dist/shared/capabilities.js +33 -0
  209. package/dist/shared/capabilities.js.map +1 -0
  210. package/dist/shared/capabilities.test.js +39 -0
  211. package/dist/shared/capabilities.test.js.map +1 -0
  212. package/dist/ui/assets/index-BpSQt5vm.js +40 -0
  213. package/dist/ui/assets/index-BpSQt5vm.js.map +1 -0
  214. package/dist/ui/assets/index-jSfMW8_t.css +1 -0
  215. package/dist/ui/index.html +15 -6
  216. package/docs/MIGRATION.md +16 -0
  217. package/docs/guidelines/component-oriented-and-oop-development.md +4 -2
  218. package/package.json +22 -9
  219. package/src/agent-src/templates/AGENTS.md +1 -1
  220. package/src/agent-src/templates/scripts/telemetry/engagement.ts +77 -0
  221. package/src/agent-src/templates/scripts/telemetry_record.ts +33 -1
  222. package/src/config/agent-settings.template.yml +94 -13
  223. package/src/config/discovery/packs.yml +22 -0
  224. package/src/config/discovery/workspaces.yml +1 -1
  225. package/src/config/evaluator-budgets.json +47 -0
  226. package/src/config/hook-latency-budget.json +20 -0
  227. package/src/config/reach-channels.yml +217 -0
  228. package/src/config/reach-prescriptions-intake.yml +200 -0
  229. package/src/install/agentSwitchDetection.ts +90 -0
  230. package/src/install/agentSwitchProfile.ts +131 -0
  231. package/src/install/atomic.ts +1 -1
  232. package/src/install/detect.ts +1 -1
  233. package/src/install/rtkDetection.ts +274 -0
  234. package/src/install/rule_scope.ts +9 -2
  235. package/src/install/types.ts +2 -2
  236. package/src/install/wizard-plan.ts +1 -1
  237. package/src/install/wizardDismissals.ts +60 -0
  238. package/src/scripts/_cli/cmd_doctor.ts +62 -1
  239. package/src/scripts/_cli/cmd_memory_get.ts +197 -0
  240. package/src/scripts/_cli/cmd_refresh.ts +30 -0
  241. package/src/scripts/_dispatch.bash +96 -0
  242. package/src/scripts/_lib/auto_dispatch.corpus.test.ts +64 -1
  243. package/src/scripts/_lib/auto_dispatch.ts +76 -0
  244. package/src/scripts/_lib/detect_target_license.ts +714 -0
  245. package/src/scripts/_lib/exec_evidence.ts +251 -0
  246. package/src/scripts/_lib/fixtures/secret-detector/negatives.txt +15 -0
  247. package/src/scripts/_lib/fixtures/secret-detector/positives.txt +15 -0
  248. package/src/scripts/_lib/install_drift.ts +194 -0
  249. package/src/scripts/_lib/kernel_rules.ts +46 -0
  250. package/src/scripts/_lib/memory_fts_index.ts +390 -0
  251. package/src/scripts/_lib/orchestration_record.ts +91 -2
  252. package/src/scripts/_lib/persistence/adapter_raw_sql.ts +443 -0
  253. package/src/scripts/_lib/persistence/detect_audit_coverage.ts +423 -0
  254. package/src/scripts/_lib/persistence/detect_bounded_reads.ts +154 -0
  255. package/src/scripts/_lib/persistence/detect_index_parity.ts +576 -0
  256. package/src/scripts/_lib/persistence/detect_n1_eloquent.ts +226 -0
  257. package/src/scripts/_lib/persistence/detect_offload.ts +441 -0
  258. package/src/scripts/_lib/persistence/detect_prisma_growth.ts +74 -0
  259. package/src/scripts/_lib/persistence/offload_catalog.ts +73 -0
  260. package/src/scripts/_lib/persistence/types.ts +109 -0
  261. package/src/scripts/_lib/reddit_thread_parse.ts +598 -0
  262. package/src/scripts/_lib/risk_paths.ts +160 -0
  263. package/src/scripts/_lib/rtk_allowlist.ts +44 -0
  264. package/src/scripts/_lib/secret_detector.test.ts +108 -0
  265. package/src/scripts/_lib/secret_detector.ts +328 -0
  266. package/src/scripts/_lib/secret_detector_adversarial.test.ts +116 -0
  267. package/src/scripts/_lib/spawn_env.ts +7 -0
  268. package/src/scripts/_lib/sqlite_guard.ts +191 -0
  269. package/src/scripts/_lib/subagent_spawn.ts +53 -0
  270. package/src/scripts/_lib/tool_probe.ts +359 -0
  271. package/src/scripts/_lib/worker_budget.ts +107 -0
  272. package/src/scripts/adr/regenerate_index.ts +81 -6
  273. package/src/scripts/ai_council/blind_review.ts +0 -0
  274. package/src/scripts/ai_council/config.ts +12 -6
  275. package/src/scripts/ai_council/orchestrator.ts +73 -3
  276. package/src/scripts/ai_team/review_gate.ts +8 -10
  277. package/src/scripts/ai_team/team_dispatch.ts +48 -0
  278. package/src/scripts/audit_adr_coverage.ts +33 -0
  279. package/src/scripts/audit_initial_context.ts +1 -1
  280. package/src/scripts/bench_cross_source_eval.ts +400 -0
  281. package/src/scripts/bench_honesty_score.ts +1093 -0
  282. package/src/scripts/bench_hook_latency.ts +218 -0
  283. package/src/scripts/build_mcp_catalog.ts +275 -0
  284. package/src/scripts/build_mcp_registry_manifest.ts +46 -0
  285. package/src/scripts/build_proof.ts +207 -0
  286. package/src/scripts/chat_history.ts +8 -5
  287. package/src/scripts/check_adr_frontmatter.ts +195 -0
  288. package/src/scripts/check_artefact_count_messaging.ts +4 -0
  289. package/src/scripts/check_backstop_debt.ts +210 -0
  290. package/src/scripts/check_bundle_path_leakage.ts +343 -0
  291. package/src/scripts/check_claims.ts +188 -8
  292. package/src/scripts/check_comparison.ts +12 -0
  293. package/src/scripts/check_enforcement_coverage.ts +592 -0
  294. package/src/scripts/check_evaluator_budgets.ts +99 -0
  295. package/src/scripts/check_kernel_rule_bundle.ts +16 -12
  296. package/src/scripts/check_knowledge_sharing.ts +12 -1
  297. package/src/scripts/check_no_external_sources.ts +2 -2
  298. package/src/scripts/check_reach_channels.ts +407 -0
  299. package/src/scripts/check_reach_staleness.ts +364 -0
  300. package/src/scripts/check_secret_leak.test.ts +47 -0
  301. package/src/scripts/check_secret_leak.ts +290 -0
  302. package/src/scripts/check_source_pointer_freshness.ts +28 -3
  303. package/src/scripts/code_graph/build.ts +0 -0
  304. package/src/scripts/code_graph/cli.ts +379 -0
  305. package/src/scripts/code_graph/detect.ts +186 -0
  306. package/src/scripts/code_graph/extract.ts +386 -0
  307. package/src/scripts/code_graph/intent.ts +45 -0
  308. package/src/scripts/code_graph/loader.ts +123 -0
  309. package/src/scripts/code_graph/query.ts +290 -0
  310. package/src/scripts/code_graph/sanitize.ts +30 -0
  311. package/src/scripts/code_graph/sqlite_store.ts +174 -0
  312. package/src/scripts/code_graph/types.ts +83 -0
  313. package/src/scripts/code_graph/validate.ts +63 -0
  314. package/src/scripts/condense.ts +14 -6
  315. package/src/scripts/context_hygiene_hook.ts +8 -5
  316. package/src/scripts/council_cli.ts +126 -12
  317. package/src/scripts/detect_target_license.ts +203 -0
  318. package/src/scripts/evaluator_umbrella.sh +145 -0
  319. package/src/scripts/external_sources_denylist.json +8 -4
  320. package/src/scripts/first_run_gate_hook.ts +9 -5
  321. package/src/scripts/generate_subagent_floor.ts +194 -0
  322. package/src/scripts/hermetic-install.sh +3 -3
  323. package/src/scripts/hook_manifest.yaml +65 -16
  324. package/src/scripts/hooks/block_kernel_rule_writes.ts +212 -0
  325. package/src/scripts/hooks/block_no_verify.ts +9 -9
  326. package/src/scripts/hooks/code_graph_nudge_hook.ts +191 -0
  327. package/src/scripts/hooks/concern_registry.ts +75 -0
  328. package/src/scripts/hooks/design_slop_hook.ts +8 -5
  329. package/src/scripts/hooks/dispatch_entry.ts +37 -0
  330. package/src/scripts/hooks/dispatch_hook.ts +176 -3
  331. package/src/scripts/hooks/hook_stdin.ts +42 -0
  332. package/src/scripts/hooks/rtk_wrap_hook.ts +26 -12
  333. package/src/scripts/hot_context_hook.ts +7 -6
  334. package/src/scripts/injection_scan_hook.ts +9 -1
  335. package/src/scripts/install +6 -6
  336. package/src/scripts/install-hooks.sh +4 -4
  337. package/src/scripts/install.sh +5 -4
  338. package/src/scripts/install.ts +264 -23
  339. package/src/scripts/iron_law_sha.ts +3 -12
  340. package/src/scripts/learning_sidecar.ts +0 -0
  341. package/src/scripts/lint_budget_ownership.ts +89 -0
  342. package/src/scripts/lint_command_routing.ts +35 -5
  343. package/src/scripts/lint_command_verbs.ts +42 -9
  344. package/src/scripts/lint_consumer_internal_refs.ts +211 -0
  345. package/src/scripts/lint_discovery_vocabulary.ts +2 -0
  346. package/src/scripts/lint_documented_commands.ts +670 -0
  347. package/src/scripts/lint_framework_leakage.ts +17 -3
  348. package/src/scripts/lint_framework_leakage_allowlist.json +32 -0
  349. package/src/scripts/lint_governed_writes.ts +335 -0
  350. package/src/scripts/lint_hidden_unicode.ts +6 -0
  351. package/src/scripts/lint_mcp_registry_manifest.ts +26 -1
  352. package/src/scripts/lint_memory_tripwire.ts +186 -0
  353. package/src/scripts/lint_override_kernel_guard.ts +267 -0
  354. package/src/scripts/lint_persistence.ts +171 -0
  355. package/src/scripts/lint_pre_migration_refs.ts +106 -0
  356. package/src/scripts/lint_provenance.ts +547 -0
  357. package/src/scripts/lint_provenance_vocabulary.ts +437 -0
  358. package/src/scripts/lint_spawn_payload.ts +283 -0
  359. package/src/scripts/lint_store_boundary.ts +152 -0
  360. package/src/scripts/lint_versioned_cache.ts +7 -1
  361. package/src/scripts/mcp_server/__main__.ts +7 -2
  362. package/src/scripts/mcp_server/catalog.ts +23 -1
  363. package/src/scripts/mcp_server/consumer_tool_catalog.json +563 -193
  364. package/src/scripts/mcp_server/prompts.ts +6 -0
  365. package/src/scripts/mcp_server/tool_catalog_source.ts +332 -0
  366. package/src/scripts/mcp_server/tools.ts +56 -5
  367. package/src/scripts/mcp_telemetry_query.ts +2 -33
  368. package/src/scripts/mcp_telemetry_store.ts +64 -34
  369. package/src/scripts/measure_rule_budget.ts +3 -12
  370. package/src/scripts/memory_learn_hook.ts +126 -0
  371. package/src/scripts/memory_lookup.ts +0 -0
  372. package/src/scripts/memory_replay_24.ts +312 -0
  373. package/src/scripts/memory_report.ts +16 -3
  374. package/src/scripts/memory_signal.ts +48 -0
  375. package/src/scripts/memory_status.ts +6 -0
  376. package/src/scripts/minimal_safe_diff_hook.ts +8 -5
  377. package/src/scripts/onboarding_gate_hook.ts +8 -5
  378. package/src/scripts/orchestration_record.ts +16 -0
  379. package/src/scripts/pr_url_reminder_hook.ts +8 -1
  380. package/src/scripts/prepack-check.mjs +17 -0
  381. package/src/scripts/prepack_lifecycle_check.d.mts +8 -0
  382. package/src/scripts/prepack_lifecycle_check.mjs +82 -0
  383. package/src/scripts/profile_staleness_hook.ts +8 -7
  384. package/src/scripts/reach_doctor.ts +1651 -0
  385. package/src/scripts/release.ts +24 -3
  386. package/src/scripts/report_install_drift.ts +109 -0
  387. package/src/scripts/risk_escalation_shadow.ts +160 -0
  388. package/src/scripts/roadmap_progress_hook.ts +8 -5
  389. package/src/scripts/schemas/agent-settings.schema.json +23 -0
  390. package/src/scripts/schemas/license-policy.schema.json +89 -0
  391. package/src/scripts/schemas/provenance-borrow.schema.json +46 -0
  392. package/src/scripts/schemas/reach-channels.schema.json +134 -0
  393. package/src/scripts/schemas/reach-doctor-payload.schema.json +220 -0
  394. package/src/scripts/schemas/rule.schema.json +20 -0
  395. package/src/scripts/self_review_gate.test.ts +173 -1
  396. package/src/scripts/self_review_gate.ts +155 -15
  397. package/src/scripts/session_canary_hook.ts +182 -0
  398. package/src/scripts/skill_linter.ts +55 -0
  399. package/src/scripts/smoke_quickstart.ts +2 -2
  400. package/src/scripts/surface_probe_hook.ts +8 -7
  401. package/src/scripts/sync_gitattributes.ts +310 -0
  402. package/src/scripts/team_review_gate_hook.ts +13 -16
  403. package/src/scripts/validate_reach_prescriptions.ts +751 -0
  404. package/src/scripts/verify_before_complete_hook.ts +8 -5
  405. package/src/scripts/wrapper_freshness_hook.ts +8 -7
  406. package/src/server/schemas/settings.ts +24 -2
  407. package/src/shared/capabilities.test.ts +43 -0
  408. package/src/shared/capabilities.ts +75 -0
  409. package/src/templates/minimal/agents-overrides-readme.md +20 -0
  410. package/dist/ui/assets/index-BPFMZWUs.css +0 -1
  411. package/dist/ui/assets/index-BiEZiZ31.js +0 -40
  412. package/dist/ui/assets/index-BiEZiZ31.js.map +0 -1
  413. package/docs/CLAIMS.md +0 -261
  414. package/docs/DISTRIBUTION_CHECKLIST.md +0 -170
  415. package/docs/RELEASE_STORY_TEMPLATE.md +0 -37
  416. package/docs/SKILL_CENSUS.md +0 -352
  417. package/docs/adrs/cost/0001-hard-stop-hook.md +0 -114
  418. package/docs/adrs/cost/README.md +0 -9
  419. package/docs/adrs/memory/0001-consumer-side-snapshot.md +0 -119
  420. package/docs/adrs/memory/README.md +0 -10
  421. package/docs/adrs/router/0001-three-tier-routing.md +0 -119
  422. package/docs/adrs/router/README.md +0 -9
  423. package/docs/adrs/schema/0001-json-schema-frontmatter.md +0 -102
  424. package/docs/adrs/schema/README.md +0 -9
  425. package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +0 -99
  426. package/docs/adrs/smoke/README.md +0 -9
  427. package/docs/adrs/telegraph/0001-default-off-until-bench.md +0 -93
  428. package/docs/adrs/telegraph/README.md +0 -9
  429. package/docs/announcements/2026-05-non-dev-launch.md +0 -79
  430. package/docs/announcements/2026-07-honest-cost-sweep-launch.md +0 -84
  431. package/docs/anti-reskin-gate.md +0 -60
  432. package/docs/architecture/augment-projection.md +0 -70
  433. package/docs/architecture/claude-bundle.md +0 -77
  434. package/docs/architecture/current-onboard-baseline.md +0 -126
  435. package/docs/architecture/current-safety-behavior.md +0 -137
  436. package/docs/architecture/multi-tool-projection.md +0 -125
  437. package/docs/architecture/setup-vs-settings-shared-surface.md +0 -114
  438. package/docs/architecture/source-projection.md +0 -85
  439. package/docs/architecture.md +0 -390
  440. package/docs/archive/CHANGELOG-6.0.0-overview.md +0 -953
  441. package/docs/archive/CHANGELOG-7.0.0.md +0 -419
  442. package/docs/archive/CHANGELOG-pre-2.11.0.md +0 -141
  443. package/docs/archive/CHANGELOG-pre-2.15.0.md +0 -244
  444. package/docs/archive/CHANGELOG-pre-2.16.0.md +0 -48
  445. package/docs/archive/CHANGELOG-pre-2.17.0.md +0 -63
  446. package/docs/archive/CHANGELOG-pre-2.2.0.md +0 -2138
  447. package/docs/archive/CHANGELOG-pre-2.20.0.md +0 -159
  448. package/docs/archive/CHANGELOG-pre-2.25.0.md +0 -191
  449. package/docs/archive/CHANGELOG-pre-2.7.0.md +0 -185
  450. package/docs/archive/CHANGELOG-pre-3.0.0.md +0 -130
  451. package/docs/archive/CHANGELOG-pre-3.1.0.md +0 -167
  452. package/docs/archive/CHANGELOG-pre-3.2.0.md +0 -268
  453. package/docs/archive/CHANGELOG-pre-4.0.0.md +0 -80
  454. package/docs/archive/CHANGELOG-pre-4.5.0.md +0 -289
  455. package/docs/archive/CHANGELOG-pre-5.4.0.md +0 -260
  456. package/docs/archive/CHANGELOG-pre-5.9.0.md +0 -270
  457. package/docs/archive/CHANGELOG-pre-6.0.0.md +0 -473
  458. package/docs/archive/CHANGELOG-pre-7.0.0.md +0 -126
  459. package/docs/archive/CHANGELOG-pre-8.0.0.md +0 -301
  460. package/docs/archive/CHANGELOG-pre-8.1.0.md +0 -316
  461. package/docs/archive/CHANGELOG-pre-8.12.0.md +0 -304
  462. package/docs/archive/CHANGELOG-pre-8.9.0.md +0 -306
  463. package/docs/archive/CHANGELOG-pre-9.2.0.md +0 -276
  464. package/docs/artefact-census.md +0 -71
  465. package/docs/benchmark.md +0 -648
  466. package/docs/benchmark.pinned.yml +0 -31
  467. package/docs/benchmarks.md +0 -85
  468. package/docs/capability-matrix.md +0 -33
  469. package/docs/case-studies/_template.md +0 -60
  470. package/docs/case-studies/frontend-design-positioning.md +0 -86
  471. package/docs/catalog.md +0 -721
  472. package/docs/command-flows.md +0 -272
  473. package/docs/command-naming-audit.md +0 -60
  474. package/docs/comparison.yaml +0 -45
  475. package/docs/contracts/CHANGELOG-conventions.md +0 -149
  476. package/docs/contracts/STABILITY.md +0 -188
  477. package/docs/contracts/adoption-signal-floor.md +0 -127
  478. package/docs/contracts/adr-architectural-consensus-mechanism.md +0 -68
  479. package/docs/contracts/adr-chat-history-split.md +0 -140
  480. package/docs/contracts/adr-command-suggestion.md +0 -144
  481. package/docs/contracts/adr-forecast-construction-shape.md +0 -90
  482. package/docs/contracts/adr-gtm-context-spine.md +0 -116
  483. package/docs/contracts/adr-implement-ticket-runtime.md +0 -121
  484. package/docs/contracts/adr-install-user-type-axis.md +0 -107
  485. package/docs/contracts/adr-layout.md +0 -107
  486. package/docs/contracts/adr-level-6-productization.md +0 -145
  487. package/docs/contracts/adr-mcp-runtime.md +0 -128
  488. package/docs/contracts/adr-product-ui-track.md +0 -381
  489. package/docs/contracts/adr-prompt-driven-execution.md +0 -186
  490. package/docs/contracts/adr-settings-sync-engine.md +0 -128
  491. package/docs/contracts/adr-user-types-axis.md +0 -127
  492. package/docs/contracts/adr-wing4-context-spine.md +0 -126
  493. package/docs/contracts/agent-user-schema.md +0 -170
  494. package/docs/contracts/agents-layout.md +0 -148
  495. package/docs/contracts/agents-md-tech-stack.md +0 -75
  496. package/docs/contracts/ai-council-config.md +0 -829
  497. package/docs/contracts/ai-team-config.md +0 -224
  498. package/docs/contracts/analysis-memory-loop.md +0 -149
  499. package/docs/contracts/at-rest-encryption.md +0 -191
  500. package/docs/contracts/audit-log-v1.md +0 -150
  501. package/docs/contracts/auto-orchestration-v1.md +0 -70
  502. package/docs/contracts/benchmark-ab-contract.md +0 -106
  503. package/docs/contracts/benchmark-corpus-spec.md +0 -125
  504. package/docs/contracts/benchmark-report-schema.md +0 -113
  505. package/docs/contracts/branch-protection-policy.md +0 -139
  506. package/docs/contracts/brand-token-consumption.md +0 -74
  507. package/docs/contracts/capability-boundary.md +0 -69
  508. package/docs/contracts/capability-packs.md +0 -217
  509. package/docs/contracts/ci-cost-budget.md +0 -111
  510. package/docs/contracts/ci-green-floor.md +0 -141
  511. package/docs/contracts/command-category-governance.md +0 -84
  512. package/docs/contracts/command-clusters.md +0 -399
  513. package/docs/contracts/command-surface-tiers.md +0 -176
  514. package/docs/contracts/command-taxonomy.md +0 -137
  515. package/docs/contracts/condensation-default-kill-criterion.md +0 -116
  516. package/docs/contracts/config-presets.md +0 -144
  517. package/docs/contracts/conformance.md +0 -84
  518. package/docs/contracts/consumer-bridge.md +0 -73
  519. package/docs/contracts/context-paths.md +0 -101
  520. package/docs/contracts/context-spine.md +0 -179
  521. package/docs/contracts/cost-dashboard.md +0 -143
  522. package/docs/contracts/cost-enforcement.md +0 -134
  523. package/docs/contracts/cost-profile-defaults.md +0 -110
  524. package/docs/contracts/cost-summary-schema.md +0 -107
  525. package/docs/contracts/creative-pack-boundary.md +0 -63
  526. package/docs/contracts/cross-repo-retrieval.md +0 -64
  527. package/docs/contracts/cross-wing-handoff.md +0 -134
  528. package/docs/contracts/daily-workspace.md +0 -147
  529. package/docs/contracts/decision-engine-gates.md +0 -120
  530. package/docs/contracts/decision-trace-v1.md +0 -177
  531. package/docs/contracts/design-artifact-lifecycle.md +0 -93
  532. package/docs/contracts/design-artifact-verification.md +0 -153
  533. package/docs/contracts/discovery-manifest.md +0 -209
  534. package/docs/contracts/discovery-manifest.schema.json +0 -254
  535. package/docs/contracts/evidence-based-pruning.md +0 -102
  536. package/docs/contracts/explain-modes.md +0 -187
  537. package/docs/contracts/explain-trace.schema.json +0 -144
  538. package/docs/contracts/file-ownership-matrix.json +0 -13941
  539. package/docs/contracts/file-ownership-matrix.md +0 -135
  540. package/docs/contracts/frontmatter-contract.md +0 -140
  541. package/docs/contracts/ghostwriter-schema.md +0 -337
  542. package/docs/contracts/governance-enforcement-projection.md +0 -159
  543. package/docs/contracts/gui-wizard.md +0 -350
  544. package/docs/contracts/harness-expectations.md +0 -128
  545. package/docs/contracts/hook-architecture-v1.md +0 -325
  546. package/docs/contracts/host-agent-protocol.md +0 -110
  547. package/docs/contracts/implement-ticket-flow.md +0 -625
  548. package/docs/contracts/init-telemetry.md +0 -132
  549. package/docs/contracts/injected-block-authenticity-model.md +0 -66
  550. package/docs/contracts/install-layout.md +0 -249
  551. package/docs/contracts/install-scopes.md +0 -82
  552. package/docs/contracts/installed-tools-lockfile.md +0 -144
  553. package/docs/contracts/installer-agent-mode.md +0 -137
  554. package/docs/contracts/iron-law-overrides.txt +0 -26
  555. package/docs/contracts/kernel-membership.md +0 -339
  556. package/docs/contracts/linear-ai-rules-inclusion.md +0 -143
  557. package/docs/contracts/linear-ai-three-layers.md +0 -130
  558. package/docs/contracts/linter-structural-model.md +0 -181
  559. package/docs/contracts/load-context-budget-model.md +0 -259
  560. package/docs/contracts/load-context-schema.md +0 -220
  561. package/docs/contracts/local-analytics.md +0 -160
  562. package/docs/contracts/local-knowledge-ingestion.md +0 -96
  563. package/docs/contracts/local-server-api.md +0 -134
  564. package/docs/contracts/low-impact-corpus-format.md +0 -95
  565. package/docs/contracts/mcp-beta-criteria.md +0 -130
  566. package/docs/contracts/mcp-cloud-scope.md +0 -355
  567. package/docs/contracts/mcp-discovery-phase-notice.md +0 -60
  568. package/docs/contracts/mcp-phase-1-scope.md +0 -272
  569. package/docs/contracts/mcp-registry-manifest.schema.json +0 -129
  570. package/docs/contracts/mcp-tool-inventory.md +0 -64
  571. package/docs/contracts/mcp-tool-stub-envelope.md +0 -78
  572. package/docs/contracts/measurement-baseline.md +0 -103
  573. package/docs/contracts/memory-visibility-v1.md +0 -160
  574. package/docs/contracts/mental-models.md +0 -336
  575. package/docs/contracts/migrate-command.md +0 -233
  576. package/docs/contracts/multi-tool-projection-fidelity.md +0 -134
  577. package/docs/contracts/namespace.md +0 -125
  578. package/docs/contracts/no-runtime-boundary.md +0 -61
  579. package/docs/contracts/one-off-script-lifecycle.md +0 -110
  580. package/docs/contracts/orchestration-dsl-v1.md +0 -153
  581. package/docs/contracts/package-self-orientation.md +0 -163
  582. package/docs/contracts/pilot/agent-authority.md +0 -24
  583. package/docs/contracts/pilot/direct-answers.md +0 -70
  584. package/docs/contracts/pilot/language-and-tone.md +0 -63
  585. package/docs/contracts/plain-language-surface.md +0 -117
  586. package/docs/contracts/prelaunch-diagnostics.md +0 -151
  587. package/docs/contracts/profile-system.md +0 -167
  588. package/docs/contracts/reasoning-discipline-protocol.md +0 -83
  589. package/docs/contracts/release-pr-gating.md +0 -151
  590. package/docs/contracts/release-sizing.md +0 -107
  591. package/docs/contracts/release-trunk-sync.md +0 -105
  592. package/docs/contracts/review-lens-schema.md +0 -64
  593. package/docs/contracts/roadmap-complexity-standard.md +0 -138
  594. package/docs/contracts/role-experience.md +0 -125
  595. package/docs/contracts/router-blending.md +0 -71
  596. package/docs/contracts/rule-classification.md +0 -171
  597. package/docs/contracts/rule-interactions.md +0 -132
  598. package/docs/contracts/rule-interactions.yml +0 -260
  599. package/docs/contracts/rule-priority-hierarchy.md +0 -88
  600. package/docs/contracts/rule-router.md +0 -287
  601. package/docs/contracts/safety-model.md +0 -129
  602. package/docs/contracts/session-profile-overlay.md +0 -157
  603. package/docs/contracts/settings-api.md +0 -264
  604. package/docs/contracts/settings-gui-agent-mode.schema.json +0 -128
  605. package/docs/contracts/settings-sync-yaml-subset.md +0 -139
  606. package/docs/contracts/skill-bundled-assets.md +0 -62
  607. package/docs/contracts/skill-discovery.md +0 -80
  608. package/docs/contracts/skill-distribution-channels.md +0 -66
  609. package/docs/contracts/skill-domains.md +0 -144
  610. package/docs/contracts/skill-dry-run.md +0 -47
  611. package/docs/contracts/skill-family-map.yml +0 -915
  612. package/docs/contracts/smoke-contracts.md +0 -144
  613. package/docs/contracts/subagent-boundary.md +0 -59
  614. package/docs/contracts/surface-agent-contracts.md +0 -153
  615. package/docs/contracts/surface-matrix.md +0 -108
  616. package/docs/contracts/surface-tiers.md +0 -81
  617. package/docs/contracts/telegraph-telemetry.md +0 -83
  618. package/docs/contracts/ticket-bundle-format.md +0 -233
  619. package/docs/contracts/tier-3-contrib-plugin.md +0 -137
  620. package/docs/contracts/trust-and-safety.md +0 -144
  621. package/docs/contracts/ui-stack-extension.md +0 -237
  622. package/docs/contracts/ui-track-flow.md +0 -329
  623. package/docs/contracts/universal-skills.md +0 -91
  624. package/docs/contracts/user-type-schema.md +0 -146
  625. package/docs/contracts/value-dashboard-spec.md +0 -378
  626. package/docs/contracts/value-report-schema.md +0 -168
  627. package/docs/contracts/workflow-packs.md +0 -121
  628. package/docs/contracts/workspace-boundary.md +0 -84
  629. package/docs/contracts/workspace-documents.md +0 -144
  630. package/docs/contracts/write-engine.md +0 -182
  631. package/docs/cookbook.md +0 -152
  632. package/docs/customization.md +0 -685
  633. package/docs/decisions/ADR-001-kernel-swap-deferred.md +0 -109
  634. package/docs/decisions/ADR-002-kernel-bucket-overrides.md +0 -135
  635. package/docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md +0 -137
  636. package/docs/decisions/ADR-004-rule-governance-pruning.md +0 -240
  637. package/docs/decisions/ADR-005-subagent-worktrees.md +0 -120
  638. package/docs/decisions/ADR-006-skill-tools-python-pilot.md +0 -114
  639. package/docs/decisions/ADR-007-agent-discovery-scopes.md +0 -371
  640. package/docs/decisions/ADR-008-installed-tools-manifest.md +0 -160
  641. package/docs/decisions/ADR-009-event4u-namespace.md +0 -188
  642. package/docs/decisions/ADR-010-profile-pack-preset-boundary.md +0 -168
  643. package/docs/decisions/ADR-011-domain-pack-readiness.md +0 -213
  644. package/docs/decisions/ADR-012-typescript-cli-shell.md +0 -162
  645. package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +0 -342
  646. package/docs/decisions/ADR-014-gui-framework-choice.md +0 -136
  647. package/docs/decisions/ADR-015-discovery-manifest-contract.md +0 -146
  648. package/docs/decisions/ADR-016-installer-architecture.md +0 -189
  649. package/docs/decisions/ADR-017-monorepo-physical-layout.md +0 -261
  650. package/docs/decisions/ADR-018-trust-and-safety-layer.md +0 -159
  651. package/docs/decisions/ADR-019-router-json-dist-location.md +0 -124
  652. package/docs/decisions/ADR-020-global-only-consumer-scope.md +0 -213
  653. package/docs/decisions/ADR-021-deployment-shape.md +0 -153
  654. package/docs/decisions/ADR-022-daily-workspace-decomposition.md +0 -140
  655. package/docs/decisions/ADR-023-host-agent-protocol.md +0 -129
  656. package/docs/decisions/ADR-024-workspace-v0-feature-floor.md +0 -126
  657. package/docs/decisions/ADR-025-workspace-chrome.md +0 -119
  658. package/docs/decisions/ADR-026-explain-mode-translation.md +0 -117
  659. package/docs/decisions/ADR-027-changelog-machine-vs-manual.md +0 -129
  660. package/docs/decisions/ADR-028-root-layout.md +0 -147
  661. package/docs/decisions/ADR-029-multi-workspace-deferred.md +0 -122
  662. package/docs/decisions/ADR-030-claude-code-command-projection.md +0 -147
  663. package/docs/decisions/ADR-031-validation-severity-tiers-and-projection-roundtrip.md +0 -97
  664. package/docs/decisions/ADR-032-linked-projects-scope.md +0 -122
  665. package/docs/decisions/ADR-033-distribution-identity-npm-primary.md +0 -81
  666. package/docs/decisions/ADR-034-per-skill-model-recommendation-transport.md +0 -63
  667. package/docs/decisions/ADR-035-model-capability-tiers.md +0 -104
  668. package/docs/decisions/ADR-036-global-install-browser-wizard-handoff.md +0 -106
  669. package/docs/decisions/ADR-037-cost-profile-untangle.md +0 -117
  670. package/docs/decisions/ADR-038-canonical-settings-path.md +0 -96
  671. package/docs/decisions/ADR-039-claude-skills-untracked.md +0 -139
  672. package/docs/decisions/ADR-040-execution-model-projection-time-filtering.md +0 -244
  673. package/docs/decisions/ADR-041-controlled-command-verbs.md +0 -133
  674. package/docs/decisions/ADR-042-runtime-resolver-decision-gate.md +0 -113
  675. package/docs/decisions/ADR-043-monorepo-collapse-to-src-domains.md +0 -128
  676. package/docs/decisions/ADR-044-command-naming-scheme-hyphenated.md +0 -250
  677. package/docs/decisions/ADR-045-src-source-layout-and-profiles-as-views.md +0 -111
  678. package/docs/decisions/ADR-046-thin-command-principle.md +0 -93
  679. package/docs/decisions/ADR-047-framework-neutral-stack-adaptive-commands.md +0 -94
  680. package/docs/decisions/ADR-048-command-justification-rule.md +0 -106
  681. package/docs/decisions/ADR-049-configuration-trust-boundary.md +0 -132
  682. package/docs/decisions/ADR-050-workspace-vs-package-root-boundary.md +0 -121
  683. package/docs/decisions/ADR-051-uncondensed-source-container-relocation.md +0 -114
  684. package/docs/decisions/ADR-052-packages-removal-and-pack-home-migration.md +0 -86
  685. package/docs/decisions/ADR-053-agents-namespace-dual-role-resolution.md +0 -132
  686. package/docs/decisions/ADR-054-rule-adherence-decay-triggered-restate.md +0 -143
  687. package/docs/decisions/ADR-055-flow-layer-data-model.md +0 -235
  688. package/docs/decisions/ADR-056-unvalidated-video-adapters-disposition.md +0 -124
  689. package/docs/decisions/ADR-057-consolidation-evidence-gate-outcomes.md +0 -135
  690. package/docs/decisions/ADR-058-condensed-output-relocation-to-dist.md +0 -94
  691. package/docs/decisions/ADR-059-render-resume-filesystem-as-state.md +0 -161
  692. package/docs/decisions/ADR-060-comfyui-sandbox-model.md +0 -154
  693. package/docs/decisions/ADR-061-corpus-grounding-layer.md +0 -230
  694. package/docs/decisions/ADR-062-encrypt-at-rest-store-architecture.md +0 -121
  695. package/docs/decisions/ADR-063-append-jsonl-encryption-deferred.md +0 -83
  696. package/docs/decisions/ADR-064-append-jsonl-per-record-encryption.md +0 -113
  697. package/docs/decisions/ADR-065-tier3-inbox-handoff-v0.md +0 -86
  698. package/docs/decisions/ADR-066-skill-body-prerendering.md +0 -93
  699. package/docs/decisions/ADR-067-glama-registry-listing.md +0 -259
  700. package/docs/decisions/ADR-068-host-tier-detection.md +0 -90
  701. package/docs/decisions/ADR-069-prompt-renderer.md +0 -97
  702. package/docs/decisions/ADR-070-tier1-drive-loop.md +0 -94
  703. package/docs/decisions/ADR-071-launch-drive-integration.md +0 -95
  704. package/docs/decisions/ADR-072-codex-gemini-drive-configs.md +0 -90
  705. package/docs/decisions/ADR-073-drive-health-kill-switch.md +0 -81
  706. package/docs/decisions/ADR-074-drive-kill-switch-auto-recovery.md +0 -84
  707. package/docs/decisions/ADR-075-workspace-gui-drive.md +0 -83
  708. package/docs/decisions/ADR-076-workspace-multi-turn.md +0 -92
  709. package/docs/decisions/ADR-077-workspace-followup-gui.md +0 -70
  710. package/docs/decisions/ADR-078-drive-health-panel.md +0 -70
  711. package/docs/decisions/ADR-079-workspace-host-picker.md +0 -81
  712. package/docs/decisions/ADR-080-host-session-expired-410.md +0 -92
  713. package/docs/decisions/ADR-081-drive-health-reset-and-410-affordance.md +0 -71
  714. package/docs/decisions/ADR-082-410-one-click-relaunch.md +0 -58
  715. package/docs/decisions/ADR-083-session-thread-and-arbitrary-continuation.md +0 -85
  716. package/docs/decisions/ADR-084-drive-health-refresh-on-drive.md +0 -52
  717. package/docs/decisions/ADR-085-mcp-stdio-end-user-distribution-shape.md +0 -158
  718. package/docs/decisions/ADR-086-read-only-cross-agent-mcp-discovery-helper.md +0 -171
  719. package/docs/decisions/ADR-087-installer-e2e-test-strategy.md +0 -111
  720. package/docs/decisions/ADR-088-no-external-runtime-federation.md +0 -144
  721. package/docs/decisions/ADR-089-lean-local-plugin-install.md +0 -111
  722. package/docs/decisions/ADR-090-visibility-command-frontmatter-field.md +0 -95
  723. package/docs/decisions/ADR-091-split-meta-capability-packs.md +0 -113
  724. package/docs/decisions/ADR-092-defer-command-tier-alias-removal.md +0 -117
  725. package/docs/decisions/ADR-093-ai-council-config-user-global.md +0 -117
  726. package/docs/decisions/ADR-094-agent-memory-layer-removal.md +0 -94
  727. package/docs/decisions/ADR-095-workspace-boundary-contract.md +0 -108
  728. package/docs/decisions/ADR-096-analysis-workbench.md +0 -110
  729. package/docs/decisions/ADR-097-mission-recipe-privilege-boundary.md +0 -121
  730. package/docs/decisions/ADR-098-evidence-first-structure-discovery.md +0 -154
  731. package/docs/decisions/ADR-099-file-first-pattern-library.md +0 -87
  732. package/docs/decisions/ADR-100-global-knowledge-card-sharing.md +0 -140
  733. package/docs/decisions/ADR-101-ticket-bundle-emission.md +0 -109
  734. package/docs/decisions/ADR-102-ticket-handoff-paste-and-mcp.md +0 -72
  735. package/docs/decisions/ADR-103-global-knowledge-default-off-until-measured.md +0 -92
  736. package/docs/decisions/ADR-104-ai-council-config-global-only.md +0 -119
  737. package/docs/decisions/ADR-105-automatic-subagent-orchestration.md +0 -108
  738. package/docs/decisions/ADR-106-recursive-verification-benchmark-gate.md +0 -126
  739. package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +0 -70
  740. package/docs/decisions/ADR-108-open-source-forever-no-commercial-tier.md +0 -46
  741. package/docs/decisions/ADR-109-subagent-v1-contract.md +0 -246
  742. package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +0 -110
  743. package/docs/decisions/ADR-111-canonical-glama-listing.md +0 -97
  744. package/docs/decisions/ADR-112-stdio-lite-stays-read-only.md +0 -92
  745. package/docs/decisions/ADR-113-ci-native-release-label-trigger.md +0 -201
  746. package/docs/decisions/ADR-114-commit-policy-iron-law-override.md +0 -85
  747. package/docs/decisions/ADR-115-command-cluster-consolidation-phase-4.md +0 -91
  748. package/docs/decisions/ADR-116-memory-tripwire-activation-path.md +0 -144
  749. package/docs/decisions/ADR-117-subagents-auto-default-on.md +0 -89
  750. package/docs/decisions/ADR-118-loop-engineering-boundaries.md +0 -162
  751. package/docs/decisions/ADR-119-global-knowledge-default-on.md +0 -104
  752. package/docs/decisions/ADR-120-council-chairman-mode.md +0 -70
  753. package/docs/decisions/ADR-121-knowledge-sensitivity-classes.md +0 -90
  754. package/docs/decisions/ADR-122-adversarial-verification-council.md +0 -166
  755. package/docs/decisions/ADR-123-runtime-security-scope-and-spawn-hardening.md +0 -142
  756. package/docs/decisions/ADR-200-python-to-typescript-migration.md +0 -203
  757. package/docs/decisions/ADR-rule-kernel-and-router.md +0 -133
  758. package/docs/decisions/INDEX.md +0 -136
  759. package/docs/deploy/connector-setup.md +0 -129
  760. package/docs/deploy/env-vars.md +0 -70
  761. package/docs/deploy/policy-cookbook.md +0 -130
  762. package/docs/deploy/quickstart.md +0 -112
  763. package/docs/deploy/small-team-recipe.md +0 -148
  764. package/docs/deploy/team-deployment-posture.md +0 -111
  765. package/docs/design/adversarial-council-eval.md +0 -106
  766. package/docs/design/council-vs-solo-baseline.md +0 -92
  767. package/docs/design/cross-model-parity-eval.md +0 -82
  768. package/docs/design/length-neutral-judge-rerun.md +0 -92
  769. package/docs/design/utilization-window-criteria.md +0 -51
  770. package/docs/development.md +0 -230
  771. package/docs/distribution/awesome-list-submission.md +0 -46
  772. package/docs/distribution/consumer-matrix.md +0 -96
  773. package/docs/distribution/launch-story-draft.md +0 -58
  774. package/docs/distribution/mcp-submission-checklist.md +0 -95
  775. package/docs/distribution/public-install-smoke.md +0 -68
  776. package/docs/distribution/registries.md +0 -117
  777. package/docs/distribution/registry-submissions.md +0 -85
  778. package/docs/distribution/telemetry-privacy.md +0 -128
  779. package/docs/distribution/telemetry-schema.md +0 -174
  780. package/docs/distribution/topics-equivalents-decay-policy.md +0 -51
  781. package/docs/end-to-end-walkthroughs.md +0 -165
  782. package/docs/enforcement-by-host.md +0 -44
  783. package/docs/examples/agent-user.example.md +0 -22
  784. package/docs/experiences/agency.md +0 -49
  785. package/docs/experiences/content_creator.md +0 -49
  786. package/docs/experiences/developer.md +0 -49
  787. package/docs/experiences/finance.md +0 -50
  788. package/docs/experiences/founder.md +0 -49
  789. package/docs/experiences/ops.md +0 -49
  790. package/docs/featured-commands.md +0 -27
  791. package/docs/featured-skills.md +0 -95
  792. package/docs/flows.md +0 -67
  793. package/docs/getting-started-by-role.md +0 -190
  794. package/docs/getting-started-laravel.md +0 -72
  795. package/docs/getting-started-local-stdio.md +0 -77
  796. package/docs/getting-started.md +0 -254
  797. package/docs/github-topics.md +0 -93
  798. package/docs/governance-advantage.md +0 -72
  799. package/docs/governance.md +0 -96
  800. package/docs/guides/cross-repo-linked-projects.md +0 -93
  801. package/docs/guides/cross-repo-retrieval.md +0 -61
  802. package/docs/guides/frontend-design-corpus-refresh.md +0 -83
  803. package/docs/guides/local-analytics.md +0 -125
  804. package/docs/guides/local-knowledge.md +0 -127
  805. package/docs/guides/skill-discovery.md +0 -71
  806. package/docs/guides/skill-preview.md +0 -71
  807. package/docs/hook-payload-capture.md +0 -221
  808. package/docs/install-friction-report.md +0 -66
  809. package/docs/installation.md +0 -959
  810. package/docs/maintainers/branch-protection.md +0 -105
  811. package/docs/maintainers/dev-mode.md +0 -106
  812. package/docs/maintainers/optional-media-deps.md +0 -50
  813. package/docs/maintainers/system-map.md +0 -85
  814. package/docs/mcp-registries.md +0 -94
  815. package/docs/mcp-server.md +0 -175
  816. package/docs/mcp.md +0 -147
  817. package/docs/media/proof-demo.cast +0 -14
  818. package/docs/media/proof-demo.gif +0 -0
  819. package/docs/migration/consumer-template-consumption-model.md +0 -145
  820. package/docs/migration/divergences/README.md +0 -55
  821. package/docs/migration/divergences/_template.md +0 -50
  822. package/docs/migration/divergences/bench-stats-float-precision.md +0 -72
  823. package/docs/migration/divergences/mcp-telemetry-node-sqlite.md +0 -61
  824. package/docs/migration/divergences/pack-mcp-content-gzip-body.md +0 -53
  825. package/docs/migration/divergences/src-scripts-build_cloud_bundle.md +0 -63
  826. package/docs/migration/divergences/src-scripts-check_memory.md +0 -91
  827. package/docs/migration/divergences/src-scripts-inventory_abstraction_budget.md +0 -65
  828. package/docs/migration/divergences/src-scripts-lint_marketplace.md +0 -57
  829. package/docs/migration/divergences/src-scripts-lint_mcp_registry_manifest.md +0 -70
  830. package/docs/migration/divergences/src-scripts-spotcheck_thin_root.md +0 -60
  831. package/docs/migration/divergences/src-scripts-validate_agent_settings.md +0 -58
  832. package/docs/migration/node-floor.md +0 -86
  833. package/docs/migration/v1-to-v2.md +0 -156
  834. package/docs/migration/yaml-roundtrip-spike.md +0 -163
  835. package/docs/migrations/commands-1.15.0.md +0 -117
  836. package/docs/parity/bench-external.json +0 -58
  837. package/docs/parity/bench.json +0 -41
  838. package/docs/parity/command-frontmatter.md +0 -60
  839. package/docs/parity/external-runtime.md +0 -46
  840. package/docs/personas.md +0 -178
  841. package/docs/positioning-evidence.md +0 -86
  842. package/docs/profiles.md +0 -108
  843. package/docs/proof.md +0 -176
  844. package/docs/quality.md +0 -98
  845. package/docs/readme-split-plan.md +0 -102
  846. package/docs/recruits/_template.md +0 -81
  847. package/docs/release-runbook.md +0 -141
  848. package/docs/role-experiences.md +0 -19
  849. package/docs/safety.md +0 -30
  850. package/docs/second-brain-scope.md +0 -116
  851. package/docs/self-review-gate.md +0 -65
  852. package/docs/setup/enterprise-and-offline.md +0 -201
  853. package/docs/setup/mcp-client-config.md +0 -358
  854. package/docs/setup/mcp-cloud-endpoints.md +0 -116
  855. package/docs/setup/mcp-cloud-registry-listing.md +0 -99
  856. package/docs/setup/mcp-cloud-setup.md +0 -183
  857. package/docs/setup/mcp-r2-bootstrap.md +0 -82
  858. package/docs/setup/mcp-server-docker.md +0 -101
  859. package/docs/setup/per-ide/aider.md +0 -48
  860. package/docs/setup/per-ide/antigravity.md +0 -68
  861. package/docs/setup/per-ide/augment.md +0 -89
  862. package/docs/setup/per-ide/claude-code.md +0 -97
  863. package/docs/setup/per-ide/claude-desktop.md +0 -207
  864. package/docs/setup/per-ide/cline.md +0 -43
  865. package/docs/setup/per-ide/codebuddy.md +0 -63
  866. package/docs/setup/per-ide/codex.md +0 -46
  867. package/docs/setup/per-ide/continue.md +0 -68
  868. package/docs/setup/per-ide/copilot.md +0 -80
  869. package/docs/setup/per-ide/cursor.md +0 -125
  870. package/docs/setup/per-ide/droid.md +0 -65
  871. package/docs/setup/per-ide/gemini-cli.md +0 -45
  872. package/docs/setup/per-ide/jetbrains.md +0 -76
  873. package/docs/setup/per-ide/kilocode.md +0 -66
  874. package/docs/setup/per-ide/kiro.md +0 -72
  875. package/docs/setup/per-ide/opencode.md +0 -62
  876. package/docs/setup/per-ide/qoder.md +0 -63
  877. package/docs/setup/per-ide/roocode.md +0 -68
  878. package/docs/setup/per-ide/trae.md +0 -63
  879. package/docs/setup/per-ide/warp.md +0 -63
  880. package/docs/setup/per-ide/windsurf.md +0 -109
  881. package/docs/setup/per-ide/zed.md +0 -73
  882. package/docs/showcase.md +0 -209
  883. package/docs/skill-duplication-findings.md +0 -91
  884. package/docs/skills-catalog.md +0 -265
  885. package/docs/skills-taxonomy.md +0 -90
  886. package/docs/spawn-site-policy.md +0 -72
  887. package/docs/succession.md +0 -80
  888. package/docs/threat-model.md +0 -29
  889. package/docs/troubleshooting.md +0 -155
  890. package/docs/ui-track-mental-model.md +0 -121
  891. package/docs/us-vs-the-category.md +0 -38
  892. package/docs/value.md +0 -86
  893. package/docs/walkthroughs/assets/workspace-role-grid.png +0 -0
  894. package/docs/walkthroughs/assets/workspace-session-started.png +0 -0
  895. package/docs/walkthroughs/assets/workspace-task-picker.png +0 -0
  896. package/docs/walkthroughs/daily-workspace-a11y.md +0 -87
  897. package/docs/walkthroughs/daily-workspace.md +0 -127
  898. package/docs/wedge/production-validator/README.md +0 -81
  899. package/docs/wedge/production-validator/first-run-check.sh +0 -42
  900. package/docs/wedge/production-validator/production-validator.md +0 -83
  901. 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.