@event4u/agent-config 8.4.1 → 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 (572) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +67 -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 +3 -1
  128. package/src/agent-src/README.md +1 -1
  129. package/src/agent-src/templates/scripts/work_engine/stack/runner.ts +1 -1
  130. package/src/config/agent-settings.template.yml +1 -1
  131. package/src/install/selectedTools.ts +38 -10
  132. package/src/scripts/_cli/cmd_converge.ts +38 -0
  133. package/src/scripts/_cli/cmd_doctor.ts +113 -2
  134. package/src/scripts/_cli/cmd_explain.ts +2 -2
  135. package/src/scripts/_cli/cmd_export.ts +3 -3
  136. package/src/scripts/_cli/cmd_fleet.ts +13 -1
  137. package/src/scripts/_cli/cmd_migrate.ts +3 -3
  138. package/src/scripts/_cli/cmd_prune.ts +2 -2
  139. package/src/scripts/_cli/cmd_refresh.ts +4 -4
  140. package/src/scripts/_cli/cmd_settings_check.ts +2 -2
  141. package/src/scripts/_cli/cmd_settings_migrate.ts +2 -2
  142. package/src/scripts/_cli/cmd_sync.ts +2 -2
  143. package/src/scripts/_cli/cmd_uninstall.ts +2 -2
  144. package/src/scripts/_cli/cmd_update.ts +8 -8
  145. package/src/scripts/_cli/cmd_upgrade.ts +4 -3
  146. package/src/scripts/_cli/cmd_validate.ts +3 -3
  147. package/src/scripts/_cli/cmd_versions.ts +2 -2
  148. package/src/scripts/_cli/explain_last/assumptions.ts +2 -2
  149. package/src/scripts/_cli/explain_last/council.ts +2 -2
  150. package/src/scripts/_cli/explain_last/halt.ts +2 -2
  151. package/src/scripts/_cli/explain_last/index.ts +2 -2
  152. package/src/scripts/_cli/explain_last/inputs.ts +4 -4
  153. package/src/scripts/_cli/explain_last/memory.ts +2 -2
  154. package/src/scripts/_cli/explain_last/provider.ts +2 -2
  155. package/src/scripts/_cli/explain_last/render.ts +2 -2
  156. package/src/scripts/_cli/explain_last/route.ts +2 -2
  157. package/src/scripts/_cli/explain_last/scrubber.ts +2 -2
  158. package/src/scripts/_cli/explain_last/sections/assumptions.ts +2 -2
  159. package/src/scripts/_cli/explain_last/sections/council.ts +2 -2
  160. package/src/scripts/_cli/explain_last/sections/halt.ts +2 -2
  161. package/src/scripts/_cli/explain_last/sections/header.ts +2 -2
  162. package/src/scripts/_cli/explain_last/sections/index.ts +1 -1
  163. package/src/scripts/_cli/explain_last/sections/inputs.ts +2 -2
  164. package/src/scripts/_cli/explain_last/sections/memory.ts +2 -2
  165. package/src/scripts/_cli/explain_last/sections/pack.ts +2 -2
  166. package/src/scripts/_cli/explain_last/sections/provider.ts +2 -2
  167. package/src/scripts/_cli/explain_last/sections/route.ts +2 -2
  168. package/src/scripts/_cli/explain_last/state_loader.ts +2 -2
  169. package/src/scripts/_dispatch.bash +20 -1
  170. package/src/scripts/_lib/agent_settings.ts +1 -1
  171. package/src/scripts/_lib/agent_src.ts +7 -7
  172. package/src/scripts/_lib/agents_overlay.ts +1 -1
  173. package/src/scripts/_lib/bench_ab_cache.ts +1 -1
  174. package/src/scripts/_lib/bench_ab_scoring.ts +1 -1
  175. package/src/scripts/_lib/bench_ab_scoring_v2.ts +3 -3
  176. package/src/scripts/_lib/bench_cost.ts +1 -1
  177. package/src/scripts/_lib/bench_quality.ts +3 -3
  178. package/src/scripts/_lib/bench_report.ts +4 -4
  179. package/src/scripts/_lib/bench_telegraph.ts +1 -1
  180. package/src/scripts/_lib/bench_telegraph_report.ts +4 -4
  181. package/src/scripts/_lib/changelog_eras.ts +1 -1
  182. package/src/scripts/_lib/claude_desktop_bundler.ts +1 -1
  183. package/src/scripts/_lib/cli_wrapper.ts +1 -1
  184. package/src/scripts/_lib/fs_atomic.ts +1 -1
  185. package/src/scripts/_lib/global_deploy_inventory.ts +1 -1
  186. package/src/scripts/_lib/install_layout.ts +1 -1
  187. package/src/scripts/_lib/install_regenerator.ts +1 -1
  188. package/src/scripts/_lib/installed_lock.ts +1 -1
  189. package/src/scripts/_lib/installed_tools.ts +1 -1
  190. package/src/scripts/_lib/json_pointers.ts +1 -1
  191. package/src/scripts/_lib/knowledge_global.ts +1 -1
  192. package/src/scripts/_lib/knowledge_global_promote.ts +2 -2
  193. package/src/scripts/_lib/knowledge_global_redaction.ts +2 -2
  194. package/src/scripts/_lib/link_crypto.ts +4 -4
  195. package/src/scripts/_lib/linked_projects.ts +4 -4
  196. package/src/scripts/_lib/model_tier.ts +1 -1
  197. package/src/scripts/_lib/module_detection.ts +2 -2
  198. package/src/scripts/_lib/pin_resolver.ts +1 -1
  199. package/src/scripts/_lib/script_output.ts +1 -1
  200. package/src/scripts/_lib/security_lint.ts +1 -1
  201. package/src/scripts/_lib/surface_tiers.ts +1 -1
  202. package/src/scripts/_lib/text_similarity.ts +1 -1
  203. package/src/scripts/_lib/update_check.ts +2 -2
  204. package/src/scripts/_lib/user_global_paths.ts +1 -1
  205. package/src/scripts/_lib/value_ladder.ts +1 -1
  206. package/src/scripts/_lib/value_report.ts +1 -1
  207. package/src/scripts/_lib/zip_min.ts +2 -2
  208. package/src/scripts/adoption_report.ts +3 -3
  209. package/src/scripts/adoption_snapshot.ts +3 -3
  210. package/src/scripts/adoption_status.ts +2 -2
  211. package/src/scripts/adr/regenerate_index.ts +3 -3
  212. package/src/scripts/ai_council/_default_prices.ts +2 -3
  213. package/src/scripts/ai_council/advisors.ts +1 -1
  214. package/src/scripts/ai_council/airgap.ts +1 -1
  215. package/src/scripts/ai_council/budget_guard.ts +1 -1
  216. package/src/scripts/ai_council/bundler.ts +1 -1
  217. package/src/scripts/ai_council/cli_hints.ts +1 -1
  218. package/src/scripts/ai_council/clients.ts +5 -5
  219. package/src/scripts/ai_council/compile_corpus.ts +1 -1
  220. package/src/scripts/ai_council/confidence_gate.ts +1 -1
  221. package/src/scripts/ai_council/config.ts +1 -1
  222. package/src/scripts/ai_council/consensus.ts +1 -1
  223. package/src/scripts/ai_council/events_log.ts +1 -1
  224. package/src/scripts/ai_council/learn_low_impact_preview.ts +1 -1
  225. package/src/scripts/ai_council/low_impact_corpus.ts +1 -1
  226. package/src/scripts/ai_council/low_impact_intake.ts +1 -1
  227. package/src/scripts/ai_council/modes.ts +1 -1
  228. package/src/scripts/ai_council/orchestrator.ts +3 -3
  229. package/src/scripts/ai_council/pricing.ts +2 -2
  230. package/src/scripts/ai_council/probation_gate.ts +2 -2
  231. package/src/scripts/ai_council/project_context.ts +1 -1
  232. package/src/scripts/ai_council/prompts.ts +1 -1
  233. package/src/scripts/ai_council/redact_low_impact_entry.ts +2 -2
  234. package/src/scripts/ai_council/session.ts +1 -1
  235. package/src/scripts/ai_council/shadow_dispatch.ts +1 -1
  236. package/src/scripts/ai_council/solo_dispatch.ts +1 -1
  237. package/src/scripts/analysis_freshness.ts +2 -2
  238. package/src/scripts/annotate_discovery.ts +2 -2
  239. package/src/scripts/apply_modules_config.ts +2 -2
  240. package/src/scripts/audit_adr_coverage.ts +3 -3
  241. package/src/scripts/audit_auto_rules.ts +2 -2
  242. package/src/scripts/audit_cloud_compatibility.ts +3 -3
  243. package/src/scripts/audit_command_surface.ts +2 -2
  244. package/src/scripts/audit_initial_context.ts +7 -6
  245. package/src/scripts/audit_likelihood.ts +5 -5
  246. package/src/scripts/audit_mcp_tools.ts +3 -3
  247. package/src/scripts/audit_overlap.ts +2 -2
  248. package/src/scripts/audit_skill_descriptions.ts +2 -2
  249. package/src/scripts/audit_skill_overlap.ts +5 -5
  250. package/src/scripts/audit_user_type_axis.ts +4 -4
  251. package/src/scripts/backfill_model_tier.ts +1 -1
  252. package/src/scripts/bench_ab_cache_dispatch.ts +2 -2
  253. package/src/scripts/bench_ab_clone.ts +2 -2
  254. package/src/scripts/bench_ab_diff.ts +3 -3
  255. package/src/scripts/bench_ab_integrity.ts +2 -2
  256. package/src/scripts/bench_ab_run.ts +4 -4
  257. package/src/scripts/bench_ab_task_runner.ts +1 -1
  258. package/src/scripts/bench_ab_tracka_run.ts +2 -2
  259. package/src/scripts/bench_ab_v2_run.ts +1 -1
  260. package/src/scripts/bench_ab_v2_stats.ts +2 -2
  261. package/src/scripts/bench_baseline_ready.ts +1 -1
  262. package/src/scripts/bench_condense_memory.ts +4 -4
  263. package/src/scripts/bench_drift_check.ts +3 -3
  264. package/src/scripts/bench_per_tool.ts +1 -1
  265. package/src/scripts/bench_rtk_savings.ts +4 -4
  266. package/src/scripts/bench_run.ts +4 -4
  267. package/src/scripts/bench_runner.ts +1 -1
  268. package/src/scripts/build_cloud_bundle.ts +3 -3
  269. package/src/scripts/build_discovery_manifest.ts +13 -15
  270. package/src/scripts/build_linear_digest.ts +2 -2
  271. package/src/scripts/build_mcp_registry_manifest.ts +3 -3
  272. package/src/scripts/build_proof.ts +6 -0
  273. package/src/scripts/build_rule_trigger_matrix.ts +2 -2
  274. package/src/scripts/capture_showcase_session.ts +3 -3
  275. package/src/scripts/chat_history.ts +1 -1
  276. package/src/scripts/check_always_budget.ts +1 -1
  277. package/src/scripts/check_artefact_checksums.ts +4 -4
  278. package/src/scripts/check_artefact_count_messaging.ts +197 -0
  279. package/src/scripts/check_augment_description_cap.ts +3 -3
  280. package/src/scripts/check_augmentignore.ts +1 -1
  281. package/src/scripts/check_beta_review_markers.ts +3 -3
  282. package/src/scripts/check_bite_sized_granularity.ts +1 -1
  283. package/src/scripts/check_cluster_patterns.ts +47 -3
  284. package/src/scripts/check_command_count_messaging.ts +2 -2
  285. package/src/scripts/check_condensation.ts +2 -2
  286. package/src/scripts/check_condensed_paths.ts +6 -6
  287. package/src/scripts/check_context_paths.ts +1 -1
  288. package/src/scripts/check_council_config_location.ts +3 -3
  289. package/src/scripts/check_council_layout.ts +2 -2
  290. package/src/scripts/check_council_references.ts +2 -2
  291. package/src/scripts/check_discovery_determinism.ts +3 -3
  292. package/src/scripts/check_gate_paths.ts +4 -4
  293. package/src/scripts/check_iron_law_prominence.ts +2 -2
  294. package/src/scripts/check_kernel_rule_bundle.ts +3 -3
  295. package/src/scripts/check_knowledge_cards.ts +4 -4
  296. package/src/scripts/check_knowledge_pages.ts +1 -1
  297. package/src/scripts/check_md_language.ts +3 -3
  298. package/src/scripts/check_memory.ts +3 -3
  299. package/src/scripts/check_memory_proposal.ts +2 -2
  300. package/src/scripts/check_module_management_neutral.ts +1 -1
  301. package/src/scripts/check_no_conflict_markers.ts +1 -1
  302. package/src/scripts/check_no_external_sources.ts +1 -1
  303. package/src/scripts/check_no_local_settings_committed.ts +2 -2
  304. package/src/scripts/check_no_new_legacy_path.ts +3 -3
  305. package/src/scripts/check_no_roadmap_refs.ts +3 -3
  306. package/src/scripts/check_one_off_location.ts +3 -3
  307. package/src/scripts/check_overlay_cascade_subdirs.ts +3 -3
  308. package/src/scripts/check_portability.ts +3 -3
  309. package/src/scripts/check_proposal.ts +0 -0
  310. package/src/scripts/check_public_catalog_links.ts +1 -1
  311. package/src/scripts/check_public_links.ts +2 -2
  312. package/src/scripts/check_references.ts +3 -3
  313. package/src/scripts/check_release_includes_discovery.ts +2 -2
  314. package/src/scripts/check_release_pr_shape.ts +2 -2
  315. package/src/scripts/check_release_published.ts +1 -1
  316. package/src/scripts/check_release_trunk_sync.ts +3 -3
  317. package/src/scripts/check_reply_consistency.ts +1 -1
  318. package/src/scripts/check_roadmap_trackable.ts +2 -2
  319. package/src/scripts/check_role_doc_links.ts +2 -2
  320. package/src/scripts/check_safety_floor_untouched.ts +3 -3
  321. package/src/scripts/check_skill_requires.ts +2 -2
  322. package/src/scripts/check_structural_breaking.ts +2 -2
  323. package/src/scripts/check_surface_tiers.ts +2 -2
  324. package/src/scripts/check_template_pin_drift.ts +1 -1
  325. package/src/scripts/check_test_coverage_diff.ts +2 -2
  326. package/src/scripts/check_token_optimizer_freshness.ts +3 -3
  327. package/src/scripts/check_trigger_evals.ts +2 -2
  328. package/src/scripts/check_update_banner.ts +1 -1
  329. package/src/scripts/ci_status.ts +0 -0
  330. package/src/scripts/ci_summary.ts +3 -3
  331. package/src/scripts/ci_time_ratio.ts +1 -1
  332. package/src/scripts/command_suggester/cooldown.ts +1 -1
  333. package/src/scripts/command_suggester/index.ts +1 -1
  334. package/src/scripts/command_suggester/loader.ts +1 -1
  335. package/src/scripts/command_suggester/match.ts +1 -1
  336. package/src/scripts/command_suggester/rank.ts +1 -1
  337. package/src/scripts/command_suggester/render.ts +1 -1
  338. package/src/scripts/command_suggester/sanitize.ts +1 -1
  339. package/src/scripts/command_suggester/settings.ts +1 -1
  340. package/src/scripts/command_suggester/types.ts +0 -0
  341. package/src/scripts/compile_router.ts +4 -4
  342. package/src/scripts/condense.ts +3 -3
  343. package/src/scripts/condense_memory.ts +1 -1
  344. package/src/scripts/config/index.ts +1 -1
  345. package/src/scripts/config/packs.ts +1 -1
  346. package/src/scripts/config/presets.ts +1 -1
  347. package/src/scripts/config/profile_explain.ts +1 -1
  348. package/src/scripts/config/profiles.ts +1 -1
  349. package/src/scripts/config/session_profiles.ts +1 -1
  350. package/src/scripts/context_hygiene_hook.ts +2 -2
  351. package/src/scripts/cost_by_conversation.ts +1 -1
  352. package/src/scripts/cost_summary.ts +2 -2
  353. package/src/scripts/council_cli.ts +1 -1
  354. package/src/scripts/council_prune.ts +1 -1
  355. package/src/scripts/cross_repo_retrieve.ts +2 -2
  356. package/src/scripts/discovery_stats.ts +3 -3
  357. package/src/scripts/evidence_report.ts +4 -4
  358. package/src/scripts/extract_audit_patterns.ts +2 -2
  359. package/src/scripts/first_run_gate_hook.ts +1 -1
  360. package/src/scripts/gen_discovery_baseline.ts +2 -2
  361. package/src/scripts/generate_capabilities_index.ts +2 -2
  362. package/src/scripts/generate_capability_matrix.ts +2 -2
  363. package/src/scripts/generate_catalog.ts +2 -2
  364. package/src/scripts/generate_command_flows.ts +2 -2
  365. package/src/scripts/generate_cookbook.ts +1 -1
  366. package/src/scripts/generate_index.ts +3 -3
  367. package/src/scripts/generate_ownership_matrix.ts +2 -2
  368. package/src/scripts/generate_pack_manifests.ts +2 -2
  369. package/src/scripts/generate_role_experiences_catalog.ts +3 -3
  370. package/src/scripts/hooks/block_no_verify.ts +2 -2
  371. package/src/scripts/hooks/dispatch_hook.ts +2 -2
  372. package/src/scripts/hooks/dispatch_issues.ts +1 -1
  373. package/src/scripts/hooks/envelope.ts +1 -1
  374. package/src/scripts/hooks/replay_hook.ts +1 -1
  375. package/src/scripts/hooks/state_io.ts +1 -1
  376. package/src/scripts/hooks_doctor.ts +1 -1
  377. package/src/scripts/hooks_status.ts +1 -1
  378. package/src/scripts/injection_scan_hook.ts +1 -1
  379. package/src/scripts/install.ts +145 -3
  380. package/src/scripts/inventory_abstraction_budget.ts +5 -5
  381. package/src/scripts/inventory_frontmatter.ts +1 -1
  382. package/src/scripts/inventory_meta_layers.ts +1 -1
  383. package/src/scripts/iron_law_sha.ts +1 -1
  384. package/src/scripts/knowledge_global_cli.ts +3 -3
  385. package/src/scripts/linked_projects_list.ts +1 -1
  386. package/src/scripts/lint_agent_security.ts +4 -4
  387. package/src/scripts/lint_agent_skill_names.ts +1 -1
  388. package/src/scripts/lint_agents_layout.ts +2 -2
  389. package/src/scripts/lint_agents_md.ts +3 -3
  390. package/src/scripts/lint_archived_skills.ts +2 -2
  391. package/src/scripts/lint_artefact_frontmatter.ts +2 -2
  392. package/src/scripts/lint_bench_ab.ts +2 -2
  393. package/src/scripts/lint_bench_corpus.ts +1 -1
  394. package/src/scripts/lint_command_flow_coverage.ts +1 -1
  395. package/src/scripts/lint_command_routing.ts +2 -2
  396. package/src/scripts/lint_command_tiers.ts +1 -1
  397. package/src/scripts/lint_command_verbs.ts +4 -4
  398. package/src/scripts/lint_commit_subjects.ts +2 -2
  399. package/src/scripts/lint_context_spine_usage.ts +3 -3
  400. package/src/scripts/lint_discovery_manifest.ts +4 -4
  401. package/src/scripts/lint_discovery_vocabulary.ts +2 -2
  402. package/src/scripts/lint_empty_roadmaps.ts +3 -3
  403. package/src/scripts/lint_eval_freshness.ts +2 -2
  404. package/src/scripts/lint_examples.ts +2 -2
  405. package/src/scripts/lint_explain_trace.ts +2 -2
  406. package/src/scripts/lint_featured_skills.ts +0 -0
  407. package/src/scripts/lint_flows.ts +5 -5
  408. package/src/scripts/lint_framework_leakage.ts +1 -1
  409. package/src/scripts/lint_framework_leakage_allowlist.json +10 -2
  410. package/src/scripts/lint_frontmatter_boilerplate.ts +2 -2
  411. package/src/scripts/lint_ghostwriter_source.ts +3 -3
  412. package/src/scripts/lint_global_paths.ts +1 -1
  413. package/src/scripts/lint_handoffs.ts +1 -1
  414. package/src/scripts/lint_hidden_unicode.ts +1 -1
  415. package/src/scripts/lint_hook_concern_budget.ts +2 -2
  416. package/src/scripts/lint_hook_manifest.ts +2 -2
  417. package/src/scripts/lint_instruction_smuggling.ts +1 -1
  418. package/src/scripts/lint_load_context.ts +2 -2
  419. package/src/scripts/lint_marketplace.ts +1 -1
  420. package/src/scripts/lint_marketplace_install_completeness.ts +2 -2
  421. package/src/scripts/lint_mcp_config_security.ts +1 -1
  422. package/src/scripts/lint_mcp_registry_manifest.ts +1 -1
  423. package/src/scripts/lint_media_policy_linkage.ts +3 -3
  424. package/src/scripts/lint_missions.ts +3 -3
  425. package/src/scripts/lint_model_tier_coverage.ts +3 -3
  426. package/src/scripts/lint_namespace.ts +2 -2
  427. package/src/scripts/lint_namespace_collisions.ts +2 -2
  428. package/src/scripts/lint_new_skill_gate.ts +3 -3
  429. package/src/scripts/lint_no_new_atomic_commands.ts +9 -6
  430. package/src/scripts/lint_no_python_twin_rationale.ts +102 -0
  431. package/src/scripts/lint_one_off_age.ts +2 -2
  432. package/src/scripts/lint_orchestration_dsl.ts +3 -3
  433. package/src/scripts/lint_orchestrator_auto_detect.ts +1 -1
  434. package/src/scripts/lint_pack_boundaries.ts +2 -2
  435. package/src/scripts/lint_pack_dependencies.ts +2 -2
  436. package/src/scripts/lint_pack_first_win.ts +2 -2
  437. package/src/scripts/lint_persona_governance.ts +3 -3
  438. package/src/scripts/lint_positioning.ts +1 -1
  439. package/src/scripts/lint_profile_overlay_set_only.ts +2 -2
  440. package/src/scripts/lint_readme_jargon.ts +2 -2
  441. package/src/scripts/lint_readme_size.ts +2 -2
  442. package/src/scripts/lint_regression.ts +3 -3
  443. package/src/scripts/lint_roadmap_ci_steps.ts +3 -3
  444. package/src/scripts/lint_roadmap_complexity.ts +1 -1
  445. package/src/scripts/lint_roadmap_later_disposition.ts +2 -2
  446. package/src/scripts/lint_role_experiences.ts +2 -2
  447. package/src/scripts/lint_rule_interactions.ts +1 -1
  448. package/src/scripts/lint_rule_tiers.ts +1 -1
  449. package/src/scripts/lint_showcase_sessions.ts +2 -2
  450. package/src/scripts/lint_skill_frontmatter_safety.ts +1 -1
  451. package/src/scripts/lint_skill_originality.ts +1 -1
  452. package/src/scripts/lint_skill_tools.ts +3 -3
  453. package/src/scripts/lint_ticket_buildable.ts +2 -2
  454. package/src/scripts/lint_topics_yaml.ts +3 -3
  455. package/src/scripts/lint_trust_coherence.ts +3 -3
  456. package/src/scripts/lint_value_dashboard.ts +3 -3
  457. package/src/scripts/lint_workflow_security.ts +3 -3
  458. package/src/scripts/lint_workspace_boundary.ts +2 -2
  459. package/src/scripts/mcp_parity_smoke.ts +1 -1
  460. package/src/scripts/mcp_render.ts +1 -1
  461. package/src/scripts/mcp_server/catalog.ts +1 -1
  462. package/src/scripts/mcp_server/index.ts +1 -1
  463. package/src/scripts/mcp_server/metadata.ts +1 -1
  464. package/src/scripts/mcp_server/prompts.ts +1 -1
  465. package/src/scripts/mcp_server/resources.ts +1 -1
  466. package/src/scripts/mcp_server/server.ts +1 -1
  467. package/src/scripts/mcp_server/telemetry.ts +1 -1
  468. package/src/scripts/mcp_server/tools.ts +1 -1
  469. package/src/scripts/mcp_telemetry_health.ts +1 -1
  470. package/src/scripts/mcp_telemetry_query.ts +3 -3
  471. package/src/scripts/mcp_telemetry_store.ts +3 -3
  472. package/src/scripts/measure_augment_budget.ts +2 -2
  473. package/src/scripts/measure_density.ts +2 -2
  474. package/src/scripts/measure_frugality_savings.ts +3 -3
  475. package/src/scripts/measure_markitdown_lift.ts +1 -1
  476. package/src/scripts/measure_patterns.ts +1 -1
  477. package/src/scripts/measure_projection_bytes.ts +1 -1
  478. package/src/scripts/measure_rule_budget.ts +1 -1
  479. package/src/scripts/measure_skill_reduction.ts +1 -1
  480. package/src/scripts/memory_hash.ts +1 -1
  481. package/src/scripts/memory_lookup.ts +6 -6
  482. package/src/scripts/memory_report.ts +1 -1
  483. package/src/scripts/memory_signal.ts +1 -1
  484. package/src/scripts/memory_status.ts +2 -2
  485. package/src/scripts/migrate_command_suggestions.ts +1 -1
  486. package/src/scripts/migrate_frontmatter_defaults.ts +1 -1
  487. package/src/scripts/mine_session.ts +3 -3
  488. package/src/scripts/minimal_safe_diff_hook.ts +2 -2
  489. package/src/scripts/move_artefact.ts +3 -3
  490. package/src/scripts/new_skill.ts +3 -3
  491. package/src/scripts/onboarding_gate_hook.ts +2 -2
  492. package/src/scripts/pack_mcp_content.ts +1 -1
  493. package/src/scripts/parity/replay.ts +3 -2
  494. package/src/scripts/pattern_share.ts +2 -2
  495. package/src/scripts/plan_physical_move.ts +3 -3
  496. package/src/scripts/prediction-pool/poisson_sim.ts +2 -2
  497. package/src/scripts/prediction-pool/pool_winsim.ts +2 -2
  498. package/src/scripts/prediction-pool/score_ev.ts +2 -2
  499. package/src/scripts/print_required_checks.ts +2 -2
  500. package/src/scripts/probe_projection_fidelity.ts +2 -2
  501. package/src/scripts/probe_skill_registration.ts +2 -2
  502. package/src/scripts/profile_staleness_hook.ts +2 -2
  503. package/src/scripts/profile_use.ts +2 -2
  504. package/src/scripts/project_thin_rules.ts +3 -3
  505. package/src/scripts/propose_modules_config.ts +2 -2
  506. package/src/scripts/prototype_lint_contradictions.ts +2 -2
  507. package/src/scripts/prove_pack_extractable.ts +1 -1
  508. package/src/scripts/readme_linter.ts +4 -4
  509. package/src/scripts/redact_hook_capture.ts +2 -2
  510. package/src/scripts/refine_ticket_detect.ts +1 -1
  511. package/src/scripts/release.ts +30 -19
  512. package/src/scripts/render_benchmark_md.ts +2 -2
  513. package/src/scripts/render_value_md.ts +2 -2
  514. package/src/scripts/roadmap_progress_hook.ts +1 -1
  515. package/src/scripts/router_telemetry.ts +1 -1
  516. package/src/scripts/run_skill_evals.ts +2 -2
  517. package/src/scripts/runtime_dispatcher.ts +1 -1
  518. package/src/scripts/runtime_handler.ts +1 -1
  519. package/src/scripts/runtime_registry.ts +3 -3
  520. package/src/scripts/score_skill_selection.ts +1 -1
  521. package/src/scripts/security_audit_config.ts +2 -2
  522. package/src/scripts/skill_collision_clusters.ts +1 -1
  523. package/src/scripts/skill_discovery.ts +1 -1
  524. package/src/scripts/skill_linter.ts +8 -7
  525. package/src/scripts/skill_overlap.ts +2 -2
  526. package/src/scripts/skill_preview.ts +1 -1
  527. package/src/scripts/skill_tools/audit_persona_coverage.ts +3 -3
  528. package/src/scripts/skill_tools/audit_user_type_coverage.ts +3 -3
  529. package/src/scripts/skill_tools/index.ts +1 -1
  530. package/src/scripts/skill_tools/run_block_d_eval.ts +3 -3
  531. package/src/scripts/skill_tools/score_skill_relevance.ts +3 -3
  532. package/src/scripts/skill_tools/suggest_skill_for_task.ts +3 -3
  533. package/src/scripts/skill_trigger_eval.ts +2 -2
  534. package/src/scripts/skill_usage_collect.ts +2 -2
  535. package/src/scripts/skill_usage_report.ts +2 -2
  536. package/src/scripts/smoke_path_resolution.ts +2 -2
  537. package/src/scripts/smoke_quickstart.ts +4 -4
  538. package/src/scripts/snapshot_agent_outputs.ts +2 -2
  539. package/src/scripts/spotcheck_thin_root.ts +2 -2
  540. package/src/scripts/surface-tiers.yml +1 -0
  541. package/src/scripts/sync_agent_settings.ts +2 -2
  542. package/src/scripts/sync_github_metadata.ts +4 -4
  543. package/src/scripts/sync_gitignore.ts +3 -3
  544. package/src/scripts/sync_yaml_rt.ts +2 -2
  545. package/src/scripts/telegraph_stats.ts +1 -1
  546. package/src/scripts/tool_registry.ts +2 -2
  547. package/src/scripts/tools/adapter_errors.ts +1 -1
  548. package/src/scripts/tools/base_adapter.ts +1 -1
  549. package/src/scripts/tools/github_adapter.ts +1 -1
  550. package/src/scripts/tools/jira_adapter.ts +1 -1
  551. package/src/scripts/trigger_coverage.ts +2 -2
  552. package/src/scripts/update_counts.ts +68 -6
  553. package/src/scripts/update_prices.ts +3 -3
  554. package/src/scripts/validate_agent_settings.ts +3 -3
  555. package/src/scripts/validate_decision_engine.ts +2 -2
  556. package/src/scripts/validate_discovery_manifest.ts +3 -3
  557. package/src/scripts/validate_frontmatter.ts +5 -5
  558. package/src/scripts/validate_pack_yaml.ts +0 -0
  559. package/src/scripts/validate_safe_paths.ts +2 -2
  560. package/src/scripts/validate_telegraph_carveouts.ts +3 -3
  561. package/src/scripts/verify_before_complete_hook.ts +2 -2
  562. package/src/scripts/verify_physical_move.ts +2 -2
  563. package/src/scripts/wrapper_freshness_hook.ts +3 -3
  564. package/src/server/schemas/settings.ts +426 -0
  565. package/src/shared/settingsSurface.ts +184 -0
  566. package/src/shared/userMd/formAdapter.ts +86 -0
  567. package/src/shared/userMd/schema.ts +59 -0
  568. package/src/shared/userMd/utils.ts +91 -0
  569. package/dist/agent-src/commands/optimize-project.md +0 -243
  570. package/dist/ui/assets/index-BbWWuFrF.css +0 -1
  571. package/dist/ui/assets/index-UjcTG_9O.js +0 -40
  572. package/dist/ui/assets/index-UjcTG_9O.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Shadow-mode dispatch for low-impact solo-member decisions (step-9 P10).
3
3
  *
4
- * TypeScript twin of `src/scripts/ai_council/shadow_dispatch.py`
4
+ * Ported from the retired Python `src/scripts/ai_council/shadow_dispatch.py`
5
5
  * (ADR-200 — Python→TS migration, Phase 1).
6
6
  *
7
7
  * When `low_impact.dispatch: single` is active, a Bernoulli-sampled subset
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Solo-member dispatch — step-9 P9 (U2).
3
3
  *
4
- * TypeScript twin of `src/scripts/ai_council/solo_dispatch.py` (ADR-200 —
4
+ * Ported from the retired Python `src/scripts/ai_council/solo_dispatch.py` (ADR-200 —
5
5
  * Python→TS migration, Phase 1). Picks the first enabled, auth-valid member
6
6
  * from `routing.solo_member_fallback_chain` so low-impact decisions can
7
7
  * optionally route to a single member instead of the full council. The
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Project-analysis freshness loop — a cheap *heuristic* staleness signal.
4
4
  *
5
- * TypeScript twin of `src/scripts/analysis_freshness.py` (ADR-200,
6
- * Python→TypeScript migration). The CLI contract is mirrored EXACTLY — the
5
+ * Ported from the retired Python `src/scripts/analysis_freshness.py` (ADR-200,
6
+ * Python→TypeScript migration). The CLI contract is pinned — the
7
7
  * required mutually-exclusive group (`--stamp FILE | --stamp-all | --check FILE
8
8
  * | --check-all`), the argparse usage banner + error text (missing required
9
9
  * group → exit 2, conflicting args → exit 2, missing value → exit 2,
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * R3 Phase 4 mass-annotator — discovery frontmatter helper.
4
4
  *
5
- * TypeScript twin of `src/scripts/annotate_discovery.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/annotate_discovery.py` (ADR-200 —
6
6
  * Python→TS migration, Phase 8 / Wave 8g). Mirrors the Python CLI contract
7
7
  * EXACTLY — the `--pack` choice flag + positional `paths`, exit code (0),
8
8
  * the stdout/stderr split, byte-identical messages, and byte-identical
@@ -20,7 +20,7 @@
20
20
  * Idempotent: re-runs leave already-annotated files untouched.
21
21
  *
22
22
  * Mapping table (`PACK_DEFAULTS`) is the council-locked authority. No
23
- * behaviour changes — latent Python quirks replicated.
23
+ * behaviour changes — historical quirks preserved (consumers pin the exact behaviour).
24
24
  */
25
25
  import * as crypto from 'node:crypto';
26
26
  import * as fs from 'node:fs';
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Persist a `modules:` block into `.agent-project-settings.yml`.
4
4
  *
5
- * TypeScript twin of `src/scripts/apply_modules_config.py` (ADR-200,
6
- * Phase 8 / Wave 8g). Mirrors the Python CLI contract EXACTLY — `--project`
5
+ * Ported from the retired Python `src/scripts/apply_modules_config.py` (ADR-200,
6
+ * Phase 8 / Wave 8g). The CLI contract is pinned — `--project`
7
7
  * / `--input-file` / `--decline` / `--acknowledge-only` flags, JSON payload
8
8
  * shape + validation, comment-preserving line-patch (byte-identical written
9
9
  * output), exit codes (0 ok/no-op, 2 args/unreachable/malformed-JSON,
@@ -3,8 +3,8 @@
3
3
  * Audit per-area ADR coverage against docs/contracts/ and the canonical
4
4
  * AREAS inventory. Contract: docs/contracts/adr-layout.md.
5
5
  *
6
- * TypeScript twin of `src/scripts/audit_adr_coverage.py` (ADR-200, Phase 8 /
7
- * Wave 8a). The CLI contract is mirrored EXACTLY — the mutually exclusive
6
+ * Ported from the retired Python `src/scripts/audit_adr_coverage.py` (ADR-200, Phase 8 /
7
+ * Wave 8a). The CLI contract is pinned — the mutually exclusive
8
8
  * `--check` / `--regen-area-readme AREA` group (default `--report`), exit
9
9
  * codes, the stdout/stderr split, byte-identical messages, AND byte-identical
10
10
  * generated `README.md` for `--regen-area-readme`.
@@ -15,7 +15,7 @@
15
15
  * ADRs and dangling references.
16
16
  * --regen-area-readme <area> rewrite docs/adrs/<area>/README.md. Idempotent.
17
17
  *
18
- * No behaviour changes — latent Python quirks replicated.
18
+ * Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
19
19
  */
20
20
  import * as fs from 'node:fs';
21
21
  import * as path from 'node:path';
@@ -3,7 +3,7 @@
3
3
  * Audit auto-rules for the Rule-Governance pass (Phase 5.1 of
4
4
  * road-to-augment-limit-fit).
5
5
  *
6
- * TypeScript twin of `src/scripts/audit_auto_rules.py` (ADR-200 —
6
+ * Ported from the retired Python `src/scripts/audit_auto_rules.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 no source rules),
9
9
  * the stdout/stderr split, byte-identical stdout messages, and
@@ -12,7 +12,7 @@
12
12
  *
13
13
  * Imports the `_lib/agent_src` twin (the SAME surface the Python
14
14
  * original imports `artefact_roots` from). No behaviour changes —
15
- * latent Python quirks replicated.
15
+ * historical quirks preserved (consumers pin the exact behaviour).
16
16
  *
17
17
  * Walk every artefact root's `rules/*.md`, collect per-rule
18
18
  * frontmatter (`description`, `triggers`, `routes_to`, `tier`),
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * audit_cloud_compatibility.ts — tier each artefact for cloud distribution.
4
4
  *
5
- * TypeScript twin of `src/scripts/audit_cloud_compatibility.py` (ADR-200,
6
- * Phase 8 / Wave 8a). The CLI contract is mirrored EXACTLY — the flags
5
+ * Ported from the retired Python `src/scripts/audit_cloud_compatibility.py` (ADR-200,
6
+ * Phase 8 / Wave 8a). The CLI contract is pinned — the flags
7
7
  * `--details` / `--tier` / `--cloud-action` / `--format` / `--iron-law`,
8
8
  * exit codes, the stdout/stderr split, byte-identical messages, AND
9
9
  * byte-identical JSON output (`json.dumps(indent=2)` — insertion-order keys,
@@ -14,7 +14,7 @@
14
14
  * `<!-- cloud_safe: noop|degrade -->` markers, and emits a JSON summary
15
15
  * (or `--details` rows, or the `--iron-law` bypass scan).
16
16
  *
17
- * No behaviour changes — latent Python quirks replicated (including the
17
+ * Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour. (including the
18
18
  * Counter.most_common tie-ordering and the regex-findall set dedup).
19
19
  */
20
20
  import * as fs from 'node:fs';
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Command-surface inventory + overlap detection + usage signal.
4
4
  *
5
- * TypeScript twin of `src/scripts/audit_command_surface.py` (ADR-200, Phase 8 /
5
+ * Ported from the retired Python `src/scripts/audit_command_surface.py` (ADR-200, Phase 8 /
6
6
  * Wave 8b). Mirrors the CLI contract EXACTLY — the `--root`, `--budget`,
7
7
  * `--check-new`, `--baseline`, `--quiet` flags, exit codes (0 ok / 1 budget
8
8
  * violation / 2 root-missing / 3 git error), the stdout/stderr split,
@@ -14,7 +14,7 @@
14
14
  * overlap pairs by keyword-cosine similarity, and adds a usage signal from
15
15
  * git history.
16
16
  *
17
- * No behaviour changes — latent Python quirks replicated (incl. git-history
17
+ * Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour. (incl. git-history
18
18
  * `days_since_*` values, which depend on the wall clock and the worktree's
19
19
  * git log — golden parity is run in the SAME repo so both sides observe the
20
20
  * identical history; the day arithmetic is reproduced with the same floor).
@@ -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