@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
@@ -0,0 +1,197 @@
1
+ #!/usr/bin/env tsx
2
+ /**
3
+ * `agent-config memory:get` — CLI twin of the `memory_get` MCP tool
4
+ * (`src/scripts/mcp_server/tools.ts` `_memoryGetHandler`, road-to-memory-
5
+ * retrieval-economy Phase 1).
6
+ *
7
+ * Batch-fetches FULL memory entries by id — the second half of the
8
+ * index-first retrieval workflow: `memory:lookup --detail index` returns
9
+ * compact priced rows, this fetches ONLY the bodies actually needed, in one
10
+ * call. Reuses the exact same shared function the MCP tool calls
11
+ * (`memory_get_v1` in `../memory_lookup.js`) — no duplicated lookup logic.
12
+ *
13
+ * Unlike the MCP handler (which `chdir`s into the consumer root before
14
+ * calling), this CLI relies on `agent-config`'s existing invariant that the
15
+ * dispatcher never changes CWD — `memory_get_v1` resolves `agents/memory`
16
+ * relative to `process.cwd()`, which is already the consumer's repo root.
17
+ *
18
+ * Usage: memory:get <id> [<id> ...] [--format text|json]
19
+ * Exit codes:
20
+ * 0 — every requested id was found.
21
+ * 1 — at least one requested id was not found (unknown id).
22
+ * 2 — usage error (no ids given, unrecognized flag, missing flag value).
23
+ */
24
+ import process from 'node:process';
25
+ import * as fs from 'node:fs';
26
+ import * as path from 'node:path';
27
+ import { fileURLToPath, pathToFileURL } from 'node:url';
28
+
29
+ import { memory_get_v1 } from '../memory_lookup.js';
30
+
31
+ const PROG = 'agent-config memory:get';
32
+ const USAGE = `usage: ${PROG} <id> [<id> ...] [--format text|json]\n`;
33
+
34
+ /** argparse-style usage / help exit (code 2 / 0). Caught at the CLI entry. */
35
+ class ArgparseExit extends Error {
36
+ constructor(public readonly code: number) {
37
+ super(`argparse-exit-${code}`);
38
+ }
39
+ }
40
+
41
+ interface Opts {
42
+ ids: string[];
43
+ format: 'text' | 'json';
44
+ }
45
+
46
+ function _argError(msg: string): never {
47
+ process.stderr.write(USAGE);
48
+ process.stderr.write(`${PROG}: error: ${msg}\n`);
49
+ throw new ArgparseExit(2);
50
+ }
51
+
52
+ function _parse(argv: string[]): Opts {
53
+ const opts: Opts = { ids: [], format: 'text' };
54
+ let i = 0;
55
+ while (i < argv.length) {
56
+ const a = argv[i] as string;
57
+ if (a === '-h' || a === '--help') {
58
+ process.stdout.write(
59
+ `${USAGE}\n` +
60
+ 'Batch-fetch FULL memory entries by id — the second half of the\n' +
61
+ "index-first retrieval workflow (`memory:lookup --detail index`\n" +
62
+ 'first, then `memory:get` the ids that justify the fetch).\n\n' +
63
+ 'options:\n' +
64
+ ' --format text|json output format (default: text)\n' +
65
+ ' -h, --help show this help and exit\n\n' +
66
+ 'exit codes:\n' +
67
+ ' 0 every requested id was found\n' +
68
+ ' 1 at least one requested id was not found\n' +
69
+ ' 2 usage error\n',
70
+ );
71
+ throw new ArgparseExit(0);
72
+ } else if (a === '--format') {
73
+ const val = argv[i + 1];
74
+ if (val === undefined) _argError('argument --format: expected one argument');
75
+ if (val !== 'text' && val !== 'json') {
76
+ _argError(`argument --format: invalid choice: '${val}' (choose from 'text', 'json')`);
77
+ }
78
+ opts.format = val;
79
+ i += 2;
80
+ } else if (a.startsWith('--format=')) {
81
+ const val = a.slice('--format='.length);
82
+ if (val !== 'text' && val !== 'json') {
83
+ _argError(`argument --format: invalid choice: '${val}' (choose from 'text', 'json')`);
84
+ }
85
+ opts.format = val;
86
+ i += 1;
87
+ } else if (a.startsWith('--')) {
88
+ _argError(`unrecognized arguments: ${a}`);
89
+ } else {
90
+ opts.ids.push(a);
91
+ i += 1;
92
+ }
93
+ }
94
+ if (opts.ids.length === 0) {
95
+ _argError('at least one <id> is required');
96
+ }
97
+ return opts;
98
+ }
99
+
100
+ function isPlainObject(value: unknown): value is Record<string, unknown> {
101
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
102
+ }
103
+
104
+ /** Render one fetched entry as an indented `key: value` block. */
105
+ function _renderEntryText(entry: Record<string, unknown>): string {
106
+ const lines: string[] = [];
107
+ const id = typeof entry['id'] === 'string' ? entry['id'] : '(unknown id)';
108
+ const type = typeof entry['type'] === 'string' ? entry['type'] : '(unknown type)';
109
+ lines.push(`[${id}] ${type}`);
110
+ const body = entry['body'];
111
+ if (isPlainObject(body)) {
112
+ for (const key of Object.keys(body).sort()) {
113
+ lines.push(` ${key}: ${_renderValue(body[key])}`);
114
+ }
115
+ }
116
+ return lines.join('\n');
117
+ }
118
+
119
+ /**
120
+ * Render one body value for text output. `memory_lookup.ts` wraps YAML
121
+ * date scalars in a `PyTimestamp`-shaped object (`{ pyStr: string }`, not
122
+ * exported) to mirror Python's `yaml.safe_load` date parsing — duck-type
123
+ * that shape rather than importing the private class.
124
+ */
125
+ function _renderValue(value: unknown): string {
126
+ if (typeof value === 'string') return value;
127
+ if (isPlainObject(value) && typeof value['pyStr'] === 'string' && Object.keys(value).length === 1) {
128
+ return value['pyStr'];
129
+ }
130
+ return JSON.stringify(value);
131
+ }
132
+
133
+ export function main(argv: string[] | null = null): number {
134
+ const opts = _parse(argv ?? process.argv.slice(2));
135
+ const envelope = memory_get_v1(opts.ids);
136
+ const entries = Array.isArray(envelope['entries']) ? (envelope['entries'] as Record<string, unknown>[]) : [];
137
+ const idStatus = isPlainObject(envelope['ids']) ? (envelope['ids'] as Record<string, string>) : {};
138
+ const unknown = opts.ids.filter((id) => idStatus[id] === 'unknown');
139
+
140
+ if (opts.format === 'json') {
141
+ process.stdout.write(`${JSON.stringify(envelope, null, 2)}\n`);
142
+ } else {
143
+ if (entries.length === 0) {
144
+ process.stdout.write(' (no entries found)\n');
145
+ } else {
146
+ for (const entry of entries) {
147
+ process.stdout.write(`${_renderEntryText(entry)}\n`);
148
+ }
149
+ }
150
+ for (const id of unknown) {
151
+ process.stderr.write(`${PROG}: unknown id: ${id}\n`);
152
+ }
153
+ }
154
+
155
+ return unknown.length > 0 ? 1 : 0;
156
+ }
157
+
158
+ // --- CLI entry ---
159
+
160
+ const _HERE = fileURLToPath(import.meta.url);
161
+
162
+ function _isCliEntry(): boolean {
163
+ if (process.argv[1] === undefined) {
164
+ return false;
165
+ }
166
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
167
+ if (import.meta.url === argvUrl) {
168
+ return true;
169
+ }
170
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
171
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
172
+ // import.meta.url is the resolved real path while argv[1] keeps the
173
+ // symlink path. Compare realpaths so the entry guard still fires
174
+ // (without this the CLI silently no-ops when run through a symlink).
175
+ try {
176
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
177
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
178
+ return here === argv;
179
+ } catch {
180
+ return false;
181
+ }
182
+ }
183
+
184
+ if (_isCliEntry() || process.argv[1] === _HERE) {
185
+ try {
186
+ process.exitCode = main(process.argv.slice(2));
187
+ } catch (exc) {
188
+ if (exc instanceof ArgparseExit) {
189
+ process.exitCode = exc.code;
190
+ } else {
191
+ throw exc;
192
+ }
193
+ }
194
+ }
195
+
196
+ export { ArgparseExit };
197
+ export type { Opts };
@@ -68,6 +68,7 @@ import { fileURLToPath, pathToFileURL } from 'node:url';
68
68
 
69
69
  import * as cli_wrapper from '../_lib/cli_wrapper.js';
70
70
  import * as sync_gitignore from '../sync_gitignore.js';
71
+ import * as sync_gitattributes from '../sync_gitattributes.js';
71
72
 
72
73
  const PACKAGE_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..', '..');
73
74
 
@@ -306,6 +307,12 @@ function _refresh_project(project_root: string, out: OutSink, err: OutSink): num
306
307
  if (rc !== 0) {
307
308
  return rc;
308
309
  }
310
+
311
+ // Memory merge-safety attributes (road-to-reachable-code-memory Phase 5):
312
+ // advisory, same shape as the gitignore sync above — never fails the
313
+ // refresh on its own.
314
+ _sync_gitattributes(project_root, out, err);
315
+
309
316
  _print(out, '✅ refresh --project complete.');
310
317
  return 0;
311
318
  }
@@ -329,6 +336,28 @@ function _sync_gitignore(project_root: string, out: OutSink, err: OutSink): numb
329
336
  return 0;
330
337
  }
331
338
 
339
+ /**
340
+ * Sync the memory-merge-safety block into the consumer's `.gitattributes`.
341
+ * Advisory only (mirrors `_sync_gitignore`'s failure shape) — a missing
342
+ * template or a write failure is reported but never fails the refresh.
343
+ */
344
+ function _sync_gitattributes(project_root: string, out: OutSink, err: OutSink): number {
345
+ let mod: typeof sync_gitattributes;
346
+ try {
347
+ mod = sync_gitattributes;
348
+ } catch (exc) {
349
+ _print(err, `⚠️ refresh --project: gitattributes sync unavailable (${osErrorStr(exc)})`);
350
+ return 0;
351
+ }
352
+ const rc = mod.main(['--path', path.join(project_root, '.gitattributes')]);
353
+ if (rc !== 0 && rc !== null && rc !== undefined) {
354
+ _print(err, `⚠️ refresh --project: gitattributes sync returned ${rc}`);
355
+ } else {
356
+ _print(out, '✅ .gitattributes memory merge-safety block synced.');
357
+ }
358
+ return 0;
359
+ }
360
+
332
361
  interface Args {
333
362
  is_global: boolean;
334
363
  is_project: boolean;
@@ -460,6 +489,7 @@ export {
460
489
  _is_source_repo,
461
490
  _refresh_project,
462
491
  _sync_gitignore,
492
+ _sync_gitattributes,
463
493
  _remove_legacy_consumer_bridge_marker,
464
494
  ArgparseExit,
465
495
  };
@@ -76,6 +76,7 @@ TS-shell native (run via the installed `agent-config` binary):
76
76
  commands [ls|explain] List/explain the command surface from the discovery manifest
77
77
  mcp-server Turnkey read-only stdio MCP server (no repo clone; ADR-085)
78
78
  doctor-shell Probe the TS-shell environment
79
+ rtk:detect rtk (Rust Token Killer) presence + identity readout (--json)
79
80
  eval:record Record a live trigger-eval result into a corpus manifest
80
81
  EOF
81
82
 
@@ -173,6 +174,8 @@ Tier 2 — maintenance / internal (hooks, MCP, memory, telemetry):
173
174
  relation-graph with a node budget. Flags: --budget N
174
175
  benchmark Report context-token reduction vs the full always-loaded
175
176
  projection (from the pinned token baseline). Flags: --format
177
+ code-graph Deterministic code-graph engine (ADR-124, Class A).
178
+ Usage: code-graph build|validate|detect|query|explain|affected|path [options]
176
179
  roadmap:progress Regenerate agents/roadmaps-progress.md from open roadmaps
177
180
  roadmap:progress-check Fail if agents/roadmaps-progress.md is stale (for CI)
178
181
  roadmap:archive Archive completed roadmaps (branch-touched by default;
@@ -205,13 +208,31 @@ Tier 2 — maintenance / internal (hooks, MCP, memory, telemetry):
205
208
  Usage: hooks:replay --platform <name> --event <event>
206
209
  --payload <path|event-name> [--native-event <native>]
207
210
  [--manifest <path>] [--json] [--dry-run]
211
+ reach:doctor Health report over the reach channel registry: per channel
212
+ the active backend, lifecycle, and the pinned install command
213
+ for this platform when a backend is missing/broken.
214
+ Read-only — no writes, no installs; NOT a router and NOT an
215
+ agent-facing recommendation.
216
+ Flags: --format json|table, --strict (CI), --channel <id>,
217
+ --registry <path>, --deep (⚠️ opt-in NETWORK: one real
218
+ read-only request per declared backend; never runs in CI,
219
+ writes nothing)
208
220
  memory:lookup Retrieve memory entries (text or JSON envelope)
221
+ memory:get Batch-fetch full memory entries by id (CLI twin of the
222
+ memory_get MCP tool). Usage: memory:get <id> [<id> ...] [--format text|json]
209
223
  linked-projects:list List opted-in IDE-attached sibling repos (path · detected_via · large)
210
224
  Flags: --all (show undecided too), --format json
211
225
  memory:signal Append a provisional intake signal (memory proposal)
212
226
  memory:hash Hash a memory entry (YAML or JSON stdin)
213
227
  memory:check Validate memory YAML schema + staleness
214
228
  memory:check-proposal Run the admission gate on a memory proposal
229
+ memory:learn Aggregate memory intake signals into the local learning
230
+ sidecar (read-only; --write to emit). Usage: memory:learn [--intake-dir DIR]
231
+ [--out-dir DIR] [--now ISO] [--write] [--format text|json]
232
+ analytics Local-only workspace analytics (emit|show|prune|migrate).
233
+ Usage: analytics show [--window 30d|7d|24h] · analytics prune
234
+ knowledge Global knowledge-card store (list|show|trace|forget|promote|
235
+ validate|lead-check|purge). Usage: knowledge list [--json]
215
236
  proposal:check Validate a learning/skill/rule proposal markdown
216
237
  refine-ticket:detect Run the deterministic refine-ticket detection helper
217
238
  chat-history:hook Platform hook entry point (read JSON from stdin)
@@ -296,8 +317,12 @@ Examples (Tier 2):
296
317
  ./agent-config hooks:install
297
318
  ./agent-config hooks:replay --platform augment --event post_tool_use --payload post_tool_use --json
298
319
  ./agent-config memory:lookup --types domain-invariants --key billing
320
+ ./agent-config memory:get a1-crosshost-subagent-degradation
299
321
  ./agent-config memory:signal --type architecture-decision --path src/Foo.php --body "…"
300
322
  ./agent-config memory:check --path agents/memory
323
+ ./agent-config memory:learn --format json
324
+ ./agent-config code-graph detect
325
+ ./agent-config code-graph query <symbol>
301
326
  ./agent-config refine-ticket:detect ticket-body.txt
302
327
  ./agent-config telemetry:status
303
328
  ./agent-config telemetry:status --format json
@@ -455,6 +480,15 @@ cmd_benchmark() {
455
480
  exec_ts "$script" "$@"
456
481
  }
457
482
 
483
+ # `agent-config code-graph` — deterministic code-graph engine (ADR-124,
484
+ # Class A). Delegates 1:1 to the engine CLI's own subcommand dispatch
485
+ # (build|validate|detect|query|explain|affected|path); no re-parsing here.
486
+ cmd_code_graph() {
487
+ local script
488
+ script="$(resolve_script "src/scripts/code_graph/cli.ts")"
489
+ exec_ts "$script" "$@"
490
+ }
491
+
458
492
  cmd_mcp_check() {
459
493
  local script
460
494
  script="$(resolve_script "src/scripts/mcp_render.ts")"
@@ -471,6 +505,13 @@ cmd_mcp_setup() {
471
505
  # package (PACKAGE_ROOT/src/scripts/mcp_server/) as a TypeScript module run
472
506
  # via tsx — no Python venv / SDK install any more (the runtime is Node/tsx).
473
507
  cmd_mcp_run() {
508
+ # Precompiled bundle first (road-to-credible-install Phase 1 tsx sweep):
509
+ # one node start, no tsx in the runtime tree. tsx path is the dev-tree
510
+ # fallback only.
511
+ local server_bundle="$PACKAGE_ROOT/dist/mcp/server.mjs"
512
+ if [[ -f "$server_bundle" ]]; then
513
+ exec node "$server_bundle" "$@"
514
+ fi
474
515
  local server_main="$PACKAGE_ROOT/src/scripts/mcp_server/__main__.ts"
475
516
  if [[ ! -f "$server_main" ]]; then
476
517
  echo "❌ agent-config: MCP server module not found at $server_main" >&2
@@ -542,6 +583,43 @@ cmd_memory_lookup() {
542
583
  exec_ts "$script" "$@"
543
584
  }
544
585
 
586
+ # `agent-config memory:get` — CLI twin of the `memory_get` MCP tool
587
+ # (batch full-entry fetch by id). Package-internal handler
588
+ # (src/scripts/_cli/cmd_memory_get.ts) reuses `memory_get_v1` from
589
+ # src/scripts/memory_lookup.ts — no separate resolve needed, same
590
+ # direct-PACKAGE_ROOT pattern as cmd_export / cmd_sync / cmd_validate.
591
+ cmd_memory_get() {
592
+ exec_ts "$PACKAGE_ROOT/src/scripts/_cli/cmd_memory_get.ts" "$@"
593
+ }
594
+
595
+ # `agent-config memory:learn` — aggregate the memory intake signal log
596
+ # into the local, gitignored learning sidecar (road-to-retrieval-
597
+ # substrate-hardening B3). Read-only by default (the sidecar's own
598
+ # default); `--write` emits `.agent-learning.json` + `LESSONS.md`.
599
+ cmd_memory_learn() {
600
+ local script
601
+ script="$(resolve_script "src/scripts/learning_sidecar.ts")" || return 1
602
+ exec_ts "$script" "$@"
603
+ }
604
+
605
+ # `agent-config analytics` — local-only workspace analytics
606
+ # (docs/contracts/local-analytics.md). Delegates 1:1 to the module's own
607
+ # subcommand dispatch (emit|show|prune|migrate|decrypt-all|rekey).
608
+ cmd_analytics() {
609
+ local script
610
+ script="$(resolve_script "src/cli/python/workspace_analytics.ts")" || return 1
611
+ exec_ts "$script" "$@"
612
+ }
613
+
614
+ # `agent-config knowledge` — file-first global knowledge-card store
615
+ # (ADR-100). Delegates 1:1 to the store CLI's own subcommand dispatch
616
+ # (list|show|trace|forget|promote|validate|lead-check|purge).
617
+ cmd_knowledge() {
618
+ local script
619
+ script="$(resolve_script "src/scripts/knowledge_global_cli.ts")" || return 1
620
+ exec_ts "$script" "$@"
621
+ }
622
+
545
623
  cmd_linked_projects_list() {
546
624
  local script
547
625
  script="$(resolve_script "src/scripts/linked_projects_list.ts")" || return 1
@@ -621,6 +699,13 @@ cmd_context_hygiene_hook() {
621
699
  }
622
700
 
623
701
  cmd_dispatch_hook() {
702
+ # Hook hot path (road-to-credible-install Phase 1): prefer the precompiled
703
+ # single-process bundle — one node start, concerns in-process, no tsx.
704
+ # Fallback to the tsx path only on a stale dev tree without dist/.
705
+ local bundle="$PACKAGE_ROOT/dist/hooks/dispatch.js"
706
+ if [[ -f "$bundle" ]]; then
707
+ exec node "$bundle" "$@"
708
+ fi
624
709
  exec_hook "src/scripts/hooks/dispatch_hook" "$@"
625
710
  }
626
711
 
@@ -636,6 +721,11 @@ cmd_hooks_replay() {
636
721
  exec_hook "src/scripts/hooks/replay_hook" "$@"
637
722
  }
638
723
 
724
+ # Read-only reach-channel health report. Never installs, never writes.
725
+ cmd_reach_doctor() {
726
+ exec_hook "src/scripts/reach_doctor" "$@"
727
+ }
728
+
639
729
  cmd_chat_history_checkpoint() {
640
730
  local script
641
731
  script="$(resolve_script "src/scripts/chat_history.ts")" || return 1
@@ -1058,6 +1148,7 @@ main() {
1058
1148
  affected) cmd_affected "$@" ;;
1059
1149
  graph-explain) cmd_graph_explain "$@" ;;
1060
1150
  benchmark) cmd_benchmark "$@" ;;
1151
+ code-graph) cmd_code_graph "$@" ;;
1061
1152
  roadmap:progress) cmd_roadmap_progress "$@" ;;
1062
1153
  roadmap:progress-check) cmd_roadmap_progress_check "$@" ;;
1063
1154
  roadmap:archive) cmd_roadmap_archive "$@" ;;
@@ -1069,11 +1160,15 @@ main() {
1069
1160
  implement-ticket) cmd_implement_ticket "$@" ;;
1070
1161
  work) cmd_work "$@" ;;
1071
1162
  memory:lookup) cmd_memory_lookup "$@" ;;
1163
+ memory:get) cmd_memory_get "$@" ;;
1072
1164
  linked-projects:list) cmd_linked_projects_list "$@" ;;
1073
1165
  memory:signal) cmd_memory_signal "$@" ;;
1074
1166
  memory:hash) cmd_memory_hash "$@" ;;
1075
1167
  memory:check) cmd_memory_check "$@" ;;
1076
1168
  memory:check-proposal) cmd_memory_check_proposal "$@" ;;
1169
+ memory:learn) cmd_memory_learn "$@" ;;
1170
+ analytics) cmd_analytics "$@" ;;
1171
+ knowledge) cmd_knowledge "$@" ;;
1077
1172
  proposal:check) cmd_proposal_check "$@" ;;
1078
1173
  refine-ticket:detect) cmd_refine_ticket_detect "$@" ;;
1079
1174
  chat-history:hook) cmd_chat_history_hook "$@" ;;
@@ -1085,6 +1180,7 @@ main() {
1085
1180
  hooks:status) cmd_hooks_status "$@" ;;
1086
1181
  hooks:doctor) cmd_hooks_doctor "$@" ;;
1087
1182
  hooks:replay) cmd_hooks_replay "$@" ;;
1183
+ reach:doctor) cmd_reach_doctor "$@" ;;
1088
1184
  telemetry:record) cmd_telemetry_record "$@" ;;
1089
1185
  telemetry:status) cmd_telemetry_status "$@" ;;
1090
1186
  telemetry:report) cmd_telemetry_report "$@" ;;
@@ -15,7 +15,13 @@
15
15
  */
16
16
  import { describe, expect, it } from 'vitest';
17
17
 
18
- import { classifyTask, type ActivationInputs, type TaskSignals } from './auto_dispatch.js';
18
+ import {
19
+ classifyLookup,
20
+ classifyTask,
21
+ type ActivationInputs,
22
+ type LookupClass,
23
+ type TaskSignals,
24
+ } from './auto_dispatch.js';
19
25
 
20
26
  const ON: ActivationInputs = { enabled: true, auto: 'on', subagent_spawn: true };
21
27
 
@@ -85,3 +91,60 @@ describe('parallelizable classifier — corpus recall', () => {
85
91
  }
86
92
  });
87
93
  });
94
+
95
+ /**
96
+ * Lookup-class corpus (L0 — road-to-lean-agent-init Phase 1). The first four
97
+ * entries are the live-observed 2026-07-28 task shapes that burned ~1.21M
98
+ * subagent tokens; each must route to a primitive, never a spawn. The
99
+ * negative controls are non-lookup tasks that must escalate unchanged.
100
+ */
101
+ const LOOKUP_CORPUS: Array<{ id: string; text: string; expect: LookupClass | null }> = [
102
+ // ── the four observed shapes (live evidence, 2026-07-28 session) ──
103
+ { id: 'lk-01', text: 'Confirming ExternalApiProviderEnum definition location', expect: 'definition' },
104
+ { id: 'lk-02', text: 'Confirming GWInput import call sites', expect: 'references' },
105
+ { id: 'lk-03', text: 'Running check_enforcement_coverage report', expect: 'report-run' },
106
+ { id: 'lk-04', text: 'Probing candidate strings with tsx', expect: 'string-existence' },
107
+ // ── generalizations of the same shapes ──
108
+ { id: 'lk-05', text: 'Where is classifyTask defined?', expect: 'definition' },
109
+ { id: 'lk-06', text: 'Who calls readOrchestrationMetrics across the repo?', expect: 'references' },
110
+ { id: 'lk-07', text: 'Does the string "lean-init-2026" exist anywhere in src/?', expect: 'string-existence' },
111
+ { id: 'lk-08', text: 'Run the roadmap:progress-check report and summarize', expect: 'report-run' },
112
+ { id: 'lk-09', text: 'Find all usages of InferredTier in tests', expect: 'references' },
113
+ { id: 'lk-10', text: 'Locate the enum that lists the dispatch actions', expect: 'definition' },
114
+ // ── negative controls — must escalate, never route to a primitive ──
115
+ { id: 'lk-n1', text: 'Refactor the auth middleware to use the new session store', expect: null },
116
+ { id: 'lk-n2', text: 'Fix the failing corpus test and explain the root cause', expect: null },
117
+ { id: 'lk-n3', text: 'Design a migration plan for the audit schema', expect: null },
118
+ { id: 'lk-n4', text: 'Review this diff for security issues', expect: null },
119
+ ];
120
+
121
+ describe('lookup-class routing — corpus recall + FP=0 (lean-init L0)', () => {
122
+ for (const c of LOOKUP_CORPUS) {
123
+ it(`${c.id}: ${c.text}`, () => {
124
+ const r = classifyLookup(c.text);
125
+ expect(r.lookup_class).toBe(c.expect);
126
+ expect(r.route).toBe(c.expect === null ? 'escalate' : 'primitive');
127
+ });
128
+ }
129
+
130
+ it('recall on the four live-observed shapes is 4/4', () => {
131
+ const observed = LOOKUP_CORPUS.filter((c) => c.id.startsWith('lk-0') && Number(c.id.slice(3)) <= 4);
132
+ expect(observed).toHaveLength(4);
133
+ for (const c of observed) {
134
+ expect(classifyLookup(c.text).route).toBe('primitive');
135
+ }
136
+ });
137
+
138
+ it('false-positive rate is 0 — no negative control routes to a primitive', () => {
139
+ for (const c of LOOKUP_CORPUS.filter((x) => x.expect === null)) {
140
+ expect(classifyLookup(c.text).route).toBe('escalate');
141
+ }
142
+ });
143
+
144
+ it('unknown resolves to escalate with a non-degradation reason', () => {
145
+ const r = classifyLookup('Do something clever with the codebase');
146
+ expect(r.route).toBe('escalate');
147
+ expect(r.primitive).toBeNull();
148
+ expect(r.reason).toContain('never down-guessed');
149
+ });
150
+ });
@@ -94,6 +94,82 @@ export function classifyTask(signals: TaskSignals, activation: ActivationInputs)
94
94
  return { delegable: true, action, mode, reason };
95
95
  }
96
96
 
97
+ // ── Lookup-class routing (L0 — road-to-lean-agent-init) ──
98
+
99
+ /**
100
+ * Lookup-class task shapes that route to a deterministic primitive INSTEAD of
101
+ * a subagent spawn. Contract:
102
+ * `auto-dispatch-classification.md § Lookup-class rung`.
103
+ *
104
+ * Live evidence (2026-07-28): four `general-purpose` subagents burned ~1.21M
105
+ * tokens on tasks of exactly these shapes; the primitives answer each for <1k.
106
+ */
107
+ export type LookupClass =
108
+ | 'definition' // "where is X defined" → code_graph query
109
+ | 'references' // "who calls / imports X" → code_graph query
110
+ | 'string-existence' // "does string Y exist" → FTS one-shot / capped grep
111
+ | 'report-run'; // "run report Z" → script-run with rtk wrap
112
+
113
+ export type LookupPrimitive = 'code-graph-query' | 'fts-or-capped-grep' | 'script-run-rtk';
114
+
115
+ export interface LookupRoute {
116
+ /** Matched lookup class, or null when the task is not lookup-shaped. */
117
+ lookup_class: LookupClass | null;
118
+ /** `primitive` = skip the spawn; `escalate` = normal classification path. */
119
+ route: 'primitive' | 'escalate';
120
+ primitive: LookupPrimitive | null;
121
+ reason: string;
122
+ }
123
+
124
+ const LOOKUP_PATTERNS: Array<{ cls: LookupClass; primitive: LookupPrimitive; re: RegExp }> = [
125
+ {
126
+ cls: 'definition',
127
+ primitive: 'code-graph-query',
128
+ re: /\b(where\s+is\s+\S+\s+defined|definition\s+(location|of|site)|find\s+the\s+definition|locate\s+the\s+(class|enum|function|type|interface|symbol)|confirm\w*\s+\S+\s+definition)\b/i,
129
+ },
130
+ {
131
+ cls: 'references',
132
+ primitive: 'code-graph-query',
133
+ re: /\b(who\s+(calls|imports|uses|references)|call\s*sites?|import\s+(call\s*)?sites?|reverse\s+references|where\s+is\s+\S+\s+(used|imported|referenced|called)|all\s+(callers|usages|references)\s+of)\b/i,
134
+ },
135
+ {
136
+ cls: 'string-existence',
137
+ primitive: 'fts-or-capped-grep',
138
+ re: /\b(does\s+(the\s+)?string\s+.*\bexist|is\s+(the\s+)?string\s+.*\b(present|used)\b|prob\w+\s+(candidate\s+)?strings?|search\s+for\s+the\s+(exact\s+)?string|(grep|check)\s+(for\s+)?(the\s+)?(literal|string)\b|does\s+\S+\s+appear\s+anywhere)/i,
139
+ },
140
+ {
141
+ cls: 'report-run',
142
+ primitive: 'script-run-rtk',
143
+ re: /\b(run(ning)?\s+(the\s+)?\S*(report|check|lint\w*|coverage)\b|run(ning)?\s+(check|lint|report)_\w+|regenerate\s+the\s+\S+\s+report)/i,
144
+ },
145
+ ];
146
+
147
+ /**
148
+ * Route a task description to a lookup-class primitive or the regular
149
+ * escalation path. Deterministic regex layer, no LLM call (design lock:
150
+ * no LLM classifier fallback — cut C3). Non-matches escalate — never a
151
+ * silently degraded answer; an index-miss at execution time escalates the
152
+ * same way (runtime concern, documented in the classification context).
153
+ */
154
+ export function classifyLookup(taskText: string): LookupRoute {
155
+ for (const p of LOOKUP_PATTERNS) {
156
+ if (p.re.test(taskText)) {
157
+ return {
158
+ lookup_class: p.cls,
159
+ route: 'primitive',
160
+ primitive: p.primitive,
161
+ reason: `lookup-class ${p.cls} — deterministic primitive, no spawn`,
162
+ };
163
+ }
164
+ }
165
+ return {
166
+ lookup_class: null,
167
+ route: 'escalate',
168
+ primitive: null,
169
+ reason: 'not lookup-shaped — regular classification path (never down-guessed)',
170
+ };
171
+ }
172
+
97
173
  // ── Per-slice tier inference (v1.5 — road-to-cost-aware-model-routing) ──
98
174
 
99
175
  /**