@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
@@ -2,11 +2,11 @@
2
2
  /**
3
3
  * Context-spine usage linter.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_context_spine_usage.py` (ADR-200,
6
- * Phase 4 / Wave 4b). The CLI contract is mirrored EXACTLY — `--quiet`
5
+ * Ported from the retired Python `src/scripts/lint_context_spine_usage.py` (ADR-200,
6
+ * Phase 4 / Wave 4b). The CLI contract is pinned — `--quiet`
7
7
  * detected by argv membership (no argparse), exit codes (0 clean,
8
8
  * 1 violations / no files), stdout/stderr split, byte-identical messages,
9
- * same glob scan order. No behaviour changes — latent bugs replicated.
9
+ * same glob scan order. Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
10
10
  *
11
11
  * For every slot declared in frontmatter (`context_spine: [...]`), the skill
12
12
  * body MUST cite the slot at least once (link, bold, or inline-code form).
@@ -2,15 +2,15 @@
2
2
  /**
3
3
  * Lint a generated discovery-manifest.json against schema + checksum.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_discovery_manifest.py` (ADR-200,
6
- * Phase 4 / Wave 4b). The CLI contract is mirrored EXACTLY — `--manifest`
5
+ * Ported from the retired Python `src/scripts/lint_discovery_manifest.py` (ADR-200,
6
+ * Phase 4 / Wave 4b). The CLI contract is pinned — `--manifest`
7
7
  * / `--quiet` flags, exit codes (0 / 1), stdout/stderr split, byte-identical
8
8
  * SUCCESS + vocab + determinism + checksum messages, same check order, and
9
9
  * a byte-identical checksum recomputation (recursive key-sort + indent-2,
10
- * `ensure_ascii=False`). No behaviour changes — latent bugs replicated.
10
+ * `ensure_ascii=False`). Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
11
11
  *
12
12
  * DIVERGENCE CANDIDATES:
13
- * 1. The Python original imports `jsonschema` and exits 1 with the message
13
+ * 1. the retired Python implementation imports `jsonschema` and exits 1 with the message
14
14
  * `error: jsonschema not installed (...)` when it is absent. The TS twin
15
15
  * has no such dependency, so that exit-1 path never fires — the schema
16
16
  * check always runs.
@@ -2,12 +2,12 @@
2
2
  /**
3
3
  * Vocabulary linter for `src/config/discovery/{workspaces,packs}.yml`.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_discovery_vocabulary.py` (ADR-200,
5
+ * Ported from the retired Python `src/scripts/lint_discovery_vocabulary.py` (ADR-200,
6
6
  * Phase 4 / Wave 4b). Mirrors the Python CLI contract exactly: `--quiet`
7
7
  * flag, same scan scope, finding messages, stdout/stderr split (errors to
8
8
  * stderr, OK line to stdout), and exit codes (0 clean, 1 on failure, 2 if
9
9
  * YAML loader is unavailable — N/A here, `yaml` is bundled). No behaviour
10
- * changes — latent quirks replicated.
10
+ * changes — historical quirks preserved (consumers pin the exact behaviour).
11
11
  *
12
12
  * Source-of-truth check: the YAML files MUST mirror the closed vocabulary in
13
13
  * ADR-013 exactly. Cross-reference + bidirectional integrity + non-overlap
@@ -2,10 +2,10 @@
2
2
  /**
3
3
  * Hard-Gate linter: no empty roadmap files under `agents/roadmaps/`.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_empty_roadmaps.py` (ADR-200 migration).
5
+ * Ported from the retired Python `src/scripts/lint_empty_roadmaps.py` (ADR-200).
6
6
  * Byte-identical CLI contract: same stdout, same exit codes (0 = clean,
7
7
  * 1 = at least one empty roadmap). `--quiet` is a bare argv membership check
8
- * (computed at import, NOT argparse), mirroring the Python original.
8
+ * (computed at import, NOT argparse), mirroring the retired Python implementation.
9
9
  *
10
10
  * A roadmap `.md` that is 0 bytes (or only whitespace) is never valid — it
11
11
  * carries no goal, no phases, no content. Scope: every `*.md` under
@@ -85,7 +85,7 @@ function _rglobMdSorted(base: string): string[] {
85
85
  // Python `str.strip()` (no args) strips every character for which
86
86
  // `str.isspace()` is true: ASCII whitespace + the C0 separators \x1c-\x1f +
87
87
  // NEL \x85 + the Unicode whitespace set. Match that exact class so a
88
- // "whitespace-only" file is detected identically to the Python original.
88
+ // "whitespace-only" file is detected identically to the retired Python implementation.
89
89
  const _PY_WS = /[\t\n\v\f\r \u001c\u001d\u001e\u001f\u0085\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000]/g;
90
90
 
91
91
  function _toPosix(target: string, root: string): string {
@@ -4,8 +4,8 @@
4
4
  * `upstream.last_eval` (the corpus-refresh DoD, ADR-061 §6 + road-to-image-brand-
5
5
  * typography Phase D).
6
6
  *
7
- * TypeScript twin of `src/scripts/lint_eval_freshness.py` (ADR-200,
8
- * Python→TypeScript migration). The CLI contract is mirrored EXACTLY — the
7
+ * Ported from the retired Python `src/scripts/lint_eval_freshness.py` (ADR-200,
8
+ * Python→TypeScript migration). The CLI contract is pinned — the
9
9
  * `--quiet` flag, the `argparse` usage / error text (`-h`/`--help` → exit 0,
10
10
  * unknown arg → exit 2), the scan order (`sorted(SKILLS_DIR.glob(
11
11
  * "<skill>/data/manifest.json"))` — pathlib component-wise sort), byte-identical
@@ -2,13 +2,13 @@
2
2
  /**
3
3
  * Phase 3.4 demo-shape linter — wrong / right / why per demo.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_examples.py` (ADR-200, Phase 4 /
5
+ * Ported from the retired Python `src/scripts/lint_examples.py` (ADR-200, Phase 4 /
6
6
  * Wave 4b). Mirrors the CLI contract EXACTLY — the `--quiet` flag is a
7
7
  * bare `sys.argv` membership check (NOT argparse, so there is no real
8
8
  * `-h`/`--help`), the same `glob` (non-recursive) over
9
9
  * `docs/guidelines/agent-infra/*-demos.md`, byte-identical finding
10
10
  * messages, stdout/stderr split, exit codes, and file ordering
11
- * (sorted glob). No behaviour changes — latent quirks replicated.
11
+ * (sorted glob). Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
12
12
  *
13
13
  * Validates every `docs/guidelines/agent-infra/*-demos.md`: frontmatter
14
14
  * keys (`demo_for:`, `layer: pattern-memory`, `prose_delta:` with
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Lint an ExplainTrace v1 JSON payload against the schema.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_explain_trace.py` (ADR-200, Phase 4 /
5
+ * Ported from the retired Python `src/scripts/lint_explain_trace.py` (ADR-200, Phase 4 /
6
6
  * Wave 4b). Reads a JSON file (or stdin via `--stdin`) and validates it
7
7
  * against `docs/contracts/explain-trace.schema.json`.
8
8
  *
@@ -14,7 +14,7 @@
14
14
  * - error lines ordered by `sorted(absolute_path)`.
15
15
  *
16
16
  * DOCUMENTED DIVERGENCE (validation-failure message text):
17
- * The Python original uses `jsonschema.Draft202012Validator`; its
17
+ * the retired Python implementation uses `jsonschema.Draft202012Validator`; its
18
18
  * `ValidationError.message` wording is library-specific. This twin
19
19
  * implements a faithful Draft-2020-12 *subset* validator covering only the
20
20
  * keywords the explain-trace schema uses (type / const / enum / required /
Binary file
@@ -2,19 +2,19 @@
2
2
  /**
3
3
  * Validate-on-load linter for the first-class flow layer (`src/flows/*.yaml`).
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_flows.py` (ADR-200, Phase 4 / Wave 4b
5
+ * Ported from the retired Python `src/scripts/lint_flows.py` (ADR-200, Phase 4 / Wave 4b
6
6
  * — PORT). Mirrors the CLI contract EXACTLY — the `--quiet` flag (argparse,
7
7
  * so `-h`/`--help` exit 0 with a usage line), the same two-check-per-file
8
8
  * shape-vs-resolution split, byte-identical violation messages, the same
9
9
  * stdout/stderr split (success on stdout, violations on stderr), exit codes
10
10
  * (0 clean · 1 violations · 3 internal error), scan scope (`src/flows/*.yaml`
11
11
  * minus `surface-map.yaml`), and ordering (sorted glob). snake_case kept.
12
- * No behaviour changes — latent quirks replicated.
12
+ * Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
13
13
  *
14
14
  * road-to-6.1.0 Step 8b (ADR-055). Two checks per flow file:
15
15
  *
16
16
  * 1. Shape — validates against `src/scripts/schemas/flow.schema.json`
17
- * (Draft-07). The Python original uses the `jsonschema` library; this
17
+ * (Draft-07). the retired Python implementation uses the `jsonschema` library; this
18
18
  * twin hand-rolls a Draft-07 validator covering exactly the keyword set
19
19
  * this schema uses (type, required, additionalProperties:false,
20
20
  * properties, $ref, pattern, minLength, minItems, items) and reproduces
@@ -28,7 +28,7 @@
28
28
  * Plus the layer-level invariants: closed-set id == filename stem, and
29
29
  * completeness (every closed-set flow has exactly one file).
30
30
  *
31
- * The Python original imports `jsonschema` and exits 3 with
31
+ * the retired Python implementation imports `jsonschema` and exits 3 with
32
32
  * `lint_flows: jsonschema not installed` when it is absent. The TS twin has
33
33
  * no such dependency, so that exit-3 path never fires — the schema check is
34
34
  * always available, matching the installed-library case.
@@ -466,7 +466,7 @@ function _isFile(p: string): boolean {
466
466
 
467
467
  function _rel(p: string): string {
468
468
  // Path.relative_to(ROOT) raises ValueError when p is outside ROOT; the
469
- // Python original then returns str(path). Mirror with the absolute path.
469
+ // historical behaviour returns str(path) — keep the absolute path then.
470
470
  const r = path.relative(ROOT, p);
471
471
  if (r === '' || r.startsWith('..') || path.isAbsolute(r)) {
472
472
  return p;
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env tsx
2
2
  // Lint generic skills/rules/commands for framework/language leakage.
3
3
  //
4
- // TypeScript twin of src/scripts/lint_framework_leakage.py. Exits 1 on hit
4
+ // TypeScript port of the retired Python src/scripts/lint_framework_leakage.py. Exits 1 on hit
5
5
  // (CI-blocking). Enforces the framework-neutrality rule. Replicates the
6
6
  // carve-out filename exemption, inventory exemption, framework-frontmatter
7
7
  // exemption, the auto cross-stack ±10-line window heuristic, the allowlist
@@ -581,7 +581,7 @@
581
581
  {
582
582
  "file": "src/skills/code-review/SKILL.md",
583
583
  "lines": [
584
- 214
584
+ 222
585
585
  ],
586
586
  "reason": "Cross-stack formatter enumeration (ECS, Prettier, Ruff, gofmt) — multi-ecosystem documentation"
587
587
  },
@@ -618,9 +618,17 @@
618
618
  {
619
619
  "file": "src/skills/verify-completion-evidence/SKILL.md",
620
620
  "lines": [
621
- 183
621
+ 191
622
622
  ],
623
623
  "reason": "Carve-out pointer to the quality-tools skill (the sanctioned one-line handoff shape from framework-neutrality-in-generic-skills)"
624
+ },
625
+ {
626
+ "file": "src/skills/api-endpoint/SKILL.md",
627
+ "lines": [
628
+ 52,
629
+ 69
630
+ ],
631
+ "reason": "Cross-stack validation primitive enumeration and pointer to laravel-api-endpoint carve-out"
624
632
  }
625
633
  ]
626
634
  }
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Fail when an artefact carries a frontmatter field equal to its schema default.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_frontmatter_boilerplate.py` (ADR-200,
5
+ * Ported from the retired Python `src/scripts/lint_frontmatter_boilerplate.py` (ADR-200,
6
6
  * Phase 4 / Wave 4b). Mirrors the Python CLI contract exactly: `--quiet`,
7
7
  * scan scope + ordering (skills / rules / commands / personas via
8
8
  * `artefact_roots()`), finding messages, stdout/stderr split, exit codes
@@ -11,7 +11,7 @@
11
11
  * The frontmatter loader (`validate_frontmatter.apply_schema_defaults`) injects
12
12
  * the default at read time, so omitting the field is always behaviour-preserving.
13
13
  *
14
- * NOTE (divergence candidate — DC-1): the Python original imports
14
+ * NOTE (divergence candidate — DC-1): the retired Python implementation imports
15
15
  * `_CATEGORIES`, `_iter`, `_plan_drops` from `migrate_frontmatter_defaults.py`,
16
16
  * which has no `.ts` twin yet (out of this batch's scope). To keep TS-only
17
17
  * dispatcher resolution working, those three helpers (and `_same`) are inlined
@@ -2,12 +2,12 @@
2
2
  /**
3
3
  * Lint ghostwriter profile sources.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_ghostwriter_source.py` (ADR-200,
6
- * Phase 4 / Wave 4b). The CLI contract is mirrored EXACTLY — `--quiet`
5
+ * Ported from the retired Python `src/scripts/lint_ghostwriter_source.py` (ADR-200,
6
+ * Phase 4 / Wave 4b). The CLI contract is pinned — `--quiet`
7
7
  * detected by argv membership, exit codes (0 / 1), stdout/stderr split,
8
8
  * byte-identical messages, same scan scope (`*.md` sorted in each tier),
9
9
  * same package- then consumer-side ordering. No behaviour changes —
10
- * latent bugs replicated.
10
+ * historical quirks preserved (consumers pin the exact behaviour).
11
11
  *
12
12
  * Two storage tiers (docs/contracts/ghostwriter-schema.md):
13
13
  * * src/agent-src/ghostwriter/ — package source, fictional fixtures only.
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Permissions-audit entry-gate for the global install tree.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_global_paths.py` (ADR-200, Phase 4 /
5
+ * Ported from the retired Python `src/scripts/lint_global_paths.py` (ADR-200, Phase 4 /
6
6
  * Wave 4b). Mirrors the Python CLI contract exactly: same policy source,
7
7
  * finding messages, finding order, stdout/stderr split, and exit codes.
8
8
  *
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Lint cross-wing handoffs declared in senior-tier skills' `## Related Skills`.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_handoffs.py` (ADR-200, Phase 4 /
5
+ * Ported from the retired Python `src/scripts/lint_handoffs.py` (ADR-200, Phase 4 /
6
6
  * Wave 4b). Mirrors the CLI contract EXACTLY — the `--quiet` flag is a
7
7
  * bare `sys.argv` membership check (NOT argparse, so there is no real
8
8
  * `-h`/`--help`; `main(argv)` treats `argv[0]` as a skills-dir override,
@@ -1,6 +1,6 @@
1
1
  // P1.1 — hidden-Unicode / smuggling-codepoint linter (road-to-security-pillar.md).
2
2
  //
3
- // TypeScript twin of `src/scripts/lint_hidden_unicode.py` (ADR-200 —
3
+ // Ported from the retired Python `src/scripts/lint_hidden_unicode.py` (ADR-200 —
4
4
  // Python→TS migration). Behaviour mirrors the Python module byte-for-byte.
5
5
  //
6
6
  // Detects the invisible-character class used by the "rules-file backdoor"
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Lint the hook concern budget against `src/scripts/hook_manifest.yaml`.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_hook_concern_budget.py` (ADR-200,
5
+ * Ported from the retired Python `src/scripts/lint_hook_concern_budget.py` (ADR-200,
6
6
  * Phase 4 / Wave 4b). Mirrors the CLI contract EXACTLY — `--manifest` /
7
7
  * `--settings` / `--strict` argparse flags, exit codes (0 clean or warn-only,
8
8
  * 1 schema load failed, 2 hard-fail with violations), byte-identical
@@ -10,7 +10,7 @@
10
10
  * `.agent-settings.yml` `hooks.concern_budget.*` line walker, and the same
11
11
  * defaults. No behaviour changes.
12
12
  *
13
- * The Python original imports `hooks.dispatch_hook._load_yaml` (which is
13
+ * the retired Python implementation imports `hooks.dispatch_hook._load_yaml` (which is
14
14
  * `yaml.safe_load(text) or {}` when PyYAML is present). That hook module is
15
15
  * not yet ported, so this twin inlines the equivalent `yaml`-package load
16
16
  * (version 1.1 → PyYAML safe_load parity). When the dispatch_hook twin
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Lint `src/scripts/hook_manifest.yaml`.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_hook_manifest.py` (ADR-200, Phase 4 /
5
+ * Ported from the retired Python `src/scripts/lint_hook_manifest.py` (ADR-200, Phase 4 /
6
6
  * Wave 4b). Mirrors the Python CLI contract exactly: same manifest default,
7
7
  * finding messages, finding order, stdout/stderr split, and exit codes.
8
8
  *
@@ -97,7 +97,7 @@ function _isDir(p: string): boolean {
97
97
  }
98
98
 
99
99
  /**
100
- * Load the manifest. The Python original reuses dispatch_hook._load_yaml
100
+ * Load the manifest. the retired Python implementation reuses dispatch_hook._load_yaml
101
101
  * which prefers PyYAML (with a narrow fallback parser when PyYAML is absent).
102
102
  * The TS runtime always has the `yaml` package, so this mirrors the
103
103
  * PyYAML-present path (`yaml.safe_load(text) or {}`).
@@ -1,6 +1,6 @@
1
1
  // P1.2 — instruction-smuggling / suppression-phrase linter (road-to-security-pillar.md).
2
2
  //
3
- // TypeScript twin of `src/scripts/lint_instruction_smuggling.py` (ADR-200 —
3
+ // Ported from the retired Python `src/scripts/lint_instruction_smuggling.py` (ADR-200 —
4
4
  // Python→TS migration). Behaviour mirrors the Python module byte-for-byte.
5
5
  //
6
6
  // Detects instructions smuggled into rule/skill/command bodies (and MCP tool
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Lint the `load_context:` / `load_context_eager:` frontmatter schema.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_load_context.py` (ADR-200,
6
- * Phase 4 / Wave 4b). The CLI contract is mirrored EXACTLY — `--quiet`
5
+ * Ported from the retired Python `src/scripts/lint_load_context.py` (ADR-200,
6
+ * Phase 4 / Wave 4b). The CLI contract is pinned — `--quiet`
7
7
  * flag (positional `--quiet` detection in argv, like the Python
8
8
  * `"--quiet" in sys.argv`), exit codes (0 clean / warnings-only, 1 errors),
9
9
  * byte-identical error + warning + success messages, same scan dirs,
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Lint .claude-plugin/marketplace.json for the event4u/agent-config package.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_marketplace.py` (ADR-200, Phase 4 /
5
+ * Ported from the retired Python `src/scripts/lint_marketplace.py` (ADR-200, Phase 4 /
6
6
  * Wave 4b). Mirrors the Python CLI contract exactly: same cwd-relative scan
7
7
  * roots, finding messages, stdout output, and exit codes.
8
8
  *
@@ -3,8 +3,8 @@
3
3
  * Lint that every command in `hooks/hooks.json` resolves to a real
4
4
  * dispatcher subcommand in `scripts/_dispatch.bash`.
5
5
  *
6
- * TypeScript twin of `src/scripts/lint_marketplace_install_completeness.py`
7
- * (ADR-200, Phase 4 / Wave 4b). The CLI contract is mirrored EXACTLY —
6
+ * Ported from the retired Python `src/scripts/lint_marketplace_install_completeness.py`
7
+ * (ADR-200, Phase 4 / Wave 4b). The CLI contract is pinned —
8
8
  * `--hooks-json` / `--dispatch-bash` flags, exit codes (0 clean, 1 unknown
9
9
  * subcommand, 2 schema/file error), stdout/stderr split, byte-identical
10
10
  * finding messages, same command-extraction regexes and scan order.
@@ -1,6 +1,6 @@
1
1
  // P1.3 — MCP-config security linter (road-to-security-pillar.md). OWASP ASI04.
2
2
  //
3
- // TypeScript twin of `src/scripts/lint_mcp_config_security.py` (ADR-200 —
3
+ // Ported from the retired Python `src/scripts/lint_mcp_config_security.py` (ADR-200 —
4
4
  // Python→TS migration). Behaviour mirrors the Python module byte-for-byte.
5
5
  //
6
6
  // Scans shipped MCP configuration — named config files (`*.mcp.json`,
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Lint `dist/mcp/registry-manifest.json` against its JSON Schema.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_mcp_registry_manifest.py` (ADR-200,
5
+ * Ported from the retired Python `src/scripts/lint_mcp_registry_manifest.py` (ADR-200,
6
6
  * Phase 4 / Wave 4b). Mirrors the CLI contract EXACTLY — `--quiet` flag
7
7
  * (argparse, so a real `-h`/`--help` prints usage + exits 0), the
8
8
  * `❌ <msg>` failures on stderr, the `✅ mcp registry manifest OK
@@ -2,12 +2,12 @@
2
2
  /**
3
3
  * Lint structural reachability of media governance policies.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_media_policy_linkage.py` (ADR-200,
6
- * Phase 4 / Wave 4b). Mirrors the Python CLI contract EXACTLY — `--quiet`
5
+ * Ported from the retired Python `src/scripts/lint_media_policy_linkage.py` (ADR-200,
6
+ * Phase 4 / Wave 4b). The CLI contract is pinned — `--quiet`
7
7
  * flag read from argv at module load, scan roots + policy ordering (policies
8
8
  * sorted; scan files via rglob), finding messages, output channel (all on
9
9
  * stdout except the final orphan summary on stderr), exit codes. No
10
- * behaviour changes — latent bugs replicated (note: `POLICY_DIR` /
10
+ * behaviour changes — historical quirks preserved (consumers pin the exact behaviour). (note: `POLICY_DIR` /
11
11
  * `SCAN_ROOTS` point at `agents/policies/media`, matching the .py).
12
12
  *
13
13
  * Every policy file under `agents/policies/media/` (except README) must be
@@ -2,15 +2,15 @@
2
2
  /**
3
3
  * WARN-ONLY mission manifest and catalog linter.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_missions.py` (ADR-200, Python→TypeScript
6
- * migration). The CLI contract is mirrored EXACTLY — argparse flags
5
+ * Ported from the retired Python `src/scripts/lint_missions.py` (ADR-200, Python→TypeScript
6
+ * migration). The CLI contract is pinned — argparse flags
7
7
  * (`--strict` / `--quiet` / `--check-precondition MISSION REPO`, `-h`/`--help`
8
8
  * exit 0, unknown arg → exit 2), the scan order (`sorted(MISSIONS_ROOT.iterdir())`
9
9
  * minus dot-dirs), byte-identical finding lines, the missing-schema short-circuit
10
10
  * (exit 2 strict / 0 otherwise), the stdout/stderr split, and exit codes
11
11
  * (0 warn-only / 1 strict+ERROR). snake_case kept.
12
12
  *
13
- * The Python original uses the `jsonschema` Draft7Validator; this twin
13
+ * the retired Python implementation uses the `jsonschema` Draft7Validator; this twin
14
14
  * hand-rolls a Draft-07 validator covering exactly the keyword set the two
15
15
  * mission schemas use (type, required, additionalProperties [false | schema],
16
16
  * properties, $ref [#/definitions], pattern, enum, minLength, maxLength,
@@ -2,11 +2,11 @@
2
2
  /**
3
3
  * Fail when a skill or command lacks a `model_tier` value.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_model_tier_coverage.py` (ADR-200,
6
- * Phase 4 / Wave 4b). Mirrors the Python CLI contract EXACTLY — `--quiet`
5
+ * Ported from the retired Python `src/scripts/lint_model_tier_coverage.py` (ADR-200,
6
+ * Phase 4 / Wave 4b). The CLI contract is pinned — `--quiet`
7
7
  * flag, target enumeration + ordering (skills via artefact_roots, then
8
8
  * commands via iter_commands), finding messages, stdout/stderr split,
9
- * exit codes. No behaviour changes — latent bugs replicated.
9
+ * exit codes. Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
10
10
  *
11
11
  * Phase 5 coverage gate of `road-to-model-capability-tiers.md` (ADR-035):
12
12
  * every skill and command MUST declare an explicit `model_tier`
@@ -3,8 +3,8 @@
3
3
  * Namespace linter. Enforces `<stem>-<intent>` kebab-case + reserved
4
4
  * names list across skills / rules / commands / personas.
5
5
  *
6
- * TypeScript twin of `src/scripts/lint_namespace.py` (ADR-200, Phase 4 /
7
- * Wave 4b). The CLI contract is mirrored EXACTLY — `--name` / `--quiet`
6
+ * Ported from the retired Python `src/scripts/lint_namespace.py` (ADR-200, Phase 4 /
7
+ * Wave 4b). The CLI contract is pinned — `--name` / `--quiet`
8
8
  * flags, exit codes (0 clean, 1 issues / single-name fail), stdout/stderr
9
9
  * split (findings + BASELINE-on-failure to stderr; success BASELINE to
10
10
  * stdout), byte-identical finding messages, same `sorted(root.glob(glob))`
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Single-namespace collision lint (road-to-6.0.0-D Phase 0 Step 4).
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_namespace_collisions.py` (ADR-200,
6
- * Phase 4 / Wave 4b). The CLI contract is mirrored EXACTLY — exit codes
5
+ * Ported from the retired Python `src/scripts/lint_namespace_collisions.py` (ADR-200,
6
+ * Phase 4 / Wave 4b). The CLI contract is pinned — exit codes
7
7
  * (0 no collisions, 1 collision, 3 internal error), stdout/stderr split,
8
8
  * byte-identical finding messages, same `iter_all_sources()` scan order,
9
9
  * same normalization, same frontmatter `name:` extraction.
@@ -2,13 +2,13 @@
2
2
  /**
3
3
  * Forward gate for NEW skills (6.0.0-C Phase 4 Step 8b).
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_new_skill_gate.py` (ADR-200, Phase 4 /
5
+ * Ported from the retired Python `src/scripts/lint_new_skill_gate.py` (ADR-200, Phase 4 /
6
6
  * Wave 4b — PORT). Mirrors the CLI contract EXACTLY — the `--baseline` (default
7
7
  * `main`) and `--quiet` argparse flags, the git diff/status forward-only skill
8
8
  * detection, byte-identical violation messages, stdout-only output (no
9
9
  * stderr split except the git-failure exit-3 path), and exit codes
10
10
  * (0 clean · 1 violations · 3 internal/git error). snake_case kept. No
11
- * behaviour changes — latent quirks replicated.
11
+ * behaviour changes — historical quirks preserved (consumers pin the exact behaviour).
12
12
  *
13
13
  * A newly added skill must clear two gates before it joins the surface:
14
14
  *
@@ -19,7 +19,7 @@
19
19
  *
20
20
  * FORWARD-ONLY: only SKILL.md files added since `--baseline` are gated.
21
21
  *
22
- * The Python original imports `_parse`, `_cosine`, `collect`, `Skill` from
22
+ * the retired Python implementation imports `_parse`, `_cosine`, `collect`, `Skill` from
23
23
  * `audit_skill_overlap`. That module has no TS twin in this batch, so the four
24
24
  * needed symbols are ported privately below (faithful 1:1 of the originals);
25
25
  * when `audit_skill_overlap` is ported in its own phase these can be
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Atomic-command linter for the command-collapse policy.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_no_new_atomic_commands.py`
6
- * (ADR-200, Phase 4 / Wave 4b). The CLI contract is mirrored EXACTLY —
5
+ * Ported from the retired Python `src/scripts/lint_no_new_atomic_commands.py`
6
+ * (ADR-200, Phase 4 / Wave 4b). The CLI contract is pinned —
7
7
  * `--baseline` / `--all` flags, exit codes (0 clean, 1 violations,
8
8
  * 3 internal error), stdout/stderr split, byte-identical messages, the
9
9
  * same git invocations (`git diff --name-only --diff-filter=A
@@ -24,7 +24,10 @@ import { fileURLToPath, pathToFileURL } from 'node:url';
24
24
  const _HERE = fileURLToPath(import.meta.url);
25
25
  // src/scripts/lint_no_new_atomic_commands.ts → parent.parent.parent is repo root.
26
26
  const ROOT = path.resolve(path.dirname(_HERE), '..', '..');
27
- const COMMANDS_DIR = '.agent-src.uncondensed/commands';
27
+ // Repointed 2026-07-08 (ADR-115): the legacy uncondensed commands dir no
28
+ // longer exists — command sources live at src/domains/**/command.md.
29
+ // Only files named `command.md` are commands; pack READMEs etc. are skipped.
30
+ const COMMANDS_DIR = 'src/domains';
28
31
  const CLUSTER_CONTRACT = 'docs/contracts/command-clusters.md';
29
32
 
30
33
  interface Violation {
@@ -135,7 +138,7 @@ function added_command_files(baseline: string): string[] {
135
138
  }
136
139
  const files: string[] = [];
137
140
  for (const p of (diff.stdout ?? '').split('\n')) {
138
- if (p.endsWith('.md') && p !== '' && path.basename(p) !== 'AGENTS.md') {
141
+ if (p !== '' && path.basename(p) === 'command.md') {
139
142
  files.push(p);
140
143
  }
141
144
  }
@@ -157,7 +160,7 @@ function added_command_files(baseline: string): string[] {
157
160
  const rawPath = line.slice(3).trim();
158
161
  const parts = rawPath.split(' -> ');
159
162
  const p = parts[parts.length - 1]!;
160
- if (p.endsWith('.md') && path.basename(p) !== 'AGENTS.md') {
163
+ if (path.basename(p) === 'command.md') {
161
164
  if (!files.includes(p)) {
162
165
  files.push(p);
163
166
  }
@@ -181,7 +184,7 @@ function _rglobMdSorted(dir: string): string[] {
181
184
  const full = path.join(current, entry.name);
182
185
  if (entry.isDirectory()) {
183
186
  walk(full);
184
- } else if (entry.isFile() && entry.name.endsWith('.md')) {
187
+ } else if (entry.isFile() && entry.name === 'command.md') {
185
188
  out.push(full);
186
189
  }
187
190
  }