@event4u/agent-config 8.4.0 → 8.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (682) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +73 -0
  3. package/README.md +17 -5
  4. package/dist/agent-src/README.md +1 -1
  5. package/dist/agent-src/commands/{analyze-reference-repo.md → analyze/reference-repo.md} +3 -1
  6. package/dist/agent-src/commands/analyze.md +9 -6
  7. package/dist/agent-src/commands/{bug-fix.md → bug/fix.md} +3 -1
  8. package/dist/agent-src/commands/{bug-investigate.md → bug/investigate.md} +4 -2
  9. package/dist/agent-src/commands/bug.md +59 -0
  10. package/dist/agent-src/commands/{set-cost-profile.md → cost/profile.md} +9 -6
  11. package/dist/agent-src/commands/{cost-report.md → cost/report.md} +18 -17
  12. package/dist/agent-src/commands/cost.md +57 -0
  13. package/dist/agent-src/commands/evals/{review-changes.json → review.json} +12 -8
  14. package/dist/agent-src/commands/{quality-fix.md → fix/quality.md} +5 -2
  15. package/dist/agent-src/commands/fix.md +7 -4
  16. package/dist/agent-src/commands/optimize/project.md +250 -0
  17. package/dist/agent-src/commands/{optimize-prompt.md → optimize/prompt.md} +3 -2
  18. package/dist/agent-src/commands/optimize.md +17 -12
  19. package/dist/agent-src/commands/{package-reset.md → package/reset.md} +2 -0
  20. package/dist/agent-src/commands/{package-test.md → package/test.md} +3 -1
  21. package/dist/agent-src/commands/package.md +56 -0
  22. package/dist/agent-src/commands/{project-analyze.md → project/analyze.md} +10 -8
  23. package/dist/agent-src/commands/{project-health.md → project/health.md} +2 -0
  24. package/dist/agent-src/commands/project.md +60 -0
  25. package/dist/agent-src/commands/{review-changes.md → review/changes.md} +26 -24
  26. package/dist/agent-src/commands/{review-routing.md → review/routing.md} +21 -17
  27. package/dist/agent-src/commands/review.md +61 -0
  28. package/dist/agent-src/commands/security-audit-config.md +24 -23
  29. package/dist/agent-src/commands/{sync-agent-settings.md → sync/agent-settings.md} +11 -7
  30. package/dist/agent-src/commands/{sync-gitignore → sync/gitignore}/fix.md +36 -27
  31. package/dist/agent-src/commands/{sync-gitignore.md → sync/gitignore.md} +22 -21
  32. package/dist/agent-src/commands/sync.md +58 -0
  33. package/dist/agent-src/commands/{e2e-heal.md → tests/e2e-heal.md} +5 -2
  34. package/dist/agent-src/commands/{e2e-plan.md → tests/e2e-plan.md} +5 -2
  35. package/dist/agent-src/commands/tests.md +11 -5
  36. package/dist/agent-src/contexts/augment-infrastructure.md +3 -3
  37. package/dist/agent-src/contexts/execution/toolchain-resolver.md +1 -1
  38. package/dist/agent-src/contexts/skills-and-commands.md +2 -2
  39. package/dist/agent-src/rules/external-reference-deep-dive.md +1 -1
  40. package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +2 -2
  41. package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +1 -1
  42. package/dist/agent-src/skills/judge-bug-hunter/SKILL.md +1 -1
  43. package/dist/agent-src/skills/judge-code-quality/SKILL.md +1 -1
  44. package/dist/agent-src/skills/judge-security-auditor/SKILL.md +1 -1
  45. package/dist/agent-src/skills/judge-synthesis/SKILL.md +1 -1
  46. package/dist/agent-src/skills/judge-test-coverage/SKILL.md +1 -1
  47. package/dist/agent-src/skills/markitdown/SKILL.md +1 -1
  48. package/dist/agent-src/skills/mobile-e2e-strategy/SKILL.md +5 -5
  49. package/dist/agent-src/skills/prompt-optimizer/SKILL.md +2 -2
  50. package/dist/agent-src/skills/quality-tools/SKILL.md +1 -1
  51. package/dist/agent-src/skills/repomix-packer/SKILL.md +1 -1
  52. package/dist/agent-src/skills/requesting-code-review/SKILL.md +2 -2
  53. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
  54. package/dist/agent-src/templates/agent-settings.md +1 -1
  55. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +2 -2
  56. package/dist/agent-src/templates/scripts/work_engine/stack/runner.ts +1 -1
  57. package/dist/cli/commands/config.js +44 -0
  58. package/dist/cli/commands/config.js.map +1 -0
  59. package/dist/cli/commands/uiServe.js +1 -0
  60. package/dist/cli/commands/uiServe.js.map +1 -1
  61. package/dist/cli/help.js +38 -0
  62. package/dist/cli/help.js.map +1 -0
  63. package/dist/cli/initRouting.js +16 -1
  64. package/dist/cli/initRouting.js.map +1 -1
  65. package/dist/cli/main.js +43 -37
  66. package/dist/cli/main.js.map +1 -1
  67. package/dist/cli/registry.js +45 -44
  68. package/dist/cli/registry.js.map +1 -1
  69. package/dist/discovery/deprecation-report.md +1 -1
  70. package/dist/discovery/discovery-manifest.json +419 -210
  71. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  72. package/dist/discovery/discovery-manifest.summary.md +4 -4
  73. package/dist/discovery/orphan-report.md +1 -1
  74. package/dist/discovery/packs.json +31 -25
  75. package/dist/discovery/trust-report.md +2 -2
  76. package/dist/discovery/workspaces.json +30 -24
  77. package/dist/install/install.mjs +6064 -159
  78. package/dist/install/selectedTools.js +39 -10
  79. package/dist/install/selectedTools.js.map +1 -1
  80. package/dist/mcp/registry-manifest.json +3 -3
  81. package/dist/server/app.js +15 -3
  82. package/dist/server/app.js.map +1 -1
  83. package/dist/server/routes/ping.js +16 -0
  84. package/dist/server/routes/ping.js.map +1 -1
  85. package/dist/server/routes/settings.js +42 -6
  86. package/dist/server/routes/settings.js.map +1 -1
  87. package/dist/server/routes/settingsChanges.js +55 -0
  88. package/dist/server/routes/settingsChanges.js.map +1 -0
  89. package/dist/server/routes/userMd.js +7 -2
  90. package/dist/server/routes/userMd.js.map +1 -1
  91. package/dist/server/routes/wizard.js +76 -14
  92. package/dist/server/routes/wizard.js.map +1 -1
  93. package/dist/server/writeRoot.js +17 -0
  94. package/dist/server/writeRoot.js.map +1 -1
  95. package/dist/shared/settingsSurface.js +120 -0
  96. package/dist/shared/settingsSurface.js.map +1 -0
  97. package/dist/ui/assets/index-BPFMZWUs.css +1 -0
  98. package/dist/ui/assets/index-BiEZiZ31.js +40 -0
  99. package/dist/ui/assets/index-BiEZiZ31.js.map +1 -0
  100. package/dist/ui/index.html +15 -2
  101. package/docs/CLAIMS.md +20 -15
  102. package/docs/architecture.md +1 -1
  103. package/docs/catalog.md +37 -31
  104. package/docs/command-flows.md +22 -16
  105. package/docs/contracts/command-clusters.md +39 -9
  106. package/docs/contracts/file-ownership-matrix.json +21 -0
  107. package/docs/contracts/frontmatter-contract.md +1 -1
  108. package/docs/contracts/gui-wizard.md +16 -4
  109. package/docs/contracts/iron-law-overrides.txt +1 -0
  110. package/docs/contracts/rule-classification.md +2 -2
  111. package/docs/contracts/settings-api.md +58 -2
  112. package/docs/contracts/surface-matrix.md +5 -0
  113. package/docs/cookbook.md +7 -7
  114. package/docs/decisions/ADR-114-commit-policy-iron-law-override.md +74 -0
  115. package/docs/decisions/ADR-115-command-cluster-consolidation-phase-4.md +91 -0
  116. package/docs/decisions/INDEX.md +2 -0
  117. package/docs/featured-commands.md +1 -1
  118. package/docs/featured-skills.md +4 -4
  119. package/docs/flows.md +2 -2
  120. package/docs/getting-started-by-role.md +1 -1
  121. package/docs/getting-started-laravel.md +1 -1
  122. package/docs/getting-started.md +6 -3
  123. package/docs/governance-advantage.md +1 -1
  124. package/docs/guidelines/agent-infra/5w2h-analysis.md +1 -1
  125. package/docs/guidelines/agent-infra/ios-simulator-guide.md +1 -1
  126. package/docs/proof.md +11 -2
  127. package/package.json +6 -1
  128. package/src/agent-src/README.md +64 -0
  129. package/src/agent-src/scripts/archive_completed_roadmaps.ts +497 -0
  130. package/src/agent-src/scripts/scan-seeder-violations.php +145 -0
  131. package/src/agent-src/scripts/update_roadmap_progress.ts +1087 -0
  132. package/src/agent-src/templates/AGENTS.md +34 -0
  133. package/src/agent-src/templates/scripts/README.md +195 -0
  134. package/src/agent-src/templates/scripts/check_memory.ts +662 -0
  135. package/src/agent-src/templates/scripts/check_memory_proposal.ts +370 -0
  136. package/src/agent-src/templates/scripts/historical-bug-patterns.example.yml +84 -0
  137. package/src/agent-src/templates/scripts/implement_ticket/__main__.ts +27 -0
  138. package/src/agent-src/templates/scripts/memory_hash.ts +355 -0
  139. package/src/agent-src/templates/scripts/memory_lookup.ts +1089 -0
  140. package/src/agent-src/templates/scripts/memory_report.ts +868 -0
  141. package/src/agent-src/templates/scripts/memory_signal.ts +444 -0
  142. package/src/agent-src/templates/scripts/memory_status.ts +215 -0
  143. package/src/agent-src/templates/scripts/ownership-map.example.yml +87 -0
  144. package/src/agent-src/templates/scripts/pr-risk-config.example.yml +76 -0
  145. package/src/agent-src/templates/scripts/pr_review_routing.ts +544 -0
  146. package/src/agent-src/templates/scripts/pr_risk_review.ts +0 -0
  147. package/src/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
  148. package/src/agent-src/templates/scripts/telemetry/boundary.ts +164 -0
  149. package/src/agent-src/templates/scripts/telemetry/engagement.ts +479 -0
  150. package/src/agent-src/templates/scripts/telemetry/report_renderer.ts +394 -0
  151. package/src/agent-src/templates/scripts/telemetry/settings.ts +210 -0
  152. package/src/agent-src/templates/scripts/telemetry_record.ts +276 -0
  153. package/src/agent-src/templates/scripts/telemetry_report.ts +211 -0
  154. package/src/agent-src/templates/scripts/telemetry_status.ts +333 -0
  155. package/src/agent-src/templates/scripts/tier_usage_report.ts +619 -0
  156. package/src/agent-src/templates/scripts/work_engine/__main__.ts +14 -0
  157. package/src/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +1261 -0
  158. package/src/agent-src/templates/scripts/work_engine/_lib/user_global_paths.ts +329 -0
  159. package/src/agent-src/templates/scripts/work_engine/cli.ts +206 -0
  160. package/src/agent-src/templates/scripts/work_engine/cli_args.ts +249 -0
  161. package/src/agent-src/templates/scripts/work_engine/delivery_state.ts +225 -0
  162. package/src/agent-src/templates/scripts/work_engine/directives/backend/analyze.ts +125 -0
  163. package/src/agent-src/templates/scripts/work_engine/directives/backend/implement.ts +189 -0
  164. package/src/agent-src/templates/scripts/work_engine/directives/backend/index.ts +94 -0
  165. package/src/agent-src/templates/scripts/work_engine/directives/backend/memory.ts +193 -0
  166. package/src/agent-src/templates/scripts/work_engine/directives/backend/plan.ts +267 -0
  167. package/src/agent-src/templates/scripts/work_engine/directives/backend/refine.ts +518 -0
  168. package/src/agent-src/templates/scripts/work_engine/directives/backend/report.ts +379 -0
  169. package/src/agent-src/templates/scripts/work_engine/directives/backend/test.ts +268 -0
  170. package/src/agent-src/templates/scripts/work_engine/directives/backend/verify.ts +258 -0
  171. package/src/agent-src/templates/scripts/work_engine/directives/index.ts +32 -0
  172. package/src/agent-src/templates/scripts/work_engine/directives/mixed/contract.ts +243 -0
  173. package/src/agent-src/templates/scripts/work_engine/directives/mixed/index.ts +108 -0
  174. package/src/agent-src/templates/scripts/work_engine/directives/mixed/stitch.ts +259 -0
  175. package/src/agent-src/templates/scripts/work_engine/directives/mixed/ui.ts +216 -0
  176. package/src/agent-src/templates/scripts/work_engine/directives/ui/_passthrough.ts +40 -0
  177. package/src/agent-src/templates/scripts/work_engine/directives/ui/app_spec.ts +241 -0
  178. package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +216 -0
  179. package/src/agent-src/templates/scripts/work_engine/directives/ui/audit.ts +506 -0
  180. package/src/agent-src/templates/scripts/work_engine/directives/ui/design.ts +325 -0
  181. package/src/agent-src/templates/scripts/work_engine/directives/ui/index.ts +102 -0
  182. package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +462 -0
  183. package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +474 -0
  184. package/src/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +352 -0
  185. package/src/agent-src/templates/scripts/work_engine/directives/ui_trivial/_skipped.ts +33 -0
  186. package/src/agent-src/templates/scripts/work_engine/directives/ui_trivial/apply.ts +213 -0
  187. package/src/agent-src/templates/scripts/work_engine/directives/ui_trivial/index.ts +111 -0
  188. package/src/agent-src/templates/scripts/work_engine/directives/ui_trivial/refine.ts +126 -0
  189. package/src/agent-src/templates/scripts/work_engine/directives/ui_trivial/report.ts +112 -0
  190. package/src/agent-src/templates/scripts/work_engine/directives/ui_trivial/test.ts +164 -0
  191. package/src/agent-src/templates/scripts/work_engine/dispatcher.ts +515 -0
  192. package/src/agent-src/templates/scripts/work_engine/emitters.ts +119 -0
  193. package/src/agent-src/templates/scripts/work_engine/errors.ts +24 -0
  194. package/src/agent-src/templates/scripts/work_engine/hook_bootstrap.ts +104 -0
  195. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/_chat_history_base.ts +189 -0
  196. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_append.ts +41 -0
  197. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/chat_history_halt_append.ts +89 -0
  198. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/decision_gate.ts +193 -0
  199. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +304 -0
  200. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/directive_set_guard.ts +110 -0
  201. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/halt_surface_audit.ts +118 -0
  202. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/index.ts +17 -0
  203. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +161 -0
  204. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/state_shape_validation.ts +45 -0
  205. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/trace.ts +134 -0
  206. package/src/agent-src/templates/scripts/work_engine/hooks/context.ts +94 -0
  207. package/src/agent-src/templates/scripts/work_engine/hooks/events.ts +58 -0
  208. package/src/agent-src/templates/scripts/work_engine/hooks/exceptions.ts +85 -0
  209. package/src/agent-src/templates/scripts/work_engine/hooks/index.ts +27 -0
  210. package/src/agent-src/templates/scripts/work_engine/hooks/registry.ts +66 -0
  211. package/src/agent-src/templates/scripts/work_engine/hooks/runner.ts +90 -0
  212. package/src/agent-src/templates/scripts/work_engine/hooks/settings.ts +260 -0
  213. package/src/agent-src/templates/scripts/work_engine/input_builders.ts +260 -0
  214. package/src/agent-src/templates/scripts/work_engine/intent/classify.ts +466 -0
  215. package/src/agent-src/templates/scripts/work_engine/migration/v0_to_v1.ts +531 -0
  216. package/src/agent-src/templates/scripts/work_engine/orchestration.ts +366 -0
  217. package/src/agent-src/templates/scripts/work_engine/persona_policy.ts +97 -0
  218. package/src/agent-src/templates/scripts/work_engine/resolvers/diff.ts +135 -0
  219. package/src/agent-src/templates/scripts/work_engine/resolvers/file.ts +175 -0
  220. package/src/agent-src/templates/scripts/work_engine/resolvers/prompt.ts +115 -0
  221. package/src/agent-src/templates/scripts/work_engine/scoring/confidence.ts +415 -0
  222. package/src/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +466 -0
  223. package/src/agent-src/templates/scripts/work_engine/scoring/decision_trace.ts +298 -0
  224. package/src/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +444 -0
  225. package/src/agent-src/templates/scripts/work_engine/stack/detect.ts +252 -0
  226. package/src/agent-src/templates/scripts/work_engine/stack/runner.ts +745 -0
  227. package/src/agent-src/templates/scripts/work_engine/state.ts +1151 -0
  228. package/src/agent-src/templates/scripts/work_engine/state_io.ts +413 -0
  229. package/src/config/agent-settings.template.yml +1 -1
  230. package/src/install/atomic.ts +111 -0
  231. package/src/install/conflict.ts +226 -0
  232. package/src/install/detect.ts +280 -0
  233. package/src/install/paths.ts +90 -0
  234. package/src/install/plan.ts +205 -0
  235. package/src/install/preflight.ts +210 -0
  236. package/src/install/selectedTools.ts +80 -0
  237. package/src/install/toolDetection.ts +120 -0
  238. package/src/install/txlog.ts +161 -0
  239. package/src/install/types.ts +175 -0
  240. package/src/install/wizard-plan.ts +216 -0
  241. package/src/scripts/_cli/cmd_converge.ts +38 -0
  242. package/src/scripts/_cli/cmd_doctor.ts +113 -2
  243. package/src/scripts/_cli/cmd_explain.ts +2 -2
  244. package/src/scripts/_cli/cmd_export.ts +3 -3
  245. package/src/scripts/_cli/cmd_fleet.ts +13 -1
  246. package/src/scripts/_cli/cmd_migrate.ts +3 -3
  247. package/src/scripts/_cli/cmd_prune.ts +2 -2
  248. package/src/scripts/_cli/cmd_refresh.ts +4 -4
  249. package/src/scripts/_cli/cmd_settings_check.ts +2 -2
  250. package/src/scripts/_cli/cmd_settings_migrate.ts +2 -2
  251. package/src/scripts/_cli/cmd_sync.ts +2 -2
  252. package/src/scripts/_cli/cmd_uninstall.ts +2 -2
  253. package/src/scripts/_cli/cmd_update.ts +8 -8
  254. package/src/scripts/_cli/cmd_upgrade.ts +4 -3
  255. package/src/scripts/_cli/cmd_validate.ts +3 -3
  256. package/src/scripts/_cli/cmd_versions.ts +2 -2
  257. package/src/scripts/_cli/explain_last/assumptions.ts +2 -2
  258. package/src/scripts/_cli/explain_last/council.ts +2 -2
  259. package/src/scripts/_cli/explain_last/halt.ts +2 -2
  260. package/src/scripts/_cli/explain_last/index.ts +2 -2
  261. package/src/scripts/_cli/explain_last/inputs.ts +4 -4
  262. package/src/scripts/_cli/explain_last/memory.ts +2 -2
  263. package/src/scripts/_cli/explain_last/provider.ts +2 -2
  264. package/src/scripts/_cli/explain_last/render.ts +2 -2
  265. package/src/scripts/_cli/explain_last/route.ts +2 -2
  266. package/src/scripts/_cli/explain_last/scrubber.ts +2 -2
  267. package/src/scripts/_cli/explain_last/sections/assumptions.ts +2 -2
  268. package/src/scripts/_cli/explain_last/sections/council.ts +2 -2
  269. package/src/scripts/_cli/explain_last/sections/halt.ts +2 -2
  270. package/src/scripts/_cli/explain_last/sections/header.ts +2 -2
  271. package/src/scripts/_cli/explain_last/sections/index.ts +1 -1
  272. package/src/scripts/_cli/explain_last/sections/inputs.ts +2 -2
  273. package/src/scripts/_cli/explain_last/sections/memory.ts +2 -2
  274. package/src/scripts/_cli/explain_last/sections/pack.ts +2 -2
  275. package/src/scripts/_cli/explain_last/sections/provider.ts +2 -2
  276. package/src/scripts/_cli/explain_last/sections/route.ts +2 -2
  277. package/src/scripts/_cli/explain_last/state_loader.ts +2 -2
  278. package/src/scripts/_dispatch.bash +20 -1
  279. package/src/scripts/_lib/agent_settings.ts +1 -1
  280. package/src/scripts/_lib/agent_src.ts +7 -7
  281. package/src/scripts/_lib/agents_overlay.ts +1 -1
  282. package/src/scripts/_lib/bench_ab_cache.ts +1 -1
  283. package/src/scripts/_lib/bench_ab_scoring.ts +1 -1
  284. package/src/scripts/_lib/bench_ab_scoring_v2.ts +3 -3
  285. package/src/scripts/_lib/bench_cost.ts +1 -1
  286. package/src/scripts/_lib/bench_quality.ts +3 -3
  287. package/src/scripts/_lib/bench_report.ts +4 -4
  288. package/src/scripts/_lib/bench_telegraph.ts +1 -1
  289. package/src/scripts/_lib/bench_telegraph_report.ts +4 -4
  290. package/src/scripts/_lib/changelog_eras.ts +1 -1
  291. package/src/scripts/_lib/claude_desktop_bundler.ts +1 -1
  292. package/src/scripts/_lib/cli_wrapper.ts +1 -1
  293. package/src/scripts/_lib/fs_atomic.ts +1 -1
  294. package/src/scripts/_lib/global_deploy_inventory.ts +1 -1
  295. package/src/scripts/_lib/install_layout.ts +1 -1
  296. package/src/scripts/_lib/install_regenerator.ts +1 -1
  297. package/src/scripts/_lib/installed_lock.ts +1 -1
  298. package/src/scripts/_lib/installed_tools.ts +1 -1
  299. package/src/scripts/_lib/json_pointers.ts +1 -1
  300. package/src/scripts/_lib/knowledge_global.ts +1 -1
  301. package/src/scripts/_lib/knowledge_global_promote.ts +2 -2
  302. package/src/scripts/_lib/knowledge_global_redaction.ts +2 -2
  303. package/src/scripts/_lib/link_crypto.ts +4 -4
  304. package/src/scripts/_lib/linked_projects.ts +4 -4
  305. package/src/scripts/_lib/model_tier.ts +1 -1
  306. package/src/scripts/_lib/module_detection.ts +2 -2
  307. package/src/scripts/_lib/pin_resolver.ts +1 -1
  308. package/src/scripts/_lib/script_output.ts +1 -1
  309. package/src/scripts/_lib/security_lint.ts +1 -1
  310. package/src/scripts/_lib/surface_tiers.ts +1 -1
  311. package/src/scripts/_lib/text_similarity.ts +1 -1
  312. package/src/scripts/_lib/update_check.ts +2 -2
  313. package/src/scripts/_lib/user_global_paths.ts +1 -1
  314. package/src/scripts/_lib/value_ladder.ts +1 -1
  315. package/src/scripts/_lib/value_report.ts +1 -1
  316. package/src/scripts/_lib/zip_min.ts +2 -2
  317. package/src/scripts/adoption_report.ts +3 -3
  318. package/src/scripts/adoption_snapshot.ts +3 -3
  319. package/src/scripts/adoption_status.ts +2 -2
  320. package/src/scripts/adr/regenerate_index.ts +3 -3
  321. package/src/scripts/ai_council/_default_prices.ts +2 -3
  322. package/src/scripts/ai_council/advisors.ts +1 -1
  323. package/src/scripts/ai_council/airgap.ts +1 -1
  324. package/src/scripts/ai_council/budget_guard.ts +1 -1
  325. package/src/scripts/ai_council/bundler.ts +1 -1
  326. package/src/scripts/ai_council/cli_hints.ts +1 -1
  327. package/src/scripts/ai_council/clients.ts +5 -5
  328. package/src/scripts/ai_council/compile_corpus.ts +1 -1
  329. package/src/scripts/ai_council/confidence_gate.ts +1 -1
  330. package/src/scripts/ai_council/config.ts +1 -1
  331. package/src/scripts/ai_council/consensus.ts +1 -1
  332. package/src/scripts/ai_council/events_log.ts +1 -1
  333. package/src/scripts/ai_council/learn_low_impact_preview.ts +1 -1
  334. package/src/scripts/ai_council/low_impact_corpus.ts +1 -1
  335. package/src/scripts/ai_council/low_impact_intake.ts +1 -1
  336. package/src/scripts/ai_council/modes.ts +1 -1
  337. package/src/scripts/ai_council/orchestrator.ts +3 -3
  338. package/src/scripts/ai_council/pricing.ts +2 -2
  339. package/src/scripts/ai_council/probation_gate.ts +2 -2
  340. package/src/scripts/ai_council/project_context.ts +1 -1
  341. package/src/scripts/ai_council/prompts.ts +1 -1
  342. package/src/scripts/ai_council/redact_low_impact_entry.ts +2 -2
  343. package/src/scripts/ai_council/session.ts +1 -1
  344. package/src/scripts/ai_council/shadow_dispatch.ts +1 -1
  345. package/src/scripts/ai_council/solo_dispatch.ts +1 -1
  346. package/src/scripts/analysis_freshness.ts +2 -2
  347. package/src/scripts/annotate_discovery.ts +2 -2
  348. package/src/scripts/apply_modules_config.ts +2 -2
  349. package/src/scripts/audit_adr_coverage.ts +3 -3
  350. package/src/scripts/audit_auto_rules.ts +2 -2
  351. package/src/scripts/audit_cloud_compatibility.ts +3 -3
  352. package/src/scripts/audit_command_surface.ts +2 -2
  353. package/src/scripts/audit_initial_context.ts +7 -6
  354. package/src/scripts/audit_likelihood.ts +5 -5
  355. package/src/scripts/audit_mcp_tools.ts +3 -3
  356. package/src/scripts/audit_overlap.ts +2 -2
  357. package/src/scripts/audit_skill_descriptions.ts +2 -2
  358. package/src/scripts/audit_skill_overlap.ts +5 -5
  359. package/src/scripts/audit_user_type_axis.ts +4 -4
  360. package/src/scripts/backfill_model_tier.ts +1 -1
  361. package/src/scripts/bench_ab_cache_dispatch.ts +2 -2
  362. package/src/scripts/bench_ab_clone.ts +2 -2
  363. package/src/scripts/bench_ab_diff.ts +3 -3
  364. package/src/scripts/bench_ab_integrity.ts +2 -2
  365. package/src/scripts/bench_ab_run.ts +4 -4
  366. package/src/scripts/bench_ab_task_runner.ts +1 -1
  367. package/src/scripts/bench_ab_tracka_run.ts +2 -2
  368. package/src/scripts/bench_ab_v2_run.ts +1 -1
  369. package/src/scripts/bench_ab_v2_stats.ts +2 -2
  370. package/src/scripts/bench_baseline_ready.ts +1 -1
  371. package/src/scripts/bench_condense_memory.ts +4 -4
  372. package/src/scripts/bench_drift_check.ts +3 -3
  373. package/src/scripts/bench_per_tool.ts +1 -1
  374. package/src/scripts/bench_rtk_savings.ts +4 -4
  375. package/src/scripts/bench_run.ts +4 -4
  376. package/src/scripts/bench_runner.ts +1 -1
  377. package/src/scripts/build_cloud_bundle.ts +3 -3
  378. package/src/scripts/build_discovery_manifest.ts +13 -15
  379. package/src/scripts/build_linear_digest.ts +2 -2
  380. package/src/scripts/build_mcp_registry_manifest.ts +3 -3
  381. package/src/scripts/build_proof.ts +6 -0
  382. package/src/scripts/build_rule_trigger_matrix.ts +2 -2
  383. package/src/scripts/capture_showcase_session.ts +3 -3
  384. package/src/scripts/chat_history.ts +1 -1
  385. package/src/scripts/check_always_budget.ts +1 -1
  386. package/src/scripts/check_artefact_checksums.ts +4 -4
  387. package/src/scripts/check_artefact_count_messaging.ts +197 -0
  388. package/src/scripts/check_augment_description_cap.ts +3 -3
  389. package/src/scripts/check_augmentignore.ts +1 -1
  390. package/src/scripts/check_beta_review_markers.ts +3 -3
  391. package/src/scripts/check_bite_sized_granularity.ts +1 -1
  392. package/src/scripts/check_cluster_patterns.ts +47 -3
  393. package/src/scripts/check_command_count_messaging.ts +2 -2
  394. package/src/scripts/check_condensation.ts +2 -2
  395. package/src/scripts/check_condensed_paths.ts +6 -6
  396. package/src/scripts/check_context_paths.ts +1 -1
  397. package/src/scripts/check_council_config_location.ts +3 -3
  398. package/src/scripts/check_council_layout.ts +2 -2
  399. package/src/scripts/check_council_references.ts +2 -2
  400. package/src/scripts/check_discovery_determinism.ts +3 -3
  401. package/src/scripts/check_gate_paths.ts +4 -4
  402. package/src/scripts/check_iron_law_prominence.ts +2 -2
  403. package/src/scripts/check_kernel_rule_bundle.ts +3 -3
  404. package/src/scripts/check_knowledge_cards.ts +4 -4
  405. package/src/scripts/check_knowledge_pages.ts +1 -1
  406. package/src/scripts/check_md_language.ts +3 -3
  407. package/src/scripts/check_memory.ts +3 -3
  408. package/src/scripts/check_memory_proposal.ts +2 -2
  409. package/src/scripts/check_module_management_neutral.ts +1 -1
  410. package/src/scripts/check_no_conflict_markers.ts +1 -1
  411. package/src/scripts/check_no_external_sources.ts +1 -1
  412. package/src/scripts/check_no_local_settings_committed.ts +2 -2
  413. package/src/scripts/check_no_new_legacy_path.ts +3 -3
  414. package/src/scripts/check_no_roadmap_refs.ts +3 -3
  415. package/src/scripts/check_one_off_location.ts +3 -3
  416. package/src/scripts/check_overlay_cascade_subdirs.ts +3 -3
  417. package/src/scripts/check_portability.ts +3 -3
  418. package/src/scripts/check_proposal.ts +0 -0
  419. package/src/scripts/check_public_catalog_links.ts +1 -1
  420. package/src/scripts/check_public_links.ts +2 -2
  421. package/src/scripts/check_references.ts +3 -3
  422. package/src/scripts/check_release_includes_discovery.ts +2 -2
  423. package/src/scripts/check_release_pr_shape.ts +2 -2
  424. package/src/scripts/check_release_published.ts +1 -1
  425. package/src/scripts/check_release_trunk_sync.ts +3 -3
  426. package/src/scripts/check_reply_consistency.ts +1 -1
  427. package/src/scripts/check_roadmap_trackable.ts +2 -2
  428. package/src/scripts/check_role_doc_links.ts +2 -2
  429. package/src/scripts/check_safety_floor_untouched.ts +3 -3
  430. package/src/scripts/check_skill_requires.ts +2 -2
  431. package/src/scripts/check_structural_breaking.ts +2 -2
  432. package/src/scripts/check_surface_tiers.ts +2 -2
  433. package/src/scripts/check_template_pin_drift.ts +1 -1
  434. package/src/scripts/check_test_coverage_diff.ts +2 -2
  435. package/src/scripts/check_token_optimizer_freshness.ts +3 -3
  436. package/src/scripts/check_trigger_evals.ts +2 -2
  437. package/src/scripts/check_update_banner.ts +1 -1
  438. package/src/scripts/ci_status.ts +0 -0
  439. package/src/scripts/ci_summary.ts +3 -3
  440. package/src/scripts/ci_time_ratio.ts +1 -1
  441. package/src/scripts/command_suggester/cooldown.ts +1 -1
  442. package/src/scripts/command_suggester/index.ts +1 -1
  443. package/src/scripts/command_suggester/loader.ts +1 -1
  444. package/src/scripts/command_suggester/match.ts +1 -1
  445. package/src/scripts/command_suggester/rank.ts +1 -1
  446. package/src/scripts/command_suggester/render.ts +1 -1
  447. package/src/scripts/command_suggester/sanitize.ts +1 -1
  448. package/src/scripts/command_suggester/settings.ts +1 -1
  449. package/src/scripts/command_suggester/types.ts +0 -0
  450. package/src/scripts/compile_router.ts +4 -4
  451. package/src/scripts/condense.ts +3 -3
  452. package/src/scripts/condense_memory.ts +1 -1
  453. package/src/scripts/config/index.ts +1 -1
  454. package/src/scripts/config/packs.ts +1 -1
  455. package/src/scripts/config/presets.ts +1 -1
  456. package/src/scripts/config/profile_explain.ts +1 -1
  457. package/src/scripts/config/profiles.ts +1 -1
  458. package/src/scripts/config/session_profiles.ts +1 -1
  459. package/src/scripts/context_hygiene_hook.ts +2 -2
  460. package/src/scripts/cost_by_conversation.ts +1 -1
  461. package/src/scripts/cost_summary.ts +2 -2
  462. package/src/scripts/council_cli.ts +1 -1
  463. package/src/scripts/council_prune.ts +1 -1
  464. package/src/scripts/cross_repo_retrieve.ts +2 -2
  465. package/src/scripts/discovery_stats.ts +3 -3
  466. package/src/scripts/evidence_report.ts +4 -4
  467. package/src/scripts/extract_audit_patterns.ts +2 -2
  468. package/src/scripts/first_run_gate_hook.ts +1 -1
  469. package/src/scripts/gen_discovery_baseline.ts +2 -2
  470. package/src/scripts/generate_capabilities_index.ts +2 -2
  471. package/src/scripts/generate_capability_matrix.ts +2 -2
  472. package/src/scripts/generate_catalog.ts +2 -2
  473. package/src/scripts/generate_command_flows.ts +2 -2
  474. package/src/scripts/generate_cookbook.ts +1 -1
  475. package/src/scripts/generate_index.ts +3 -3
  476. package/src/scripts/generate_ownership_matrix.ts +2 -2
  477. package/src/scripts/generate_pack_manifests.ts +2 -2
  478. package/src/scripts/generate_role_experiences_catalog.ts +3 -3
  479. package/src/scripts/hooks/block_no_verify.ts +2 -2
  480. package/src/scripts/hooks/dispatch_hook.ts +2 -2
  481. package/src/scripts/hooks/dispatch_issues.ts +1 -1
  482. package/src/scripts/hooks/envelope.ts +1 -1
  483. package/src/scripts/hooks/replay_hook.ts +1 -1
  484. package/src/scripts/hooks/state_io.ts +1 -1
  485. package/src/scripts/hooks_doctor.ts +1 -1
  486. package/src/scripts/hooks_status.ts +1 -1
  487. package/src/scripts/injection_scan_hook.ts +1 -1
  488. package/src/scripts/install.ts +145 -3
  489. package/src/scripts/inventory_abstraction_budget.ts +5 -5
  490. package/src/scripts/inventory_frontmatter.ts +1 -1
  491. package/src/scripts/inventory_meta_layers.ts +1 -1
  492. package/src/scripts/iron_law_sha.ts +1 -1
  493. package/src/scripts/knowledge_global_cli.ts +3 -3
  494. package/src/scripts/linked_projects_list.ts +1 -1
  495. package/src/scripts/lint_agent_security.ts +4 -4
  496. package/src/scripts/lint_agent_skill_names.ts +1 -1
  497. package/src/scripts/lint_agents_layout.ts +2 -2
  498. package/src/scripts/lint_agents_md.ts +3 -3
  499. package/src/scripts/lint_archived_skills.ts +2 -2
  500. package/src/scripts/lint_artefact_frontmatter.ts +2 -2
  501. package/src/scripts/lint_bench_ab.ts +2 -2
  502. package/src/scripts/lint_bench_corpus.ts +1 -1
  503. package/src/scripts/lint_command_flow_coverage.ts +1 -1
  504. package/src/scripts/lint_command_routing.ts +2 -2
  505. package/src/scripts/lint_command_tiers.ts +1 -1
  506. package/src/scripts/lint_command_verbs.ts +4 -4
  507. package/src/scripts/lint_commit_subjects.ts +2 -2
  508. package/src/scripts/lint_context_spine_usage.ts +3 -3
  509. package/src/scripts/lint_discovery_manifest.ts +4 -4
  510. package/src/scripts/lint_discovery_vocabulary.ts +2 -2
  511. package/src/scripts/lint_empty_roadmaps.ts +3 -3
  512. package/src/scripts/lint_eval_freshness.ts +2 -2
  513. package/src/scripts/lint_examples.ts +2 -2
  514. package/src/scripts/lint_explain_trace.ts +2 -2
  515. package/src/scripts/lint_featured_skills.ts +0 -0
  516. package/src/scripts/lint_flows.ts +5 -5
  517. package/src/scripts/lint_framework_leakage.ts +1 -1
  518. package/src/scripts/lint_framework_leakage_allowlist.json +10 -2
  519. package/src/scripts/lint_frontmatter_boilerplate.ts +2 -2
  520. package/src/scripts/lint_ghostwriter_source.ts +3 -3
  521. package/src/scripts/lint_global_paths.ts +1 -1
  522. package/src/scripts/lint_handoffs.ts +1 -1
  523. package/src/scripts/lint_hidden_unicode.ts +1 -1
  524. package/src/scripts/lint_hook_concern_budget.ts +2 -2
  525. package/src/scripts/lint_hook_manifest.ts +2 -2
  526. package/src/scripts/lint_instruction_smuggling.ts +1 -1
  527. package/src/scripts/lint_load_context.ts +2 -2
  528. package/src/scripts/lint_marketplace.ts +1 -1
  529. package/src/scripts/lint_marketplace_install_completeness.ts +2 -2
  530. package/src/scripts/lint_mcp_config_security.ts +1 -1
  531. package/src/scripts/lint_mcp_registry_manifest.ts +1 -1
  532. package/src/scripts/lint_media_policy_linkage.ts +3 -3
  533. package/src/scripts/lint_missions.ts +3 -3
  534. package/src/scripts/lint_model_tier_coverage.ts +3 -3
  535. package/src/scripts/lint_namespace.ts +2 -2
  536. package/src/scripts/lint_namespace_collisions.ts +2 -2
  537. package/src/scripts/lint_new_skill_gate.ts +3 -3
  538. package/src/scripts/lint_no_new_atomic_commands.ts +9 -6
  539. package/src/scripts/lint_no_python_twin_rationale.ts +102 -0
  540. package/src/scripts/lint_one_off_age.ts +2 -2
  541. package/src/scripts/lint_orchestration_dsl.ts +3 -3
  542. package/src/scripts/lint_orchestrator_auto_detect.ts +1 -1
  543. package/src/scripts/lint_pack_boundaries.ts +2 -2
  544. package/src/scripts/lint_pack_dependencies.ts +2 -2
  545. package/src/scripts/lint_pack_first_win.ts +2 -2
  546. package/src/scripts/lint_persona_governance.ts +3 -3
  547. package/src/scripts/lint_positioning.ts +1 -1
  548. package/src/scripts/lint_profile_overlay_set_only.ts +2 -2
  549. package/src/scripts/lint_readme_jargon.ts +2 -2
  550. package/src/scripts/lint_readme_size.ts +2 -2
  551. package/src/scripts/lint_regression.ts +3 -3
  552. package/src/scripts/lint_roadmap_ci_steps.ts +3 -3
  553. package/src/scripts/lint_roadmap_complexity.ts +1 -1
  554. package/src/scripts/lint_roadmap_later_disposition.ts +2 -2
  555. package/src/scripts/lint_role_experiences.ts +2 -2
  556. package/src/scripts/lint_rule_interactions.ts +1 -1
  557. package/src/scripts/lint_rule_tiers.ts +1 -1
  558. package/src/scripts/lint_showcase_sessions.ts +2 -2
  559. package/src/scripts/lint_skill_frontmatter_safety.ts +1 -1
  560. package/src/scripts/lint_skill_originality.ts +1 -1
  561. package/src/scripts/lint_skill_tools.ts +3 -3
  562. package/src/scripts/lint_ticket_buildable.ts +2 -2
  563. package/src/scripts/lint_topics_yaml.ts +3 -3
  564. package/src/scripts/lint_trust_coherence.ts +3 -3
  565. package/src/scripts/lint_value_dashboard.ts +3 -3
  566. package/src/scripts/lint_workflow_security.ts +3 -3
  567. package/src/scripts/lint_workspace_boundary.ts +2 -2
  568. package/src/scripts/mcp_parity_smoke.ts +1 -1
  569. package/src/scripts/mcp_render.ts +1 -1
  570. package/src/scripts/mcp_server/catalog.ts +1 -1
  571. package/src/scripts/mcp_server/index.ts +1 -1
  572. package/src/scripts/mcp_server/metadata.ts +1 -1
  573. package/src/scripts/mcp_server/prompts.ts +1 -1
  574. package/src/scripts/mcp_server/resources.ts +1 -1
  575. package/src/scripts/mcp_server/server.ts +1 -1
  576. package/src/scripts/mcp_server/telemetry.ts +1 -1
  577. package/src/scripts/mcp_server/tools.ts +1 -1
  578. package/src/scripts/mcp_telemetry_health.ts +1 -1
  579. package/src/scripts/mcp_telemetry_query.ts +3 -3
  580. package/src/scripts/mcp_telemetry_store.ts +3 -3
  581. package/src/scripts/measure_augment_budget.ts +2 -2
  582. package/src/scripts/measure_density.ts +2 -2
  583. package/src/scripts/measure_frugality_savings.ts +3 -3
  584. package/src/scripts/measure_markitdown_lift.ts +1 -1
  585. package/src/scripts/measure_patterns.ts +1 -1
  586. package/src/scripts/measure_projection_bytes.ts +1 -1
  587. package/src/scripts/measure_rule_budget.ts +1 -1
  588. package/src/scripts/measure_skill_reduction.ts +1 -1
  589. package/src/scripts/memory_hash.ts +1 -1
  590. package/src/scripts/memory_lookup.ts +6 -6
  591. package/src/scripts/memory_report.ts +1 -1
  592. package/src/scripts/memory_signal.ts +1 -1
  593. package/src/scripts/memory_status.ts +2 -2
  594. package/src/scripts/migrate_command_suggestions.ts +1 -1
  595. package/src/scripts/migrate_frontmatter_defaults.ts +1 -1
  596. package/src/scripts/mine_session.ts +3 -3
  597. package/src/scripts/minimal_safe_diff_hook.ts +2 -2
  598. package/src/scripts/move_artefact.ts +3 -3
  599. package/src/scripts/new_skill.ts +3 -3
  600. package/src/scripts/onboarding_gate_hook.ts +2 -2
  601. package/src/scripts/pack_mcp_content.ts +1 -1
  602. package/src/scripts/parity/replay.ts +3 -2
  603. package/src/scripts/pattern_share.ts +2 -2
  604. package/src/scripts/plan_physical_move.ts +3 -3
  605. package/src/scripts/prediction-pool/poisson_sim.ts +2 -2
  606. package/src/scripts/prediction-pool/pool_winsim.ts +2 -2
  607. package/src/scripts/prediction-pool/score_ev.ts +2 -2
  608. package/src/scripts/prepack-check.mjs +108 -5
  609. package/src/scripts/print_required_checks.ts +2 -2
  610. package/src/scripts/probe_projection_fidelity.ts +2 -2
  611. package/src/scripts/probe_skill_registration.ts +2 -2
  612. package/src/scripts/profile_staleness_hook.ts +2 -2
  613. package/src/scripts/profile_use.ts +2 -2
  614. package/src/scripts/project_thin_rules.ts +3 -3
  615. package/src/scripts/propose_modules_config.ts +2 -2
  616. package/src/scripts/prototype_lint_contradictions.ts +2 -2
  617. package/src/scripts/prove_pack_extractable.ts +1 -1
  618. package/src/scripts/readme_linter.ts +4 -4
  619. package/src/scripts/redact_hook_capture.ts +2 -2
  620. package/src/scripts/refine_ticket_detect.ts +1 -1
  621. package/src/scripts/release.ts +30 -19
  622. package/src/scripts/render_benchmark_md.ts +2 -2
  623. package/src/scripts/render_value_md.ts +2 -2
  624. package/src/scripts/roadmap_progress_hook.ts +1 -1
  625. package/src/scripts/router_telemetry.ts +1 -1
  626. package/src/scripts/run_skill_evals.ts +2 -2
  627. package/src/scripts/runtime_dispatcher.ts +1 -1
  628. package/src/scripts/runtime_handler.ts +1 -1
  629. package/src/scripts/runtime_registry.ts +3 -3
  630. package/src/scripts/score_skill_selection.ts +1 -1
  631. package/src/scripts/security_audit_config.ts +2 -2
  632. package/src/scripts/skill_collision_clusters.ts +1 -1
  633. package/src/scripts/skill_discovery.ts +1 -1
  634. package/src/scripts/skill_linter.ts +8 -7
  635. package/src/scripts/skill_overlap.ts +2 -2
  636. package/src/scripts/skill_preview.ts +1 -1
  637. package/src/scripts/skill_tools/audit_persona_coverage.ts +3 -3
  638. package/src/scripts/skill_tools/audit_user_type_coverage.ts +3 -3
  639. package/src/scripts/skill_tools/index.ts +1 -1
  640. package/src/scripts/skill_tools/run_block_d_eval.ts +3 -3
  641. package/src/scripts/skill_tools/score_skill_relevance.ts +3 -3
  642. package/src/scripts/skill_tools/suggest_skill_for_task.ts +3 -3
  643. package/src/scripts/skill_trigger_eval.ts +2 -2
  644. package/src/scripts/skill_usage_collect.ts +2 -2
  645. package/src/scripts/skill_usage_report.ts +2 -2
  646. package/src/scripts/smoke_path_resolution.ts +2 -2
  647. package/src/scripts/smoke_quickstart.ts +4 -4
  648. package/src/scripts/snapshot_agent_outputs.ts +2 -2
  649. package/src/scripts/spotcheck_thin_root.ts +2 -2
  650. package/src/scripts/surface-tiers.yml +1 -0
  651. package/src/scripts/sync_agent_settings.ts +2 -2
  652. package/src/scripts/sync_github_metadata.ts +4 -4
  653. package/src/scripts/sync_gitignore.ts +3 -3
  654. package/src/scripts/sync_yaml_rt.ts +2 -2
  655. package/src/scripts/telegraph_stats.ts +1 -1
  656. package/src/scripts/tool_registry.ts +2 -2
  657. package/src/scripts/tools/adapter_errors.ts +1 -1
  658. package/src/scripts/tools/base_adapter.ts +1 -1
  659. package/src/scripts/tools/github_adapter.ts +1 -1
  660. package/src/scripts/tools/jira_adapter.ts +1 -1
  661. package/src/scripts/trigger_coverage.ts +2 -2
  662. package/src/scripts/update_counts.ts +68 -6
  663. package/src/scripts/update_prices.ts +3 -3
  664. package/src/scripts/validate_agent_settings.ts +3 -3
  665. package/src/scripts/validate_decision_engine.ts +2 -2
  666. package/src/scripts/validate_discovery_manifest.ts +3 -3
  667. package/src/scripts/validate_frontmatter.ts +5 -5
  668. package/src/scripts/validate_pack_yaml.ts +0 -0
  669. package/src/scripts/validate_safe_paths.ts +2 -2
  670. package/src/scripts/validate_telegraph_carveouts.ts +3 -3
  671. package/src/scripts/verify_before_complete_hook.ts +2 -2
  672. package/src/scripts/verify_physical_move.ts +2 -2
  673. package/src/scripts/wrapper_freshness_hook.ts +3 -3
  674. package/src/server/schemas/settings.ts +426 -0
  675. package/src/shared/settingsSurface.ts +184 -0
  676. package/src/shared/userMd/formAdapter.ts +86 -0
  677. package/src/shared/userMd/schema.ts +59 -0
  678. package/src/shared/userMd/utils.ts +91 -0
  679. package/dist/agent-src/commands/optimize-project.md +0 -243
  680. package/dist/ui/assets/index-BbWWuFrF.css +0 -1
  681. package/dist/ui/assets/index-UjcTG_9O.js +0 -40
  682. package/dist/ui/assets/index-UjcTG_9O.js.map +0 -1
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Agent Config — Project Bridge Installer (TypeScript twin).
4
4
  *
5
- * TypeScript twin of `src/scripts/install.py` (ADR-200, py2ts migration).
6
- * The CLI contract mirrors the Python original EXACTLY — same flags, same
5
+ * Ported from the retired Python `src/scripts/install.py` (ADR-200).
6
+ * The CLI contract pins the historical contract exactly — same flags, same
7
7
  * exit codes, same stdout/stderr split, byte-identical emitted output,
8
8
  * same filesystem effects, same subprocess argv/cwd/env. No behaviour
9
9
  * changes — latent quirks are replicated and flagged inline, not fixed.
@@ -51,7 +51,7 @@
51
51
  * import-resolution detail with no observable effect.
52
52
  * - `scripts._cli.cmd_migrate` now has a `.ts` twin, so `_run_migrate_to_global`
53
53
  * calls `cmd_migrate.main([], { cwd })` directly in-process — exactly as the
54
- * Python original ran it via `sys.stdout`. The migrator's `out`/`err` sinks
54
+ * retired Python implementation ran it via `sys.stdout`. The migrator's `out`/`err` sinks
55
55
  * default to `process.stdout`/`process.stderr`, preserving the prior
56
56
  * `stdio:['ignore','inherit','pipe']` observable contract (stdout text + exit
57
57
  * code). Inline reason at the call site.
@@ -80,6 +80,9 @@ import * as user_global_paths from './_lib/user_global_paths.js';
80
80
  import * as claude_desktop_bundler from './_lib/claude_desktop_bundler.js';
81
81
  import * as claude_settings_hooks from './_lib/claude_settings_hooks.js';
82
82
  import { find_project_root_with_anchor, load_agent_settings } from './_lib/agent_settings.js';
83
+ import { flattenSurface, computeSurfaceDelta, type SettingsSurface } from '../shared/settingsSurface.js';
84
+ import { settingsSchema } from '../server/schemas/settings.js';
85
+ import { zodToJsonSchema } from 'zod-to-json-schema';
83
86
  import { detect_module_roots } from './_lib/module_detection.js';
84
87
  import {
85
88
  TIER_TO_CLAUDE_MODEL,
@@ -2832,6 +2835,66 @@ function _deploy_claude_desktop(
2832
2835
  return [bundle_count, 0, 'deployed', [bundles_dir, ...marker_paths]];
2833
2836
  }
2834
2837
 
2838
+ /**
2839
+ * Claude Code flat-command mitigation (council 2026-07-08,
2840
+ * cc-user-command-discovery). Claude Code ≤ 2.1.204 does not register FLAT
2841
+ * user-scope command files (`~/.claude/commands/<name>.md`) — probed and
2842
+ * confirmed: nested commands (`/cluster:sub`) and user-scope skills DO
2843
+ * register. Until upstream fixes discovery, tier-0/1 VISIBLE flat commands
2844
+ * are re-projected as skill wrappers (`~/.claude/skills/<name>/SKILL.md`)
2845
+ * and their flat command file is dropped from the claude-code anchor —
2846
+ * single source, so no duplicate `/name` appears once upstream fixes flat
2847
+ * discovery (revert = one package release, no per-machine gating).
2848
+ * Tier-2/internal flat commands stay command files. A command whose name
2849
+ * collides with a real skill is skipped (the skill already owns `/name`).
2850
+ */
2851
+ const _CLAUDE_FLAT_WRAPPER_EXTRA = new Set(['commit']); // essential; absent from the manifest
2852
+ export function _apply_claude_flat_command_wrappers(
2853
+ anchor: string,
2854
+ package_root: string,
2855
+ current_files: Set<string>,
2856
+ ): { wrapped: string[]; collisions: string[] } {
2857
+ const wrapped: string[] = [];
2858
+ const collisions: string[] = [];
2859
+ // Tier-0/1 visible command slugs from the locked discovery manifest.
2860
+ const eligible = new Set<string>(_CLAUDE_FLAT_WRAPPER_EXTRA);
2861
+ try {
2862
+ const manifest = JSON.parse(
2863
+ fs.readFileSync(path.join(package_root, 'dist', 'discovery', 'discovery-manifest.json'), 'utf8'),
2864
+ ) as { artefacts?: Array<{ category?: string; slug?: string; tier?: number; visibility?: string }> };
2865
+ for (const a of manifest.artefacts ?? []) {
2866
+ if (a.category !== 'command' || typeof a.slug !== 'string') continue;
2867
+ if ((a.tier ?? 2) <= 1 && a.visibility !== 'internal') eligible.add(a.slug);
2868
+ }
2869
+ } catch {
2870
+ // No manifest → wrap only the hardcoded essentials.
2871
+ }
2872
+ for (const slug of [...eligible].sort()) {
2873
+ const flat_rel = `commands/${slug}.md`;
2874
+ const flat_abs = path.join(anchor, 'commands', `${slug}.md`);
2875
+ if (!fs.existsSync(flat_abs)) continue;
2876
+ const skill_dir = path.join(anchor, 'skills', slug);
2877
+ if (fs.existsSync(skill_dir)) {
2878
+ // A real skill owns /<slug> — never overwrite it.
2879
+ collisions.push(slug);
2880
+ continue;
2881
+ }
2882
+ let body = fs.readFileSync(flat_abs, 'utf8');
2883
+ // SKILL.md requires a `name:` — inject it into the existing
2884
+ // frontmatter when absent (command frontmatter carries description).
2885
+ if (body.startsWith('---\n') && !/^name:/m.test(body.split('\n---')[0] ?? '')) {
2886
+ body = body.replace('---\n', `---\nname: ${slug}\n`);
2887
+ }
2888
+ fs.mkdirSync(skill_dir, { recursive: true });
2889
+ fs.writeFileSync(path.join(skill_dir, 'SKILL.md'), body, 'utf8');
2890
+ fs.rmSync(flat_abs, { force: true });
2891
+ current_files.delete(flat_rel);
2892
+ current_files.add(`skills/${slug}/SKILL.md`);
2893
+ wrapped.push(slug);
2894
+ }
2895
+ return { wrapped, collisions };
2896
+ }
2897
+
2835
2898
  function _deploy_global_content(
2836
2899
  tools: Set<string>,
2837
2900
  force: boolean,
@@ -2874,6 +2937,20 @@ function _deploy_global_content(
2874
2937
  global_deploy_inventory.expected_deploy_files(src, dest_sub ? dest_sub : ''),
2875
2938
  );
2876
2939
  }
2940
+ // Flat-command → skill-wrapper re-projection for Claude Code
2941
+ // (discovery regression mitigation; see the helper's doc block).
2942
+ // Runs before the postcheck + inventory record so `current_files`
2943
+ // reflects the transformed tree and reaping stays consistent.
2944
+ if (tool_id === 'claude-code') {
2945
+ const res = _apply_claude_flat_command_wrappers(anchor, package_root, current_files);
2946
+ if (res.wrapped.length > 0 && !state.QUIET) {
2947
+ info(
2948
+ ` claude-code: ${res.wrapped.length} visible flat command(s) projected as ` +
2949
+ 'skill wrappers (Claude Code flat-command discovery workaround)',
2950
+ );
2951
+ }
2952
+ }
2953
+
2877
2954
  const missing_targets = _verify_deploy_targets(anchor, plan);
2878
2955
  if (missing_targets.length > 0) {
2879
2956
  if (!state.QUIET) {
@@ -3275,6 +3352,20 @@ function install_global(
3275
3352
  }
3276
3353
  }
3277
3354
 
3355
+ // Settings-surface snapshot + upgrade delta (road-to-settings-change-
3356
+ // review; council 2026-07-08, 2/2 converged on snapshot-at-install).
3357
+ // Every global install persists the flattened settings surface; when a
3358
+ // PREVIOUS snapshot from a different version exists, the semantic delta
3359
+ // (added / default_changed / enum_added / enum_removed / type_changed)
3360
+ // is written to state/settings-delta.json — the pending-review flag the
3361
+ // GUI banner, the review page, and doctor consume. Never fatal: a
3362
+ // snapshot failure must not sink the install.
3363
+ try {
3364
+ _write_settings_surface_snapshot(installed_version);
3365
+ } catch (e) {
3366
+ if (!state.QUIET) warn(`settings-surface snapshot failed — ${String(e)}`);
3367
+ }
3368
+
3278
3369
  if (!state.QUIET) {
3279
3370
  process.stdout.write('\n');
3280
3371
  success(`Global install completed (v${installed_version}).`);
@@ -3283,6 +3374,55 @@ function install_global(
3283
3374
  return 0;
3284
3375
  }
3285
3376
 
3377
+ const SETTINGS_SURFACE_REL = path.join('state', 'settings-surface.json');
3378
+ const SETTINGS_DELTA_REL = path.join('state', 'settings-delta.json');
3379
+
3380
+ function _current_settings_surface(version: string): SettingsSurface {
3381
+ const jsonSchema = zodToJsonSchema(settingsSchema, {
3382
+ name: 'AgentSettings',
3383
+ $refStrategy: 'none',
3384
+ target: 'jsonSchema7',
3385
+ }) as Parameters<typeof flattenSurface>[0];
3386
+ return flattenSurface(jsonSchema, version);
3387
+ }
3388
+
3389
+ function _write_settings_surface_snapshot(installed_version: string): void {
3390
+ const root = user_global_paths.event4u_root();
3391
+ const surface_path = path.join(root, SETTINGS_SURFACE_REL);
3392
+ const delta_path = path.join(root, SETTINGS_DELTA_REL);
3393
+ const next = _current_settings_surface(installed_version);
3394
+
3395
+ let previous: SettingsSurface | null = null;
3396
+ try {
3397
+ const parsed = JSON.parse(fs.readFileSync(surface_path, 'utf8')) as SettingsSurface;
3398
+ if (parsed !== null && typeof parsed === 'object' && parsed.entries !== undefined) previous = parsed;
3399
+ } catch {
3400
+ // First run after this feature ships — seed-only (council Q1:
3401
+ // no template fallback; the transition cost is paid once).
3402
+ }
3403
+
3404
+ if (previous !== null && previous.version !== next.version) {
3405
+ const delta = computeSurfaceDelta(previous, next);
3406
+ if (delta.changes.length > 0) {
3407
+ fs.mkdirSync(path.dirname(delta_path), { recursive: true, mode: 0o700 });
3408
+ fs.writeFileSync(delta_path, `${JSON.stringify(delta, null, 2)}\n`, { mode: 0o600 });
3409
+ if (!state.QUIET) {
3410
+ const counts: Record<string, number> = {};
3411
+ for (const c of delta.changes) counts[c.kind] = (counts[c.kind] ?? 0) + 1;
3412
+ const parts = Object.entries(counts).map(([k, v]) => `${v} ${k.replace('_', ' ')}`);
3413
+ info(
3414
+ `Settings surface changed ${delta.oldVersion} → ${delta.newVersion}: ` +
3415
+ `${parts.join(', ')}. Review with \`agent-config config\` ` +
3416
+ '(Settings → banner) — nothing was changed automatically.',
3417
+ );
3418
+ }
3419
+ }
3420
+ }
3421
+
3422
+ fs.mkdirSync(path.dirname(surface_path), { recursive: true, mode: 0o700 });
3423
+ fs.writeFileSync(surface_path, `${JSON.stringify(next, null, 2)}\n`, { mode: 0o600 });
3424
+ }
3425
+
3286
3426
  function arrayStrEqual(a: string[], b: string[]): boolean {
3287
3427
  return a.length === b.length && a.every((v, i) => v === b[i]);
3288
3428
  }
@@ -4531,6 +4671,8 @@ export {
4531
4671
  _wizard_should_launch,
4532
4672
  _dry_run_summary,
4533
4673
  _apply_payload_preview,
4674
+ _write_settings_surface_snapshot,
4675
+ _current_settings_surface,
4534
4676
  jsonDumpsIndent,
4535
4677
  jsonDumpsCompact,
4536
4678
  _canonical_settings_target,
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Abstraction-budget inventory — read-only discovery pass.
4
4
  *
5
- * TypeScript twin of `src/scripts/inventory_abstraction_budget.py`
5
+ * Ported from the retired Python `src/scripts/inventory_abstraction_budget.py`
6
6
  * (ADR-200 — Python→TS migration, Phase 8 / Wave 8c). Mirrors the
7
7
  * Python CLI contract EXACTLY — the `--quiet` flag, exit code (always
8
8
  * 0), the stdout/stderr split routed through the `script_output` twin,
@@ -11,9 +11,9 @@
11
11
  * quoting).
12
12
  *
13
13
  * Imports the `_lib/agent_src` + `_lib/script_output` twins (the SAME
14
- * surfaces the Python original imports). Reference counts are grep-backed
14
+ * surfaces the retired Python implementation imports). Reference counts are grep-backed
15
15
  * (ripgrep with python-walk fallback) — `rg` is invoked as a subprocess
16
- * exactly like the Python original, so the counts agree.
16
+ * exactly like the retired Python implementation, so the counts agree.
17
17
  *
18
18
  * Read-only. Touches no abstraction file. No behaviour changes — latent
19
19
  * Python quirks replicated.
@@ -127,7 +127,7 @@ function newStats(): Stats {
127
127
  }
128
128
 
129
129
  function _log(level: 'info' | 'success' | 'warn' | 'error', msg: string): void {
130
- // script_output twin is always present here (unlike the Python original's
130
+ // script_output twin is always present here (unlike the retired Python implementation's
131
131
  // graceful-degradation guard, which exists only for the rare run outside the
132
132
  // repo). Mirror the Python branch: when script_output is None it would print
133
133
  // only on error to stderr — but in this twin the module is always imported.
@@ -466,7 +466,7 @@ export function inventory_packs(stats: Stats): void {
466
466
  // FileNotFoundError when the directory does not exist (it is NOT guarded
467
467
  // by an is_dir() check, unlike the other inventory passes). Replicate that
468
468
  // latent crash faithfully: on the current src/-based layout (no packages/
469
- // dir) the Python original aborts with a FileNotFoundError traceback and
469
+ // dir) the retired Python implementation aborts with a FileNotFoundError traceback and
470
470
  // exit 1. See the divergence note in the wave report — this is a real
471
471
  // latent Python bug being mirrored, not a TS choice.
472
472
  for (const child of _iterdirSortedStrict(packs_dir)) {
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Inventory frontmatter keys across all agent artefacts.
4
4
  *
5
- * TypeScript twin of `src/scripts/inventory_frontmatter.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/inventory_frontmatter.py` (ADR-200 —
6
6
  * Python→TS migration, Phase 8 / Wave 8c). Mirrors the CLI contract
7
7
  * EXACTLY: no flags, exit code 0, byte-identical Markdown stdout. No
8
8
  * behaviour changes — latent bugs (line-based frontmatter parse, the
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Meta-layer / concept-surface inventory — read-only discovery pass.
4
4
  *
5
- * TypeScript twin of `src/scripts/inventory_meta_layers.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/inventory_meta_layers.py` (ADR-200 —
6
6
  * Python→TS migration, Phase 8 / Wave 8c). Mirrors the CLI contract EXACTLY:
7
7
  * flag (`--quiet`), exit code 0, byte-identical stdout, and the byte-identical
8
8
  * written `meta-layer-inventory.md` (`\n`-joined) + `meta-layer-inventory.csv`
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * SHA-256 of every triple-fence block in a rule file (Iron Law preservation).
4
4
  *
5
- * TypeScript twin of `iron_law_sha.py` (Phase 8 / Wave 8e). Mirrors the
5
+ * Ported from the retired Python `iron_law_sha.py` (Phase 8 / Wave 8e). Mirrors the
6
6
  * Python CLI contract byte-for-byte: flags, exit codes, stdout layout.
7
7
  *
8
8
  * Usage:
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Command surface for the file-first global knowledge-card store (ADR-100).
4
4
  *
5
- * TypeScript twin of `src/scripts/knowledge_global_cli.py` (ADR-200). The CLI
6
- * contract mirrors the Python original EXACTLY — same subcommands, flags,
5
+ * Ported from the retired Python `src/scripts/knowledge_global_cli.py` (ADR-200). The CLI
6
+ * contract pins the historical contract exactly — same subcommands, flags,
7
7
  * exit codes, stdout/stderr split, byte-identical messages, table layout,
8
8
  * provenance write, and kill-switch no-op behavior. No behaviour changes.
9
9
  *
@@ -392,7 +392,7 @@ function cmd_validate(args: { check_urls: boolean }): number {
392
392
  return 0;
393
393
  }
394
394
 
395
- // The Python original spawns `python3 check_knowledge_cards.py --global
395
+ // the retired Python implementation spawns `python3 check_knowledge_cards.py --global
396
396
  // --strict`. The TS twin spawns the sibling `check_knowledge_cards.ts`
397
397
  // via the same tsx runtime (process spawn, not an import).
398
398
  const tsxBin = path.join(
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * `agent-config linked-projects:list` — list opted-in IDE-attached siblings.
4
4
  *
5
- * TypeScript twin of `linked_projects_list.py` (Phase 8 / Wave 8e).
5
+ * Ported from the retired Python `linked_projects_list.py` (Phase 8 / Wave 8e).
6
6
  *
7
7
  * Phase 4 of `road-to-leaner-core-and-discovery`; closes the ADR-032 follow-up
8
8
  * "expose the detector as a CLI subcommand for consumer reach". Pure wrapper over
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * P1.6 — umbrella runner for the agent-security self-audit linters.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_agent_security.py` (ADR-200 —
5
+ * Ported from the retired Python `src/scripts/lint_agent_security.py` (ADR-200 —
6
6
  * Python→TS migration). Mirrors the CLI contract EXACTLY: the `--sarif PATH`
7
7
  * / `--quiet` flags, the per-linter glyph lines, the aggregated summary, the
8
8
  * byte-identical SARIF report (`json.dumps(indent=2)` parity), and the exit
@@ -15,9 +15,9 @@
15
15
  * (road-to-security-pillar.md P1).
16
16
  *
17
17
  * The four child linters now have TypeScript twins, so this runner spawns each
18
- * `<child>.ts --json` via the repo-local `tsx` binary (the Python originals
18
+ * `<child>.ts --json` via the repo-local `tsx` binary (the retired Python implementations
19
19
  * were deleted in the ADR-200 migration). Each child is a separate process so
20
- * its JSON findings are aggregated here exactly as the Python original
20
+ * its JSON findings are aggregated here exactly as the retired Python implementation
21
21
  * aggregated `subprocess.run` output.
22
22
  *
23
23
  * Usage:
@@ -51,7 +51,7 @@ const LINTERS: ReadonlyArray<[string, string]> = [
51
51
 
52
52
  function _run(script: string): [number, Finding[]] {
53
53
  // Spawn the child linter's `.ts` twin via the repo-local tsx binary
54
- // (capture_output=True, text=True equivalent). Mirrors the Python original's
54
+ // (capture_output=True, text=True equivalent). Mirrors the retired Python implementation's
55
55
  // `subprocess.run([sys.executable, HERE/<child>.py, "--json"])`, now that the
56
56
  // children are TypeScript and the `.py` originals are deleted.
57
57
  const proc = spawnSync(tsxBin, [path.join(_HERE, script), "--json"], {
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env tsx
2
2
  // Agent-Skills name-compliance linter (2026-06 Zed fix).
3
3
  //
4
- // TypeScript twin of src/scripts/lint_agent_skill_names.py — same two
4
+ // TypeScript port of the retired Python src/scripts/lint_agent_skill_names.py — same two
5
5
  // blocking checks (command name == path-derived slug; skill name == dir),
6
6
  // same Agent-Skills name pattern, same stdout/stderr split, same exit codes
7
7
  // (0 clean / 1 violations / 3 internal error), same `--quiet` flag.
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * CI guard for the `agents/` top-level layout.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_agents_layout.py` (ADR-200,
6
- * Phase 4 / Wave 4b). The CLI contract is mirrored EXACTLY — `--quiet`
5
+ * Ported from the retired Python `src/scripts/lint_agents_layout.py` (ADR-200,
6
+ * Phase 4 / Wave 4b). The CLI contract is pinned — `--quiet`
7
7
  * / `--strict` flags (parsed by membership test, like the Python which
8
8
  * scans `sys.argv[1:]`), exit codes (0 clean / warnings, 1 unknown
9
9
  * flat-file violation), stdout/stderr split (everything goes to stdout),
@@ -2,11 +2,11 @@
2
2
  /**
3
3
  * Thin-Root contract linter for AGENTS.md files (Phase 7).
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_agents_md.py` (ADR-200, Phase 4 /
6
- * Wave 4b). The CLI contract is mirrored EXACTLY — `--quiet` detected by
5
+ * Ported from the retired Python `src/scripts/lint_agents_md.py` (ADR-200, Phase 4 /
6
+ * Wave 4b). The CLI contract is pinned — `--quiet` detected by
7
7
  * argv membership (no argparse), exit codes (0 / 1), stdout-only output,
8
8
  * byte-identical messages, same target order. No behaviour changes —
9
- * latent bugs replicated.
9
+ * historical quirks preserved (consumers pin the exact behaviour).
10
10
  *
11
11
  * Enforces caps + pointer-ratio + pointer-anatomy + emergency-triage
12
12
  * contract from `.agent-src.uncondensed/skills/agents-md-thin-root/SKILL.md`.
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Lint archive notes under agents/evidence/archived-skills/.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_archived_skills.py` (ADR-200, Phase 4
6
- * / Wave 4b). The CLI contract is mirrored EXACTLY — `--quiet` flag, exit
5
+ * Ported from the retired Python `src/scripts/lint_archived_skills.py` (ADR-200, Phase 4
6
+ * / Wave 4b). The CLI contract is pinned — `--quiet` flag, exit
7
7
  * codes (0 contract holds, 1 violations), stdout/stderr split,
8
8
  * byte-identical finding messages, same scan trees and order, same
9
9
  * frontmatter parser, same `artefact_roots()` skill-root discovery.
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Lint Phase-4 discovery frontmatter on every artefact.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_artefact_frontmatter.py` (ADR-200,
6
- * Phase 4 / Wave 4b). The CLI contract is mirrored EXACTLY — `--quiet`
5
+ * Ported from the retired Python `src/scripts/lint_artefact_frontmatter.py` (ADR-200,
6
+ * Phase 4 / Wave 4b). The CLI contract is pinned — `--quiet`
7
7
  * flag, exit codes (0 clean, 1 violation), stdout/stderr split,
8
8
  * byte-identical finding messages (including Python-shaped list repr),
9
9
  * same scan trees and order, same `validate_frontmatter.parse_frontmatter`
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Validate the A/B bench corpora + `docs/benchmark.md` shape.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_bench_ab.py` (ADR-200, Phase 4 /
6
- * Wave 4b). The CLI contract is mirrored EXACTLY — `--quiet` flag, exit
5
+ * Ported from the retired Python `src/scripts/lint_bench_ab.py` (ADR-200, Phase 4 /
6
+ * Wave 4b). The CLI contract is pinned — `--quiet` flag, exit
7
7
  * codes (0 success, 1 first violation), stdout/stderr split, byte-identical
8
8
  * finding messages (including the `lint_bench_ab: <relpath>: <msg>` prefix
9
9
  * and the Python `repr()`-shaped value formatting), same check order, same
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Lint benchmark corpora under tests/eval/corpus-*.yaml.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_bench_corpus.py` (ADR-200, Phase 4 /
5
+ * Ported from the retired Python `src/scripts/lint_bench_corpus.py` (ADR-200, Phase 4 /
6
6
  * Wave 4b). Mirrors the Python CLI contract exactly: same scan scope + glob
7
7
  * ordering, finding messages (including Python-repr rendering of bad values),
8
8
  * stdout/stderr split, and exit codes.
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Command → flow coverage lint (the Flows primary view).
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_command_flow_coverage.py` (ADR-200,
5
+ * Ported from the retired Python `src/scripts/lint_command_flow_coverage.py` (ADR-200,
6
6
  * Phase 4 / Wave 4b). Mirrors the CLI contract EXACTLY — the `--quiet`
7
7
  * argparse flag, exit codes (0 clean, 1 violations, 3 internal error),
8
8
  * byte-identical stdout/stderr lines, the same violation ordering
@@ -2,12 +2,12 @@
2
2
  /**
3
3
  * Routing-metadata + routing-eval linter for visible commands.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_command_routing.py` (ADR-200, Phase 4 /
5
+ * Ported from the retired Python `src/scripts/lint_command_routing.py` (ADR-200, Phase 4 /
6
6
  * Wave 4b). Mirrors the Python CLI contract exactly: same `--quiet` flag,
7
7
  * scan scope (src/domains/**\/command.md, legacy packages fallback), file
8
8
  * ordering, frontmatter parsing, finding messages, stdout/stderr split, and
9
9
  * exit codes (0 clean, 1 violations, 3 internal error). No behaviour changes —
10
- * latent bugs replicated.
10
+ * historical quirks preserved (consumers pin the exact behaviour).
11
11
  *
12
12
  * Every VISIBLE command (tier 0/1) must carry:
13
13
  * - `intent` — non-empty one-line existence justification
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Lint slash-command frontmatter for the `tier:` key.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_command_tiers.py` (ADR-200, Phase 4 /
5
+ * Ported from the retired Python `src/scripts/lint_command_tiers.py` (ADR-200, Phase 4 /
6
6
  * Wave 4b). Mirrors the Python CLI contract exactly: same scan scope, file
7
7
  * ordering, finding messages, stdout/stderr split, and exit codes
8
8
  * (return-code bitwise-OR accumulation across the domain + per-root +
@@ -2,13 +2,13 @@
2
2
  /**
3
3
  * Controlled-verb linter for visible commands.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_command_verbs.py` (ADR-200,
6
- * Phase 4 / Wave 4b). The CLI contract is mirrored EXACTLY — `--baseline`
5
+ * Ported from the retired Python `src/scripts/lint_command_verbs.py` (ADR-200,
6
+ * Phase 4 / Wave 4b). The CLI contract is pinned — `--baseline`
7
7
  * / `--all` / `--quiet` flags, exit codes (0 clean, 1 violations, 3
8
8
  * internal error), stdout/stderr split, byte-identical finding messages,
9
9
  * same scan scope (forward-only git diff + working-tree status, or every
10
10
  * visible command under `--all`), and the same sorted iteration order.
11
- * snake_case kept. No behaviour changes — latent bugs replicated.
11
+ * snake_case kept. Historical quirks are preserved deliberately — tests and downstream consumers pin the exact behaviour.
12
12
  *
13
13
  * A VISIBLE command (tier 0/1) must have a leading token drawn from the
14
14
  * approved verb allowlist in `src/config/discovery/command-verbs.yml`.
@@ -312,7 +312,7 @@ function parse_args(argv: readonly string[]): ParsedArgs {
312
312
 
313
313
  function _argparse_error(message: string): never {
314
314
  // Mirror Python argparse: usage line + program error, both on stderr,
315
- // exit code 2. The prog name is the basename of the Python original.
315
+ // exit code 2. The prog name is the basename of the retired Python implementation.
316
316
  process.stderr.write(
317
317
  'usage: lint_command_verbs.py [-h] [--baseline BASELINE] [--all] [--quiet]\n',
318
318
  );
@@ -2,8 +2,8 @@
2
2
  /**
3
3
  * Commit-subject linter.
4
4
  *
5
- * TypeScript twin of `src/scripts/lint_commit_subjects.py` (ADR-200,
6
- * Phase 4 / Wave 4b). The CLI contract is mirrored EXACTLY — `--base`
5
+ * Ported from the retired Python `src/scripts/lint_commit_subjects.py` (ADR-200,
6
+ * Phase 4 / Wave 4b). The CLI contract is pinned — `--base`
7
7
  * / `--head` / `--quiet` flags, exit codes (0 clean / advisory, 1
8
8
  * violations), stdout/stderr split, byte-identical finding messages
9
9
  * (the issue strings are grepped by tests), and the same git invocation
@@ -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