@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
@@ -2,12 +2,12 @@
2
2
  /**
3
3
  * CI guard: council config lives in `.ai-council.yml`, never `.agent-settings.yml`.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_council_config_location.py` (ADR-200).
6
- * The CLI contract is mirrored EXACTLY — `--quiet` flag, exit codes (0 clean,
5
+ * Ported from the retired Python `src/scripts/check_council_config_location.py` (ADR-200).
6
+ * The CLI contract is pinned — `--quiet` flag, exit codes (0 clean,
7
7
  * 1 at least one violation), byte-identical finding messages, same scan globs
8
8
  * (sorted), same fence tracking, same negation / `ai_council:` block detection,
9
9
  * and the same `<!-- council-config-allowed -->` escape pragma. No behaviour
10
- * changes — latent bugs replicated.
10
+ * changes — historical quirks preserved (consumers pin the exact behaviour).
11
11
  *
12
12
  * Per ADR-104 (superseding ADR-093) the council reads a dedicated
13
13
  * `.ai-council.yml` resolved ALWAYS from the user-global location
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * CI guard for the `ai-council` skill's output-path convention.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_council_layout.py` (ADR-200,
6
- * Phase 4 / Wave 4c). Mirrors the Python CLI contract EXACTLY — `--quiet`
5
+ * Ported from the retired Python `src/scripts/check_council_layout.py` (ADR-200,
6
+ * Phase 4 / Wave 4c). The CLI contract is pinned — `--quiet`
7
7
  * flag (positional anywhere in argv), exit codes (0 clean, 1 violations),
8
8
  * stdout, byte-identical finding messages, same `agents/` scan,
9
9
  * sorted-iterdir + sorted-rglob ordering, same exemptions. No behaviour
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * CI guard for the council clause of the `no-roadmap-references` rule.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_council_references.py` (ADR-200,
6
- * Phase 4 / Wave 4a). The CLI contract is mirrored EXACTLY — `--quiet`
5
+ * Ported from the retired Python `src/scripts/check_council_references.py` (ADR-200,
6
+ * Phase 4 / Wave 4a). The CLI contract is pinned — `--quiet`
7
7
  * flag, exit codes (0 clean, 1 forbidden refs), stdout/stderr split,
8
8
  * byte-identical finding + footer text, same scan roots / order, and the
9
9
  * same STRUCTURAL_CARVEOUTS logic. No behaviour changes — latent bugs
@@ -2,12 +2,12 @@
2
2
  /**
3
3
  * Determinism check — runs the discovery scanner twice and diffs the output.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_discovery_determinism.py` (ADR-200,
6
- * Phase 4 / Wave 4c). The CLI contract is mirrored EXACTLY — no flags,
5
+ * Ported from the retired Python `src/scripts/check_discovery_determinism.py` (ADR-200,
6
+ * Phase 4 / Wave 4c). The CLI contract is pinned — no flags,
7
7
  * exit codes (0 deterministic, 1 drift), stdout/stderr split, byte-identical
8
8
  * messages, and the same `generated_at` normalization + sorted-key JSON
9
9
  * comparison. The scanner itself (`build_discovery_manifest.ts`) is run via the
10
- * repo-local `tsx` binary, mirroring how the Python original invoked the
10
+ * repo-local `tsx` binary, mirroring how the retired Python implementation invoked the
11
11
  * scanner via `sys.executable`. No behaviour changes.
12
12
  *
13
13
  * Exit codes:
@@ -2,13 +2,13 @@
2
2
  /**
3
3
  * Gate path-integrity check (R2 of road-to-test-and-gate-integrity).
4
4
  *
5
- * TypeScript twin of `src/scripts/check_gate_paths.py` (ADR-200,
5
+ * Ported from the retired Python `src/scripts/check_gate_paths.py` (ADR-200,
6
6
  * Phase 4 / Wave 4c). CLI contract mirrored EXACTLY — no flags, exit
7
7
  * codes (0 all resolve, 1 missing / out-of-tree, 2 a gate failed to
8
8
  * import / lacks GATE_CORE_PATHS), byte-identical messages, stdout/stderr
9
9
  * split, same gate list / source-tree roots.
10
10
  *
11
- * The Python original read each gate's ACTUAL enforced paths via that
11
+ * the retired Python implementation read each gate's ACTUAL enforced paths via that
12
12
  * module's `GATE_CORE_PATHS` attribute (`importlib.import_module`) — it
13
13
  * did NOT re-declare a copy of the path strings. The gate `.py` modules are
14
14
  * gone (ADR-200); the ported `.ts` twins each export `GATE_CORE_PATHS`, so
@@ -72,7 +72,7 @@ function _is_under_source_tree(p: string): boolean {
72
72
  * missing-or-empty GATE_CORE_PATHS — surfaced as exit 2 by `main`.
73
73
  *
74
74
  * The gate `.py` modules are gone (ADR-200); the `.ts` twins each export a
75
- * module-level `GATE_CORE_PATHS`. The Python original read the gate's REAL
75
+ * module-level `GATE_CORE_PATHS`. the retired Python implementation read the gate's REAL
76
76
  * paths via `importlib` + `getattr` and never copied them — this keeps that
77
77
  * property by importing the twin and reading its exported constant. A `tsx`
78
78
  * subprocess (not an in-process dynamic `import()`) is used so this function
@@ -147,7 +147,7 @@ function collect_gate_paths(gate_modules: readonly string[]): Map<string, string
147
147
  if ((typeof proc.status === 'number' ? proc.status : 1) !== 0) {
148
148
  // tsx unavailable or crashed before producing JSON — treat as an
149
149
  // import failure (exit 2 path), matching the "a gate failed to import"
150
- // semantics of the Python original.
150
+ // semantics of the retired Python implementation.
151
151
  const err = new Error(
152
152
  (proc.stderr ?? '').trim() || 'gate introspection failed',
153
153
  ) as Error & { kind: string };
@@ -3,8 +3,8 @@
3
3
  * Iron Law prominence checker — enforces that any rule file declaring an
4
4
  * "Iron Law" places it at the top of the file at H2 level.
5
5
  *
6
- * TypeScript twin of `src/scripts/check_iron_law_prominence.py` (ADR-200,
7
- * Phase 4 / Wave 4c). The CLI contract is mirrored EXACTLY — positional
6
+ * Ported from the retired Python `src/scripts/check_iron_law_prominence.py` (ADR-200,
7
+ * Phase 4 / Wave 4c). The CLI contract is pinned — positional
8
8
  * paths (default `.agent-src.uncondensed/rules`), `--format` / `--quiet`
9
9
  * flags, exit codes (0 clean, 1 violations, 3 internal error),
10
10
  * stdout/stderr split, byte-identical finding messages, and the same
@@ -2,13 +2,13 @@
2
2
  /**
3
3
  * check_kernel_rule_bundle — Phase 4.2 of road-to-always-budget-relief.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_kernel_rule_bundle.py` (ADR-200,
6
- * Phase 4 / Wave 4c). The CLI contract is mirrored EXACTLY — `--base-ref`
5
+ * Ported from the retired Python `src/scripts/check_kernel_rule_bundle.py` (ADR-200,
6
+ * Phase 4 / Wave 4c). The CLI contract is pinned — `--base-ref`
7
7
  * / `--label` / `--event-path` / `--files` flags, exit codes (0 pass,
8
8
  * 1 fail, 3 internal error), stdout/stderr split, byte-identical finding
9
9
  * messages, the same git-diff invocation, base-ref candidate order, and
10
10
  * PR-label parsing from the GitHub event JSON. No behaviour changes —
11
- * latent bugs replicated.
11
+ * historical quirks preserved (consumers pin the exact behaviour).
12
12
  *
13
13
  * Fails when a single PR (or commit range) modifies more than one
14
14
  * kernel rule under `.agent-src.uncondensed/rules/`. Override via the
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Pointer-CI + size + multi-evidence-consistency gate for committed knowledge cards.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_knowledge_cards.py` (ADR-200). The
6
- * CLI contract mirrors the Python original EXACTLY — same flags (`--dir`,
5
+ * Ported from the retired Python `src/scripts/check_knowledge_cards.py` (ADR-200). The
6
+ * CLI contract pins the historical contract exactly — same flags (`--dir`,
7
7
  * `--strict`, `--check-urls`, `--freshness-days`), same exit codes
8
8
  * (0 / 1 / 3), same stdout/stderr split, byte-identical finding strings,
9
9
  * the same `sorted(glob("*.md"))` ordering, the same frontmatter parsing,
@@ -33,7 +33,7 @@ import * as https from 'node:https';
33
33
  import * as path from 'node:path';
34
34
  import process from 'node:process';
35
35
  import { fileURLToPath, pathToFileURL } from 'node:url';
36
- // Global-store helpers (ADR-100). The Python original imports these lazily and
36
+ // Global-store helpers (ADR-100). the retired Python implementation imports these lazily and
37
37
  // tolerantly (try/except → None) so the project-local linter still runs if the
38
38
  // _lib package layout shifts; the TS twins always exist, so a static import is
39
39
  // byte-faithful for behaviour (the only observable effect is the --global path).
@@ -306,7 +306,7 @@ function _freshness_warnings(p: string, days: number): string[] {
306
306
  const today = _todayUtcDate();
307
307
  const age = _dateDiffDays(today, newest);
308
308
  if (age > days) {
309
- // Faithful replication of the Python original (ADR-200): it calls
309
+ // Faithful replication of the retired Python implementation (ADR-200): it calls
310
310
  // `path.relative_to(ROOT)` when the card path is absolute. pathlib
311
311
  // raises ValueError (uncaught → process dies, exit 1) when the path is
312
312
  // NOT under ROOT — the documented latent crash for an absolute `--dir`
@@ -5,7 +5,7 @@
5
5
  * `agents/knowledge/{sessions,concepts,procedures,decisions}/*.md`.
6
6
  *
7
7
  * Deliberately SEPARATE from `check_knowledge_cards.ts` (a byte-faithful
8
- * parity twin of its retired Python original — never touched here) and
8
+ * parity port of the retired Python implementation — never touched here) and
9
9
  * deliberately warn-only: schema-as-contract for these pages is explicitly
10
10
  * deferred (2026-07-05 council verdict) until real team usage data exists.
11
11
  * This script never fails the build; it surfaces drift for a human to act
@@ -2,13 +2,13 @@
2
2
  /**
3
3
  * Markdown language checker — enforces language-and-tone § ".md files are ALWAYS English".
4
4
  *
5
- * TypeScript twin of `src/scripts/check_md_language.py` (ADR-200, Phase 4 /
6
- * Wave 4c). The CLI contract is mirrored EXACTLY — positional `paths`,
5
+ * Ported from the retired Python `src/scripts/check_md_language.py` (ADR-200, Phase 4 /
6
+ * Wave 4c). The CLI contract is pinned — positional `paths`,
7
7
  * `--format` / `--quiet` flags, exit codes (0 clean, 1 violations, 3
8
8
  * internal error), stdout/stderr split, byte-identical finding messages,
9
9
  * the same per-line skipping (frontmatter, fences, indented code, DE/EN
10
10
  * anchors, ignore marker), and the same umlaut + DE-word detection. No
11
- * behaviour changes — latent bugs replicated.
11
+ * behaviour changes — historical quirks preserved (consumers pin the exact behaviour).
12
12
  *
13
13
  * Scans .md files for German content (umlauts, function words, quoted DE phrases)
14
14
  * in body prose, skipping fenced/inline code, DE:/EN: anchors, and ignore markers.
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Engineering Memory validator.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_memory.py` (ADR-200, Phase 4 /
6
- * Wave 4a). The CLI contract mirrors the Python original EXACTLY — same
5
+ * Ported from the retired Python `src/scripts/check_memory.py` (ADR-200, Phase 4 /
6
+ * Wave 4a). The CLI contract pins the historical contract exactly — same
7
7
  * flags (`--path`, `--format`, `--append-only`, `--base`), same exit
8
8
  * codes, same stdout/stderr split,
9
9
  * byte-identical finding messages, same scan scope and ordering. No
@@ -36,7 +36,7 @@
36
36
  * check_memory --append-only # CI: diff vs origin/main
37
37
  * check_memory --append-only --base HEAD~1
38
38
  *
39
- * Note on YAML date typing: the Python original relies on PyYAML's
39
+ * Note on YAML date typing: the retired Python implementation relies on PyYAML's
40
40
  * `safe_load` converting unquoted `YYYY-MM-DD` scalars to `datetime.date`
41
41
  * (and `YYYY-MM-DD HH:MM:SS` to `datetime.datetime`). The `yaml` npm
42
42
  * package parses every scalar to a string, so this twin re-implements
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Gate script for memory promotion (intake → curated).
4
4
  *
5
- * TypeScript twin of `src/scripts/check_memory_proposal.py` (ADR-200,
6
- * Phase 4 / Wave 4c). Mirrors the Python CLI contract EXACTLY — mutually
5
+ * Ported from the retired Python `src/scripts/check_memory_proposal.py` (ADR-200,
6
+ * Phase 4 / Wave 4c). The CLI contract is pinned — mutually
7
7
  * exclusive `--intake-id` / `--proposal` (one required), `--format`
8
8
  * (text|json), `--quiet`, exit codes (0 pass, 1 gate failure / not-found,
9
9
  * 2 PyYAML missing — N/A here, 3 internal), stdout/stderr split,
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Lint guard: `module-management` SKILL must stay framework-neutral.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_module_management_neutral.py`
5
+ * Ported from the retired Python `src/scripts/check_module_management_neutral.py`
6
6
  * (ADR-200, Phase 4 / Wave 4c). CLI contract mirrored EXACTLY — no
7
7
  * flags, exit codes (0 clean, 2 violation / missing file), byte-identical
8
8
  * messages and stdout/stderr split.
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Fail the build on leftover merge/stash conflict state.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_no_conflict_markers.py` (ADR-200). The
5
+ * Ported from the retired Python `src/scripts/check_no_conflict_markers.py` (ADR-200). The
6
6
  * CLI contract is mirrored EXACTLY — the `--quiet` flag (argparse, so
7
7
  * `-h`/`--help` exit 0 with a usage line, an unrecognized arg exits 2), exit
8
8
  * codes (0 = clean, 1 = conflicted index OR markers found, 2 = allowlist over
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * check_no_external_sources — block readable inspiration/harvest source names.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_no_external_sources.py` (ADR-200). The
5
+ * Ported from the retired Python `src/scripts/check_no_external_sources.py` (ADR-200). The
6
6
  * CLI contract is mirrored EXACTLY — the `--json` flag, exit codes (0 = clean,
7
7
  * 1 = at least one denied token in a non-skipped tracked file, 2 = usage /
8
8
  * config error), the stdout split, byte-identical text + JSON report
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Fail if any `.agent-settings.local.yml` is tracked by git.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_no_local_settings_committed.py`
6
- * (ADR-200, Phase 4 / Wave 4c). Mirrors the Python CLI contract EXACTLY —
5
+ * Ported from the retired Python `src/scripts/check_no_local_settings_committed.py`
6
+ * (ADR-200, Phase 4 / Wave 4c). The CLI contract is pinned —
7
7
  * no flags, exit codes (0 clean, 1 offenders), stdout, byte-identical
8
8
  * finding messages, same `git ls-files` scan and basename match. No
9
9
  * behaviour changes.
@@ -2,12 +2,12 @@
2
2
  /**
3
3
  * Regression guard: no NEW `.agent-src.uncondensed/` references in `src/`.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_no_new_legacy_path.py` (ADR-200,
6
- * Phase 4 / Wave 4c). The CLI contract is mirrored EXACTLY — `--base`
5
+ * Ported from the retired Python `src/scripts/check_no_new_legacy_path.py` (ADR-200,
6
+ * Phase 4 / Wave 4c). The CLI contract is pinned — `--base`
7
7
  * / `--stdin` flags, exit codes (0 no new references, 1 a new reference,
8
8
  * 2 internal error), stdout split, byte-identical finding messages,
9
9
  * same diff parsing, same EXEMPT set, and the same faithful-twin rule.
10
- * No behaviour changes — latent bugs replicated.
10
+ * Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
11
11
  *
12
12
  * NOTE (faithful-twin rule): this guard's `.py` original is in its own
13
13
  * EXEMPT set and legitimately contains the literal `.agent-src.uncondensed`
@@ -2,12 +2,12 @@
2
2
  /**
3
3
  * No-roadmap-references checker.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_no_roadmap_refs.py` (ADR-200,
6
- * Phase 4 / Wave 4a). The CLI contract is mirrored EXACTLY — `--format`
5
+ * Ported from the retired Python `src/scripts/check_no_roadmap_refs.py` (ADR-200,
6
+ * Phase 4 / Wave 4a). The CLI contract is pinned — `--format`
7
7
  * / `--root` flags, exit codes (0 clean, 1 violations, 3 internal error),
8
8
  * stdout/stderr split, byte-identical finding messages, same scan trees
9
9
  * and order, same fenced-code-block skipping, same self-documenting
10
- * allowlist. No behaviour changes — latent bugs replicated.
10
+ * allowlist. Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
11
11
  *
12
12
  * Stable artifacts (rules, skills, commands, contexts, guidelines, AGENTS.md,
13
13
  * README, copilot-instructions) must NOT cite a specific roadmap file in
@@ -2,12 +2,12 @@
2
2
  /**
3
3
  * One-off script-location guard (Phase 0a.2 of road-to-rule-hardening).
4
4
  *
5
- * TypeScript twin of `src/scripts/check_one_off_location.py` (ADR-200,
6
- * Phase 4 / Wave 4c). The CLI contract is mirrored EXACTLY — the
5
+ * Ported from the retired Python `src/scripts/check_one_off_location.py` (ADR-200,
6
+ * Phase 4 / Wave 4c). The CLI contract is pinned — the
7
7
  * `--quiet` flag, exit codes (0 clean, 1 violation, 3 internal error),
8
8
  * stdout/stderr split, byte-identical finding messages, and the same
9
9
  * scan scope (`src/scripts/**\/_one_off_*.py`) and file ordering. No
10
- * behaviour changes — latent bugs replicated.
10
+ * behaviour changes — historical quirks preserved (consumers pin the exact behaviour).
11
11
  *
12
12
  * Every `_one_off_*.py` script under `scripts/` must live inside the
13
13
  * archive folder `scripts/ai_council/one_off_archive/<YYYY-MM>/`. The
@@ -2,12 +2,12 @@
2
2
  /**
3
3
  * Guard: `CASCADE_ELIGIBLE_KINDS` / `USER_GLOBAL_OVERLAY_KINDS` ↔ docs.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_overlay_cascade_subdirs.py` (ADR-200,
6
- * Phase 4 / Wave 4c). The CLI contract is mirrored EXACTLY — no flags, exit
5
+ * Ported from the retired Python `src/scripts/check_overlay_cascade_subdirs.py` (ADR-200,
6
+ * Phase 4 / Wave 4c). The CLI contract is pinned — no flags, exit
7
7
  * codes (0 clean, 1 drift, 3 internal error), stdout/stderr split,
8
8
  * byte-identical finding messages, and the same `docs/customization.md` table
9
9
  * parse. The `_lib/agents_overlay` twin supplies the two constant sets. No
10
- * behaviour changes — latent bugs replicated.
10
+ * behaviour changes — historical quirks preserved (consumers pin the exact behaviour).
11
11
  *
12
12
  * Phase 1 of road-to-portable-runtime-and-update-check (P1.6). The
13
13
  * overlay resolver in `scripts/_lib/agents_overlay` ships two
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Portability checker for agent-config packages.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_portability.py` (ADR-200). Mirrors the
5
+ * Ported from the retired Python `src/scripts/check_portability.py` (ADR-200). Mirrors the
6
6
  * Python CLI contract EXACTLY — same flags (`--format`, `--root`), same exit
7
7
  * codes (0 clean, 1 violations, 3 internal error), same stdout/stderr split,
8
8
  * same finding text, same scan scope and file-walk order. No behaviour
@@ -187,7 +187,7 @@ function _detect_project_identifiers(root: string): Set<string> {
187
187
  // 4. Directory name (parent directories of dist/agent-src/)
188
188
  const augmentDir = path.join(root, 'dist/agent-src');
189
189
  if (_exists(augmentDir)) {
190
- // The Python original uses the UNRESOLVED `root` (a `pathlib.Path`):
190
+ // the retired Python implementation uses the UNRESOLVED `root` (a `pathlib.Path`):
191
191
  // `root.name` and `root.parent.name`. For the default `--root .` that
192
192
  // yields empty strings (Path('.').name == '' and Path('.').parent.name
193
193
  // == ''), so neither identifier is added. Replicate that exactly — do
@@ -231,7 +231,7 @@ function _build_patterns(root: string): { patterns: PatternSpec[]; detected: str
231
231
  const patterns: PatternSpec[] = [];
232
232
  const detected: string[] = [...identifiers].sort();
233
233
 
234
- // Iterate in sorted order for deterministic output. The Python original
234
+ // Iterate in sorted order for deterministic output. the retired Python implementation
235
235
  // iterates over a `set` whose order is unspecified; on the real repo
236
236
  // `scan_all` finds zero violations so order is moot, but a controlled tree
237
237
  // with multiple identifiers could surface a per-line ordering difference.
Binary file
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Public-catalog link checker (regression guard for road-to-pr-34-followups 1.1).
4
4
  *
5
- * TypeScript twin of `src/scripts/check_public_catalog_links.py` (ADR-200,
5
+ * Ported from the retired Python `src/scripts/check_public_catalog_links.py` (ADR-200,
6
6
  * Phase 4 / Wave 4c). CLI contract mirrored EXACTLY — `--quiet` flag,
7
7
  * exit codes (0 clean, 1 violations / missing catalog), byte-identical
8
8
  * messages, stdout-only output, same link regex / resolution / truncation
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Public-link checker for the agent-config public surface.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_public_links.py` (ADR-200, Phase 4 /
6
- * Wave 4c). The CLI contract is mirrored EXACTLY — `--list` / `--json` /
5
+ * Ported from the retired Python `src/scripts/check_public_links.py` (ADR-200, Phase 4 /
6
+ * Wave 4c). The CLI contract is pinned — `--list` / `--json` /
7
7
  * `--strict` flags, exit codes (0 clean, 1 violations, 3 internal error),
8
8
  * stdout split, byte-identical finding messages, the same scan order and
9
9
  * the same `resolve()` semantics (including its latent quirks: the
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Cross-reference checker for agent-config repositories.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_references.py` (ADR-200, Phase 4 /
6
- * Wave 4a). The CLI contract is mirrored EXACTLY — same `--format` /
5
+ * Ported from the retired Python `src/scripts/check_references.py` (ADR-200, Phase 4 /
6
+ * Wave 4a). The CLI contract is pinned — same `--format` /
7
7
  * `--root` flags, same exit codes (0 clean, 1 broken refs, 3 internal
8
8
  * error), same stdout/stderr split, byte-identical finding messages,
9
9
  * same scan scope and order, same example/allowlist/skip logic. No
@@ -16,7 +16,7 @@
16
16
  *
17
17
  * NOTE: the forbidden-substring detector `.agent-src.uncondensed/`
18
18
  * appears verbatim in the suggestion / resolution prefixes below — it is
19
- * a faithful twin of the Python original (legacy-path guard auto-exempts
19
+ * port of the retired Python implementation (legacy-path guard auto-exempts
20
20
  * faithful twins).
21
21
  */
22
22
 
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Assert dist/discovery/discovery-manifest.json ships with the package.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_release_includes_discovery.py`
6
- * (ADR-200, Phase 4 / Wave 4c). Mirrors the Python CLI contract EXACTLY —
5
+ * Ported from the retired Python `src/scripts/check_release_includes_discovery.py`
6
+ * (ADR-200, Phase 4 / Wave 4c). The CLI contract is pinned —
7
7
  * no flags, exit codes (0 OK, 1 die), stdout/stderr split, byte-identical
8
8
  * finding messages (paths relative to ROOT), same checks in the same order.
9
9
  * No behaviour changes.
@@ -3,8 +3,8 @@
3
3
  * Release-PR shape checker — fail-closed gate for
4
4
  * `docs/contracts/release-pr-gating.md`.
5
5
  *
6
- * TypeScript twin of `src/scripts/check_release_pr_shape.py` (ADR-200,
7
- * Phase 4 / Wave 4c). Mirrors the Python CLI contract EXACTLY — mutually
6
+ * Ported from the retired Python `src/scripts/check_release_pr_shape.py` (ADR-200,
7
+ * Phase 4 / Wave 4c). The CLI contract is pinned — mutually
8
8
  * exclusive `--pr` / `--files` (one required), `--files` accepts a
9
9
  * comma-separated list or `-` (stdin, one per line), exit codes
10
10
  * (0 shape-clean, 1 out-of-shape/empty, 2 usage/env), stdout, fnmatch
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Release-published drift gate.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_release_published.py` (ADR-200,
5
+ * Ported from the retired Python `src/scripts/check_release_published.py` (ADR-200,
6
6
  * Phase 4 / Wave 4c). CLI contract mirrored EXACTLY — `--strict`,
7
7
  * `--check-npm`, `--require-main` flags, exit codes (0 pass/no-op,
8
8
  * 1 drift, 3 internal error), byte-identical messages, stdout/stderr split,
@@ -2,12 +2,12 @@
2
2
  /**
3
3
  * Release-trunk-sync CI gate (road-to-productization P1.3).
4
4
  *
5
- * TypeScript twin of `src/scripts/check_release_trunk_sync.py` (ADR-200,
6
- * Phase 4 / Wave 4c). The CLI contract is mirrored EXACTLY — no flags,
5
+ * Ported from the retired Python `src/scripts/check_release_trunk_sync.py` (ADR-200,
6
+ * Phase 4 / Wave 4c). The CLI contract is pinned — no flags,
7
7
  * exit codes (0 pass/no-op, 1 main too far behind, 3 internal error),
8
8
  * stdout, byte-identical `::warning::` / `::error::` messages, the same
9
9
  * git plumbing and the same env-var override. No behaviour changes —
10
- * latent bugs replicated.
10
+ * historical quirks preserved (consumers pin the exact behaviour).
11
11
  *
12
12
  * Fails if `main` is more than one tagged release behind the current
13
13
  * release-prep branch's target version. No-ops on every other branch
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * check_reply_consistency.ts — enforce user-interaction.md Iron Laws.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_reply_consistency.py` (ADR-200,
5
+ * Ported from the retired Python `src/scripts/check_reply_consistency.py` (ADR-200,
6
6
  * Phase 4 / Wave 4c). CLI contract mirrored EXACTLY — `--stdin` /
7
7
  * `--file` / `--scan-dir` mutually-exclusive required group, `--strict`,
8
8
  * `-v`/`--verbose`, `--quiet`; exit codes (0 ok · 2 inline tag · 3 multi-rec ·
@@ -2,12 +2,12 @@
2
2
  /**
3
3
  * CI guard for the `roadmap-progress-sync` rule's trackability Iron Law.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_roadmap_trackable.py` (ADR-200,
5
+ * Ported from the retired Python `src/scripts/check_roadmap_trackable.py` (ADR-200,
6
6
  * Phase 4 / Wave 4c). CLI contract mirrored EXACTLY — `--quiet` flag,
7
7
  * exit codes (0 all trackable, 1 violation, 1 missing roadmap dir),
8
8
  * byte-identical messages, stdout/stderr split, same scan order.
9
9
  *
10
- * The Python original imports `CHECKBOX_RE`, `PHASE_RE`, `is_draft`,
10
+ * the retired Python implementation imports `CHECKBOX_RE`, `PHASE_RE`, `is_draft`,
11
11
  * `is_roadmap_candidate`, `parse_frontmatter` from
12
12
  * `.augment/scripts/update_roadmap_progress.py` (the dashboard) as the
13
13
  * single source of truth so the linter cannot drift from what the
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Verify every skill link in role-based docs resolves to a real file.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_role_doc_links.py` (ADR-200,
6
- * Phase 4 / Wave 4c). Mirrors the Python CLI contract EXACTLY — `--quiet`
5
+ * Ported from the retired Python `src/scripts/check_role_doc_links.py` (ADR-200,
6
+ * Phase 4 / Wave 4c). The CLI contract is pinned — `--quiet`
7
7
  * flag, exit codes (0 all resolve, 1 broken links, 2 missing role doc),
8
8
  * stdout/stderr split, byte-identical finding messages, same scan + link
9
9
  * regex + path resolution. No behaviour changes.
@@ -2,12 +2,12 @@
2
2
  /**
3
3
  * Safety-floor exclusion linter (Phase 2A.0 of road-to-structural-optimization).
4
4
  *
5
- * TypeScript twin of `src/scripts/check_safety_floor_untouched.py` (ADR-200,
6
- * Phase 4 / Wave 4c). The CLI contract is mirrored EXACTLY — `--baseline`
5
+ * Ported from the retired Python `src/scripts/check_safety_floor_untouched.py` (ADR-200,
6
+ * Phase 4 / Wave 4c). The CLI contract is pinned — `--baseline`
7
7
  * / `--skip-if-no-baseline` flags, exit codes (0 clean/skipped, 1 floor
8
8
  * file modified, 3 internal error), stdout/stderr split, byte-identical
9
9
  * messages, the same git plumbing and the same `origin/main` → `main`
10
- * fallback. No behaviour changes — latent bugs replicated.
10
+ * fallback. Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
11
11
  *
12
12
  * Per Q3=A locked decision (council Round 3, 2026-05-03), the four
13
13
  * safety-floor always-rules are out of scope for Phase 2A slimming:
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Skill-composition graph gate (roadmap 3.4).
4
4
  *
5
- * TypeScript twin of `src/scripts/check_skill_requires.py` (ADR-200,
6
- * Phase 4 / Wave 4c). Mirrors the Python CLI contract EXACTLY — no flags,
5
+ * Ported from the retired Python `src/scripts/check_skill_requires.py` (ADR-200,
6
+ * Phase 4 / Wave 4c). The CLI contract is pinned — no flags,
7
7
  * exit codes (0 clean, 1 violations), stdout, byte-identical messages
8
8
  * (including Python list-repr of sorted pack sets), same skill collection
9
9
  * (iter_artefacts SKILL.md), packs.yml closure, and sorted iteration. No
@@ -2,12 +2,12 @@
2
2
  /**
3
3
  * Structural breaking-change detector (road-to-contract-integrity F3).
4
4
  *
5
- * TypeScript twin of `src/scripts/check_structural_breaking.py` (ADR-200). The
5
+ * Ported from the retired Python `src/scripts/check_structural_breaking.py` (ADR-200). The
6
6
  * CLI contract is mirrored EXACTLY — the `--quiet` flag, exit codes (0 clean /
7
7
  * cleared, 1 break without annotation), the stdout/stderr split (the ✅ summary
8
8
  * on stdout, the ❌ block on stderr), byte-identical finding + remediation
9
9
  * messages, the same `git diff --name-status` / `git log` shell-outs, and the
10
- * same regex set. No behaviour changes — latent bugs replicated.
10
+ * same regex set. Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
11
11
  *
12
12
  * `release.py` infers the version bump from the commit annotation
13
13
  * (`feat!` / `BREAKING CHANGE`). This detector inspects the diff against the
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Surface-tier boundary guard (road-to-install-contract-stability Phase 2).
4
4
  *
5
- * TypeScript twin of `src/scripts/check_surface_tiers.py` (ADR-200). The CLI
5
+ * Ported from the retired Python `src/scripts/check_surface_tiers.py` (ADR-200). The CLI
6
6
  * contract is mirrored EXACTLY — the `--skip-imports` flag + the
7
7
  * `AGENT_CONFIG_SKIP_SURFACE_TIER_CHECK` env kill-switch, exit codes (0 clean,
8
8
  * 1 violation(s), 2 argparse usage error), byte-identical finding + summary
@@ -10,7 +10,7 @@
10
10
  * same core→lab import boundary check. No behaviour changes — latent bugs
11
11
  * replicated.
12
12
  *
13
- * The Python original parses each `.py` under `src/scripts/` with the stdlib
13
+ * the retired Python implementation parses each `.py` under `src/scripts/` with the stdlib
14
14
  * `ast` module to find imports and the line numbers of imports lexically inside
15
15
  * a guarding `try/except`. This twin replicates that with a focused Python
16
16
  * import + try/except line scanner: it tracks each statement's START line (the
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Fail when `package.json.version` and the project-template pin drift.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_template_pin_drift.py` (ADR-200,
5
+ * Ported from the retired Python `src/scripts/check_template_pin_drift.py` (ADR-200,
6
6
  * Phase 4 / Wave 4c). CLI contract mirrored EXACTLY — `--allow-empty`
7
7
  * flag, exit codes (0 match / empty-allowed, 1 drift / missing / unreadable),
8
8
  * byte-identical messages, stdout/stderr split, same template-file
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Coverage forcing-function — WARN-only (R3 of road-to-test-and-gate-integrity).
4
4
  *
5
- * TypeScript twin of `src/scripts/check_test_coverage_diff.py` (ADR-200,
6
- * Phase 4 / Wave 4c). Mirrors the Python CLI contract EXACTLY — `--base-ref`
5
+ * Ported from the retired Python `src/scripts/check_test_coverage_diff.py` (ADR-200,
6
+ * Phase 4 / Wave 4c). The CLI contract is pinned — `--base-ref`
7
7
  * flag, always exit 0 (warn-only by contract), stdout, byte-identical
8
8
  * messages, the git name-status read, the pragma scan, and the `evaluate`
9
9
  * core logic. No behaviour changes — latent matcher quirks replicated.
@@ -2,12 +2,12 @@
2
2
  /**
3
3
  * Token-Optimizer freshness validator.
4
4
  *
5
- * TypeScript twin of `src/scripts/check_token_optimizer_freshness.py` (ADR-200,
6
- * Phase 4 / Wave 4c). The CLI contract is mirrored EXACTLY — no flags,
5
+ * Ported from the retired Python `src/scripts/check_token_optimizer_freshness.py` (ADR-200,
6
+ * Phase 4 / Wave 4c). The CLI contract is pinned — no flags,
7
7
  * exit codes (0 clean, 1 drift / missing skill / unparseable), stdout/stderr
8
8
  * split, byte-identical messages, the same catalog-row parsing, the same
9
9
  * `resolve()` / `is_external()` logic and the same `_lib/agent_src`
10
- * resolution. No behaviour changes — latent bugs replicated.
10
+ * resolution. Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
11
11
  *
12
12
  * Parses the catalog table inside the token-optimizer SKILL.md, verifies
13
13
  * every cited internal asset exists, and checks the trigger keywords against