@event4u/agent-config 8.4.0 → 8.5.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 (682) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +73 -0
  3. package/README.md +17 -5
  4. package/dist/agent-src/README.md +1 -1
  5. package/dist/agent-src/commands/{analyze-reference-repo.md → analyze/reference-repo.md} +3 -1
  6. package/dist/agent-src/commands/analyze.md +9 -6
  7. package/dist/agent-src/commands/{bug-fix.md → bug/fix.md} +3 -1
  8. package/dist/agent-src/commands/{bug-investigate.md → bug/investigate.md} +4 -2
  9. package/dist/agent-src/commands/bug.md +59 -0
  10. package/dist/agent-src/commands/{set-cost-profile.md → cost/profile.md} +9 -6
  11. package/dist/agent-src/commands/{cost-report.md → cost/report.md} +18 -17
  12. package/dist/agent-src/commands/cost.md +57 -0
  13. package/dist/agent-src/commands/evals/{review-changes.json → review.json} +12 -8
  14. package/dist/agent-src/commands/{quality-fix.md → fix/quality.md} +5 -2
  15. package/dist/agent-src/commands/fix.md +7 -4
  16. package/dist/agent-src/commands/optimize/project.md +250 -0
  17. package/dist/agent-src/commands/{optimize-prompt.md → optimize/prompt.md} +3 -2
  18. package/dist/agent-src/commands/optimize.md +17 -12
  19. package/dist/agent-src/commands/{package-reset.md → package/reset.md} +2 -0
  20. package/dist/agent-src/commands/{package-test.md → package/test.md} +3 -1
  21. package/dist/agent-src/commands/package.md +56 -0
  22. package/dist/agent-src/commands/{project-analyze.md → project/analyze.md} +10 -8
  23. package/dist/agent-src/commands/{project-health.md → project/health.md} +2 -0
  24. package/dist/agent-src/commands/project.md +60 -0
  25. package/dist/agent-src/commands/{review-changes.md → review/changes.md} +26 -24
  26. package/dist/agent-src/commands/{review-routing.md → review/routing.md} +21 -17
  27. package/dist/agent-src/commands/review.md +61 -0
  28. package/dist/agent-src/commands/security-audit-config.md +24 -23
  29. package/dist/agent-src/commands/{sync-agent-settings.md → sync/agent-settings.md} +11 -7
  30. package/dist/agent-src/commands/{sync-gitignore → sync/gitignore}/fix.md +36 -27
  31. package/dist/agent-src/commands/{sync-gitignore.md → sync/gitignore.md} +22 -21
  32. package/dist/agent-src/commands/sync.md +58 -0
  33. package/dist/agent-src/commands/{e2e-heal.md → tests/e2e-heal.md} +5 -2
  34. package/dist/agent-src/commands/{e2e-plan.md → tests/e2e-plan.md} +5 -2
  35. package/dist/agent-src/commands/tests.md +11 -5
  36. package/dist/agent-src/contexts/augment-infrastructure.md +3 -3
  37. package/dist/agent-src/contexts/execution/toolchain-resolver.md +1 -1
  38. package/dist/agent-src/contexts/skills-and-commands.md +2 -2
  39. package/dist/agent-src/rules/external-reference-deep-dive.md +1 -1
  40. package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +2 -2
  41. package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +1 -1
  42. package/dist/agent-src/skills/judge-bug-hunter/SKILL.md +1 -1
  43. package/dist/agent-src/skills/judge-code-quality/SKILL.md +1 -1
  44. package/dist/agent-src/skills/judge-security-auditor/SKILL.md +1 -1
  45. package/dist/agent-src/skills/judge-synthesis/SKILL.md +1 -1
  46. package/dist/agent-src/skills/judge-test-coverage/SKILL.md +1 -1
  47. package/dist/agent-src/skills/markitdown/SKILL.md +1 -1
  48. package/dist/agent-src/skills/mobile-e2e-strategy/SKILL.md +5 -5
  49. package/dist/agent-src/skills/prompt-optimizer/SKILL.md +2 -2
  50. package/dist/agent-src/skills/quality-tools/SKILL.md +1 -1
  51. package/dist/agent-src/skills/repomix-packer/SKILL.md +1 -1
  52. package/dist/agent-src/skills/requesting-code-review/SKILL.md +2 -2
  53. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
  54. package/dist/agent-src/templates/agent-settings.md +1 -1
  55. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +2 -2
  56. package/dist/agent-src/templates/scripts/work_engine/stack/runner.ts +1 -1
  57. package/dist/cli/commands/config.js +44 -0
  58. package/dist/cli/commands/config.js.map +1 -0
  59. package/dist/cli/commands/uiServe.js +1 -0
  60. package/dist/cli/commands/uiServe.js.map +1 -1
  61. package/dist/cli/help.js +38 -0
  62. package/dist/cli/help.js.map +1 -0
  63. package/dist/cli/initRouting.js +16 -1
  64. package/dist/cli/initRouting.js.map +1 -1
  65. package/dist/cli/main.js +43 -37
  66. package/dist/cli/main.js.map +1 -1
  67. package/dist/cli/registry.js +45 -44
  68. package/dist/cli/registry.js.map +1 -1
  69. package/dist/discovery/deprecation-report.md +1 -1
  70. package/dist/discovery/discovery-manifest.json +419 -210
  71. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  72. package/dist/discovery/discovery-manifest.summary.md +4 -4
  73. package/dist/discovery/orphan-report.md +1 -1
  74. package/dist/discovery/packs.json +31 -25
  75. package/dist/discovery/trust-report.md +2 -2
  76. package/dist/discovery/workspaces.json +30 -24
  77. package/dist/install/install.mjs +6064 -159
  78. package/dist/install/selectedTools.js +39 -10
  79. package/dist/install/selectedTools.js.map +1 -1
  80. package/dist/mcp/registry-manifest.json +3 -3
  81. package/dist/server/app.js +15 -3
  82. package/dist/server/app.js.map +1 -1
  83. package/dist/server/routes/ping.js +16 -0
  84. package/dist/server/routes/ping.js.map +1 -1
  85. package/dist/server/routes/settings.js +42 -6
  86. package/dist/server/routes/settings.js.map +1 -1
  87. package/dist/server/routes/settingsChanges.js +55 -0
  88. package/dist/server/routes/settingsChanges.js.map +1 -0
  89. package/dist/server/routes/userMd.js +7 -2
  90. package/dist/server/routes/userMd.js.map +1 -1
  91. package/dist/server/routes/wizard.js +76 -14
  92. package/dist/server/routes/wizard.js.map +1 -1
  93. package/dist/server/writeRoot.js +17 -0
  94. package/dist/server/writeRoot.js.map +1 -1
  95. package/dist/shared/settingsSurface.js +120 -0
  96. package/dist/shared/settingsSurface.js.map +1 -0
  97. package/dist/ui/assets/index-BPFMZWUs.css +1 -0
  98. package/dist/ui/assets/index-BiEZiZ31.js +40 -0
  99. package/dist/ui/assets/index-BiEZiZ31.js.map +1 -0
  100. package/dist/ui/index.html +15 -2
  101. package/docs/CLAIMS.md +20 -15
  102. package/docs/architecture.md +1 -1
  103. package/docs/catalog.md +37 -31
  104. package/docs/command-flows.md +22 -16
  105. package/docs/contracts/command-clusters.md +39 -9
  106. package/docs/contracts/file-ownership-matrix.json +21 -0
  107. package/docs/contracts/frontmatter-contract.md +1 -1
  108. package/docs/contracts/gui-wizard.md +16 -4
  109. package/docs/contracts/iron-law-overrides.txt +1 -0
  110. package/docs/contracts/rule-classification.md +2 -2
  111. package/docs/contracts/settings-api.md +58 -2
  112. package/docs/contracts/surface-matrix.md +5 -0
  113. package/docs/cookbook.md +7 -7
  114. package/docs/decisions/ADR-114-commit-policy-iron-law-override.md +74 -0
  115. package/docs/decisions/ADR-115-command-cluster-consolidation-phase-4.md +91 -0
  116. package/docs/decisions/INDEX.md +2 -0
  117. package/docs/featured-commands.md +1 -1
  118. package/docs/featured-skills.md +4 -4
  119. package/docs/flows.md +2 -2
  120. package/docs/getting-started-by-role.md +1 -1
  121. package/docs/getting-started-laravel.md +1 -1
  122. package/docs/getting-started.md +6 -3
  123. package/docs/governance-advantage.md +1 -1
  124. package/docs/guidelines/agent-infra/5w2h-analysis.md +1 -1
  125. package/docs/guidelines/agent-infra/ios-simulator-guide.md +1 -1
  126. package/docs/proof.md +11 -2
  127. package/package.json +6 -1
  128. package/src/agent-src/README.md +64 -0
  129. package/src/agent-src/scripts/archive_completed_roadmaps.ts +497 -0
  130. package/src/agent-src/scripts/scan-seeder-violations.php +145 -0
  131. package/src/agent-src/scripts/update_roadmap_progress.ts +1087 -0
  132. package/src/agent-src/templates/AGENTS.md +34 -0
  133. package/src/agent-src/templates/scripts/README.md +195 -0
  134. package/src/agent-src/templates/scripts/check_memory.ts +662 -0
  135. package/src/agent-src/templates/scripts/check_memory_proposal.ts +370 -0
  136. package/src/agent-src/templates/scripts/historical-bug-patterns.example.yml +84 -0
  137. package/src/agent-src/templates/scripts/implement_ticket/__main__.ts +27 -0
  138. package/src/agent-src/templates/scripts/memory_hash.ts +355 -0
  139. package/src/agent-src/templates/scripts/memory_lookup.ts +1089 -0
  140. package/src/agent-src/templates/scripts/memory_report.ts +868 -0
  141. package/src/agent-src/templates/scripts/memory_signal.ts +444 -0
  142. package/src/agent-src/templates/scripts/memory_status.ts +215 -0
  143. package/src/agent-src/templates/scripts/ownership-map.example.yml +87 -0
  144. package/src/agent-src/templates/scripts/pr-risk-config.example.yml +76 -0
  145. package/src/agent-src/templates/scripts/pr_review_routing.ts +544 -0
  146. package/src/agent-src/templates/scripts/pr_risk_review.ts +0 -0
  147. package/src/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
  148. package/src/agent-src/templates/scripts/telemetry/boundary.ts +164 -0
  149. package/src/agent-src/templates/scripts/telemetry/engagement.ts +479 -0
  150. package/src/agent-src/templates/scripts/telemetry/report_renderer.ts +394 -0
  151. package/src/agent-src/templates/scripts/telemetry/settings.ts +210 -0
  152. package/src/agent-src/templates/scripts/telemetry_record.ts +276 -0
  153. package/src/agent-src/templates/scripts/telemetry_report.ts +211 -0
  154. package/src/agent-src/templates/scripts/telemetry_status.ts +333 -0
  155. package/src/agent-src/templates/scripts/tier_usage_report.ts +619 -0
  156. package/src/agent-src/templates/scripts/work_engine/__main__.ts +14 -0
  157. package/src/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +1261 -0
  158. package/src/agent-src/templates/scripts/work_engine/_lib/user_global_paths.ts +329 -0
  159. package/src/agent-src/templates/scripts/work_engine/cli.ts +206 -0
  160. package/src/agent-src/templates/scripts/work_engine/cli_args.ts +249 -0
  161. package/src/agent-src/templates/scripts/work_engine/delivery_state.ts +225 -0
  162. package/src/agent-src/templates/scripts/work_engine/directives/backend/analyze.ts +125 -0
  163. package/src/agent-src/templates/scripts/work_engine/directives/backend/implement.ts +189 -0
  164. package/src/agent-src/templates/scripts/work_engine/directives/backend/index.ts +94 -0
  165. package/src/agent-src/templates/scripts/work_engine/directives/backend/memory.ts +193 -0
  166. package/src/agent-src/templates/scripts/work_engine/directives/backend/plan.ts +267 -0
  167. package/src/agent-src/templates/scripts/work_engine/directives/backend/refine.ts +518 -0
  168. package/src/agent-src/templates/scripts/work_engine/directives/backend/report.ts +379 -0
  169. package/src/agent-src/templates/scripts/work_engine/directives/backend/test.ts +268 -0
  170. package/src/agent-src/templates/scripts/work_engine/directives/backend/verify.ts +258 -0
  171. package/src/agent-src/templates/scripts/work_engine/directives/index.ts +32 -0
  172. package/src/agent-src/templates/scripts/work_engine/directives/mixed/contract.ts +243 -0
  173. package/src/agent-src/templates/scripts/work_engine/directives/mixed/index.ts +108 -0
  174. package/src/agent-src/templates/scripts/work_engine/directives/mixed/stitch.ts +259 -0
  175. package/src/agent-src/templates/scripts/work_engine/directives/mixed/ui.ts +216 -0
  176. package/src/agent-src/templates/scripts/work_engine/directives/ui/_passthrough.ts +40 -0
  177. package/src/agent-src/templates/scripts/work_engine/directives/ui/app_spec.ts +241 -0
  178. package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +216 -0
  179. package/src/agent-src/templates/scripts/work_engine/directives/ui/audit.ts +506 -0
  180. package/src/agent-src/templates/scripts/work_engine/directives/ui/design.ts +325 -0
  181. package/src/agent-src/templates/scripts/work_engine/directives/ui/index.ts +102 -0
  182. package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +462 -0
  183. package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +474 -0
  184. package/src/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +352 -0
  185. package/src/agent-src/templates/scripts/work_engine/directives/ui_trivial/_skipped.ts +33 -0
  186. package/src/agent-src/templates/scripts/work_engine/directives/ui_trivial/apply.ts +213 -0
  187. package/src/agent-src/templates/scripts/work_engine/directives/ui_trivial/index.ts +111 -0
  188. package/src/agent-src/templates/scripts/work_engine/directives/ui_trivial/refine.ts +126 -0
  189. package/src/agent-src/templates/scripts/work_engine/directives/ui_trivial/report.ts +112 -0
  190. package/src/agent-src/templates/scripts/work_engine/directives/ui_trivial/test.ts +164 -0
  191. package/src/agent-src/templates/scripts/work_engine/dispatcher.ts +515 -0
  192. package/src/agent-src/templates/scripts/work_engine/emitters.ts +119 -0
  193. package/src/agent-src/templates/scripts/work_engine/errors.ts +24 -0
  194. package/src/agent-src/templates/scripts/work_engine/hook_bootstrap.ts +104 -0
  195. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/_chat_history_base.ts +189 -0
  196. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_append.ts +41 -0
  197. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_halt_append.ts +89 -0
  198. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/decision_gate.ts +193 -0
  199. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +304 -0
  200. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/directive_set_guard.ts +110 -0
  201. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/halt_surface_audit.ts +118 -0
  202. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/index.ts +17 -0
  203. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +161 -0
  204. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/state_shape_validation.ts +45 -0
  205. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/trace.ts +134 -0
  206. package/src/agent-src/templates/scripts/work_engine/hooks/context.ts +94 -0
  207. package/src/agent-src/templates/scripts/work_engine/hooks/events.ts +58 -0
  208. package/src/agent-src/templates/scripts/work_engine/hooks/exceptions.ts +85 -0
  209. package/src/agent-src/templates/scripts/work_engine/hooks/index.ts +27 -0
  210. package/src/agent-src/templates/scripts/work_engine/hooks/registry.ts +66 -0
  211. package/src/agent-src/templates/scripts/work_engine/hooks/runner.ts +90 -0
  212. package/src/agent-src/templates/scripts/work_engine/hooks/settings.ts +260 -0
  213. package/src/agent-src/templates/scripts/work_engine/input_builders.ts +260 -0
  214. package/src/agent-src/templates/scripts/work_engine/intent/classify.ts +466 -0
  215. package/src/agent-src/templates/scripts/work_engine/migration/v0_to_v1.ts +531 -0
  216. package/src/agent-src/templates/scripts/work_engine/orchestration.ts +366 -0
  217. package/src/agent-src/templates/scripts/work_engine/persona_policy.ts +97 -0
  218. package/src/agent-src/templates/scripts/work_engine/resolvers/diff.ts +135 -0
  219. package/src/agent-src/templates/scripts/work_engine/resolvers/file.ts +175 -0
  220. package/src/agent-src/templates/scripts/work_engine/resolvers/prompt.ts +115 -0
  221. package/src/agent-src/templates/scripts/work_engine/scoring/confidence.ts +415 -0
  222. package/src/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +466 -0
  223. package/src/agent-src/templates/scripts/work_engine/scoring/decision_trace.ts +298 -0
  224. package/src/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +444 -0
  225. package/src/agent-src/templates/scripts/work_engine/stack/detect.ts +252 -0
  226. package/src/agent-src/templates/scripts/work_engine/stack/runner.ts +745 -0
  227. package/src/agent-src/templates/scripts/work_engine/state.ts +1151 -0
  228. package/src/agent-src/templates/scripts/work_engine/state_io.ts +413 -0
  229. package/src/config/agent-settings.template.yml +1 -1
  230. package/src/install/atomic.ts +111 -0
  231. package/src/install/conflict.ts +226 -0
  232. package/src/install/detect.ts +280 -0
  233. package/src/install/paths.ts +90 -0
  234. package/src/install/plan.ts +205 -0
  235. package/src/install/preflight.ts +210 -0
  236. package/src/install/selectedTools.ts +80 -0
  237. package/src/install/toolDetection.ts +120 -0
  238. package/src/install/txlog.ts +161 -0
  239. package/src/install/types.ts +175 -0
  240. package/src/install/wizard-plan.ts +216 -0
  241. package/src/scripts/_cli/cmd_converge.ts +38 -0
  242. package/src/scripts/_cli/cmd_doctor.ts +113 -2
  243. package/src/scripts/_cli/cmd_explain.ts +2 -2
  244. package/src/scripts/_cli/cmd_export.ts +3 -3
  245. package/src/scripts/_cli/cmd_fleet.ts +13 -1
  246. package/src/scripts/_cli/cmd_migrate.ts +3 -3
  247. package/src/scripts/_cli/cmd_prune.ts +2 -2
  248. package/src/scripts/_cli/cmd_refresh.ts +4 -4
  249. package/src/scripts/_cli/cmd_settings_check.ts +2 -2
  250. package/src/scripts/_cli/cmd_settings_migrate.ts +2 -2
  251. package/src/scripts/_cli/cmd_sync.ts +2 -2
  252. package/src/scripts/_cli/cmd_uninstall.ts +2 -2
  253. package/src/scripts/_cli/cmd_update.ts +8 -8
  254. package/src/scripts/_cli/cmd_upgrade.ts +4 -3
  255. package/src/scripts/_cli/cmd_validate.ts +3 -3
  256. package/src/scripts/_cli/cmd_versions.ts +2 -2
  257. package/src/scripts/_cli/explain_last/assumptions.ts +2 -2
  258. package/src/scripts/_cli/explain_last/council.ts +2 -2
  259. package/src/scripts/_cli/explain_last/halt.ts +2 -2
  260. package/src/scripts/_cli/explain_last/index.ts +2 -2
  261. package/src/scripts/_cli/explain_last/inputs.ts +4 -4
  262. package/src/scripts/_cli/explain_last/memory.ts +2 -2
  263. package/src/scripts/_cli/explain_last/provider.ts +2 -2
  264. package/src/scripts/_cli/explain_last/render.ts +2 -2
  265. package/src/scripts/_cli/explain_last/route.ts +2 -2
  266. package/src/scripts/_cli/explain_last/scrubber.ts +2 -2
  267. package/src/scripts/_cli/explain_last/sections/assumptions.ts +2 -2
  268. package/src/scripts/_cli/explain_last/sections/council.ts +2 -2
  269. package/src/scripts/_cli/explain_last/sections/halt.ts +2 -2
  270. package/src/scripts/_cli/explain_last/sections/header.ts +2 -2
  271. package/src/scripts/_cli/explain_last/sections/index.ts +1 -1
  272. package/src/scripts/_cli/explain_last/sections/inputs.ts +2 -2
  273. package/src/scripts/_cli/explain_last/sections/memory.ts +2 -2
  274. package/src/scripts/_cli/explain_last/sections/pack.ts +2 -2
  275. package/src/scripts/_cli/explain_last/sections/provider.ts +2 -2
  276. package/src/scripts/_cli/explain_last/sections/route.ts +2 -2
  277. package/src/scripts/_cli/explain_last/state_loader.ts +2 -2
  278. package/src/scripts/_dispatch.bash +20 -1
  279. package/src/scripts/_lib/agent_settings.ts +1 -1
  280. package/src/scripts/_lib/agent_src.ts +7 -7
  281. package/src/scripts/_lib/agents_overlay.ts +1 -1
  282. package/src/scripts/_lib/bench_ab_cache.ts +1 -1
  283. package/src/scripts/_lib/bench_ab_scoring.ts +1 -1
  284. package/src/scripts/_lib/bench_ab_scoring_v2.ts +3 -3
  285. package/src/scripts/_lib/bench_cost.ts +1 -1
  286. package/src/scripts/_lib/bench_quality.ts +3 -3
  287. package/src/scripts/_lib/bench_report.ts +4 -4
  288. package/src/scripts/_lib/bench_telegraph.ts +1 -1
  289. package/src/scripts/_lib/bench_telegraph_report.ts +4 -4
  290. package/src/scripts/_lib/changelog_eras.ts +1 -1
  291. package/src/scripts/_lib/claude_desktop_bundler.ts +1 -1
  292. package/src/scripts/_lib/cli_wrapper.ts +1 -1
  293. package/src/scripts/_lib/fs_atomic.ts +1 -1
  294. package/src/scripts/_lib/global_deploy_inventory.ts +1 -1
  295. package/src/scripts/_lib/install_layout.ts +1 -1
  296. package/src/scripts/_lib/install_regenerator.ts +1 -1
  297. package/src/scripts/_lib/installed_lock.ts +1 -1
  298. package/src/scripts/_lib/installed_tools.ts +1 -1
  299. package/src/scripts/_lib/json_pointers.ts +1 -1
  300. package/src/scripts/_lib/knowledge_global.ts +1 -1
  301. package/src/scripts/_lib/knowledge_global_promote.ts +2 -2
  302. package/src/scripts/_lib/knowledge_global_redaction.ts +2 -2
  303. package/src/scripts/_lib/link_crypto.ts +4 -4
  304. package/src/scripts/_lib/linked_projects.ts +4 -4
  305. package/src/scripts/_lib/model_tier.ts +1 -1
  306. package/src/scripts/_lib/module_detection.ts +2 -2
  307. package/src/scripts/_lib/pin_resolver.ts +1 -1
  308. package/src/scripts/_lib/script_output.ts +1 -1
  309. package/src/scripts/_lib/security_lint.ts +1 -1
  310. package/src/scripts/_lib/surface_tiers.ts +1 -1
  311. package/src/scripts/_lib/text_similarity.ts +1 -1
  312. package/src/scripts/_lib/update_check.ts +2 -2
  313. package/src/scripts/_lib/user_global_paths.ts +1 -1
  314. package/src/scripts/_lib/value_ladder.ts +1 -1
  315. package/src/scripts/_lib/value_report.ts +1 -1
  316. package/src/scripts/_lib/zip_min.ts +2 -2
  317. package/src/scripts/adoption_report.ts +3 -3
  318. package/src/scripts/adoption_snapshot.ts +3 -3
  319. package/src/scripts/adoption_status.ts +2 -2
  320. package/src/scripts/adr/regenerate_index.ts +3 -3
  321. package/src/scripts/ai_council/_default_prices.ts +2 -3
  322. package/src/scripts/ai_council/advisors.ts +1 -1
  323. package/src/scripts/ai_council/airgap.ts +1 -1
  324. package/src/scripts/ai_council/budget_guard.ts +1 -1
  325. package/src/scripts/ai_council/bundler.ts +1 -1
  326. package/src/scripts/ai_council/cli_hints.ts +1 -1
  327. package/src/scripts/ai_council/clients.ts +5 -5
  328. package/src/scripts/ai_council/compile_corpus.ts +1 -1
  329. package/src/scripts/ai_council/confidence_gate.ts +1 -1
  330. package/src/scripts/ai_council/config.ts +1 -1
  331. package/src/scripts/ai_council/consensus.ts +1 -1
  332. package/src/scripts/ai_council/events_log.ts +1 -1
  333. package/src/scripts/ai_council/learn_low_impact_preview.ts +1 -1
  334. package/src/scripts/ai_council/low_impact_corpus.ts +1 -1
  335. package/src/scripts/ai_council/low_impact_intake.ts +1 -1
  336. package/src/scripts/ai_council/modes.ts +1 -1
  337. package/src/scripts/ai_council/orchestrator.ts +3 -3
  338. package/src/scripts/ai_council/pricing.ts +2 -2
  339. package/src/scripts/ai_council/probation_gate.ts +2 -2
  340. package/src/scripts/ai_council/project_context.ts +1 -1
  341. package/src/scripts/ai_council/prompts.ts +1 -1
  342. package/src/scripts/ai_council/redact_low_impact_entry.ts +2 -2
  343. package/src/scripts/ai_council/session.ts +1 -1
  344. package/src/scripts/ai_council/shadow_dispatch.ts +1 -1
  345. package/src/scripts/ai_council/solo_dispatch.ts +1 -1
  346. package/src/scripts/analysis_freshness.ts +2 -2
  347. package/src/scripts/annotate_discovery.ts +2 -2
  348. package/src/scripts/apply_modules_config.ts +2 -2
  349. package/src/scripts/audit_adr_coverage.ts +3 -3
  350. package/src/scripts/audit_auto_rules.ts +2 -2
  351. package/src/scripts/audit_cloud_compatibility.ts +3 -3
  352. package/src/scripts/audit_command_surface.ts +2 -2
  353. package/src/scripts/audit_initial_context.ts +7 -6
  354. package/src/scripts/audit_likelihood.ts +5 -5
  355. package/src/scripts/audit_mcp_tools.ts +3 -3
  356. package/src/scripts/audit_overlap.ts +2 -2
  357. package/src/scripts/audit_skill_descriptions.ts +2 -2
  358. package/src/scripts/audit_skill_overlap.ts +5 -5
  359. package/src/scripts/audit_user_type_axis.ts +4 -4
  360. package/src/scripts/backfill_model_tier.ts +1 -1
  361. package/src/scripts/bench_ab_cache_dispatch.ts +2 -2
  362. package/src/scripts/bench_ab_clone.ts +2 -2
  363. package/src/scripts/bench_ab_diff.ts +3 -3
  364. package/src/scripts/bench_ab_integrity.ts +2 -2
  365. package/src/scripts/bench_ab_run.ts +4 -4
  366. package/src/scripts/bench_ab_task_runner.ts +1 -1
  367. package/src/scripts/bench_ab_tracka_run.ts +2 -2
  368. package/src/scripts/bench_ab_v2_run.ts +1 -1
  369. package/src/scripts/bench_ab_v2_stats.ts +2 -2
  370. package/src/scripts/bench_baseline_ready.ts +1 -1
  371. package/src/scripts/bench_condense_memory.ts +4 -4
  372. package/src/scripts/bench_drift_check.ts +3 -3
  373. package/src/scripts/bench_per_tool.ts +1 -1
  374. package/src/scripts/bench_rtk_savings.ts +4 -4
  375. package/src/scripts/bench_run.ts +4 -4
  376. package/src/scripts/bench_runner.ts +1 -1
  377. package/src/scripts/build_cloud_bundle.ts +3 -3
  378. package/src/scripts/build_discovery_manifest.ts +13 -15
  379. package/src/scripts/build_linear_digest.ts +2 -2
  380. package/src/scripts/build_mcp_registry_manifest.ts +3 -3
  381. package/src/scripts/build_proof.ts +6 -0
  382. package/src/scripts/build_rule_trigger_matrix.ts +2 -2
  383. package/src/scripts/capture_showcase_session.ts +3 -3
  384. package/src/scripts/chat_history.ts +1 -1
  385. package/src/scripts/check_always_budget.ts +1 -1
  386. package/src/scripts/check_artefact_checksums.ts +4 -4
  387. package/src/scripts/check_artefact_count_messaging.ts +197 -0
  388. package/src/scripts/check_augment_description_cap.ts +3 -3
  389. package/src/scripts/check_augmentignore.ts +1 -1
  390. package/src/scripts/check_beta_review_markers.ts +3 -3
  391. package/src/scripts/check_bite_sized_granularity.ts +1 -1
  392. package/src/scripts/check_cluster_patterns.ts +47 -3
  393. package/src/scripts/check_command_count_messaging.ts +2 -2
  394. package/src/scripts/check_condensation.ts +2 -2
  395. package/src/scripts/check_condensed_paths.ts +6 -6
  396. package/src/scripts/check_context_paths.ts +1 -1
  397. package/src/scripts/check_council_config_location.ts +3 -3
  398. package/src/scripts/check_council_layout.ts +2 -2
  399. package/src/scripts/check_council_references.ts +2 -2
  400. package/src/scripts/check_discovery_determinism.ts +3 -3
  401. package/src/scripts/check_gate_paths.ts +4 -4
  402. package/src/scripts/check_iron_law_prominence.ts +2 -2
  403. package/src/scripts/check_kernel_rule_bundle.ts +3 -3
  404. package/src/scripts/check_knowledge_cards.ts +4 -4
  405. package/src/scripts/check_knowledge_pages.ts +1 -1
  406. package/src/scripts/check_md_language.ts +3 -3
  407. package/src/scripts/check_memory.ts +3 -3
  408. package/src/scripts/check_memory_proposal.ts +2 -2
  409. package/src/scripts/check_module_management_neutral.ts +1 -1
  410. package/src/scripts/check_no_conflict_markers.ts +1 -1
  411. package/src/scripts/check_no_external_sources.ts +1 -1
  412. package/src/scripts/check_no_local_settings_committed.ts +2 -2
  413. package/src/scripts/check_no_new_legacy_path.ts +3 -3
  414. package/src/scripts/check_no_roadmap_refs.ts +3 -3
  415. package/src/scripts/check_one_off_location.ts +3 -3
  416. package/src/scripts/check_overlay_cascade_subdirs.ts +3 -3
  417. package/src/scripts/check_portability.ts +3 -3
  418. package/src/scripts/check_proposal.ts +0 -0
  419. package/src/scripts/check_public_catalog_links.ts +1 -1
  420. package/src/scripts/check_public_links.ts +2 -2
  421. package/src/scripts/check_references.ts +3 -3
  422. package/src/scripts/check_release_includes_discovery.ts +2 -2
  423. package/src/scripts/check_release_pr_shape.ts +2 -2
  424. package/src/scripts/check_release_published.ts +1 -1
  425. package/src/scripts/check_release_trunk_sync.ts +3 -3
  426. package/src/scripts/check_reply_consistency.ts +1 -1
  427. package/src/scripts/check_roadmap_trackable.ts +2 -2
  428. package/src/scripts/check_role_doc_links.ts +2 -2
  429. package/src/scripts/check_safety_floor_untouched.ts +3 -3
  430. package/src/scripts/check_skill_requires.ts +2 -2
  431. package/src/scripts/check_structural_breaking.ts +2 -2
  432. package/src/scripts/check_surface_tiers.ts +2 -2
  433. package/src/scripts/check_template_pin_drift.ts +1 -1
  434. package/src/scripts/check_test_coverage_diff.ts +2 -2
  435. package/src/scripts/check_token_optimizer_freshness.ts +3 -3
  436. package/src/scripts/check_trigger_evals.ts +2 -2
  437. package/src/scripts/check_update_banner.ts +1 -1
  438. package/src/scripts/ci_status.ts +0 -0
  439. package/src/scripts/ci_summary.ts +3 -3
  440. package/src/scripts/ci_time_ratio.ts +1 -1
  441. package/src/scripts/command_suggester/cooldown.ts +1 -1
  442. package/src/scripts/command_suggester/index.ts +1 -1
  443. package/src/scripts/command_suggester/loader.ts +1 -1
  444. package/src/scripts/command_suggester/match.ts +1 -1
  445. package/src/scripts/command_suggester/rank.ts +1 -1
  446. package/src/scripts/command_suggester/render.ts +1 -1
  447. package/src/scripts/command_suggester/sanitize.ts +1 -1
  448. package/src/scripts/command_suggester/settings.ts +1 -1
  449. package/src/scripts/command_suggester/types.ts +0 -0
  450. package/src/scripts/compile_router.ts +4 -4
  451. package/src/scripts/condense.ts +3 -3
  452. package/src/scripts/condense_memory.ts +1 -1
  453. package/src/scripts/config/index.ts +1 -1
  454. package/src/scripts/config/packs.ts +1 -1
  455. package/src/scripts/config/presets.ts +1 -1
  456. package/src/scripts/config/profile_explain.ts +1 -1
  457. package/src/scripts/config/profiles.ts +1 -1
  458. package/src/scripts/config/session_profiles.ts +1 -1
  459. package/src/scripts/context_hygiene_hook.ts +2 -2
  460. package/src/scripts/cost_by_conversation.ts +1 -1
  461. package/src/scripts/cost_summary.ts +2 -2
  462. package/src/scripts/council_cli.ts +1 -1
  463. package/src/scripts/council_prune.ts +1 -1
  464. package/src/scripts/cross_repo_retrieve.ts +2 -2
  465. package/src/scripts/discovery_stats.ts +3 -3
  466. package/src/scripts/evidence_report.ts +4 -4
  467. package/src/scripts/extract_audit_patterns.ts +2 -2
  468. package/src/scripts/first_run_gate_hook.ts +1 -1
  469. package/src/scripts/gen_discovery_baseline.ts +2 -2
  470. package/src/scripts/generate_capabilities_index.ts +2 -2
  471. package/src/scripts/generate_capability_matrix.ts +2 -2
  472. package/src/scripts/generate_catalog.ts +2 -2
  473. package/src/scripts/generate_command_flows.ts +2 -2
  474. package/src/scripts/generate_cookbook.ts +1 -1
  475. package/src/scripts/generate_index.ts +3 -3
  476. package/src/scripts/generate_ownership_matrix.ts +2 -2
  477. package/src/scripts/generate_pack_manifests.ts +2 -2
  478. package/src/scripts/generate_role_experiences_catalog.ts +3 -3
  479. package/src/scripts/hooks/block_no_verify.ts +2 -2
  480. package/src/scripts/hooks/dispatch_hook.ts +2 -2
  481. package/src/scripts/hooks/dispatch_issues.ts +1 -1
  482. package/src/scripts/hooks/envelope.ts +1 -1
  483. package/src/scripts/hooks/replay_hook.ts +1 -1
  484. package/src/scripts/hooks/state_io.ts +1 -1
  485. package/src/scripts/hooks_doctor.ts +1 -1
  486. package/src/scripts/hooks_status.ts +1 -1
  487. package/src/scripts/injection_scan_hook.ts +1 -1
  488. package/src/scripts/install.ts +145 -3
  489. package/src/scripts/inventory_abstraction_budget.ts +5 -5
  490. package/src/scripts/inventory_frontmatter.ts +1 -1
  491. package/src/scripts/inventory_meta_layers.ts +1 -1
  492. package/src/scripts/iron_law_sha.ts +1 -1
  493. package/src/scripts/knowledge_global_cli.ts +3 -3
  494. package/src/scripts/linked_projects_list.ts +1 -1
  495. package/src/scripts/lint_agent_security.ts +4 -4
  496. package/src/scripts/lint_agent_skill_names.ts +1 -1
  497. package/src/scripts/lint_agents_layout.ts +2 -2
  498. package/src/scripts/lint_agents_md.ts +3 -3
  499. package/src/scripts/lint_archived_skills.ts +2 -2
  500. package/src/scripts/lint_artefact_frontmatter.ts +2 -2
  501. package/src/scripts/lint_bench_ab.ts +2 -2
  502. package/src/scripts/lint_bench_corpus.ts +1 -1
  503. package/src/scripts/lint_command_flow_coverage.ts +1 -1
  504. package/src/scripts/lint_command_routing.ts +2 -2
  505. package/src/scripts/lint_command_tiers.ts +1 -1
  506. package/src/scripts/lint_command_verbs.ts +4 -4
  507. package/src/scripts/lint_commit_subjects.ts +2 -2
  508. package/src/scripts/lint_context_spine_usage.ts +3 -3
  509. package/src/scripts/lint_discovery_manifest.ts +4 -4
  510. package/src/scripts/lint_discovery_vocabulary.ts +2 -2
  511. package/src/scripts/lint_empty_roadmaps.ts +3 -3
  512. package/src/scripts/lint_eval_freshness.ts +2 -2
  513. package/src/scripts/lint_examples.ts +2 -2
  514. package/src/scripts/lint_explain_trace.ts +2 -2
  515. package/src/scripts/lint_featured_skills.ts +0 -0
  516. package/src/scripts/lint_flows.ts +5 -5
  517. package/src/scripts/lint_framework_leakage.ts +1 -1
  518. package/src/scripts/lint_framework_leakage_allowlist.json +10 -2
  519. package/src/scripts/lint_frontmatter_boilerplate.ts +2 -2
  520. package/src/scripts/lint_ghostwriter_source.ts +3 -3
  521. package/src/scripts/lint_global_paths.ts +1 -1
  522. package/src/scripts/lint_handoffs.ts +1 -1
  523. package/src/scripts/lint_hidden_unicode.ts +1 -1
  524. package/src/scripts/lint_hook_concern_budget.ts +2 -2
  525. package/src/scripts/lint_hook_manifest.ts +2 -2
  526. package/src/scripts/lint_instruction_smuggling.ts +1 -1
  527. package/src/scripts/lint_load_context.ts +2 -2
  528. package/src/scripts/lint_marketplace.ts +1 -1
  529. package/src/scripts/lint_marketplace_install_completeness.ts +2 -2
  530. package/src/scripts/lint_mcp_config_security.ts +1 -1
  531. package/src/scripts/lint_mcp_registry_manifest.ts +1 -1
  532. package/src/scripts/lint_media_policy_linkage.ts +3 -3
  533. package/src/scripts/lint_missions.ts +3 -3
  534. package/src/scripts/lint_model_tier_coverage.ts +3 -3
  535. package/src/scripts/lint_namespace.ts +2 -2
  536. package/src/scripts/lint_namespace_collisions.ts +2 -2
  537. package/src/scripts/lint_new_skill_gate.ts +3 -3
  538. package/src/scripts/lint_no_new_atomic_commands.ts +9 -6
  539. package/src/scripts/lint_no_python_twin_rationale.ts +102 -0
  540. package/src/scripts/lint_one_off_age.ts +2 -2
  541. package/src/scripts/lint_orchestration_dsl.ts +3 -3
  542. package/src/scripts/lint_orchestrator_auto_detect.ts +1 -1
  543. package/src/scripts/lint_pack_boundaries.ts +2 -2
  544. package/src/scripts/lint_pack_dependencies.ts +2 -2
  545. package/src/scripts/lint_pack_first_win.ts +2 -2
  546. package/src/scripts/lint_persona_governance.ts +3 -3
  547. package/src/scripts/lint_positioning.ts +1 -1
  548. package/src/scripts/lint_profile_overlay_set_only.ts +2 -2
  549. package/src/scripts/lint_readme_jargon.ts +2 -2
  550. package/src/scripts/lint_readme_size.ts +2 -2
  551. package/src/scripts/lint_regression.ts +3 -3
  552. package/src/scripts/lint_roadmap_ci_steps.ts +3 -3
  553. package/src/scripts/lint_roadmap_complexity.ts +1 -1
  554. package/src/scripts/lint_roadmap_later_disposition.ts +2 -2
  555. package/src/scripts/lint_role_experiences.ts +2 -2
  556. package/src/scripts/lint_rule_interactions.ts +1 -1
  557. package/src/scripts/lint_rule_tiers.ts +1 -1
  558. package/src/scripts/lint_showcase_sessions.ts +2 -2
  559. package/src/scripts/lint_skill_frontmatter_safety.ts +1 -1
  560. package/src/scripts/lint_skill_originality.ts +1 -1
  561. package/src/scripts/lint_skill_tools.ts +3 -3
  562. package/src/scripts/lint_ticket_buildable.ts +2 -2
  563. package/src/scripts/lint_topics_yaml.ts +3 -3
  564. package/src/scripts/lint_trust_coherence.ts +3 -3
  565. package/src/scripts/lint_value_dashboard.ts +3 -3
  566. package/src/scripts/lint_workflow_security.ts +3 -3
  567. package/src/scripts/lint_workspace_boundary.ts +2 -2
  568. package/src/scripts/mcp_parity_smoke.ts +1 -1
  569. package/src/scripts/mcp_render.ts +1 -1
  570. package/src/scripts/mcp_server/catalog.ts +1 -1
  571. package/src/scripts/mcp_server/index.ts +1 -1
  572. package/src/scripts/mcp_server/metadata.ts +1 -1
  573. package/src/scripts/mcp_server/prompts.ts +1 -1
  574. package/src/scripts/mcp_server/resources.ts +1 -1
  575. package/src/scripts/mcp_server/server.ts +1 -1
  576. package/src/scripts/mcp_server/telemetry.ts +1 -1
  577. package/src/scripts/mcp_server/tools.ts +1 -1
  578. package/src/scripts/mcp_telemetry_health.ts +1 -1
  579. package/src/scripts/mcp_telemetry_query.ts +3 -3
  580. package/src/scripts/mcp_telemetry_store.ts +3 -3
  581. package/src/scripts/measure_augment_budget.ts +2 -2
  582. package/src/scripts/measure_density.ts +2 -2
  583. package/src/scripts/measure_frugality_savings.ts +3 -3
  584. package/src/scripts/measure_markitdown_lift.ts +1 -1
  585. package/src/scripts/measure_patterns.ts +1 -1
  586. package/src/scripts/measure_projection_bytes.ts +1 -1
  587. package/src/scripts/measure_rule_budget.ts +1 -1
  588. package/src/scripts/measure_skill_reduction.ts +1 -1
  589. package/src/scripts/memory_hash.ts +1 -1
  590. package/src/scripts/memory_lookup.ts +6 -6
  591. package/src/scripts/memory_report.ts +1 -1
  592. package/src/scripts/memory_signal.ts +1 -1
  593. package/src/scripts/memory_status.ts +2 -2
  594. package/src/scripts/migrate_command_suggestions.ts +1 -1
  595. package/src/scripts/migrate_frontmatter_defaults.ts +1 -1
  596. package/src/scripts/mine_session.ts +3 -3
  597. package/src/scripts/minimal_safe_diff_hook.ts +2 -2
  598. package/src/scripts/move_artefact.ts +3 -3
  599. package/src/scripts/new_skill.ts +3 -3
  600. package/src/scripts/onboarding_gate_hook.ts +2 -2
  601. package/src/scripts/pack_mcp_content.ts +1 -1
  602. package/src/scripts/parity/replay.ts +3 -2
  603. package/src/scripts/pattern_share.ts +2 -2
  604. package/src/scripts/plan_physical_move.ts +3 -3
  605. package/src/scripts/prediction-pool/poisson_sim.ts +2 -2
  606. package/src/scripts/prediction-pool/pool_winsim.ts +2 -2
  607. package/src/scripts/prediction-pool/score_ev.ts +2 -2
  608. package/src/scripts/prepack-check.mjs +108 -5
  609. package/src/scripts/print_required_checks.ts +2 -2
  610. package/src/scripts/probe_projection_fidelity.ts +2 -2
  611. package/src/scripts/probe_skill_registration.ts +2 -2
  612. package/src/scripts/profile_staleness_hook.ts +2 -2
  613. package/src/scripts/profile_use.ts +2 -2
  614. package/src/scripts/project_thin_rules.ts +3 -3
  615. package/src/scripts/propose_modules_config.ts +2 -2
  616. package/src/scripts/prototype_lint_contradictions.ts +2 -2
  617. package/src/scripts/prove_pack_extractable.ts +1 -1
  618. package/src/scripts/readme_linter.ts +4 -4
  619. package/src/scripts/redact_hook_capture.ts +2 -2
  620. package/src/scripts/refine_ticket_detect.ts +1 -1
  621. package/src/scripts/release.ts +30 -19
  622. package/src/scripts/render_benchmark_md.ts +2 -2
  623. package/src/scripts/render_value_md.ts +2 -2
  624. package/src/scripts/roadmap_progress_hook.ts +1 -1
  625. package/src/scripts/router_telemetry.ts +1 -1
  626. package/src/scripts/run_skill_evals.ts +2 -2
  627. package/src/scripts/runtime_dispatcher.ts +1 -1
  628. package/src/scripts/runtime_handler.ts +1 -1
  629. package/src/scripts/runtime_registry.ts +3 -3
  630. package/src/scripts/score_skill_selection.ts +1 -1
  631. package/src/scripts/security_audit_config.ts +2 -2
  632. package/src/scripts/skill_collision_clusters.ts +1 -1
  633. package/src/scripts/skill_discovery.ts +1 -1
  634. package/src/scripts/skill_linter.ts +8 -7
  635. package/src/scripts/skill_overlap.ts +2 -2
  636. package/src/scripts/skill_preview.ts +1 -1
  637. package/src/scripts/skill_tools/audit_persona_coverage.ts +3 -3
  638. package/src/scripts/skill_tools/audit_user_type_coverage.ts +3 -3
  639. package/src/scripts/skill_tools/index.ts +1 -1
  640. package/src/scripts/skill_tools/run_block_d_eval.ts +3 -3
  641. package/src/scripts/skill_tools/score_skill_relevance.ts +3 -3
  642. package/src/scripts/skill_tools/suggest_skill_for_task.ts +3 -3
  643. package/src/scripts/skill_trigger_eval.ts +2 -2
  644. package/src/scripts/skill_usage_collect.ts +2 -2
  645. package/src/scripts/skill_usage_report.ts +2 -2
  646. package/src/scripts/smoke_path_resolution.ts +2 -2
  647. package/src/scripts/smoke_quickstart.ts +4 -4
  648. package/src/scripts/snapshot_agent_outputs.ts +2 -2
  649. package/src/scripts/spotcheck_thin_root.ts +2 -2
  650. package/src/scripts/surface-tiers.yml +1 -0
  651. package/src/scripts/sync_agent_settings.ts +2 -2
  652. package/src/scripts/sync_github_metadata.ts +4 -4
  653. package/src/scripts/sync_gitignore.ts +3 -3
  654. package/src/scripts/sync_yaml_rt.ts +2 -2
  655. package/src/scripts/telegraph_stats.ts +1 -1
  656. package/src/scripts/tool_registry.ts +2 -2
  657. package/src/scripts/tools/adapter_errors.ts +1 -1
  658. package/src/scripts/tools/base_adapter.ts +1 -1
  659. package/src/scripts/tools/github_adapter.ts +1 -1
  660. package/src/scripts/tools/jira_adapter.ts +1 -1
  661. package/src/scripts/trigger_coverage.ts +2 -2
  662. package/src/scripts/update_counts.ts +68 -6
  663. package/src/scripts/update_prices.ts +3 -3
  664. package/src/scripts/validate_agent_settings.ts +3 -3
  665. package/src/scripts/validate_decision_engine.ts +2 -2
  666. package/src/scripts/validate_discovery_manifest.ts +3 -3
  667. package/src/scripts/validate_frontmatter.ts +5 -5
  668. package/src/scripts/validate_pack_yaml.ts +0 -0
  669. package/src/scripts/validate_safe_paths.ts +2 -2
  670. package/src/scripts/validate_telegraph_carveouts.ts +3 -3
  671. package/src/scripts/verify_before_complete_hook.ts +2 -2
  672. package/src/scripts/verify_physical_move.ts +2 -2
  673. package/src/scripts/wrapper_freshness_hook.ts +3 -3
  674. package/src/server/schemas/settings.ts +426 -0
  675. package/src/shared/settingsSurface.ts +184 -0
  676. package/src/shared/userMd/formAdapter.ts +86 -0
  677. package/src/shared/userMd/schema.ts +59 -0
  678. package/src/shared/userMd/utils.ts +91 -0
  679. package/dist/agent-src/commands/optimize-project.md +0 -243
  680. package/dist/ui/assets/index-BbWWuFrF.css +0 -1
  681. package/dist/ui/assets/index-UjcTG_9O.js +0 -40
  682. package/dist/ui/assets/index-UjcTG_9O.js.map +0 -1
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Initial-context token audit (roadmap `road-to-lean-initial-context`).
4
4
  *
5
- * TypeScript twin of `src/scripts/audit_initial_context.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/audit_initial_context.py` (ADR-200 —
6
6
  * Python→TS migration, Phase 8 / Wave 8b). The CLI contract is mirrored
7
7
  * EXACTLY — the `--json` / `--write` / `--fail-if-over-budget` flags,
8
8
  * exit codes (0 ok / advisory · 1 over-budget), the stdout/stderr split,
@@ -10,13 +10,14 @@
10
10
  * (`json.dumps(indent=2, sort_keys=True)`).
11
11
  *
12
12
  * Imports the `_lib/token_count` and `_lib/agent_src` twins (the SAME
13
- * surfaces the Python original imports). `thin_projection()` mirrors the
14
- * Python original exactly: the Python `import`s `project_thin_rules.measure`
13
+ * surfaces the retired Python implementation imports). `thin_projection()` preserves the
14
+ * historical behaviour exactly: the retired implementation imported
15
+ * `project_thin_rules.measure`
15
16
  * and swallows any failure to `{}`; this twin imports the `measure()` of the
16
17
  * `project_thin_rules.ts` twin and falls back to `{}` on any error in the same
17
18
  * best-effort try/catch. The default JSON stays byte-identical.
18
19
  *
19
- * No behaviour changes — latent Python quirks replicated.
20
+ * Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
20
21
  *
21
22
  * NOTE (divergence-free by construction): the `generated` field carries a
22
23
  * UTC timestamp, so the default/`--json`/`--write` outputs are inherently
@@ -80,7 +81,7 @@ export const BUDGETS: Record<string, number | null> = {
80
81
  'rules.gpt': null,
81
82
  'skill_catalog.gpt': 12_500, // always-scanned skill descriptions (skills_core_source, 258); current ~10,999
82
83
  'command_catalog.gpt': 5_800, // always-scanned command catalog; current ~5,005
83
- 'mcp_schemas.gpt': 3_500, // per-connected-client MCP tool schemas; current ~2,942
84
+ 'mcp_schemas.gpt': 4_250, // per-connected-client MCP tool schemas; current ~3,694 after the council-gated run_tests exec pilot (598a8a49f) — re-anchored current + ~15% per this cap's own policy
84
85
  };
85
86
 
86
87
  /**
@@ -324,7 +325,7 @@ export function longest_rules(top = 10): LongestRule[] {
324
325
 
325
326
  // --- thin_projection: delegate to the project_thin_rules twin ----------------
326
327
  //
327
- // The Python original does `from project_thin_rules import measure as _measure`
328
+ // the retired Python implementation does `from project_thin_rules import measure as _measure`
328
329
  // inside a try/except that returns `{}` on any failure. This twin mirrors that
329
330
  // exactly: import the same-named `measure()` from the TS twin and swallow any
330
331
  // error to `{}`. The thin-entry pointer's legacy-path literal now lives ONLY
@@ -3,14 +3,14 @@
3
3
  * Activation-likelihood heuristic for the Rule-Governance pass
4
4
  * (Phase 5.3 of road-to-augment-limit-fit).
5
5
  *
6
- * TypeScript twin of `src/scripts/audit_likelihood.py` (ADR-200 —
6
+ * Ported from the retired Python `src/scripts/audit_likelihood.py` (ADR-200 —
7
7
  * Python→TS migration, Phase 8 / Wave 8c). Mirrors the Python CLI
8
8
  * contract EXACTLY — no flags, exit codes (0 ok / 1 missing audit
9
9
  * JSON), the stdout/stderr split, byte-identical stdout messages, and
10
10
  * byte-identical written artefacts (`json.dumps(..., indent=2)` for the
11
11
  * likelihood dump + the exact appended Markdown section).
12
12
  *
13
- * No `_lib` imports — the Python original has none; it reads the audit
13
+ * No `_lib` imports — the retired Python implementation has none; it reads the audit
14
14
  * JSON written by `audit_auto_rules.py` and globs a fixed corpus.
15
15
  *
16
16
  * For every auto-rule from `agents/reports/auto-rules-audit.json`:
@@ -22,7 +22,7 @@
22
22
  * 3. Score `corpus_hits = sum(1 for token in tokens if token in corpus)`.
23
23
  * 4. Flag rules with `< 2` corpus hits as "low-likelihood".
24
24
  *
25
- * No behaviour changes — latent Python quirks replicated, including the
25
+ * Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour., including the
26
26
  * `dict(sorted(...)[:8])` top-8 hit truncation and the corpus-keyword
27
27
  * heuristic.
28
28
  */
@@ -92,7 +92,7 @@ function pyLen(s: string): number {
92
92
  * Recursive glob for the four fixed patterns. Each pattern is anchored at
93
93
  * REPO_ROOT. `**` matches any depth; the trailing component is a basename or
94
94
  * `*.md` suffix. Returns SORTED absolute paths (Python `Path.glob` yields
95
- * unsorted; the Python original does NOT sort, but iterates corpus globs in
95
+ * unsorted; the retired Python implementation does NOT sort, but iterates corpus globs in
96
96
  * list order and merely counts tokens into a Counter, so token membership is
97
97
  * order-independent — we still walk deterministically).
98
98
  */
@@ -219,7 +219,7 @@ export function score(rule: Json, corpus: Map<string, number>): Score {
219
219
  // dict(sorted(hits.items(), key=lambda x: -x[1])[:8]) — top-8 by volume desc.
220
220
  // Python's sort is stable; ties keep the iteration order of `hits`. Since
221
221
  // `hits` here is sorted by token, ties resolve token-ascending — but the
222
- // CPython original's `hits` dict ordering is hash-based, so ties COULD differ.
222
+ // retired CPython implementation's `hits` dict ordering was hash-based, so ties COULD differ.
223
223
  // This is a latent non-determinism candidate (see report). We canonicalise to
224
224
  // token-ascending tie-break, which the differential test pins.
225
225
  const topHits = stableSortByVolumeDesc(hits).slice(0, 8);
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * MCP-tool inventory generator.
4
4
  *
5
- * TypeScript twin of `src/scripts/audit_mcp_tools.py` (ADR-200 — Python→TS
6
- * migration, Phase 8 / Wave 8b). The CLI contract is mirrored EXACTLY —
5
+ * Ported from the retired Python `src/scripts/audit_mcp_tools.py` (ADR-200 — Python→TS
6
+ * migration, Phase 8 / Wave 8b). The CLI contract is pinned —
7
7
  * the mutually-exclusive `--check` / `--write` flags, `--quiet`, exit codes
8
8
  * (0 ok / in-sync · 1 drift), the stdout/stderr split, byte-identical
9
9
  * messages, and byte-identical written file content.
@@ -14,7 +14,7 @@
14
14
  * `docs/contracts/mcp-tool-inventory.md` with every tool cited by
15
15
  * `<file>:<line>`.
16
16
  *
17
- * No behaviour changes — latent Python quirks replicated.
17
+ * Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
18
18
  */
19
19
  import * as fs from 'node:fs';
20
20
  import * as path from 'node:path';
@@ -3,13 +3,13 @@
3
3
  * Trigger-overlap analysis for the Rule-Governance pass (Phase 5.2 of
4
4
  * road-to-augment-limit-fit).
5
5
  *
6
- * TypeScript twin of `src/scripts/audit_overlap.py` (ADR-200 —
6
+ * Ported from the retired Python `src/scripts/audit_overlap.py` (ADR-200 —
7
7
  * Python→TS migration, Phase 8 / Wave 8c). Mirrors the CLI contract
8
8
  * EXACTLY: no flags, exit codes (0 normal, 1 when the input audit JSON
9
9
  * is missing), byte-identical stdout/stderr split, and byte-identical
10
10
  * written output (`auto-rules-overlap.json` via json.dumps(indent=2)
11
11
  * and the appended `auto-rules-audit.md` section). No behaviour changes
12
- * — latent bugs replicated.
12
+ * — historical quirks preserved (consumers pin the exact behaviour).
13
13
  *
14
14
  * Reads `agents/reports/auto-rules-audit.json` (produced by
15
15
  * `audit_auto_rules.py`) and computes:
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Audit skill descriptions for triggering quality.
4
4
  *
5
- * TypeScript twin of `src/scripts/audit_skill_descriptions.py` (ADR-200,
6
- * Phase 8 Wave 8a). Mirrors the Python CLI contract EXACTLY — flags
5
+ * Ported from the retired Python `src/scripts/audit_skill_descriptions.py` (ADR-200,
6
+ * Phase 8 Wave 8a). The CLI contract is pinned — flags
7
7
  * (`--root`, `--json`, `--full`), exit codes (0 / 2), stdout/stderr split,
8
8
  * byte-identical text table AND byte-identical JSON (`json.dumps(...,
9
9
  * indent=2)`, ensure_ascii=True, field order skill/path/description/
@@ -2,14 +2,14 @@
2
2
  /**
3
3
  * Skill-family content-overlap analysis (6.0.0-C Phase 4 Step 8).
4
4
  *
5
- * TypeScript twin of `src/scripts/audit_skill_overlap.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/audit_skill_overlap.py` (ADR-200 —
6
6
  * Python→TS migration, Phase 8 / Wave 8c). Mirrors the Python CLI
7
7
  * contract EXACTLY — the `--threshold` / `--quiet` flags, exit codes
8
8
  * (0 ok / 3 no skills), the stdout/stderr split, byte-identical stdout
9
9
  * messages, and byte-identical written artefacts (`json.dumps(...,
10
10
  * indent=2)` for the JSON + the exact Markdown renderer).
11
11
  *
12
- * No `_lib` imports — the Python original has none; it carries its own
12
+ * No `_lib` imports — the retired Python implementation has none; it carries its own
13
13
  * `_skill_roots()` (which references the `.agent-src.uncondensed/skills`
14
14
  * layout literally — this twin reproduces that literal faithfully, since
15
15
  * the .py original carries it).
@@ -19,7 +19,7 @@
19
19
  * is >= OVERLAP_THRESHOLD. Same-domain (shared `packs:`) >= threshold pairs
20
20
  * are the merge candidates. THIS SCRIPT MERGES NOTHING.
21
21
  *
22
- * No behaviour changes — latent Python quirks replicated.
22
+ * Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
23
23
  */
24
24
  import * as fs from 'node:fs';
25
25
  import * as path from 'node:path';
@@ -91,8 +91,8 @@ function _iterdirSorted(p: string): string[] {
91
91
  * if not roots and legacy.is_dir(): roots = [legacy]
92
92
  *
93
93
  * `packages.glob("*\/.agent-src.uncondensed/skills")` iterates packages
94
- * children sorted (pathlib glob over a single level is unsorted, but the
95
- * Python original does NOT sort here — it relies on `collect()`'s `seen`
94
+ * children sorted (pathlib glob over a single level is unsorted, and the
95
+ * retired Python implementation did NOT sort here — it relied on `collect()`'s `seen`
96
96
  * dedup keyed on dir name. To stay deterministic we sort the package
97
97
  * children; the resulting root order only affects first-win dedup, and no
98
98
  * skill dir name collides across packages in practice.)
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Audit the user-type axis frontmatter coverage (step-9 Phase 4).
4
4
  *
5
- * TypeScript twin of `src/scripts/audit_user_type_axis.py` (ADR-200,
6
- * Phase 8 / Wave 8a). The CLI contract is mirrored EXACTLY — the single
5
+ * Ported from the retired Python `src/scripts/audit_user_type_axis.py` (ADR-200,
6
+ * Phase 8 / Wave 8a). The CLI contract is pinned — the single
7
7
  * `--quiet` flag, exit code (1 when orphans exist, else 0), the stdout
8
8
  * split, byte-identical stdout summary, AND byte-identical generated
9
9
  * Markdown report. Stdlib-only — no YAML dependency.
@@ -15,14 +15,14 @@
15
15
  * 2. Unused configs — every `user-types/*.yml` should be consumed by at
16
16
  * least one skill. Unused configs are WARN-only (exit 0).
17
17
  *
18
- * NOTE: the Python original scans only the LEGACY `.agent-src.uncondensed/
18
+ * NOTE: the retired Python implementation scans only the LEGACY `.agent-src.uncondensed/
19
19
  * skills/` root (not the 6.0.0-D `src/skills/` library). This twin replicates
20
20
  * that exact root for byte-identical parity. The report path is
21
21
  * `agents/reports/user-type-axis-audit.md` (matching the Python constant,
22
22
  * which differs from the docstring's `agents/runtime/reports/` mention —
23
23
  * latent bug replicated).
24
24
  *
25
- * No behaviour changes — latent Python quirks replicated.
25
+ * Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
26
26
  */
27
27
  import * as fs from 'node:fs';
28
28
  import * as path from 'node:path';
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Backfill / migrate `model_tier` on every skill and command (ADR-035).
4
4
  *
5
- * TypeScript twin of `src/scripts/backfill_model_tier.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/backfill_model_tier.py` (ADR-200 —
6
6
  * Python→TS migration, Phase 8 / Wave 8e). The CLI contract is mirrored
7
7
  * EXACTLY: same flag (`--dry-run`), same exit code (0), same byte-identical
8
8
  * stdout report, and byte-identical frontmatter rewrites of every skill +
@@ -2,13 +2,13 @@
2
2
  /**
3
3
  * Cache-aware dispatch for `task bench:ab` arms.
4
4
  *
5
- * TypeScript twin of `src/scripts/bench_ab_cache_dispatch.py` (ADR-200
5
+ * Ported from the retired Python `src/scripts/bench_ab_cache_dispatch.py` (ADR-200
6
6
  * Python→TS migration, Phase 8 / Wave 8d). Mirrors the CLI contract EXACTLY:
7
7
  * positional `corpus` (`tracka` / `trackb`), the `REMAINDER` `extra` args
8
8
  * forwarded to the underlying runner, exit codes (1 corpus missing, else the
9
9
  * underlying runner's return code), and byte-identical stdout/stderr.
10
10
  *
11
- * The Python original shelled out via `sys.executable <runner>.py …`; this twin
11
+ * the retired Python implementation shelled out via `sys.executable <runner>.py …`; this twin
12
12
  * invokes the `.ts` runner twins through the repo-local `tsx` binary (those
13
13
  * runners are referenced as runtime subprocesses, not imported logic).
14
14
  *
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Materialise the `with`, `without`, and `with-rdp` clones for the value bench.
4
4
  *
5
- * TypeScript twin of `src/scripts/bench_ab_clone.py` (ADR-200 py2ts
6
- * Phase 8 / Wave 8d). The CLI contract mirrors the Python original
5
+ * Ported from the retired Python `src/scripts/bench_ab_clone.py` (ADR-200 py2ts
6
+ * Phase 8 / Wave 8d). The CLI contract mirrors the retired Python implementation
7
7
  * EXACTLY — `--refresh`, `--variant`, `--print-shape-hash`, exit codes,
8
8
  * stdout/stderr split, byte-identical written manifest
9
9
  * (`json.dumps(indent=2)` + trailing newline) and the
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Diff two A/B reports (one per variant) into a comparison artefact.
4
4
  *
5
- * TypeScript twin of `src/scripts/bench_ab_diff.py` (ADR-200 py2ts
6
- * Phase 8 / Wave 8d). The CLI contract mirrors the Python original
5
+ * Ported from the retired Python `src/scripts/bench_ab_diff.py` (ADR-200 py2ts
6
+ * Phase 8 / Wave 8d). The CLI contract mirrors the retired Python implementation
7
7
  * EXACTLY — positional args, `--out-dir`, exit codes, stdout/stderr
8
8
  * split, and byte-identical written JSON (`json.dumps(indent=2)` +
9
9
  * trailing newline) / Markdown artefacts. No behaviour changes; latent
@@ -44,7 +44,7 @@ type Dict = Record<string, unknown>;
44
44
  * Marker for a value that is a Python `float`. CPython's `json.dumps`
45
45
  * renders a float `2.0` as `2.0` (not `2`); JS numbers lose that
46
46
  * distinction. The `take()` / `mean()` / `round()` helpers in the
47
- * Python original all return floats, so the diff's numeric fields must
47
+ * retired Python implementation all returned floats, so the diff's numeric fields must
48
48
  * carry the `.0` to stay byte-identical.
49
49
  */
50
50
  export class PyFloat {
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Assert the two A/B clones differ only in the agent-config surface.
4
4
  *
5
- * TypeScript twin of `src/scripts/bench_ab_integrity.py` (ADR-200 py2ts
6
- * Phase 8 / Wave 8d). The CLI contract mirrors the Python original
5
+ * Ported from the retired Python `src/scripts/bench_ab_integrity.py` (ADR-200 py2ts
6
+ * Phase 8 / Wave 8d). The CLI contract mirrors the retired Python implementation
7
7
  * EXACTLY — `--verbose`, exit codes (0 clean / 1 missing-or-divergent /
8
8
  * 2 usage), and byte-identical stdout/stderr. No behaviour changes;
9
9
  * latent Python bugs are replicated and flagged as divergence
@@ -2,13 +2,13 @@
2
2
  /**
3
3
  * Top-level orchestrator for the package-impact A/B bench.
4
4
  *
5
- * TypeScript twin of `src/scripts/bench_ab_run.py` (ADR-200, Phase 8 /
6
- * Wave 8d). The CLI contract mirrors the Python original EXACTLY — same
5
+ * Ported from the retired Python `src/scripts/bench_ab_run.py` (ADR-200, Phase 8 /
6
+ * Wave 8d). The CLI contract pins the historical contract exactly — same
7
7
  * `--variant {with,without}` / `--corpus` / `--non-interactive` /
8
8
  * `--reuse-cache` flags, same exit codes, stdout-only messages, and
9
9
  * byte-identical written report JSON (`json.dumps(indent=2) + "\n"`) and the
10
- * Markdown layout. No behaviour changes — latent Python quirks are
11
- * replicated and flagged as divergence candidates.
10
+ * Markdown layout. No behaviour changes — historical quirks are
11
+ * preserved and flagged as divergence candidates.
12
12
  *
13
13
  * NON-DETERMINISM: this script stamps reports with `utc_stamp()` (current
14
14
  * UTC) and a `duration_seconds` from a monotonic clock. Those fields are
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Track B — task runner for the package-impact A/B bench.
4
4
  *
5
- * TypeScript twin of `src/scripts/bench_ab_task_runner.py` (ADR-200 Python→TS
5
+ * Ported from the retired Python `src/scripts/bench_ab_task_runner.py` (ADR-200 Python→TS
6
6
  * migration, Phase 8 / Wave 8d). Mirrors the CLI contract EXACTLY: flags
7
7
  * (`--variant`, `--mode`, `--timeout`), exit codes (0 ok / 1 corpus missing or
8
8
  * empty), byte-identical stdout/stderr, and byte-identical written JSON + md
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Track A — behavioural eval runner for the package-impact A/B bench.
4
4
  *
5
- * TypeScript twin of `src/scripts/bench_ab_tracka_run.py` (ADR-200, Phase 8 /
6
- * Wave 8d). The CLI contract mirrors the Python original EXACTLY — same
5
+ * Ported from the retired Python `src/scripts/bench_ab_tracka_run.py` (ADR-200, Phase 8 /
6
+ * Wave 8d). The CLI contract pins the historical contract exactly — same
7
7
  * `--variant {with,without,both}` flag, same exit codes, stdout/stderr split,
8
8
  * byte-identical messages, and byte-identical written report JSON
9
9
  * (`json.dumps(indent=2) + "\n"`) + Markdown. No behaviour changes — latent
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * bench:ab v2 — discipline-axis runner (Phases 2-4).
4
4
  *
5
- * TypeScript twin of `src/scripts/bench_ab_v2_run.py` (ADR-200 Python→TS
5
+ * Ported from the retired Python `src/scripts/bench_ab_v2_run.py` (ADR-200 Python→TS
6
6
  * migration). Mirrors the CLI contract EXACTLY: flags (`--arms`, `--seeds`,
7
7
  * `--tasks`, `--limit`, `--model`, `--budget`, `--timeout`, `--mode`), exit
8
8
  * codes (0 ok / 1 unknown arm or missing CLI), byte-identical stdout/stderr,
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * bench:ab v2 — paired statistics (Phase 3).
4
4
  *
5
- * TypeScript twin of `src/scripts/bench_ab_v2_stats.py` (ADR-200 Python→TS
5
+ * Ported from the retired Python `src/scripts/bench_ab_v2_stats.py` (ADR-200 Python→TS
6
6
  * migration). Mirrors the CLI contract EXACTLY: positional `report` arg, the
7
7
  * `--json` / `--markdown PATH` flags, exit codes (0 ok / 1 no report found),
8
8
  * byte-identical stdout/stderr, byte-identical analysis JSON, and byte-identical
@@ -22,7 +22,7 @@
22
22
  *
23
23
  * Float parity: `math.erf` is ported from CPython's `m_erf` series and `math.comb`
24
24
  * from an exact BigInt computation, so every `round(p, 4)` / `round(h, 4)` output
25
- * is byte-identical to the Python original.
25
+ * is byte-stable — downstream consumers and checksum gates pin these bytes.
26
26
  */
27
27
  import * as fs from 'node:fs';
28
28
  import * as path from 'node:path';
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Baseline-closure check — step-4 Phase 3 Step 4.
4
4
  *
5
- * TypeScript twin of `src/scripts/bench_baseline_ready.py` (ADR-200 Python→TS
5
+ * Ported from the retired Python `src/scripts/bench_baseline_ready.py` (ADR-200 Python→TS
6
6
  * migration, Phase 8 / Wave 8d). Mirrors the CLI contract EXACTLY: flags
7
7
  * (`--corpus`, `--reports-dir`, `--baseline-file`, `--min-days`,
8
8
  * `--min-reports`, `--json`), exit codes (0 ready / 1 file error / 2 not
@@ -2,9 +2,9 @@
2
2
  /**
3
3
  * Offline bench for input-side memory condensation (Phase 2 / Step 11).
4
4
  *
5
- * TypeScript twin of `src/scripts/bench_condense_memory.py` (ADR-200,
6
- * Phase 7 / dev-side memory). The public API and CLI contract mirror the
7
- * Python original EXACTLY — same exit code, stdout/stderr, byte-identical
5
+ * Ported from the retired Python `src/scripts/bench_condense_memory.py` (ADR-200,
6
+ * Phase 7 / dev-side memory). The public API and CLI contract are pinned
7
+ * — same exit code, stdout/stderr, byte-identical
8
8
  * generated reports (`internal/bench/reports/telegraph-v2.{json,md}`,
9
9
  * matching json.dumps(indent=2) + the Markdown layout / number formats).
10
10
  * No behaviour changes — latent Python bugs are replicated and flagged as
@@ -16,7 +16,7 @@
16
16
  * (no API calls).
17
17
  *
18
18
  * The condense step is run as a subprocess against the `condense_memory`
19
- * twin in this repo (via the tsx runner), mirroring the Python original's
19
+ * twin in this repo (via the tsx runner), mirroring the retired Python implementation's
20
20
  * `subprocess.run([sys.executable, CONDENSE_SCRIPT, ...])`.
21
21
  */
22
22
 
@@ -2,12 +2,12 @@
2
2
  /**
3
3
  * Drift detector for the bench corpus — step-4 Phase 3 Step 2.
4
4
  *
5
- * TypeScript twin of `src/scripts/bench_drift_check.py` (ADR-200, Phase 8 /
6
- * Wave 8d). The CLI contract mirrors the Python original EXACTLY — same
5
+ * Ported from the retired Python `src/scripts/bench_drift_check.py` (ADR-200, Phase 8 /
6
+ * Wave 8d). The CLI contract pins the historical contract exactly — same
7
7
  * flags, same exit codes (0 no-drift/warmup, 1 read error, 2 drift), same
8
8
  * stdout/stderr split, byte-identical `--json` payload
9
9
  * (`json.dumps(indent=2)` / compact warmup) and Markdown lines. No behaviour
10
- * changes — latent Python quirks are replicated and flagged as divergence
10
+ * changes — historical quirks are preserved and flagged as divergence
11
11
  * candidates.
12
12
  *
13
13
  * The drift VERDICT logic is deterministic against a fixed set of reports;
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Per-tool projection-fidelity bench — step-4 Phase 4.
4
4
  *
5
- * TypeScript twin of `src/scripts/bench_per_tool.py` (ADR-200 Python→TS
5
+ * Ported from the retired Python `src/scripts/bench_per_tool.py` (ADR-200 Python→TS
6
6
  * migration, Phase 8 / Wave 8d). Mirrors the CLI contract EXACTLY: flags
7
7
  * (`--corpus`, `--top-k`, `--threshold`, `--json`, `--write-report`), exit
8
8
  * codes (0 / 1 below-threshold / 2 corpus not found), byte-identical
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Measure rtk's token savings on a fixed corpus of verbose CLI invocations.
4
4
  *
5
- * TypeScript twin of `src/scripts/bench_rtk_savings.py` (ADR-200 py2ts
6
- * Phase 8 / Wave 8d). The CLI contract mirrors the Python original
5
+ * Ported from the retired Python `src/scripts/bench_rtk_savings.py` (ADR-200 py2ts
6
+ * Phase 8 / Wave 8d). The CLI contract mirrors the retired Python implementation
7
7
  * EXACTLY — `--corpus`, `--out`, `--quiet`, exit codes, stdout/stderr
8
8
  * split, the one-line headline summary, and byte-identical written
9
9
  * reports (`json.dumps(indent=2, ensure_ascii=False)` + trailing
@@ -53,7 +53,7 @@ type Dict = Record<string, unknown>;
53
53
  * Marker for a value that is a Python `float`. CPython's `json.dumps`
54
54
  * renders a float `0.0` as `0.0` (not `0`); JS numbers lose that
55
55
  * distinction. Wrapping the report's float fields keeps the written
56
- * JSON byte-identical with the Python original.
56
+ * JSON byte-identical with the retired Python implementation.
57
57
  */
58
58
  class PyFloat {
59
59
  constructor(readonly value: number) {}
@@ -366,7 +366,7 @@ export function run(corpus_path: string = DEFAULT_CORPUS, out_dir: string = DEFA
366
366
 
367
367
  /**
368
368
  * Mirror Path.relative_to(REPO_ROOT) — raises (ValueError-equivalent) when
369
- * the path is not under REPO_ROOT, matching the Python original's behaviour.
369
+ * the path is not under REPO_ROOT, matching the retired Python implementation's behaviour.
370
370
  */
371
371
  function _relativeToRepo(p: string): string {
372
372
  const resolvedRoot = path.resolve(REPO_ROOT);
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Bench orchestrator — step-4 measurement-and-benchmark Phase 2.
4
4
  *
5
- * TypeScript twin of `src/scripts/bench_run.py` (ADR-200, Phase 8 /
6
- * Wave 8d). The CLI contract mirrors the Python original EXACTLY — same
5
+ * Ported from the retired Python `src/scripts/bench_run.py` (ADR-200, Phase 8 /
6
+ * Wave 8d). The CLI contract pins the historical contract exactly — same
7
7
  * flags, exit codes, stdout/stderr split, byte-identical headline / Markdown
8
8
  * stdout and byte-identical written report JSON
9
9
  * (`json.dumps(indent=2) + "\n"`). No behaviour changes — latent Python
@@ -23,7 +23,7 @@
23
23
  * `ai_council.clients` module (it carries no legacy source-tree literal, so
24
24
  * ADR-051 does not require porting it in this wave). The `--telegraph-dry-run`
25
25
  * path is fully self-contained; the live path degrades to the same "cannot
26
- * build Anthropic client" exit-2 surface the Python original produces when the
26
+ * build Anthropic client" exit-2 surface the retired Python implementation produces when the
27
27
  * client can't be built. Flagged as a divergence candidate.
28
28
  */
29
29
  import * as fs from 'node:fs';
@@ -390,7 +390,7 @@ function _run_telegraph(args: Args): number {
390
390
  /**
391
391
  * Live-API telegraph path. Builds the Anthropic client; on any failure prints
392
392
  * the same "cannot build Anthropic client" message and returns 2, mirroring
393
- * the Python original's `try/except Exception` guard. Because the
393
+ * the retired Python implementation's `try/except Exception` guard. Because the
394
394
  * `ai_council.clients` twin is not yet present, this currently always takes
395
395
  * the failure branch (flagged divergence — the live happy path is unreachable
396
396
  * until that module is ported).
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Bench runner for the eval corpora — step-4 measurement-and-benchmark Phase 1.
4
4
  *
5
- * TypeScript twin of `src/scripts/bench_runner.py` (ADR-200 Python→TS
5
+ * Ported from the retired Python `src/scripts/bench_runner.py` (ADR-200 Python→TS
6
6
  * migration, Phase 8 / Wave 8d). Mirrors the CLI contract EXACTLY: flags
7
7
  * (`--corpus`, `--top-k`, `--json`), exit codes (0 PASS / 1 FAIL / 2 corpus
8
8
  * not found), byte-identical stdout/stderr, and byte-identical JSON
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * build_cloud_bundle.ts — package skills as Anthropic Skills ZIP bundles.
4
4
  *
5
- * TypeScript twin of `src/scripts/build_cloud_bundle.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/build_cloud_bundle.py` (ADR-200 —
6
6
  * Python→TS migration, Phase 8 / Wave 8b). The CLI contract is mirrored
7
7
  * EXACTLY — the mutually-exclusive `--skill` / `--all` / `--check` flags,
8
8
  * `--out` / `--strict-budget` / `--clean`, exit codes, the stdout/stderr
@@ -12,7 +12,7 @@
12
12
  * CONTENTS written into each ZIP are byte-identical.
13
13
  *
14
14
  * Imports the `audit_cloud_compatibility` twin (the SAME `scan` /
15
- * `detect_cloud_marker` surfaces the Python original imports) for tier
15
+ * `detect_cloud_marker` surfaces the retired Python implementation imports) for tier
16
16
  * classification.
17
17
  *
18
18
  * DIVERGENCE CANDIDATE (documented under the ADR-200 process):
@@ -25,7 +25,7 @@
25
25
  * compares decompressed entry maps (name → bytes), the manifest JSON, and the
26
26
  * console output — not the raw archive bytes.
27
27
  *
28
- * Note on error semantics: the Python original raises bare
28
+ * Note on error semantics: the retired Python implementation raises bare
29
29
  * `SystemExit("❌ …")` for budget / source / T3-H failures. A string
30
30
  * SystemExit prints the message to stderr and exits with code 1 (NOT the
31
31
  * 2/3/4/5 codes named in the docstring, which never fire). This twin
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Release-time discovery scanner — produces discovery-manifest.json.
4
4
  *
5
- * TypeScript twin of `src/scripts/build_discovery_manifest.py` (ADR-200,
6
- * Phase 5). The CLI contract is mirrored EXACTLY — every flag (`--write`,
5
+ * Ported from the retired Python `src/scripts/build_discovery_manifest.py` (ADR-200,
6
+ * Phase 5). The CLI contract is pinned — every flag (`--write`,
7
7
  * `--out`, `--summary`, `--deprecation-report`, `--trust-report`,
8
8
  * `--orphan-report`, `--workspaces-json`, `--packs-json`, `--strict`,
9
9
  * `--quiet`), the CI-strict env override, exit codes, the stdout/stderr
@@ -20,18 +20,17 @@
20
20
  *
21
21
  * Imports the `_lib/agent_src` twin for the artefact walk and the
22
22
  * `validate_frontmatter` twin for frontmatter parse + schema-default
23
- * injection (the SAME functions the Python original imports). The checksum
23
+ * injection (the SAME functions the retired Python implementation imports). The checksum
24
24
  * primitive `_artefact_checksum` / `_CATEGORY_SCHEMA` / `_FRONTMATTER_RE` are
25
25
  * replicated here EXACTLY and kept in agreement with the inline copy in
26
26
  * `check_artefact_checksums.ts`.
27
27
  *
28
- * No behaviour changes — latent Python quirks replicated.
28
+ * Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
29
29
  *
30
30
  * DIVERGENCE CANDIDATE (documented under the ADR-200 process):
31
- * `_scanner_version()` in the Python original hashes the scanner file's OWN
32
- * bytes (`Path(__file__).read_bytes()`). For the TS-built manifest to remain
33
- * byte-identical to the Python-built one — and to keep passing the
34
- * Python-rebuild diff in `validate_discovery_manifest.py` — this twin hashes
31
+ * `_scanner_version()` in the retired Python implementation hashes the scanner file's OWN
32
+ * bytes (`Path(__file__).read_bytes()`). During the migration the TS-built
33
+ * manifest had to match the Python-built one byte-for-byte, so this port hashes
35
34
  * the SIBLING `build_discovery_manifest.py` bytes (falling back to its own
36
35
  * `.ts` bytes only when the `.py` is absent, e.g. after the same-PR deletion).
37
36
  * Until the `.py` is deleted the manifest is byte-identical; after deletion
@@ -68,7 +67,7 @@ const _HERE = fileURLToPath(import.meta.url);
68
67
 
69
68
  // --- Module-level path config (mutable to mirror Python monkeypatch seam) ----
70
69
  //
71
- // The Python original derives ROOT / SRC / VOCAB_DIR / DEFAULT_* as
70
+ // the retired Python implementation derives ROOT / SRC / VOCAB_DIR / DEFAULT_* as
72
71
  // module-level constants and `tests/test_build_discovery_manifest.py`
73
72
  // reassigns `mod.ROOT`, `mod.SRC`, `mod.VOCAB_DIR`, `mod.artefact_roots`, and
74
73
  // `mod.resolve_logical` via monkeypatch. To preserve that injection surface,
@@ -314,11 +313,10 @@ function _vocab(): [VocabEntry[], VocabEntry[], Record<string, string>] {
314
313
  }
315
314
 
316
315
  function _scanner_version(): string {
317
- // DIVERGENCE CANDIDATE: hash the SIBLING build_discovery_manifest.py bytes
318
- // so the manifest stays byte-identical to the Python-built one (and keeps
319
- // passing the Python-rebuild diff in validate_discovery_manifest.py). Fall
320
- // back to this twin's own bytes once the .py is deleted (same-PR; the
321
- // manifest is regenerated then anyway).
316
+ // Scanner version = hash of this file's own bytes (the .py-sibling branch
317
+ // below is inert since the teardown — no sibling exists; kept because the
318
+ // manifest checksum gates pin the current output and removing the branch
319
+ // is a behaviour-neutral cleanup for its own change).
322
320
  const pyPath = path.join(path.dirname(_HERE), 'build_discovery_manifest.py');
323
321
  const target = _isFile(pyPath) ? pyPath : _HERE;
324
322
  const h = crypto.createHash('sha256').update(fs.readFileSync(target)).digest('hex');
@@ -827,7 +825,7 @@ function _cmpStr(a: string, b: string): number {
827
825
  * 0, "" and the EMPTY array/object — distinct from JS, where `[]`/`{}` are
828
826
  * truthy. Used at the optional-field emission sites in `_build` so an empty
829
827
  * `optional_packs` / `example_roles` / `suggests` is omitted exactly as the
830
- * Python original omits it.
828
+ * retired Python implementation omitted it.
831
829
  */
832
830
  function _pyTruthy(v: Json): boolean {
833
831
  if (v === undefined || v === null || v === false || v === '' || v === 0) {
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * build_linear_digest.ts — build the Linear AI rules digest.
4
4
  *
5
- * TypeScript twin of `src/scripts/build_linear_digest.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/build_linear_digest.py` (ADR-200 —
6
6
  * Python→TS migration, Phase 8 / Wave 8b). The CLI contract is mirrored
7
7
  * EXACTLY — the `--max-bytes` / `--out-dir` / `--strict-missing` flags,
8
8
  * exit codes (0 ok · 2 over-budget · 3 missing rule file · 4
@@ -12,7 +12,7 @@
12
12
  * Concatenates a curated set of cloud-safe rules from `dist/agent-src/rules/`
13
13
  * into three Markdown files under `dist/linear/`.
14
14
  *
15
- * No behaviour changes — latent Python quirks replicated.
15
+ * Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
16
16
  */
17
17
  import * as fs from 'node:fs';
18
18
  import * as path from 'node:path';
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Build `dist/mcp/registry-manifest.json` + the two rendered payloads.
4
4
  *
5
- * TypeScript twin of `src/scripts/build_mcp_registry_manifest.py` (ADR-200,
6
- * Phase 5). The CLI contract is mirrored EXACTLY — every flag (`--write`,
5
+ * Ported from the retired Python `src/scripts/build_mcp_registry_manifest.py` (ADR-200,
6
+ * Phase 5). The CLI contract is pinned — every flag (`--write`,
7
7
  * `--strict`, `--quiet`), exit codes (0 = ok; 2 = `--strict` drift without
8
8
  * `--write`; 1 = missing discovery prereq via SystemExit), the stdout/stderr
9
9
  * split, byte-identical messages, AND byte-identical generated output:
@@ -16,7 +16,7 @@
16
16
  * (`status`, `submitted_at`, `pr_url`, `last_verified`) is preserved from the
17
17
  * previous manifest.
18
18
  *
19
- * No behaviour changes — latent Python quirks replicated.
19
+ * Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
20
20
  *
21
21
  * Schema: `docs/contracts/mcp-registry-manifest.schema.json`
22
22
  */