@event4u/agent-config 9.7.0 → 9.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (901) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +314 -190
  3. package/CONTRIBUTING.md +23 -7
  4. package/MIGRATION.md +20 -0
  5. package/README.md +57 -11
  6. package/dist/agent-src/commands/agents/audit.md +1 -1
  7. package/dist/agent-src/commands/agents/optimize.md +2 -2
  8. package/dist/agent-src/commands/agents/user.md +1 -1
  9. package/dist/agent-src/commands/agents.md +1 -1
  10. package/dist/agent-src/commands/check-current-md.md +3 -3
  11. package/dist/agent-src/commands/commit/in-chunks.md +8 -0
  12. package/dist/agent-src/commands/commit.md +17 -0
  13. package/dist/agent-src/commands/fix/portability.md +2 -2
  14. package/dist/agent-src/commands/fix/pr-comments-loop.md +136 -0
  15. package/dist/agent-src/commands/fix/refs.md +2 -2
  16. package/dist/agent-src/commands/fix/route.md +4 -3
  17. package/dist/agent-src/commands/fix.md +9 -6
  18. package/dist/agent-src/commands/ghostwriter.md +1 -1
  19. package/dist/agent-src/commands/image.md +1 -1
  20. package/dist/agent-src/commands/optimize/augmentignore.md +1 -1
  21. package/dist/agent-src/commands/optimize/skills.md +2 -2
  22. package/dist/agent-src/commands/post-as.md +1 -1
  23. package/dist/agent-src/commands/pr/create.md +4 -0
  24. package/dist/agent-src/commands/research.md +1 -1
  25. package/dist/agent-src/commands/roadmap/ai-council.md +1 -1
  26. package/dist/agent-src/commands/security-audit-config.md +1 -1
  27. package/dist/agent-src/commands/team/delegate.md +4 -0
  28. package/dist/agent-src/commands/video.md +1 -1
  29. package/dist/agent-src/contexts/authority/kernel-rule-edits.md +1 -1
  30. package/dist/agent-src/contexts/contracts/emergency-triage-block.md +2 -2
  31. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +48 -2
  32. package/dist/agent-src/contexts/execution/orchestration-telemetry.md +10 -0
  33. package/dist/agent-src/contexts/execution/subagent-modes-detail.md +109 -8
  34. package/dist/agent-src/contexts/execution/subagent-response-contract.md +20 -0
  35. package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +53 -3
  36. package/dist/agent-src/contexts/override-system.md +75 -5
  37. package/dist/agent-src/rules/code-provenance.md +112 -0
  38. package/dist/agent-src/rules/context-hygiene.md +2 -0
  39. package/dist/agent-src/rules/doc-screenshot-hygiene.md +97 -0
  40. package/dist/agent-src/rules/domain-safety-pii.md +1 -0
  41. package/dist/agent-src/rules/external-code-graph-interop.md +13 -3
  42. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +2 -0
  43. package/dist/agent-src/rules/git-history-discipline.md +2 -0
  44. package/dist/agent-src/rules/history-discipline.md +80 -0
  45. package/dist/agent-src/rules/language-and-tone.md +2 -0
  46. package/dist/agent-src/rules/lethal-trifecta-guard.md +3 -0
  47. package/dist/agent-src/rules/media-governance-routing.md +2 -0
  48. package/dist/agent-src/rules/minimal-safe-diff.md +2 -0
  49. package/dist/agent-src/rules/no-roadmap-references.md +4 -1
  50. package/dist/agent-src/rules/non-destructive-by-default.md +20 -0
  51. package/dist/agent-src/rules/onboarding-gate.md +2 -0
  52. package/dist/agent-src/rules/output-discipline.md +2 -0
  53. package/dist/agent-src/rules/persona-governance.md +2 -0
  54. package/dist/agent-src/rules/php-coding.md +1 -0
  55. package/dist/agent-src/rules/preservation-guard.md +3 -0
  56. package/dist/agent-src/rules/reviewer-awareness.md +1 -0
  57. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +1 -0
  58. package/dist/agent-src/rules/roadmap-progress-sync.md +9 -0
  59. package/dist/agent-src/rules/scale-discipline.md +92 -0
  60. package/dist/agent-src/rules/secret-vcs-guard.md +106 -0
  61. package/dist/agent-src/rules/security-sensitive-stop.md +11 -1
  62. package/dist/agent-src/rules/session-canary.md +77 -0
  63. package/dist/agent-src/rules/skill-quality.md +2 -0
  64. package/dist/agent-src/rules/source-confidentiality.md +2 -0
  65. package/dist/agent-src/rules/source-of-truth.md +2 -0
  66. package/dist/agent-src/rules/telegraph-speak.md +2 -0
  67. package/dist/agent-src/rules/token-optimizer-maintenance.md +3 -1
  68. package/dist/agent-src/rules/tool-safety.md +4 -1
  69. package/dist/agent-src/rules/untrusted-input-defense.md +10 -0
  70. package/dist/agent-src/rules/verify-before-complete.md +2 -0
  71. package/dist/agent-src/skills/adr-create/SKILL.md +17 -1
  72. package/dist/agent-src/skills/agent-security-review/SKILL.md +1 -1
  73. package/dist/agent-src/skills/code-intelligence/SKILL.md +97 -0
  74. package/dist/agent-src/skills/condense-memory/SKILL.md +1 -1
  75. package/dist/agent-src/skills/corpus-grounding/SKILL.md +0 -3
  76. package/dist/agent-src/skills/description-assist/SKILL.md +1 -1
  77. package/dist/agent-src/skills/design-review/SKILL.md +5 -6
  78. package/dist/agent-src/skills/design-tokens/SKILL.md +0 -1
  79. package/dist/agent-src/skills/gated-reach/SKILL.md +185 -0
  80. package/dist/agent-src/skills/gated-reach/evals/triggers.json +72 -0
  81. package/dist/agent-src/skills/history-design/SKILL.md +101 -0
  82. package/dist/agent-src/skills/history-design/evals/triggers.json +17 -0
  83. package/dist/agent-src/skills/humanizer/SKILL.md +3 -3
  84. package/dist/agent-src/skills/image-analyser/SKILL.md +14 -12
  85. package/dist/agent-src/skills/image-editing/SKILL.md +2 -1
  86. package/dist/agent-src/skills/image-generation/SKILL.md +2 -1
  87. package/dist/agent-src/skills/image-provider-routing/SKILL.md +2 -2
  88. package/dist/agent-src/skills/launch-readiness/SKILL.md +1 -1
  89. package/dist/agent-src/skills/license-compliance-audit/SKILL.md +161 -0
  90. package/dist/agent-src/skills/license-compliance-audit/evals/triggers.json +52 -0
  91. package/dist/agent-src/skills/license-compliance-borrow-check/SKILL.md +145 -0
  92. package/dist/agent-src/skills/license-compliance-borrow-check/evals/triggers.json +52 -0
  93. package/dist/agent-src/skills/license-compliance-credits/SKILL.md +97 -0
  94. package/dist/agent-src/skills/license-compliance-credits/evals/triggers.json +52 -0
  95. package/dist/agent-src/skills/md-language-check/SKILL.md +1 -1
  96. package/dist/agent-src/skills/override-management/SKILL.md +1 -1
  97. package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +7 -7
  98. package/dist/agent-src/skills/project-analysis-core/SKILL.md +1 -1
  99. package/dist/agent-src/skills/prompt-engineering-image/SKILL.md +3 -2
  100. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +2 -2
  101. package/dist/agent-src/skills/readme-writing/SKILL.md +6 -1
  102. package/dist/agent-src/skills/recursive-verification/SKILL.md +6 -0
  103. package/dist/agent-src/skills/refine-ticket/SKILL.md +3 -3
  104. package/dist/agent-src/skills/roadmap-writing/SKILL.md +4 -0
  105. package/dist/agent-src/skills/rtk-output-filtering/SKILL.md +31 -12
  106. package/dist/agent-src/skills/rule-refactor/SKILL.md +3 -3
  107. package/dist/agent-src/skills/schema-review/SKILL.md +92 -0
  108. package/dist/agent-src/skills/schema-review/evals/triggers.json +17 -0
  109. package/dist/agent-src/skills/screenshot-hygiene/SKILL.md +171 -0
  110. package/dist/agent-src/skills/secrets-management/SKILL.md +43 -1
  111. package/dist/agent-src/skills/security-audit/SKILL.md +1 -1
  112. package/dist/agent-src/skills/security-maturity-assessment/SKILL.md +1 -1
  113. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +3 -3
  114. package/dist/agent-src/skills/skill-writing/SKILL.md +2 -2
  115. package/dist/agent-src/skills/source-discovery/SKILL.md +5 -5
  116. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +45 -85
  117. package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +5 -4
  118. package/dist/agent-src/skills/subagent-orchestration/prompts/adversarial-verification-council.md +29 -0
  119. package/dist/agent-src/skills/subagent-orchestration/prompts/do-and-judge-two-stage.md +29 -0
  120. package/dist/agent-src/skills/subagent-orchestration/prompts/do-and-judge.md +29 -0
  121. package/dist/agent-src/skills/subagent-orchestration/prompts/do-competitively.md +29 -0
  122. package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-parallel.md +29 -0
  123. package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-steps.md +29 -0
  124. package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-worktrees.md +29 -0
  125. package/dist/agent-src/skills/subagent-orchestration/prompts/judge-with-debate.md +29 -0
  126. package/dist/agent-src/skills/systematic-debugging/SKILL.md +2 -2
  127. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +2 -3
  128. package/dist/agent-src/skills/token-optimizer/SKILL.md +4 -4
  129. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +4 -0
  130. package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +2 -3
  131. package/dist/agent-src/templates/AGENTS.md +1 -1
  132. package/dist/agent-src/templates/agents/.gitattributes.fragment +25 -6
  133. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  134. package/dist/agent-src/templates/command.md +3 -3
  135. package/dist/agent-src/templates/github-workflows/secret-scan.yml +65 -0
  136. package/dist/agent-src/templates/persona.md +2 -2
  137. package/dist/agent-src/templates/rule.md +2 -2
  138. package/dist/agent-src/templates/scripts/telemetry/engagement.ts +77 -0
  139. package/dist/agent-src/templates/scripts/telemetry_record.ts +33 -1
  140. package/dist/cli/commands/doctorShell.js +20 -0
  141. package/dist/cli/commands/doctorShell.js.map +1 -1
  142. package/dist/cli/commands/rtkDetect.js +58 -0
  143. package/dist/cli/commands/rtkDetect.js.map +1 -0
  144. package/dist/cli/configRoot.js +112 -0
  145. package/dist/cli/configRoot.js.map +1 -0
  146. package/dist/cli/configRoot.test.js +97 -0
  147. package/dist/cli/configRoot.test.js.map +1 -0
  148. package/dist/cli/firstRunNotice.js +70 -0
  149. package/dist/cli/firstRunNotice.js.map +1 -0
  150. package/dist/cli/help.js +4 -1
  151. package/dist/cli/help.js.map +1 -1
  152. package/dist/cli/main.js +54 -5
  153. package/dist/cli/main.js.map +1 -1
  154. package/dist/cli/registry.js +8 -1
  155. package/dist/cli/registry.js.map +1 -1
  156. package/dist/discovery/deprecation-report.md +1 -1
  157. package/dist/discovery/discovery-manifest.json +502 -101
  158. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  159. package/dist/discovery/discovery-manifest.summary.md +6 -4
  160. package/dist/discovery/orphan-report.md +1 -1
  161. package/dist/discovery/packs.json +95 -8
  162. package/dist/discovery/trust-report.md +11 -11
  163. package/dist/discovery/workspaces.json +36 -7
  164. package/dist/hooks/dispatch.js +19475 -0
  165. package/dist/install/agentSwitchDetection.js +75 -0
  166. package/dist/install/agentSwitchDetection.js.map +1 -0
  167. package/dist/install/agentSwitchProfile.js +117 -0
  168. package/dist/install/agentSwitchProfile.js.map +1 -0
  169. package/dist/install/atomic.js +1 -1
  170. package/dist/install/detect.js +1 -1
  171. package/dist/install/install.mjs +791 -486
  172. package/dist/install/rtkDetection.js +213 -0
  173. package/dist/install/rtkDetection.js.map +1 -0
  174. package/dist/install/rule_scope.js +2 -1
  175. package/dist/install/rule_scope.js.map +1 -1
  176. package/dist/install/types.js +2 -2
  177. package/dist/install/wizard-plan.js +1 -1
  178. package/dist/install/wizardDismissals.js +58 -0
  179. package/dist/install/wizardDismissals.js.map +1 -0
  180. package/dist/mcp/awesome-mcp-servers.row.md +1 -1
  181. package/dist/mcp/mcp-cloudflare-catalogue.json +1 -1
  182. package/dist/mcp/registry-manifest.json +15 -4
  183. package/dist/mcp/server.json +20 -0
  184. package/dist/mcp/server.mjs +44292 -0
  185. package/dist/router.json +1 -1
  186. package/dist/scripts/condense.js +14 -7
  187. package/dist/scripts/condense.js.map +1 -1
  188. package/dist/server/app.js +12 -0
  189. package/dist/server/app.js.map +1 -1
  190. package/dist/server/io/sharedWriteCheck.js +101 -0
  191. package/dist/server/io/sharedWriteCheck.js.map +1 -0
  192. package/dist/server/routes/ping.js +32 -0
  193. package/dist/server/routes/ping.js.map +1 -1
  194. package/dist/server/routes/settings.js +21 -4
  195. package/dist/server/routes/settings.js.map +1 -1
  196. package/dist/server/routes/userMd.js +21 -4
  197. package/dist/server/routes/userMd.js.map +1 -1
  198. package/dist/server/routes/wizard.js +68 -25
  199. package/dist/server/routes/wizard.js.map +1 -1
  200. package/dist/server/schemas/settings.js +12 -2
  201. package/dist/server/schemas/settings.js.map +1 -1
  202. package/dist/server/serverInfo.js +6 -2
  203. package/dist/server/serverInfo.js.map +1 -1
  204. package/dist/server/token.js +11 -4
  205. package/dist/server/token.js.map +1 -1
  206. package/dist/server/writeRoot.js +15 -1
  207. package/dist/server/writeRoot.js.map +1 -1
  208. package/dist/shared/capabilities.js +33 -0
  209. package/dist/shared/capabilities.js.map +1 -0
  210. package/dist/shared/capabilities.test.js +39 -0
  211. package/dist/shared/capabilities.test.js.map +1 -0
  212. package/dist/ui/assets/index-BpSQt5vm.js +40 -0
  213. package/dist/ui/assets/index-BpSQt5vm.js.map +1 -0
  214. package/dist/ui/assets/index-jSfMW8_t.css +1 -0
  215. package/dist/ui/index.html +15 -6
  216. package/docs/MIGRATION.md +16 -0
  217. package/docs/guidelines/component-oriented-and-oop-development.md +4 -2
  218. package/package.json +22 -9
  219. package/src/agent-src/templates/AGENTS.md +1 -1
  220. package/src/agent-src/templates/scripts/telemetry/engagement.ts +77 -0
  221. package/src/agent-src/templates/scripts/telemetry_record.ts +33 -1
  222. package/src/config/agent-settings.template.yml +94 -13
  223. package/src/config/discovery/packs.yml +22 -0
  224. package/src/config/discovery/workspaces.yml +1 -1
  225. package/src/config/evaluator-budgets.json +47 -0
  226. package/src/config/hook-latency-budget.json +20 -0
  227. package/src/config/reach-channels.yml +217 -0
  228. package/src/config/reach-prescriptions-intake.yml +200 -0
  229. package/src/install/agentSwitchDetection.ts +90 -0
  230. package/src/install/agentSwitchProfile.ts +131 -0
  231. package/src/install/atomic.ts +1 -1
  232. package/src/install/detect.ts +1 -1
  233. package/src/install/rtkDetection.ts +274 -0
  234. package/src/install/rule_scope.ts +9 -2
  235. package/src/install/types.ts +2 -2
  236. package/src/install/wizard-plan.ts +1 -1
  237. package/src/install/wizardDismissals.ts +60 -0
  238. package/src/scripts/_cli/cmd_doctor.ts +62 -1
  239. package/src/scripts/_cli/cmd_memory_get.ts +197 -0
  240. package/src/scripts/_cli/cmd_refresh.ts +30 -0
  241. package/src/scripts/_dispatch.bash +96 -0
  242. package/src/scripts/_lib/auto_dispatch.corpus.test.ts +64 -1
  243. package/src/scripts/_lib/auto_dispatch.ts +76 -0
  244. package/src/scripts/_lib/detect_target_license.ts +714 -0
  245. package/src/scripts/_lib/exec_evidence.ts +251 -0
  246. package/src/scripts/_lib/fixtures/secret-detector/negatives.txt +15 -0
  247. package/src/scripts/_lib/fixtures/secret-detector/positives.txt +15 -0
  248. package/src/scripts/_lib/install_drift.ts +194 -0
  249. package/src/scripts/_lib/kernel_rules.ts +46 -0
  250. package/src/scripts/_lib/memory_fts_index.ts +390 -0
  251. package/src/scripts/_lib/orchestration_record.ts +91 -2
  252. package/src/scripts/_lib/persistence/adapter_raw_sql.ts +443 -0
  253. package/src/scripts/_lib/persistence/detect_audit_coverage.ts +423 -0
  254. package/src/scripts/_lib/persistence/detect_bounded_reads.ts +154 -0
  255. package/src/scripts/_lib/persistence/detect_index_parity.ts +576 -0
  256. package/src/scripts/_lib/persistence/detect_n1_eloquent.ts +226 -0
  257. package/src/scripts/_lib/persistence/detect_offload.ts +441 -0
  258. package/src/scripts/_lib/persistence/detect_prisma_growth.ts +74 -0
  259. package/src/scripts/_lib/persistence/offload_catalog.ts +73 -0
  260. package/src/scripts/_lib/persistence/types.ts +109 -0
  261. package/src/scripts/_lib/reddit_thread_parse.ts +598 -0
  262. package/src/scripts/_lib/risk_paths.ts +160 -0
  263. package/src/scripts/_lib/rtk_allowlist.ts +44 -0
  264. package/src/scripts/_lib/secret_detector.test.ts +108 -0
  265. package/src/scripts/_lib/secret_detector.ts +328 -0
  266. package/src/scripts/_lib/secret_detector_adversarial.test.ts +116 -0
  267. package/src/scripts/_lib/spawn_env.ts +7 -0
  268. package/src/scripts/_lib/sqlite_guard.ts +191 -0
  269. package/src/scripts/_lib/subagent_spawn.ts +53 -0
  270. package/src/scripts/_lib/tool_probe.ts +359 -0
  271. package/src/scripts/_lib/worker_budget.ts +107 -0
  272. package/src/scripts/adr/regenerate_index.ts +81 -6
  273. package/src/scripts/ai_council/blind_review.ts +0 -0
  274. package/src/scripts/ai_council/config.ts +12 -6
  275. package/src/scripts/ai_council/orchestrator.ts +73 -3
  276. package/src/scripts/ai_team/review_gate.ts +8 -10
  277. package/src/scripts/ai_team/team_dispatch.ts +48 -0
  278. package/src/scripts/audit_adr_coverage.ts +33 -0
  279. package/src/scripts/audit_initial_context.ts +1 -1
  280. package/src/scripts/bench_cross_source_eval.ts +400 -0
  281. package/src/scripts/bench_honesty_score.ts +1093 -0
  282. package/src/scripts/bench_hook_latency.ts +218 -0
  283. package/src/scripts/build_mcp_catalog.ts +275 -0
  284. package/src/scripts/build_mcp_registry_manifest.ts +46 -0
  285. package/src/scripts/build_proof.ts +207 -0
  286. package/src/scripts/chat_history.ts +8 -5
  287. package/src/scripts/check_adr_frontmatter.ts +195 -0
  288. package/src/scripts/check_artefact_count_messaging.ts +4 -0
  289. package/src/scripts/check_backstop_debt.ts +210 -0
  290. package/src/scripts/check_bundle_path_leakage.ts +343 -0
  291. package/src/scripts/check_claims.ts +188 -8
  292. package/src/scripts/check_comparison.ts +12 -0
  293. package/src/scripts/check_enforcement_coverage.ts +592 -0
  294. package/src/scripts/check_evaluator_budgets.ts +99 -0
  295. package/src/scripts/check_kernel_rule_bundle.ts +16 -12
  296. package/src/scripts/check_knowledge_sharing.ts +12 -1
  297. package/src/scripts/check_no_external_sources.ts +2 -2
  298. package/src/scripts/check_reach_channels.ts +407 -0
  299. package/src/scripts/check_reach_staleness.ts +364 -0
  300. package/src/scripts/check_secret_leak.test.ts +47 -0
  301. package/src/scripts/check_secret_leak.ts +290 -0
  302. package/src/scripts/check_source_pointer_freshness.ts +28 -3
  303. package/src/scripts/code_graph/build.ts +0 -0
  304. package/src/scripts/code_graph/cli.ts +379 -0
  305. package/src/scripts/code_graph/detect.ts +186 -0
  306. package/src/scripts/code_graph/extract.ts +386 -0
  307. package/src/scripts/code_graph/intent.ts +45 -0
  308. package/src/scripts/code_graph/loader.ts +123 -0
  309. package/src/scripts/code_graph/query.ts +290 -0
  310. package/src/scripts/code_graph/sanitize.ts +30 -0
  311. package/src/scripts/code_graph/sqlite_store.ts +174 -0
  312. package/src/scripts/code_graph/types.ts +83 -0
  313. package/src/scripts/code_graph/validate.ts +63 -0
  314. package/src/scripts/condense.ts +14 -6
  315. package/src/scripts/context_hygiene_hook.ts +8 -5
  316. package/src/scripts/council_cli.ts +126 -12
  317. package/src/scripts/detect_target_license.ts +203 -0
  318. package/src/scripts/evaluator_umbrella.sh +145 -0
  319. package/src/scripts/external_sources_denylist.json +8 -4
  320. package/src/scripts/first_run_gate_hook.ts +9 -5
  321. package/src/scripts/generate_subagent_floor.ts +194 -0
  322. package/src/scripts/hermetic-install.sh +3 -3
  323. package/src/scripts/hook_manifest.yaml +65 -16
  324. package/src/scripts/hooks/block_kernel_rule_writes.ts +212 -0
  325. package/src/scripts/hooks/block_no_verify.ts +9 -9
  326. package/src/scripts/hooks/code_graph_nudge_hook.ts +191 -0
  327. package/src/scripts/hooks/concern_registry.ts +75 -0
  328. package/src/scripts/hooks/design_slop_hook.ts +8 -5
  329. package/src/scripts/hooks/dispatch_entry.ts +37 -0
  330. package/src/scripts/hooks/dispatch_hook.ts +176 -3
  331. package/src/scripts/hooks/hook_stdin.ts +42 -0
  332. package/src/scripts/hooks/rtk_wrap_hook.ts +26 -12
  333. package/src/scripts/hot_context_hook.ts +7 -6
  334. package/src/scripts/injection_scan_hook.ts +9 -1
  335. package/src/scripts/install +6 -6
  336. package/src/scripts/install-hooks.sh +4 -4
  337. package/src/scripts/install.sh +5 -4
  338. package/src/scripts/install.ts +264 -23
  339. package/src/scripts/iron_law_sha.ts +3 -12
  340. package/src/scripts/learning_sidecar.ts +0 -0
  341. package/src/scripts/lint_budget_ownership.ts +89 -0
  342. package/src/scripts/lint_command_routing.ts +35 -5
  343. package/src/scripts/lint_command_verbs.ts +42 -9
  344. package/src/scripts/lint_consumer_internal_refs.ts +211 -0
  345. package/src/scripts/lint_discovery_vocabulary.ts +2 -0
  346. package/src/scripts/lint_documented_commands.ts +670 -0
  347. package/src/scripts/lint_framework_leakage.ts +17 -3
  348. package/src/scripts/lint_framework_leakage_allowlist.json +32 -0
  349. package/src/scripts/lint_governed_writes.ts +335 -0
  350. package/src/scripts/lint_hidden_unicode.ts +6 -0
  351. package/src/scripts/lint_mcp_registry_manifest.ts +26 -1
  352. package/src/scripts/lint_memory_tripwire.ts +186 -0
  353. package/src/scripts/lint_override_kernel_guard.ts +267 -0
  354. package/src/scripts/lint_persistence.ts +171 -0
  355. package/src/scripts/lint_pre_migration_refs.ts +106 -0
  356. package/src/scripts/lint_provenance.ts +547 -0
  357. package/src/scripts/lint_provenance_vocabulary.ts +437 -0
  358. package/src/scripts/lint_spawn_payload.ts +283 -0
  359. package/src/scripts/lint_store_boundary.ts +152 -0
  360. package/src/scripts/lint_versioned_cache.ts +7 -1
  361. package/src/scripts/mcp_server/__main__.ts +7 -2
  362. package/src/scripts/mcp_server/catalog.ts +23 -1
  363. package/src/scripts/mcp_server/consumer_tool_catalog.json +563 -193
  364. package/src/scripts/mcp_server/prompts.ts +6 -0
  365. package/src/scripts/mcp_server/tool_catalog_source.ts +332 -0
  366. package/src/scripts/mcp_server/tools.ts +56 -5
  367. package/src/scripts/mcp_telemetry_query.ts +2 -33
  368. package/src/scripts/mcp_telemetry_store.ts +64 -34
  369. package/src/scripts/measure_rule_budget.ts +3 -12
  370. package/src/scripts/memory_learn_hook.ts +126 -0
  371. package/src/scripts/memory_lookup.ts +0 -0
  372. package/src/scripts/memory_replay_24.ts +312 -0
  373. package/src/scripts/memory_report.ts +16 -3
  374. package/src/scripts/memory_signal.ts +48 -0
  375. package/src/scripts/memory_status.ts +6 -0
  376. package/src/scripts/minimal_safe_diff_hook.ts +8 -5
  377. package/src/scripts/onboarding_gate_hook.ts +8 -5
  378. package/src/scripts/orchestration_record.ts +16 -0
  379. package/src/scripts/pr_url_reminder_hook.ts +8 -1
  380. package/src/scripts/prepack-check.mjs +17 -0
  381. package/src/scripts/prepack_lifecycle_check.d.mts +8 -0
  382. package/src/scripts/prepack_lifecycle_check.mjs +82 -0
  383. package/src/scripts/profile_staleness_hook.ts +8 -7
  384. package/src/scripts/reach_doctor.ts +1651 -0
  385. package/src/scripts/release.ts +24 -3
  386. package/src/scripts/report_install_drift.ts +109 -0
  387. package/src/scripts/risk_escalation_shadow.ts +160 -0
  388. package/src/scripts/roadmap_progress_hook.ts +8 -5
  389. package/src/scripts/schemas/agent-settings.schema.json +23 -0
  390. package/src/scripts/schemas/license-policy.schema.json +89 -0
  391. package/src/scripts/schemas/provenance-borrow.schema.json +46 -0
  392. package/src/scripts/schemas/reach-channels.schema.json +134 -0
  393. package/src/scripts/schemas/reach-doctor-payload.schema.json +220 -0
  394. package/src/scripts/schemas/rule.schema.json +20 -0
  395. package/src/scripts/self_review_gate.test.ts +173 -1
  396. package/src/scripts/self_review_gate.ts +155 -15
  397. package/src/scripts/session_canary_hook.ts +182 -0
  398. package/src/scripts/skill_linter.ts +55 -0
  399. package/src/scripts/smoke_quickstart.ts +2 -2
  400. package/src/scripts/surface_probe_hook.ts +8 -7
  401. package/src/scripts/sync_gitattributes.ts +310 -0
  402. package/src/scripts/team_review_gate_hook.ts +13 -16
  403. package/src/scripts/validate_reach_prescriptions.ts +751 -0
  404. package/src/scripts/verify_before_complete_hook.ts +8 -5
  405. package/src/scripts/wrapper_freshness_hook.ts +8 -7
  406. package/src/server/schemas/settings.ts +24 -2
  407. package/src/shared/capabilities.test.ts +43 -0
  408. package/src/shared/capabilities.ts +75 -0
  409. package/src/templates/minimal/agents-overrides-readme.md +20 -0
  410. package/dist/ui/assets/index-BPFMZWUs.css +0 -1
  411. package/dist/ui/assets/index-BiEZiZ31.js +0 -40
  412. package/dist/ui/assets/index-BiEZiZ31.js.map +0 -1
  413. package/docs/CLAIMS.md +0 -261
  414. package/docs/DISTRIBUTION_CHECKLIST.md +0 -170
  415. package/docs/RELEASE_STORY_TEMPLATE.md +0 -37
  416. package/docs/SKILL_CENSUS.md +0 -352
  417. package/docs/adrs/cost/0001-hard-stop-hook.md +0 -114
  418. package/docs/adrs/cost/README.md +0 -9
  419. package/docs/adrs/memory/0001-consumer-side-snapshot.md +0 -119
  420. package/docs/adrs/memory/README.md +0 -10
  421. package/docs/adrs/router/0001-three-tier-routing.md +0 -119
  422. package/docs/adrs/router/README.md +0 -9
  423. package/docs/adrs/schema/0001-json-schema-frontmatter.md +0 -102
  424. package/docs/adrs/schema/README.md +0 -9
  425. package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +0 -99
  426. package/docs/adrs/smoke/README.md +0 -9
  427. package/docs/adrs/telegraph/0001-default-off-until-bench.md +0 -93
  428. package/docs/adrs/telegraph/README.md +0 -9
  429. package/docs/announcements/2026-05-non-dev-launch.md +0 -79
  430. package/docs/announcements/2026-07-honest-cost-sweep-launch.md +0 -84
  431. package/docs/anti-reskin-gate.md +0 -60
  432. package/docs/architecture/augment-projection.md +0 -70
  433. package/docs/architecture/claude-bundle.md +0 -77
  434. package/docs/architecture/current-onboard-baseline.md +0 -126
  435. package/docs/architecture/current-safety-behavior.md +0 -137
  436. package/docs/architecture/multi-tool-projection.md +0 -125
  437. package/docs/architecture/setup-vs-settings-shared-surface.md +0 -114
  438. package/docs/architecture/source-projection.md +0 -85
  439. package/docs/architecture.md +0 -390
  440. package/docs/archive/CHANGELOG-6.0.0-overview.md +0 -953
  441. package/docs/archive/CHANGELOG-7.0.0.md +0 -419
  442. package/docs/archive/CHANGELOG-pre-2.11.0.md +0 -141
  443. package/docs/archive/CHANGELOG-pre-2.15.0.md +0 -244
  444. package/docs/archive/CHANGELOG-pre-2.16.0.md +0 -48
  445. package/docs/archive/CHANGELOG-pre-2.17.0.md +0 -63
  446. package/docs/archive/CHANGELOG-pre-2.2.0.md +0 -2138
  447. package/docs/archive/CHANGELOG-pre-2.20.0.md +0 -159
  448. package/docs/archive/CHANGELOG-pre-2.25.0.md +0 -191
  449. package/docs/archive/CHANGELOG-pre-2.7.0.md +0 -185
  450. package/docs/archive/CHANGELOG-pre-3.0.0.md +0 -130
  451. package/docs/archive/CHANGELOG-pre-3.1.0.md +0 -167
  452. package/docs/archive/CHANGELOG-pre-3.2.0.md +0 -268
  453. package/docs/archive/CHANGELOG-pre-4.0.0.md +0 -80
  454. package/docs/archive/CHANGELOG-pre-4.5.0.md +0 -289
  455. package/docs/archive/CHANGELOG-pre-5.4.0.md +0 -260
  456. package/docs/archive/CHANGELOG-pre-5.9.0.md +0 -270
  457. package/docs/archive/CHANGELOG-pre-6.0.0.md +0 -473
  458. package/docs/archive/CHANGELOG-pre-7.0.0.md +0 -126
  459. package/docs/archive/CHANGELOG-pre-8.0.0.md +0 -301
  460. package/docs/archive/CHANGELOG-pre-8.1.0.md +0 -316
  461. package/docs/archive/CHANGELOG-pre-8.12.0.md +0 -304
  462. package/docs/archive/CHANGELOG-pre-8.9.0.md +0 -306
  463. package/docs/archive/CHANGELOG-pre-9.2.0.md +0 -276
  464. package/docs/artefact-census.md +0 -71
  465. package/docs/benchmark.md +0 -648
  466. package/docs/benchmark.pinned.yml +0 -31
  467. package/docs/benchmarks.md +0 -85
  468. package/docs/capability-matrix.md +0 -33
  469. package/docs/case-studies/_template.md +0 -60
  470. package/docs/case-studies/frontend-design-positioning.md +0 -86
  471. package/docs/catalog.md +0 -721
  472. package/docs/command-flows.md +0 -272
  473. package/docs/command-naming-audit.md +0 -60
  474. package/docs/comparison.yaml +0 -45
  475. package/docs/contracts/CHANGELOG-conventions.md +0 -149
  476. package/docs/contracts/STABILITY.md +0 -188
  477. package/docs/contracts/adoption-signal-floor.md +0 -127
  478. package/docs/contracts/adr-architectural-consensus-mechanism.md +0 -68
  479. package/docs/contracts/adr-chat-history-split.md +0 -140
  480. package/docs/contracts/adr-command-suggestion.md +0 -144
  481. package/docs/contracts/adr-forecast-construction-shape.md +0 -90
  482. package/docs/contracts/adr-gtm-context-spine.md +0 -116
  483. package/docs/contracts/adr-implement-ticket-runtime.md +0 -121
  484. package/docs/contracts/adr-install-user-type-axis.md +0 -107
  485. package/docs/contracts/adr-layout.md +0 -107
  486. package/docs/contracts/adr-level-6-productization.md +0 -145
  487. package/docs/contracts/adr-mcp-runtime.md +0 -128
  488. package/docs/contracts/adr-product-ui-track.md +0 -381
  489. package/docs/contracts/adr-prompt-driven-execution.md +0 -186
  490. package/docs/contracts/adr-settings-sync-engine.md +0 -128
  491. package/docs/contracts/adr-user-types-axis.md +0 -127
  492. package/docs/contracts/adr-wing4-context-spine.md +0 -126
  493. package/docs/contracts/agent-user-schema.md +0 -170
  494. package/docs/contracts/agents-layout.md +0 -148
  495. package/docs/contracts/agents-md-tech-stack.md +0 -75
  496. package/docs/contracts/ai-council-config.md +0 -829
  497. package/docs/contracts/ai-team-config.md +0 -224
  498. package/docs/contracts/analysis-memory-loop.md +0 -149
  499. package/docs/contracts/at-rest-encryption.md +0 -191
  500. package/docs/contracts/audit-log-v1.md +0 -150
  501. package/docs/contracts/auto-orchestration-v1.md +0 -70
  502. package/docs/contracts/benchmark-ab-contract.md +0 -106
  503. package/docs/contracts/benchmark-corpus-spec.md +0 -125
  504. package/docs/contracts/benchmark-report-schema.md +0 -113
  505. package/docs/contracts/branch-protection-policy.md +0 -139
  506. package/docs/contracts/brand-token-consumption.md +0 -74
  507. package/docs/contracts/capability-boundary.md +0 -69
  508. package/docs/contracts/capability-packs.md +0 -217
  509. package/docs/contracts/ci-cost-budget.md +0 -111
  510. package/docs/contracts/ci-green-floor.md +0 -141
  511. package/docs/contracts/command-category-governance.md +0 -84
  512. package/docs/contracts/command-clusters.md +0 -399
  513. package/docs/contracts/command-surface-tiers.md +0 -176
  514. package/docs/contracts/command-taxonomy.md +0 -137
  515. package/docs/contracts/condensation-default-kill-criterion.md +0 -116
  516. package/docs/contracts/config-presets.md +0 -144
  517. package/docs/contracts/conformance.md +0 -84
  518. package/docs/contracts/consumer-bridge.md +0 -73
  519. package/docs/contracts/context-paths.md +0 -101
  520. package/docs/contracts/context-spine.md +0 -179
  521. package/docs/contracts/cost-dashboard.md +0 -143
  522. package/docs/contracts/cost-enforcement.md +0 -134
  523. package/docs/contracts/cost-profile-defaults.md +0 -110
  524. package/docs/contracts/cost-summary-schema.md +0 -107
  525. package/docs/contracts/creative-pack-boundary.md +0 -63
  526. package/docs/contracts/cross-repo-retrieval.md +0 -64
  527. package/docs/contracts/cross-wing-handoff.md +0 -134
  528. package/docs/contracts/daily-workspace.md +0 -147
  529. package/docs/contracts/decision-engine-gates.md +0 -120
  530. package/docs/contracts/decision-trace-v1.md +0 -177
  531. package/docs/contracts/design-artifact-lifecycle.md +0 -93
  532. package/docs/contracts/design-artifact-verification.md +0 -153
  533. package/docs/contracts/discovery-manifest.md +0 -209
  534. package/docs/contracts/discovery-manifest.schema.json +0 -254
  535. package/docs/contracts/evidence-based-pruning.md +0 -102
  536. package/docs/contracts/explain-modes.md +0 -187
  537. package/docs/contracts/explain-trace.schema.json +0 -144
  538. package/docs/contracts/file-ownership-matrix.json +0 -13941
  539. package/docs/contracts/file-ownership-matrix.md +0 -135
  540. package/docs/contracts/frontmatter-contract.md +0 -140
  541. package/docs/contracts/ghostwriter-schema.md +0 -337
  542. package/docs/contracts/governance-enforcement-projection.md +0 -159
  543. package/docs/contracts/gui-wizard.md +0 -350
  544. package/docs/contracts/harness-expectations.md +0 -128
  545. package/docs/contracts/hook-architecture-v1.md +0 -325
  546. package/docs/contracts/host-agent-protocol.md +0 -110
  547. package/docs/contracts/implement-ticket-flow.md +0 -625
  548. package/docs/contracts/init-telemetry.md +0 -132
  549. package/docs/contracts/injected-block-authenticity-model.md +0 -66
  550. package/docs/contracts/install-layout.md +0 -249
  551. package/docs/contracts/install-scopes.md +0 -82
  552. package/docs/contracts/installed-tools-lockfile.md +0 -144
  553. package/docs/contracts/installer-agent-mode.md +0 -137
  554. package/docs/contracts/iron-law-overrides.txt +0 -26
  555. package/docs/contracts/kernel-membership.md +0 -339
  556. package/docs/contracts/linear-ai-rules-inclusion.md +0 -143
  557. package/docs/contracts/linear-ai-three-layers.md +0 -130
  558. package/docs/contracts/linter-structural-model.md +0 -181
  559. package/docs/contracts/load-context-budget-model.md +0 -259
  560. package/docs/contracts/load-context-schema.md +0 -220
  561. package/docs/contracts/local-analytics.md +0 -160
  562. package/docs/contracts/local-knowledge-ingestion.md +0 -96
  563. package/docs/contracts/local-server-api.md +0 -134
  564. package/docs/contracts/low-impact-corpus-format.md +0 -95
  565. package/docs/contracts/mcp-beta-criteria.md +0 -130
  566. package/docs/contracts/mcp-cloud-scope.md +0 -355
  567. package/docs/contracts/mcp-discovery-phase-notice.md +0 -60
  568. package/docs/contracts/mcp-phase-1-scope.md +0 -272
  569. package/docs/contracts/mcp-registry-manifest.schema.json +0 -129
  570. package/docs/contracts/mcp-tool-inventory.md +0 -64
  571. package/docs/contracts/mcp-tool-stub-envelope.md +0 -78
  572. package/docs/contracts/measurement-baseline.md +0 -103
  573. package/docs/contracts/memory-visibility-v1.md +0 -160
  574. package/docs/contracts/mental-models.md +0 -336
  575. package/docs/contracts/migrate-command.md +0 -233
  576. package/docs/contracts/multi-tool-projection-fidelity.md +0 -134
  577. package/docs/contracts/namespace.md +0 -125
  578. package/docs/contracts/no-runtime-boundary.md +0 -61
  579. package/docs/contracts/one-off-script-lifecycle.md +0 -110
  580. package/docs/contracts/orchestration-dsl-v1.md +0 -153
  581. package/docs/contracts/package-self-orientation.md +0 -163
  582. package/docs/contracts/pilot/agent-authority.md +0 -24
  583. package/docs/contracts/pilot/direct-answers.md +0 -70
  584. package/docs/contracts/pilot/language-and-tone.md +0 -63
  585. package/docs/contracts/plain-language-surface.md +0 -117
  586. package/docs/contracts/prelaunch-diagnostics.md +0 -151
  587. package/docs/contracts/profile-system.md +0 -167
  588. package/docs/contracts/reasoning-discipline-protocol.md +0 -83
  589. package/docs/contracts/release-pr-gating.md +0 -151
  590. package/docs/contracts/release-sizing.md +0 -107
  591. package/docs/contracts/release-trunk-sync.md +0 -105
  592. package/docs/contracts/review-lens-schema.md +0 -64
  593. package/docs/contracts/roadmap-complexity-standard.md +0 -138
  594. package/docs/contracts/role-experience.md +0 -125
  595. package/docs/contracts/router-blending.md +0 -71
  596. package/docs/contracts/rule-classification.md +0 -171
  597. package/docs/contracts/rule-interactions.md +0 -132
  598. package/docs/contracts/rule-interactions.yml +0 -260
  599. package/docs/contracts/rule-priority-hierarchy.md +0 -88
  600. package/docs/contracts/rule-router.md +0 -287
  601. package/docs/contracts/safety-model.md +0 -129
  602. package/docs/contracts/session-profile-overlay.md +0 -157
  603. package/docs/contracts/settings-api.md +0 -264
  604. package/docs/contracts/settings-gui-agent-mode.schema.json +0 -128
  605. package/docs/contracts/settings-sync-yaml-subset.md +0 -139
  606. package/docs/contracts/skill-bundled-assets.md +0 -62
  607. package/docs/contracts/skill-discovery.md +0 -80
  608. package/docs/contracts/skill-distribution-channels.md +0 -66
  609. package/docs/contracts/skill-domains.md +0 -144
  610. package/docs/contracts/skill-dry-run.md +0 -47
  611. package/docs/contracts/skill-family-map.yml +0 -915
  612. package/docs/contracts/smoke-contracts.md +0 -144
  613. package/docs/contracts/subagent-boundary.md +0 -59
  614. package/docs/contracts/surface-agent-contracts.md +0 -153
  615. package/docs/contracts/surface-matrix.md +0 -108
  616. package/docs/contracts/surface-tiers.md +0 -81
  617. package/docs/contracts/telegraph-telemetry.md +0 -83
  618. package/docs/contracts/ticket-bundle-format.md +0 -233
  619. package/docs/contracts/tier-3-contrib-plugin.md +0 -137
  620. package/docs/contracts/trust-and-safety.md +0 -144
  621. package/docs/contracts/ui-stack-extension.md +0 -237
  622. package/docs/contracts/ui-track-flow.md +0 -329
  623. package/docs/contracts/universal-skills.md +0 -91
  624. package/docs/contracts/user-type-schema.md +0 -146
  625. package/docs/contracts/value-dashboard-spec.md +0 -378
  626. package/docs/contracts/value-report-schema.md +0 -168
  627. package/docs/contracts/workflow-packs.md +0 -121
  628. package/docs/contracts/workspace-boundary.md +0 -84
  629. package/docs/contracts/workspace-documents.md +0 -144
  630. package/docs/contracts/write-engine.md +0 -182
  631. package/docs/cookbook.md +0 -152
  632. package/docs/customization.md +0 -685
  633. package/docs/decisions/ADR-001-kernel-swap-deferred.md +0 -109
  634. package/docs/decisions/ADR-002-kernel-bucket-overrides.md +0 -135
  635. package/docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md +0 -137
  636. package/docs/decisions/ADR-004-rule-governance-pruning.md +0 -240
  637. package/docs/decisions/ADR-005-subagent-worktrees.md +0 -120
  638. package/docs/decisions/ADR-006-skill-tools-python-pilot.md +0 -114
  639. package/docs/decisions/ADR-007-agent-discovery-scopes.md +0 -371
  640. package/docs/decisions/ADR-008-installed-tools-manifest.md +0 -160
  641. package/docs/decisions/ADR-009-event4u-namespace.md +0 -188
  642. package/docs/decisions/ADR-010-profile-pack-preset-boundary.md +0 -168
  643. package/docs/decisions/ADR-011-domain-pack-readiness.md +0 -213
  644. package/docs/decisions/ADR-012-typescript-cli-shell.md +0 -162
  645. package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +0 -342
  646. package/docs/decisions/ADR-014-gui-framework-choice.md +0 -136
  647. package/docs/decisions/ADR-015-discovery-manifest-contract.md +0 -146
  648. package/docs/decisions/ADR-016-installer-architecture.md +0 -189
  649. package/docs/decisions/ADR-017-monorepo-physical-layout.md +0 -261
  650. package/docs/decisions/ADR-018-trust-and-safety-layer.md +0 -159
  651. package/docs/decisions/ADR-019-router-json-dist-location.md +0 -124
  652. package/docs/decisions/ADR-020-global-only-consumer-scope.md +0 -213
  653. package/docs/decisions/ADR-021-deployment-shape.md +0 -153
  654. package/docs/decisions/ADR-022-daily-workspace-decomposition.md +0 -140
  655. package/docs/decisions/ADR-023-host-agent-protocol.md +0 -129
  656. package/docs/decisions/ADR-024-workspace-v0-feature-floor.md +0 -126
  657. package/docs/decisions/ADR-025-workspace-chrome.md +0 -119
  658. package/docs/decisions/ADR-026-explain-mode-translation.md +0 -117
  659. package/docs/decisions/ADR-027-changelog-machine-vs-manual.md +0 -129
  660. package/docs/decisions/ADR-028-root-layout.md +0 -147
  661. package/docs/decisions/ADR-029-multi-workspace-deferred.md +0 -122
  662. package/docs/decisions/ADR-030-claude-code-command-projection.md +0 -147
  663. package/docs/decisions/ADR-031-validation-severity-tiers-and-projection-roundtrip.md +0 -97
  664. package/docs/decisions/ADR-032-linked-projects-scope.md +0 -122
  665. package/docs/decisions/ADR-033-distribution-identity-npm-primary.md +0 -81
  666. package/docs/decisions/ADR-034-per-skill-model-recommendation-transport.md +0 -63
  667. package/docs/decisions/ADR-035-model-capability-tiers.md +0 -104
  668. package/docs/decisions/ADR-036-global-install-browser-wizard-handoff.md +0 -106
  669. package/docs/decisions/ADR-037-cost-profile-untangle.md +0 -117
  670. package/docs/decisions/ADR-038-canonical-settings-path.md +0 -96
  671. package/docs/decisions/ADR-039-claude-skills-untracked.md +0 -139
  672. package/docs/decisions/ADR-040-execution-model-projection-time-filtering.md +0 -244
  673. package/docs/decisions/ADR-041-controlled-command-verbs.md +0 -133
  674. package/docs/decisions/ADR-042-runtime-resolver-decision-gate.md +0 -113
  675. package/docs/decisions/ADR-043-monorepo-collapse-to-src-domains.md +0 -128
  676. package/docs/decisions/ADR-044-command-naming-scheme-hyphenated.md +0 -250
  677. package/docs/decisions/ADR-045-src-source-layout-and-profiles-as-views.md +0 -111
  678. package/docs/decisions/ADR-046-thin-command-principle.md +0 -93
  679. package/docs/decisions/ADR-047-framework-neutral-stack-adaptive-commands.md +0 -94
  680. package/docs/decisions/ADR-048-command-justification-rule.md +0 -106
  681. package/docs/decisions/ADR-049-configuration-trust-boundary.md +0 -132
  682. package/docs/decisions/ADR-050-workspace-vs-package-root-boundary.md +0 -121
  683. package/docs/decisions/ADR-051-uncondensed-source-container-relocation.md +0 -114
  684. package/docs/decisions/ADR-052-packages-removal-and-pack-home-migration.md +0 -86
  685. package/docs/decisions/ADR-053-agents-namespace-dual-role-resolution.md +0 -132
  686. package/docs/decisions/ADR-054-rule-adherence-decay-triggered-restate.md +0 -143
  687. package/docs/decisions/ADR-055-flow-layer-data-model.md +0 -235
  688. package/docs/decisions/ADR-056-unvalidated-video-adapters-disposition.md +0 -124
  689. package/docs/decisions/ADR-057-consolidation-evidence-gate-outcomes.md +0 -135
  690. package/docs/decisions/ADR-058-condensed-output-relocation-to-dist.md +0 -94
  691. package/docs/decisions/ADR-059-render-resume-filesystem-as-state.md +0 -161
  692. package/docs/decisions/ADR-060-comfyui-sandbox-model.md +0 -154
  693. package/docs/decisions/ADR-061-corpus-grounding-layer.md +0 -230
  694. package/docs/decisions/ADR-062-encrypt-at-rest-store-architecture.md +0 -121
  695. package/docs/decisions/ADR-063-append-jsonl-encryption-deferred.md +0 -83
  696. package/docs/decisions/ADR-064-append-jsonl-per-record-encryption.md +0 -113
  697. package/docs/decisions/ADR-065-tier3-inbox-handoff-v0.md +0 -86
  698. package/docs/decisions/ADR-066-skill-body-prerendering.md +0 -93
  699. package/docs/decisions/ADR-067-glama-registry-listing.md +0 -259
  700. package/docs/decisions/ADR-068-host-tier-detection.md +0 -90
  701. package/docs/decisions/ADR-069-prompt-renderer.md +0 -97
  702. package/docs/decisions/ADR-070-tier1-drive-loop.md +0 -94
  703. package/docs/decisions/ADR-071-launch-drive-integration.md +0 -95
  704. package/docs/decisions/ADR-072-codex-gemini-drive-configs.md +0 -90
  705. package/docs/decisions/ADR-073-drive-health-kill-switch.md +0 -81
  706. package/docs/decisions/ADR-074-drive-kill-switch-auto-recovery.md +0 -84
  707. package/docs/decisions/ADR-075-workspace-gui-drive.md +0 -83
  708. package/docs/decisions/ADR-076-workspace-multi-turn.md +0 -92
  709. package/docs/decisions/ADR-077-workspace-followup-gui.md +0 -70
  710. package/docs/decisions/ADR-078-drive-health-panel.md +0 -70
  711. package/docs/decisions/ADR-079-workspace-host-picker.md +0 -81
  712. package/docs/decisions/ADR-080-host-session-expired-410.md +0 -92
  713. package/docs/decisions/ADR-081-drive-health-reset-and-410-affordance.md +0 -71
  714. package/docs/decisions/ADR-082-410-one-click-relaunch.md +0 -58
  715. package/docs/decisions/ADR-083-session-thread-and-arbitrary-continuation.md +0 -85
  716. package/docs/decisions/ADR-084-drive-health-refresh-on-drive.md +0 -52
  717. package/docs/decisions/ADR-085-mcp-stdio-end-user-distribution-shape.md +0 -158
  718. package/docs/decisions/ADR-086-read-only-cross-agent-mcp-discovery-helper.md +0 -171
  719. package/docs/decisions/ADR-087-installer-e2e-test-strategy.md +0 -111
  720. package/docs/decisions/ADR-088-no-external-runtime-federation.md +0 -144
  721. package/docs/decisions/ADR-089-lean-local-plugin-install.md +0 -111
  722. package/docs/decisions/ADR-090-visibility-command-frontmatter-field.md +0 -95
  723. package/docs/decisions/ADR-091-split-meta-capability-packs.md +0 -113
  724. package/docs/decisions/ADR-092-defer-command-tier-alias-removal.md +0 -117
  725. package/docs/decisions/ADR-093-ai-council-config-user-global.md +0 -117
  726. package/docs/decisions/ADR-094-agent-memory-layer-removal.md +0 -94
  727. package/docs/decisions/ADR-095-workspace-boundary-contract.md +0 -108
  728. package/docs/decisions/ADR-096-analysis-workbench.md +0 -110
  729. package/docs/decisions/ADR-097-mission-recipe-privilege-boundary.md +0 -121
  730. package/docs/decisions/ADR-098-evidence-first-structure-discovery.md +0 -154
  731. package/docs/decisions/ADR-099-file-first-pattern-library.md +0 -87
  732. package/docs/decisions/ADR-100-global-knowledge-card-sharing.md +0 -140
  733. package/docs/decisions/ADR-101-ticket-bundle-emission.md +0 -109
  734. package/docs/decisions/ADR-102-ticket-handoff-paste-and-mcp.md +0 -72
  735. package/docs/decisions/ADR-103-global-knowledge-default-off-until-measured.md +0 -92
  736. package/docs/decisions/ADR-104-ai-council-config-global-only.md +0 -119
  737. package/docs/decisions/ADR-105-automatic-subagent-orchestration.md +0 -108
  738. package/docs/decisions/ADR-106-recursive-verification-benchmark-gate.md +0 -126
  739. package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +0 -70
  740. package/docs/decisions/ADR-108-open-source-forever-no-commercial-tier.md +0 -46
  741. package/docs/decisions/ADR-109-subagent-v1-contract.md +0 -246
  742. package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +0 -110
  743. package/docs/decisions/ADR-111-canonical-glama-listing.md +0 -97
  744. package/docs/decisions/ADR-112-stdio-lite-stays-read-only.md +0 -92
  745. package/docs/decisions/ADR-113-ci-native-release-label-trigger.md +0 -201
  746. package/docs/decisions/ADR-114-commit-policy-iron-law-override.md +0 -85
  747. package/docs/decisions/ADR-115-command-cluster-consolidation-phase-4.md +0 -91
  748. package/docs/decisions/ADR-116-memory-tripwire-activation-path.md +0 -144
  749. package/docs/decisions/ADR-117-subagents-auto-default-on.md +0 -89
  750. package/docs/decisions/ADR-118-loop-engineering-boundaries.md +0 -162
  751. package/docs/decisions/ADR-119-global-knowledge-default-on.md +0 -104
  752. package/docs/decisions/ADR-120-council-chairman-mode.md +0 -70
  753. package/docs/decisions/ADR-121-knowledge-sensitivity-classes.md +0 -90
  754. package/docs/decisions/ADR-122-adversarial-verification-council.md +0 -166
  755. package/docs/decisions/ADR-123-runtime-security-scope-and-spawn-hardening.md +0 -142
  756. package/docs/decisions/ADR-200-python-to-typescript-migration.md +0 -203
  757. package/docs/decisions/ADR-rule-kernel-and-router.md +0 -133
  758. package/docs/decisions/INDEX.md +0 -136
  759. package/docs/deploy/connector-setup.md +0 -129
  760. package/docs/deploy/env-vars.md +0 -70
  761. package/docs/deploy/policy-cookbook.md +0 -130
  762. package/docs/deploy/quickstart.md +0 -112
  763. package/docs/deploy/small-team-recipe.md +0 -148
  764. package/docs/deploy/team-deployment-posture.md +0 -111
  765. package/docs/design/adversarial-council-eval.md +0 -106
  766. package/docs/design/council-vs-solo-baseline.md +0 -92
  767. package/docs/design/cross-model-parity-eval.md +0 -82
  768. package/docs/design/length-neutral-judge-rerun.md +0 -92
  769. package/docs/design/utilization-window-criteria.md +0 -51
  770. package/docs/development.md +0 -230
  771. package/docs/distribution/awesome-list-submission.md +0 -46
  772. package/docs/distribution/consumer-matrix.md +0 -96
  773. package/docs/distribution/launch-story-draft.md +0 -58
  774. package/docs/distribution/mcp-submission-checklist.md +0 -95
  775. package/docs/distribution/public-install-smoke.md +0 -68
  776. package/docs/distribution/registries.md +0 -117
  777. package/docs/distribution/registry-submissions.md +0 -85
  778. package/docs/distribution/telemetry-privacy.md +0 -128
  779. package/docs/distribution/telemetry-schema.md +0 -174
  780. package/docs/distribution/topics-equivalents-decay-policy.md +0 -51
  781. package/docs/end-to-end-walkthroughs.md +0 -165
  782. package/docs/enforcement-by-host.md +0 -44
  783. package/docs/examples/agent-user.example.md +0 -22
  784. package/docs/experiences/agency.md +0 -49
  785. package/docs/experiences/content_creator.md +0 -49
  786. package/docs/experiences/developer.md +0 -49
  787. package/docs/experiences/finance.md +0 -50
  788. package/docs/experiences/founder.md +0 -49
  789. package/docs/experiences/ops.md +0 -49
  790. package/docs/featured-commands.md +0 -27
  791. package/docs/featured-skills.md +0 -95
  792. package/docs/flows.md +0 -67
  793. package/docs/getting-started-by-role.md +0 -190
  794. package/docs/getting-started-laravel.md +0 -72
  795. package/docs/getting-started-local-stdio.md +0 -77
  796. package/docs/getting-started.md +0 -254
  797. package/docs/github-topics.md +0 -93
  798. package/docs/governance-advantage.md +0 -72
  799. package/docs/governance.md +0 -96
  800. package/docs/guides/cross-repo-linked-projects.md +0 -93
  801. package/docs/guides/cross-repo-retrieval.md +0 -61
  802. package/docs/guides/frontend-design-corpus-refresh.md +0 -83
  803. package/docs/guides/local-analytics.md +0 -125
  804. package/docs/guides/local-knowledge.md +0 -127
  805. package/docs/guides/skill-discovery.md +0 -71
  806. package/docs/guides/skill-preview.md +0 -71
  807. package/docs/hook-payload-capture.md +0 -221
  808. package/docs/install-friction-report.md +0 -66
  809. package/docs/installation.md +0 -959
  810. package/docs/maintainers/branch-protection.md +0 -105
  811. package/docs/maintainers/dev-mode.md +0 -106
  812. package/docs/maintainers/optional-media-deps.md +0 -50
  813. package/docs/maintainers/system-map.md +0 -85
  814. package/docs/mcp-registries.md +0 -94
  815. package/docs/mcp-server.md +0 -175
  816. package/docs/mcp.md +0 -147
  817. package/docs/media/proof-demo.cast +0 -14
  818. package/docs/media/proof-demo.gif +0 -0
  819. package/docs/migration/consumer-template-consumption-model.md +0 -145
  820. package/docs/migration/divergences/README.md +0 -55
  821. package/docs/migration/divergences/_template.md +0 -50
  822. package/docs/migration/divergences/bench-stats-float-precision.md +0 -72
  823. package/docs/migration/divergences/mcp-telemetry-node-sqlite.md +0 -61
  824. package/docs/migration/divergences/pack-mcp-content-gzip-body.md +0 -53
  825. package/docs/migration/divergences/src-scripts-build_cloud_bundle.md +0 -63
  826. package/docs/migration/divergences/src-scripts-check_memory.md +0 -91
  827. package/docs/migration/divergences/src-scripts-inventory_abstraction_budget.md +0 -65
  828. package/docs/migration/divergences/src-scripts-lint_marketplace.md +0 -57
  829. package/docs/migration/divergences/src-scripts-lint_mcp_registry_manifest.md +0 -70
  830. package/docs/migration/divergences/src-scripts-spotcheck_thin_root.md +0 -60
  831. package/docs/migration/divergences/src-scripts-validate_agent_settings.md +0 -58
  832. package/docs/migration/node-floor.md +0 -86
  833. package/docs/migration/v1-to-v2.md +0 -156
  834. package/docs/migration/yaml-roundtrip-spike.md +0 -163
  835. package/docs/migrations/commands-1.15.0.md +0 -117
  836. package/docs/parity/bench-external.json +0 -58
  837. package/docs/parity/bench.json +0 -41
  838. package/docs/parity/command-frontmatter.md +0 -60
  839. package/docs/parity/external-runtime.md +0 -46
  840. package/docs/personas.md +0 -178
  841. package/docs/positioning-evidence.md +0 -86
  842. package/docs/profiles.md +0 -108
  843. package/docs/proof.md +0 -176
  844. package/docs/quality.md +0 -98
  845. package/docs/readme-split-plan.md +0 -102
  846. package/docs/recruits/_template.md +0 -81
  847. package/docs/release-runbook.md +0 -141
  848. package/docs/role-experiences.md +0 -19
  849. package/docs/safety.md +0 -30
  850. package/docs/second-brain-scope.md +0 -116
  851. package/docs/self-review-gate.md +0 -65
  852. package/docs/setup/enterprise-and-offline.md +0 -201
  853. package/docs/setup/mcp-client-config.md +0 -358
  854. package/docs/setup/mcp-cloud-endpoints.md +0 -116
  855. package/docs/setup/mcp-cloud-registry-listing.md +0 -99
  856. package/docs/setup/mcp-cloud-setup.md +0 -183
  857. package/docs/setup/mcp-r2-bootstrap.md +0 -82
  858. package/docs/setup/mcp-server-docker.md +0 -101
  859. package/docs/setup/per-ide/aider.md +0 -48
  860. package/docs/setup/per-ide/antigravity.md +0 -68
  861. package/docs/setup/per-ide/augment.md +0 -89
  862. package/docs/setup/per-ide/claude-code.md +0 -97
  863. package/docs/setup/per-ide/claude-desktop.md +0 -207
  864. package/docs/setup/per-ide/cline.md +0 -43
  865. package/docs/setup/per-ide/codebuddy.md +0 -63
  866. package/docs/setup/per-ide/codex.md +0 -46
  867. package/docs/setup/per-ide/continue.md +0 -68
  868. package/docs/setup/per-ide/copilot.md +0 -80
  869. package/docs/setup/per-ide/cursor.md +0 -125
  870. package/docs/setup/per-ide/droid.md +0 -65
  871. package/docs/setup/per-ide/gemini-cli.md +0 -45
  872. package/docs/setup/per-ide/jetbrains.md +0 -76
  873. package/docs/setup/per-ide/kilocode.md +0 -66
  874. package/docs/setup/per-ide/kiro.md +0 -72
  875. package/docs/setup/per-ide/opencode.md +0 -62
  876. package/docs/setup/per-ide/qoder.md +0 -63
  877. package/docs/setup/per-ide/roocode.md +0 -68
  878. package/docs/setup/per-ide/trae.md +0 -63
  879. package/docs/setup/per-ide/warp.md +0 -63
  880. package/docs/setup/per-ide/windsurf.md +0 -109
  881. package/docs/setup/per-ide/zed.md +0 -73
  882. package/docs/showcase.md +0 -209
  883. package/docs/skill-duplication-findings.md +0 -91
  884. package/docs/skills-catalog.md +0 -265
  885. package/docs/skills-taxonomy.md +0 -90
  886. package/docs/spawn-site-policy.md +0 -72
  887. package/docs/succession.md +0 -80
  888. package/docs/threat-model.md +0 -29
  889. package/docs/troubleshooting.md +0 -155
  890. package/docs/ui-track-mental-model.md +0 -121
  891. package/docs/us-vs-the-category.md +0 -38
  892. package/docs/value.md +0 -86
  893. package/docs/walkthroughs/assets/workspace-role-grid.png +0 -0
  894. package/docs/walkthroughs/assets/workspace-session-started.png +0 -0
  895. package/docs/walkthroughs/assets/workspace-task-picker.png +0 -0
  896. package/docs/walkthroughs/daily-workspace-a11y.md +0 -87
  897. package/docs/walkthroughs/daily-workspace.md +0 -127
  898. package/docs/wedge/production-validator/README.md +0 -81
  899. package/docs/wedge/production-validator/first-run-check.sh +0 -42
  900. package/docs/wedge/production-validator/production-validator.md +0 -83
  901. package/docs/wizard.md +0 -173
package/docs/mcp.md DELETED
@@ -1,147 +0,0 @@
1
- # MCP config generation
2
-
3
- One `mcp.json` at your repo root, one `task mcp:render`, three tools configured.
4
- No hand-editing Claude Desktop, Cursor, and Windsurf files in parallel. No
5
- secrets committed.
6
-
7
- ## What this solves
8
-
9
- MCP servers are configured per tool today: `.cursor/mcp.json`, a Windsurf
10
- equivalent, and `~/.config/claude-desktop/claude_desktop_config.json`. Each
11
- file has the same server list, duplicated. Secrets land in plaintext if you
12
- commit them, out of reach if you don't.
13
-
14
- The renderer fixes both:
15
-
16
- - One source of truth (`mcp.json`) → three target files.
17
- - `${env:VAR}` placeholders resolved at render time from the environment.
18
- - Missing `${env:VAR}` → non-zero exit, no partial files written.
19
-
20
- ## Schema
21
-
22
- `mcp.json` at the repo root:
23
-
24
- ```json
25
- {
26
- "servers": {
27
- "<server-name>": {
28
- "command": "string",
29
- "args": ["string", "..."],
30
- "env": { "KEY": "string" },
31
- "cwd": "string"
32
- }
33
- }
34
- }
35
- ```
36
-
37
- - `command` and `args` are required per server.
38
- - `env` and `cwd` are optional.
39
- - Every string value accepts `${env:VAR_NAME}` placeholders. The renderer
40
- replaces them with the value of `VAR_NAME` from the process environment.
41
- - `${env:VAR}` may appear anywhere in a string; multiple placeholders per
42
- string are supported.
43
- - The source file uses `servers` as the top-level key; the renderer emits
44
- `mcpServers` because that is what all three targets expect.
45
-
46
- Internal references like `${ref:path.to.value}` are **not** supported. Keep
47
- values literal, or resolve them from the environment.
48
-
49
- ## Usage
50
-
51
- **Consumer projects** — use the `./agent-config` CLI installed into the
52
- project root:
53
-
54
- ```bash
55
- ./agent-config mcp:render # write in-project targets
56
- ./agent-config mcp:render --claude-desktop # also write user-scope Claude Desktop
57
- ./agent-config mcp:check # dry-run; exit 1 if targets are stale
58
- ```
59
-
60
- **Package maintainers** — the same commands are available through Taskfile:
61
-
62
- ```bash
63
- task mcp:render
64
- task mcp:render -- --claude-desktop
65
- task mcp:check
66
- ```
67
-
68
- Or invoke the script directly (maintainer workflow, inside the package repo):
69
-
70
- ```bash
71
- ./scripts-run src/scripts/mcp_render [--source PATH] [--claude-desktop] [--check]
72
- ```
73
-
74
- Default output paths:
75
-
76
- | Target | Path | Scope |
77
- |-----------------|-----------------------------------------------------------|----------------|
78
- | Cursor | `.cursor/mcp.json` | repo, commit it |
79
- | Windsurf | `.windsurf/mcp.json` | repo, commit it |
80
- | Claude Desktop | `~/.config/claude-desktop/claude_desktop_config.json` | user, opt-in |
81
-
82
- ## Worked example
83
-
84
- `mcp.json`:
85
-
86
- ```json
87
- {
88
- "servers": {
89
- "github": {
90
- "command": "npx",
91
- "args": ["-y", "@modelcontextprotocol/server-github"],
92
- "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${env:GH_TOKEN}" }
93
- },
94
- "jira": {
95
- "command": "docker",
96
- "args": ["run", "--rm", "-i", "mcp/jira:latest"],
97
- "env": {
98
- "JIRA_TOKEN": "${env:JIRA_TOKEN}",
99
- "JIRA_HOST": "example.atlassian.net"
100
- }
101
- }
102
- }
103
- }
104
- ```
105
-
106
- Then:
107
-
108
- ```bash
109
- export GH_TOKEN=ghp_xxx
110
- export JIRA_TOKEN=jira_yyy
111
- task mcp:render
112
- ```
113
-
114
- Produces `.cursor/mcp.json` and `.windsurf/mcp.json` with the secrets
115
- substituted inline and the root key renamed to `mcpServers`.
116
-
117
- ## Failure modes
118
-
119
- - **Missing `mcp.json`** — exit 1, message naming the expected path.
120
- - **Invalid JSON** — exit 1, message with the parser error.
121
- - **Missing `servers` key** — exit 1, shape rejected at load time.
122
- - **Unresolved `${env:VAR}`** — exit 1, grouped report listing every missing
123
- variable and every path in the config where it is used. **No target file
124
- is written**, not even a partial one. Set the variable(s) and re-run.
125
- - **`task mcp:check` disagrees with on-disk targets** — exit 1; run
126
- `task mcp:render` to regenerate.
127
-
128
- ## What this is not
129
-
130
- The renderer is one-way: `mcp.json` → tool configs. It does not read or diff
131
- pre-existing tool configs. Remove stale entries from your source file and
132
- re-render.
133
-
134
- Keychain backends (`security`, `secret-tool`, Bitwarden CLI) are **out of
135
- scope**. The environment is the only secret surface. Pipe from whatever
136
- secret tool you already use into the process environment before you run
137
- `task mcp:render`.
138
-
139
- ## Related
140
-
141
- - [`docs/mcp-registries.md`](mcp-registries.md) — where to *discover* MCP servers
142
- (official registry / Glama / Smithery) and how to install one per agent, incl.
143
- Augment's manual Import-from-JSON path.
144
- - [`src/skills/mcp/SKILL.md`](../src/skills/mcp/SKILL.md) — MCP server
145
- selection and usage patterns.
146
- - [`agents/roadmaps/archive/road-to-mcp.md`](../agents/roadmaps/archive/road-to-mcp.md) — archived roadmap that produced this feature.
147
- - Reference substitution implementation: an external reference.
@@ -1,14 +0,0 @@
1
- {"version":3,"term":{"cols":80,"rows":24},"timestamp":1783261474,"command":"bash internal/demo/proof-demo-commands.sh","env":{"SHELL":"/bin/zsh"}}
2
- [0.007, "o", "\r\n\u001b[1;36m$ task check-claims # every public claim binds to resolvable evidence\u001b[0m\r\n"]
3
- [0.360, "o", "\u001b[32m ✓ pass\u001b[0m\r\n\r\n"]
4
- [0.000, "o", "\u001b[1;36m$ task check-refs # no broken internal references\u001b[0m\r\n"]
5
- [0.445, "o", "\u001b[32m ✓ pass\u001b[0m\r\n"]
6
- [0.000, "o", "\r\n\u001b[1;36m$ task check-skill-gaps # every known-limit cites a real witness test\u001b[0m\r\n"]
7
- [0.399, "o", "\u001b[32m ✓ pass\u001b[0m\r\n"]
8
- [0.000, "o", "\r\n\u001b[1;36m$ task check-comparison # every comparison-table pointer resolves\u001b[0m\r\n"]
9
- [0.359, "o", "\u001b[32m ✓ pass\u001b[0m\r\n"]
10
- [0.001, "o", "\r\n\u001b[1;36m$ task build-proof-check # the proof page is in sync with its sources\u001b[0m\r\n"]
11
- [0.399, "o", "\u001b[32m ✓ pass\u001b[0m\r\n"]
12
- [0.000, "o", "\r\n"]
13
- [0.000, "o", "\u001b[1;32m✓ trust surface verified — reproduce any line on a fresh checkout.\u001b[0m\r\n"]
14
- [0.000, "x", "0"]
Binary file
@@ -1,145 +0,0 @@
1
- # Consumer Template Consumption Model
2
-
3
- > Phase 1 Step 11 of `agents/roadmaps/archive/road-to-typescript-only-scripts.md`.
4
- > Question: how does `dist/agent-src/templates/scripts/` content reach a consumer
5
- > project — copied, referenced in place, or symlinked — and what does that mean
6
- > for the Phase 9 TS migration of the consumer-shipped scripts?
7
-
8
- ## Verdict: hybrid — in-place execution is primary, copies are secondary
9
-
10
- The template scripts are **executed in place from the installed package root**
11
- as the primary channel, with **two copy channels** layered on top (one
12
- installer-driven, one manual). Nothing is ever symlinked into a consumer tree —
13
- the installer explicitly dereferences symlinks on copy
14
- (`src/scripts/install.py:3201-3264`, rationale at `install.py:1950-1953`:
15
- "Council Round 3 Q1 rejected cross-scope symlinks").
16
-
17
- ### Channel 1 — in-place from the package root (primary)
18
-
19
- The consumer CLI (`agent-config`, master entrypoint
20
- `src/scripts/_dispatch.bash`) derives `PACKAGE_ROOT` from its own location —
21
- `node_modules/@event4u/agent-config/` or the global npm install — and resolves
22
- symlinks first (`_dispatch.bash:24-32`).
23
-
24
- - The work engine (`/work`, `/implement-ticket`) runs **exclusively** in place:
25
- `cmd_implement_ticket` and `cmd_work` hard-code
26
- `engine_root="$PACKAGE_ROOT/dist/agent-src/templates/scripts"` and exec
27
- `python3 -m work_engine` with `PYTHONPATH=$engine_root`
28
- (`_dispatch.bash:393-420`). There is **no consumer-override tier** for the
29
- engine.
30
- - The memory/telemetry CLI surface (`memory:lookup`, `memory:signal`,
31
- `memory:hash`, `telemetry:record|status|report`, `check_memory`,
32
- `check_memory_proposal`) resolves through `resolve_template_script`
33
- (`_dispatch.bash:318-337`, call sites `:422-478`) with a three-tier chain:
34
-
35
- 1. `$CONSUMER_ROOT/scripts/<name>` — local copy / customization (wins)
36
- 2. `$CONSUMER_ROOT/.augment/templates/scripts/<name>` — installer-shipped
37
- (legacy project-scope projection)
38
- 3. `$PACKAGE_ROOT/dist/agent-src/templates/scripts/<name>` — package-internal
39
- fallback (the path every fresh consumer actually hits)
40
-
41
- ### Channel 2 — installer-driven copies (user scope, Augment only)
42
-
43
- Consumer installs are **global-only** per ADR-020: both front doors gate
44
- `--scope=project` behind `AGENT_CONFIG_DEV_MODE=1`
45
- (`src/scripts/install:188-196` and `install.py:2142-2163`,
46
- `_enforce_consumer_global_only` called from `main()` at `install.py:4745`).
47
-
48
- In global scope, only the **Augment** deploy plan copies the templates tree:
49
- `("dist/agent-src/templates", "templates")` in `GLOBAL_DEPLOY_SOURCES`
50
- (`install.py:1993-2002`) lands `templates/scripts/` under `~/.augment/templates/`
51
- (anchor `install.py:1841`). The Claude Code skill bundle
52
- (`_CLAUDE_SKILL_BUNDLE`, `install.py:1977-1992`) ships rules/skills/commands/
53
- personas but **not** templates. Source paths always reference `dist/agent-src/`
54
- because that is the only asset tree in the npm tarball
55
- (`install.py:1973-1976`, `package.json#files`).
56
-
57
- Note the asymmetry: the dispatcher's tier-2 lookup reads the **project-local**
58
- `.augment/templates/scripts/` (written only by the legacy/maintainer
59
- project-scope install), not the global `~/.augment/templates/`. The global
60
- Augment copy exists for the Augment tool surface itself, not for the
61
- dispatcher.
62
-
63
- The wizard is the same engine, not a separate one: `src/server/routes/wizard.ts`
64
- spawns `scripts/install.py --apply-payload` (`wizard.ts:325`, `:371`, `:953`),
65
- so all GUI installs converge on the copy semantics above.
66
-
67
- ### Channel 3 — documented manual copies (opt-in features)
68
-
69
- `src/agent-src/templates/scripts/README.md:21-36` and `:171-178` instruct
70
- consumers to `cp` selected scripts into their own tree: `pr_risk_review.py`,
71
- `pr_review_routing.py` → consumer `scripts/`; YAML examples → `.github/`. The
72
- shipped GitHub workflow templates depend on those copies
73
- (`src/agent-src/templates/github-workflows/memory-hygiene.yml:14`,
74
- `pr-risk-review.yml:9`). These copies are consumer-owned the moment they are
75
- made.
76
-
77
- ## (b) Can consumers modify the scripts locally? Do re-installs overwrite?
78
-
79
- - **Installer-deployed copies are always overwritten.** `_resolve_file_conflict`
80
- (`install.py:229-243`) unconditionally returns `"write"` — "deploys always
81
- overwrite; the flag never gates a write". Edits inside `~/.augment/templates/`
82
- (or a legacy project `.augment/`) are clobbered on the next
83
- `init`/`sync`/`refresh`. Orphans are never deleted, though — the copier only
84
- writes, so files removed upstream linger in the anchor.
85
- - **The sanctioned customization point is the consumer's own `scripts/` dir.**
86
- Tier 1 of `resolve_template_script` ("Consumer customization wins so projects
87
- can patch behavior locally without losing the upstream default",
88
- `_dispatch.bash:316-317`) plus the README `cp` flow. The installer never
89
- touches `$CONSUMER_ROOT/scripts/`, so these copies survive re-installs —
90
- and silently pin an old version until the consumer re-copies.
91
- - **The work engine cannot be customized at all** (no override tier).
92
-
93
- ## (c) What invokes the template scripts at runtime?
94
-
95
- 1. **Dispatcher subcommands** — `./agent-config work | implement-ticket |
96
- memory:* | telemetry:* | check_memory*` (`_dispatch.bash:393-478`). Hook
97
- trampolines installed by `install.py` call the **global binary**, which is
98
- this same dispatcher (ADR-020); the hook scripts themselves live under
99
- `src/scripts/hooks/`, not under `templates/scripts/`.
100
- 2. **Rules/skills markdown** — always-loaded artifacts tell the agent to run
101
- the scripts directly, e.g. `src/rules/security-sensitive-stop.md`
102
- (`from scripts.memory_lookup import retrieve` — assumes the tier-1 consumer
103
- copy), `src/rules/ui-audit-gate.md` and `src/skills/flux/SKILL.md` (link to
104
- `templates/scripts/work_engine/directives/...`), and
105
- `src/agent-src/contexts/contracts/artifact-engagement-flow.md:218`
106
- (`sys.path.insert(0, ...)` onto the templates dir).
107
- 3. **Consumer GitHub workflows** — the copied workflow templates execute the
108
- consumer-copied `scripts/*.py` in the consumer's CI.
109
-
110
- ## (d) Consequences for Phase 9 (TS migration of consumer templates)
111
-
112
- Phase 9 must treat `templates/scripts/` as **three independent surfaces**:
113
-
114
- 1. **In-place engine + dispatcher fallback (easy).** Because fresh consumers
115
- execute tier 3 (`PACKAGE_ROOT/dist/...`), migrating a script is: ship the
116
- `.ts` in the tarball, repoint the dispatcher subcommand (`python3 <script>` →
117
- the TS runner), delete the `.py`. No consumer-side migration needed; the
118
- next package update flips everyone atomically. The work engine is the
119
- cleanest case — single call site, no override tier.
120
- 2. **Stale copies the installer must detect (the real work).** The TS installer
121
- (Phase 3 Step 2 already plans a dual-mode transition layer) must:
122
- - detect tier-1/tier-2 Python copies (`$CONSUMER_ROOT/scripts/<name>.py`,
123
- `.augment/templates/scripts/`) that shadow a migrated script — the
124
- resolution chain is keyed by **exact filename**, so a leftover
125
- `memory_lookup.py` keeps winning forever if the dispatcher still probes
126
- for it, or silently stops being found if the probe name changes to `.ts`;
127
- either way the installer must warn and offer migration/removal;
128
- - clean up **orphaned** `.py` files in deployed anchors (the always-overwrite
129
- copier never deletes), ideally manifest-driven (the install manifest
130
- already records written paths, `install.py:3208-3210`);
131
- - keep honoring consumer-owned copies under `$CONSUMER_ROOT/scripts/` as
132
- customizations — warn, never delete.
133
- 3. **Lockstep doc/markdown updates.** Every rule/skill/workflow template that
134
- names a `.py` path (channel 3 and the markdown references in (c)) must flip
135
- in the same PR as the script, or agents will instruct consumers to run
136
- files that no longer exist.
137
-
138
- **Recommended Phase 9 mechanics:** migrate per script-cluster behind the
139
- dispatcher — (1) land the TS implementation in the tarball, (2) change the
140
- dispatcher to probe `<name>.ts` (tier 1/2) before falling back to the packaged
141
- TS, keeping a one-release deprecation warning when a consumer-local `.py`
142
- shadow is detected, (3) update the referencing markdown in the same PR,
143
- (4) have the TS installer's dual-mode layer flag/clean stale `.py` copies, and
144
- (5) drop the Python fallback once the dashboard shows the
145
- `consumer-templates` bucket at zero.
@@ -1,55 +0,0 @@
1
- # Migration divergences — Python → TypeScript
2
-
3
- This directory is the **divergence ledger** of the Python → TypeScript
4
- migration (see
5
- [ADR-200](../../decisions/ADR-200-python-to-typescript-migration.md)).
6
- It is the single place where TypeScript-vs-Python behavior differences live.
7
- An undocumented difference is a regression by definition.
8
-
9
- ## When a divergence doc is required
10
-
11
- **Any golden-parity mismatch.** The parity harness runs the Python and the
12
- TypeScript version of a script on identical fixtures and compares
13
- stdout/stderr, exit code, and written files byte-exact (with opt-in JSON/YAML
14
- normalization). If the comparison is not green for a script, that script
15
- needs exactly one of:
16
-
17
- 1. a fix in the TS port that restores byte-exact parity, or
18
- 2. a divergence doc in this directory.
19
-
20
- There is no third option. The quality floor is: **quality must not degrade;
21
- documented improvements are allowed and explicitly approved.**
22
-
23
- ## Lifecycle
24
-
25
- 1. **Porter writes the doc.** When a porting (sub)agent or contributor hits a
26
- parity mismatch they believe is correct-to-keep (e.g. the TS port fixes a
27
- genuine Python bug, or a formatting library difference with no consumer
28
- impact), they copy [`_template.md`](_template.md) to
29
- `<script-path-slug>.md` in this directory and fill every section —
30
- including the evidence test or fixture that proves the verdict.
31
- 2. **Reviewer approves.** A human reviewer (or the independent verification
32
- subagent escalating to a human) checks the evidence and records approval
33
- (name + date) in the doc's Approval section. A doc without an approval
34
- line is not a documented divergence.
35
- 3. **Doc ships in the porting PR.** The divergence doc lands in the same PR
36
- as the TS port it covers, so the parity decision is reviewable next to
37
- the diff.
38
-
39
- Verdicts of `regression-must-fix` never stay in this directory as an excuse —
40
- they mean the port goes back to the porter; the doc may be kept only as a
41
- record of an investigated-and-fixed mismatch.
42
-
43
- ## How CI consumes this directory
44
-
45
- The parity harness treats a **documented, approved divergence as a pass** for
46
- the affected comparison: golden parity for a script may be red only if a
47
- matching divergence file exists here. An **undocumented mismatch fails CI**
48
- (the `migration-gates` workflow blocks the PR).
49
-
50
- ## Naming
51
-
52
- One doc per script (not per symptom): `src/scripts/foo/bar.py` →
53
- `src-scripts-foo-bar.md`. If a script accumulates multiple divergences,
54
- extend the existing doc with additional Symptom/Verdict blocks rather than
55
- creating a second file.
@@ -1,50 +0,0 @@
1
- # Divergence: <script name>
2
-
3
- > Copy this file to `<script-path-slug>.md` (e.g. `src/scripts/foo/bar.py` →
4
- > `src-scripts-foo-bar.md`) and fill every section. A doc without an Approval
5
- > line is not a documented divergence — CI treats the mismatch as a failure.
6
-
7
- ## Script
8
-
9
- Path of the migrated script (Python original and TS port):
10
-
11
- - Python: `src/scripts/<path>.py`
12
- - TypeScript: `src/scripts/<path>.ts`
13
-
14
- ## Symptom
15
-
16
- What differs, exactly. Quote or attach the mismatching output:
17
-
18
- - **Python output:** <verbatim excerpt or fixture reference>
19
- - **TS output:** <verbatim excerpt or fixture reference>
20
- - Affected channel(s): stdout | stderr | exit code | written file(s)
21
-
22
- ## Root cause
23
-
24
- Why the outputs differ (library behavior, Python bug fixed in the port,
25
- formatting difference, encoding, ordering, ...). Cite the relevant code
26
- lines in both versions.
27
-
28
- ## Verdict
29
-
30
- Pick exactly one:
31
-
32
- - `bug-fix-in-TS` — the Python behavior was wrong; the TS port is correct.
33
- - `intentional-improvement` — both behaviors are defensible; the TS behavior
34
- is a deliberate, documented improvement.
35
- - `formatting-only` — byte difference with no semantic or consumer impact
36
- (e.g. YAML/JSON serializer formatting).
37
- - `regression-must-fix` — the TS port is wrong; the mismatch goes back to
38
- the porter. (This verdict never ships as an accepted divergence.)
39
-
40
- ## Evidence
41
-
42
- The test or fixture that proves the verdict — a vitest test asserting the
43
- correct behavior, a fixture pair demonstrating the Python bug, or a
44
- normalization-layer comparison showing semantic equivalence. Name the file(s)
45
- and what they assert.
46
-
47
- ## Approval
48
-
49
- - Reviewer: <name>
50
- - Date: <YYYY-MM-DD>
@@ -1,72 +0,0 @@
1
- # Divergence: bench statistics float precision (`pstdev` / `median` / `quantiles`)
2
-
3
- ## Script
4
-
5
- Affects every bench report that aggregates savings via the `statistics`
6
- module. Surfaced first in:
7
-
8
- - Python: `src/scripts/bench_condense_memory.py` (`statistics.pstdev` at the
9
- `stdev_saving_pct` field)
10
- - TypeScript: `src/scripts/bench_condense_memory.ts` (`_pstdev`, line ~225)
11
-
12
- Shared helper with the same shape: `src/scripts/_lib/bench_telegraph.py`
13
- ↔ `src/scripts/_lib/bench_telegraph.ts` (`_pstdev`, line ~304).
14
-
15
- ## Symptom
16
-
17
- `bench_condense_memory` JSON report, `stdev_saving_pct` field, on the current
18
- tree (after the 2026-06-13 `main → python2ts` sync changed some condensation
19
- inputs, e.g. `dist/agent-src/templates/AGENTS.md` 2481 → 2590 chars):
20
-
21
- - **Python output:** `"stdev_saving_pct": 3.544402882224057`
22
- - **TS output:** `"stdev_saving_pct": 3.5444028822240576`
23
- - Affected channel(s): written file (`internal/bench/reports/telegraph-v2.json`)
24
-
25
- A single-ULP difference in the last mantissa digit. Most inputs are
26
- bit-identical; only some hit the divergence.
27
-
28
- ## Root cause
29
-
30
- Python's `statistics.pstdev` (and `median`, `quantiles`) compute the
31
- sum-of-squares / order statistics **exactly** using rational `Fraction`
32
- arithmetic, converting to `float` once at the very end. The TS twins use a
33
- naive floating-point reduction:
34
-
35
- ```ts
36
- const variance = data.reduce((acc, x) => acc + (x - mean) * (x - mean), 0) / n;
37
- return Math.sqrt(variance);
38
- ```
39
-
40
- Naive float accumulation rounds at each addition; the order and intermediate
41
- rounding differ from Python's exact-then-convert path, so the final `float`
42
- can land one ULP away for certain input distributions.
43
-
44
- ## Verdict
45
-
46
- `formatting-only` — the divergence is a last-ULP floating-point artifact with
47
- no semantic or consumer impact (the value is a benchmark percentage; a
48
- 1e-15 difference changes no decision). It is **not** `regression-must-fix`:
49
- the TS arithmetic is a defensible IEEE-754 reduction, just not bit-identical
50
- to Python's exact-Fraction path.
51
-
52
- A full byte-identical fix requires replicating Python's `statistics._ss`
53
- exact-`Fraction` summation in TS (BigInt-rational arithmetic) across the
54
- shared bench-stats helpers. That is tracked as a follow-up
55
- (`agents/roadmaps/archive/road-to-typescript-only-scripts.md`, bench-stats
56
- exact-fraction parity); it is non-trivial and out of scope for the sync that
57
- surfaced it.
58
-
59
- ## Evidence
60
-
61
- `tests/scripts/bench_condense_memory.test.ts` →
62
- *"python vs tsx produce byte-identical reports (modulo generated_at)"*
63
- normalizes non-integer numbers to 12 significant figures before comparison
64
- (`roundFloats`). 12 sig-figs tolerates the single-ULP stats divergence while
65
- still failing on any real (> 12-significant-digit) drift. Integer fields
66
- (char counts, call/error tallies) are never rounded, so structural drift
67
- still fails the test.
68
-
69
- ## Approval
70
-
71
- - Reviewer: AI-council (anthropic/claude-sonnet-4-5 + openai/gpt-4o), debate, converged
72
- - Date: 2026-06-13
@@ -1,61 +0,0 @@
1
- # Divergence: mcp-telemetry twins use `node:sqlite` (node ≥ 22.5)
2
-
3
- ## Script
4
-
5
- - Python: `src/scripts/mcp_telemetry_store.py`, `src/scripts/mcp_telemetry_query.py`
6
- (both use the stdlib `sqlite3` module)
7
- - TypeScript: `src/scripts/mcp_telemetry_store.ts`, `src/scripts/mcp_telemetry_query.ts`
8
- (use the stdlib `node:sqlite` `DatabaseSync`)
9
-
10
- (`mcp_telemetry_health.ts` has no SQLite dependency and runs on any node.)
11
-
12
- ## Symptom
13
-
14
- Not an output mismatch — a **runtime-floor** difference. `node:sqlite` is only
15
- available on **node ≥ 22.5**. The repo's CI workflows pin `node-version: '20'`,
16
- so on a node-20 runner the store/query golden suites guard with
17
- `skipIf(!hasNodeSqlite())` (mirroring the existing `hasPython3` skip) and do
18
- not execute.
19
-
20
- ## Root cause
21
-
22
- Python's `sqlite3` is stdlib and always present. The byte-parity contract for
23
- these scripts is their **stdout** (query results, health summary); the SQLite
24
- file itself lives under the gitignored, volatile `agents/runtime/mcp-telemetry/`
25
- and is never byte-compared (it is a derived store). To mirror Python's
26
- stdlib-only posture without adding an npm native dependency (`better-sqlite3`)
27
- or a WASM bundle, the twins use node's own stdlib `node:sqlite`. Cross-runtime
28
- interop is verified both directions (python-store → ts-query and
29
- ts-store → py-query read each other's DB).
30
-
31
- `node:sqlite` landed in node 22.5; `@types/node@20` ships no `sqlite.d.ts`, so a
32
- minimal ambient declaration (`src/scripts/_lib/node_sqlite.d.ts`) was added for
33
- `tsc` — runtime-free, no package.json/tsconfig change.
34
-
35
- ## Verdict
36
-
37
- `intentional-improvement` — the TS twin is functionally equivalent (stdout
38
- byte-identical, cross-runtime DB interop proven) and stdlib-only, matching
39
- Python's dependency posture. The only cost is a higher node floor **for this
40
- dev-internal tool**, which does not touch the consumer runtime.
41
-
42
- **Consumer impact: none.** `mcp_telemetry_store`/`query` are dev-internal
43
- tooling (`taskfiles/mcp.yml`), not part of the consumer bundle or the glama MCP
44
- runtime. The package's published engine floor stays `node >=20.11`
45
- (`package.json` `engines`); only `.github/workflows/migration-gates.yml` (the
46
- python2ts migration gate) is bumped to node 22 so these parity suites run in CI
47
- rather than skip.
48
-
49
- ## Evidence
50
-
51
- `tests/scripts/mcp_telemetry_store.test.ts` (7) and
52
- `tests/scripts/mcp_telemetry_query.test.ts` (8) assert byte-identical
53
- stdout/stderr/exit (human + `--json`, all flags, error paths, idempotent
54
- re-run, cross-runtime DB interop) via the shared harness
55
- `tests/scripts/_mcp_telemetry.ts`. They run in CI on the node-22 migration
56
- gate; they skip on any node < 22.5 with a clear marker.
57
-
58
- ## Approval
59
-
60
- - Reviewer: migration orchestrator (dev-internal scope; consumer floor unchanged)
61
- - Date: 2026-06-13
@@ -1,53 +0,0 @@
1
- # Divergence: `pack_mcp_content` gzip compressed-body bytes (zlib version)
2
-
3
- ## Script
4
-
5
- - Python: `src/scripts/pack_mcp_content.py` (`gzip.GzipFile(..., compresslevel=9, mtime=0)`)
6
- - TypeScript: `src/scripts/pack_mcp_content.ts` (`zlib.gzipSync` body + a rebuilt Python-shaped gzip header)
7
-
8
- ## Symptom
9
-
10
- The gzip **header + FNAME field** (`content.json.gz` bytes `0 .. <NUL>`) are
11
- byte-identical between the two runtimes — magic, CM, FLG, `MTIME=0`, `XFL=2`,
12
- `OS=0xFF`, embedded `content.json\0` are all deterministic and rebuilt to
13
- match. The **DEFLATE body** that follows is NOT byte-identical: on node 25 it
14
- matched Python's zlib output, on node 22 (CI migration gate) the first/later
15
- compressed bytes differ.
16
-
17
- ## Root cause
18
-
19
- DEFLATE is not canonical — the exact compressed byte stream for a given input
20
- depends on the zlib implementation and version (Python's bundled zlib vs
21
- node's, and node 22's zlib vs node 25's). All variants are valid gzip and
22
- decompress to the identical bytes; only the compressed encoding differs. The
23
- gzip **metadata** (header + FNAME) is fully under our control and is byte-stable
24
- (`mtime=0` removes the only timestamp); the **compressed body** is a zlib
25
- implementation detail.
26
-
27
- ## Verdict
28
-
29
- `formatting-only` — compressed-byte identity across two different zlib
30
- implementations is not a reasonable parity target and carries no semantic or
31
- consumer impact (the archival `.gz` is decompressed by its consumer; the bytes
32
- within decompress identically). The real contract — identical **decompressed**
33
- content — holds.
34
-
35
- `content.json.gz` is a generated R2 archival artefact (denylist `skip_paths`),
36
- regenerated by the deploy workflow; its consumer reads the decompressed
37
- content, so a different-but-equivalent compressed encoding is immaterial.
38
-
39
- ## Evidence
40
-
41
- `tests/scripts/pack_mcp_content.test.ts` → *"writes byte-identical content.json
42
- / content.json.gz / manifest.json"*:
43
- - asserts the gzip header + NUL-terminated FNAME field byte-identical
44
- (`subarray(0, headerEnd)` where `headerEnd = indexOf(0x00, 10) + 1`),
45
- excluding the DEFLATE body;
46
- - asserts the **decompressed** gz content byte-identical (modulo `built_at`),
47
- and that each runtime's `.gz` decompresses to its own on-disk `content.json`.
48
- `content.json` and `manifest.json` themselves remain byte-identical (uncompressed).
49
-
50
- ## Approval
51
-
52
- - Reviewer: migration orchestrator (impl-detail divergence; decompressed-content parity asserted)
53
- - Date: 2026-06-13
@@ -1,63 +0,0 @@
1
- # Divergence: build_cloud_bundle
2
-
3
- ## Script
4
-
5
- - Python: `src/scripts/build_cloud_bundle.py`
6
- - TypeScript: `src/scripts/build_cloud_bundle.ts`
7
-
8
- ## Symptom
9
-
10
- The `.zip` bundles produced by `--skill` / `--all` are **not byte-identical**
11
- between the Python and TypeScript implementations, although every
12
- **decompressed entry** is byte-identical (verified across all 227 skills,
13
- 0/227 content mismatches).
14
-
15
- - **Python output:** `zipfile.ZIP_DEFLATED` archive — CPython zlib deflate
16
- parameters, fixed entry timestamp, PyYAML-era header fields
17
- (version-needed, extra-field, external-attr), entry order from `Path.rglob`.
18
- - **TS output:** `_lib/zip_min` deflate archive — Node zlib deflate
19
- parameters and ZIP header field defaults differ; sibling entry order is
20
- sorted deterministically.
21
- - Affected channel(s): the raw bytes of the written `.zip` file only. stdout,
22
- exit code, `manifest.json` (modulo the tmp out-path), and every decompressed
23
- entry's content are byte-identical.
24
-
25
- ## Root cause
26
-
27
- The ZIP container is an envelope, not the payload. The two ecosystems' deflate
28
- encoders (CPython `zlib` vs Node `zlib`) choose different compression block
29
- boundaries and Huffman tables for the same input, and the two ZIP writers
30
- populate optional local/central-directory header fields
31
- (version-needed-to-extract, extra field, external file attributes, the fixed
32
- mod-time) differently. None of this changes what a consumer extracts — only
33
- the on-disk archive bytes. The migration contract for this script is the
34
- **extracted content** (what the Claude.ai cloud bundle delivers), which is
35
- preserved exactly.
36
-
37
- ## Verdict
38
-
39
- `formatting-only` — byte difference in the archive container with no semantic
40
- or consumer impact. The bundle's delivered content (per-entry decompressed
41
- bytes), the `manifest.json`, the console output, and the exit code are all
42
- byte-identical.
43
-
44
- ## Evidence
45
-
46
- `tests/scripts/build_cloud_bundle.test.ts` — the golden-parity layer builds
47
- the bundle with both `python3` and `tsx` into separate tmp out-dirs, then
48
- asserts: (1) console output byte-identical, (2) `manifest.json` byte-identical
49
- after normalizing the tmp path, (3) the **decompressed ZIP entry map**
50
- byte-identical across all 227 skills (0 mismatches). The raw-archive-bytes
51
- difference is explicitly not asserted, by design, and is documented in the
52
- module header.
53
-
54
- A second, latent behavior was found and faithfully replicated (not a
55
- divergence in itself): the docstring claims exit codes 2/3/4/5 for
56
- budget/source failures, but the Python actually raises
57
- `SystemExit("❌ …")` with a string argument, which prints to stderr and exits
58
- **1**. The TS twin reproduces the real behavior (message → stderr, exit 1).
59
-
60
- ## Approval
61
-
62
- - Reviewer: matze4u
63
- - Date: 2026-06-12