@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,218 @@
1
+ #!/usr/bin/env tsx
2
+ /**
3
+ * bench_hook_latency — standing, published hook-dispatch latency harness.
4
+ *
5
+ * road-to-credible-install Phase 1: the 9.8.0 external review measured
6
+ * ~1.6 s p50 per PreToolUse dispatch (CLI → bash → tsx → per-concern tsx
7
+ * re-spawn). The precompiled single-process dispatcher (dist/hooks/
8
+ * dispatch.js) replaces that chain; THIS harness is the re-runnable proof
9
+ * and the regression net. An external reviewer runs it from a fresh clone:
10
+ *
11
+ * npm ci && npm run build:cli && npm run build:hooks
12
+ * ./scripts-run src/scripts/bench_hook_latency # measure + print
13
+ * ./scripts-run src/scripts/bench_hook_latency --gate # enforce budget
14
+ * ./scripts-run src/scripts/bench_hook_latency --update # record numbers
15
+ *
16
+ * Method (pinned so numbers reproduce):
17
+ * - N invocations per hook event (default 50, --runs N) of
18
+ * `node dist/hooks/dispatch.js --platform claude --event <e>` with a
19
+ * synthetic payload on stdin and a throwaway temp workspace as
20
+ * --project-dir (concern state lands there, never in the repo).
21
+ * - AGENT_CONFIG_REPLAY=1 (feedback-dir writes off — measures dispatch,
22
+ * not audit-trail I/O).
23
+ * - Wall-clock per invocation around spawnSync; p50/p95 per event.
24
+ *
25
+ * Gate semantics (--gate):
26
+ * - pre_tool_use p95 must be ≤ budgets_ms.pre_tool_use.p95_ci
27
+ * - every event p95 must be ≤ budgets_ms.any_hook_event.p95_ci
28
+ * - when docs/hook-latency.json exists, a p95 regression beyond
29
+ * regression_gate.max_regression_pct fails.
30
+ * Budgets: src/config/hook-latency-budget.json (pre-registered, owner +
31
+ * review date — see the Phase-6 budget-ownership lint).
32
+ *
33
+ * Exit codes: 0 green · 1 budget/regression exceeded · 2 internal error.
34
+ */
35
+ import { spawnSync } from 'node:child_process';
36
+ import * as fs from 'node:fs';
37
+ import * as os from 'node:os';
38
+ import * as path from 'node:path';
39
+ import { fileURLToPath } from 'node:url';
40
+
41
+ const REPO_ROOT = path.resolve(fileURLToPath(import.meta.url), '..', '..', '..');
42
+ const BUNDLE = path.join(REPO_ROOT, 'dist', 'hooks', 'dispatch.js');
43
+ const BUDGET_PATH = path.join(REPO_ROOT, 'src', 'config', 'hook-latency-budget.json');
44
+ const RESULTS_PATH = path.join(REPO_ROOT, 'docs', 'hook-latency.json');
45
+
46
+ const EVENTS: readonly string[] = [
47
+ 'pre_tool_use',
48
+ 'post_tool_use',
49
+ 'user_prompt_submit',
50
+ 'stop',
51
+ 'session_start',
52
+ 'session_end',
53
+ ];
54
+
55
+ interface EventResult {
56
+ event: string;
57
+ runs: number;
58
+ p50_ms: number;
59
+ p95_ms: number;
60
+ max_ms: number;
61
+ }
62
+
63
+ function percentile(sorted: number[], p: number): number {
64
+ if (sorted.length === 0) return 0;
65
+ const idx = Math.min(sorted.length - 1, Math.ceil((p / 100) * sorted.length) - 1);
66
+ return sorted[Math.max(0, idx)] as number;
67
+ }
68
+
69
+ function syntheticPayload(event: string, workspace: string): string {
70
+ // Claude-shaped payload; concerns read tool_name/tool_input for
71
+ // pre/post_tool_use. A plain Read is the common non-matching case —
72
+ // the fast path consumers pay on every tool call.
73
+ return JSON.stringify({
74
+ session_id: 'bench-hook-latency',
75
+ cwd: workspace,
76
+ hook_event_name: event,
77
+ tool_name: 'Read',
78
+ tool_input: { file_path: path.join(workspace, 'README.md') },
79
+ });
80
+ }
81
+
82
+ export function benchEvent(event: string, runs: number, workspace: string): EventResult {
83
+ const durations: number[] = [];
84
+ const payload = syntheticPayload(event, workspace);
85
+ for (let i = 0; i < runs; i += 1) {
86
+ const started = performance.now();
87
+ const proc = spawnSync(
88
+ process.execPath,
89
+ [
90
+ BUNDLE,
91
+ '--platform',
92
+ 'claude',
93
+ '--event',
94
+ event,
95
+ '--project-dir',
96
+ workspace,
97
+ ],
98
+ {
99
+ input: payload,
100
+ encoding: 'utf-8',
101
+ env: { ...process.env, AGENT_CONFIG_REPLAY: '1' },
102
+ timeout: 60000,
103
+ },
104
+ );
105
+ const elapsed = performance.now() - started;
106
+ if (proc.error) {
107
+ throw new Error(`dispatch failed on ${event}: ${proc.error.message}`);
108
+ }
109
+ durations.push(elapsed);
110
+ }
111
+ durations.sort((a, b) => a - b);
112
+ return {
113
+ event,
114
+ runs,
115
+ p50_ms: Math.round(percentile(durations, 50)),
116
+ p95_ms: Math.round(percentile(durations, 95)),
117
+ max_ms: Math.round(durations[durations.length - 1] as number),
118
+ };
119
+ }
120
+
121
+ function loadJson<T>(p: string): T | null {
122
+ try {
123
+ return JSON.parse(fs.readFileSync(p, 'utf-8')) as T;
124
+ } catch {
125
+ return null;
126
+ }
127
+ }
128
+
129
+ interface Budget {
130
+ budgets_ms: {
131
+ pre_tool_use: { p95_ci: number };
132
+ any_hook_event: { p95_ci: number };
133
+ };
134
+ regression_gate: { max_regression_pct: number };
135
+ }
136
+
137
+ export function main(argv: string[] = process.argv.slice(2)): number {
138
+ const gate = argv.includes('--gate');
139
+ const update = argv.includes('--update');
140
+ const runsIdx = argv.indexOf('--runs');
141
+ const runs = runsIdx >= 0 ? Number.parseInt(argv[runsIdx + 1] ?? '50', 10) : 50;
142
+
143
+ if (!fs.existsSync(BUNDLE)) {
144
+ process.stderr.write(
145
+ `bench_hook_latency: bundle missing at ${BUNDLE} — run \`npm run build:hooks\` first\n`,
146
+ );
147
+ return 2;
148
+ }
149
+ const budget = loadJson<Budget>(BUDGET_PATH);
150
+ if (budget === null) {
151
+ process.stderr.write(`bench_hook_latency: budget file missing/invalid at ${BUDGET_PATH}\n`);
152
+ return 2;
153
+ }
154
+
155
+ const workspace = fs.mkdtempSync(path.join(os.tmpdir(), 'ac-hook-bench-'));
156
+ const results: EventResult[] = [];
157
+ try {
158
+ for (const event of EVENTS) {
159
+ const r = benchEvent(event, runs, workspace);
160
+ results.push(r);
161
+ process.stdout.write(
162
+ `${event.padEnd(20)} p50 ${String(r.p50_ms).padStart(5)} ms · p95 ${String(r.p95_ms).padStart(5)} ms · max ${String(r.max_ms).padStart(5)} ms (n=${r.runs})\n`,
163
+ );
164
+ }
165
+ } finally {
166
+ fs.rmSync(workspace, { recursive: true, force: true });
167
+ }
168
+
169
+ let failed = false;
170
+ const prior = loadJson<{ results: EventResult[] }>(RESULTS_PATH);
171
+ for (const r of results) {
172
+ const anyCap = budget.budgets_ms.any_hook_event.p95_ci;
173
+ const cap = r.event === 'pre_tool_use' ? budget.budgets_ms.pre_tool_use.p95_ci : anyCap;
174
+ if (gate && r.p95_ms > cap) {
175
+ process.stderr.write(
176
+ `❌ ${r.event}: p95 ${r.p95_ms} ms exceeds the pre-registered budget (${cap} ms)\n`,
177
+ );
178
+ failed = true;
179
+ }
180
+ if (gate && prior !== null) {
181
+ const prev = prior.results.find((x) => x.event === r.event);
182
+ if (prev !== undefined && prev.p95_ms > 0) {
183
+ const regressionPct = ((r.p95_ms - prev.p95_ms) / prev.p95_ms) * 100;
184
+ if (regressionPct > budget.regression_gate.max_regression_pct) {
185
+ process.stderr.write(
186
+ `❌ ${r.event}: p95 regressed ${Math.round(regressionPct)}% vs recorded ` +
187
+ `${prev.p95_ms} ms (allowed: ${budget.regression_gate.max_regression_pct}%)\n`,
188
+ );
189
+ failed = true;
190
+ }
191
+ }
192
+ }
193
+ }
194
+
195
+ if (update) {
196
+ const doc = {
197
+ _comment:
198
+ 'Recorded hook-dispatch latency (bench_hook_latency --update). Method pinned in src/scripts/bench_hook_latency.ts; budgets in src/config/hook-latency-budget.json. Re-run from a fresh clone to reproduce.',
199
+ recorded_at: new Date().toISOString(),
200
+ node: process.version,
201
+ platform: `${os.platform()}-${os.arch()}`,
202
+ hardware_note: 'see hook-latency-budget.json hardware_reference — CI numbers are the gated ones',
203
+ runs_per_event: runs,
204
+ results,
205
+ };
206
+ fs.writeFileSync(RESULTS_PATH, `${JSON.stringify(doc, null, 4)}\n`);
207
+ process.stdout.write(`recorded → ${path.relative(REPO_ROOT, RESULTS_PATH)}\n`);
208
+ }
209
+
210
+ if (failed) return 1;
211
+ process.stdout.write(gate ? '✅ hook-latency budget met\n' : 'ℹ️ measurement only (no gate)\n');
212
+ return 0;
213
+ }
214
+
215
+ const _selfPath = fileURLToPath(import.meta.url);
216
+ if (process.argv[1] !== undefined && path.resolve(process.argv[1]) === path.resolve(_selfPath)) {
217
+ process.exit(main());
218
+ }
@@ -0,0 +1,275 @@
1
+ #!/usr/bin/env tsx
2
+ /**
3
+ * `consumer_tool_catalog.json` generator — Phase 3 of road-to-credible-install
4
+ * (MCP hygiene: generated truth, honest stubs).
5
+ *
6
+ * The catalog used to be hand-maintained: every tool's name / description /
7
+ * input_schema had to be kept in sync BY HAND across the JSON file AND its
8
+ * real handler registration in `mcp_server/tools.ts`. This script derives
9
+ * the JSON from the actual registries instead of a third hand-edited copy:
10
+ *
11
+ * - implemented tools — `ALLOWLIST` in `mcp_server/tools.ts`. Name,
12
+ * description, input_schema, and side_effect all come straight off the
13
+ * handler registration.
14
+ * - stub-only tools — `STUB_TOOLS` in `mcp_server/tool_catalog_source.ts`.
15
+ * Catalog-listed discovery placeholders with no wired handler.
16
+ *
17
+ * Every stub entry's description is prefixed with the literal marker
18
+ * `[stub — implemented on demand] ` so a client can tell a discovery
19
+ * placeholder from a real tool without cross-checking `implemented_on`.
20
+ * Every implemented entry additionally carries an `annotations.readOnlyHint`
21
+ * derived from its `side_effect`.
22
+ *
23
+ * CLI contract (same `--write` / `--strict` shape as
24
+ * `build_discovery_manifest.ts`):
25
+ * --write regenerate and persist the catalog deterministically (tools
26
+ * sorted by name, stable key order, 2-space indent).
27
+ * --strict quality gate on the freshly-built content (no duplicate name
28
+ * across the two registries, non-empty tool list); when NOT
29
+ * combined with --write, ALSO diffs the fresh content against
30
+ * the committed file and fails on any drift — the CI gate that
31
+ * catches a hand-edit or a registry change nobody regenerated
32
+ * the catalog for.
33
+ * --quiet suppress the stdout summary line.
34
+ * Bare invocation (no flags) prints the freshly-built JSON to stdout,
35
+ * mirroring `build_discovery_manifest.ts`'s non-write default.
36
+ */
37
+ import * as fs from 'node:fs';
38
+ import * as path from 'node:path';
39
+ import process from 'node:process';
40
+ import { fileURLToPath, pathToFileURL } from 'node:url';
41
+
42
+ import { ALLOWLIST, type ToolSideEffect } from './mcp_server/tools.js';
43
+ import { CATALOG_DESCRIPTION, STUB_TOOLS } from './mcp_server/tool_catalog_source.js';
44
+
45
+ const _HERE = fileURLToPath(import.meta.url);
46
+ const _PROG = 'build_mcp_catalog';
47
+
48
+ // src/scripts/build_mcp_catalog.ts → repo root is two dirs up.
49
+ const _DEFAULT_ROOT = path.resolve(path.dirname(_HERE), '..', '..');
50
+
51
+ interface ModuleConfig {
52
+ ROOT: string;
53
+ CATALOG_PATH: string;
54
+ PACKAGE_JSON: string;
55
+ }
56
+
57
+ function _deriveConfig(root: string): ModuleConfig {
58
+ return {
59
+ ROOT: root,
60
+ CATALOG_PATH: path.join(root, 'src', 'scripts', 'mcp_server', 'consumer_tool_catalog.json'),
61
+ PACKAGE_JSON: path.join(root, 'package.json'),
62
+ };
63
+ }
64
+
65
+ const _config: ModuleConfig = _deriveConfig(_DEFAULT_ROOT);
66
+
67
+ /** Test seam — mirrors `build_discovery_manifest.ts`'s `_setConfigForTest`. */
68
+ export function _setConfigForTest(overrides: Partial<ModuleConfig>): void {
69
+ Object.assign(_config, overrides);
70
+ }
71
+
72
+ export function _getConfigForTest(): ModuleConfig {
73
+ return { ..._config };
74
+ }
75
+
76
+ export const ROOT = (): string => _config.ROOT;
77
+ export const CATALOG_PATH = (): string => _config.CATALOG_PATH;
78
+
79
+ /** Literal marker every stub-only description starts with. */
80
+ export const STUB_MARKER = '[stub — implemented on demand] ';
81
+
82
+ interface CatalogEntryOut {
83
+ name: string;
84
+ description: string;
85
+ side_effect: ToolSideEffect;
86
+ implemented_on: string[];
87
+ input_schema: Record<string, unknown>;
88
+ annotations?: { readOnlyHint: boolean };
89
+ }
90
+
91
+ function _packageName(): string {
92
+ try {
93
+ const pkg = JSON.parse(fs.readFileSync(_config.PACKAGE_JSON, 'utf-8')) as { name?: unknown };
94
+ return typeof pkg.name === 'string' && pkg.name !== '' ? pkg.name : '@event4u/agent-config';
95
+ } catch {
96
+ return '@event4u/agent-config';
97
+ }
98
+ }
99
+
100
+ /** Mirror Python `str.__lt__` (code-point ordering — matches ASCII tool names). */
101
+ function _cmpStr(a: string, b: string): number {
102
+ return a < b ? -1 : a > b ? 1 : 0;
103
+ }
104
+
105
+ /** Build the deterministic, name-sorted tool-entry list. Throws on a name collision. */
106
+ export function _buildEntries(): CatalogEntryOut[] {
107
+ const seen = new Set<string>();
108
+ const entries: CatalogEntryOut[] = [];
109
+
110
+ for (const tool of Object.values(ALLOWLIST)) {
111
+ if (seen.has(tool.name)) {
112
+ throw new Error(`build_mcp_catalog: duplicate tool name in ALLOWLIST: ${tool.name}`);
113
+ }
114
+ seen.add(tool.name);
115
+ entries.push({
116
+ name: tool.name,
117
+ description: tool.description,
118
+ side_effect: tool.side_effect,
119
+ implemented_on: ['stdio'],
120
+ input_schema: tool.input_schema,
121
+ annotations: { readOnlyHint: tool.side_effect === 'ro' },
122
+ });
123
+ }
124
+
125
+ for (const stub of STUB_TOOLS) {
126
+ if (seen.has(stub.name)) {
127
+ throw new Error(
128
+ `build_mcp_catalog: '${stub.name}' is registered both in ALLOWLIST ` +
129
+ 'and STUB_TOOLS — a tool is implemented or a stub, never both.',
130
+ );
131
+ }
132
+ seen.add(stub.name);
133
+ entries.push({
134
+ name: stub.name,
135
+ description: STUB_MARKER + stub.description,
136
+ side_effect: stub.side_effect,
137
+ implemented_on: [],
138
+ input_schema: stub.input_schema,
139
+ });
140
+ }
141
+
142
+ entries.sort((a, b) => _cmpStr(a.name, b.name));
143
+ return entries;
144
+ }
145
+
146
+ /** Build the full catalog document (unserialized). */
147
+ export function _buildCatalog(): Record<string, unknown> {
148
+ const entries = _buildEntries();
149
+ if (entries.length === 0) {
150
+ throw new Error('build_mcp_catalog: computed zero tool entries — refusing an empty catalog');
151
+ }
152
+ return {
153
+ schema_version: 1,
154
+ description: CATALOG_DESCRIPTION,
155
+ install_hint_stdio: `npx -y ${_packageName()} mcp-server`,
156
+ tools: entries,
157
+ };
158
+ }
159
+
160
+ /** Deterministic JSON: 2-space indent, trailing newline. Key order = insertion order above. */
161
+ export function _serialize(catalog: Record<string, unknown>): string {
162
+ return JSON.stringify(catalog, null, 2) + '\n';
163
+ }
164
+
165
+ /** Freshly-computed catalog file content — the single function both --write and --strict trust. */
166
+ export function _computeFreshContent(): string {
167
+ return _serialize(_buildCatalog());
168
+ }
169
+
170
+ function _relativeToRoot(p: string): string {
171
+ return path.relative(_config.ROOT, p).split(path.sep).join('/');
172
+ }
173
+
174
+ interface ParsedArgs {
175
+ write: boolean;
176
+ strict: boolean;
177
+ quiet: boolean;
178
+ }
179
+
180
+ function _argError(msg: string): never {
181
+ process.stderr.write(`usage: ${_PROG} [-h] [--write] [--strict] [--quiet]\n`);
182
+ process.stderr.write(`${_PROG}: error: ${msg}\n`);
183
+ process.exit(2);
184
+ }
185
+
186
+ export function parse_args(argv: readonly string[]): ParsedArgs {
187
+ const out: ParsedArgs = { write: false, strict: false, quiet: false };
188
+ for (const a of argv) {
189
+ if (a === '-h' || a === '--help') {
190
+ process.stdout.write(`usage: ${_PROG} [-h] [--write] [--strict] [--quiet]\n`);
191
+ process.exit(0);
192
+ } else if (a === '--write') {
193
+ out.write = true;
194
+ } else if (a === '--strict') {
195
+ out.strict = true;
196
+ } else if (a === '--quiet') {
197
+ out.quiet = true;
198
+ } else {
199
+ _argError(`unrecognized arguments: ${a}`);
200
+ }
201
+ }
202
+ return out;
203
+ }
204
+
205
+ export function main(argv: readonly string[] | null = null): number {
206
+ const args = parse_args(argv ?? process.argv.slice(2));
207
+
208
+ let fresh: string;
209
+ try {
210
+ fresh = _computeFreshContent();
211
+ } catch (exc) {
212
+ process.stderr.write(`${_PROG}: ${(exc as Error).message}\n`);
213
+ return 1;
214
+ }
215
+
216
+ if (args.write) {
217
+ fs.mkdirSync(path.dirname(_config.CATALOG_PATH), { recursive: true });
218
+ fs.writeFileSync(_config.CATALOG_PATH, fresh, 'utf-8');
219
+ if (!args.quiet) {
220
+ const toolCount = (JSON.parse(fresh) as { tools: unknown[] }).tools.length;
221
+ process.stdout.write(
222
+ `wrote ${_relativeToRoot(_config.CATALOG_PATH)} (${toolCount} tool(s))\n`,
223
+ );
224
+ }
225
+ return 0;
226
+ }
227
+
228
+ if (args.strict) {
229
+ let onDisk: string | null;
230
+ try {
231
+ onDisk = fs.readFileSync(_config.CATALOG_PATH, 'utf-8');
232
+ } catch {
233
+ onDisk = null;
234
+ }
235
+ if (onDisk !== fresh) {
236
+ process.stderr.write(
237
+ `❌ ${_relativeToRoot(_config.CATALOG_PATH)} has drifted from the tool registry ` +
238
+ '(ALLOWLIST in mcp_server/tools.ts + STUB_TOOLS in ' +
239
+ 'mcp_server/tool_catalog_source.ts).\n',
240
+ );
241
+ process.stderr.write(` Run: ./scripts-run src/scripts/${_PROG} --write\n`);
242
+ return 1;
243
+ }
244
+ if (!args.quiet) {
245
+ process.stdout.write(`${_relativeToRoot(_config.CATALOG_PATH)} is in sync with the tool registry\n`);
246
+ }
247
+ return 0;
248
+ }
249
+
250
+ // Bare invocation: print the freshly-built JSON to stdout (dry compute,
251
+ // no write) — mirrors build_discovery_manifest.ts's non-write default.
252
+ process.stdout.write(fresh);
253
+ return 0;
254
+ }
255
+
256
+ function _isCliEntry(): boolean {
257
+ if (process.argv[1] === undefined) {
258
+ return false;
259
+ }
260
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
261
+ if (import.meta.url === argvUrl) {
262
+ return true;
263
+ }
264
+ try {
265
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
266
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
267
+ return here === argv;
268
+ } catch {
269
+ return false;
270
+ }
271
+ }
272
+
273
+ if (_isCliEntry() || process.argv[1] === _HERE) {
274
+ process.exit(main());
275
+ }
@@ -45,6 +45,7 @@ interface PathConfig {
45
45
  OUT_MANIFEST: string;
46
46
  OUT_ROW_MD: string;
47
47
  OUT_CF_JSON: string;
48
+ OUT_SERVER_JSON: string;
48
49
  }
49
50
 
50
51
  function _deriveConfig(root: string): PathConfig {
@@ -58,6 +59,7 @@ function _deriveConfig(root: string): PathConfig {
58
59
  OUT_MANIFEST: path.join(outDir, 'registry-manifest.json'),
59
60
  OUT_ROW_MD: path.join(outDir, 'awesome-mcp-servers.row.md'),
60
61
  OUT_CF_JSON: path.join(outDir, 'mcp-cloudflare-catalogue.json'),
62
+ OUT_SERVER_JSON: path.join(outDir, 'server.json'),
61
63
  };
62
64
  }
63
65
 
@@ -86,6 +88,17 @@ const REGISTRIES_SEED: ReadonlyArray<JsonObject> = [
86
88
  submission_url: 'https://github.com/cloudflare/mcp-server-cloudflare',
87
89
  rendered_payload: 'dist/mcp/mcp-cloudflare-catalogue.json',
88
90
  },
91
+ // Official MCP Registry (schema-bump #3 per docs/distribution/
92
+ // mcp-submission-checklist.md § Submitting to a new registry;
93
+ // road-to-credible-install Phase 3). Payload is the registry's
94
+ // server.json; submission itself runs via `mcp-publisher` (human-gated).
95
+ {
96
+ id: 'mcp-official-registry',
97
+ label: 'Official MCP Registry (registry.modelcontextprotocol.io)',
98
+ listing_format: 'server-json',
99
+ submission_url: 'https://registry.modelcontextprotocol.io',
100
+ rendered_payload: 'dist/mcp/server.json',
101
+ },
89
102
  ];
90
103
 
91
104
  /** Raised to mirror `sys.exit("ERROR: …")` — message to stderr, exit 1. */
@@ -195,6 +208,37 @@ function _render_cf_json(m: JsonObject): string {
195
208
  return pyJsonDumps(payload, { indent: 2, sortKeys: true }) + '\n';
196
209
  }
197
210
 
211
+ /**
212
+ * Official MCP Registry server.json (registry.modelcontextprotocol.io).
213
+ * Minimal valid shape per the registry's server.schema.json: reverse-DNS
214
+ * name (matches package.json `mcpName` + the README `mcp-name:` marker),
215
+ * the npm package pointer, and the stdio transport. The version is asserted
216
+ * equal to package.json.version by lint_mcp_registry_manifest (CI).
217
+ */
218
+ function _render_server_json(m: JsonObject): string {
219
+ const pkg = m['package'] as JsonObject;
220
+ const version = pkg['version'] as string;
221
+ const payload: JsonObject = {
222
+ $schema: 'https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json',
223
+ name: 'io.github.event4u-app/agent-config',
224
+ description: pkg['description'],
225
+ repository: {
226
+ url: pkg['repository'],
227
+ source: 'github',
228
+ },
229
+ version,
230
+ packages: [
231
+ {
232
+ registryType: 'npm',
233
+ identifier: '@event4u/agent-config',
234
+ version,
235
+ transport: { type: 'stdio' },
236
+ },
237
+ ],
238
+ };
239
+ return pyJsonDumps(payload, { indent: 2, sortKeys: true }) + '\n';
240
+ }
241
+
198
242
  interface ParsedArgs {
199
243
  write: boolean;
200
244
  strict: boolean;
@@ -236,11 +280,13 @@ export function main(argv: readonly string[]): number {
236
280
  const manifest_text = pyJsonDumps(manifest, { indent: 2, sortKeys: true }) + '\n';
237
281
  const row_md = _render_row_md(manifest);
238
282
  const cf_json = _render_cf_json(manifest);
283
+ const server_json = _render_server_json(manifest);
239
284
 
240
285
  const outputs: Array<[string, string]> = [
241
286
  [_config.OUT_MANIFEST, manifest_text],
242
287
  [_config.OUT_ROW_MD, row_md],
243
288
  [_config.OUT_CF_JSON, cf_json],
289
+ [_config.OUT_SERVER_JSON, server_json],
244
290
  ];
245
291
  const changed = outputs.filter(
246
292
  ([p, t]) => !_isFile(p) || fs.readFileSync(p, 'utf-8') !== t,
@@ -24,6 +24,7 @@ import * as path from 'node:path';
24
24
  import { fileURLToPath, pathToFileURL } from 'node:url';
25
25
 
26
26
  import { REPO, LEDGER_REL, load_ledger, pointer_unresolved } from './check_claims.js';
27
+ import { collect as collectEnforcement, summarise as summariseEnforcement } from './check_enforcement_coverage.js';
27
28
  import { collectSkillGaps } from './check_skill_gaps.js';
28
29
  import { loadRows as loadComparisonRows } from './check_comparison.js';
29
30
  import { computeStatus as domainSoundnessStatus } from './domain_soundness_status.js';
@@ -386,6 +387,50 @@ function render(): string {
386
387
  }
387
388
  }
388
389
 
390
+ L.push('');
391
+ L.push('## 4b. The two existing axes — enforcement level per rule, evidence form per claim');
392
+ L.push('');
393
+ L.push('Pure projection of what the repo already knows — the `enforced_by`');
394
+ L.push('resolution (`check_enforcement_coverage`) and the claims ledger');
395
+ L.push(`(\`${LEDGER_REL}\`). No new taxonomy, zero hand-written rows.`);
396
+ L.push('');
397
+ {
398
+ const rows = collectEnforcement();
399
+ const s = summariseEnforcement(rows);
400
+ L.push(
401
+ `**Axis 1 — enforcement level per rule.** ${s.total} rules · ` +
402
+ `${s.blocking} blocking (${s.blocking_pct}%) · ${s.observer} observer · ` +
403
+ `${s.local_only} local-only · ${s.undeclared} undeclared (no \`enforced_by\` yet).`,
404
+ );
405
+ L.push('');
406
+ L.push('| Rule | Effective level | Declared backstop(s) |');
407
+ L.push('|---|---|---|');
408
+ const declared = rows
409
+ .filter((r) => r.declared.length > 0)
410
+ .sort((a, b) => a.id.localeCompare(b.id));
411
+ for (const r of declared) {
412
+ const decl = r.declared.map((d) => `\`${d}\``).join('<br>');
413
+ L.push(`| \`${r.id}\` | ${r.effective} | ${decl} |`);
414
+ }
415
+ L.push('');
416
+ L.push(`Undeclared rules (${s.undeclared}) carry no row — an honest gap beats a false claim.`);
417
+ }
418
+ L.push('');
419
+ {
420
+ const ledger = [...load_ledger().values()].sort((a, b) => a.id.localeCompare(b.id));
421
+ const backed = ledger.filter((e) => e.status === 'backed').length;
422
+ L.push(
423
+ `**Axis 2 — evidence form per public claim.** ${ledger.length} ledger entries · ` +
424
+ `${backed} backed · ${ledger.length - backed} unbacked inventory.`,
425
+ );
426
+ L.push('');
427
+ L.push('| Claim id | Kind | Status | Evidence pointer |');
428
+ L.push('|---|---|---|---|');
429
+ for (const e of ledger) {
430
+ const ev = e.evidence.length > 0 ? `\`${e.evidence.replace(/\|/g, '\\|')}\`` : '—';
431
+ L.push(`| \`${e.id}\` | ${e.kind} | ${e.status} | ${ev} |`);
432
+ }
433
+ }
389
434
  L.push('');
390
435
  L.push('## 5. Verify it yourself');
391
436
  L.push('');
@@ -46,6 +46,7 @@ import { fileURLToPath, pathToFileURL } from 'node:url';
46
46
  import { _entry_tokens_estimate } from './memory_lookup.js';
47
47
 
48
48
  import { load_agent_settings } from './_lib/agent_settings.js';
49
+ import { readHookStdin } from './hooks/hook_stdin.js';
49
50
 
50
51
  export const DEFAULT_FILE = 'agents/runtime/.agent-chat-history';
51
52
  export const DEFAULT_SETTINGS_FILE = '.agent-settings.yml';
@@ -2303,11 +2304,7 @@ function _cmd_rotate(argv: string[]): number {
2303
2304
  }
2304
2305
 
2305
2306
  function _readStdin(): string {
2306
- try {
2307
- return fs.readFileSync(0, 'utf-8');
2308
- } catch {
2309
- return '';
2310
- }
2307
+ return readHookStdin();
2311
2308
  }
2312
2309
 
2313
2310
  export function main(argv: string[] = process.argv.slice(2)): number {
@@ -2354,7 +2351,13 @@ export function main(argv: string[] = process.argv.slice(2)): number {
2354
2351
  }
2355
2352
  }
2356
2353
 
2354
+ // Bundle-safety: never auto-run when inlined into an esbuild bundle, where
2355
+ // every module shares the bundle's `import.meta.url` (see cmd_migrate.ts).
2356
+ declare const __AGENT_CONFIG_BUNDLE__: boolean | undefined;
2357
2357
  function _isCliEntry(): boolean {
2358
+ if (typeof __AGENT_CONFIG_BUNDLE__ !== 'undefined' && __AGENT_CONFIG_BUNDLE__) {
2359
+ return false;
2360
+ }
2358
2361
  if (process.argv[1] === undefined) {
2359
2362
  return false;
2360
2363
  }