@event4u/agent-config 8.4.1 → 8.6.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 (581) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +92 -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} +38 -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/auto-dispatch-classification.md +30 -0
  38. package/dist/agent-src/contexts/execution/orchestration-telemetry.md +15 -1
  39. package/dist/agent-src/contexts/execution/subagent-steering.md +54 -1
  40. package/dist/agent-src/contexts/execution/toolchain-resolver.md +1 -1
  41. package/dist/agent-src/contexts/model-recommendations.md +19 -0
  42. package/dist/agent-src/contexts/skills-and-commands.md +2 -2
  43. package/dist/agent-src/contexts/subagent-configuration.md +8 -0
  44. package/dist/agent-src/rules/external-reference-deep-dive.md +1 -1
  45. package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +2 -2
  46. package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +1 -1
  47. package/dist/agent-src/skills/judge-bug-hunter/SKILL.md +1 -1
  48. package/dist/agent-src/skills/judge-code-quality/SKILL.md +1 -1
  49. package/dist/agent-src/skills/judge-security-auditor/SKILL.md +1 -1
  50. package/dist/agent-src/skills/judge-synthesis/SKILL.md +1 -1
  51. package/dist/agent-src/skills/judge-test-coverage/SKILL.md +1 -1
  52. package/dist/agent-src/skills/markitdown/SKILL.md +1 -1
  53. package/dist/agent-src/skills/mobile-e2e-strategy/SKILL.md +5 -5
  54. package/dist/agent-src/skills/prompt-optimizer/SKILL.md +2 -2
  55. package/dist/agent-src/skills/quality-tools/SKILL.md +1 -1
  56. package/dist/agent-src/skills/repomix-packer/SKILL.md +1 -1
  57. package/dist/agent-src/skills/requesting-code-review/SKILL.md +2 -2
  58. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
  59. package/dist/agent-src/templates/agent-settings.md +1 -1
  60. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +2 -2
  61. package/dist/agent-src/templates/scripts/work_engine/stack/runner.ts +1 -1
  62. package/dist/cli/commands/config.js +44 -0
  63. package/dist/cli/commands/config.js.map +1 -0
  64. package/dist/cli/commands/uiServe.js +1 -0
  65. package/dist/cli/commands/uiServe.js.map +1 -1
  66. package/dist/cli/help.js +38 -0
  67. package/dist/cli/help.js.map +1 -0
  68. package/dist/cli/initRouting.js +16 -1
  69. package/dist/cli/initRouting.js.map +1 -1
  70. package/dist/cli/main.js +43 -37
  71. package/dist/cli/main.js.map +1 -1
  72. package/dist/cli/registry.js +45 -44
  73. package/dist/cli/registry.js.map +1 -1
  74. package/dist/discovery/deprecation-report.md +1 -1
  75. package/dist/discovery/discovery-manifest.json +419 -210
  76. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  77. package/dist/discovery/discovery-manifest.summary.md +4 -4
  78. package/dist/discovery/orphan-report.md +1 -1
  79. package/dist/discovery/packs.json +31 -25
  80. package/dist/discovery/trust-report.md +2 -2
  81. package/dist/discovery/workspaces.json +30 -24
  82. package/dist/install/install.mjs +6064 -159
  83. package/dist/install/selectedTools.js +39 -10
  84. package/dist/install/selectedTools.js.map +1 -1
  85. package/dist/mcp/registry-manifest.json +3 -3
  86. package/dist/server/app.js +15 -3
  87. package/dist/server/app.js.map +1 -1
  88. package/dist/server/routes/ping.js +16 -0
  89. package/dist/server/routes/ping.js.map +1 -1
  90. package/dist/server/routes/settings.js +42 -6
  91. package/dist/server/routes/settings.js.map +1 -1
  92. package/dist/server/routes/settingsChanges.js +55 -0
  93. package/dist/server/routes/settingsChanges.js.map +1 -0
  94. package/dist/server/routes/userMd.js +7 -2
  95. package/dist/server/routes/userMd.js.map +1 -1
  96. package/dist/server/routes/wizard.js +76 -14
  97. package/dist/server/routes/wizard.js.map +1 -1
  98. package/dist/server/writeRoot.js +17 -0
  99. package/dist/server/writeRoot.js.map +1 -1
  100. package/dist/shared/settingsSurface.js +120 -0
  101. package/dist/shared/settingsSurface.js.map +1 -0
  102. package/dist/ui/assets/index-BPFMZWUs.css +1 -0
  103. package/dist/ui/assets/index-BiEZiZ31.js +40 -0
  104. package/dist/ui/assets/index-BiEZiZ31.js.map +1 -0
  105. package/dist/ui/index.html +15 -2
  106. package/docs/CLAIMS.md +27 -15
  107. package/docs/architecture.md +1 -1
  108. package/docs/catalog.md +37 -31
  109. package/docs/command-flows.md +22 -16
  110. package/docs/contracts/command-clusters.md +39 -9
  111. package/docs/contracts/file-ownership-matrix.json +21 -0
  112. package/docs/contracts/frontmatter-contract.md +1 -1
  113. package/docs/contracts/gui-wizard.md +16 -4
  114. package/docs/contracts/iron-law-overrides.txt +1 -0
  115. package/docs/contracts/rule-classification.md +2 -2
  116. package/docs/contracts/settings-api.md +58 -2
  117. package/docs/contracts/surface-matrix.md +5 -0
  118. package/docs/cookbook.md +7 -7
  119. package/docs/decisions/ADR-114-commit-policy-iron-law-override.md +74 -0
  120. package/docs/decisions/ADR-115-command-cluster-consolidation-phase-4.md +91 -0
  121. package/docs/decisions/ADR-116-memory-tripwire-activation-path.md +125 -0
  122. package/docs/decisions/INDEX.md +3 -0
  123. package/docs/featured-commands.md +1 -1
  124. package/docs/featured-skills.md +4 -4
  125. package/docs/flows.md +2 -2
  126. package/docs/getting-started-by-role.md +1 -1
  127. package/docs/getting-started-laravel.md +1 -1
  128. package/docs/getting-started.md +6 -3
  129. package/docs/governance-advantage.md +1 -1
  130. package/docs/guidelines/agent-infra/5w2h-analysis.md +1 -1
  131. package/docs/guidelines/agent-infra/ios-simulator-guide.md +1 -1
  132. package/docs/proof.md +12 -2
  133. package/package.json +3 -1
  134. package/src/agent-src/README.md +1 -1
  135. package/src/agent-src/templates/scripts/work_engine/stack/runner.ts +1 -1
  136. package/src/config/agent-settings.template.yml +1 -1
  137. package/src/install/selectedTools.ts +38 -10
  138. package/src/scripts/_cli/cmd_converge.ts +38 -0
  139. package/src/scripts/_cli/cmd_doctor.ts +113 -2
  140. package/src/scripts/_cli/cmd_explain.ts +2 -2
  141. package/src/scripts/_cli/cmd_export.ts +3 -3
  142. package/src/scripts/_cli/cmd_fleet.ts +13 -1
  143. package/src/scripts/_cli/cmd_migrate.ts +3 -3
  144. package/src/scripts/_cli/cmd_prune.ts +2 -2
  145. package/src/scripts/_cli/cmd_refresh.ts +4 -4
  146. package/src/scripts/_cli/cmd_settings_check.ts +2 -2
  147. package/src/scripts/_cli/cmd_settings_migrate.ts +2 -2
  148. package/src/scripts/_cli/cmd_sync.ts +2 -2
  149. package/src/scripts/_cli/cmd_uninstall.ts +2 -2
  150. package/src/scripts/_cli/cmd_update.ts +8 -8
  151. package/src/scripts/_cli/cmd_upgrade.ts +4 -3
  152. package/src/scripts/_cli/cmd_validate.ts +3 -3
  153. package/src/scripts/_cli/cmd_versions.ts +2 -2
  154. package/src/scripts/_cli/explain_last/assumptions.ts +2 -2
  155. package/src/scripts/_cli/explain_last/council.ts +2 -2
  156. package/src/scripts/_cli/explain_last/halt.ts +2 -2
  157. package/src/scripts/_cli/explain_last/index.ts +2 -2
  158. package/src/scripts/_cli/explain_last/inputs.ts +4 -4
  159. package/src/scripts/_cli/explain_last/memory.ts +2 -2
  160. package/src/scripts/_cli/explain_last/provider.ts +2 -2
  161. package/src/scripts/_cli/explain_last/render.ts +2 -2
  162. package/src/scripts/_cli/explain_last/route.ts +2 -2
  163. package/src/scripts/_cli/explain_last/scrubber.ts +2 -2
  164. package/src/scripts/_cli/explain_last/sections/assumptions.ts +2 -2
  165. package/src/scripts/_cli/explain_last/sections/council.ts +2 -2
  166. package/src/scripts/_cli/explain_last/sections/halt.ts +2 -2
  167. package/src/scripts/_cli/explain_last/sections/header.ts +2 -2
  168. package/src/scripts/_cli/explain_last/sections/index.ts +1 -1
  169. package/src/scripts/_cli/explain_last/sections/inputs.ts +2 -2
  170. package/src/scripts/_cli/explain_last/sections/memory.ts +2 -2
  171. package/src/scripts/_cli/explain_last/sections/pack.ts +2 -2
  172. package/src/scripts/_cli/explain_last/sections/provider.ts +2 -2
  173. package/src/scripts/_cli/explain_last/sections/route.ts +2 -2
  174. package/src/scripts/_cli/explain_last/state_loader.ts +2 -2
  175. package/src/scripts/_dispatch.bash +20 -1
  176. package/src/scripts/_lib/agent_settings.ts +1 -1
  177. package/src/scripts/_lib/agent_src.ts +7 -7
  178. package/src/scripts/_lib/agents_overlay.ts +1 -1
  179. package/src/scripts/_lib/auto_dispatch.ts +63 -0
  180. package/src/scripts/_lib/bench_ab_cache.ts +1 -1
  181. package/src/scripts/_lib/bench_ab_scoring.ts +1 -1
  182. package/src/scripts/_lib/bench_ab_scoring_v2.ts +3 -3
  183. package/src/scripts/_lib/bench_cost.ts +1 -1
  184. package/src/scripts/_lib/bench_quality.ts +3 -3
  185. package/src/scripts/_lib/bench_report.ts +4 -4
  186. package/src/scripts/_lib/bench_telegraph.ts +1 -1
  187. package/src/scripts/_lib/bench_telegraph_report.ts +4 -4
  188. package/src/scripts/_lib/changelog_eras.ts +1 -1
  189. package/src/scripts/_lib/claude_desktop_bundler.ts +1 -1
  190. package/src/scripts/_lib/cli_wrapper.ts +1 -1
  191. package/src/scripts/_lib/fs_atomic.ts +1 -1
  192. package/src/scripts/_lib/global_deploy_inventory.ts +1 -1
  193. package/src/scripts/_lib/install_layout.ts +1 -1
  194. package/src/scripts/_lib/install_regenerator.ts +1 -1
  195. package/src/scripts/_lib/installed_lock.ts +1 -1
  196. package/src/scripts/_lib/installed_tools.ts +1 -1
  197. package/src/scripts/_lib/json_pointers.ts +1 -1
  198. package/src/scripts/_lib/knowledge_global.ts +1 -1
  199. package/src/scripts/_lib/knowledge_global_promote.ts +2 -2
  200. package/src/scripts/_lib/knowledge_global_redaction.ts +2 -2
  201. package/src/scripts/_lib/link_crypto.ts +4 -4
  202. package/src/scripts/_lib/linked_projects.ts +4 -4
  203. package/src/scripts/_lib/model_tier.ts +1 -1
  204. package/src/scripts/_lib/module_detection.ts +2 -2
  205. package/src/scripts/_lib/pin_resolver.ts +1 -1
  206. package/src/scripts/_lib/script_output.ts +1 -1
  207. package/src/scripts/_lib/security_lint.ts +1 -1
  208. package/src/scripts/_lib/subagent_routing.ts +24 -0
  209. package/src/scripts/_lib/subagent_steering.ts +213 -3
  210. package/src/scripts/_lib/surface_tiers.ts +1 -1
  211. package/src/scripts/_lib/text_similarity.ts +1 -1
  212. package/src/scripts/_lib/update_check.ts +2 -2
  213. package/src/scripts/_lib/user_global_paths.ts +1 -1
  214. package/src/scripts/_lib/value_ladder.ts +1 -1
  215. package/src/scripts/_lib/value_report.ts +1 -1
  216. package/src/scripts/_lib/zip_min.ts +2 -2
  217. package/src/scripts/adoption_report.ts +3 -3
  218. package/src/scripts/adoption_snapshot.ts +3 -3
  219. package/src/scripts/adoption_status.ts +2 -2
  220. package/src/scripts/adr/regenerate_index.ts +3 -3
  221. package/src/scripts/ai_council/_default_prices.ts +2 -3
  222. package/src/scripts/ai_council/advisors.ts +1 -1
  223. package/src/scripts/ai_council/airgap.ts +1 -1
  224. package/src/scripts/ai_council/budget_guard.ts +1 -1
  225. package/src/scripts/ai_council/bundler.ts +1 -1
  226. package/src/scripts/ai_council/cli_hints.ts +1 -1
  227. package/src/scripts/ai_council/clients.ts +5 -5
  228. package/src/scripts/ai_council/compile_corpus.ts +1 -1
  229. package/src/scripts/ai_council/confidence_gate.ts +1 -1
  230. package/src/scripts/ai_council/config.ts +1 -1
  231. package/src/scripts/ai_council/consensus.ts +1 -1
  232. package/src/scripts/ai_council/events_log.ts +1 -1
  233. package/src/scripts/ai_council/learn_low_impact_preview.ts +1 -1
  234. package/src/scripts/ai_council/low_impact_corpus.ts +1 -1
  235. package/src/scripts/ai_council/low_impact_intake.ts +1 -1
  236. package/src/scripts/ai_council/modes.ts +1 -1
  237. package/src/scripts/ai_council/orchestrator.ts +3 -3
  238. package/src/scripts/ai_council/pricing.ts +2 -2
  239. package/src/scripts/ai_council/probation_gate.ts +2 -2
  240. package/src/scripts/ai_council/project_context.ts +1 -1
  241. package/src/scripts/ai_council/prompts.ts +1 -1
  242. package/src/scripts/ai_council/redact_low_impact_entry.ts +2 -2
  243. package/src/scripts/ai_council/session.ts +1 -1
  244. package/src/scripts/ai_council/shadow_dispatch.ts +1 -1
  245. package/src/scripts/ai_council/solo_dispatch.ts +1 -1
  246. package/src/scripts/analysis_freshness.ts +2 -2
  247. package/src/scripts/annotate_discovery.ts +2 -2
  248. package/src/scripts/apply_modules_config.ts +2 -2
  249. package/src/scripts/audit_adr_coverage.ts +3 -3
  250. package/src/scripts/audit_auto_rules.ts +2 -2
  251. package/src/scripts/audit_cloud_compatibility.ts +3 -3
  252. package/src/scripts/audit_command_surface.ts +2 -2
  253. package/src/scripts/audit_initial_context.ts +7 -6
  254. package/src/scripts/audit_likelihood.ts +5 -5
  255. package/src/scripts/audit_mcp_tools.ts +3 -3
  256. package/src/scripts/audit_overlap.ts +2 -2
  257. package/src/scripts/audit_skill_descriptions.ts +2 -2
  258. package/src/scripts/audit_skill_overlap.ts +5 -5
  259. package/src/scripts/audit_user_type_axis.ts +4 -4
  260. package/src/scripts/backfill_model_tier.ts +1 -1
  261. package/src/scripts/bench_ab_cache_dispatch.ts +2 -2
  262. package/src/scripts/bench_ab_clone.ts +2 -2
  263. package/src/scripts/bench_ab_diff.ts +3 -3
  264. package/src/scripts/bench_ab_integrity.ts +2 -2
  265. package/src/scripts/bench_ab_run.ts +4 -4
  266. package/src/scripts/bench_ab_task_runner.ts +1 -1
  267. package/src/scripts/bench_ab_tracka_run.ts +2 -2
  268. package/src/scripts/bench_ab_v2_run.ts +1 -1
  269. package/src/scripts/bench_ab_v2_stats.ts +2 -2
  270. package/src/scripts/bench_baseline_ready.ts +1 -1
  271. package/src/scripts/bench_condense_memory.ts +4 -4
  272. package/src/scripts/bench_drift_check.ts +3 -3
  273. package/src/scripts/bench_per_tool.ts +1 -1
  274. package/src/scripts/bench_rtk_savings.ts +4 -4
  275. package/src/scripts/bench_run.ts +4 -4
  276. package/src/scripts/bench_runner.ts +1 -1
  277. package/src/scripts/build_cloud_bundle.ts +3 -3
  278. package/src/scripts/build_discovery_manifest.ts +13 -15
  279. package/src/scripts/build_linear_digest.ts +2 -2
  280. package/src/scripts/build_mcp_registry_manifest.ts +3 -3
  281. package/src/scripts/build_proof.ts +6 -0
  282. package/src/scripts/build_rule_trigger_matrix.ts +2 -2
  283. package/src/scripts/capture_showcase_session.ts +3 -3
  284. package/src/scripts/chat_history.ts +1 -1
  285. package/src/scripts/check_always_budget.ts +1 -1
  286. package/src/scripts/check_artefact_checksums.ts +4 -4
  287. package/src/scripts/check_artefact_count_messaging.ts +197 -0
  288. package/src/scripts/check_augment_description_cap.ts +3 -3
  289. package/src/scripts/check_augmentignore.ts +1 -1
  290. package/src/scripts/check_beta_review_markers.ts +3 -3
  291. package/src/scripts/check_bite_sized_granularity.ts +1 -1
  292. package/src/scripts/check_cluster_patterns.ts +47 -3
  293. package/src/scripts/check_command_count_messaging.ts +2 -2
  294. package/src/scripts/check_condensation.ts +2 -2
  295. package/src/scripts/check_condensed_paths.ts +6 -6
  296. package/src/scripts/check_context_paths.ts +1 -1
  297. package/src/scripts/check_council_config_location.ts +3 -3
  298. package/src/scripts/check_council_layout.ts +2 -2
  299. package/src/scripts/check_council_references.ts +2 -2
  300. package/src/scripts/check_discovery_determinism.ts +3 -3
  301. package/src/scripts/check_gate_paths.ts +4 -4
  302. package/src/scripts/check_iron_law_prominence.ts +2 -2
  303. package/src/scripts/check_kernel_rule_bundle.ts +3 -3
  304. package/src/scripts/check_knowledge_cards.ts +4 -4
  305. package/src/scripts/check_knowledge_pages.ts +1 -1
  306. package/src/scripts/check_md_language.ts +3 -3
  307. package/src/scripts/check_memory.ts +3 -3
  308. package/src/scripts/check_memory_proposal.ts +2 -2
  309. package/src/scripts/check_module_management_neutral.ts +1 -1
  310. package/src/scripts/check_no_conflict_markers.ts +1 -1
  311. package/src/scripts/check_no_external_sources.ts +1 -1
  312. package/src/scripts/check_no_local_settings_committed.ts +2 -2
  313. package/src/scripts/check_no_new_legacy_path.ts +3 -3
  314. package/src/scripts/check_no_roadmap_refs.ts +3 -3
  315. package/src/scripts/check_one_off_location.ts +3 -3
  316. package/src/scripts/check_overlay_cascade_subdirs.ts +3 -3
  317. package/src/scripts/check_portability.ts +3 -3
  318. package/src/scripts/check_proposal.ts +0 -0
  319. package/src/scripts/check_public_catalog_links.ts +1 -1
  320. package/src/scripts/check_public_links.ts +2 -2
  321. package/src/scripts/check_references.ts +3 -3
  322. package/src/scripts/check_release_includes_discovery.ts +2 -2
  323. package/src/scripts/check_release_pr_shape.ts +2 -2
  324. package/src/scripts/check_release_published.ts +1 -1
  325. package/src/scripts/check_release_trunk_sync.ts +3 -3
  326. package/src/scripts/check_reply_consistency.ts +1 -1
  327. package/src/scripts/check_roadmap_trackable.ts +2 -2
  328. package/src/scripts/check_role_doc_links.ts +2 -2
  329. package/src/scripts/check_safety_floor_untouched.ts +3 -3
  330. package/src/scripts/check_skill_requires.ts +2 -2
  331. package/src/scripts/check_structural_breaking.ts +2 -2
  332. package/src/scripts/check_surface_tiers.ts +2 -2
  333. package/src/scripts/check_template_pin_drift.ts +1 -1
  334. package/src/scripts/check_test_coverage_diff.ts +2 -2
  335. package/src/scripts/check_token_optimizer_freshness.ts +3 -3
  336. package/src/scripts/check_trigger_evals.ts +2 -2
  337. package/src/scripts/check_update_banner.ts +1 -1
  338. package/src/scripts/ci_status.ts +0 -0
  339. package/src/scripts/ci_summary.ts +3 -3
  340. package/src/scripts/ci_time_ratio.ts +1 -1
  341. package/src/scripts/command_suggester/cooldown.ts +1 -1
  342. package/src/scripts/command_suggester/index.ts +1 -1
  343. package/src/scripts/command_suggester/loader.ts +1 -1
  344. package/src/scripts/command_suggester/match.ts +1 -1
  345. package/src/scripts/command_suggester/rank.ts +1 -1
  346. package/src/scripts/command_suggester/render.ts +1 -1
  347. package/src/scripts/command_suggester/sanitize.ts +1 -1
  348. package/src/scripts/command_suggester/settings.ts +1 -1
  349. package/src/scripts/command_suggester/types.ts +0 -0
  350. package/src/scripts/compile_router.ts +4 -4
  351. package/src/scripts/condense.ts +3 -3
  352. package/src/scripts/condense_memory.ts +1 -1
  353. package/src/scripts/config/index.ts +1 -1
  354. package/src/scripts/config/packs.ts +1 -1
  355. package/src/scripts/config/presets.ts +1 -1
  356. package/src/scripts/config/profile_explain.ts +1 -1
  357. package/src/scripts/config/profiles.ts +1 -1
  358. package/src/scripts/config/session_profiles.ts +1 -1
  359. package/src/scripts/context_hygiene_hook.ts +2 -2
  360. package/src/scripts/cost_by_conversation.ts +1 -1
  361. package/src/scripts/cost_summary.ts +2 -2
  362. package/src/scripts/council_cli.ts +1 -1
  363. package/src/scripts/council_prune.ts +1 -1
  364. package/src/scripts/cross_repo_retrieve.ts +2 -2
  365. package/src/scripts/discovery_stats.ts +3 -3
  366. package/src/scripts/evidence_report.ts +4 -4
  367. package/src/scripts/extract_audit_patterns.ts +2 -2
  368. package/src/scripts/first_run_gate_hook.ts +1 -1
  369. package/src/scripts/gen_discovery_baseline.ts +2 -2
  370. package/src/scripts/generate_capabilities_index.ts +2 -2
  371. package/src/scripts/generate_capability_matrix.ts +2 -2
  372. package/src/scripts/generate_catalog.ts +2 -2
  373. package/src/scripts/generate_command_flows.ts +2 -2
  374. package/src/scripts/generate_cookbook.ts +1 -1
  375. package/src/scripts/generate_index.ts +3 -3
  376. package/src/scripts/generate_ownership_matrix.ts +2 -2
  377. package/src/scripts/generate_pack_manifests.ts +2 -2
  378. package/src/scripts/generate_role_experiences_catalog.ts +3 -3
  379. package/src/scripts/hooks/block_no_verify.ts +2 -2
  380. package/src/scripts/hooks/dispatch_hook.ts +2 -2
  381. package/src/scripts/hooks/dispatch_issues.ts +1 -1
  382. package/src/scripts/hooks/envelope.ts +1 -1
  383. package/src/scripts/hooks/replay_hook.ts +1 -1
  384. package/src/scripts/hooks/state_io.ts +1 -1
  385. package/src/scripts/hooks_doctor.ts +1 -1
  386. package/src/scripts/hooks_status.ts +1 -1
  387. package/src/scripts/injection_scan_hook.ts +1 -1
  388. package/src/scripts/install.ts +145 -3
  389. package/src/scripts/inventory_abstraction_budget.ts +5 -5
  390. package/src/scripts/inventory_frontmatter.ts +1 -1
  391. package/src/scripts/inventory_meta_layers.ts +1 -1
  392. package/src/scripts/iron_law_sha.ts +1 -1
  393. package/src/scripts/knowledge_global_cli.ts +3 -3
  394. package/src/scripts/linked_projects_list.ts +1 -1
  395. package/src/scripts/lint_agent_security.ts +4 -4
  396. package/src/scripts/lint_agent_skill_names.ts +1 -1
  397. package/src/scripts/lint_agents_layout.ts +2 -2
  398. package/src/scripts/lint_agents_md.ts +3 -3
  399. package/src/scripts/lint_archived_skills.ts +2 -2
  400. package/src/scripts/lint_artefact_frontmatter.ts +2 -2
  401. package/src/scripts/lint_bench_ab.ts +2 -2
  402. package/src/scripts/lint_bench_corpus.ts +1 -1
  403. package/src/scripts/lint_command_flow_coverage.ts +1 -1
  404. package/src/scripts/lint_command_routing.ts +2 -2
  405. package/src/scripts/lint_command_tiers.ts +1 -1
  406. package/src/scripts/lint_command_verbs.ts +4 -4
  407. package/src/scripts/lint_commit_subjects.ts +2 -2
  408. package/src/scripts/lint_context_spine_usage.ts +3 -3
  409. package/src/scripts/lint_discovery_manifest.ts +4 -4
  410. package/src/scripts/lint_discovery_vocabulary.ts +2 -2
  411. package/src/scripts/lint_empty_roadmaps.ts +3 -3
  412. package/src/scripts/lint_eval_freshness.ts +2 -2
  413. package/src/scripts/lint_examples.ts +2 -2
  414. package/src/scripts/lint_explain_trace.ts +2 -2
  415. package/src/scripts/lint_featured_skills.ts +0 -0
  416. package/src/scripts/lint_flows.ts +5 -5
  417. package/src/scripts/lint_framework_leakage.ts +1 -1
  418. package/src/scripts/lint_framework_leakage_allowlist.json +10 -2
  419. package/src/scripts/lint_frontmatter_boilerplate.ts +2 -2
  420. package/src/scripts/lint_ghostwriter_source.ts +3 -3
  421. package/src/scripts/lint_global_paths.ts +1 -1
  422. package/src/scripts/lint_handoffs.ts +1 -1
  423. package/src/scripts/lint_hidden_unicode.ts +1 -1
  424. package/src/scripts/lint_hook_concern_budget.ts +2 -2
  425. package/src/scripts/lint_hook_manifest.ts +2 -2
  426. package/src/scripts/lint_instruction_smuggling.ts +1 -1
  427. package/src/scripts/lint_load_context.ts +2 -2
  428. package/src/scripts/lint_marketplace.ts +1 -1
  429. package/src/scripts/lint_marketplace_install_completeness.ts +2 -2
  430. package/src/scripts/lint_mcp_config_security.ts +1 -1
  431. package/src/scripts/lint_mcp_registry_manifest.ts +1 -1
  432. package/src/scripts/lint_media_policy_linkage.ts +3 -3
  433. package/src/scripts/lint_missions.ts +3 -3
  434. package/src/scripts/lint_model_tier_coverage.ts +3 -3
  435. package/src/scripts/lint_namespace.ts +2 -2
  436. package/src/scripts/lint_namespace_collisions.ts +2 -2
  437. package/src/scripts/lint_new_skill_gate.ts +3 -3
  438. package/src/scripts/lint_no_new_atomic_commands.ts +9 -6
  439. package/src/scripts/lint_no_python_twin_rationale.ts +102 -0
  440. package/src/scripts/lint_one_off_age.ts +2 -2
  441. package/src/scripts/lint_orchestration_dsl.ts +3 -3
  442. package/src/scripts/lint_orchestrator_auto_detect.ts +1 -1
  443. package/src/scripts/lint_pack_boundaries.ts +2 -2
  444. package/src/scripts/lint_pack_dependencies.ts +2 -2
  445. package/src/scripts/lint_pack_first_win.ts +2 -2
  446. package/src/scripts/lint_persona_governance.ts +3 -3
  447. package/src/scripts/lint_positioning.ts +1 -1
  448. package/src/scripts/lint_profile_overlay_set_only.ts +2 -2
  449. package/src/scripts/lint_readme_jargon.ts +2 -2
  450. package/src/scripts/lint_readme_size.ts +2 -2
  451. package/src/scripts/lint_regression.ts +3 -3
  452. package/src/scripts/lint_roadmap_ci_steps.ts +3 -3
  453. package/src/scripts/lint_roadmap_complexity.ts +1 -1
  454. package/src/scripts/lint_roadmap_later_disposition.ts +2 -2
  455. package/src/scripts/lint_role_experiences.ts +2 -2
  456. package/src/scripts/lint_rule_interactions.ts +1 -1
  457. package/src/scripts/lint_rule_tiers.ts +1 -1
  458. package/src/scripts/lint_showcase_sessions.ts +2 -2
  459. package/src/scripts/lint_skill_frontmatter_safety.ts +1 -1
  460. package/src/scripts/lint_skill_originality.ts +1 -1
  461. package/src/scripts/lint_skill_tools.ts +3 -3
  462. package/src/scripts/lint_ticket_buildable.ts +2 -2
  463. package/src/scripts/lint_topics_yaml.ts +3 -3
  464. package/src/scripts/lint_trust_coherence.ts +3 -3
  465. package/src/scripts/lint_value_dashboard.ts +3 -3
  466. package/src/scripts/lint_workflow_security.ts +3 -3
  467. package/src/scripts/lint_workspace_boundary.ts +2 -2
  468. package/src/scripts/mcp_parity_smoke.ts +1 -1
  469. package/src/scripts/mcp_render.ts +1 -1
  470. package/src/scripts/mcp_server/catalog.ts +1 -1
  471. package/src/scripts/mcp_server/index.ts +1 -1
  472. package/src/scripts/mcp_server/metadata.ts +1 -1
  473. package/src/scripts/mcp_server/prompts.ts +1 -1
  474. package/src/scripts/mcp_server/resources.ts +1 -1
  475. package/src/scripts/mcp_server/server.ts +1 -1
  476. package/src/scripts/mcp_server/telemetry.ts +1 -1
  477. package/src/scripts/mcp_server/tools.ts +1 -1
  478. package/src/scripts/mcp_telemetry_health.ts +1 -1
  479. package/src/scripts/mcp_telemetry_query.ts +3 -3
  480. package/src/scripts/mcp_telemetry_store.ts +3 -3
  481. package/src/scripts/measure_augment_budget.ts +2 -2
  482. package/src/scripts/measure_density.ts +2 -2
  483. package/src/scripts/measure_frugality_savings.ts +3 -3
  484. package/src/scripts/measure_markitdown_lift.ts +1 -1
  485. package/src/scripts/measure_patterns.ts +1 -1
  486. package/src/scripts/measure_projection_bytes.ts +1 -1
  487. package/src/scripts/measure_rule_budget.ts +1 -1
  488. package/src/scripts/measure_skill_reduction.ts +1 -1
  489. package/src/scripts/memory_hash.ts +1 -1
  490. package/src/scripts/memory_lookup.ts +6 -6
  491. package/src/scripts/memory_report.ts +1 -1
  492. package/src/scripts/memory_signal.ts +1 -1
  493. package/src/scripts/memory_status.ts +2 -2
  494. package/src/scripts/migrate_command_suggestions.ts +1 -1
  495. package/src/scripts/migrate_frontmatter_defaults.ts +1 -1
  496. package/src/scripts/mine_session.ts +3 -3
  497. package/src/scripts/minimal_safe_diff_hook.ts +2 -2
  498. package/src/scripts/move_artefact.ts +3 -3
  499. package/src/scripts/new_skill.ts +3 -3
  500. package/src/scripts/onboarding_gate_hook.ts +2 -2
  501. package/src/scripts/pack_mcp_content.ts +1 -1
  502. package/src/scripts/parity/replay.ts +3 -2
  503. package/src/scripts/pattern_share.ts +2 -2
  504. package/src/scripts/plan_physical_move.ts +3 -3
  505. package/src/scripts/prediction-pool/poisson_sim.ts +2 -2
  506. package/src/scripts/prediction-pool/pool_winsim.ts +2 -2
  507. package/src/scripts/prediction-pool/score_ev.ts +2 -2
  508. package/src/scripts/print_required_checks.ts +2 -2
  509. package/src/scripts/probe_projection_fidelity.ts +2 -2
  510. package/src/scripts/probe_skill_registration.ts +2 -2
  511. package/src/scripts/profile_staleness_hook.ts +2 -2
  512. package/src/scripts/profile_use.ts +2 -2
  513. package/src/scripts/project_thin_rules.ts +3 -3
  514. package/src/scripts/propose_modules_config.ts +2 -2
  515. package/src/scripts/prototype_lint_contradictions.ts +2 -2
  516. package/src/scripts/prove_pack_extractable.ts +1 -1
  517. package/src/scripts/readme_linter.ts +4 -4
  518. package/src/scripts/redact_hook_capture.ts +2 -2
  519. package/src/scripts/refine_ticket_detect.ts +1 -1
  520. package/src/scripts/release.ts +30 -19
  521. package/src/scripts/render_benchmark_md.ts +2 -2
  522. package/src/scripts/render_value_md.ts +2 -2
  523. package/src/scripts/roadmap_progress_hook.ts +1 -1
  524. package/src/scripts/router_telemetry.ts +1 -1
  525. package/src/scripts/run_skill_evals.ts +2 -2
  526. package/src/scripts/runtime_dispatcher.ts +1 -1
  527. package/src/scripts/runtime_handler.ts +1 -1
  528. package/src/scripts/runtime_registry.ts +3 -3
  529. package/src/scripts/score_skill_selection.ts +1 -1
  530. package/src/scripts/security_audit_config.ts +2 -2
  531. package/src/scripts/skill_collision_clusters.ts +1 -1
  532. package/src/scripts/skill_discovery.ts +1 -1
  533. package/src/scripts/skill_linter.ts +8 -7
  534. package/src/scripts/skill_overlap.ts +2 -2
  535. package/src/scripts/skill_preview.ts +1 -1
  536. package/src/scripts/skill_tools/audit_persona_coverage.ts +3 -3
  537. package/src/scripts/skill_tools/audit_user_type_coverage.ts +3 -3
  538. package/src/scripts/skill_tools/index.ts +1 -1
  539. package/src/scripts/skill_tools/run_block_d_eval.ts +3 -3
  540. package/src/scripts/skill_tools/score_skill_relevance.ts +3 -3
  541. package/src/scripts/skill_tools/suggest_skill_for_task.ts +3 -3
  542. package/src/scripts/skill_trigger_eval.ts +2 -2
  543. package/src/scripts/skill_usage_collect.ts +2 -2
  544. package/src/scripts/skill_usage_report.ts +2 -2
  545. package/src/scripts/smoke_path_resolution.ts +2 -2
  546. package/src/scripts/smoke_quickstart.ts +4 -4
  547. package/src/scripts/snapshot_agent_outputs.ts +2 -2
  548. package/src/scripts/spotcheck_thin_root.ts +2 -2
  549. package/src/scripts/surface-tiers.yml +1 -0
  550. package/src/scripts/sync_agent_settings.ts +2 -2
  551. package/src/scripts/sync_github_metadata.ts +4 -4
  552. package/src/scripts/sync_gitignore.ts +3 -3
  553. package/src/scripts/sync_yaml_rt.ts +2 -2
  554. package/src/scripts/telegraph_stats.ts +1 -1
  555. package/src/scripts/tool_registry.ts +2 -2
  556. package/src/scripts/tools/adapter_errors.ts +1 -1
  557. package/src/scripts/tools/base_adapter.ts +1 -1
  558. package/src/scripts/tools/github_adapter.ts +1 -1
  559. package/src/scripts/tools/jira_adapter.ts +1 -1
  560. package/src/scripts/trigger_coverage.ts +2 -2
  561. package/src/scripts/update_counts.ts +68 -6
  562. package/src/scripts/update_prices.ts +3 -3
  563. package/src/scripts/validate_agent_settings.ts +3 -3
  564. package/src/scripts/validate_decision_engine.ts +2 -2
  565. package/src/scripts/validate_discovery_manifest.ts +3 -3
  566. package/src/scripts/validate_frontmatter.ts +5 -5
  567. package/src/scripts/validate_pack_yaml.ts +0 -0
  568. package/src/scripts/validate_safe_paths.ts +2 -2
  569. package/src/scripts/validate_telegraph_carveouts.ts +3 -3
  570. package/src/scripts/verify_before_complete_hook.ts +2 -2
  571. package/src/scripts/verify_physical_move.ts +2 -2
  572. package/src/scripts/wrapper_freshness_hook.ts +3 -3
  573. package/src/server/schemas/settings.ts +426 -0
  574. package/src/shared/settingsSurface.ts +184 -0
  575. package/src/shared/userMd/formAdapter.ts +86 -0
  576. package/src/shared/userMd/schema.ts +59 -0
  577. package/src/shared/userMd/utils.ts +91 -0
  578. package/dist/agent-src/commands/optimize-project.md +0 -243
  579. package/dist/ui/assets/index-BbWWuFrF.css +0 -1
  580. package/dist/ui/assets/index-UjcTG_9O.js +0 -40
  581. package/dist/ui/assets/index-UjcTG_9O.js.map +0 -1
@@ -12,7 +12,7 @@
12
12
  // invocation. stdlib-only; reads (never writes) the DB via Node's
13
13
  // built-in `node:sqlite`, imported lazily.
14
14
  //
15
- // TS twin of mcp_telemetry_query.py (py2ts). Mirrors the full public
15
+ // TS port of the retired Python mcp_telemetry_query.py (ADR-200). Mirrors the full public
16
16
  // surface: ToolRow, summarise, main.
17
17
  import * as fs from 'node:fs';
18
18
  import * as path from 'node:path';
@@ -51,8 +51,8 @@ class FileNotFoundLikeError extends Error {}
51
51
  // Python's stdlib sqlite3 emits nothing on stderr; node:sqlite is flagged
52
52
  // experimental on node 22 and prints an `ExperimentalWarning: SQLite …` line
53
53
  // to stderr on first import (stable / silent on node >= 23). Drop only that
54
- // specific warning so the twin's stderr stays byte-identical to the Python
55
- // original across node versions. Installed once, narrowly matched.
54
+ // specific warning so stderr stays byte-stable across node versions (tests
55
+ // pin the exact bytes). Installed once, narrowly matched.
56
56
  let _sqliteWarningSilenced = false;
57
57
  function _silenceSqliteExperimentalWarning(): void {
58
58
  if (_sqliteWarningSilenced) return;
@@ -15,7 +15,7 @@
15
15
  //
16
16
  // Phase 2 K2 (`scripts/mcp_telemetry_query.ts`) reads from this store.
17
17
  //
18
- // TS twin of mcp_telemetry_store.py (py2ts). Mirrors the full public
18
+ // TS port of the retired Python mcp_telemetry_store.py (ADR-200). Mirrors the full public
19
19
  // surface: IngestReport, resolve_source, resolve_db, ingest, main.
20
20
  import * as crypto from 'node:crypto';
21
21
  import * as fs from 'node:fs';
@@ -176,8 +176,8 @@ export function resolve_db(consumer_root?: string | null): string {
176
176
  // Python's stdlib sqlite3 emits nothing on stderr; node:sqlite is flagged
177
177
  // experimental on node 22 and prints an `ExperimentalWarning: SQLite …` line
178
178
  // to stderr on first import (stable / silent on node >= 23). Drop only that
179
- // specific warning so the twin's stderr stays byte-identical to the Python
180
- // original across node versions. Installed once, narrowly matched.
179
+ // specific warning so stderr stays byte-stable across node versions (tests
180
+ // pin the exact bytes). Installed once, narrowly matched.
181
181
  let _sqliteWarningSilenced = false;
182
182
  function _silenceSqliteExperimentalWarning(): void {
183
183
  if (_sqliteWarningSilenced) return;
@@ -3,8 +3,8 @@
3
3
  * Measure the Augment workspace-guidelines budget (Phase 1.1 of
4
4
  * road-to-augment-limit-fit).
5
5
  *
6
- * TypeScript twin of `src/scripts/measure_augment_budget.py` (ADR-200,
7
- * Phase 8 Wave 8a). Mirrors the Python CLI contract EXACTLY — flags
6
+ * Ported from the retired Python `src/scripts/measure_augment_budget.py` (ADR-200,
7
+ * Phase 8 Wave 8a). The CLI contract is pinned — flags
8
8
  * (`--json`, `--trend-append`, `--check`), exit codes (0 / 1 / 3),
9
9
  * byte-identical stdout (text summary + `json.dumps(indent=2,
10
10
  * sort_keys=True)`), and the byte-identical JSONL trend record
@@ -2,12 +2,12 @@
2
2
  /**
3
3
  * Measure structural density across the artifact corpus.
4
4
  *
5
- * TypeScript twin of `src/scripts/measure_density.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/measure_density.py` (ADR-200 —
6
6
  * Python→TS migration, Phase 8 / Wave 8c). Mirrors the CLI contract
7
7
  * EXACTLY: flags (`--json`, `--snapshot`), exit code 0, byte-identical
8
8
  * stdout (report or `json.dumps(sort_keys=True, indent=2)`), and the same
9
9
  * snapshot JSONL (`json.dumps(sort_keys=True)` per line). No behaviour
10
- * changes — latent quirks replicated.
10
+ * changes — historical quirks preserved (consumers pin the exact behaviour).
11
11
  *
12
12
  * Phase 1.1 of `agents/roadmaps/road-to-structural-linter-reform.md`.
13
13
  *
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Phase 0 baseline harness for road-to-trim-frugality-canon.
4
4
  *
5
- * TypeScript twin of `src/scripts/measure_frugality_savings.py` (ADR-200,
6
- * Phase 8 Wave 8a). Mirrors the Python CLI contract EXACTLY — exit code 0,
5
+ * Ported from the retired Python `src/scripts/measure_frugality_savings.py` (ADR-200,
6
+ * Phase 8 Wave 8a). The CLI contract is pinned — exit code 0,
7
7
  * byte-identical stdout (`json.dumps(record, indent=2, ensure_ascii=False)`
8
8
  * + the `appended → …` line), and the byte-identical JSONL baseline row
9
9
  * (`json.dumps(record, ensure_ascii=False)`).
@@ -337,7 +337,7 @@ export function main(): number {
337
337
 
338
338
  const out = path.join(root, 'agents', 'runtime', 'frugality', 'baseline.jsonl');
339
339
  // with out.open("a") — does NOT mkdir parents; mirror that (will throw if
340
- // the directory is missing, exactly like the Python original).
340
+ // the directory is missing, exactly like the retired Python implementation).
341
341
  fs.appendFileSync(out, pyJsonDumps(record, null) + '\n');
342
342
  process.stdout.write(pyJsonDumps(record, 2) + '\n');
343
343
  const rel = path.relative(root, out).split(path.sep).join('/');
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Measure markitdown's token-saving lift on the bundled corpus.
4
4
  *
5
- * TypeScript twin of `src/scripts/measure_markitdown_lift.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/measure_markitdown_lift.py` (ADR-200 —
6
6
  * Python→TS migration, Phase 8 / Wave 8c). Mirrors the CLI contract EXACTLY:
7
7
  * flags (`--convert`, `--binary`), exit codes (0 baseline / 2 corpus missing /
8
8
  * 3 --convert without the binary on PATH), byte-identical stdout/stderr. No
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Measure presence of the eight Phase-3.1 judge patterns across all skills.
4
4
  *
5
- * TypeScript twin of `src/scripts/measure_patterns.py` (ADR-200 — Python→TS
5
+ * Ported from the retired Python `src/scripts/measure_patterns.py` (ADR-200 — Python→TS
6
6
  * migration, Phase 8 / Wave 8c). Mirrors the CLI contract EXACTLY: flags
7
7
  * (`--json`, `--tier`, `--diff-baseline`), exit codes (0 / 3 when the skills
8
8
  * dir is missing), byte-identical stdout/stderr. No behaviour changes.
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Measure per-tool projection bytes.
4
4
  *
5
- * TypeScript twin of `src/scripts/measure_projection_bytes.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/measure_projection_bytes.py` (ADR-200 —
6
6
  * Python→TS migration, Phase 8 / Wave 8c). Mirrors the CLI contract EXACTLY:
7
7
  * flags (`--json`, `--regenerate`), exit codes (0 / 2 when `task` is missing
8
8
  * for --regenerate), byte-identical stdout/stderr. No behaviour changes.
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Measure rule-bucket char counts (kernel + auto) for the rule-kernel roadmap.
4
4
  *
5
- * TypeScript twin of `src/scripts/measure_rule_budget.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/measure_rule_budget.py` (ADR-200 —
6
6
  * Python→TS migration, Phase 8 / Wave 8a). The CLI contract is mirrored
7
7
  * EXACTLY: same flags (`--json`, `--kernel-budget-check`,
8
8
  * `--trend-append`), same exit codes, same byte-identical stdout table /
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Skill-count reduction measurement — step-12 Phase 3 L74 deliverable.
4
4
  *
5
- * TypeScript twin of `src/scripts/measure_skill_reduction.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/measure_skill_reduction.py` (ADR-200 —
6
6
  * Python→TS migration, Phase 8 / Wave 8c). Mirrors the CLI contract EXACTLY:
7
7
  * flag (`--json`), exit codes (0 pass / 1 fail / 2 no-skills), byte-identical
8
8
  * stdout (report or `json.dumps(indent=2)`) and stderr. No behaviour changes.
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Content-addressed hash for a curated memory entry.
4
4
  *
5
- * TypeScript twin of `src/scripts/memory_hash.py` (ADR-200, Phase 7 /
5
+ * Ported from the retired Python `src/scripts/memory_hash.py` (ADR-200, Phase 7 /
6
6
  * dev-side memory CORE). The public API and CLI contract mirror the Python
7
7
  * original EXACTLY — same exported names (snake_case kept deliberately),
8
8
  * same canonical-JSON serialisation (sorted keys, no whitespace,
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * File-first memory retrieval.
4
4
  *
5
- * TypeScript twin of `src/scripts/memory_lookup.py` (ADR-200). The public
6
- * API and CLI contract mirror the Python original EXACTLY — same exported
5
+ * Ported from the retired Python `src/scripts/memory_lookup.py` (ADR-200). The public
6
+ * API and CLI contract mirror the retired Python implementation EXACTLY — same exported
7
7
  * names (snake_case kept deliberately, especially `retrieve(...)` whose
8
8
  * signature/return shape is cited by rules), same exit codes, stdout/stderr
9
9
  * split, byte-identical messages, same memory-file scan + ranking + JSON
@@ -40,7 +40,7 @@ import YAML, { parseDocument } from 'yaml';
40
40
  // timestamp into a `datetime.datetime`. The `yaml` npm parses both to JS Date
41
41
  // objects whose String()/JSON form differs, so `json.dumps(..., default=str)`
42
42
  // in the CLI would not match. This marker preserves PyYAML's str() form so
43
- // JSON output and as_dict() are byte-identical to the Python original.
43
+ // JSON output and as_dict() are byte-stable — downstream consumers and checksum gates pin these bytes.
44
44
  const PYYAML_DATE_ONLY_RE = /^[0-9]{4}-[0-9]{2}-[0-9]{2}$/;
45
45
  const PYYAML_TIMESTAMP_RE =
46
46
  /^(?:[0-9]{4}-[0-9]{2}-[0-9]{2}|[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}(?:[Tt]|[ \t]+)[0-9]{1,2}:[0-9]{2}:[0-9]{2}(?:\.[0-9]*)?(?:[ \t]*(?:Z|[-+][0-9]{1,2}(?::[0-9]{2})?))?)$/;
@@ -191,7 +191,7 @@ function _load_yaml(p: string): unknown {
191
191
  const raw = text.slice(node.range[0], node.range[1]);
192
192
  // Under YAML 1.1 the `yaml` lib resolves plain timestamp scalars to
193
193
  // JS Date objects. Recover PyYAML's str() form from the original
194
- // source so JSON output / as_dict() match the Python original.
194
+ // source so JSON output / as_dict() match the retired Python implementation.
195
195
  if (node.value instanceof Date) {
196
196
  if (PYYAML_DATE_ONLY_RE.test(raw)) {
197
197
  (node as { value: unknown }).value = new PyTimestamp(raw);
@@ -476,10 +476,10 @@ export function _score(entry: Record<string, unknown>, keys: string[]): number {
476
476
  /**
477
477
  * Project cross-repo matches into discounted, tagged Hits.
478
478
  *
479
- * Lazy + guarded: the Python original imports `cross_repo_retrieve` on
479
+ * Lazy + guarded: the retired Python implementation imports `cross_repo_retrieve` on
480
480
  * demand and swallows any failure (script absent, no opted-in siblings) so
481
481
  * the cross-repo type degrades to zero hits rather than breaking retrieval.
482
- * The TypeScript twin of `cross_repo_retrieve` is unported in this phase, so
482
+ * The Ported from the retired Python `cross_repo_retrieve` is unported in this phase, so
483
483
  * this always degrades to zero hits — flagged as a divergence candidate.
484
484
  * Scores sit below curated/knowledge (0.85× floor, then a small per-rank
485
485
  * decrement) so cross-repo context never outranks the project's own truth.
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * One-shot memory observability report.
4
4
  *
5
- * TypeScript twin of `src/scripts/memory_report.py` (ADR-200, Phase 7 /
5
+ * Ported from the retired Python `src/scripts/memory_report.py` (ADR-200, Phase 7 /
6
6
  * dev-side memory). The public API and CLI contract mirror the Python
7
7
  * original EXACTLY — same exported names (snake_case kept deliberately),
8
8
  * same exit codes, stdout/stderr split, byte-identical messages, and
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Write-side helper: drop an engineering-memory signal.
4
4
  *
5
- * TypeScript twin of `src/scripts/memory_signal.py` (ADR-200, Phase 7 /
5
+ * Ported from the retired Python `src/scripts/memory_signal.py` (ADR-200, Phase 7 /
6
6
  * dev-side memory). The public API and CLI contract mirror the Python
7
7
  * original EXACTLY — same exported names (snake_case kept deliberately),
8
8
  * same exit codes, stdout/stderr split, byte-identical messages, same
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * File-backed memory status (no external backend).
4
4
  *
5
- * TypeScript twin of `src/scripts/memory_status.py` (ADR-200). The public
6
- * API and CLI contract mirror the Python original EXACTLY — same exported
5
+ * Ported from the retired Python `src/scripts/memory_status.py` (ADR-200). The public
6
+ * API and CLI contract mirror the retired Python implementation EXACTLY — same exported
7
7
  * names (snake_case kept deliberately), same exit codes, stdout/stderr
8
8
  * split, byte-identical messages and JSON shape. No behaviour changes.
9
9
  *
@@ -3,7 +3,7 @@
3
3
  * One-shot migration: inject the `suggestion:` frontmatter block into every
4
4
  * command under `.agent-src.uncondensed/commands/`.
5
5
  *
6
- * TypeScript twin of `src/scripts/migrate_command_suggestions.py` (ADR-200 —
6
+ * Ported from the retired Python `src/scripts/migrate_command_suggestions.py` (ADR-200 —
7
7
  * Python→TS migration, Phase 8 / Wave 8e). Faithful twin: the legacy
8
8
  * `.agent-src.uncondensed/commands/` path is part of the original module's
9
9
  * contract and is reproduced verbatim. Public surface mirrors the Python module
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Migrate artefact frontmatter to omit fields equal to their schema default.
4
4
  *
5
- * TypeScript twin of `src/scripts/migrate_frontmatter_defaults.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/migrate_frontmatter_defaults.py` (ADR-200 —
6
6
  * Python→TS migration, Phase 8 / Wave 8e). Public surface mirrors the Python
7
7
  * module exactly: same CLI flags (`--dry-run`, `--deltas PATH`), same exit code
8
8
  * (0), same stdout summary, and byte-identical rewritten files + dry-run delta
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Mine a session for memory signals — the engine behind `/memory mine`.
4
4
  *
5
- * TypeScript twin of `src/scripts/mine_session.py` (ADR-200 — Python→TS
6
- * migration, Phase 8 / Wave 8g). Mirrors the Python CLI contract EXACTLY —
5
+ * Ported from the retired Python `src/scripts/mine_session.py` (ADR-200 — Python→TS
6
+ * migration, Phase 8 / Wave 8g). The CLI contract is pinned —
7
7
  * every flag, exit code (0), the stdout/stderr split, byte-identical
8
8
  * messages, byte-identical preview Markdown, and byte-identical
9
9
  * `json.dumps(..., ensure_ascii=False)` intake JSONL lines.
@@ -26,7 +26,7 @@
26
26
  *
27
27
  * Auto-resolved transcript discovery (`rglob` sorted by mtime) is
28
28
  * intrinsically non-deterministic; golden parity supplies a fixed
29
- * `--transcript`. No behaviour changes — latent Python quirks replicated.
29
+ * `--transcript`. Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
30
30
  */
31
31
  import * as crypto from 'node:crypto';
32
32
  import * as fs from 'node:fs';
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Platform-agnostic hook for the `minimal-safe-diff` rule.
4
4
  *
5
- * TypeScript twin of `src/scripts/minimal_safe_diff_hook.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/minimal_safe_diff_hook.py` (ADR-200 —
6
6
  * Python→TS migration, Phase 6 / hooks). Public API mirrors the Python
7
7
  * module exactly (snake_case kept deliberately — fidelity over TS idiom).
8
8
  *
@@ -39,7 +39,7 @@ import { atomic_write_json } from "./hooks/state_io.js";
39
39
 
40
40
  // NOTE: the Python docstring says `agents/runtime/state/`, but the code
41
41
  // constant is `agents/state/`. Replicated verbatim — latent docstring/code
42
- // divergence in the Python original (ADR-200 § replicate latent bugs).
42
+ // divergence in the retired Python implementation (ADR-200 § replicate latent bugs).
43
43
  export const STATE_FILE = path.join("agents", "state", "minimal-safe-diff.json");
44
44
  export const SETTINGS_FILE = ".agent-settings.yml";
45
45
  export const DEFAULT_THRESHOLD = 5;
@@ -2,10 +2,10 @@
2
2
  /**
3
3
  * Move a single artefact between packs via `git mv` (history-preserving).
4
4
  *
5
- * TypeScript twin of `src/scripts/move_artefact.py` (ADR-200, Phase 8 /
5
+ * Ported from the retired Python `src/scripts/move_artefact.py` (ADR-200, Phase 8 /
6
6
  * Wave 8b). The public surface, CLI contract, exit codes, stdout/stderr
7
- * split, byte-for-byte messages, and the `git mv` semantics mirror the
8
- * Python original EXACTLY. The frontmatter rewrite reproduces PyYAML's
7
+ * split, byte-for-byte messages, and the `git mv` semantics are pinned by
8
+ * tests. The frontmatter rewrite reproduces PyYAML's
9
9
  * `safe_dump(..., sort_keys=False, allow_unicode=True)` output through a
10
10
  * faithful port of the PyYAML emitter (scalar-style resolution, plain /
11
11
  * single-quoted / double-quoted writers with the same best-width=80
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Interactive scaffolder for new skills under the packages/ layout.
4
4
  *
5
- * TypeScript twin of `src/scripts/new_skill.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/new_skill.py` (ADR-200 — Python→TS
6
+ * migration, Phase 8 / Wave 8b). The CLI contract is pinned —
7
7
  * the `--pack` / `--type` / `--name` / `--description` / `--workspace`
8
8
  * (repeatable) / `--force` flags, exit codes (0 ok · 1 file exists · 2
9
9
  * usage / validation), the stdout/stderr split, byte-identical messages,
@@ -15,7 +15,7 @@
15
15
  * - rule → rules/<name>.md
16
16
  * - command → commands/<name>.md
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';
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Platform-agnostic hook for the `onboarding-gate` rule.
4
4
  *
5
- * TypeScript twin of `src/scripts/onboarding_gate_hook.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/onboarding_gate_hook.py` (ADR-200 —
6
6
  * Python→TS migration, Phase 6 / hooks). Public API mirrors the Python
7
7
  * module exactly (snake_case kept deliberately — fidelity over TS idiom).
8
8
  *
@@ -40,7 +40,7 @@ import { atomic_write_json } from "./hooks/state_io.js";
40
40
  export const SETTINGS_FILE = ".agent-settings.yml";
41
41
  // NOTE: the Python docstring says `agents/runtime/state/`, but the code
42
42
  // constant is `agents/state/`. Replicated verbatim — this is a latent
43
- // docstring/code divergence in the Python original (ADR-200 § replicate
43
+ // docstring/code divergence in the retired Python implementation (ADR-200 § replicate
44
44
  // latent bugs), and `STATE_FILE` is what the test suite asserts against.
45
45
  export const STATE_DIR = path.join("agents", "state");
46
46
  export const STATE_FILE = path.join(STATE_DIR, "onboarding-gate.json");
@@ -23,7 +23,7 @@
23
23
  //
24
24
  // Governed by `docs/contracts/mcp-cloud-scope.md` §A0-cloud invariant 5.
25
25
  //
26
- // TS twin of pack_mcp_content.py (py2ts migration, ADR-200). Byte-identical
26
+ // TS port of the retired Python pack_mcp_content.py (ADR-200). Byte-identical
27
27
  // twin: same five scanners, same wire shape, same compact-JSON / indent=2
28
28
  // manifest serialization, same gzip archival copy (mtime=0, level 9, with
29
29
  // Python's OS=0xFF header byte). The .py stays the deploy entrypoint until
@@ -1,6 +1,7 @@
1
1
  /**
2
- * Golden-replay runner — proves a TypeScript port behaves identically to its
3
- * Python original.
2
+ * Golden-replay runner — proves a TypeScript port behaves identically to the
3
+ * retired Python implementation it replaced (golden transcripts were captured
4
+ * before the teardown).
4
5
  *
5
6
  * CLI:
6
7
  * tsx src/scripts/parity/replay.ts \
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Maintainer dev script — export / import file-first patterns across projects.
4
4
  *
5
- * TypeScript twin of `src/scripts/pattern_share.py` (ADR-200). Mirrors the
5
+ * Ported from the retired Python `src/scripts/pattern_share.py` (ADR-200). Mirrors the
6
6
  * Python CLI contract EXACTLY — the `export` / `import` subcommands, their
7
7
  * positional + flag args (`--out`, `--force`), exit codes (0 / 1 / 2),
8
8
  * stdout/stderr split, the byte-identical refusal/success lines (`❌ …` /
@@ -245,7 +245,7 @@ function _isFlag(a: string): boolean {
245
245
  return a.startsWith('-') && a !== '-';
246
246
  }
247
247
 
248
- // argparse precedence (verified against the Python original):
248
+ // argparse precedence (verified against the retired Python implementation):
249
249
  // 1. an optional that needs a value but is missing it → SUB-level error
250
250
  // "argument --out: expected one argument" (during consumption).
251
251
  // 2. a missing required positional → SUB-level error
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Plan + apply the physical monorepo migration (Phase 4).
4
4
  *
5
- * TypeScript twin of `src/scripts/plan_physical_move.py` (ADR-200, Phase 8 /
5
+ * Ported from the retired Python `src/scripts/plan_physical_move.py` (ADR-200, Phase 8 /
6
6
  * Wave 8b). Mirrors the CLI contract EXACTLY — the `--apply`, `--out` flags,
7
7
  * exit codes (0 clean dry-run / 1 dry-run-with-conflicts / 2 refuse-apply /
8
8
  * 3 source-missing / 4 git-mv-failed), the stdout/stderr split, byte-identical
@@ -13,9 +13,9 @@
13
13
  * destination under `packages/core/` or `packages/pack-<id>/`, and emits
14
14
  * `dist/migration/move-plan.json`. `--apply` executes the moves via `git mv`.
15
15
  *
16
- * No behaviour changes — latent Python quirks replicated. (The dry-run path
16
+ * Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour. (The dry-run path
17
17
  * writes the plan JSON to BOTH the default location and `--out`; when they
18
- * coincide the file is written twice, exactly as the Python original does.)
18
+ * coincide the file is written twice, exactly as the retired Python implementation does.)
19
19
  */
20
20
  import { spawnSync } from 'node:child_process';
21
21
  import * as fs from 'node:fs';
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Poisson tournament simulator for prediction-pool-optimizer.
4
4
  *
5
- * TypeScript twin of `src/scripts/prediction-pool/poisson_sim.py` (ADR-200).
6
- * The CLI contract is mirrored EXACTLY — the positional `config` JSON file,
5
+ * Ported from the retired Python `src/scripts/prediction-pool/poisson_sim.py` (ADR-200).
6
+ * The CLI contract is pinned — the positional `config` JSON file,
7
7
  * `--runs` / `--seed`, exit codes, the stdout/stderr split, and byte-identical
8
8
  * output. No behaviour changes.
9
9
  *
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Field model + P(finish 1st) simulator for prediction-pool-optimizer.
4
4
  *
5
- * TypeScript twin of `src/scripts/prediction-pool/pool_winsim.py` (ADR-200).
6
- * The CLI contract is mirrored EXACTLY — the positional `config` JSON file,
5
+ * Ported from the retired Python `src/scripts/prediction-pool/pool_winsim.py` (ADR-200).
6
+ * The CLI contract is pinned — the positional `config` JSON file,
7
7
  * `--runs` / `--max-flips` / `--max-opponents` / `--top-flip` / `--seed` /
8
8
  * `--json`, exit codes, the stdout/stderr split, and byte-identical text AND
9
9
  * `--json` output. No behaviour changes.
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Exact-score EV optimiser for prediction-pool-optimizer.
4
4
  *
5
- * TypeScript twin of `src/scripts/prediction-pool/score_ev.py` (ADR-200,
6
- * Phase 8). The CLI contract is mirrored EXACTLY — the positional `matches`
5
+ * Ported from the retired Python `src/scripts/prediction-pool/score_ev.py` (ADR-200,
6
+ * Phase 8). The CLI contract is pinned — the positional `matches`
7
7
  * JSON file, `--lh` / `--la` / `--exact` / `--diff` / `--tendency` /
8
8
  * `--max-tip` / `--top` / `--json`, exit codes, the stdout/stderr split, and
9
9
  * byte-identical text AND `--json` output. No behaviour changes.
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Print the expected required-check set for the current branch.
4
4
  *
5
- * TypeScript twin of `src/scripts/print_required_checks.py` (ADR-200,
6
- * Phase 8 / Wave 8g). Mirrors the Python CLI contract EXACTLY — `--branch`
5
+ * Ported from the retired Python `src/scripts/print_required_checks.py` (ADR-200,
6
+ * Phase 8 / Wave 8g). The CLI contract is pinned — `--branch`
7
7
  * / `--base` flags, PR-shape classification (release / docs-only / feature),
8
8
  * exit codes (0 ok, 1 release-shape OUT-OF-SHAPE fallback-to-feature, 2 usage),
9
9
  * stdout/stderr split, byte-identical messages. Reuses the release-shape
@@ -2,13 +2,13 @@
2
2
  /**
3
3
  * Phase 4.2 — Probe per-tool projection fidelity against the fixture.
4
4
  *
5
- * TypeScript twin of `src/scripts/probe_projection_fidelity.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/probe_projection_fidelity.py` (ADR-200 —
6
6
  * Python→TS migration, Phase 8 / Wave 8c). Mirrors the CLI contract
7
7
  * EXACTLY: flags (`--fixture`, `--report`), exit codes (0 when no fail, 1
8
8
  * when any check fails, 2 when the YAML dependency is missing — replicated
9
9
  * via a try/catch import), byte-identical stdout, and the byte-identical
10
10
  * written report (`json.dumps(report, indent=2) + "\n"`). No behaviour
11
- * changes — latent quirks replicated.
11
+ * changes — historical quirks preserved (consumers pin the exact behaviour).
12
12
  *
13
13
  * Reads tests/fixtures/projection_fidelity/fixtures.yml, walks the
14
14
  * projected trees (.augment/, .claude/, .cursor/, .clinerules/,
@@ -2,12 +2,12 @@
2
2
  /**
3
3
  * Tool-agnostic skill-registration probe.
4
4
  *
5
- * TypeScript twin of `src/scripts/probe_skill_registration.py` (ADR-090 —
5
+ * Ported from the retired Python `src/scripts/probe_skill_registration.py` (ADR-090 —
6
6
  * Python→TS migration, Phase 8 / Wave 8c). Mirrors the CLI contract
7
7
  * EXACTLY: flags (`--tool`, `--scope`, `--format`, `--strict`, `--home`,
8
8
  * `--project`), exit codes (0 informational / 0 when strict & clean, 2
9
9
  * when strict & findings), byte-identical text + JSON stdout, and the same
10
- * dataclass field order. No behaviour changes — latent quirks replicated.
10
+ * dataclass field order. Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
11
11
  *
12
12
  * Roadmap: road-to-clean-skill-distribution-channels.md § Phase C.
13
13
  * Contract: docs/contracts/skill-distribution-channels.md.
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Session-profile staleness notice — `session_start` hook.
4
4
  *
5
- * TypeScript twin of `src/scripts/profile_staleness_hook.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/profile_staleness_hook.py` (ADR-200 —
6
6
  * Python→TS migration, Phase 6 / hooks). Public API mirrors the Python
7
7
  * module exactly (snake_case kept deliberately — fidelity over TS idiom).
8
8
  *
@@ -18,7 +18,7 @@
18
18
  * notice is derived from the overlay file), emits at most one stderr line,
19
19
  * returns 0 on every path.
20
20
  *
21
- * NOTE (ADR-200): the Python original imports `scripts.config.session_profiles`,
21
+ * NOTE (ADR-200): the retired Python implementation imports `scripts.config.session_profiles`,
22
22
  * which is UNPORTED. The only entry point this hook touches is
23
23
  * `session_profiles.stale_notice(root)`, a fail-open read of the overlay file
24
24
  * (`agents/settings/.agent-settings.local.yml` → `runtime.active_packs`) plus a
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * `agent-config use --profile=<id>` — switch the active experience.
4
4
  *
5
- * TypeScript twin of `src/scripts/profile_use.py` (ADR-200 — Python→TS
6
- * migration, Phase 8 / Wave 8e). The CLI contract is mirrored EXACTLY:
5
+ * Ported from the retired Python `src/scripts/profile_use.py` (ADR-200 — Python→TS
6
+ * migration, Phase 8 / Wave 8e). The CLI contract is pinned:
7
7
  * same flags (`--profile=<id>` / `--profile <id>`), same exit codes
8
8
  * (0 success, 2 on missing/unknown profile), same byte-identical
9
9
  * stdout / stderr prose, and byte-identical surgical text edits of the
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Thin-projection of the rule layer (lean-initial-context build-out, Phase 3.1).
4
4
  *
5
- * TypeScript twin of `src/scripts/project_thin_rules.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/project_thin_rules.py` (ADR-200 —
6
6
  * Python→TS migration, Phase 8 / Wave 8b). The CLI contract is mirrored
7
7
  * EXACTLY — the `--measure` / `--out` / `--json` flags, exit codes, the
8
8
  * stdout/stderr split, byte-identical messages, and byte-identical JSON
@@ -20,11 +20,11 @@
20
20
  *
21
21
  * NOTE (faithful literal): the thin-entry pointer keeps the verbatim
22
22
  * `Body: [`{rule_id}`](../../.agent-src.uncondensed/rules/{rule_id}.md)`
23
- * Markdown link from the Python original. The same-basename `.py` twin
23
+ * Markdown link from the retired Python implementation. The same-basename `.py` twin
24
24
  * carries that literal, so the ADR-051 legacy-path guard exempts this `.ts`
25
25
  * file by twin-parity.
26
26
  *
27
- * No behaviour changes — latent Python quirks replicated.
27
+ * Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
28
28
  *
29
29
  * Usage:
30
30
  * project_thin_rules --measure # measure delta, no write
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Propose a `modules:` block for `.agent-project-settings.yml`.
4
4
  *
5
- * TypeScript twin of `src/scripts/propose_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/propose_modules_config.py` (ADR-200,
6
+ * Phase 8 / Wave 8g). The CLI contract is pinned — `--project`
7
7
  * / `--json` flags, the interactive numbered-options TTY block, the
8
8
  * machine-readable JSON envelope (byte-identical to `json.dump(indent=2)`),
9
9
  * exit codes (0 always on success, 2 unreachable path), stdout/stderr split.
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Prototype contradiction linter (P1.1 of road-to-package-optimization).
4
4
  *
5
- * TypeScript twin of `src/scripts/prototype_lint_contradictions.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/prototype_lint_contradictions.py` (ADR-200 —
6
6
  * Python→TS migration, Phase 8 / Wave 8g). Mirrors the Python CLI contract
7
7
  * EXACTLY — no flags, exit codes (0 clean / 1 contradictions found), the
8
8
  * stdout JSON shape (`json.dump(report, indent=2)`, insertion order, NO
@@ -17,7 +17,7 @@
17
17
  *
18
18
  * Heuristic family — two deterministic checks (routing + imperative conflict)
19
19
  * across rules, skills, commands, and contexts. No behaviour changes —
20
- * latent Python quirks replicated.
20
+ * historical quirks preserved (consumers pin the exact behaviour).
21
21
  */
22
22
  import * as fs from 'node:fs';
23
23
  import * as path from 'node:path';
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Prove a pack + its declared dependency closure is self-contained.
4
4
  *
5
- * TypeScript twin of `prove_pack_extractable.py` (Phase 8 / Wave 8g).
5
+ * Ported from the retired Python `prove_pack_extractable.py` (Phase 8 / Wave 8g).
6
6
  *
7
7
  * road-to-6.0.0-D Phase 1 Step 6 — the *extraction proof*. It de-risks the
8
8
  * monorepo collapse (Phase 3) by proving that a pack moved into the flat
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * README quality linter for agent-config repositories.
4
4
  *
5
- * TypeScript twin of `src/scripts/readme_linter.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/readme_linter.py` (ADR-200 — Python→TS
6
+ * migration, Phase 8 / Wave 8b). The CLI contract is pinned —
7
7
  * the positional `readme` arg, the `--root` / `--format` / `--strict`
8
8
  * flags, exit codes (0 pass · 1 warnings · 2 errors / strict-warnings ·
9
9
  * 3 README-not-found / internal error), the stdout/stderr split, and
@@ -14,7 +14,7 @@
14
14
  * Detects weak, misleading, or incomplete READMEs by cross-checking
15
15
  * against actual repository files (Taskfile.yml, package.json, etc.).
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';
@@ -46,7 +46,7 @@ const BUILTIN_COMMANDS = new Set<string>([
46
46
  'php artisan', 'cargo build', 'cargo test', 'go build', 'go test',
47
47
  'git clone', 'git submodule',
48
48
  ]);
49
- // Referenced to mirror the module-level constant in the Python original
49
+ // Referenced to mirror the module-level constant in the retired Python implementation
50
50
  // (it is defined but unused there); keeps the symbol "live" for the linter.
51
51
  void BUILTIN_COMMANDS;
52
52