@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
@@ -148,19 +148,19 @@ const CROSS_STACK_HINTS: Record<string, string[]> = {
148
148
  ruby: ['\\bRails\\b', '\\bbin/rails\\b', '\\bGemfile\\b', '\\bbundle exec\\b'],
149
149
  python: ['\\bDjango\\b', '\\bFastAPI\\b', '\\bFlask\\b', '\\bpoetry\\b',
150
150
  '\\buv (add|sync|run|pip)\\b', '\\bvenv\\b', '\\bPydantic\\b', '\\bJinja\\b',
151
- 'docs\\.python\\.org'],
151
+ 'docs\\.python\\.org', '\\bPython\\b'],
152
152
  node: ['\\bExpress\\b', '\\bNext\\.?js\\b', '\\bNode\\.?js\\b', '\\bnpx\\b',
153
153
  '\\bvitest\\b', '\\bjest\\b', '\\beslint\\b', '\\bprettier\\b',
154
154
  '\\bReact\\b', '\\bVue\\b', '\\bNestJS\\b', '\\bTypeScript\\b',
155
155
  '\\btsc\\b', '\\bzod\\b', '\\bPrisma\\b', '\\bTailwind\\b',
156
156
  '\\bTurborepo\\b', '\\bclass-validator\\b', '\\bInertia\\b',
157
157
  '\\bJSX\\b', '\\bNx\\b',
158
- '\\.tsx?\\b', 'typescriptlang\\.org'],
158
+ '\\.tsx?\\b', 'typescriptlang\\.org', '\\bTS\\b', '\\bJS\\b'],
159
159
  go: ['\\bgo (test|build|run|mod)\\b', '\\bgolangci-lint\\b', '\\bGoLand\\b',
160
160
  '\\bGolang\\b', '\\bgo\\.dev\\b'],
161
161
  rust: ['\\bcargo (test|build|run|check|fmt|clippy|add|update)\\b',
162
162
  '\\bClippy\\b', '\\brustfmt\\b', '\\bCargo\\.toml\\b',
163
- 'rust-lang\\.org'],
163
+ 'rust-lang\\.org', '\\bRust\\b'],
164
164
  dotnet: ['\\bdotnet (test|build|run|add|restore)\\b', '\\b\\.NET\\b'],
165
165
  java: ['\\bSpring\\b', '\\bmvn (test|clean|install|package)\\b',
166
166
  '\\bgradle\\b', '\\bMaven\\b'],
@@ -168,6 +168,20 @@ const CROSS_STACK_HINTS: Record<string, string[]> = {
168
168
  // are hit patterns; these are window-only hints so a JS/Python hit next
169
169
  // to plain-language PHP mentions self-suppresses as cross-stack docs.
170
170
  php: ['\\bvendor/', '\\bPHP\\b'],
171
+ // Bare LANGUAGE names (Python / Rust / TS / JS above) are the same class of
172
+ // window-only hint the `php` family already had, and their absence was an
173
+ // asymmetry, not a policy: a checklist row naming "PHP typed properties +
174
+ // declare(strict_types=1), TS strict, Python type hints, Go / Rust" — five
175
+ // ecosystems on ONE line, the rule's textbook "multi-stack peers" case —
176
+ // matched the PHP hit pattern and found no cross-stack hint, because only
177
+ // PHP had a plain-language entry. So the linter flagged the exact shape
178
+ // framework-neutrality documents as allowed.
179
+ //
180
+ // `\bGo\b` is deliberately NOT added. These hints SUPPRESS, so an
181
+ // over-broad one hides real leakage — and "go to" / "go ahead" would fire
182
+ // constantly in prose. Golang / `go test|build|run|mod` / go.dev stay the
183
+ // Go signals; a Go-only line with none of those is not self-evidently
184
+ // cross-stack anyway.
171
185
  // Polyglot-runner pseudo-family: a Taskfile/Makefile mention marks the
172
186
  // window as multi-stack tooling documentation (runner files are
173
187
  // ecosystem-neutral by definition).
@@ -116,6 +116,38 @@
116
116
  185
117
117
  ],
118
118
  "reason": "Multi-ecosystem capture-tools line and skip-marker grep spanning pytest/PHPUnit/JS in one pattern — documentation across stacks."
119
+ },
120
+ {
121
+ "file": "src/skills/test-driven-development/SKILL.md",
122
+ "lines": [
123
+ 228,
124
+ 231,
125
+ 239,
126
+ 243
127
+ ],
128
+ "reason": "Example A of a deliberate A/B pair: '### Example A — PHP / Pest' (L228) sits opposite '### Example B — TypeScript / Vitest' (L259). That is framework-neutrality's textbook 'multi-stack peers' shape, but the two headings are 31 lines apart and the cross-stack window is +/-10, so the heuristic cannot see the sibling. Allowlisted rather than widening the window for a single document — if a second per-stack A/B skill appears, build the section-aware window instead of adding a second entry here."
129
+ },
130
+ {
131
+ "file": "src/skills/image-editing/SKILL.md",
132
+ "lines": [
133
+ 48
134
+ ],
135
+ "reason": "npm install-location path of THIS package's own image-adapter scripts (node_modules/@event4u/agent-config/...) — the factual consumer path after the consumer-internal-ref decoupling (road-to-credible-install Phase 4), not a JS-stack mandate."
136
+ },
137
+ {
138
+ "file": "src/skills/image-generation/SKILL.md",
139
+ "lines": [
140
+ 45
141
+ ],
142
+ "reason": "npm install-location path of THIS package's own image-adapter scripts (node_modules/@event4u/agent-config/...) — the factual consumer path after the consumer-internal-ref decoupling (road-to-credible-install Phase 4), not a JS-stack mandate."
143
+ },
144
+ {
145
+ "file": "src/skills/prompt-engineering-image/SKILL.md",
146
+ "lines": [
147
+ 74,
148
+ 115
149
+ ],
150
+ "reason": "npm install-location path of THIS package's own image-adapter scripts (node_modules/@event4u/agent-config/...) — the factual consumer path after the consumer-internal-ref decoupling (road-to-credible-install Phase 4), not a JS-stack mandate."
119
151
  }
120
152
  ]
121
153
  }
@@ -0,0 +1,335 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * lint_governed_writes — flag direct filesystem writes to protected
4
+ * ledger/governance surfaces that bypass the sanctioned write path.
5
+ *
6
+ * Scans: src/scripts/**\/*.ts (excluding *.test.ts and the atomic-write
7
+ * primitive itself, _lib/fs_atomic.ts, which is the sanctioned layer this
8
+ * lint measures bypasses of).
9
+ *
10
+ * Protected surfaces (each carries its own write policy):
11
+ * - docs/CLAIMS.md (claims ledger) — `always-forbidden`: ANY direct
12
+ * fs write/append call referencing this path is a violation; the
13
+ * ledger is only ever mutated via `write_atomic` from
14
+ * `src/scripts/_lib/fs_atomic.ts` (which this lint does not scan, and
15
+ * whose call name — `write_atomic` — never matches the banned-call
16
+ * patterns below, so a compliant writer is naturally clean).
17
+ * - agents/memory/intake/ (append-only signal JSONL) — `append-only`:
18
+ * an APPEND call (appendFileSync / fs.promises.appendFile /
19
+ * createWriteStream with an `'a'` flag) is the sanctioned operation;
20
+ * only a REWRITE call is a violation.
21
+ * - agents/runtime/state/audit/ (append-only audit-log-v1 JSONL) —
22
+ * `append-only`, same split as above.
23
+ *
24
+ * Banned call shapes (rewrite family): fs.writeFileSync(),
25
+ * fs.promises.writeFile(), fs.createWriteStream() without an append flag —
26
+ * each also matched via a bare destructured import (writeFileSync(...)).
27
+ * Banned call shapes (append family, sanctioned on append-only surfaces,
28
+ * always a violation on always-forbidden surfaces): fs.appendFileSync(),
29
+ * fs.promises.appendFile(), fs.createWriteStream() with `{ flags: 'a' }`.
30
+ *
31
+ * A call only counts against a surface when the surface's path fragment
32
+ * appears as a string/template literal INSIDE that call's own argument
33
+ * list (matched by balanced-paren scanning, so multi-line call arguments
34
+ * are captured) — a path built up through an unrelated variable (no
35
+ * literal in the call's own arguments) is not flagged; that is a known,
36
+ * deliberate scope limit of a static, zero-runtime-cost lint.
37
+ *
38
+ * Inline-ignore: add a comment on the same or previous line:
39
+ * lint-governed-writes-disable-next-line [-- reason]
40
+ * lint-governed-writes-disable-line [-- reason]
41
+ * lint-governed-writes-disable-file [-- reason] (top of file)
42
+ *
43
+ * Exit codes: 0 = clean, 2 = findings present, 1 = internal error.
44
+ */
45
+ import fs from "node:fs";
46
+ import path from "node:path";
47
+ import { fileURLToPath, pathToFileURL } from "node:url";
48
+
49
+ const _HERE = path.dirname(fileURLToPath(import.meta.url));
50
+ export const REPO_ROOT = path.resolve(_HERE, "..", "..");
51
+ export const SCRIPTS_DIR = path.join(REPO_ROOT, "src", "scripts");
52
+
53
+ // ---------------------------------------------------------------------------
54
+ // Protected surfaces
55
+ // ---------------------------------------------------------------------------
56
+ type SurfacePolicy = "always-forbidden" | "append-only";
57
+
58
+ interface ProtectedSurface {
59
+ id: string;
60
+ fragment: string;
61
+ policy: SurfacePolicy;
62
+ }
63
+
64
+ // No canonical bench-report index file was found under src/scripts at
65
+ // authoring time (no writer builds a single "bench index" registry path) —
66
+ // see the lint's own docstring history / task report. If one is added
67
+ // later, append it here with the matching policy.
68
+ const PROTECTED_SURFACES: ProtectedSurface[] = [
69
+ { id: "claims-ledger", fragment: "docs/CLAIMS.md", policy: "always-forbidden" },
70
+ { id: "memory-intake", fragment: "agents/memory/intake/", policy: "append-only" },
71
+ { id: "audit-log", fragment: "agents/runtime/state/audit/", policy: "append-only" },
72
+ ];
73
+
74
+ // ---------------------------------------------------------------------------
75
+ // Banned call-shape patterns
76
+ // ---------------------------------------------------------------------------
77
+ type CallFamily = "rewrite" | "append" | "stream";
78
+
79
+ interface CallPattern {
80
+ name: string;
81
+ family: CallFamily;
82
+ source: string; // regex source, compiled fresh per exec loop (stateful lastIndex)
83
+ }
84
+
85
+ const CALL_PATTERNS: CallPattern[] = [
86
+ { name: "fs.writeFileSync", family: "rewrite", source: "\\b(?:fs\\.)?writeFileSync\\s*\\(" },
87
+ { name: "fs.promises.writeFile", family: "rewrite", source: "\\bfs\\.promises\\.writeFile\\s*\\(" },
88
+ { name: "fs.appendFileSync", family: "append", source: "\\b(?:fs\\.)?appendFileSync\\s*\\(" },
89
+ { name: "fs.promises.appendFile", family: "append", source: "\\bfs\\.promises\\.appendFile\\s*\\(" },
90
+ { name: "fs.createWriteStream", family: "stream", source: "\\b(?:fs\\.)?createWriteStream\\s*\\(" },
91
+ ];
92
+
93
+ const APPEND_FLAG_RE = /flags\s*:\s*['"]a['"]/;
94
+
95
+ interface Finding {
96
+ file: string;
97
+ line: number;
98
+ surface: string;
99
+ call: string;
100
+ policy: SurfacePolicy;
101
+ snippet: string;
102
+ }
103
+
104
+ // ---------------------------------------------------------------------------
105
+ // Balanced-paren call-argument extraction
106
+ // ---------------------------------------------------------------------------
107
+ /**
108
+ * Given the index of the opening `(` of a call, return the substring from
109
+ * that `(` through its matching `)` (inclusive) — the call's full argument
110
+ * list, spanning multiple lines when the call is formatted that way.
111
+ * String/template literals are tracked so a stray paren inside a quoted
112
+ * value never desyncs the depth count.
113
+ */
114
+ function extractCallArgsRegion(content: string, openParenIdx: number): string {
115
+ let depth = 0;
116
+ let inString: string | null = null;
117
+ let escaped = false;
118
+ for (let i = openParenIdx; i < content.length; i++) {
119
+ const ch = content[i] as string;
120
+ if (inString) {
121
+ if (escaped) {
122
+ escaped = false;
123
+ } else if (ch === "\\") {
124
+ escaped = true;
125
+ } else if (ch === inString) {
126
+ inString = null;
127
+ }
128
+ continue;
129
+ }
130
+ if (ch === '"' || ch === "'" || ch === "`") {
131
+ inString = ch;
132
+ continue;
133
+ }
134
+ if (ch === "(") {
135
+ depth++;
136
+ } else if (ch === ")") {
137
+ depth--;
138
+ if (depth === 0) {
139
+ return content.slice(openParenIdx, i + 1);
140
+ }
141
+ }
142
+ }
143
+ return content.slice(openParenIdx);
144
+ }
145
+
146
+ function lineOfIndex(content: string, idx: number): number {
147
+ let line = 1;
148
+ for (let i = 0; i < idx; i++) {
149
+ if (content[i] === "\n") line++;
150
+ }
151
+ return line;
152
+ }
153
+
154
+ // ---------------------------------------------------------------------------
155
+ // Inline-ignore parsing (mirrors lint_output_slop's convention)
156
+ // ---------------------------------------------------------------------------
157
+ type IgnoreScope = "file" | "line" | "next-line";
158
+ interface Ignore {
159
+ scope: IgnoreScope;
160
+ lineNum?: number;
161
+ }
162
+
163
+ function parseIgnores(lines: string[]): Ignore[] {
164
+ const ignores: Ignore[] = [];
165
+ for (let i = 0; i < lines.length; i++) {
166
+ const line = lines[i] ?? "";
167
+ if (/lint-governed-writes-disable-file/i.test(line)) {
168
+ ignores.push({ scope: "file" });
169
+ }
170
+ if (/lint-governed-writes-disable-line/i.test(line)) {
171
+ ignores.push({ scope: "line", lineNum: i + 1 });
172
+ }
173
+ if (/lint-governed-writes-disable-next-line/i.test(line)) {
174
+ ignores.push({ scope: "next-line", lineNum: i + 2 });
175
+ }
176
+ }
177
+ return ignores;
178
+ }
179
+
180
+ function isIgnored(ignores: Ignore[], lineNum: number): boolean {
181
+ for (const ig of ignores) {
182
+ if (ig.scope === "file") return true;
183
+ if (ig.scope === "line" && ig.lineNum === lineNum) return true;
184
+ if (ig.scope === "next-line" && ig.lineNum === lineNum) return true;
185
+ }
186
+ return false;
187
+ }
188
+
189
+ // ---------------------------------------------------------------------------
190
+ // Per-file scanning
191
+ // ---------------------------------------------------------------------------
192
+ export function scanContent(content: string, relFile: string): Finding[] {
193
+ const findings: Finding[] = [];
194
+ const lines = content.split("\n");
195
+ const ignores = parseIgnores(lines);
196
+
197
+ for (const pat of CALL_PATTERNS) {
198
+ const re = new RegExp(pat.source, "g");
199
+ let m: RegExpExecArray | null;
200
+ while ((m = re.exec(content)) !== null) {
201
+ const openParenIdx = m.index + m[0].length - 1;
202
+ const region = extractCallArgsRegion(content, openParenIdx);
203
+
204
+ let kind: "rewrite" | "append";
205
+ if (pat.family === "stream") {
206
+ kind = APPEND_FLAG_RE.test(region) ? "append" : "rewrite";
207
+ } else {
208
+ kind = pat.family;
209
+ }
210
+
211
+ const lineNum = lineOfIndex(content, m.index);
212
+ if (isIgnored(ignores, lineNum)) continue;
213
+
214
+ for (const surface of PROTECTED_SURFACES) {
215
+ if (!region.includes(surface.fragment)) continue;
216
+ const isViolation =
217
+ surface.policy === "always-forbidden" ||
218
+ (surface.policy === "append-only" && kind === "rewrite");
219
+ if (!isViolation) continue;
220
+
221
+ findings.push({
222
+ file: relFile,
223
+ line: lineNum,
224
+ surface: surface.id,
225
+ call: pat.name,
226
+ policy: surface.policy,
227
+ snippet: (lines[lineNum - 1] ?? "").trim().slice(0, 160),
228
+ });
229
+ }
230
+ }
231
+ }
232
+ return findings;
233
+ }
234
+
235
+ // ---------------------------------------------------------------------------
236
+ // File discovery
237
+ // ---------------------------------------------------------------------------
238
+ const EXCLUDED_RELATIVE_FILES = new Set<string>(["_lib/fs_atomic.ts"]);
239
+
240
+ function* walkTsFiles(dir: string, root: string): Generator<string> {
241
+ if (!fs.existsSync(dir)) return;
242
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
243
+ if (entry.name === "node_modules" || entry.name === "dist") continue;
244
+ const full = path.join(dir, entry.name);
245
+ if (entry.isDirectory()) {
246
+ yield* walkTsFiles(full, root);
247
+ continue;
248
+ }
249
+ if (!entry.name.endsWith(".ts")) continue;
250
+ if (entry.name.endsWith(".test.ts")) continue;
251
+ const rel = path.relative(root, full).split(path.sep).join("/");
252
+ if (EXCLUDED_RELATIVE_FILES.has(rel)) continue;
253
+ yield full;
254
+ }
255
+ }
256
+
257
+ /** Scan every eligible `.ts` file under `scriptsDir`. */
258
+ export function scanScriptsDir(scriptsDir: string): Finding[] {
259
+ const findings: Finding[] = [];
260
+ for (const file of walkTsFiles(scriptsDir, scriptsDir)) {
261
+ let content: string;
262
+ try {
263
+ content = fs.readFileSync(file, "utf-8");
264
+ } catch {
265
+ continue;
266
+ }
267
+ const rel = path.relative(scriptsDir, file).split(path.sep).join("/");
268
+ findings.push(...scanContent(content, rel));
269
+ }
270
+ return findings;
271
+ }
272
+
273
+ // ---------------------------------------------------------------------------
274
+ // Main
275
+ // ---------------------------------------------------------------------------
276
+ export function main(argv: readonly string[] = process.argv.slice(2)): number {
277
+ if (argv.includes("-h") || argv.includes("--help")) {
278
+ process.stdout.write(
279
+ "usage: lint_governed_writes [--json] [--quiet]\n" +
280
+ " Flags direct fs write/append calls to protected ledger/governance\n" +
281
+ " surfaces (docs/CLAIMS.md, agents/memory/intake/, agents/runtime/state/audit/)\n" +
282
+ " that bypass the sanctioned atomic-write layer or the append-only contract.\n" +
283
+ " Exit 2 on any finding, 0 clean.\n",
284
+ );
285
+ return 0;
286
+ }
287
+
288
+ const jsonMode = argv.includes("--json");
289
+ const quiet = argv.includes("--quiet");
290
+
291
+ const findings = scanScriptsDir(SCRIPTS_DIR);
292
+
293
+ if (jsonMode) {
294
+ process.stdout.write(JSON.stringify(findings, null, 2) + "\n");
295
+ return findings.length > 0 ? 2 : 0;
296
+ }
297
+
298
+ if (findings.length === 0) {
299
+ if (!quiet) {
300
+ process.stdout.write(
301
+ "✅ lint_governed_writes: clean — no direct writes to protected surfaces found.\n",
302
+ );
303
+ }
304
+ return 0;
305
+ }
306
+
307
+ for (const f of findings) {
308
+ process.stdout.write(
309
+ `❌ ${f.file}:${f.line} [${f.surface}/${f.policy}] ${f.call} — ${f.snippet}\n`,
310
+ );
311
+ }
312
+ process.stdout.write(
313
+ `\nlint_governed_writes: ${findings.length} finding(s). Route the write through ` +
314
+ "write_atomic (src/scripts/_lib/fs_atomic.ts) or the surface's sanctioned append " +
315
+ "call, or use lint-governed-writes-disable-next-line -- reason.\n",
316
+ );
317
+ return 2;
318
+ }
319
+
320
+ // Main-guard (realpath-compared, mirrors the repo convention — importing this
321
+ // module for its exports, e.g. from a test, never triggers a CLI run).
322
+ if (process.argv[1] !== undefined) {
323
+ try {
324
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
325
+ const argv1 = fs.realpathSync(path.resolve(process.argv[1]));
326
+ if (here === argv1) {
327
+ process.exit(main());
328
+ }
329
+ } catch {
330
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
331
+ if (import.meta.url === argvUrl) {
332
+ process.exit(main());
333
+ }
334
+ }
335
+ }
@@ -342,7 +342,13 @@ export function main(argv: readonly string[] | null = null): number {
342
342
  return sl.report(findings, { check_label: 'hidden-unicode' });
343
343
  }
344
344
 
345
+ // Bundle-safety: never auto-run when inlined into an esbuild bundle, where
346
+ // every module shares the bundle's `import.meta.url` (see cmd_migrate.ts).
347
+ declare const __AGENT_CONFIG_BUNDLE__: boolean | undefined;
345
348
  function _isCliEntry(): boolean {
349
+ if (typeof __AGENT_CONFIG_BUNDLE__ !== 'undefined' && __AGENT_CONFIG_BUNDLE__) {
350
+ return false;
351
+ }
346
352
  if (process.argv[1] === undefined) {
347
353
  return false;
348
354
  }
@@ -33,6 +33,8 @@ const SCHEMA = path.join(ROOT, 'docs', 'contracts', 'mcp-registry-manifest.schem
33
33
  const MANIFEST = path.join(ROOT, 'dist', 'mcp', 'registry-manifest.json');
34
34
  const ROW_MD = path.join(ROOT, 'dist', 'mcp', 'awesome-mcp-servers.row.md');
35
35
  const CF_JSON = path.join(ROOT, 'dist', 'mcp', 'mcp-cloudflare-catalogue.json');
36
+ const SERVER_JSON = path.join(ROOT, 'dist', 'mcp', 'server.json');
37
+ const PKG_FILE = path.join(ROOT, 'package.json');
36
38
 
37
39
  function _relToRoot(p: string): string {
38
40
  return path.relative(ROOT, p);
@@ -293,7 +295,7 @@ function main(argv: readonly string[]): number {
293
295
  throw e;
294
296
  }
295
297
 
296
- for (const p of [SCHEMA, MANIFEST, ROW_MD, CF_JSON]) {
298
+ for (const p of [SCHEMA, MANIFEST, ROW_MD, CF_JSON, SERVER_JSON]) {
297
299
  if (!fs.existsSync(p)) {
298
300
  return _fail(`missing: ${_relToRoot(p)}`);
299
301
  }
@@ -324,6 +326,29 @@ function main(argv: readonly string[]): number {
324
326
  return _fail(`mcp-cloudflare-catalogue.json: ${(e as Error).message}`);
325
327
  }
326
328
 
329
+ // Official-registry payload (road-to-credible-install Phase 3): valid
330
+ // JSON, reverse-DNS name matching package.json `mcpName`, and version
331
+ // equal to package.json.version (the CI version-equality gate).
332
+ let server_payload: JsonObject;
333
+ try {
334
+ server_payload = JSON.parse(fs.readFileSync(SERVER_JSON, 'utf-8')) as JsonObject;
335
+ } catch (e) {
336
+ return _fail(`server.json: ${(e as Error).message}`);
337
+ }
338
+ const pkg_for_gate = JSON.parse(fs.readFileSync(PKG_FILE, 'utf-8')) as JsonObject;
339
+ if (server_payload['version'] !== pkg_for_gate['version']) {
340
+ return _fail(
341
+ `server.json version (${String(server_payload['version'])}) != package.json version ` +
342
+ `(${String(pkg_for_gate['version'])}) — re-run build:mcp-manifest`,
343
+ );
344
+ }
345
+ if (server_payload['name'] !== pkg_for_gate['mcpName']) {
346
+ return _fail(
347
+ `server.json name (${String(server_payload['name'])}) != package.json mcpName ` +
348
+ `(${String(pkg_for_gate['mcpName'])})`,
349
+ );
350
+ }
351
+
327
352
  if (!args.quiet) {
328
353
  const registries = (manifest as JsonObject)['registries'];
329
354
  const count = Array.isArray(registries) ? registries.length : 0;
@@ -0,0 +1,186 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Personal-context tripwire over TRACKED memory files — invariant 3 of
4
+ * ADR-130 (`subject` axis, road-to-reachable-code-memory Phase 8).
5
+ *
6
+ * Hand-authored first-person / preference vocabulary (DE+EN) that indicates
7
+ * a `subject: user` record leaked into a tracked project artifact. On a hit
8
+ * it HALTS (exit 1) and NEVER rewrites — a human decides.
9
+ *
10
+ * ── Honest-null verdict (pre-registered in the roadmap, applied 2026-07-27):
11
+ * `--history` scanned the FULL git history of agents/memory/** at cut time —
12
+ * see the run record in agents/evidence/reports/spike-reachable-code-memory-s0.md.
13
+ * Per the pre-registration, ZERO fires across the full history means
14
+ * invariant 3 is UNFOUNDED: this script is retained as evidence + an
15
+ * on-demand tool, but it is deliberately NOT wired into CI; invariants 1–2
16
+ * (structural: lint_store_boundary + the memory_signal provenance gate)
17
+ * carry the boundary. A non-zero history result at cut time would have
18
+ * wired it as a vitest gate instead.
19
+ *
20
+ * Exit codes: 0 clean · 1 hits · 2 usage · 3 internal.
21
+ */
22
+ import { execFileSync } from 'node:child_process';
23
+ import fs from 'node:fs';
24
+ import path from 'node:path';
25
+ import { fileURLToPath, pathToFileURL } from 'node:url';
26
+
27
+ const _HERE = fileURLToPath(import.meta.url);
28
+ export const REPO_ROOT = path.resolve(path.dirname(_HERE), '..', '..');
29
+
30
+ /** Tracked memory surfaces the tripwire watches. */
31
+ export const TRACKED_GLOB_ROOT = 'agents/memory';
32
+
33
+ /**
34
+ * Hand-authored personal-context vocabulary, DE+EN. Deliberately narrow:
35
+ * first-person preference/identity statements — not every "I" (change-log
36
+ * prose like "I/O" or quoted user feedback in an incident record must not
37
+ * trip). Word-boundary anchored; case-insensitive.
38
+ */
39
+ export const TRIPWIRE_PATTERNS: readonly RegExp[] = [
40
+ // EN — first-person preference / identity
41
+ /\bI (?:prefer|like|dislike|hate|want|always use|never use)\b/i,
42
+ /\bmy (?:name|email|address|phone|password|birthday|salary)\b/i,
43
+ /\bcall me\b/i,
44
+ // DE — first-person preference / identity (Du-form package: user prose)
45
+ /\bich (?:bevorzuge|mag|hasse|will|möchte|nutze immer|nutze nie)\b/i,
46
+ /\bmein[e]? (?:name|e-?mail|adresse|telefonnummer|passwort|geburtstag|gehalt)\b/i,
47
+ /\bnenn mich\b/i,
48
+ ];
49
+
50
+ export interface Hit {
51
+ file: string;
52
+ line: number;
53
+ pattern: string;
54
+ /** commit sha for --history hits; 'worktree' otherwise. */
55
+ ref: string;
56
+ }
57
+
58
+ export function scanText(text: string, file: string, ref: string): Hit[] {
59
+ const hits: Hit[] = [];
60
+ const lines = text.split('\n');
61
+ for (let i = 0; i < lines.length; i++) {
62
+ for (const re of TRIPWIRE_PATTERNS) {
63
+ if (re.test(lines[i]!)) {
64
+ hits.push({ file, line: i + 1, pattern: re.source, ref });
65
+ break;
66
+ }
67
+ }
68
+ }
69
+ return hits;
70
+ }
71
+
72
+ function _git(root: string, args: string[]): string {
73
+ return execFileSync('git', args, { cwd: root, encoding: 'utf8', maxBuffer: 64 * 1024 * 1024 });
74
+ }
75
+
76
+ /** Scan the current worktree's tracked memory files. */
77
+ export function scanWorktree(root: string): Hit[] {
78
+ const out: Hit[] = [];
79
+ let files: string[];
80
+ try {
81
+ files = _git(root, ['ls-files', TRACKED_GLOB_ROOT]).split('\n').filter(Boolean);
82
+ } catch {
83
+ return out;
84
+ }
85
+ for (const f of files) {
86
+ const p = path.join(root, f);
87
+ if (!fs.existsSync(p)) continue;
88
+ out.push(...scanText(fs.readFileSync(p, 'utf8'), f, 'worktree'));
89
+ }
90
+ return out;
91
+ }
92
+
93
+ /** Scan EVERY historical version of every tracked memory file (all commits). */
94
+ export function scanHistory(root: string): { hits: Hit[]; commits: number; blobs: number } {
95
+ const shas = _git(root, ['log', '--all', '--pretty=%H', '--', TRACKED_GLOB_ROOT])
96
+ .split('\n')
97
+ .filter(Boolean);
98
+ const hits: Hit[] = [];
99
+ const seenBlobs = new Set<string>();
100
+ let blobs = 0;
101
+ for (const sha of shas) {
102
+ let listing: string;
103
+ try {
104
+ listing = _git(root, ['ls-tree', '-r', sha, '--', TRACKED_GLOB_ROOT]);
105
+ } catch {
106
+ continue;
107
+ }
108
+ for (const row of listing.split('\n').filter(Boolean)) {
109
+ // <mode> blob <hash>\t<path>
110
+ const m = /^\d+ blob ([0-9a-f]+)\t(.+)$/.exec(row);
111
+ if (!m) continue;
112
+ const [, blob, file] = m;
113
+ if (seenBlobs.has(blob!)) continue;
114
+ seenBlobs.add(blob!);
115
+ blobs++;
116
+ let content: string;
117
+ try {
118
+ content = _git(root, ['cat-file', 'blob', blob!]);
119
+ } catch {
120
+ continue;
121
+ }
122
+ hits.push(...scanText(content, file!, sha.slice(0, 10)));
123
+ }
124
+ }
125
+ return { hits, commits: shas.length, blobs };
126
+ }
127
+
128
+ export function main(argv: string[] = process.argv.slice(2)): number {
129
+ let root = REPO_ROOT;
130
+ let history = false;
131
+ for (let i = 0; i < argv.length; i++) {
132
+ const a = argv[i]!;
133
+ if (a === '--root') root = argv[++i] ?? root;
134
+ else if (a.startsWith('--root=')) root = a.slice('--root='.length);
135
+ else if (a === '--history') history = true;
136
+ else if (a === '-h' || a === '--help') {
137
+ process.stdout.write('usage: lint_memory_tripwire [--root ROOT] [--history]\n');
138
+ return 0;
139
+ } else {
140
+ process.stderr.write(`lint_memory_tripwire: unknown argument ${a}\n`);
141
+ return 2;
142
+ }
143
+ }
144
+ try {
145
+ if (history) {
146
+ const { hits, commits, blobs } = scanHistory(root);
147
+ process.stdout.write(
148
+ `scanned ${commits} commit(s), ${blobs} unique blob(s) under ${TRACKED_GLOB_ROOT}\n`,
149
+ );
150
+ if (hits.length === 0) {
151
+ process.stdout.write('✅ zero tripwire fires across the full history.\n');
152
+ return 0;
153
+ }
154
+ for (const h of hits) {
155
+ process.stdout.write(` 🔴 ${h.ref} ${h.file}:${h.line} (pattern: ${h.pattern})\n`);
156
+ }
157
+ process.stdout.write(`❌ ${hits.length} fire(s). HALT — never rewrite; a human decides.\n`);
158
+ return 1;
159
+ }
160
+ const hits = scanWorktree(root);
161
+ if (hits.length === 0) {
162
+ process.stdout.write('✅ tripwire clean on tracked memory files.\n');
163
+ return 0;
164
+ }
165
+ for (const h of hits) {
166
+ process.stdout.write(` 🔴 ${h.file}:${h.line} (pattern: ${h.pattern})\n`);
167
+ }
168
+ process.stdout.write(`❌ ${hits.length} fire(s). HALT — never rewrite; a human decides.\n`);
169
+ return 1;
170
+ } catch (exc) {
171
+ process.stderr.write(`lint_memory_tripwire: internal error: ${String(exc)}\n`);
172
+ return 3;
173
+ }
174
+ }
175
+
176
+ const _isMain = (() => {
177
+ if (process.argv[1] === undefined) return false;
178
+ try {
179
+ return pathToFileURL(fs.realpathSync(path.resolve(process.argv[1]))).href === import.meta.url;
180
+ } catch {
181
+ return pathToFileURL(path.resolve(process.argv[1])).href === import.meta.url;
182
+ }
183
+ })();
184
+ if (_isMain) {
185
+ process.exit(main());
186
+ }