@event4u/agent-config 9.8.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 (817) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +278 -298
  3. package/CONTRIBUTING.md +23 -7
  4. package/MIGRATION.md +20 -0
  5. package/README.md +55 -9
  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/fix/portability.md +2 -2
  12. package/dist/agent-src/commands/fix/pr-comments-loop.md +136 -0
  13. package/dist/agent-src/commands/fix/refs.md +2 -2
  14. package/dist/agent-src/commands/fix/route.md +4 -3
  15. package/dist/agent-src/commands/fix.md +9 -6
  16. package/dist/agent-src/commands/ghostwriter.md +1 -1
  17. package/dist/agent-src/commands/image.md +1 -1
  18. package/dist/agent-src/commands/optimize/augmentignore.md +1 -1
  19. package/dist/agent-src/commands/optimize/skills.md +2 -2
  20. package/dist/agent-src/commands/post-as.md +1 -1
  21. package/dist/agent-src/commands/research.md +1 -1
  22. package/dist/agent-src/commands/roadmap/ai-council.md +1 -1
  23. package/dist/agent-src/commands/security-audit-config.md +1 -1
  24. package/dist/agent-src/commands/team/delegate.md +4 -0
  25. package/dist/agent-src/commands/video.md +1 -1
  26. package/dist/agent-src/contexts/authority/kernel-rule-edits.md +1 -1
  27. package/dist/agent-src/contexts/contracts/emergency-triage-block.md +2 -2
  28. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +48 -2
  29. package/dist/agent-src/contexts/execution/orchestration-telemetry.md +10 -0
  30. package/dist/agent-src/contexts/execution/subagent-modes-detail.md +109 -8
  31. package/dist/agent-src/contexts/execution/subagent-response-contract.md +20 -0
  32. package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +53 -3
  33. package/dist/agent-src/rules/code-provenance.md +112 -0
  34. package/dist/agent-src/rules/external-code-graph-interop.md +4 -4
  35. package/dist/agent-src/rules/history-discipline.md +80 -0
  36. package/dist/agent-src/rules/no-roadmap-references.md +1 -1
  37. package/dist/agent-src/rules/php-coding.md +1 -0
  38. package/dist/agent-src/rules/reviewer-awareness.md +1 -0
  39. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +1 -0
  40. package/dist/agent-src/rules/roadmap-progress-sync.md +7 -0
  41. package/dist/agent-src/rules/scale-discipline.md +92 -0
  42. package/dist/agent-src/rules/security-sensitive-stop.md +10 -0
  43. package/dist/agent-src/rules/session-canary.md +77 -0
  44. package/dist/agent-src/rules/token-optimizer-maintenance.md +1 -1
  45. package/dist/agent-src/rules/tool-safety.md +3 -1
  46. package/dist/agent-src/rules/untrusted-input-defense.md +10 -0
  47. package/dist/agent-src/skills/agent-security-review/SKILL.md +1 -1
  48. package/dist/agent-src/skills/code-intelligence/SKILL.md +17 -14
  49. package/dist/agent-src/skills/condense-memory/SKILL.md +1 -1
  50. package/dist/agent-src/skills/corpus-grounding/SKILL.md +0 -3
  51. package/dist/agent-src/skills/description-assist/SKILL.md +1 -1
  52. package/dist/agent-src/skills/design-review/SKILL.md +5 -6
  53. package/dist/agent-src/skills/design-tokens/SKILL.md +0 -1
  54. package/dist/agent-src/skills/history-design/SKILL.md +101 -0
  55. package/dist/agent-src/skills/history-design/evals/triggers.json +17 -0
  56. package/dist/agent-src/skills/humanizer/SKILL.md +3 -3
  57. package/dist/agent-src/skills/image-editing/SKILL.md +1 -1
  58. package/dist/agent-src/skills/image-generation/SKILL.md +2 -1
  59. package/dist/agent-src/skills/image-provider-routing/SKILL.md +2 -2
  60. package/dist/agent-src/skills/launch-readiness/SKILL.md +1 -1
  61. package/dist/agent-src/skills/license-compliance-audit/SKILL.md +161 -0
  62. package/dist/agent-src/skills/license-compliance-audit/evals/triggers.json +52 -0
  63. package/dist/agent-src/skills/license-compliance-borrow-check/SKILL.md +145 -0
  64. package/dist/agent-src/skills/license-compliance-borrow-check/evals/triggers.json +52 -0
  65. package/dist/agent-src/skills/license-compliance-credits/SKILL.md +97 -0
  66. package/dist/agent-src/skills/license-compliance-credits/evals/triggers.json +52 -0
  67. package/dist/agent-src/skills/md-language-check/SKILL.md +1 -1
  68. package/dist/agent-src/skills/override-management/SKILL.md +1 -1
  69. package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +7 -7
  70. package/dist/agent-src/skills/project-analysis-core/SKILL.md +1 -1
  71. package/dist/agent-src/skills/prompt-engineering-image/SKILL.md +3 -2
  72. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +2 -2
  73. package/dist/agent-src/skills/recursive-verification/SKILL.md +6 -0
  74. package/dist/agent-src/skills/refine-ticket/SKILL.md +3 -3
  75. package/dist/agent-src/skills/roadmap-writing/SKILL.md +4 -0
  76. package/dist/agent-src/skills/rtk-output-filtering/SKILL.md +31 -12
  77. package/dist/agent-src/skills/rule-refactor/SKILL.md +3 -3
  78. package/dist/agent-src/skills/schema-review/SKILL.md +92 -0
  79. package/dist/agent-src/skills/schema-review/evals/triggers.json +17 -0
  80. package/dist/agent-src/skills/secrets-management/SKILL.md +3 -4
  81. package/dist/agent-src/skills/security-audit/SKILL.md +1 -1
  82. package/dist/agent-src/skills/security-maturity-assessment/SKILL.md +1 -1
  83. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +3 -3
  84. package/dist/agent-src/skills/skill-writing/SKILL.md +2 -2
  85. package/dist/agent-src/skills/source-discovery/SKILL.md +5 -5
  86. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +45 -85
  87. package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +5 -4
  88. package/dist/agent-src/skills/systematic-debugging/SKILL.md +2 -2
  89. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +2 -3
  90. package/dist/agent-src/skills/token-optimizer/SKILL.md +4 -4
  91. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +1 -1
  92. package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +2 -3
  93. package/dist/agent-src/templates/AGENTS.md +1 -1
  94. package/dist/agent-src/templates/agents/.gitattributes.fragment +25 -6
  95. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  96. package/dist/agent-src/templates/command.md +3 -3
  97. package/dist/agent-src/templates/persona.md +2 -2
  98. package/dist/agent-src/templates/rule.md +2 -2
  99. package/dist/agent-src/templates/scripts/telemetry/engagement.ts +77 -0
  100. package/dist/agent-src/templates/scripts/telemetry_record.ts +33 -1
  101. package/dist/cli/commands/doctorShell.js +20 -0
  102. package/dist/cli/commands/doctorShell.js.map +1 -1
  103. package/dist/cli/commands/rtkDetect.js +58 -0
  104. package/dist/cli/commands/rtkDetect.js.map +1 -0
  105. package/dist/cli/firstRunNotice.js +70 -0
  106. package/dist/cli/firstRunNotice.js.map +1 -0
  107. package/dist/cli/main.js +35 -3
  108. package/dist/cli/main.js.map +1 -1
  109. package/dist/cli/registry.js +7 -1
  110. package/dist/cli/registry.js.map +1 -1
  111. package/dist/discovery/deprecation-report.md +1 -1
  112. package/dist/discovery/discovery-manifest.json +362 -78
  113. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  114. package/dist/discovery/discovery-manifest.summary.md +6 -4
  115. package/dist/discovery/orphan-report.md +1 -1
  116. package/dist/discovery/packs.json +90 -8
  117. package/dist/discovery/trust-report.md +11 -11
  118. package/dist/discovery/workspaces.json +31 -7
  119. package/dist/hooks/dispatch.js +19475 -0
  120. package/dist/install/agentSwitchDetection.js +75 -0
  121. package/dist/install/agentSwitchDetection.js.map +1 -0
  122. package/dist/install/agentSwitchProfile.js +117 -0
  123. package/dist/install/agentSwitchProfile.js.map +1 -0
  124. package/dist/install/atomic.js +1 -1
  125. package/dist/install/detect.js +1 -1
  126. package/dist/install/install.mjs +775 -486
  127. package/dist/install/rtkDetection.js +213 -0
  128. package/dist/install/rtkDetection.js.map +1 -0
  129. package/dist/install/rule_scope.js +2 -1
  130. package/dist/install/rule_scope.js.map +1 -1
  131. package/dist/install/types.js +2 -2
  132. package/dist/install/wizard-plan.js +1 -1
  133. package/dist/install/wizardDismissals.js +58 -0
  134. package/dist/install/wizardDismissals.js.map +1 -0
  135. package/dist/mcp/awesome-mcp-servers.row.md +1 -1
  136. package/dist/mcp/mcp-cloudflare-catalogue.json +1 -1
  137. package/dist/mcp/registry-manifest.json +15 -4
  138. package/dist/mcp/server.json +20 -0
  139. package/dist/mcp/server.mjs +44292 -0
  140. package/dist/router.json +1 -1
  141. package/dist/scripts/condense.js +14 -7
  142. package/dist/scripts/condense.js.map +1 -1
  143. package/dist/server/app.js +4 -2
  144. package/dist/server/app.js.map +1 -1
  145. package/dist/server/io/sharedWriteCheck.js +101 -0
  146. package/dist/server/io/sharedWriteCheck.js.map +1 -0
  147. package/dist/server/routes/ping.js +14 -0
  148. package/dist/server/routes/ping.js.map +1 -1
  149. package/dist/server/routes/settings.js +21 -4
  150. package/dist/server/routes/settings.js.map +1 -1
  151. package/dist/server/routes/userMd.js +21 -4
  152. package/dist/server/routes/userMd.js.map +1 -1
  153. package/dist/server/routes/wizard.js +68 -25
  154. package/dist/server/routes/wizard.js.map +1 -1
  155. package/dist/server/schemas/settings.js +4 -2
  156. package/dist/server/schemas/settings.js.map +1 -1
  157. package/dist/ui/assets/index-BpSQt5vm.js +40 -0
  158. package/dist/ui/assets/index-BpSQt5vm.js.map +1 -0
  159. package/dist/ui/assets/index-jSfMW8_t.css +1 -0
  160. package/dist/ui/index.html +2 -2
  161. package/docs/MIGRATION.md +16 -0
  162. package/docs/guidelines/component-oriented-and-oop-development.md +4 -2
  163. package/package.json +21 -11
  164. package/src/agent-src/templates/AGENTS.md +1 -1
  165. package/src/agent-src/templates/scripts/telemetry/engagement.ts +77 -0
  166. package/src/agent-src/templates/scripts/telemetry_record.ts +33 -1
  167. package/src/config/agent-settings.template.yml +52 -14
  168. package/src/config/discovery/packs.yml +22 -0
  169. package/src/config/discovery/workspaces.yml +1 -1
  170. package/src/config/evaluator-budgets.json +47 -0
  171. package/src/config/hook-latency-budget.json +20 -0
  172. package/src/install/agentSwitchDetection.ts +90 -0
  173. package/src/install/agentSwitchProfile.ts +131 -0
  174. package/src/install/atomic.ts +1 -1
  175. package/src/install/detect.ts +1 -1
  176. package/src/install/rtkDetection.ts +274 -0
  177. package/src/install/rule_scope.ts +9 -2
  178. package/src/install/types.ts +2 -2
  179. package/src/install/wizard-plan.ts +1 -1
  180. package/src/install/wizardDismissals.ts +60 -0
  181. package/src/scripts/_cli/cmd_doctor.ts +62 -1
  182. package/src/scripts/_cli/cmd_memory_get.ts +197 -0
  183. package/src/scripts/_cli/cmd_refresh.ts +30 -0
  184. package/src/scripts/_dispatch.bash +81 -0
  185. package/src/scripts/_lib/auto_dispatch.corpus.test.ts +64 -1
  186. package/src/scripts/_lib/auto_dispatch.ts +76 -0
  187. package/src/scripts/_lib/detect_target_license.ts +714 -0
  188. package/src/scripts/_lib/fixtures/secret-detector/negatives.txt +5 -0
  189. package/src/scripts/_lib/fixtures/secret-detector/positives.txt +4 -0
  190. package/src/scripts/_lib/install_drift.ts +194 -0
  191. package/src/scripts/_lib/memory_fts_index.ts +390 -0
  192. package/src/scripts/_lib/orchestration_record.ts +91 -2
  193. package/src/scripts/_lib/persistence/adapter_raw_sql.ts +443 -0
  194. package/src/scripts/_lib/persistence/detect_audit_coverage.ts +423 -0
  195. package/src/scripts/_lib/persistence/detect_bounded_reads.ts +154 -0
  196. package/src/scripts/_lib/persistence/detect_index_parity.ts +576 -0
  197. package/src/scripts/_lib/persistence/detect_n1_eloquent.ts +226 -0
  198. package/src/scripts/_lib/persistence/detect_offload.ts +441 -0
  199. package/src/scripts/_lib/persistence/detect_prisma_growth.ts +74 -0
  200. package/src/scripts/_lib/persistence/offload_catalog.ts +73 -0
  201. package/src/scripts/_lib/persistence/types.ts +109 -0
  202. package/src/scripts/_lib/rtk_allowlist.ts +44 -0
  203. package/src/scripts/_lib/secret_detector.test.ts +5 -0
  204. package/src/scripts/_lib/secret_detector.ts +9 -0
  205. package/src/scripts/_lib/secret_detector_adversarial.test.ts +116 -0
  206. package/src/scripts/_lib/spawn_env.ts +7 -0
  207. package/src/scripts/_lib/sqlite_guard.ts +191 -0
  208. package/src/scripts/_lib/subagent_spawn.ts +53 -0
  209. package/src/scripts/_lib/worker_budget.ts +107 -0
  210. package/src/scripts/ai_council/blind_review.ts +0 -0
  211. package/src/scripts/ai_council/config.ts +12 -6
  212. package/src/scripts/ai_council/orchestrator.ts +73 -3
  213. package/src/scripts/ai_team/review_gate.ts +8 -10
  214. package/src/scripts/ai_team/team_dispatch.ts +48 -0
  215. package/src/scripts/audit_initial_context.ts +1 -1
  216. package/src/scripts/bench_cross_source_eval.ts +400 -0
  217. package/src/scripts/bench_honesty_score.ts +1093 -0
  218. package/src/scripts/bench_hook_latency.ts +218 -0
  219. package/src/scripts/build_mcp_catalog.ts +275 -0
  220. package/src/scripts/build_mcp_registry_manifest.ts +46 -0
  221. package/src/scripts/build_proof.ts +45 -0
  222. package/src/scripts/chat_history.ts +8 -5
  223. package/src/scripts/check_backstop_debt.ts +23 -13
  224. package/src/scripts/check_bundle_path_leakage.ts +343 -0
  225. package/src/scripts/check_evaluator_budgets.ts +99 -0
  226. package/src/scripts/check_knowledge_sharing.ts +12 -1
  227. package/src/scripts/check_no_external_sources.ts +2 -2
  228. package/src/scripts/check_source_pointer_freshness.ts +28 -3
  229. package/src/scripts/code_graph/build.ts +0 -0
  230. package/src/scripts/code_graph/cli.ts +181 -9
  231. package/src/scripts/code_graph/detect.ts +52 -0
  232. package/src/scripts/code_graph/intent.ts +45 -0
  233. package/src/scripts/code_graph/query.ts +143 -29
  234. package/src/scripts/code_graph/sqlite_store.ts +174 -0
  235. package/src/scripts/condense.ts +14 -6
  236. package/src/scripts/context_hygiene_hook.ts +8 -5
  237. package/src/scripts/council_cli.ts +126 -12
  238. package/src/scripts/detect_target_license.ts +203 -0
  239. package/src/scripts/evaluator_umbrella.sh +145 -0
  240. package/src/scripts/external_sources_denylist.json +5 -3
  241. package/src/scripts/first_run_gate_hook.ts +9 -5
  242. package/src/scripts/hermetic-install.sh +3 -3
  243. package/src/scripts/hook_manifest.yaml +55 -16
  244. package/src/scripts/hooks/block_kernel_rule_writes.ts +212 -0
  245. package/src/scripts/hooks/block_no_verify.ts +9 -9
  246. package/src/scripts/hooks/code_graph_nudge_hook.ts +11 -4
  247. package/src/scripts/hooks/concern_registry.ts +75 -0
  248. package/src/scripts/hooks/design_slop_hook.ts +8 -5
  249. package/src/scripts/hooks/dispatch_entry.ts +37 -0
  250. package/src/scripts/hooks/dispatch_hook.ts +176 -3
  251. package/src/scripts/hooks/hook_stdin.ts +42 -0
  252. package/src/scripts/hooks/rtk_wrap_hook.ts +26 -12
  253. package/src/scripts/hot_context_hook.ts +7 -6
  254. package/src/scripts/injection_scan_hook.ts +9 -1
  255. package/src/scripts/install +6 -6
  256. package/src/scripts/install-hooks.sh +4 -4
  257. package/src/scripts/install.sh +5 -4
  258. package/src/scripts/install.ts +264 -23
  259. package/src/scripts/learning_sidecar.ts +0 -0
  260. package/src/scripts/lint_budget_ownership.ts +89 -0
  261. package/src/scripts/lint_command_routing.ts +35 -5
  262. package/src/scripts/lint_command_verbs.ts +42 -9
  263. package/src/scripts/lint_consumer_internal_refs.ts +211 -0
  264. package/src/scripts/lint_discovery_vocabulary.ts +2 -0
  265. package/src/scripts/lint_documented_commands.ts +670 -0
  266. package/src/scripts/lint_framework_leakage.ts +17 -3
  267. package/src/scripts/lint_framework_leakage_allowlist.json +32 -0
  268. package/src/scripts/lint_governed_writes.ts +335 -0
  269. package/src/scripts/lint_hidden_unicode.ts +6 -0
  270. package/src/scripts/lint_mcp_registry_manifest.ts +26 -1
  271. package/src/scripts/lint_memory_tripwire.ts +186 -0
  272. package/src/scripts/lint_override_kernel_guard.ts +74 -26
  273. package/src/scripts/lint_persistence.ts +171 -0
  274. package/src/scripts/lint_pre_migration_refs.ts +106 -0
  275. package/src/scripts/lint_provenance.ts +547 -0
  276. package/src/scripts/lint_provenance_vocabulary.ts +437 -0
  277. package/src/scripts/lint_spawn_payload.ts +283 -0
  278. package/src/scripts/lint_store_boundary.ts +152 -0
  279. package/src/scripts/lint_versioned_cache.ts +7 -1
  280. package/src/scripts/mcp_server/__main__.ts +7 -2
  281. package/src/scripts/mcp_server/catalog.ts +23 -1
  282. package/src/scripts/mcp_server/consumer_tool_catalog.json +563 -193
  283. package/src/scripts/mcp_server/prompts.ts +6 -0
  284. package/src/scripts/mcp_server/tool_catalog_source.ts +332 -0
  285. package/src/scripts/mcp_server/tools.ts +56 -5
  286. package/src/scripts/mcp_telemetry_query.ts +2 -33
  287. package/src/scripts/mcp_telemetry_store.ts +64 -34
  288. package/src/scripts/memory_learn_hook.ts +126 -0
  289. package/src/scripts/memory_lookup.ts +0 -0
  290. package/src/scripts/memory_replay_24.ts +312 -0
  291. package/src/scripts/memory_report.ts +16 -3
  292. package/src/scripts/memory_signal.ts +48 -0
  293. package/src/scripts/memory_status.ts +6 -0
  294. package/src/scripts/minimal_safe_diff_hook.ts +8 -5
  295. package/src/scripts/onboarding_gate_hook.ts +8 -5
  296. package/src/scripts/orchestration_record.ts +16 -0
  297. package/src/scripts/pr_url_reminder_hook.ts +8 -1
  298. package/src/scripts/prepack-check.mjs +17 -0
  299. package/src/scripts/prepack_lifecycle_check.d.mts +8 -0
  300. package/src/scripts/prepack_lifecycle_check.mjs +82 -0
  301. package/src/scripts/profile_staleness_hook.ts +8 -7
  302. package/src/scripts/report_install_drift.ts +109 -0
  303. package/src/scripts/roadmap_progress_hook.ts +8 -5
  304. package/src/scripts/schemas/license-policy.schema.json +89 -0
  305. package/src/scripts/schemas/provenance-borrow.schema.json +46 -0
  306. package/src/scripts/schemas/rule.schema.json +10 -0
  307. package/src/scripts/self_review_gate.test.ts +173 -1
  308. package/src/scripts/self_review_gate.ts +155 -15
  309. package/src/scripts/session_canary_hook.ts +182 -0
  310. package/src/scripts/smoke_quickstart.ts +2 -2
  311. package/src/scripts/surface_probe_hook.ts +8 -7
  312. package/src/scripts/sync_gitattributes.ts +310 -0
  313. package/src/scripts/team_review_gate_hook.ts +13 -16
  314. package/src/scripts/verify_before_complete_hook.ts +8 -5
  315. package/src/scripts/wrapper_freshness_hook.ts +8 -7
  316. package/src/server/schemas/settings.ts +8 -2
  317. package/dist/ui/assets/index-BPFMZWUs.css +0 -1
  318. package/dist/ui/assets/index-CrmZ34Rg.js +0 -40
  319. package/dist/ui/assets/index-CrmZ34Rg.js.map +0 -1
  320. package/docs/CLAIMS.md +0 -286
  321. package/docs/DISTRIBUTION_CHECKLIST.md +0 -170
  322. package/docs/RELEASE_STORY_TEMPLATE.md +0 -37
  323. package/docs/SKILL_CENSUS.md +0 -352
  324. package/docs/adrs/cost/0001-hard-stop-hook.md +0 -114
  325. package/docs/adrs/cost/README.md +0 -9
  326. package/docs/adrs/memory/0001-consumer-side-snapshot.md +0 -119
  327. package/docs/adrs/memory/README.md +0 -10
  328. package/docs/adrs/router/0001-three-tier-routing.md +0 -119
  329. package/docs/adrs/router/README.md +0 -9
  330. package/docs/adrs/schema/0001-json-schema-frontmatter.md +0 -102
  331. package/docs/adrs/schema/README.md +0 -9
  332. package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +0 -99
  333. package/docs/adrs/smoke/README.md +0 -9
  334. package/docs/adrs/telegraph/0001-default-off-until-bench.md +0 -93
  335. package/docs/adrs/telegraph/README.md +0 -9
  336. package/docs/announcements/2026-05-non-dev-launch.md +0 -79
  337. package/docs/announcements/2026-07-honest-cost-sweep-launch.md +0 -84
  338. package/docs/anti-reskin-gate.md +0 -60
  339. package/docs/architecture/augment-projection.md +0 -70
  340. package/docs/architecture/claude-bundle.md +0 -77
  341. package/docs/architecture/current-onboard-baseline.md +0 -126
  342. package/docs/architecture/current-safety-behavior.md +0 -137
  343. package/docs/architecture/multi-tool-projection.md +0 -125
  344. package/docs/architecture/setup-vs-settings-shared-surface.md +0 -114
  345. package/docs/architecture/source-projection.md +0 -85
  346. package/docs/architecture.md +0 -390
  347. package/docs/archive/CHANGELOG-6.0.0-overview.md +0 -953
  348. package/docs/archive/CHANGELOG-7.0.0.md +0 -419
  349. package/docs/archive/CHANGELOG-pre-2.11.0.md +0 -141
  350. package/docs/archive/CHANGELOG-pre-2.15.0.md +0 -244
  351. package/docs/archive/CHANGELOG-pre-2.16.0.md +0 -48
  352. package/docs/archive/CHANGELOG-pre-2.17.0.md +0 -63
  353. package/docs/archive/CHANGELOG-pre-2.2.0.md +0 -2138
  354. package/docs/archive/CHANGELOG-pre-2.20.0.md +0 -159
  355. package/docs/archive/CHANGELOG-pre-2.25.0.md +0 -191
  356. package/docs/archive/CHANGELOG-pre-2.7.0.md +0 -185
  357. package/docs/archive/CHANGELOG-pre-3.0.0.md +0 -130
  358. package/docs/archive/CHANGELOG-pre-3.1.0.md +0 -167
  359. package/docs/archive/CHANGELOG-pre-3.2.0.md +0 -268
  360. package/docs/archive/CHANGELOG-pre-4.0.0.md +0 -80
  361. package/docs/archive/CHANGELOG-pre-4.5.0.md +0 -289
  362. package/docs/archive/CHANGELOG-pre-5.4.0.md +0 -260
  363. package/docs/archive/CHANGELOG-pre-5.9.0.md +0 -270
  364. package/docs/archive/CHANGELOG-pre-6.0.0.md +0 -473
  365. package/docs/archive/CHANGELOG-pre-7.0.0.md +0 -126
  366. package/docs/archive/CHANGELOG-pre-8.0.0.md +0 -301
  367. package/docs/archive/CHANGELOG-pre-8.1.0.md +0 -316
  368. package/docs/archive/CHANGELOG-pre-8.12.0.md +0 -304
  369. package/docs/archive/CHANGELOG-pre-8.9.0.md +0 -306
  370. package/docs/archive/CHANGELOG-pre-9.2.0.md +0 -276
  371. package/docs/artefact-census.md +0 -71
  372. package/docs/benchmark.md +0 -785
  373. package/docs/benchmark.pinned.yml +0 -31
  374. package/docs/benchmarks.md +0 -85
  375. package/docs/capability-matrix.md +0 -33
  376. package/docs/case-studies/_template.md +0 -60
  377. package/docs/case-studies/frontend-design-positioning.md +0 -86
  378. package/docs/catalog.md +0 -726
  379. package/docs/command-flows.md +0 -272
  380. package/docs/command-naming-audit.md +0 -60
  381. package/docs/comparison.yaml +0 -87
  382. package/docs/contracts/CHANGELOG-conventions.md +0 -149
  383. package/docs/contracts/STABILITY.md +0 -188
  384. package/docs/contracts/adoption-signal-floor.md +0 -127
  385. package/docs/contracts/adr-architectural-consensus-mechanism.md +0 -68
  386. package/docs/contracts/adr-chat-history-split.md +0 -140
  387. package/docs/contracts/adr-command-suggestion.md +0 -144
  388. package/docs/contracts/adr-forecast-construction-shape.md +0 -90
  389. package/docs/contracts/adr-gtm-context-spine.md +0 -116
  390. package/docs/contracts/adr-implement-ticket-runtime.md +0 -121
  391. package/docs/contracts/adr-install-user-type-axis.md +0 -107
  392. package/docs/contracts/adr-layout.md +0 -107
  393. package/docs/contracts/adr-level-6-productization.md +0 -145
  394. package/docs/contracts/adr-mcp-runtime.md +0 -128
  395. package/docs/contracts/adr-product-ui-track.md +0 -381
  396. package/docs/contracts/adr-prompt-driven-execution.md +0 -186
  397. package/docs/contracts/adr-settings-sync-engine.md +0 -128
  398. package/docs/contracts/adr-user-types-axis.md +0 -127
  399. package/docs/contracts/adr-wing4-context-spine.md +0 -126
  400. package/docs/contracts/agent-user-schema.md +0 -170
  401. package/docs/contracts/agents-layout.md +0 -148
  402. package/docs/contracts/agents-md-tech-stack.md +0 -75
  403. package/docs/contracts/ai-council-config.md +0 -829
  404. package/docs/contracts/ai-team-config.md +0 -224
  405. package/docs/contracts/analysis-memory-loop.md +0 -149
  406. package/docs/contracts/at-rest-encryption.md +0 -191
  407. package/docs/contracts/audit-log-v1.md +0 -150
  408. package/docs/contracts/auto-orchestration-v1.md +0 -70
  409. package/docs/contracts/benchmark-ab-contract.md +0 -106
  410. package/docs/contracts/benchmark-corpus-spec.md +0 -125
  411. package/docs/contracts/benchmark-report-schema.md +0 -113
  412. package/docs/contracts/branch-protection-policy.md +0 -139
  413. package/docs/contracts/brand-token-consumption.md +0 -74
  414. package/docs/contracts/capability-boundary.md +0 -69
  415. package/docs/contracts/capability-packs.md +0 -217
  416. package/docs/contracts/ci-cost-budget.md +0 -111
  417. package/docs/contracts/ci-green-floor.md +0 -141
  418. package/docs/contracts/command-category-governance.md +0 -84
  419. package/docs/contracts/command-clusters.md +0 -399
  420. package/docs/contracts/command-surface-tiers.md +0 -176
  421. package/docs/contracts/command-taxonomy.md +0 -137
  422. package/docs/contracts/condensation-default-kill-criterion.md +0 -116
  423. package/docs/contracts/config-presets.md +0 -144
  424. package/docs/contracts/conformance.md +0 -84
  425. package/docs/contracts/consumer-bridge.md +0 -73
  426. package/docs/contracts/context-paths.md +0 -101
  427. package/docs/contracts/context-spine.md +0 -179
  428. package/docs/contracts/cost-dashboard.md +0 -143
  429. package/docs/contracts/cost-enforcement.md +0 -134
  430. package/docs/contracts/cost-profile-defaults.md +0 -110
  431. package/docs/contracts/cost-summary-schema.md +0 -107
  432. package/docs/contracts/creative-pack-boundary.md +0 -63
  433. package/docs/contracts/cross-repo-retrieval.md +0 -64
  434. package/docs/contracts/cross-wing-handoff.md +0 -134
  435. package/docs/contracts/daily-workspace.md +0 -147
  436. package/docs/contracts/decision-engine-gates.md +0 -120
  437. package/docs/contracts/decision-trace-v1.md +0 -177
  438. package/docs/contracts/design-artifact-lifecycle.md +0 -93
  439. package/docs/contracts/design-artifact-verification.md +0 -153
  440. package/docs/contracts/discovery-manifest.md +0 -209
  441. package/docs/contracts/discovery-manifest.schema.json +0 -254
  442. package/docs/contracts/evidence-based-pruning.md +0 -102
  443. package/docs/contracts/explain-modes.md +0 -187
  444. package/docs/contracts/explain-trace.schema.json +0 -144
  445. package/docs/contracts/file-ownership-matrix.json +0 -13941
  446. package/docs/contracts/file-ownership-matrix.md +0 -135
  447. package/docs/contracts/frontmatter-contract.md +0 -140
  448. package/docs/contracts/ghostwriter-schema.md +0 -337
  449. package/docs/contracts/governance-enforcement-projection.md +0 -159
  450. package/docs/contracts/gui-wizard.md +0 -350
  451. package/docs/contracts/harness-expectations.md +0 -128
  452. package/docs/contracts/hook-architecture-v1.md +0 -325
  453. package/docs/contracts/host-agent-protocol.md +0 -110
  454. package/docs/contracts/implement-ticket-flow.md +0 -625
  455. package/docs/contracts/init-telemetry.md +0 -132
  456. package/docs/contracts/injected-block-authenticity-model.md +0 -66
  457. package/docs/contracts/install-layout.md +0 -249
  458. package/docs/contracts/install-scopes.md +0 -82
  459. package/docs/contracts/installed-tools-lockfile.md +0 -144
  460. package/docs/contracts/installer-agent-mode.md +0 -137
  461. package/docs/contracts/iron-law-overrides.txt +0 -26
  462. package/docs/contracts/kernel-membership.md +0 -339
  463. package/docs/contracts/linear-ai-rules-inclusion.md +0 -143
  464. package/docs/contracts/linear-ai-three-layers.md +0 -130
  465. package/docs/contracts/linter-structural-model.md +0 -181
  466. package/docs/contracts/load-context-budget-model.md +0 -259
  467. package/docs/contracts/load-context-schema.md +0 -220
  468. package/docs/contracts/local-analytics.md +0 -160
  469. package/docs/contracts/local-knowledge-ingestion.md +0 -96
  470. package/docs/contracts/local-server-api.md +0 -134
  471. package/docs/contracts/local-server-ports.md +0 -53
  472. package/docs/contracts/low-impact-corpus-format.md +0 -95
  473. package/docs/contracts/mcp-beta-criteria.md +0 -130
  474. package/docs/contracts/mcp-cloud-scope.md +0 -355
  475. package/docs/contracts/mcp-discovery-phase-notice.md +0 -60
  476. package/docs/contracts/mcp-phase-1-scope.md +0 -272
  477. package/docs/contracts/mcp-registry-manifest.schema.json +0 -129
  478. package/docs/contracts/mcp-tool-inventory.md +0 -64
  479. package/docs/contracts/mcp-tool-stub-envelope.md +0 -78
  480. package/docs/contracts/measurement-baseline.md +0 -103
  481. package/docs/contracts/memory-visibility-v1.md +0 -160
  482. package/docs/contracts/mental-models.md +0 -336
  483. package/docs/contracts/migrate-command.md +0 -233
  484. package/docs/contracts/multi-tool-projection-fidelity.md +0 -134
  485. package/docs/contracts/namespace.md +0 -125
  486. package/docs/contracts/no-runtime-boundary.md +0 -61
  487. package/docs/contracts/one-off-script-lifecycle.md +0 -110
  488. package/docs/contracts/orchestration-dsl-v1.md +0 -153
  489. package/docs/contracts/package-self-orientation.md +0 -163
  490. package/docs/contracts/pilot/agent-authority.md +0 -24
  491. package/docs/contracts/pilot/direct-answers.md +0 -70
  492. package/docs/contracts/pilot/language-and-tone.md +0 -63
  493. package/docs/contracts/plain-language-surface.md +0 -117
  494. package/docs/contracts/prelaunch-diagnostics.md +0 -151
  495. package/docs/contracts/profile-system.md +0 -167
  496. package/docs/contracts/reasoning-discipline-protocol.md +0 -83
  497. package/docs/contracts/release-pr-gating.md +0 -151
  498. package/docs/contracts/release-sizing.md +0 -107
  499. package/docs/contracts/release-trunk-sync.md +0 -105
  500. package/docs/contracts/review-lens-schema.md +0 -64
  501. package/docs/contracts/roadmap-complexity-standard.md +0 -138
  502. package/docs/contracts/role-experience.md +0 -125
  503. package/docs/contracts/router-blending.md +0 -71
  504. package/docs/contracts/rule-classification.md +0 -171
  505. package/docs/contracts/rule-interactions.md +0 -132
  506. package/docs/contracts/rule-interactions.yml +0 -260
  507. package/docs/contracts/rule-priority-hierarchy.md +0 -88
  508. package/docs/contracts/rule-router.md +0 -287
  509. package/docs/contracts/safety-model.md +0 -129
  510. package/docs/contracts/session-profile-overlay.md +0 -157
  511. package/docs/contracts/settings-api.md +0 -264
  512. package/docs/contracts/settings-gui-agent-mode.schema.json +0 -128
  513. package/docs/contracts/settings-sync-yaml-subset.md +0 -139
  514. package/docs/contracts/skill-bundled-assets.md +0 -62
  515. package/docs/contracts/skill-discovery.md +0 -80
  516. package/docs/contracts/skill-distribution-channels.md +0 -66
  517. package/docs/contracts/skill-domains.md +0 -144
  518. package/docs/contracts/skill-dry-run.md +0 -47
  519. package/docs/contracts/skill-family-map.yml +0 -915
  520. package/docs/contracts/smoke-contracts.md +0 -144
  521. package/docs/contracts/subagent-boundary.md +0 -74
  522. package/docs/contracts/surface-agent-contracts.md +0 -153
  523. package/docs/contracts/surface-matrix.md +0 -108
  524. package/docs/contracts/surface-tiers.md +0 -81
  525. package/docs/contracts/telegraph-telemetry.md +0 -83
  526. package/docs/contracts/ticket-bundle-format.md +0 -233
  527. package/docs/contracts/tier-3-contrib-plugin.md +0 -137
  528. package/docs/contracts/trust-and-safety.md +0 -144
  529. package/docs/contracts/ui-stack-extension.md +0 -237
  530. package/docs/contracts/ui-track-flow.md +0 -329
  531. package/docs/contracts/universal-skills.md +0 -91
  532. package/docs/contracts/user-type-schema.md +0 -146
  533. package/docs/contracts/value-dashboard-spec.md +0 -378
  534. package/docs/contracts/value-report-schema.md +0 -168
  535. package/docs/contracts/workflow-packs.md +0 -121
  536. package/docs/contracts/workspace-boundary.md +0 -84
  537. package/docs/contracts/workspace-documents.md +0 -144
  538. package/docs/contracts/write-engine.md +0 -182
  539. package/docs/cookbook.md +0 -152
  540. package/docs/customization.md +0 -696
  541. package/docs/decisions/ADR-001-kernel-swap-deferred.md +0 -109
  542. package/docs/decisions/ADR-002-kernel-bucket-overrides.md +0 -135
  543. package/docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md +0 -137
  544. package/docs/decisions/ADR-004-rule-governance-pruning.md +0 -240
  545. package/docs/decisions/ADR-005-subagent-worktrees.md +0 -120
  546. package/docs/decisions/ADR-006-skill-tools-python-pilot.md +0 -114
  547. package/docs/decisions/ADR-007-agent-discovery-scopes.md +0 -371
  548. package/docs/decisions/ADR-008-installed-tools-manifest.md +0 -160
  549. package/docs/decisions/ADR-009-event4u-namespace.md +0 -188
  550. package/docs/decisions/ADR-010-profile-pack-preset-boundary.md +0 -168
  551. package/docs/decisions/ADR-011-domain-pack-readiness.md +0 -213
  552. package/docs/decisions/ADR-012-typescript-cli-shell.md +0 -162
  553. package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +0 -342
  554. package/docs/decisions/ADR-014-gui-framework-choice.md +0 -136
  555. package/docs/decisions/ADR-015-discovery-manifest-contract.md +0 -146
  556. package/docs/decisions/ADR-016-installer-architecture.md +0 -191
  557. package/docs/decisions/ADR-017-monorepo-physical-layout.md +0 -261
  558. package/docs/decisions/ADR-018-trust-and-safety-layer.md +0 -159
  559. package/docs/decisions/ADR-019-router-json-dist-location.md +0 -124
  560. package/docs/decisions/ADR-020-global-only-consumer-scope.md +0 -213
  561. package/docs/decisions/ADR-021-deployment-shape.md +0 -153
  562. package/docs/decisions/ADR-022-daily-workspace-decomposition.md +0 -140
  563. package/docs/decisions/ADR-023-host-agent-protocol.md +0 -129
  564. package/docs/decisions/ADR-024-workspace-v0-feature-floor.md +0 -126
  565. package/docs/decisions/ADR-025-workspace-chrome.md +0 -119
  566. package/docs/decisions/ADR-026-explain-mode-translation.md +0 -117
  567. package/docs/decisions/ADR-027-changelog-machine-vs-manual.md +0 -129
  568. package/docs/decisions/ADR-028-root-layout.md +0 -147
  569. package/docs/decisions/ADR-029-multi-workspace-deferred.md +0 -122
  570. package/docs/decisions/ADR-030-claude-code-command-projection.md +0 -147
  571. package/docs/decisions/ADR-031-validation-severity-tiers-and-projection-roundtrip.md +0 -97
  572. package/docs/decisions/ADR-032-linked-projects-scope.md +0 -122
  573. package/docs/decisions/ADR-033-distribution-identity-npm-primary.md +0 -81
  574. package/docs/decisions/ADR-034-per-skill-model-recommendation-transport.md +0 -63
  575. package/docs/decisions/ADR-035-model-capability-tiers.md +0 -104
  576. package/docs/decisions/ADR-036-global-install-browser-wizard-handoff.md +0 -106
  577. package/docs/decisions/ADR-037-cost-profile-untangle.md +0 -117
  578. package/docs/decisions/ADR-038-canonical-settings-path.md +0 -96
  579. package/docs/decisions/ADR-039-claude-skills-untracked.md +0 -139
  580. package/docs/decisions/ADR-040-execution-model-projection-time-filtering.md +0 -244
  581. package/docs/decisions/ADR-041-controlled-command-verbs.md +0 -133
  582. package/docs/decisions/ADR-042-runtime-resolver-decision-gate.md +0 -113
  583. package/docs/decisions/ADR-043-monorepo-collapse-to-src-domains.md +0 -128
  584. package/docs/decisions/ADR-044-command-naming-scheme-hyphenated.md +0 -250
  585. package/docs/decisions/ADR-045-src-source-layout-and-profiles-as-views.md +0 -111
  586. package/docs/decisions/ADR-046-thin-command-principle.md +0 -93
  587. package/docs/decisions/ADR-047-framework-neutral-stack-adaptive-commands.md +0 -94
  588. package/docs/decisions/ADR-048-command-justification-rule.md +0 -106
  589. package/docs/decisions/ADR-049-configuration-trust-boundary.md +0 -132
  590. package/docs/decisions/ADR-050-workspace-vs-package-root-boundary.md +0 -121
  591. package/docs/decisions/ADR-051-uncondensed-source-container-relocation.md +0 -114
  592. package/docs/decisions/ADR-052-packages-removal-and-pack-home-migration.md +0 -86
  593. package/docs/decisions/ADR-053-agents-namespace-dual-role-resolution.md +0 -132
  594. package/docs/decisions/ADR-054-rule-adherence-decay-triggered-restate.md +0 -143
  595. package/docs/decisions/ADR-055-flow-layer-data-model.md +0 -235
  596. package/docs/decisions/ADR-056-unvalidated-video-adapters-disposition.md +0 -124
  597. package/docs/decisions/ADR-057-consolidation-evidence-gate-outcomes.md +0 -135
  598. package/docs/decisions/ADR-058-condensed-output-relocation-to-dist.md +0 -94
  599. package/docs/decisions/ADR-059-render-resume-filesystem-as-state.md +0 -161
  600. package/docs/decisions/ADR-060-comfyui-sandbox-model.md +0 -154
  601. package/docs/decisions/ADR-061-corpus-grounding-layer.md +0 -230
  602. package/docs/decisions/ADR-062-encrypt-at-rest-store-architecture.md +0 -121
  603. package/docs/decisions/ADR-063-append-jsonl-encryption-deferred.md +0 -83
  604. package/docs/decisions/ADR-064-append-jsonl-per-record-encryption.md +0 -113
  605. package/docs/decisions/ADR-065-tier3-inbox-handoff-v0.md +0 -86
  606. package/docs/decisions/ADR-066-skill-body-prerendering.md +0 -93
  607. package/docs/decisions/ADR-067-glama-registry-listing.md +0 -259
  608. package/docs/decisions/ADR-068-host-tier-detection.md +0 -90
  609. package/docs/decisions/ADR-069-prompt-renderer.md +0 -97
  610. package/docs/decisions/ADR-070-tier1-drive-loop.md +0 -94
  611. package/docs/decisions/ADR-071-launch-drive-integration.md +0 -95
  612. package/docs/decisions/ADR-072-codex-gemini-drive-configs.md +0 -90
  613. package/docs/decisions/ADR-073-drive-health-kill-switch.md +0 -81
  614. package/docs/decisions/ADR-074-drive-kill-switch-auto-recovery.md +0 -84
  615. package/docs/decisions/ADR-075-workspace-gui-drive.md +0 -83
  616. package/docs/decisions/ADR-076-workspace-multi-turn.md +0 -92
  617. package/docs/decisions/ADR-077-workspace-followup-gui.md +0 -70
  618. package/docs/decisions/ADR-078-drive-health-panel.md +0 -70
  619. package/docs/decisions/ADR-079-workspace-host-picker.md +0 -81
  620. package/docs/decisions/ADR-080-host-session-expired-410.md +0 -92
  621. package/docs/decisions/ADR-081-drive-health-reset-and-410-affordance.md +0 -71
  622. package/docs/decisions/ADR-082-410-one-click-relaunch.md +0 -58
  623. package/docs/decisions/ADR-083-session-thread-and-arbitrary-continuation.md +0 -85
  624. package/docs/decisions/ADR-084-drive-health-refresh-on-drive.md +0 -52
  625. package/docs/decisions/ADR-085-mcp-stdio-end-user-distribution-shape.md +0 -158
  626. package/docs/decisions/ADR-086-read-only-cross-agent-mcp-discovery-helper.md +0 -171
  627. package/docs/decisions/ADR-087-installer-e2e-test-strategy.md +0 -111
  628. package/docs/decisions/ADR-088-no-external-runtime-federation.md +0 -144
  629. package/docs/decisions/ADR-089-lean-local-plugin-install.md +0 -111
  630. package/docs/decisions/ADR-090-visibility-command-frontmatter-field.md +0 -95
  631. package/docs/decisions/ADR-091-split-meta-capability-packs.md +0 -113
  632. package/docs/decisions/ADR-092-defer-command-tier-alias-removal.md +0 -117
  633. package/docs/decisions/ADR-093-ai-council-config-user-global.md +0 -117
  634. package/docs/decisions/ADR-094-agent-memory-layer-removal.md +0 -94
  635. package/docs/decisions/ADR-095-workspace-boundary-contract.md +0 -108
  636. package/docs/decisions/ADR-096-analysis-workbench.md +0 -110
  637. package/docs/decisions/ADR-097-mission-recipe-privilege-boundary.md +0 -121
  638. package/docs/decisions/ADR-098-evidence-first-structure-discovery.md +0 -154
  639. package/docs/decisions/ADR-099-file-first-pattern-library.md +0 -87
  640. package/docs/decisions/ADR-100-global-knowledge-card-sharing.md +0 -140
  641. package/docs/decisions/ADR-101-ticket-bundle-emission.md +0 -109
  642. package/docs/decisions/ADR-102-ticket-handoff-paste-and-mcp.md +0 -72
  643. package/docs/decisions/ADR-103-global-knowledge-default-off-until-measured.md +0 -92
  644. package/docs/decisions/ADR-104-ai-council-config-global-only.md +0 -119
  645. package/docs/decisions/ADR-105-automatic-subagent-orchestration.md +0 -108
  646. package/docs/decisions/ADR-106-recursive-verification-benchmark-gate.md +0 -126
  647. package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +0 -70
  648. package/docs/decisions/ADR-108-open-source-forever-no-commercial-tier.md +0 -46
  649. package/docs/decisions/ADR-109-subagent-v1-contract.md +0 -248
  650. package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +0 -112
  651. package/docs/decisions/ADR-111-canonical-glama-listing.md +0 -97
  652. package/docs/decisions/ADR-112-stdio-lite-stays-read-only.md +0 -92
  653. package/docs/decisions/ADR-113-ci-native-release-label-trigger.md +0 -209
  654. package/docs/decisions/ADR-114-commit-policy-iron-law-override.md +0 -85
  655. package/docs/decisions/ADR-115-command-cluster-consolidation-phase-4.md +0 -91
  656. package/docs/decisions/ADR-116-memory-tripwire-activation-path.md +0 -144
  657. package/docs/decisions/ADR-117-subagents-auto-default-on.md +0 -89
  658. package/docs/decisions/ADR-118-loop-engineering-boundaries.md +0 -162
  659. package/docs/decisions/ADR-119-global-knowledge-default-on.md +0 -104
  660. package/docs/decisions/ADR-120-council-chairman-mode.md +0 -70
  661. package/docs/decisions/ADR-121-knowledge-sensitivity-classes.md +0 -90
  662. package/docs/decisions/ADR-122-adversarial-verification-council.md +0 -166
  663. package/docs/decisions/ADR-123-runtime-security-scope-and-spawn-hardening.md +0 -142
  664. package/docs/decisions/ADR-124-embedded-engine-doctrine.md +0 -255
  665. package/docs/decisions/ADR-125-doc-screenshot-anonymization.md +0 -131
  666. package/docs/decisions/ADR-126-internet-reach-operator-tooling.md +0 -254
  667. package/docs/decisions/ADR-127-enforcement-claims-must-resolve.md +0 -150
  668. package/docs/decisions/ADR-128-executable-evidence-and-measured-escalation.md +0 -201
  669. package/docs/decisions/ADR-200-python-to-typescript-migration.md +0 -203
  670. package/docs/decisions/ADR-rule-kernel-and-router.md +0 -133
  671. package/docs/decisions/INDEX.md +0 -157
  672. package/docs/decisions/engine-reclassification-2026-07.md +0 -104
  673. package/docs/deploy/connector-setup.md +0 -129
  674. package/docs/deploy/env-vars.md +0 -70
  675. package/docs/deploy/policy-cookbook.md +0 -130
  676. package/docs/deploy/quickstart.md +0 -112
  677. package/docs/deploy/small-team-recipe.md +0 -148
  678. package/docs/deploy/team-deployment-posture.md +0 -111
  679. package/docs/design/adversarial-council-eval.md +0 -106
  680. package/docs/design/council-vs-solo-baseline.md +0 -92
  681. package/docs/design/cross-model-parity-eval.md +0 -82
  682. package/docs/design/length-neutral-judge-rerun.md +0 -92
  683. package/docs/design/utilization-window-criteria.md +0 -51
  684. package/docs/development.md +0 -230
  685. package/docs/distribution/awesome-list-submission.md +0 -46
  686. package/docs/distribution/consumer-matrix.md +0 -96
  687. package/docs/distribution/launch-story-draft.md +0 -58
  688. package/docs/distribution/mcp-submission-checklist.md +0 -95
  689. package/docs/distribution/public-install-smoke.md +0 -68
  690. package/docs/distribution/registries.md +0 -126
  691. package/docs/distribution/registry-submissions.md +0 -85
  692. package/docs/distribution/telemetry-privacy.md +0 -128
  693. package/docs/distribution/telemetry-schema.md +0 -174
  694. package/docs/distribution/topics-equivalents-decay-policy.md +0 -51
  695. package/docs/end-to-end-walkthroughs.md +0 -165
  696. package/docs/enforcement-by-host.md +0 -51
  697. package/docs/examples/agent-user.example.md +0 -22
  698. package/docs/experiences/agency.md +0 -49
  699. package/docs/experiences/content_creator.md +0 -49
  700. package/docs/experiences/developer.md +0 -49
  701. package/docs/experiences/finance.md +0 -50
  702. package/docs/experiences/founder.md +0 -49
  703. package/docs/experiences/ops.md +0 -49
  704. package/docs/featured-commands.md +0 -27
  705. package/docs/featured-skills.md +0 -95
  706. package/docs/flows.md +0 -67
  707. package/docs/getting-started-by-role.md +0 -190
  708. package/docs/getting-started-laravel.md +0 -72
  709. package/docs/getting-started-local-stdio.md +0 -77
  710. package/docs/getting-started.md +0 -254
  711. package/docs/github-topics.md +0 -93
  712. package/docs/governance-advantage.md +0 -72
  713. package/docs/governance.md +0 -96
  714. package/docs/guides/cross-repo-linked-projects.md +0 -93
  715. package/docs/guides/cross-repo-retrieval.md +0 -61
  716. package/docs/guides/frontend-design-corpus-refresh.md +0 -83
  717. package/docs/guides/gated-platform-reads.md +0 -221
  718. package/docs/guides/local-analytics.md +0 -125
  719. package/docs/guides/local-knowledge.md +0 -127
  720. package/docs/guides/skill-discovery.md +0 -71
  721. package/docs/guides/skill-preview.md +0 -71
  722. package/docs/hook-payload-capture.md +0 -221
  723. package/docs/install-friction-report.md +0 -66
  724. package/docs/installation.md +0 -959
  725. package/docs/maintainers/branch-protection.md +0 -105
  726. package/docs/maintainers/dev-mode.md +0 -106
  727. package/docs/maintainers/optional-media-deps.md +0 -50
  728. package/docs/maintainers/system-map.md +0 -85
  729. package/docs/mcp-registries.md +0 -94
  730. package/docs/mcp-server.md +0 -175
  731. package/docs/mcp.md +0 -147
  732. package/docs/media/proof-demo.cast +0 -14
  733. package/docs/media/proof-demo.gif +0 -0
  734. package/docs/migration/consumer-template-consumption-model.md +0 -145
  735. package/docs/migration/divergences/README.md +0 -55
  736. package/docs/migration/divergences/_template.md +0 -50
  737. package/docs/migration/divergences/bench-stats-float-precision.md +0 -72
  738. package/docs/migration/divergences/mcp-telemetry-node-sqlite.md +0 -61
  739. package/docs/migration/divergences/pack-mcp-content-gzip-body.md +0 -53
  740. package/docs/migration/divergences/src-scripts-build_cloud_bundle.md +0 -63
  741. package/docs/migration/divergences/src-scripts-check_memory.md +0 -91
  742. package/docs/migration/divergences/src-scripts-inventory_abstraction_budget.md +0 -65
  743. package/docs/migration/divergences/src-scripts-lint_marketplace.md +0 -57
  744. package/docs/migration/divergences/src-scripts-lint_mcp_registry_manifest.md +0 -70
  745. package/docs/migration/divergences/src-scripts-spotcheck_thin_root.md +0 -60
  746. package/docs/migration/divergences/src-scripts-validate_agent_settings.md +0 -58
  747. package/docs/migration/node-floor.md +0 -86
  748. package/docs/migration/v1-to-v2.md +0 -156
  749. package/docs/migration/yaml-roundtrip-spike.md +0 -163
  750. package/docs/migrations/commands-1.15.0.md +0 -117
  751. package/docs/parity/bench-external.json +0 -58
  752. package/docs/parity/bench.json +0 -41
  753. package/docs/parity/command-frontmatter.md +0 -60
  754. package/docs/parity/external-runtime.md +0 -46
  755. package/docs/personas.md +0 -178
  756. package/docs/positioning-evidence.md +0 -86
  757. package/docs/profiles.md +0 -108
  758. package/docs/proof.md +0 -252
  759. package/docs/quality.md +0 -98
  760. package/docs/readme-split-plan.md +0 -102
  761. package/docs/recruits/_template.md +0 -81
  762. package/docs/release-runbook.md +0 -141
  763. package/docs/role-experiences.md +0 -19
  764. package/docs/safety.md +0 -30
  765. package/docs/second-brain-scope.md +0 -116
  766. package/docs/self-review-gate.md +0 -65
  767. package/docs/setup/enterprise-and-offline.md +0 -201
  768. package/docs/setup/mcp-client-config.md +0 -358
  769. package/docs/setup/mcp-cloud-endpoints.md +0 -116
  770. package/docs/setup/mcp-cloud-registry-listing.md +0 -99
  771. package/docs/setup/mcp-cloud-setup.md +0 -183
  772. package/docs/setup/mcp-r2-bootstrap.md +0 -82
  773. package/docs/setup/mcp-server-docker.md +0 -101
  774. package/docs/setup/per-ide/aider.md +0 -48
  775. package/docs/setup/per-ide/antigravity.md +0 -68
  776. package/docs/setup/per-ide/augment.md +0 -89
  777. package/docs/setup/per-ide/claude-code.md +0 -97
  778. package/docs/setup/per-ide/claude-desktop.md +0 -207
  779. package/docs/setup/per-ide/cline.md +0 -43
  780. package/docs/setup/per-ide/codebuddy.md +0 -63
  781. package/docs/setup/per-ide/codex.md +0 -46
  782. package/docs/setup/per-ide/continue.md +0 -68
  783. package/docs/setup/per-ide/copilot.md +0 -80
  784. package/docs/setup/per-ide/cursor.md +0 -125
  785. package/docs/setup/per-ide/droid.md +0 -65
  786. package/docs/setup/per-ide/gemini-cli.md +0 -45
  787. package/docs/setup/per-ide/jetbrains.md +0 -76
  788. package/docs/setup/per-ide/kilocode.md +0 -66
  789. package/docs/setup/per-ide/kiro.md +0 -72
  790. package/docs/setup/per-ide/opencode.md +0 -62
  791. package/docs/setup/per-ide/qoder.md +0 -63
  792. package/docs/setup/per-ide/roocode.md +0 -68
  793. package/docs/setup/per-ide/trae.md +0 -63
  794. package/docs/setup/per-ide/warp.md +0 -63
  795. package/docs/setup/per-ide/windsurf.md +0 -109
  796. package/docs/setup/per-ide/zed.md +0 -73
  797. package/docs/showcase.md +0 -209
  798. package/docs/skill-duplication-findings.md +0 -91
  799. package/docs/skills-catalog.md +0 -265
  800. package/docs/skills-taxonomy.md +0 -90
  801. package/docs/spawn-site-policy.md +0 -72
  802. package/docs/succession.md +0 -80
  803. package/docs/threat-model.md +0 -30
  804. package/docs/troubleshooting.md +0 -155
  805. package/docs/ui-track-mental-model.md +0 -121
  806. package/docs/us-vs-the-category.md +0 -38
  807. package/docs/value.md +0 -86
  808. package/docs/walkthroughs/assets/workspace-role-grid.png +0 -0
  809. package/docs/walkthroughs/assets/workspace-session-started.png +0 -0
  810. package/docs/walkthroughs/assets/workspace-task-picker.png +0 -0
  811. package/docs/walkthroughs/daily-workspace-a11y.md +0 -87
  812. package/docs/walkthroughs/daily-workspace.md +0 -127
  813. package/docs/wedge/production-validator/README.md +0 -81
  814. package/docs/wedge/production-validator/first-run-check.sh +0 -42
  815. package/docs/wedge/production-validator/production-validator.md +0 -83
  816. package/docs/wizard.md +0 -173
  817. package/src/scripts/postinstall_gui.ts +0 -129
@@ -0,0 +1,212 @@
1
+ #!/usr/bin/env node
2
+ // MIGRATE: precompiled-hook-layer — carry this hook when road-to-credible-install
3
+ // Phase 1 precompiles the hook path (touch-once preserved at migration).
4
+ /**
5
+ * PreToolUse guard: block Write/Edit/NotebookEdit (and cross-platform
6
+ * equivalents) targeting a kernel rule file — Layer 1 of kernel immutability
7
+ * (road-to-ai-employee-borrowings Phase 1, council-confirmed 2026-07-27).
8
+ *
9
+ * The nine kernel rules (docs/contracts/kernel-membership.md § 4) are the
10
+ * Iron-Law floor: `agent-authority`, `ask-when-uncertain`, `commit-policy`,
11
+ * `direct-answers`, `language-and-tone`, `no-cheap-questions`,
12
+ * `non-destructive-by-default`, `scope-control`, `verify-before-complete`.
13
+ * A model that can edit its own kernel rules can quietly loosen the floor it
14
+ * is supposed to be bound by — this hook makes that a tool-call-time deny,
15
+ * not just a documented convention.
16
+ *
17
+ * Deny reach: the SOURCE tree (`src/rules/<kernel>.md`) AND every projection
18
+ * (`dist/agent-src/rules/`, `.claude/**​/rules/`, `.augment/rules/`, etc.) —
19
+ * any path whose basename is a kernel rule filename under a `rules/` path
20
+ * segment. A kernel-named file living OUTSIDE a `rules/` directory (e.g. a
21
+ * doc, a fixture) is not a rule file and is allowed through.
22
+ *
23
+ * Mirrors `block_no_verify.ts`'s PreToolUse contract exactly: reads the
24
+ * dispatcher's stdin envelope (`--command`-less here — there is no CLI
25
+ * shortcut, the payload always carries the tool call), decides purely from
26
+ * exported pure functions, and reports via the same stderr-block-message +
27
+ * exit-code shape (0 allow · 1 block). `fail_closed: true` in the manifest —
28
+ * ADR-127 permits more than one blocking hook; this is the second (after
29
+ * block-no-verify). No agent-accessible override: the sole legitimate bypass
30
+ * is the human-owned exception registry the deny message points to.
31
+ *
32
+ * Exit codes (docs/contracts/hook-architecture-v1.md):
33
+ * 0 — allow
34
+ * 1 — block
35
+ */
36
+
37
+ import * as fs from 'node:fs';
38
+ import { fileURLToPath, pathToFileURL } from 'node:url';
39
+ import * as path from 'node:path';
40
+
41
+ import { is_kernel_rule } from '../_lib/kernel_rules.js';
42
+ import { EDIT_TOOLS } from '../minimal_safe_diff_hook.js';
43
+ import { readHookStdin } from './hook_stdin.js';
44
+
45
+ const _HERE = fileURLToPath(import.meta.url);
46
+
47
+ type JsonValue = string | number | boolean | null | JsonValue[] | { [k: string]: JsonValue };
48
+ type JsonObject = { [k: string]: JsonValue };
49
+
50
+ function _isObject(v: JsonValue | undefined): v is JsonObject {
51
+ return v !== null && v !== undefined && typeof v === 'object' && !Array.isArray(v);
52
+ }
53
+
54
+ // Keys across platforms that carry the tool's target file path (Write /
55
+ // Edit / MultiEdit / NotebookEdit / str-replace-editor / save-file / …).
56
+ const _PATH_KEYS: readonly string[] = [
57
+ 'file_path',
58
+ 'path',
59
+ 'target_file',
60
+ 'filename',
61
+ 'filePath',
62
+ 'notebook_path',
63
+ ];
64
+
65
+ /** Best-effort (toolName, candidate target paths) read off a PreToolUse envelope. */
66
+ function _extract(envelope: JsonObject): { tool: string; paths: string[] } {
67
+ const payload = _isObject(envelope['payload']) ? envelope['payload'] : envelope;
68
+ const nameVal =
69
+ payload['tool_name'] ??
70
+ payload['toolName'] ??
71
+ payload['tool'] ??
72
+ envelope['tool_name'] ??
73
+ envelope['tool'];
74
+ const tool = typeof nameVal === 'string' ? nameVal : '';
75
+
76
+ const ti = _isObject(payload['tool_input'])
77
+ ? payload['tool_input']
78
+ : _isObject(envelope['tool_input'])
79
+ ? envelope['tool_input']
80
+ : null;
81
+
82
+ const paths: string[] = [];
83
+ if (ti !== null) {
84
+ for (const key of _PATH_KEYS) {
85
+ const v = ti[key];
86
+ if (typeof v === 'string' && v) {
87
+ paths.push(v);
88
+ }
89
+ }
90
+ }
91
+ return { tool, paths };
92
+ }
93
+
94
+ /** Normalize path separators; strip a leading "./" run so segment checks are robust. */
95
+ function _normalize(p: string): string {
96
+ return p.replace(/\\/g, '/').replace(/^(\.\/)+/, '');
97
+ }
98
+
99
+ /**
100
+ * True when `filePath` names a kernel rule file — its basename matches a
101
+ * kernel rule id/filename AND the path carries a `rules` directory segment
102
+ * (source tree or any projection). A kernel-named file outside a `rules/`
103
+ * directory (e.g. `docs/notes/commit-policy.md`) is not a rule file.
104
+ */
105
+ export function targets_kernel_rule(filePath: string): string | null {
106
+ if (!filePath) {
107
+ return null;
108
+ }
109
+ const normalized = _normalize(filePath);
110
+ const segments = normalized.split('/').filter((s) => s.length > 0);
111
+ if (segments.length === 0) {
112
+ return null;
113
+ }
114
+ const basename = segments[segments.length - 1] as string;
115
+ if (!is_kernel_rule(basename)) {
116
+ return null;
117
+ }
118
+ const dirSegments = segments.slice(0, -1);
119
+ if (!dirSegments.includes('rules')) {
120
+ return null;
121
+ }
122
+ return basename.replace(/\.md$/, '');
123
+ }
124
+
125
+ /** Return (blocked, reason) for one PreToolUse envelope. Pure — no I/O beyond the arg. */
126
+ export function check_envelope(envelope: JsonObject): [boolean, string] {
127
+ const { tool, paths } = _extract(envelope);
128
+ if (!tool || !EDIT_TOOLS.has(tool)) {
129
+ return [false, ''];
130
+ }
131
+ for (const p of paths) {
132
+ const ruleName = targets_kernel_rule(p);
133
+ if (ruleName !== null) {
134
+ return [
135
+ true,
136
+ `kernel rule ${ruleName} is immutable — tighten-only via the override ` +
137
+ 'exception registry; see docs/contracts/kernel-membership.md',
138
+ ];
139
+ }
140
+ }
141
+ return [false, ''];
142
+ }
143
+
144
+ function _asObject(v: JsonValue | undefined): JsonObject | null {
145
+ return _isObject(v) ? v : null;
146
+ }
147
+
148
+ function _readStdin(): string {
149
+ return readHookStdin();
150
+ }
151
+
152
+ export function main(): number {
153
+ const raw = _readStdin();
154
+ let envelope: JsonObject = {};
155
+ if (raw.trim()) {
156
+ try {
157
+ const obj = JSON.parse(raw) as JsonValue;
158
+ envelope = _asObject(obj) ?? {};
159
+ } catch {
160
+ // Malformed envelope — nothing actionable to detect; allow. (The
161
+ // fail-closed guarantee below applies to a DETECTED kernel-rule
162
+ // write, not to an unparsable envelope with no target at all.)
163
+ return 0;
164
+ }
165
+ }
166
+
167
+ const [blocked, reason] = check_envelope(envelope);
168
+ if (blocked) {
169
+ process.stderr.write(
170
+ `block-kernel-rule-writes: BLOCKED — ${reason}\n` +
171
+ ' Legitimate change requires a human action outside the agent session:\n' +
172
+ ' edit via the override exception registry, or disable/remove the\n' +
173
+ " 'block-kernel-rule-writes' entry in src/scripts/hook_manifest.yaml.\n" +
174
+ ' Contract: docs/contracts/kernel-membership.md\n',
175
+ );
176
+ return 1; // EXIT_BLOCK
177
+ }
178
+
179
+ return 0; // EXIT_ALLOW
180
+ }
181
+
182
+ // Bundle-safety: never auto-run when inlined into an esbuild bundle, where
183
+ // every module shares the bundle's `import.meta.url` (see cmd_migrate.ts).
184
+ declare const __AGENT_CONFIG_BUNDLE__: boolean | undefined;
185
+ function _isCliEntry(): boolean {
186
+ if (typeof __AGENT_CONFIG_BUNDLE__ !== 'undefined' && __AGENT_CONFIG_BUNDLE__) {
187
+ return false;
188
+ }
189
+ if (process.argv[1] === undefined) {
190
+ return false;
191
+ }
192
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
193
+ if (import.meta.url === argvUrl) {
194
+ return true;
195
+ }
196
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
197
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
198
+ // import.meta.url is the resolved real path while argv[1] keeps the
199
+ // symlink path. Compare realpaths so the entry guard still fires
200
+ // (without this the CLI silently no-ops when run through a symlink).
201
+ try {
202
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
203
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
204
+ return here === argv;
205
+ } catch {
206
+ return false;
207
+ }
208
+ }
209
+
210
+ if (_isCliEntry() || (typeof __AGENT_CONFIG_BUNDLE__ === 'undefined' && process.argv[1] === _HERE)) {
211
+ process.exitCode = main();
212
+ }
@@ -25,6 +25,7 @@
25
25
  import * as fs from 'node:fs';
26
26
  import { fileURLToPath, pathToFileURL } from 'node:url';
27
27
  import * as path from 'node:path';
28
+ import { readHookStdin } from './hook_stdin.js';
28
29
 
29
30
  const _HERE = fileURLToPath(import.meta.url);
30
31
 
@@ -338,14 +339,7 @@ function _usageError(arg: string): string {
338
339
 
339
340
  function _readStdin(): string {
340
341
  // Mirror `sys.stdin.read() if not sys.stdin.isatty() else ""`.
341
- try {
342
- if (process.stdin.isTTY) {
343
- return '';
344
- }
345
- return fs.readFileSync(0, 'utf-8');
346
- } catch {
347
- return '';
348
- }
342
+ return readHookStdin();
349
343
  }
350
344
 
351
345
  export function main(argv?: string[]): number {
@@ -390,7 +384,13 @@ export function main(argv?: string[]): number {
390
384
  return 0; // EXIT_ALLOW
391
385
  }
392
386
 
387
+ // Bundle-safety: never auto-run when inlined into an esbuild bundle, where
388
+ // every module shares the bundle's `import.meta.url` (see cmd_migrate.ts).
389
+ declare const __AGENT_CONFIG_BUNDLE__: boolean | undefined;
393
390
  function _isCliEntry(): boolean {
391
+ if (typeof __AGENT_CONFIG_BUNDLE__ !== 'undefined' && __AGENT_CONFIG_BUNDLE__) {
392
+ return false;
393
+ }
394
394
  if (process.argv[1] === undefined) {
395
395
  return false;
396
396
  }
@@ -412,7 +412,7 @@ function _isCliEntry(): boolean {
412
412
  }
413
413
  }
414
414
 
415
- if (_isCliEntry() || process.argv[1] === _HERE) {
415
+ if (_isCliEntry() || (typeof __AGENT_CONFIG_BUNDLE__ === 'undefined' && process.argv[1] === _HERE)) {
416
416
  process.exitCode = main();
417
417
  }
418
418
 
@@ -23,6 +23,7 @@ import path from 'node:path';
23
23
  import { fileURLToPath, pathToFileURL } from 'node:url';
24
24
 
25
25
  import { detectSources, pickSource } from '../code_graph/detect.js';
26
+ import { readHookStdin } from './hook_stdin.js';
26
27
 
27
28
  const SETTINGS_FILE = '.agent-settings.yml';
28
29
  const EXIT_ALLOW = 0;
@@ -131,18 +132,18 @@ export function nudgeReason(root: string): string {
131
132
  const verdicts = detectSources(root, path.join(root, NATIVE_CACHE));
132
133
  const picked = pickSource(verdicts);
133
134
  if (!picked) {
134
- return 'No code-graph found. For "who calls / where used / impact" run `code_graph build` once, then `code_graph query <symbol>` instead of grepping blind.';
135
+ return 'No code-graph found. For "who calls / where used / impact" run `agent-config code-graph refresh` once, then `agent-config code-graph query <symbol>` instead of grepping blind.';
135
136
  }
136
137
  if (picked.stale) {
137
- return `code-graph is ${picked.commits_behind ?? 'N'} commit(s) behind — rebuild with \`code_graph build --update\` before trusting relationship answers.`;
138
+ return `code-graph is ${picked.commits_behind ?? 'N'} commit(s) behind — rebuild with \`agent-config code-graph refresh\` before trusting relationship answers.`;
138
139
  }
139
- return 'A fresh code-graph is present — for structure questions run `code_graph query|affected <symbol>` first; grep is the fallback (say which answered).';
140
+ return 'A fresh code-graph is present — for structure questions run `agent-config code-graph query|affected <symbol>` first; grep is the fallback (say which answered).';
140
141
  }
141
142
 
142
143
  export function main(): number {
143
144
  let envelope: JsonValue;
144
145
  try {
145
- const raw = process.stdin.isTTY ? '' : fs.readFileSync(0, 'utf-8');
146
+ const raw = readHookStdin();
146
147
  envelope = raw.trim() ? (JSON.parse(raw) as JsonValue) : {};
147
148
  } catch {
148
149
  return EXIT_ALLOW;
@@ -171,7 +172,13 @@ export function main(): number {
171
172
  return EXIT_WARN;
172
173
  }
173
174
 
175
+ // Bundle-safety: never auto-run when inlined into an esbuild bundle, where
176
+ // every module shares the bundle's `import.meta.url` (see cmd_migrate.ts).
177
+ declare const __AGENT_CONFIG_BUNDLE__: boolean | undefined;
174
178
  function isCliEntry(): boolean {
179
+ if (typeof __AGENT_CONFIG_BUNDLE__ !== 'undefined' && __AGENT_CONFIG_BUNDLE__) {
180
+ return false;
181
+ }
175
182
  if (process.argv[1] === undefined) return false;
176
183
  const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
177
184
  if (import.meta.url === argvUrl) return true;
@@ -0,0 +1,75 @@
1
+ /**
2
+ * concern_registry — in-process concern table for the single-process
3
+ * hook dispatcher (road-to-credible-install Phase 1).
4
+ *
5
+ * Maps every `hook_manifest.yaml` concern script path to its statically
6
+ * imported module so the dispatcher can run concerns IN-PROCESS instead of
7
+ * re-spawning tsx per concern (the verified ~1.6 s p50 hot path). Static
8
+ * imports are deliberate: esbuild folds the whole table into
9
+ * `dist/hooks/dispatch.js`, so one `node` start covers dispatcher + every
10
+ * concern.
11
+ *
12
+ * Parity is CI-enforced (tests/hooks/concern_registry_parity.test.ts):
13
+ * every concern in the manifest MUST have a registry entry — a new concern
14
+ * that forgets the registry line falls back to the spawn path and silently
15
+ * reintroduces the latency class this table removed.
16
+ *
17
+ * Invocation contract (mirrors the historical child process exactly):
18
+ * - stdin → hook_stdin override (concerns read via readHookStdin())
19
+ * - argv → process.argv swapped to [node, <script>, ...args] for the call
20
+ * - cwd → process.chdir(workspace) for the call, restored after
21
+ * - stdout/stderr → captured via write-swap, returned to the dispatcher
22
+ * - rc → the concern's `main()` return value (undefined → 0)
23
+ * - crash → caught by the dispatcher and mapped to rc 3 (fail-open /
24
+ * fail-closed reduction unchanged)
25
+ */
26
+
27
+ import { main as chatHistoryMain } from '../chat_history.js';
28
+ import { main as hotContextMain } from '../hot_context_hook.js';
29
+ import { main as roadmapProgressMain } from '../roadmap_progress_hook.js';
30
+ import { main as onboardingGateMain } from '../onboarding_gate_hook.js';
31
+ import { main as contextHygieneMain } from '../context_hygiene_hook.js';
32
+ import { main as verifyBeforeCompleteMain } from '../verify_before_complete_hook.js';
33
+ import { main as minimalSafeDiffMain } from '../minimal_safe_diff_hook.js';
34
+ import { main as injectionScanMain } from '../injection_scan_hook.js';
35
+ import { main as memoryLearnMain } from '../memory_learn_hook.js';
36
+ import { main as firstRunGateMain } from '../first_run_gate_hook.js';
37
+ import { main as profileStalenessMain } from '../profile_staleness_hook.js';
38
+ import { main as wrapperFreshnessMain } from '../wrapper_freshness_hook.js';
39
+ import { main as surfaceProbeMain } from '../surface_probe_hook.js';
40
+ import { main as teamReviewGateMain } from '../team_review_gate_hook.js';
41
+ import { main as prUrlReminderMain } from '../pr_url_reminder_hook.js';
42
+ import { main as sessionCanaryMain } from '../session_canary_hook.js';
43
+ import { main as blockNoVerifyMain } from './block_no_verify.js';
44
+ import { main as blockKernelRuleWritesMain } from './block_kernel_rule_writes.js';
45
+ import { main as rtkWrapMain } from './rtk_wrap_hook.js';
46
+ import { main as designSlopMain } from './design_slop_hook.js';
47
+ import { main as codeGraphNudgeMain } from './code_graph_nudge_hook.js';
48
+
49
+ /** A concern `main` — argv-taking or not; both shapes exist. */
50
+ export type ConcernMain = (argv?: string[]) => number | undefined | void;
51
+
52
+ /** Keyed by the manifest's `script:` value (repo-relative path). */
53
+ export const CONCERN_REGISTRY: Readonly<Record<string, ConcernMain>> = {
54
+ 'src/scripts/chat_history.ts': chatHistoryMain as ConcernMain,
55
+ 'src/scripts/hot_context_hook.ts': hotContextMain as ConcernMain,
56
+ 'src/scripts/roadmap_progress_hook.ts': roadmapProgressMain as ConcernMain,
57
+ 'src/scripts/onboarding_gate_hook.ts': onboardingGateMain as ConcernMain,
58
+ 'src/scripts/context_hygiene_hook.ts': contextHygieneMain as ConcernMain,
59
+ 'src/scripts/verify_before_complete_hook.ts': verifyBeforeCompleteMain as ConcernMain,
60
+ 'src/scripts/minimal_safe_diff_hook.ts': minimalSafeDiffMain as ConcernMain,
61
+ 'src/scripts/injection_scan_hook.ts': injectionScanMain as ConcernMain,
62
+ 'src/scripts/memory_learn_hook.ts': memoryLearnMain as ConcernMain,
63
+ 'src/scripts/first_run_gate_hook.ts': firstRunGateMain as ConcernMain,
64
+ 'src/scripts/profile_staleness_hook.ts': profileStalenessMain as ConcernMain,
65
+ 'src/scripts/wrapper_freshness_hook.ts': wrapperFreshnessMain as ConcernMain,
66
+ 'src/scripts/surface_probe_hook.ts': surfaceProbeMain as ConcernMain,
67
+ 'src/scripts/team_review_gate_hook.ts': teamReviewGateMain as ConcernMain,
68
+ 'src/scripts/pr_url_reminder_hook.ts': prUrlReminderMain as ConcernMain,
69
+ 'src/scripts/session_canary_hook.ts': sessionCanaryMain as ConcernMain,
70
+ 'src/scripts/hooks/block_no_verify.ts': blockNoVerifyMain as ConcernMain,
71
+ 'src/scripts/hooks/block_kernel_rule_writes.ts': blockKernelRuleWritesMain as ConcernMain,
72
+ 'src/scripts/hooks/rtk_wrap_hook.ts': rtkWrapMain as ConcernMain,
73
+ 'src/scripts/hooks/design_slop_hook.ts': designSlopMain as ConcernMain,
74
+ 'src/scripts/hooks/code_graph_nudge_hook.ts': codeGraphNudgeMain as ConcernMain,
75
+ };
@@ -24,6 +24,7 @@ import path from "node:path";
24
24
  import { fileURLToPath, pathToFileURL } from "node:url";
25
25
  import { type DesignContext } from "../design_slop_rules.js";
26
26
  import { loadDesignContext, scanFile } from "../lint_design_slop.js";
27
+ import { readHookStdin } from "./hook_stdin.js";
27
28
 
28
29
  const SETTINGS_FILE = ".agent-settings.yml";
29
30
  const EXIT_ALLOW = 0;
@@ -109,11 +110,7 @@ function writeState(root: string, state: Record<string, number>): void {
109
110
  }
110
111
 
111
112
  function readStdin(): string {
112
- try {
113
- return fs.readFileSync(0, "utf-8");
114
- } catch {
115
- return "";
116
- }
113
+ return readHookStdin();
117
114
  }
118
115
 
119
116
  export function main(): number {
@@ -175,7 +172,13 @@ export function main(): number {
175
172
  return EXIT_WARN;
176
173
  }
177
174
 
175
+ // Bundle-safety: never auto-run when inlined into an esbuild bundle, where
176
+ // every module shares the bundle's `import.meta.url` (see cmd_migrate.ts).
177
+ declare const __AGENT_CONFIG_BUNDLE__: boolean | undefined;
178
178
  function _isCliEntry(): boolean {
179
+ if (typeof __AGENT_CONFIG_BUNDLE__ !== 'undefined' && __AGENT_CONFIG_BUNDLE__) {
180
+ return false;
181
+ }
179
182
  if (process.argv[1] === undefined) {
180
183
  return false;
181
184
  }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * dispatch_entry — bundle entry point for the precompiled hook dispatcher.
3
+ *
4
+ * road-to-credible-install Phase 1: `npm run build:hooks` bundles this file
5
+ * (dispatcher + concern registry + every concern module) into
6
+ * `dist/hooks/dispatch.js` so a hook event costs ONE node start — no tsx,
7
+ * no per-concern re-spawn. Invoked either
8
+ * - directly: `node dist/hooks/dispatch.js --platform … --event …`, or
9
+ * - in-process from the CLI's native `dispatch:hook` route (dynamic
10
+ * import; the CLI process itself then runs the whole dispatch).
11
+ */
12
+ import * as path from 'node:path';
13
+ import { fileURLToPath } from 'node:url';
14
+
15
+ import { main } from './dispatch_hook.js';
16
+
17
+ /**
18
+ * Direct-invocation detection. Under the esbuild bundle, EVERY inlined
19
+ * module's `import.meta.url` is the bundle file — so a plain
20
+ * argv[1]-vs-self comparison would make the CLI-entry guards of ALL
21
+ * inlined modules (lint scripts, sidecars, …) false-fire at import time
22
+ * and hijack the dispatch argv. The build banner therefore detects
23
+ * `node dist/hooks/dispatch.js` BEFORE any module code runs, sets the
24
+ * global marker, and rewrites argv[1] to a sentinel so no inlined guard
25
+ * can match. Only this entry consults the marker. The plain comparison
26
+ * below covers the unbundled path (`tsx src/scripts/hooks/dispatch_entry.ts`).
27
+ */
28
+ const _selfPath = fileURLToPath(import.meta.url);
29
+ const _invokedDirectly =
30
+ (globalThis as { __AC_HOOKS_BUNDLE_DIRECT?: boolean }).__AC_HOOKS_BUNDLE_DIRECT === true ||
31
+ (process.argv[1] !== undefined && path.resolve(process.argv[1]) === path.resolve(_selfPath));
32
+
33
+ if (_invokedDirectly) {
34
+ process.exitCode = main(process.argv.slice(2));
35
+ }
36
+
37
+ export { main };
@@ -42,6 +42,11 @@ import {
42
42
  is_replay_mode,
43
43
  } from "./state_io.js";
44
44
  import { log_dispatch_issue, fix_hint } from "./dispatch_issues.js";
45
+ import { CONCERN_REGISTRY, type ConcernMain } from "./concern_registry.js";
46
+ import {
47
+ setHookStdinOverride,
48
+ clearHookStdinOverride,
49
+ } from "./hook_stdin.js";
45
50
 
46
51
  // Free-form JSON values flow through every helper here; a documented
47
52
  // alias keeps the surface honest without `any` (ADR-200 § strict TS).
@@ -55,11 +60,14 @@ export type JsonValue =
55
60
  export type JsonObject = { [key: string]: JsonValue };
56
61
 
57
62
  // src/scripts/hooks/dispatch_hook.ts → parents[3] is the repo root.
63
+ // Bundled (dist/hooks/dispatch.js) the module sits two levels below the repo
64
+ // root; under tsx (src/scripts/hooks/) it sits three. The `__AGENT_CONFIG_BUNDLE__`
65
+ // sentinel (esbuild --define) picks the right depth (see cmd_migrate.ts).
66
+ declare const __AGENT_CONFIG_BUNDLE__: boolean | undefined;
67
+ const _IN_BUNDLE = typeof __AGENT_CONFIG_BUNDLE__ !== 'undefined' && __AGENT_CONFIG_BUNDLE__;
58
68
  const REPO_ROOT = path.resolve(
59
69
  path.dirname(fileURLToPath(import.meta.url)),
60
- "..",
61
- "..",
62
- "..",
70
+ ...(_IN_BUNDLE ? ["..", ".."] : ["..", "..", ".."]),
63
71
  );
64
72
  const MANIFEST_PATH = path.join(REPO_ROOT, "src", "scripts", "hook_manifest.yaml");
65
73
 
@@ -471,7 +479,115 @@ function _resolve_tsx_invocation(
471
479
  * through `tsx` (resolved from the package's `node_modules/.bin`, falling
472
480
  * back to `npx tsx`), mirroring how `run.ts` runs its `.ts` twins.
473
481
  */
482
+ /**
483
+ * Single-process dispatch (road-to-credible-install Phase 1): run a concern
484
+ * IN-PROCESS via the static registry instead of re-spawning a per-concern
485
+ * interpreter. Mirrors the child-process contract exactly — stdin via the
486
+ * hook_stdin override, argv swap, cwd = workspace, hardened env, captured
487
+ * stdout/stderr, crash → rc 3 (the caller applies the fail-open /
488
+ * fail-closed reduction unchanged).
489
+ *
490
+ * Escape hatch: AGENT_CONFIG_HOOKS_ISOLATED=1 forces the historical
491
+ * spawn-per-concern path (also used by the bench harness for A/B numbers).
492
+ *
493
+ * Known trade-off vs the spawn path: the 30 s kill-timeout cannot preempt
494
+ * in-process synchronous code. Concerns are repo-owned, budget-capped and
495
+ * fail-open; the latency budget gate (hook-latency-budget.json) is the
496
+ * standing regression net.
497
+ */
498
+ function _run_concern_inproc(
499
+ main_fn: ConcernMain,
500
+ concern: ConcernDef,
501
+ envelope: JsonObject,
502
+ ): RunResult {
503
+ const scriptAbs = path.join(REPO_ROOT, String(concern["script"]));
504
+ const argsList = Array.isArray(concern["args"])
505
+ ? concern["args"].map((a) => String(a))
506
+ : [];
507
+ argsList.push("--platform", String(envelope["platform"] || "generic"));
508
+ const workspace = String(envelope["workspace_root"] || process.cwd());
509
+
510
+ let out = "";
511
+ let err = "";
512
+ type WriteFn = typeof process.stdout.write;
513
+ const makeCapture =
514
+ (sink: (s: string) => void): WriteFn =>
515
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
516
+ ((chunk: any, enc?: any, cb?: any): boolean => {
517
+ sink(typeof chunk === "string" ? chunk : Buffer.from(chunk).toString("utf-8"));
518
+ const callback = typeof enc === "function" ? enc : cb;
519
+ if (typeof callback === "function") callback();
520
+ return true;
521
+ }) as WriteFn;
522
+
523
+ const prevStdoutWrite = process.stdout.write;
524
+ const prevStderrWrite = process.stderr.write;
525
+ const prevArgv = process.argv;
526
+ const prevCwd = process.cwd();
527
+ const prevEnv = { ...process.env };
528
+
529
+ const started = performance.now();
530
+ let rc = 0;
531
+ setHookStdinOverride(_compactJsonDumps(envelope));
532
+ process.stdout.write = makeCapture((s) => {
533
+ out += s;
534
+ });
535
+ process.stderr.write = makeCapture((s) => {
536
+ err += s;
537
+ });
538
+ try {
539
+ process.argv = [prevArgv[0] as string, scriptAbs, ...argsList];
540
+ // Same env-hardening the spawn path applied — concerns may spawn their
541
+ // own children (dashboard regen, git), which inherit process.env.
542
+ const hardened = hardenedSpawnEnv({ AGENT_CONFIG_PACKAGE_ROOT: REPO_ROOT });
543
+ for (const k of Object.keys(process.env)) {
544
+ if (!(k in hardened)) delete process.env[k];
545
+ }
546
+ Object.assign(process.env, hardened);
547
+ if (workspace !== prevCwd && _isDir(workspace)) {
548
+ process.chdir(workspace);
549
+ }
550
+ const result = main_fn(argsList);
551
+ rc = typeof result === "number" ? result : 0;
552
+ } catch (exc) {
553
+ rc = 3;
554
+ const msg = exc instanceof Error ? (exc.stack ?? exc.message) : String(exc);
555
+ err += `${String(concern["name"])}: ${msg}\n`;
556
+ log_dispatch_issue(
557
+ workspace,
558
+ String(concern["name"] || "unknown"),
559
+ "execution_failed",
560
+ `in-process concern crashed: ${exc instanceof Error ? exc.message : String(exc)}`,
561
+ fix_hint(),
562
+ );
563
+ } finally {
564
+ process.stdout.write = prevStdoutWrite;
565
+ process.stderr.write = prevStderrWrite;
566
+ process.argv = prevArgv;
567
+ for (const k of Object.keys(process.env)) {
568
+ if (!(k in prevEnv)) delete process.env[k];
569
+ }
570
+ Object.assign(process.env, prevEnv);
571
+ try {
572
+ if (process.cwd() !== prevCwd) process.chdir(prevCwd);
573
+ } catch {
574
+ /* original cwd vanished — keep going, fail-open */
575
+ }
576
+ clearHookStdinOverride();
577
+ }
578
+ const elapsed = Math.floor(performance.now() - started);
579
+ return { rc, stderr: err, stdout: out, duration_ms: elapsed };
580
+ }
581
+
474
582
  function _run_concern(concern: ConcernDef, envelope: JsonObject): RunResult {
583
+ // In-process fast path — the default whenever the concern is in the
584
+ // static registry (all manifest concerns; parity is CI-enforced).
585
+ if (process.env["AGENT_CONFIG_HOOKS_ISOLATED"] !== "1") {
586
+ const inproc = CONCERN_REGISTRY[String(concern["script"])];
587
+ if (inproc !== undefined) {
588
+ return _run_concern_inproc(inproc, concern, envelope);
589
+ }
590
+ }
475
591
  const script = path.join(REPO_ROOT, String(concern["script"]));
476
592
  const argsList = Array.isArray(concern["args"])
477
593
  ? concern["args"].map((a) => String(a))
@@ -654,6 +770,57 @@ function _write_feedback(
654
770
  }
655
771
  }
656
772
 
773
+ /**
774
+ * Checkable-rule trip counting (road-to-credible-install Phase 6, scoped P3
775
+ * cut): every concern that returns BLOCK (1) or WARN (2) — a violation the
776
+ * gate actually caught — increments a per-concern counter in
777
+ * `agents/runtime/state/rule-trips.json`. Extends the existing dispatcher
778
+ * feedback machinery only; the evaluator/umbrella surfaces read this file.
779
+ *
780
+ * PII-exclusion-by-construction: the schema carries ONLY concern ids,
781
+ * integer counters, and ISO dates — no field capable of holding free-form
782
+ * content, prompt text, or file bodies. Never widen it.
783
+ *
784
+ * Fail-open (a broken counter must never affect dispatch), skipped in
785
+ * replay mode like the feedback dir.
786
+ */
787
+ function _record_rule_trips(envelope: JsonObject, entries: FeedbackEntry[]): void {
788
+ if (is_replay_mode()) return;
789
+ const tripped = entries.filter(
790
+ (e) => e["exit_code"] === EXIT_BLOCK || e["exit_code"] === EXIT_WARN,
791
+ );
792
+ if (tripped.length === 0) return;
793
+ try {
794
+ const workspace = String(envelope["workspace_root"] || process.cwd());
795
+ const state_dir = path.join(workspace, "agents", "runtime", "state");
796
+ const target = path.join(state_dir, "rule-trips.json");
797
+ fs.mkdirSync(state_dir, { recursive: true });
798
+ let doc: JsonObject = { schema_version: 1, concerns: {} };
799
+ try {
800
+ const parsed = JSON.parse(fs.readFileSync(target, "utf-8")) as JsonObject;
801
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) doc = parsed;
802
+ } catch {
803
+ /* absent or corrupt → fresh counter file */
804
+ }
805
+ const concerns = (doc["concerns"] ?? {}) as Record<string, JsonObject>;
806
+ const today = _now_iso().slice(0, 10);
807
+ for (const e of tripped) {
808
+ const name = String(e["concern"]);
809
+ const prev = (concerns[name] ?? { block: 0, warn: 0 }) as JsonObject;
810
+ concerns[name] = {
811
+ block: (Number(prev["block"]) || 0) + (e["exit_code"] === EXIT_BLOCK ? 1 : 0),
812
+ warn: (Number(prev["warn"]) || 0) + (e["exit_code"] === EXIT_WARN ? 1 : 0),
813
+ last_trip: today,
814
+ };
815
+ }
816
+ doc["schema_version"] = 1;
817
+ doc["concerns"] = concerns;
818
+ atomic_write_json(target, doc);
819
+ } catch {
820
+ /* fail-open — counters are observability, never dispatch-critical */
821
+ }
822
+ }
823
+
657
824
  function _parse_args(argv: string[]): Args {
658
825
  const args: Args = {
659
826
  platform: "",
@@ -850,6 +1017,7 @@ export function main(argv?: string[]): number {
850
1017
  }
851
1018
  const final_rc = _reduce(rcs);
852
1019
  _write_feedback(envelope, session_id, feedback_entries, final_rc, started_at);
1020
+ _record_rule_trips(envelope, feedback_entries);
853
1021
  if (context_blocks.length > 0 && final_rc === EXIT_ALLOW) {
854
1022
  process.stdout.write(context_blocks.join("\n\n") + "\n");
855
1023
  }
@@ -877,7 +1045,12 @@ function _readStdin(): string {
877
1045
  }
878
1046
  }
879
1047
 
1048
+ // Bundle-safety: never auto-run when inlined into an esbuild bundle, where
1049
+ // every module shares the bundle's `import.meta.url` (declare at top of file).
880
1050
  function _isCliEntry(): boolean {
1051
+ if (typeof __AGENT_CONFIG_BUNDLE__ !== 'undefined' && __AGENT_CONFIG_BUNDLE__) {
1052
+ return false;
1053
+ }
881
1054
  if (process.argv[1] === undefined) {
882
1055
  return false;
883
1056
  }