@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,953 +0,0 @@
1
- # CHANGELOG — 6.0.0 release overview (archived)
2
-
3
- > Drained from `CHANGELOG.md` `## [Unreleased]` on 2026-07-21. This was the
4
- > hand-authored "6.0.0 at a glance" release overview, staged under
5
- > `[Unreleased]` during 6.0.0 readiness and never removed after the release
6
- > shipped. It is preserved here verbatim for history; `[Unreleased]` now
7
- > starts clean. The dated per-version 6.0.0-era entries live under the
8
- > `# Era: pre-7.0.0 — archived` pointer in `CHANGELOG.md`.
9
-
10
- ---
11
-
12
- ### 6.0.0 at a glance — release overview
13
-
14
- > A reader who never saw the PRs should understand 6.0.0 in under two
15
- > minutes. Seven headlines here; migration steps in **Breaking changes**
16
- > below; granular per-roadmap detail in the entries further down.
17
-
18
- 6.0.0 is the release that turns agent-config into a **workplace**, not just a
19
- rule pack:
20
-
21
- 1. **Workspace.** A task-orchestration layer owns the host-session lifecycle,
22
- continuation, and drive health — the engine behind `/work` and
23
- `/implement-ticket`.
24
- 2. **Multi-turn continuation.** A long task survives across turns: the
25
- workspace resumes where it left off instead of restarting cold.
26
- 3. **Secure local stores.** Session state and sensitive local data live in an
27
- encrypted-at-rest store under `~/.event4u/agent-config/`, not loose files.
28
- 4. **MCP server.** agent-config exposes its skills and commands over MCP, so
29
- MCP-aware hosts can reach them directly.
30
- 5. **AI-video Creative Pack (optional).** The AI-video surface graduates from
31
- prototype to validated provider adapters, shipped as an **opt-in Creative
32
- Pack** — not core identity, not a new platform.
33
- 6. **Breaking — condensed output relocated.** The repo-root `.agent-src/` tree
34
- is removed; condensed output now lives at `dist/agent-src/` ([ADR-058]).
35
- 7. **Upgrade cleanup.** Upgrading reaps stale deployed files (renamed/removed
36
- skills and commands) so old installs don't rot; `agent-config --dry-run`
37
- previews exactly what gets removed before any deletion.
38
-
39
- Pack-scoped projection (opt-in) and the TypeScript CLI + local-server
40
- foundation also land — both non-breaking by default.
41
-
42
- ### Breaking changes (6.0.0)
43
-
44
- **1. Condensed output moved: root `.agent-src/` → `dist/agent-src/`** ([ADR-058])
45
-
46
- - **Who is affected:** consumers whose scripts or tool configs hard-code
47
- `.agent-src/…` paths (plugin-marketplace clones, custom symlinks, CI globs).
48
- Default installs are **not** affected — regenerated projections pick up the
49
- new location automatically.
50
- - **What breaks:** the repo-root `.agent-src/` tree is removed, so any
51
- hard-coded `.agent-src/<x>` path no longer resolves.
52
- - **How to migrate:** replace `.agent-src/` with `dist/agent-src/` in any
53
- path you hard-code.
54
- - **Which command:** `agent-config install` (consumers) — or `task sync` +
55
- `task generate-tools` (this repo) — regenerates projections at the new
56
- location; the upgrade reaper removes the stale root tree. No manual path
57
- edits beyond your own hard-codes.
58
- - **Rationale:** the root tree conflated source and build output; moving
59
- condensed output under `dist/` makes "generated, do not edit" unambiguous
60
- and keeps the repo root clean.
61
-
62
- **2. Settings key renamed: `cost_profile` → `rule_loading_tier`**
63
-
64
- - **Who is affected:** anyone with a hand-edited `cost_profile` in
65
- `.agent-settings.yml`.
66
- - **What breaks:** nothing immediately — `cost_profile` is read as a fallback
67
- during the grace period. The colliding memory-cadence meaning moved to its
68
- own `memory.cadence` key (`auto`/`always`/`never`).
69
- - **How to migrate:** automatic.
70
- - **Which command:** `agent-config install` / `setup` migrates existing
71
- settings on the next run. No manual action required.
72
- - **Rationale:** one key carried two unrelated meanings (rule-loading footprint
73
- vs. memory-line cadence); splitting them removes the collision.
74
-
75
- [ADR-058]: docs/decisions/ADR-058-condensed-output-relocation-to-dist.md
76
-
77
- ### Feedback wanted — multi-agent MCP config (demand probe, `ADR-086`)
78
-
79
- We are deciding whether to build a cross-agent MCP discovery / install helper.
80
- One question — answer in [Discussions](https://github.com/event4u-app/agent-config/discussions):
81
-
82
- > **Do you run more than one AI coding agent in the same project, and is keeping
83
- > MCP-server config in sync across them painful?**
84
- > (a) very painful · (b) somewhat · (c) single-agent, not applicable · (d) I already
85
- > self-script it.
86
-
87
- This gates the read-only MCP discovery helper (`agent-config mcp:search`) and the
88
- deferred auto-install question (`ADR-086`).
89
-
90
- ### Added — humanizer (AI-tell removal for deliverable prose) (`road-to-humanized-writing` + `road-to-humanizer-hardening`)
91
-
92
- - **`humanizer` skill + `/humanize` command** (gtm-marketing pack) — remove
93
- AI-writing tells from deliverable prose (posts, articles, drafts) via a
94
- draft→audit→final loop; scoped to deliverable text only, never chat replies
95
- or repo docs.
96
- - **`detect_ai_tells.ts` detector** — deterministic hard-tell / weighted-cluster
97
- / em-dash-density scan (EN + DE), with a hidden-unicode ingestion scan and a
98
- ReDoS length bound on untrusted input.
99
- - **Behavior change — write-engine step 4b is default-on.** Ghostwriter /
100
- `post-as` drafts now pass a humanize audit before delivery; opt out per run
101
- with `--raw`. The mechanical detector pass runs when a Node runtime is
102
- present and degrades to a prose-only audit otherwise — the new
103
- `humanizer-runtime` doctor check reports which path an install gets.
104
- - **Disclosure footer stays inviolable** through the audit; quoted/secondhand
105
- text is never rewritten.
106
-
107
- ### Added — `agents/` directory contract + gitignore hygiene (`road-to-agents-dir-and-gitignore-hygiene`)
108
-
109
- - **`docs/contracts/agents-layout.md`** — authoritative contract for every top-level entry in `agents/` (purpose, git policy, retention, consumer-scope); includes the User Inbox Workflow (`agents/tmp/` → `agents/tmp.old/`).
110
- - **`src/config/agents-paths.yml`** — machine-readable classification manifest for all agent-managed paths; feeds the new CI freshness gate.
111
- - **`agents/tmp/` + `agents/tmp.old/` now covered in consumer `gitignore-block.txt`** — both dirs were previously unignored for consumers.
112
- - **New CI gates** (all wired into `task ci`):
113
- - `check-gitignore-freshness` — verifies every manifest entry is in the consumer block.
114
- - `check-generator-output-coverage` — every `generate_*` output root in `condense.ts` must be classified.
115
- - `check-tracked-but-ignored` — fails if any git-tracked file is now covered by an ignore pattern (makes the bench-run class of drift impossible to reintroduce).
116
- - `check-generated-artefact-headers` — validates freshness markers on regenerable analysis artefacts.
117
- - **`lint_agents_layout.ts` extended** — in source-repo mode, unknown **directories** at the `agents/` root are now CI errors (previously only flat files were checked); `CONSUMER_EXPECTED_ENTRIES` extended with the full consumer-scope allowlist.
118
- - **Janitor** (`task janitor` / `task janitor-apply`) — TTL sweep for `agents/tmp.old/` (30 days) and `agents/runtime/tmp/` (7 days); reports user inbox state and `.harvest-local/` size; never auto-sweeps the user inbox.
119
- - **`/sync-gitignore:fix` extended** (Steps 5–6) — now also reports ignored-but-tracked files with the exact `git rm --cached` commands, and runs the manifest coverage check.
120
- - **`/roadmap:create`** — moves consumed `agents/tmp/` files to `agents/tmp.old/` in the same reply (inbox workflow).
121
- - **`agent-docs-writing` skill** — documents the user inbox contract; redirected `prediction-pool` agent scratch from `agents/tmp/` to `agents/runtime/tmp/`.
122
-
123
- #### Migration
124
-
125
- If you have a consumer project:
126
-
127
- 1. Run `agent-config sync-gitignore --cleanup-legacy` to add `/agents/tmp/` and `/agents/tmp.old/` to your `.gitignore`.
128
- 2. Run `git ls-files -ci --exclude-standard` — if any files appear, run the printed `git rm --cached` commands and commit.
129
-
130
- ### Added — pack-scoped projection (opt-in, `road-to-6.0.0-b`)
131
-
132
- The projector can now write only the **active profile + packs'** artefacts into
133
- the host-tool trees instead of all 150 commands / 223 skills (ADR-040 —
134
- projection-time filtering, not a runtime resolver).
135
-
136
- - **Non-breaking by default.** A new `projection.mode` setting defaults to
137
- `legacy-all` — `npm update` to 6.0.0 changes nothing. Scoped projection is
138
- **opt-in** and never inferred from `profile.id`.
139
- - **Opt in** with `agent-config use --profile=<id>` (sets `projection.mode:
140
- scoped`), then `agent-config refresh` to re-project. Selected packs are the
141
- profile's base `packs` unioned with the `runtime.active_packs` session
142
- overlay, expanded over the `requires` graph. `agent-config use
143
- --profile=legacy-all` restores the full surface.
144
- - **Profiles are self-sufficient** — every `skills_hint` skill resolves from
145
- the profile's base packs (the new `profile.packs` field). Resolved in the AI
146
- council, 2026-06-03.
147
- - **Atomic.** A failed scoped projection restores the full (legacy-all) tree.
148
- The committed plugin marketplace (`.claude-plugin/`) and the Augment tree
149
- (`.augment/`) always project the full set in 6.0.0.
150
-
151
- **Staged rollout (this release ships 6.0.0 only):**
152
-
153
- 1. **6.0.0** — default `legacy-all` (opt-in profiles). *This release.*
154
- 2. **6.1.0** — default flips to profile/scoped mode with a `--legacy` escape.
155
- 3. **7.0.0** — removes `legacy-all` **only if** telemetry shows <10% usage.
156
-
157
- The default flip and removal are explicitly **out of scope** for 6.0.0 and
158
- gated on the telemetry from 6.0.0-C. Deferred to 6.0.0-C: a
159
- `skills_discoverable` field, reactive just-in-time pack activation, and the
160
- per-pack budget lint.
161
-
162
- ### Added — team mode: governed cross-model review (default-off, `road-to-team-mode`)
163
-
164
- A new default-off `/team` command family (`review`, `adversarial`, `delegate`,
165
- `status`) that governs the official `openai/codex-plugin-cc` as the Claude-Code
166
- transport — a second strong model reviewing the real working-tree diff (depth),
167
- the complement to the council's neutral-artefact breadth.
168
-
169
- - **Default-off + fail-closed.** With `ai_team.enabled: false` (default) no
170
- command is suggested and invocation prints an enable pointer — byte-identical
171
- to pre-roadmap behaviour. On Claude-Code hosts the wrappers are thin
172
- delegations to `/codex:*`; absent the plugin they fail closed with the
173
- `agent-config doctor --check team` remediation, never a silent no-op.
174
- - **Multi-host fallback (review lens only).** On non-Claude-Code hosts
175
- `/team:review` sends a size-capped repo-diff bundle through the existing
176
- subscription `OpenAICliClient`, with an honest capability-delta header.
177
- - **Governed, not rebuilt.** Nothing upstream-maintained is reimplemented; the
178
- Review-Gate stays upstream's (we add an opt-in loop-bound + ledger line), and
179
- `/team:delegate` (write access) sits behind a second opt-in
180
- `ai_team.allow_delegate: false`. Config: `docs/contracts/ai-team-config.md`.
181
- - **No quality claim yet.** Cross-model defect-finding lift is unproven until
182
- the Phase 5 benchmark runs (spend-gated); the docs describe workflow value
183
- only, never a lift claim.
184
-
185
- ### Breaking — v4.0.0 unified setup (`road-to-unified-setup`)
186
-
187
- `v4.0.0` is a **hard-cut** release. The legacy Python installer at
188
- `scripts/install.py` and the standalone TypeScript installer workspace
189
- at `packages/core/installer/{src,tests}` are no longer the canonical
190
- install path; the wizard now boots a single Fastify process at
191
- `agent-config install` / `agent-config setup` and drives the whole
192
- plan + apply through the TypeScript engine under `src/install/`.
193
-
194
- **Migrating from v3.x**
195
-
196
- 1. The first `agent-config install` run detects an existing v3 tree at
197
- `~/.event4u/agent-config/` and renders a **backup screen** before
198
- any write. Pick **"Backup v3 and proceed"** — the wizard copies the
199
- v3 layout to `~/.event4u/agent-config.v3.bak/` atomically and runs
200
- the v4 install against a clean slate.
201
- 2. No auto-migration runs. Rolling back is a single rename:
202
- `mv ~/.event4u/agent-config.v3.bak ~/.event4u/agent-config`.
203
- 3. Re-running `npx @event4u/agent-config install` against an active v3
204
- layout (without backup) is refused — silent overwrite is gone.
205
-
206
- **Removed / retired**
207
-
208
- - `packages/core/installer/{src,tests,package.json,tsconfig.json,
209
- vitest.config.ts}` (the standalone `@event4u/installer` workspace)
210
- and its workspaces declaration in the root `package.json`.
211
- - `/install-via-agent` command — its JSON agent-mode protocol shipped
212
- with the removed installer.
213
- - `task installer-typecheck` / `task installer-test` gates in
214
- `taskfiles/ci-fast.yml`.
215
-
216
- **Kept for one release**
217
-
218
- - `scripts/install.py` remains so the `curl | bash setup.sh` CURL
219
- fallback + `smoke-public-install.yml` CI matrix keep working. It is
220
- **not** invoked from the modern npx flow. Full removal is scheduled
221
- for v5.
222
-
223
- **New features (Phase B / C / E)**
224
-
225
- - Hard-stop **continue-screen** after Step 3 (modules) when entering
226
- via `agent-config install`; `setup` lands directly at Step 4
227
- (identity) via `?mode=setup`. (B5)
228
- - `WIZARD_READY <url>` line on stdout once Fastify is bound; the new
229
- `scripts/bootstrap.sh` watches for it so a Node bootstrap does not
230
- poll the port. (B4 + C1)
231
- - **Recovery-pre-step** — `GET /api/v1/install/recovery` surfaces an
232
- abort marker (Resume / Rollback / Ignore) when the previous run
233
- closed mid-apply. (B4 + Council Finding #24)
234
- - **v3 backup screen** — `GET /api/v1/install/legacy-v3` +
235
- `POST /api/v1/install/backup-v3` drive the migration. (E2 +
236
- Council Finding #21)
237
- - **Batch-conflict resolution** at ≥ 5 conflicts (B3 + Council
238
- Finding #19).
239
-
240
- **TypeScript CLI shell + local server foundation (`typescript-cli-and-local-gui-foundation`)** —
241
- Phase-5 cutover of the `agent-config` binary from a 955-line Bash
242
- dispatcher to a compiled TypeScript entry point. The shell handles
243
- native commands (`versions`, `doctor-shell`, `ui:serve`) and forwards
244
- every other subcommand to the legacy logic, now living at
245
- `scripts/_dispatch.bash`. New surfaces:
246
-
247
- - **TS bin entry** — `package.json#bin` flipped to
248
- `dist/cli/agent-config.js`. `npm run build:cli` compiles and
249
- `chmod +x`-es the entry; `scripts/prepack-check.mjs` runs on
250
- `npm pack` / `npm publish` and asserts the compiled file exists,
251
- is executable, and carries the Node shebang.
252
- - **Bash shim** — the old path `scripts/agent-config` is now a
253
- ~30-line deprecation shim that forwards to the TS binary. The real
254
- dispatch logic moved to `scripts/_dispatch.bash` to prevent the
255
- forward-and-back loop. Doctor probes both paths.
256
- - **Embedded Fastify server** — `agent-config ui:serve` boots a
257
- local server bound to `127.0.0.1`, on the first free port in
258
- `41000–41999`. Wire shape locked in
259
- [`docs/contracts/local-server-api.md`](docs/contracts/local-server-api.md)
260
- (beta): per-process bearer token, Host-header guard, Origin
261
- allow-list, `GET /api/v1/ping` liveness probe.
262
- - **CI gates** — `task lint-ts`, `task typecheck-ts`, `task test-ts`,
263
- `task build-ts` wired into `task ci` and `task ci-strict`. New
264
- GitHub Actions job `TypeScript Tests` runs the same harness across
265
- `ubuntu-latest` and `macos-latest` on Node 20, including the
266
- `prepack-check.mjs` gate.
267
- - **Test coverage** — 47 Vitest tests across
268
- `tests/cli/{paths,registry,cli-e2e}.test.ts`,
269
- `tests/server/{app,port,token}.test.ts`, and
270
- `tests/ui/build.test.ts`. CLI-e2e exercises the shim → dispatcher
271
- → TS round trip; server tests cover the auth gate and 421/403/401
272
- failure modes.
273
-
274
- Decision record: [`docs/decisions/ADR-012-typescript-cli-shell.md`](docs/decisions/ADR-012-typescript-cli-shell.md).
275
-
276
- **Discovery polish — `--root` override, doctor diagnostics, install-mode marker (`step-8-discovery-polish`)** —
277
- follow-up to step-7 driven by AI Council review of PR #157. Adds an
278
- explicit escape hatch for monorepos, surfaces the resolution decision
279
- path, and replaces install-mode heuristics with an authoritative
280
- marker file. New surfaces:
281
-
282
- - **Global `--root <dir>` flag** — parsed by the bash dispatcher
283
- before any subcommand and wins over every other channel (subcommand
284
- `--project`, `AGENT_CONFIG_PROJECT_ROOT` env-pin, anchor walk).
285
- Implemented as `AGENT_CONFIG_ROOT_OVERRIDE=1` +
286
- `AGENT_CONFIG_PROJECT_ROOT` plus a new `ORIGIN_ROOT_FLAG` so doctor
287
- can attribute the resolution. Wrapper-coupling warning emitted on
288
- stderr when `--root` overrides a wrapper-pinned env-pin.
289
- - **Fail-loud root validation** — `--root`, `--project`, and
290
- `AGENT_CONFIG_PROJECT_ROOT` all reject non-existent paths and
291
- non-directories via `ProjectRootError` mapped to exit code `2`. No
292
- silent CWD fallback when the operator explicitly named a path.
293
- - **`agent-config doctor --trace-root`** — read-only diagnostic that
294
- prints every ancestor probed during root discovery, the winning
295
- anchor, and the originating channel. `--json` for machine-readable
296
- output. Short-circuits the drift report.
297
- - **`agent-config doctor --context`** — prints effective project
298
- root, origin, install mode + source, settings-layer chain, wrapper
299
- state, and env-pin/override flags. `--json` available.
300
- - **Install-mode marker file** — `agents/.agent-state/install-mode.txt`
301
- written by `install.py` with `minimal\n` or `full\n`. Doctor uses
302
- the marker authoritatively for new installs; back-compat heuristic
303
- (`AGENTS.md` + copilot bridges) only fires when the marker is absent.
304
- - **Minimal-install upgrade hint** — `install.py` emits a stderr
305
- hint after a `--minimal` install describing how to upgrade to a
306
- full install when the user is ready.
307
- - **Test coverage** — `tests/test_root_override.py` (precedence,
308
- fail-loud for each channel, end-to-end CLI exit-2 check),
309
- `tests/test_doctor_trace.py` (text + JSON shape for both flags,
310
- marker-vs-heuristic install-mode detection, origin propagation).
311
- Twenty new tests, full suite green.
312
-
313
- Council artefacts:
314
- `agents/council-sessions/step-8-discovery-polish-decision.md` — 2
315
- rounds + peer-review, $0.12. Decision cut `template-gen` (A4) and
316
- `anchor-freeze AC` (A6), kept `--trace-root` and `--context` as two
317
- distinct flags (host override of Claude's consolidation proposal),
318
- and added the install-mode marker file as the hybrid resolution to
319
- Q5 (marker for new installs, filesystem heuristic for back-compat).
320
-
321
- **Agent-folder discovery + `--minimal` init (`step-7-agent-folder-discovery-and-minimal-init`)** —
322
- project-root discovery widens beyond `.git` so non-git checkouts,
323
- monorepo sub-trees, and `agent-config`-only worktrees resolve
324
- correctly, and a new minimal-init payload lets teams keep the
325
- runtime global while committing only the per-project shell. New
326
- surfaces:
327
-
328
- - **Boundary anchors (D1+D3)** — `.git` plus `agents/` containing
329
- **any** of `roadmaps/`, `.ai-council.yml`, `roadmaps-progress.md`.
330
- Bare `agents/` is **not** an anchor (false-positive guard). When
331
- no boundary anchor exists in any ancestor, the **outermost**
332
- `.agent-settings.yml` becomes the root so the layered-settings
333
- cascade survives. Same-level tiebreaker:
334
- `.agent-settings.yml` > `agents/` > `.git` (diagnostic anchor
335
- name only — resolved path is identical).
336
- - **`resolve_project_root(arg)` helper** (`scripts/_lib/agent_settings.py`)
337
- — single entry point used by every `cmd_*.py`. Precedence:
338
- explicit `--project`/`--target` → `AGENT_CONFIG_PROJECT_ROOT` env
339
- → anchor walk → CWD fallback. Returns `(root, origin)` so doctor
340
- can surface which step resolved.
341
- - **`AGENT_CONFIG_PROJECT_ROOT` env pin** — the `./agent-config`
342
- wrapper exports its own directory before forwarding to the master
343
- CLI, so subcommands invoked from a subdirectory (or after
344
- `os.chdir`) stay pinned to the right root without re-walking.
345
- - **`agent-config init --minimal`** — writes exactly three files:
346
- `.agent-settings.yml`, `agents/.gitkeep`, and the `./agent-config`
347
- wrapper. No `.augment/` / `.claude/` / `.cursor/` / `AGENTS.md`.
348
- Refuses to run when an ancestor already carries an anchor
349
- (nested-install guard); override with explicit `--target`.
350
- Does **not** pin `agent_config_version` (D4) — consumer follows
351
- the global CLI.
352
- - **`AGENT_CONFIG_LEGACY_ANCHOR=1` kill-switch (D5)** — reverts
353
- discovery to the pre-step-7 `.git`-only walk for one minor-version
354
- soak. Scheduled for removal after the soak window unless
355
- telemetry surfaces a missing case.
356
- - **Performance budget (D6)** — anchor walk is `O(depth)` with at
357
- most three `Path.exists()` calls per level. Test asserts
358
- `< 5 ms` at depth 20 (`tests/test_anchor_perf.py`).
359
- - **Test coverage** — `tests/test_project_root_anchors.py`
360
- (precedence, mixed-anchor edge case, bare `agents/` rejection),
361
- `tests/test_kill_switch.py`, `tests/test_minimal_init.py`
362
- (payload shape + nested-install refusal), `tests/test_subdir_invocation.py`
363
- (env-var precedence, wrapper-pin surviving `chdir`),
364
- `tests/test_anchor_perf.py`.
365
-
366
- Council artefacts: `agents/council-sessions/step-7-d3-cascade-conflict-{question,decision}.md`
367
- — D3 strict closest-leaf-wins was relaxed to boundary-vs-layer
368
- split after the analysis lens flagged four pre-existing cascade
369
- tests as the contract, not edge cases.
370
-
371
- **PR #150 follow-up hardening (`step-9-pr150-feedback-hardening`)** —
372
- twelve-phase response to the Claude+GPT review findings on PR #150 plus
373
- three user-requested settings-shape changes (CLI-default, preferred-single
374
- member, low-impact dispatch) under one roadmap. New surfaces:
375
-
376
- - **`defaults.member_mode: cli | api`** (default `cli`) — flips the
377
- global transport default to CLI-first onboarding (subscription auth,
378
- no API key). Per-member explicit `mode:` keeps overriding.
379
- - **`routing.solo_member_fallback_chain: [provider, ...]`** — ordered
380
- preference list for single-member dispatch. Disabled members are
381
- skipped; duplicates rejected at config-load time; all-invalid
382
- escalates to full council (never fails the decision). 15-minute
383
- auth cache, 3-second timeout per probe.
384
- - **`low_impact.dispatch: full | single`** (default `full`) — opt-in
385
- cost-efficient routing for low-impact decisions through
386
- `routing.solo_member_fallback_chain`. **Iron Law:** `high_impact`
387
- and `user_required` dispatch are NOT configurable — config validator
388
- rejects both top-level and `decision_resolution.classes.*` forms,
389
- including YAML `<<:` anchor smuggling attempts. Sentinel in
390
- `tests/test_iron_law_config.py`.
391
- - **Shadow-mode safety net** — when `low_impact.dispatch: single` is
392
- active, sample (default `0.1`) decisions go to both solo + full
393
- council. Disagreements append to `agents/council-shadow-log.jsonl`
394
- (privacy-redactor enforced). `agent-config council shadow-report`
395
- computes the 7-day rolling SLO (`OK <5%` / `WARN 5–8%` / `BREACH
396
- >8%`); pre-flight cost disclosure surfaces the verdict. No auto-
397
- revert — humans decide.
398
- - **Confidence gate — auto-escalation on uncertain solo runs**
399
- (`scripts/ai_council/confidence_gate.py`) — every solo response is
400
- scored before the verdict is returned. Four escalation reasons in
401
- priority order: `refusal` (empty / refusal markers), `split`
402
- (two-verdict / option-A-vs-B / Variante 1/2), `short_response`
403
- (< 20 chars), `low_confidence` (explicit `Confidence: 0.X` marker
404
- or hedge-word density below floor). Zero extra LLM calls —
405
- heuristics run in-process. Escalations append `escalated: true` +
406
- `escalation_reason` to `agents/council-shadow-log.jsonl`; the SLO
407
- banner appends the rolling auto-escalation rate so quiet uncertainty
408
- cannot hide behind a flat disagreement rate.
409
- - **`low_impact.solo_confidence_floor: float`** (default `0.7`,
410
- range `[0.0, 1.0]`) — threshold for the confidence gate.
411
- **Iron Law:** `solo_confidence_floor` is also rejected on
412
- top-level `high_impact:` and `user_required:` — those classes
413
- never run solo, so a solo-specific knob there is incoherent.
414
- - **`AGENT_CONFIG_FORCE_FULL_COUNCIL=1`** — per-invocation kill-switch
415
- that forces full council regardless of `low_impact.dispatch`.
416
- - **Airgap detection** (`scripts/ai_council/airgap.py`) — installer
417
- first-run probes DNS for `api.anthropic.com`, `api.openai.com`,
418
- `generativelanguage.googleapis.com` with 1s timeout per host. All
419
- fail → banner `airgapped environment detected — defaulting to
420
- mode: api` and `defaults.member_mode: api` recommendation.
421
- - **Fast-path marker visibility Iron-Law rule**
422
- (`.agent-src.uncondensed/rules/fast-path-marker-visibility.md`,
423
- kernel-tier, always-active) — host agents MUST surface
424
- `Resolved via low-impact council fast-path: …` markers verbatim;
425
- swallowing them is a rule violation.
426
- - **`/memory learn-low-impact --preview`** (default) / `--apply` —
427
- preview shows promoted entries, refused entries with redaction
428
- reasons, source-project-stripped diff, and the upstream PR body
429
- draft before anything is written.
430
- - **Corpus parser hardening** — typed `CorpusParseError(reason=...)`
431
- replaces silent skip; seven failure-mode fixtures in
432
- `tests/fixtures/corpus-robust/` (missing anchor · renamed heading ·
433
- bullet-without-quotes · duplicate entry · anti-example wrongly
434
- under Validated · malformed ISO timestamp · redactor-bypass).
435
- Contract in `docs/contracts/low-impact-corpus-format.md`.
436
- - **Fuzzy corpus matching (opt-in)** —
437
- `low_impact.fuzzy_match.{enabled,threshold}` (defaults `false`,
438
- `0.92`) using `difflib.SequenceMatcher`. High-impact trigger veto
439
- + anti-example veto preserve the Iron Law.
440
- - **CLI-binary UX** — pre-flight cost disclosure now prints
441
- `member X skipped: binary not found, install via <hint>` per
442
- skipped CLI member; hints sourced from
443
- `scripts/ai_council/cli_hints.py`.
444
- - **Doctor CLI checks** — `agent-config doctor --check council-cli`
445
- reports per CLI member: binary present · auth probe · parse
446
- fixture · quota remaining · billable flag.
447
- - **Iron-Law bypass linter** — `audit_cloud_compatibility.py
448
- --iron-law` scans `scripts/` for raw YAML loads of `ai-council.yml`
449
- that skip the config validator; baseline is 0 findings; suppress
450
- legitimate cases with `# iron-law-ok: <reason>` on the load line.
451
-
452
- Surface delta: **4 new config knobs** (`defaults.member_mode`,
453
- `routing.solo_member_fallback_chain`, `low_impact.dispatch`,
454
- `low_impact.solo_confidence_floor`),
455
- **1 new env-var kill-switch** (`AGENT_CONFIG_FORCE_FULL_COUNCIL`),
456
- **1 new CLI subcommand** (`council shadow-report`), **1 new CLI flag**
457
- (`council run --single`), **1 new always-active rule**
458
- (`fast-path-marker-visibility`), **2 new local-only files**
459
- (`agents/council-shadow-log.jsonl`, gitignored;
460
- `scripts/ai_council/airgap.py`). Backward-compat: defaults map the
461
- existing behaviour (`dispatch=full`, empty chain, `member_mode=cli`
462
- in fresh installs; existing configs read unchanged). No migration
463
- script — defaults are silent-safe.
464
-
465
- **Low-impact corpus YAML lockfile (`step-10-corpus-yaml-lockfile`)** —
466
- follow-up to the PR #150 review (Punkt 4): the Markdown parser used to
467
- be the runtime source-of-truth for the low-impact decisions corpus,
468
- making every human edit-variation (curly quotes, bullet style,
469
- whitespace, heading rename) a potential parser bomb on the hot path.
470
- Switched the runtime to a generated YAML lockfile while keeping
471
- Markdown as the human-editable source. New surfaces:
472
-
473
- - **`scripts/ai_council/compile_corpus.py`** — build tool that runs
474
- `parse_corpus_strict()` over `agents/low-impact-decisions.md` and
475
- emits `agents/low-impact-decisions.lock.yaml` (schema-v1, sorted
476
- keys, deterministic). `--check` mode exits `1` on drift, `2` on
477
- parse error.
478
- - **`agents/low-impact-decisions.lock.yaml`** — generated, **committed**
479
- lockfile. Schema `{schema_version: 1, provenance: {source_path,
480
- source_sha256, last_upstreamed}, validated, probation, anti_examples}`.
481
- Diffed in PR reviews alongside the Markdown source.
482
- - **`low_impact_corpus.load_corpus_lock()`** — new primitive that
483
- loads the YAML lockfile and re-materialises a `CorpusParseResult`.
484
- Schema-version mismatch raises `CorpusParseError` with reason
485
- `schema_version_mismatch`.
486
- - **Lenient loaders prefer YAML** — `load_validated_phrases` and
487
- `load_anti_example_phrases` (consumed by `necessity.py` and
488
- `low_impact.py` on the hot path) check for the sibling `.lock.yaml`
489
- first. Missing / malformed lockfile → silent fallback to lenient
490
- Markdown parsing, so a fresh clone before `task sync` still works.
491
- - **CI gate** — `task compile-corpus` runs as part of `task sync` and
492
- `task consistency` (before `git diff --quiet`). A stale lockfile
493
- fails CI the same way `.agent-src/` drift does.
494
- - **Preview tool unchanged** — `learn_low_impact_preview.py` keeps
495
- reading the Markdown directly via `parse_corpus_strict`; it runs
496
- *before* `task sync` rebuilds the lockfile, so it must read whatever
497
- the user just edited.
498
-
499
- The Markdown parser stays in the repo as a build-time dependency, not
500
- a runtime dependency — a parser regression breaks `task consistency`,
501
- never the live council. Privacy floor (`low-impact-corpus-privacy-floor`)
502
- unchanged: the redactor scans entry text, not file format.
503
-
504
- **Council quota & necessity transparency (`step-8-quota-necessity-transparency`)** —
505
- the council's two pre-flight gates (`cli_call_budget` and
506
- `necessity_classifier`) become observable and aligned with the
507
- "Council always active when enabled" mental model. New surfaces:
508
-
509
- - `council run` / `council debate` print a one-line
510
- `council:quota · <provider> used/limit · …` summary before the
511
- first member fires. Only providers with a configured per-day cap
512
- appear; uncapped providers are omitted (no false metering).
513
- - `cli_call_budget.warn_at` (float, default `0.8`) — once
514
- `used / max_calls_per_day >= warn_at`, the summary line is
515
- prefixed `⚠️` and a `council:quota · WARN` line names the
516
- providers near the wall.
517
- - New `agent-config council quota` subcommand dumps today's
518
- `~/.event4u/agent-config/cli-calls.json` state plus the configured
519
- caps. `--reset <provider> --confirm` clears today's counter for one
520
- provider for manual rollover.
521
- - **Necessity tier split (D2):** `necessity_classifier.user_explicit_mode`
522
- (default `warn-only`) separates the agent and user_explicit tiers.
523
- User-typed `/council` calls proceed by default with an annotated
524
- stdout line; agent-initiated dispatches keep `educate` behaviour.
525
- New `warn-only` mode joins the existing `off | educate | block`
526
- enum — annotates the verdict but never skips.
527
- - **Persistent events log (D3):** every necessity-gate decision
528
- (`proceed` / `skip_necessity`) and every quota block
529
- (`block_quota`) appends one JSON line to `agents/council-events.log`
530
- (gitignored; never committed). Schema v1 with `schema_version`,
531
- `ts_utc`, `lens`, `invocation`, `action`, `verdict`,
532
- `provider_caps`, `original_ask_hash`. `original_ask` is hashed
533
- `sha256[:12]` before write — the raw prompt is never persisted
534
- (privacy floor per `agents/low-impact-decisions.md`).
535
- - **Kill-switch (D5):** `AGENT_CONFIG_NO_EVENTS_LOG=1` disables
536
- every events-log write in-process. Mirrors the
537
- `AGENT_CONFIG_LEGACY_ANCHOR=1` pattern from step-7.
538
-
539
- Surface delta: **1 new subcommand** (`council quota`), **2 new
540
- config knobs** (`cli_call_budget.warn_at`,
541
- `necessity_classifier.user_explicit_mode`), **1 new local-only file**
542
- (`agents/council-events.log`, gitignored). Backward-compat:
543
- existing `.agent-settings.yml` and `agents/.ai-council.yml` work
544
- unchanged; new knobs are optional. Docs:
545
- [`docs/contracts/ai-council-config.md`](docs/contracts/ai-council-config.md)
546
- + [`docs/installation.md`](docs/installation.md) § AI Council local
547
- state.
548
-
549
- Four roadmaps land in this release.
550
-
551
- **Tier-0 trim (`road-to-surface-discipline` Phase 1)** — six CLI
552
- commands moved from Tier-0 to Tier-1 in `./agent-config --help` to
553
- collapse the daily-driver surface down to the seven commands a new
554
- contributor actually needs in their first session. Commands stay
555
- fully invokable by full name — only the default `--help` view
556
- changed. Source of truth: `docs/contracts/command-surface-tiers.md`.
557
-
558
- Pre/post diff of `./agent-config --help` Tier-0 block:
559
-
560
- | Command | Pre | Post | Rationale |
561
- |---|:-:|:-:|---|
562
- | `init` | Tier-0 | Tier-0 | daily-driver entrypoint |
563
- | `sync` | Tier-0 | Tier-0 | daily-driver entrypoint |
564
- | `validate` | Tier-0 | Tier-0 | daily-driver entrypoint |
565
- | `work` | Tier-0 | Tier-0 | daily-driver entrypoint |
566
- | `implement-ticket` | Tier-0 | Tier-0 | daily-driver entrypoint |
567
- | `help` | Tier-0 | Tier-0 | help meta-command |
568
- | `--version` | Tier-0 | Tier-0 | help meta-command |
569
- | `first-run` | Tier-0 | **Tier-1** | one-time setup; not in daily loop |
570
- | `keys:install-anthropic` | Tier-0 | **Tier-1** | one-time credential setup |
571
- | `keys:install-openai` | Tier-0 | **Tier-1** | one-time credential setup |
572
- | `council:estimate` | Tier-0 | **Tier-1** | on-demand review tool |
573
- | `council:run` | Tier-0 | **Tier-1** | on-demand review tool |
574
- | `council:render` | Tier-0 | **Tier-1** | on-demand review tool |
575
-
576
- Net surface delta: **0 new commands, 0 removed commands.** Only the
577
- `--help` surfacing changed. Run `./agent-config --help --tier=1` for
578
- the full power-user view (15 commands) or `--tier=all` for
579
- maintenance / hooks / MCP / telemetry (26 additional commands).
580
-
581
- **Diagnostic Hub (`road-to-surface-discipline` Phase 2)** — the
582
- existing `./agent-config doctor` is repositioned as the single
583
- entrypoint for health checks. New `CHECK_IDS` registry plus
584
- `doctor --check <id>` filter; `--list-checks` enumerates every
585
- runner; failing checks print the literal command line that
586
- reproduces the failure. Surface delta: **0 new commands** — only
587
- flags and registry plumbing.
588
-
589
- **MCP beta gating (`road-to-surface-discipline` Phase 3)** — MCP
590
- promotion criteria pinned in
591
- [`docs/contracts/mcp-beta-criteria.md`](docs/contracts/mcp-beta-criteria.md)
592
- with a four-gate contract (offline-readiness, scope, drift, runtime).
593
- `doctor --check mcp-beta-readiness` enforces the gates; failing tests
594
- under `tests/test_mcp_beta_gates.py` codify the promotion bar.
595
- Cloud-scope behaviour cross-referenced from
596
- [`docs/contracts/mcp-cloud-scope.md`](docs/contracts/mcp-cloud-scope.md).
597
-
598
- **Architecture refresh (`road-to-surface-discipline` Phase 4)** —
599
- [`docs/architecture.md`](docs/architecture.md) and
600
- [`docs/mcp-server.md`](docs/mcp-server.md) re-anchor the 6-layer
601
- system model (consumer → tools → installer → package → kernel →
602
- runtime). `AGENTS.md` re-trimmed to honour the Thin-Root contract
603
- (< 3,000 chars). No code churn — docs only.
604
-
605
- **Tier-usage telemetry (`road-to-surface-discipline` Phase 5)** —
606
- empirical retiering signal added behind a default-off opt-in. New
607
- `telemetry.tier_usage` namespace in `.agent-settings.yml`; signal
608
- contract pinned in
609
- [`docs/contracts/command-clusters.md`](docs/contracts/command-clusters.md)
610
- § tier-usage (whitelist: `ts_bucket`, `command`, `tier`, `outcome`,
611
- `user_hash`; hourly time buckets; 16-char salted user hash; no paths,
612
- no argv). Retiering thresholds (≥ 20 invocations and ≥ 3 distinct
613
- users over 30 days) live in the same contract. A new
614
- `tier_usage_report.py` template script aggregates the local log into
615
- a frequency table and refuses to render rows that violate the
616
- privacy floor. The existing `doctor` gains a `tier-usage-readiness`
617
- check (warn when disabled or empty; fail when every record is
618
- poisoned; ok when ≥ 1 record passes the floor). Surface delta: **0
619
- new commands, 0 new skills, 0 new personas** — telemetry rides on
620
- the existing dispatcher and the existing `doctor` entrypoint.
621
-
622
-
623
- **Package consolidation** — the standalone wrapper package
624
- `@event4u/create-agent-config` is retired. `npx @event4u/agent-config init`
625
- is now the canonical one-shot entrypoint; the bundle package gains an
626
- `init` subcommand that delegates to `scripts/install`. `packages/create-agent-config/`
627
- is removed from the repo, and every doc / template / help string is
628
- updated to the new command. Existing users running the old wrapper
629
- should switch — the old package name will stop receiving releases.
630
-
631
- **Global-First Install (R4)** — `npx @event4u/agent-config init`
632
- now defaults to a **global** install (`~/.claude/`, `~/.cursor/`, …)
633
- when run outside a project, and a **project** install when run inside
634
- one. A new global lockfile at `~/.config/agent-config/installed.lock`
635
- records `agent_config_version` + `tools[]` and refuses mismatched
636
- re-installs (exit 1) until `update` or `--force` realigns it. New
637
- `agent-config export --tool=<id> --output=<path>` subcommand ejects a
638
- named tool's resolved content into the project tree (idempotent;
639
- `--force` overrides drift). 12 supported tool ids (claude-code,
640
- cursor, windsurf, cline, aider, codex, gemini, copilot,
641
- claude-desktop, continue, kilocode, zed, jetbrains, kiro). Windows
642
- CI matrix added for the lockfile + export paths. See
643
- [`docs/decisions/ADR-007-agent-discovery-scopes.md`](docs/decisions/ADR-007-agent-discovery-scopes.md)
644
- and [`docs/decisions/ADR-008-installed-tools-manifest.md`](docs/decisions/ADR-008-installed-tools-manifest.md).
645
-
646
- Three roadmaps land in this release.
647
-
648
- **Universal Execution Engine (R1)** — the `/implement-ticket` runtime is
649
- renamed and re-shaped into a universal dispatcher. **No user-visible
650
- behavior change** — the `/implement-ticket` slash command and the
651
- `./agent-config implement-ticket` CLI are byte-stable, gated by the
652
- new Golden-Transcript replay harness.
653
-
654
- **Prompt-Driven Execution (R2)** — a new `/work` command drives free-form
655
- prompts through the same `work_engine` dispatcher with a
656
- confidence-band gate at `refine`. R1 goldens remain byte-equal across
657
- the R2 changes.
658
-
659
- **Product UI Track (R3)** — three new directive sets (`ui`,
660
- `ui-trivial`, `mixed`) turn UI work from "writes the code" into
661
- "produces UI that feels designed". An existing-UI audit is enforced
662
- as a hard gate before any `apply`; design briefs lock microcopy
663
- verbatim; polish has a 2-round ceiling. Stack-aware dispatch routes
664
- implementation to `blade-livewire-flux` / `react-shadcn` / `vue` /
665
- `plain` skill bundles. Happy-path halt budget is 2 (audit pick +
666
- design sign-off). R1 + R2 goldens stay byte-equal; 12 new GT-U
667
- baselines pin the R3 contract.
668
-
669
- ### Features
670
-
671
- * **engine:** universal `work_engine` Python module with explicit
672
- `version: 1` state schema, `directive_set` envelope (backend / ui-stub
673
- / mixed-stub), and `input.kind`-based dispatch ready for prompt-driven
674
- and UI directives in R2 / R3.
675
- * **migration:** `work_engine.migration.v0_to_v1` auto-migrates
676
- `.implement-ticket-state.json` → `.work-state.json` on first run;
677
- v0 file preserved as `.implement-ticket-state.json.bak`. Idempotent
678
- and refuses to overwrite an existing v1 destination.
679
- * **tests:** Golden-Transcript replay harness with 5 live-captured
680
- baseline transcripts (`tests/golden/baseline/GT-{1..5}/`),
681
- `CHECKSUMS.txt` SHA-256 manifest, four strict comparators
682
- (exit codes, state-snapshot structure, halt-marker shape, delivery
683
- report headings) with allow-listed free-text drift on `questions`
684
- and `report` bodies. Both pytest (`tests/golden/test_replay.py`) and
685
- CLI (`python3 -m tests.golden.harness`) entry points.
686
- * **command:** `/work` — sibling entrypoint to `/implement-ticket` that
687
- drives free-form prompts through the same `work_engine` dispatcher
688
- with `input.kind="prompt"`. Backed by the `command-routing` and
689
- `refine-prompt` skills.
690
- * **engine (R2):** prompt resolver (`work_engine.resolvers.prompt`)
691
- builds the prompt envelope; `directives/backend/refine.py::_run_prompt`
692
- reconstructs acceptance criteria, scores the prompt on five
693
- dimensions, and dispatches on the resulting band.
694
- * **scoring:** deterministic, heuristic-only confidence scorer at
695
- `work_engine.scoring.confidence` — single source of truth for the
696
- rubric (`goal_clarity`, `scope_boundary`, `ac_evidence`, `stack_data`,
697
- `reversibility`) and band thresholds (`high ≥ 0.8`, `medium ≥ 0.5`,
698
- `low < 0.5`).
699
- * **band-action gate:** silent proceed on `high`, assumptions-report
700
- halt on `medium`, one-question halt on `low` (per the
701
- `ask-when-uncertain` Iron Law).
702
- * **tests (R2):** four new Golden Transcripts (`GT-P1` high-band happy,
703
- `GT-P2` medium-band release, `GT-P3` low-band one-question halt,
704
- `GT-P4` UI-intent rejection — superseded by the R3 UI track but kept
705
- to pin pre-R3 behaviour) pinned alongside the R1 goldens.
706
-
707
- ### Changed
708
-
709
- * **engine (refactor):** internal Python module renamed
710
- `implement_ticket` → `work_engine`. Public CLI surface, slash command,
711
- user-facing prompts, halts, and delivery report are unchanged. State
712
- filename moves from `.implement-ticket-state.json` to `.work-state.json`
713
- with auto-migration.
714
- * **engine (R2):** `refine` SUCCESS paths now mirror
715
- `data["reconstructed_ac"]` into `state.ticket["acceptance_criteria"]`
716
- as an independent list copy, so downstream gates (`analyze`, `plan`)
717
- read the same AC slot regardless of envelope kind.
718
-
719
- ### Deprecated
720
-
721
- * **`implement_ticket` Python module** — re-export shim retained for
722
- backwards compatibility; emits `DeprecationWarning` on import.
723
- Internal Python consumers should migrate to `from work_engine import …`.
724
- Removal is a separate user-driven decision, not pinned to a release.
725
-
726
- ### CI
727
-
728
- * **freeze-guard:** named `task golden-replay` step in `Taskfile.yml`
729
- and a dedicated `Golden Replay` step in `.github/workflows/tests.yml`,
730
- both invoked before the main pytest sweep so structural regressions
731
- surface first. Freeze-guard workflow rejects baseline edits outside
732
- `R1-P1`-tagged commits.
733
- * **roadmap-progress-check** wired into `task ci` (1.13.0 carry-over).
734
-
735
- ### Documentation
736
-
737
- * **ADR (R1):** [`agents/contexts/adr-work-engine-rename.md`](agents/contexts/adr-work-engine-rename.md)
738
- — rationale, scope of the rename, compatibility shim policy, state
739
- migration, golden-test contract, tradeoffs, non-goals.
740
- * **ADR (R2):** [`docs/contracts/adr-prompt-driven-execution.md`](docs/contracts/adr-prompt-driven-execution.md)
741
- — naming decision (`/work` over `/do`), confidence-band gate,
742
- AC-projection fix, R3 deferral boundary, and golden contract.
743
- * **flow:** `docs/contracts/implement-ticket-flow.md` gains a "Replay
744
- protocol — Strict-Verb comparison" section (R1) and a
745
- "Prompt envelopes and confidence bands (R2)" section pinning the
746
- band-action mapping to the scorer module.
747
- * **README + AGENTS.md template:** document `/work` as the sibling
748
- entrypoint, the confidence-band rubric, and the
749
- `/work` vs. `/implement-ticket` selection rule.
750
- * **rules:** `scope-control` forbids release / version / deprecation-date
751
- language in roadmaps, plans, and ADRs; introduces a `Decline = silence`
752
- policy preventing branch-switch and PR proposals from being re-asked
753
- on the same task.
754
-
755
- ### Features (R3 — Product UI Track)
756
-
757
- * **directive sets:** `directives/ui/` (`audit → design → apply →
758
- review → polish → report`), `directives/ui_trivial/` (provably
759
- bounded edits, `MAX_FILES = 1` and `MAX_LINES_CHANGED = 5`), and
760
- `directives/mixed/` (`contract → ui → stitch`). Dispatched at the
761
- engine boundary on `state.directive_set`; the audit gate is enforced
762
- at the dispatcher AND at always-on rule level
763
- ([`ui-audit-gate`](.agent-src/rules/ui-audit-gate.md))
764
- so cloud surfaces and free-form edits cannot bypass it.
765
- * **stack detection:** `scripts/work_engine/stack/detect.py` reads
766
- `composer.json` + `package.json` and labels the frontend as
767
- `blade-livewire-flux` / `react-shadcn` / `vue` / `plain`. Cached on
768
- `state.stack` against manifest `mtime`; recoverable on parse error
769
- (downgrades to `plain`). `apply` / `review` / `polish` route on the
770
- label.
771
- * **audit gate:** `state.ui_audit` must carry `≥ 1 components_found`
772
- OR `greenfield = True` with a user-chosen `greenfield_decision` ∈
773
- `{scaffold, bare, external_reference}`. Empty dict, `None`, or
774
- populated-without-keys is rejected; the dispatcher emits
775
- `@agent-directive: existing-ui-audit` and refuses to advance.
776
- * **design brief lock:** `apply` rejects components carrying
777
- `PLACEHOLDER_PATTERNS` (`<placeholder>`, `lorem`, `todo:`, `tbd`,
778
- `xxx`); both producer and consumer enforce.
779
- * **polish ceiling:** hard `POLISH_CEILING = 2` rounds, validated at
780
- in-memory state, on-disk schema, AND dispatcher layers. After round
781
- 2 the engine halts with ship-as-is / abort / hand-off.
782
- * **token-violation extraction:** polish classifies
783
- `kind == "token_violation"` findings against
784
- `state.ui_audit.design_tokens`; matched values use the named token,
785
- unmatched values repeated > `TOKEN_REPEAT_THRESHOLD = 2` times
786
- trigger token extraction before the next round.
787
- * **trivial-path reclassification:** `directives/ui_trivial/apply.py`
788
- flips `state.directive_set = "ui"` when the bounded preconditions
789
- fail, restarting the dispatcher at audit. Reclassification is loud
790
- and counted in the delivery report.
791
- * **mixed orchestration:** sentinels `state.contract.contract_confirmed`
792
- (UI sub-flow refuses to start without it) and
793
- `state.stitch.verdict = "success"` (stitch's success condition;
794
- `blocked` / `partial` halts unless `integration_confirmed` flips).
795
- * **skills:** new `existing-ui-audit`, `react-shadcn-ui`, plus
796
- stack-specific apply / review / polish bundles. `fe-design`
797
- repositioned as a framework-agnostic reference cited by
798
- `directives/ui/design.py`.
799
- * **tests (R3):** twelve new Golden Transcripts (`GT-U1`..`GT-U4`,
800
- `GT-U9`..`GT-U12`) covering high-confidence happy path
801
- (1 halt budget), ambiguous (2 halts max), greenfield decisions,
802
- trivial-path apply, polish ceiling hit, and mixed orchestration.
803
- All R1 + R2 + R3 baselines auto-discovered by `tests/golden/test_replay.py`.
804
-
805
- ### Documentation (R3)
806
-
807
- * **ADR (R3):** [`docs/contracts/adr-product-ui-track.md`](docs/contracts/adr-product-ui-track.md)
808
- — audit-as-hard-gate rationale, design-review loop, halt-budget
809
- reasoning, trivial-path-and-reclassification, stack-detection
810
- strategy, fe-design migration, tradeoffs, non-goals.
811
- * **flow contract:** [`docs/contracts/ui-track-flow.md`](docs/contracts/ui-track-flow.md)
812
- — slot-by-slot wiring for `ui` / `ui-trivial` / `mixed`, the
813
- audit-path table (`STRONG_SIMILARITY = 0.7`, `TIE_GAP = 0.05`),
814
- design-brief lock + placeholder patterns, stack-dispatch tables,
815
- polish ceiling, trivial preconditions, mixed sentinels,
816
- idempotency table, declared ambiguities across all eight directives.
817
- * **extension recipe:** [`docs/contracts/ui-stack-extension.md`](docs/contracts/ui-stack-extension.md)
818
- — how to add a new stack (Svelte, SolidJS, Astro, …): label
819
- conventions, detector heuristic, three required skills, dispatch
820
- wiring, version anchor, Golden fixture, end-to-end verification.
821
- * **README + AGENTS.md template:** UI track flow table (`ui` /
822
- `ui-trivial` / `mixed`), audit-gate property, design-brief lock,
823
- polish ceiling, stack-dispatch summary; the pre-R3 "rejected,
824
- backend-only" wording is removed.
825
- * **golden test capture:** [`tests/golden/CAPTURING.md`](tests/golden/CAPTURING.md)
826
- — central regeneration recipe, lock policy, when to relock; replaces
827
- 17 per-baseline `reproduction-notes.md` files (the loadable artefacts
828
- — `transcript.json`, `state-snapshots/`, `halt-markers.json`,
829
- `exit-codes.json`, `delivery-report.md` — stay).
830
-
831
- ### Archived (R3)
832
-
833
- * **roadmap:** `agents/roadmaps/intent-based-orchestration.md` moved to
834
- `agents/roadmaps/archive/`; superseded by R1 + R2 + R3.
835
-
836
- **Artefact-Engagement Telemetry** — opt-in, default-off measurement layer
837
- that records which skills, rules, commands, and guidelines the agent
838
- consults and applies during a `/implement-ticket` or `/work` run.
839
- Maintainer-targeted; consumers see no prompts.
840
-
841
- ### Features
842
-
843
- * **telemetry:** `./agent-config telemetry:record` and
844
- `./agent-config telemetry:report` CLI scripts + `telemetry/` Python
845
- package (boundary, aggregator, renderer, schema). Default-off via
846
- `telemetry.artifact_engagement.enabled` in `.agent-settings.yml`.
847
- * **schema:** `schema_version: 1` JSONL events with `task_id`,
848
- `boundary_kind`, `consulted` / `applied` (kind→ids), `ts`,
849
- `tokens_estimate`. Aggregator silently skips lines with unknown
850
- schema versions.
851
- * **report:** quartile bucketing on applied/consulted ratio — Essential
852
- (top 20 %), Useful (mid 60 %), Retirement Candidates (bottom 20 %) —
853
- emitted as Markdown or JSON.
854
- * **rule:** `artifact-engagement-recording` — fires per phase-step
855
- inside `/implement-ticket` and `/work`; no-op under the default-off
856
- gate so the recording path costs nothing when disabled.
857
- * **privacy:** `check_id_redaction` validator enforces a redaction
858
- floor (no path separators, no file extensions, no control characters,
859
- no whitespace, non-empty) on **both** write and export. Tampered or
860
- legacy logs cannot leak through reports — renderer re-validates.
861
- * **tests:** 36 redaction test cases plus end-to-end CLI coverage
862
- in `tests/telemetry/`.
863
-
864
- ### Documentation
865
-
866
- * **ADR:** [`agents/contexts/adr-artifact-engagement.md`](agents/contexts/adr-artifact-engagement.md)
867
- — rationale, default-off doctrine, privacy contract, schema
868
- versioning, deprecation horizon.
869
- * **flow:** `docs/contracts/artifact-engagement-flow.md` is the
870
- cross-cutting reference for what gets recorded, when, and under
871
- which constraints; includes the maintainer hand-audit recipe.
872
- * **AGENTS.md + README.md:** short *Maintainer telemetry (opt-in)*
873
- pointer; consumers see nothing.
874
- * **`/onboard`:** Step 9 emits a one-screen maintainer-only hint
875
- describing the feature; no question, no prompt.
876
-
877
- **Context-Aware Command Suggestion** — deterministic, read-only layer
878
- that surfaces eligible slash commands as numbered options when a
879
- non-`/`-prefixed user prompt matches their `suggestion.trigger_*`
880
- frontmatter. **Nothing auto-executes** — the user picks every time;
881
- the as-is option is always present and always last.
882
-
883
- ### Features
884
-
885
- * **engine:** `scripts/command_suggester/` Python package
886
- (`match` / `rank` / `cooldown` / `sanitize` / `render` / `loader`).
887
- Heuristic-only scoring (substring + Jaccard token overlap +
888
- structural-bonus boosts), per-conversation cooldown keyed on
889
- `(command, evidence)`, and a sanitiser that strips fenced + inline
890
- code blocks plus the suggester's own previous block shape before
891
- scoring.
892
- * **rule:** `command-suggestion` (always-on) — emits one
893
- numbered-options block per turn under the `user-interaction` Iron
894
- Law. Subordinate to `scope-control`, `ask-when-uncertain`,
895
- `verify-before-complete`, and any active role-mode contract or
896
- engine halt; on conflict → silent.
897
- * **frontmatter:** every command carries
898
- `suggestion.eligible` (default `true`) plus a flat
899
- `trigger_description` + `trigger_context` pair (linter-validated,
900
- ≥ 10 chars each). Locked eligibility table at
901
- [`agents/contexts/command-suggestion-eligibility.md`](agents/contexts/command-suggestion-eligibility.md).
902
- * **settings:** `commands.suggestion` block in
903
- `.agent-settings.yml` — `enabled` (global), `blocklist`
904
- (per-command), `confidence_floor` (default `0.6`), `cooldown`
905
- (default `10m`), `max_options` (default `4`, plus the always-extra
906
- as-is option). Per-command overrides via frontmatter.
907
- * **opt-out paths (3):** global (`enabled: false`), per-command
908
- (`blocklist`), per-conversation (`/command-suggestion-off` /
909
- `/command-suggestion-on` directives detected by `cooldown.py`).
910
- * **anti-noise heuristics:** sub-floor suppression, lonely-match
911
- guard within `floor + 0.1`, vague-prompt guard (< 6 words +
912
- > 2 matches without structural bonus), continuation-phrase guard
913
- (`ok`, `weiter`, `continue`, …). Structural bonuses (ticket key,
914
- file path) override every suppressor.
915
- * **tests:** 84 unit cases in `tests/test_command_suggester.py`
916
- (matcher, rank, cooldown, sanitiser, render, settings, directive)
917
- plus 9 GT-CS goldens in `tests/test_command_suggester_goldens.py`
918
- (single-match, tie-break, sub-floor, slash-bypass, as-is pick,
919
- cooldown, settings off, clarification-wins, adversarial echo).
920
- * **no behavioural change to slash invocation:** explicit `/command`
921
- bypasses the suggester entirely; per-command halts intact.
922
-
923
- ### Documentation
924
-
925
- * **ADR:** [`docs/contracts/adr-command-suggestion.md`](docs/contracts/adr-command-suggestion.md)
926
- — "suggest, never invoke" anchor, eligibility rubric, anti-noise
927
- heuristics, hardening list, three opt-out paths.
928
- * **flow:** [`docs/contracts/command-suggestion-flow.md`](docs/contracts/command-suggestion-flow.md)
929
- — scoring breakdown, evidence semantics, subordination order, and
930
- hardening tests.
931
- * **README + AGENTS.md:** short *Context-aware command suggestion*
932
- section pointing to the ADR and the flow doc.
933
-
934
- **Install-path pruning (relabel only)** — `docs/installation.md`
935
- reorders install paths by recommendation prominence. Composer + npm
936
- remain the default; manual / submodule / VS Code Git URL are tagged
937
- `advanced`; Claude.ai Web Skills UI is tagged `experimental`; Linear
938
- AI workspace guidance is tagged `staged`. **No installer or shipped
939
- artefact is removed in 1.15.0** — every path on the page still works
940
- and is still tested. The labels describe how prominent the path is in
941
- our recommendation order, not its support status.
942
-
943
- ### Documentation
944
-
945
- * **`docs/installation.md`:** new label table at the top
946
- (`(no label)` / `advanced` / `experimental` / `staged`) plus a
947
- preamble that calls out the no-removal contract explicitly. Section
948
- headers carry their label inline for skim-readers.
949
- * **rationale:** see R9 in
950
- [`agents/roadmaps/archive/road-to-post-pr29-optimize.md`](agents/roadmaps/archive/road-to-post-pr29-optimize.md)
951
- — relabelling addresses the "four install paths at zero external
952
- users" tension without removing any path that an existing user
953
- might rely on.