@event4u/agent-config 8.1.0 → 8.2.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 (591) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +50 -297
  3. package/dist/agent-src/commands/agents/init.md +3 -3
  4. package/dist/agent-src/commands/chat-history/import.md +5 -5
  5. package/dist/agent-src/commands/chat-history.md +1 -1
  6. package/dist/agent-src/commands/condense.md +1 -1
  7. package/dist/agent-src/commands/context/create.md +1 -1
  8. package/dist/agent-src/commands/council/analysis.md +2 -2
  9. package/dist/agent-src/commands/council/default.md +3 -3
  10. package/dist/agent-src/commands/council/design.md +2 -2
  11. package/dist/agent-src/commands/council/optimize.md +1 -1
  12. package/dist/agent-src/commands/council/pr.md +2 -2
  13. package/dist/agent-src/commands/council.md +1 -1
  14. package/dist/agent-src/commands/feature/plan.md +1 -1
  15. package/dist/agent-src/commands/ghostwriter/list.md +1 -1
  16. package/dist/agent-src/commands/ghostwriter/write.md +1 -1
  17. package/dist/agent-src/commands/ghostwriter.md +1 -1
  18. package/dist/agent-src/commands/implement-ticket.md +2 -2
  19. package/dist/agent-src/commands/judge/on-diff.md +1 -1
  20. package/dist/agent-src/commands/judge/steps.md +3 -1
  21. package/dist/agent-src/commands/memory/add.md +2 -2
  22. package/dist/agent-src/commands/memory/learn-low-impact.md +1 -1
  23. package/dist/agent-src/commands/memory/load.md +1 -1
  24. package/dist/agent-src/commands/memory/mine-session.md +1 -1
  25. package/dist/agent-src/commands/memory/promote.md +1 -1
  26. package/dist/agent-src/commands/memory/propose.md +1 -1
  27. package/dist/agent-src/commands/mission/upgrade.md +1 -1
  28. package/dist/agent-src/commands/module/explore.md +3 -3
  29. package/dist/agent-src/commands/optimize/agents-dir.md +1 -1
  30. package/dist/agent-src/commands/optimize/skills.md +1 -1
  31. package/dist/agent-src/commands/optimize-project.md +1 -1
  32. package/dist/agent-src/commands/orchestrate.md +2 -2
  33. package/dist/agent-src/commands/project-analyze.md +1 -1
  34. package/dist/agent-src/commands/project-health.md +1 -1
  35. package/dist/agent-src/commands/roadmap/ai-council.md +1 -1
  36. package/dist/agent-src/commands/roadmap/create.md +2 -2
  37. package/dist/agent-src/commands/roadmap/process-full.md +3 -1
  38. package/dist/agent-src/commands/roadmap/process-phase.md +4 -2
  39. package/dist/agent-src/commands/roadmap/process-step.md +3 -1
  40. package/dist/agent-src/commands/security-audit-config.md +1 -1
  41. package/dist/agent-src/commands/sync-agent-settings.md +7 -7
  42. package/dist/agent-src/commands/sync-gitignore/fix.md +3 -3
  43. package/dist/agent-src/commands/sync-gitignore.md +4 -4
  44. package/dist/agent-src/commands/work.md +3 -3
  45. package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
  46. package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +2 -2
  47. package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +1 -1
  48. package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +8 -7
  49. package/dist/agent-src/contexts/execution/evidence-discipline.md +2 -2
  50. package/dist/agent-src/contexts/execution/roadmap-process-loop.md +9 -4
  51. package/dist/agent-src/contexts/execution/toolchain-resolver.md +10 -9
  52. package/dist/agent-src/contexts/execution/verification-mechanics.md +13 -1
  53. package/dist/agent-src/packs/README.md +1 -1
  54. package/dist/agent-src/presets/README.md +1 -1
  55. package/dist/agent-src/profiles/README.md +1 -1
  56. package/dist/agent-src/rules/architecture.md +2 -2
  57. package/dist/agent-src/rules/context-hygiene.md +2 -2
  58. package/dist/agent-src/rules/fast-path-marker-visibility.md +1 -1
  59. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +1 -1
  60. package/dist/agent-src/rules/linked-projects-onboarding-gate.md +1 -1
  61. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +3 -3
  62. package/dist/agent-src/rules/media-governance-routing.md +1 -1
  63. package/dist/agent-src/rules/no-roadmap-references.md +3 -3
  64. package/dist/agent-src/rules/preservation-guard.md +2 -2
  65. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +6 -5
  66. package/dist/agent-src/rules/roadmap-progress-sync.md +3 -3
  67. package/dist/agent-src/rules/security-sensitive-stop.md +7 -9
  68. package/dist/agent-src/rules/source-confidentiality.md +1 -1
  69. package/dist/agent-src/rules/telegraph-speak.md +1 -1
  70. package/dist/agent-src/rules/token-optimizer-maintenance.md +1 -1
  71. package/dist/agent-src/rules/ui-audit-gate.md +1 -1
  72. package/dist/agent-src/scripts/archive_completed_roadmaps.ts +22 -4
  73. package/dist/agent-src/scripts/update_roadmap_progress.ts +29 -1
  74. package/dist/agent-src/skills/accessibility-auditor/SKILL.md +3 -2
  75. package/dist/agent-src/skills/adr-create/SKILL.md +8 -6
  76. package/dist/agent-src/skills/agent-docs-writing/SKILL.md +1 -1
  77. package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +2 -2
  78. package/dist/agent-src/skills/ai-council/SKILL.md +15 -15
  79. package/dist/agent-src/skills/api-design/SKILL.md +1 -1
  80. package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -1
  81. package/dist/agent-src/skills/authz-review/SKILL.md +1 -1
  82. package/dist/agent-src/skills/blade-ui/SKILL.md +11 -10
  83. package/dist/agent-src/skills/blameless-post-mortem/SKILL.md +9 -8
  84. package/dist/agent-src/skills/code-review/SKILL.md +3 -4
  85. package/dist/agent-src/skills/command-routing/SKILL.md +3 -3
  86. package/dist/agent-src/skills/command-writing/SKILL.md +3 -3
  87. package/dist/agent-src/skills/condense-memory/SKILL.md +2 -2
  88. package/dist/agent-src/skills/context-authoring/SKILL.md +1 -1
  89. package/dist/agent-src/skills/context-document/SKILL.md +1 -1
  90. package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +1 -1
  91. package/dist/agent-src/skills/corpus-grounding/SKILL.md +16 -11
  92. package/dist/agent-src/skills/corpus-grounding/scripts/ground.ts +24 -3
  93. package/dist/agent-src/skills/dashboard-design/SKILL.md +2 -1
  94. package/dist/agent-src/skills/database/SKILL.md +2 -1
  95. package/dist/agent-src/skills/description-assist/SKILL.md +6 -6
  96. package/dist/agent-src/skills/design-intelligence/SKILL.md +6 -5
  97. package/dist/agent-src/skills/design-tokens/SKILL.md +5 -5
  98. package/dist/agent-src/skills/design-tokens/scripts/tokens.ts +24 -3
  99. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +3 -3
  100. package/dist/agent-src/skills/fe-design/SKILL.md +7 -7
  101. package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +11 -4
  102. package/dist/agent-src/skills/flux/SKILL.md +10 -9
  103. package/dist/agent-src/skills/git-workflow/SKILL.md +4 -5
  104. package/dist/agent-src/skills/guideline-writing/SKILL.md +2 -2
  105. package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +2 -2
  106. package/dist/agent-src/skills/livewire/SKILL.md +10 -9
  107. package/dist/agent-src/skills/memory-consolidation/SKILL.md +2 -2
  108. package/dist/agent-src/skills/module-detect-on-the-fly/SKILL.md +5 -5
  109. package/dist/agent-src/skills/module-management/SKILL.md +2 -2
  110. package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +11 -11
  111. package/dist/agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +6 -6
  112. package/dist/agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +1 -1
  113. package/dist/agent-src/skills/premortem/SKILL.md +1 -1
  114. package/dist/agent-src/skills/project-docs/SKILL.md +1 -1
  115. package/dist/agent-src/skills/quality-tools/SKILL.md +26 -2
  116. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +8 -7
  117. package/dist/agent-src/skills/react-shadcn-ui/scripts/shadcn_add.ts +31 -10
  118. package/dist/agent-src/skills/refine-prompt/SKILL.md +14 -14
  119. package/dist/agent-src/skills/refine-ticket/SKILL.md +24 -25
  120. package/dist/agent-src/skills/refine-ticket/detection-map.yml +1 -1
  121. package/dist/agent-src/skills/review-routing/SKILL.md +6 -7
  122. package/dist/agent-src/skills/roadmap-management/SKILL.md +11 -6
  123. package/dist/agent-src/skills/rule-refactor/SKILL.md +1 -1
  124. package/dist/agent-src/skills/rule-writing/SKILL.md +5 -5
  125. package/dist/agent-src/skills/script-writing/SKILL.md +28 -41
  126. package/dist/agent-src/skills/skill-writing/SKILL.md +3 -3
  127. package/dist/agent-src/skills/source-discovery/SKILL.md +3 -3
  128. package/dist/agent-src/skills/sql-writing/SKILL.md +2 -1
  129. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +1 -1
  130. package/dist/agent-src/skills/systematic-debugging/SKILL.md +5 -7
  131. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +2 -2
  132. package/dist/agent-src/skills/tailwind-engineer/scripts/tailwind_config_gen.ts +25 -4
  133. package/dist/agent-src/skills/token-optimizer/SKILL.md +1 -1
  134. package/dist/agent-src/skills/typography-system/SKILL.md +1 -1
  135. package/dist/agent-src/skills/validate-feature-fit/SKILL.md +5 -7
  136. package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +13 -1
  137. package/dist/agent-src/templates/agent-settings.md +34 -25
  138. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
  139. package/dist/agent-src/templates/agents/memory/incident-learnings.example.yml +1 -1
  140. package/dist/agent-src/templates/agents/proposal.example.md +4 -4
  141. package/dist/agent-src/templates/copilot-instructions.md +1 -1
  142. package/dist/agent-src/templates/github-workflows/memory-hygiene.yml +10 -10
  143. package/dist/agent-src/templates/github-workflows/pr-risk-review.yml +19 -8
  144. package/dist/agent-src/templates/github-workflows/proposal-drift.yml +11 -8
  145. package/dist/agent-src/templates/github-workflows/roadmap-progress-check.yml +10 -12
  146. package/dist/agent-src/templates/hooks/pre-commit-frontmatter +21 -11
  147. package/dist/agent-src/templates/hooks/pre-commit-roadmap-progress +43 -29
  148. package/dist/agent-src/templates/roadmaps.md +9 -4
  149. package/dist/agent-src/templates/rule.md +3 -3
  150. package/dist/agent-src/templates/scripts/README.md +6 -6
  151. package/dist/agent-src/templates/scripts/check_memory.ts +24 -2
  152. package/dist/agent-src/templates/scripts/check_memory_proposal.ts +23 -4
  153. package/dist/agent-src/templates/scripts/historical-bug-patterns.example.yml +1 -1
  154. package/dist/agent-src/templates/scripts/memory_hash.ts +24 -2
  155. package/dist/agent-src/templates/scripts/memory_lookup.ts +24 -2
  156. package/dist/agent-src/templates/scripts/memory_report.ts +24 -2
  157. package/dist/agent-src/templates/scripts/memory_signal.ts +24 -2
  158. package/dist/agent-src/templates/scripts/memory_status.ts +26 -2
  159. package/dist/agent-src/templates/scripts/ownership-map.example.yml +1 -1
  160. package/dist/agent-src/templates/scripts/pr-risk-config.example.yml +1 -1
  161. package/dist/agent-src/templates/scripts/pr_review_routing.ts +24 -3
  162. package/dist/agent-src/templates/scripts/pr_risk_review.ts +0 -0
  163. package/dist/agent-src/templates/scripts/telemetry_record.ts +24 -3
  164. package/dist/agent-src/templates/scripts/telemetry_report.ts +25 -3
  165. package/dist/agent-src/templates/scripts/telemetry_status.ts +24 -3
  166. package/dist/agent-src/templates/scripts/tier_usage_report.ts +24 -2
  167. package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +44 -10
  168. package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/_chat_history_base.ts +26 -13
  169. package/dist/agent-src/templates/skill.md +2 -2
  170. package/dist/cli/python/knowledge_ingest.js +24 -3
  171. package/dist/cli/python/knowledge_ingest.js.map +1 -1
  172. package/dist/cli/python/workspace_analytics.js +23 -3
  173. package/dist/cli/python/workspace_analytics.js.map +1 -1
  174. package/dist/cli/python/workspace_crypto.js +23 -3
  175. package/dist/cli/python/workspace_crypto.js.map +1 -1
  176. package/dist/cli/python/workspace_documents.js +23 -3
  177. package/dist/cli/python/workspace_documents.js.map +1 -1
  178. package/dist/cli/python/workspace_drive.js +24 -3
  179. package/dist/cli/python/workspace_drive.js.map +1 -1
  180. package/dist/cli/python/workspace_drive_health.js +23 -3
  181. package/dist/cli/python/workspace_drive_health.js.map +1 -1
  182. package/dist/cli/python/workspace_explain.js +23 -3
  183. package/dist/cli/python/workspace_explain.js.map +1 -1
  184. package/dist/cli/python/workspace_hosts.js +23 -3
  185. package/dist/cli/python/workspace_hosts.js.map +1 -1
  186. package/dist/cli/python/workspace_inbox.js +23 -3
  187. package/dist/cli/python/workspace_inbox.js.map +1 -1
  188. package/dist/cli/python/workspace_render.js +23 -3
  189. package/dist/cli/python/workspace_render.js.map +1 -1
  190. package/dist/cli/python/workspace_roles.js +23 -3
  191. package/dist/cli/python/workspace_roles.js.map +1 -1
  192. package/dist/cli/python/workspace_sessions.js +23 -3
  193. package/dist/cli/python/workspace_sessions.js.map +1 -1
  194. package/dist/cli/python/workspace_skills.js +23 -3
  195. package/dist/cli/python/workspace_skills.js.map +1 -1
  196. package/dist/cli/registry.js +2 -0
  197. package/dist/cli/registry.js.map +1 -1
  198. package/dist/discovery/deprecation-report.md +1 -1
  199. package/dist/discovery/discovery-manifest.json +118 -118
  200. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  201. package/dist/discovery/discovery-manifest.summary.md +2 -2
  202. package/dist/discovery/orphan-report.md +1 -1
  203. package/dist/discovery/packs.json +3 -3
  204. package/dist/discovery/trust-report.md +1 -1
  205. package/dist/discovery/workspaces.json +3 -3
  206. package/dist/install/install.mjs +67 -28
  207. package/dist/mcp/registry-manifest.json +2 -2
  208. package/dist/server/routes/settings.js +4 -4
  209. package/dist/server/routes/settings.js.map +1 -1
  210. package/dist/server/schemas/settings.js +1 -1
  211. package/dist/server/schemas/settings.js.map +1 -1
  212. package/docs/CLAIMS.md +2 -2
  213. package/docs/archive/CHANGELOG-pre-8.1.0.md +316 -0
  214. package/docs/benchmark.md +40 -0
  215. package/docs/contracts/skill-bundled-assets.md +2 -2
  216. package/docs/customization.md +1 -1
  217. package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +9 -4
  218. package/docs/guidelines/agent-infra/corpus-grounding-authoring.md +2 -2
  219. package/docs/guidelines/agent-infra/engineering-memory-data-format.md +4 -4
  220. package/docs/guidelines/agent-infra/installed-tools-manifest.md +3 -3
  221. package/docs/guidelines/agent-infra/language-and-tone-examples.md +2 -2
  222. package/docs/guidelines/agent-infra/layered-settings.md +4 -4
  223. package/docs/guidelines/agent-infra/memory-access.md +19 -18
  224. package/docs/guidelines/agent-infra/naming.md +1 -1
  225. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +5 -5
  226. package/docs/guidelines/agent-infra/role-contracts.md +1 -1
  227. package/docs/guidelines/agent-infra/security-lint-containment.md +2 -2
  228. package/docs/guidelines/agent-infra/self-improvement-pipeline.md +1 -1
  229. package/docs/guidelines/agent-infra/size-and-scope.md +1 -1
  230. package/docs/guidelines/agent-infra/skill-quality-checklist.md +5 -5
  231. package/docs/guidelines/augment-portability-patterns.md +1 -1
  232. package/docs/proof.md +1 -1
  233. package/docs/setup/per-ide/claude-code.md +10 -4
  234. package/package.json +3 -2
  235. package/src/config/agent-settings.template.yml +31 -17
  236. package/src/config/host-capabilities.yml +25 -16
  237. package/src/config/profiles/balanced.ini +5 -3
  238. package/src/scripts/_cli/cmd_analyze_session.ts +23 -4
  239. package/src/scripts/_cli/cmd_conformance.ts +23 -4
  240. package/src/scripts/_cli/cmd_doctor.ts +96 -8
  241. package/src/scripts/_cli/cmd_explain.ts +23 -4
  242. package/src/scripts/_cli/cmd_export.ts +23 -4
  243. package/src/scripts/_cli/cmd_fleet.ts +23 -4
  244. package/src/scripts/_cli/cmd_migrate.ts +23 -4
  245. package/src/scripts/_cli/cmd_preflight.ts +24 -4
  246. package/src/scripts/_cli/cmd_prune.ts +23 -4
  247. package/src/scripts/_cli/cmd_refresh.ts +23 -4
  248. package/src/scripts/_cli/cmd_settings_check.ts +23 -4
  249. package/src/scripts/_cli/cmd_settings_migrate.ts +23 -4
  250. package/src/scripts/_cli/cmd_sync.ts +23 -4
  251. package/src/scripts/_cli/cmd_uninstall.ts +23 -4
  252. package/src/scripts/_cli/cmd_update.ts +23 -4
  253. package/src/scripts/_cli/cmd_upgrade.ts +238 -9
  254. package/src/scripts/_cli/cmd_validate.ts +23 -4
  255. package/src/scripts/_cli/cmd_versions.ts +23 -4
  256. package/src/scripts/_dispatch.bash +62 -19
  257. package/src/scripts/_lib/claude_plugin.ts +83 -0
  258. package/src/scripts/_lib/knowledge_global.ts +24 -2
  259. package/src/scripts/_lib/knowledge_global_promote.ts +24 -2
  260. package/src/scripts/_lib/knowledge_global_redaction.ts +24 -2
  261. package/src/scripts/_lib/link_crypto.ts +24 -5
  262. package/src/scripts/_lib/pin_resolver.ts +24 -3
  263. package/src/scripts/adoption_report.ts +23 -4
  264. package/src/scripts/adoption_snapshot.ts +23 -1
  265. package/src/scripts/adoption_status.ts +23 -4
  266. package/src/scripts/adr/regenerate_index.ts +24 -3
  267. package/src/scripts/ai_council/airgap.ts +25 -2
  268. package/src/scripts/ai_council/compile_corpus.ts +24 -2
  269. package/src/scripts/ai_council/pricing.ts +11 -1
  270. package/src/scripts/analysis_freshness.ts +23 -4
  271. package/src/scripts/annotate_discovery.ts +23 -1
  272. package/src/scripts/apply_modules_config.ts +23 -4
  273. package/src/scripts/audit_adr_coverage.ts +23 -4
  274. package/src/scripts/audit_auto_rules.ts +23 -1
  275. package/src/scripts/audit_cloud_compatibility.ts +23 -4
  276. package/src/scripts/audit_command_surface.ts +23 -4
  277. package/src/scripts/audit_initial_context.ts +23 -3
  278. package/src/scripts/audit_likelihood.ts +23 -1
  279. package/src/scripts/audit_mcp_tools.ts +23 -3
  280. package/src/scripts/audit_overlap.ts +23 -1
  281. package/src/scripts/audit_skill_descriptions.ts +24 -2
  282. package/src/scripts/audit_skill_overlap.ts +23 -1
  283. package/src/scripts/audit_user_type_axis.ts +23 -4
  284. package/src/scripts/backfill_model_tier.ts +23 -4
  285. package/src/scripts/bench_ab_cache_dispatch.ts +23 -1
  286. package/src/scripts/bench_ab_clone.ts +23 -1
  287. package/src/scripts/bench_ab_diff.ts +23 -1
  288. package/src/scripts/bench_ab_integrity.ts +23 -1
  289. package/src/scripts/bench_ab_run.ts +23 -2
  290. package/src/scripts/bench_ab_task_runner.ts +23 -1
  291. package/src/scripts/bench_ab_tracka_run.ts +23 -2
  292. package/src/scripts/bench_ab_v2_run.ts +23 -1
  293. package/src/scripts/bench_ab_v2_stats.ts +23 -1
  294. package/src/scripts/bench_baseline_ready.ts +23 -1
  295. package/src/scripts/bench_condense_memory.ts +23 -1
  296. package/src/scripts/bench_drift_check.ts +23 -2
  297. package/src/scripts/bench_matrix.ts +23 -4
  298. package/src/scripts/bench_per_tool.ts +23 -1
  299. package/src/scripts/bench_quality_run.ts +23 -2
  300. package/src/scripts/bench_rtk_savings.ts +23 -1
  301. package/src/scripts/bench_rule_load_latency.ts +23 -2
  302. package/src/scripts/bench_run.ts +23 -2
  303. package/src/scripts/bench_runner.ts +23 -1
  304. package/src/scripts/build_cloud_bundle.ts +23 -3
  305. package/src/scripts/build_discovery_manifest.ts +23 -4
  306. package/src/scripts/build_linear_digest.ts +23 -3
  307. package/src/scripts/build_mcp_registry_manifest.ts +23 -4
  308. package/src/scripts/build_rule_trigger_matrix.ts +23 -4
  309. package/src/scripts/capture_showcase_session.ts +23 -1
  310. package/src/scripts/chat_history.ts +24 -3
  311. package/src/scripts/check_always_budget.ts +23 -2
  312. package/src/scripts/check_artefact_checksums.ts +23 -4
  313. package/src/scripts/check_augment_description_cap.ts +23 -4
  314. package/src/scripts/check_augmentignore.ts +23 -4
  315. package/src/scripts/check_beta_review_markers.ts +23 -4
  316. package/src/scripts/check_cluster_patterns.ts +23 -4
  317. package/src/scripts/check_command_count_messaging.ts +23 -4
  318. package/src/scripts/check_comparison.ts +23 -1
  319. package/src/scripts/check_condensation.ts +24 -3
  320. package/src/scripts/check_condensed_paths.ts +23 -2
  321. package/src/scripts/check_context_paths.ts +23 -4
  322. package/src/scripts/check_council_config_location.ts +23 -4
  323. package/src/scripts/check_council_layout.ts +23 -4
  324. package/src/scripts/check_council_references.ts +23 -4
  325. package/src/scripts/check_discovery_determinism.ts +24 -4
  326. package/src/scripts/check_gate_paths.ts +23 -4
  327. package/src/scripts/check_generated_artefact_headers.ts +23 -4
  328. package/src/scripts/check_generator_output_coverage.ts +23 -4
  329. package/src/scripts/check_gitignore_freshness.ts +23 -4
  330. package/src/scripts/check_iron_law_prominence.ts +23 -4
  331. package/src/scripts/check_kernel_prefix_stability.ts +0 -0
  332. package/src/scripts/check_kernel_rule_bundle.ts +23 -4
  333. package/src/scripts/check_knowledge_cards.ts +23 -1
  334. package/src/scripts/check_md_language.ts +23 -4
  335. package/src/scripts/check_media_deps.ts +24 -1
  336. package/src/scripts/check_memory.ts +24 -2
  337. package/src/scripts/check_memory_proposal.ts +23 -4
  338. package/src/scripts/check_module_management_neutral.ts +23 -4
  339. package/src/scripts/check_no_conflict_markers.ts +23 -4
  340. package/src/scripts/check_no_external_sources.ts +23 -4
  341. package/src/scripts/check_no_local_settings_committed.ts +24 -4
  342. package/src/scripts/check_no_new_legacy_path.ts +23 -4
  343. package/src/scripts/check_no_roadmap_refs.ts +23 -4
  344. package/src/scripts/check_one_off_location.ts +23 -4
  345. package/src/scripts/check_overlay_cascade_subdirs.ts +23 -4
  346. package/src/scripts/check_portability.ts +24 -3
  347. package/src/scripts/check_proposal.ts +0 -0
  348. package/src/scripts/check_public_catalog_links.ts +23 -4
  349. package/src/scripts/check_public_links.ts +23 -4
  350. package/src/scripts/check_quality_regression.ts +23 -2
  351. package/src/scripts/check_references.ts +23 -4
  352. package/src/scripts/check_release_includes_discovery.ts +23 -4
  353. package/src/scripts/check_release_pr_shape.ts +23 -4
  354. package/src/scripts/check_release_published.ts +23 -4
  355. package/src/scripts/check_release_trunk_sync.ts +23 -4
  356. package/src/scripts/check_reply_consistency.ts +23 -4
  357. package/src/scripts/check_roadmap_trackable.ts +23 -4
  358. package/src/scripts/check_role_doc_links.ts +23 -4
  359. package/src/scripts/check_safety_floor_untouched.ts +24 -4
  360. package/src/scripts/check_site_links.ts +23 -1
  361. package/src/scripts/check_skill_gaps.ts +23 -1
  362. package/src/scripts/check_skill_requires.ts +23 -4
  363. package/src/scripts/check_structural_breaking.ts +24 -4
  364. package/src/scripts/check_surface_tiers.ts +23 -4
  365. package/src/scripts/check_template_pin_drift.ts +23 -4
  366. package/src/scripts/check_test_coverage_diff.ts +23 -4
  367. package/src/scripts/check_token_optimizer_freshness.ts +23 -4
  368. package/src/scripts/check_token_quality_golden.ts +23 -2
  369. package/src/scripts/check_token_regression.ts +23 -2
  370. package/src/scripts/check_tracked_but_ignored.ts +24 -4
  371. package/src/scripts/check_trigger_evals.ts +23 -4
  372. package/src/scripts/check_trunk_drift.ts +24 -1
  373. package/src/scripts/check_update_banner.ts +23 -4
  374. package/src/scripts/ci_summary.ts +23 -4
  375. package/src/scripts/ci_time_ratio.ts +23 -4
  376. package/src/scripts/cluster_near_miss_patterns.ts +0 -0
  377. package/src/scripts/compile_router.ts +23 -4
  378. package/src/scripts/condense.ts +23 -2
  379. package/src/scripts/condense_memory.ts +24 -2
  380. package/src/scripts/config/packs.ts +24 -4
  381. package/src/scripts/config/session_profiles.ts +23 -4
  382. package/src/scripts/context_hygiene_hook.ts +24 -3
  383. package/src/scripts/cost_by_conversation.ts +23 -4
  384. package/src/scripts/cost_summary.ts +23 -4
  385. package/src/scripts/council_cli.ts +35 -7
  386. package/src/scripts/council_prune.ts +25 -2
  387. package/src/scripts/cross_repo_retrieve.ts +23 -4
  388. package/src/scripts/discovery_stats.ts +23 -4
  389. package/src/scripts/evidence_report.ts +23 -1
  390. package/src/scripts/export_replay_corpus.ts +23 -2
  391. package/src/scripts/extract_audit_patterns.ts +23 -1
  392. package/src/scripts/first_run_gate_hook.ts +24 -3
  393. package/src/scripts/gen_discovery_baseline.ts +23 -4
  394. package/src/scripts/generate_capabilities_index.ts +24 -5
  395. package/src/scripts/generate_capability_matrix.ts +23 -4
  396. package/src/scripts/generate_catalog.ts +23 -1
  397. package/src/scripts/generate_command_flows.ts +23 -4
  398. package/src/scripts/generate_cookbook.ts +23 -4
  399. package/src/scripts/generate_index.ts +23 -4
  400. package/src/scripts/generate_ownership_matrix.ts +23 -1
  401. package/src/scripts/generate_pack_manifests.ts +24 -5
  402. package/src/scripts/generate_role_experiences_catalog.ts +23 -4
  403. package/src/scripts/hooks/block_no_verify.ts +23 -4
  404. package/src/scripts/hooks/design_slop_hook.ts +24 -3
  405. package/src/scripts/hooks/dispatch_hook.ts +47 -14
  406. package/src/scripts/hooks/replay_hook.ts +23 -2
  407. package/src/scripts/hooks/rtk_wrap_hook.ts +24 -5
  408. package/src/scripts/hooks_doctor.ts +23 -2
  409. package/src/scripts/hooks_status.ts +23 -2
  410. package/src/scripts/injection_scan_hook.ts +24 -5
  411. package/src/scripts/install.ts +72 -44
  412. package/src/scripts/inventory_abstraction_budget.ts +23 -1
  413. package/src/scripts/inventory_frontmatter.ts +23 -1
  414. package/src/scripts/inventory_meta_layers.ts +23 -1
  415. package/src/scripts/iron_law_sha.ts +23 -4
  416. package/src/scripts/janitor.ts +23 -4
  417. package/src/scripts/knowledge_global_cli.ts +24 -2
  418. package/src/scripts/linked_projects_list.ts +23 -4
  419. package/src/scripts/lint_agent_security.ts +23 -4
  420. package/src/scripts/lint_agent_skill_names.ts +23 -4
  421. package/src/scripts/lint_agents_layout.ts +23 -4
  422. package/src/scripts/lint_agents_md.ts +23 -4
  423. package/src/scripts/lint_archived_skills.ts +23 -4
  424. package/src/scripts/lint_artefact_frontmatter.ts +23 -4
  425. package/src/scripts/lint_bench_ab.ts +23 -4
  426. package/src/scripts/lint_bench_corpus.ts +23 -2
  427. package/src/scripts/lint_command_flow_coverage.ts +23 -4
  428. package/src/scripts/lint_command_routing.ts +23 -4
  429. package/src/scripts/lint_command_tiers.ts +23 -2
  430. package/src/scripts/lint_command_verbs.ts +23 -4
  431. package/src/scripts/lint_commit_subjects.ts +24 -4
  432. package/src/scripts/lint_confusables.ts +25 -5
  433. package/src/scripts/lint_context_spine_usage.ts +23 -4
  434. package/src/scripts/lint_discovery_manifest.ts +23 -4
  435. package/src/scripts/lint_discovery_vocabulary.ts +23 -4
  436. package/src/scripts/lint_empty_roadmaps.ts +23 -4
  437. package/src/scripts/lint_eval_freshness.ts +23 -4
  438. package/src/scripts/lint_examples.ts +23 -4
  439. package/src/scripts/lint_explain_trace.ts +23 -4
  440. package/src/scripts/lint_featured_skills.ts +0 -0
  441. package/src/scripts/lint_flows.ts +23 -4
  442. package/src/scripts/lint_framework_leakage.ts +23 -4
  443. package/src/scripts/lint_frontmatter_boilerplate.ts +23 -4
  444. package/src/scripts/lint_ghostwriter_source.ts +23 -4
  445. package/src/scripts/lint_global_paths.ts +23 -2
  446. package/src/scripts/lint_handoffs.ts +23 -4
  447. package/src/scripts/lint_hidden_unicode.ts +24 -5
  448. package/src/scripts/lint_hook_concern_budget.ts +23 -4
  449. package/src/scripts/lint_hook_manifest.ts +23 -2
  450. package/src/scripts/lint_instruction_smuggling.ts +25 -5
  451. package/src/scripts/lint_legal_pack.ts +23 -1
  452. package/src/scripts/lint_load_context.ts +23 -4
  453. package/src/scripts/lint_marketplace.ts +24 -3
  454. package/src/scripts/lint_marketplace_install_completeness.ts +23 -4
  455. package/src/scripts/lint_mcp_config_security.ts +25 -5
  456. package/src/scripts/lint_mcp_registry_manifest.ts +23 -4
  457. package/src/scripts/lint_media_policy_linkage.ts +23 -4
  458. package/src/scripts/lint_missions.ts +23 -4
  459. package/src/scripts/lint_model_tier_coverage.ts +23 -4
  460. package/src/scripts/lint_namespace.ts +23 -4
  461. package/src/scripts/lint_namespace_collisions.ts +23 -4
  462. package/src/scripts/lint_new_skill_gate.ts +23 -4
  463. package/src/scripts/lint_no_new_atomic_commands.ts +23 -4
  464. package/src/scripts/lint_one_off_age.ts +23 -4
  465. package/src/scripts/lint_orchestration_dsl.ts +23 -4
  466. package/src/scripts/lint_orchestrator_auto_detect.ts +23 -4
  467. package/src/scripts/lint_pack_boundaries.ts +23 -4
  468. package/src/scripts/lint_pack_dependencies.ts +23 -2
  469. package/src/scripts/lint_pack_first_win.ts +23 -4
  470. package/src/scripts/lint_pack_risk_class.ts +23 -1
  471. package/src/scripts/lint_persona_governance.ts +23 -4
  472. package/src/scripts/lint_positioning.ts +23 -4
  473. package/src/scripts/lint_profile_overlay_set_only.ts +23 -4
  474. package/src/scripts/lint_readme_jargon.ts +23 -4
  475. package/src/scripts/lint_readme_size.ts +23 -4
  476. package/src/scripts/lint_regression.ts +23 -4
  477. package/src/scripts/lint_roadmap_blockers.ts +23 -4
  478. package/src/scripts/lint_roadmap_ci_steps.ts +23 -4
  479. package/src/scripts/lint_roadmap_complexity.ts +23 -4
  480. package/src/scripts/lint_roadmap_later_disposition.ts +23 -4
  481. package/src/scripts/lint_role_experiences.ts +23 -4
  482. package/src/scripts/lint_rule_interactions.ts +23 -4
  483. package/src/scripts/lint_rule_tiers.ts +24 -3
  484. package/src/scripts/lint_showcase_sessions.ts +23 -4
  485. package/src/scripts/lint_skill_frontmatter_safety.ts +25 -5
  486. package/src/scripts/lint_skill_originality.ts +23 -4
  487. package/src/scripts/lint_skill_tools.ts +23 -4
  488. package/src/scripts/lint_subagent_determinism.ts +23 -4
  489. package/src/scripts/lint_ticket_buildable.ts +23 -4
  490. package/src/scripts/lint_topics_yaml.ts +23 -4
  491. package/src/scripts/lint_trust_coherence.ts +23 -4
  492. package/src/scripts/lint_value_dashboard.ts +23 -4
  493. package/src/scripts/lint_workflow_security.ts +23 -4
  494. package/src/scripts/lint_workspace_boundary.ts +23 -4
  495. package/src/scripts/mcp_parity_smoke.ts +23 -2
  496. package/src/scripts/mcp_render.ts +23 -4
  497. package/src/scripts/mcp_telemetry_health.ts +23 -4
  498. package/src/scripts/mcp_telemetry_query.ts +23 -4
  499. package/src/scripts/mcp_telemetry_store.ts +23 -4
  500. package/src/scripts/measure_augment_budget.ts +23 -1
  501. package/src/scripts/measure_density.ts +23 -1
  502. package/src/scripts/measure_frugality_savings.ts +23 -1
  503. package/src/scripts/measure_markitdown_lift.ts +23 -1
  504. package/src/scripts/measure_patterns.ts +23 -1
  505. package/src/scripts/measure_projection_bytes.ts +23 -1
  506. package/src/scripts/measure_rule_budget.ts +23 -4
  507. package/src/scripts/measure_skill_reduction.ts +23 -1
  508. package/src/scripts/memory_hash.ts +24 -2
  509. package/src/scripts/memory_lookup.ts +24 -2
  510. package/src/scripts/memory_report.ts +24 -2
  511. package/src/scripts/memory_signal.ts +24 -2
  512. package/src/scripts/memory_status.ts +26 -2
  513. package/src/scripts/migrate_command_suggestions.ts +23 -4
  514. package/src/scripts/migrate_frontmatter_defaults.ts +23 -4
  515. package/src/scripts/migration_status.ts +25 -4
  516. package/src/scripts/mine_missing_guardrails.ts +23 -1
  517. package/src/scripts/mine_session.ts +23 -1
  518. package/src/scripts/minimal_safe_diff_hook.ts +24 -3
  519. package/src/scripts/new_skill.ts +23 -3
  520. package/src/scripts/onboarding_gate_hook.ts +24 -3
  521. package/src/scripts/parity/coverage_diff.ts +25 -3
  522. package/src/scripts/parity/phase_gate.ts +25 -4
  523. package/src/scripts/parity/replay.ts +25 -3
  524. package/src/scripts/pattern_share.ts +23 -4
  525. package/src/scripts/plan_physical_move.ts +23 -4
  526. package/src/scripts/prediction-pool/poisson_sim.ts +24 -3
  527. package/src/scripts/prediction-pool/pool_winsim.ts +24 -3
  528. package/src/scripts/prediction-pool/score_ev.ts +24 -3
  529. package/src/scripts/print_required_checks.ts +24 -4
  530. package/src/scripts/probe_host_compliance.ts +23 -2
  531. package/src/scripts/probe_projection_fidelity.ts +23 -1
  532. package/src/scripts/probe_skill_registration.ts +24 -2
  533. package/src/scripts/profile_staleness_hook.ts +24 -3
  534. package/src/scripts/profile_use.ts +23 -4
  535. package/src/scripts/project_thin_rules.ts +23 -3
  536. package/src/scripts/propose_modules_config.ts +23 -4
  537. package/src/scripts/prototype_lint_contradictions.ts +23 -1
  538. package/src/scripts/prove_pack_extractable.ts +23 -4
  539. package/src/scripts/readme_linter.ts +23 -3
  540. package/src/scripts/redact_hook_capture.ts +23 -4
  541. package/src/scripts/refine_ticket_detect.ts +23 -4
  542. package/src/scripts/release.ts +23 -4
  543. package/src/scripts/render_benchmark_composite.ts +23 -4
  544. package/src/scripts/render_benchmark_md.ts +23 -4
  545. package/src/scripts/roadmap_progress_hook.ts +46 -16
  546. package/src/scripts/run_skill_evals.ts +23 -4
  547. package/src/scripts/runtime_dispatcher.ts +23 -4
  548. package/src/scripts/runtime_registry.ts +23 -4
  549. package/src/scripts/score_skill_selection.ts +23 -1
  550. package/src/scripts/security_audit_config.ts +24 -5
  551. package/src/scripts/skill_collision_clusters.ts +23 -4
  552. package/src/scripts/skill_discovery.ts +23 -4
  553. package/src/scripts/skill_linter.ts +23 -2
  554. package/src/scripts/skill_preview.ts +23 -4
  555. package/src/scripts/skill_tools/audit_persona_coverage.ts +23 -1
  556. package/src/scripts/skill_tools/audit_user_type_coverage.ts +23 -1
  557. package/src/scripts/skill_tools/run_block_d_eval.ts +23 -1
  558. package/src/scripts/skill_tools/score_skill_relevance.ts +23 -1
  559. package/src/scripts/skill_tools/suggest_skill_for_task.ts +24 -1
  560. package/src/scripts/skill_usage_collect.ts +23 -4
  561. package/src/scripts/smoke_path_resolution.ts +23 -4
  562. package/src/scripts/smoke_quickstart.ts +23 -4
  563. package/src/scripts/snapshot_agent_outputs.ts +23 -4
  564. package/src/scripts/spotcheck_thin_root.ts +23 -4
  565. package/src/scripts/sync_agent_settings.ts +23 -4
  566. package/src/scripts/sync_github_metadata.ts +23 -4
  567. package/src/scripts/sync_gitignore.ts +23 -4
  568. package/src/scripts/telegraph_stats.ts +23 -4
  569. package/src/scripts/tool_registry.ts +24 -4
  570. package/src/scripts/trigger_coverage.ts +23 -4
  571. package/src/scripts/update_counts.ts +23 -4
  572. package/src/scripts/update_prices.ts +23 -1
  573. package/src/scripts/validate_agent_settings.ts +23 -4
  574. package/src/scripts/validate_decision_engine.ts +23 -4
  575. package/src/scripts/validate_discovery_manifest.ts +23 -4
  576. package/src/scripts/validate_frontmatter.ts +23 -2
  577. package/src/scripts/validate_pack_yaml.ts +0 -0
  578. package/src/scripts/validate_safe_paths.ts +24 -4
  579. package/src/scripts/validate_telegraph_carveouts.ts +23 -4
  580. package/src/scripts/verify_before_complete_hook.ts +24 -3
  581. package/src/scripts/verify_physical_move.ts +23 -4
  582. package/src/scripts/wrapper_freshness_hook.ts +107 -8
  583. package/tests/fixtures/hooks/README.md +92 -0
  584. package/tests/fixtures/hooks/agent_error.json +7 -0
  585. package/tests/fixtures/hooks/post_tool_use.json +13 -0
  586. package/tests/fixtures/hooks/pre_compact.json +7 -0
  587. package/tests/fixtures/hooks/pre_tool_use.json +9 -0
  588. package/tests/fixtures/hooks/session_end.json +6 -0
  589. package/tests/fixtures/hooks/session_start.json +6 -0
  590. package/tests/fixtures/hooks/stop.json +6 -0
  591. package/tests/fixtures/hooks/user_prompt_submit.json +7 -0
@@ -26,7 +26,7 @@
26
26
  import * as fs from 'node:fs';
27
27
  import * as path from 'node:path';
28
28
  import process from 'node:process';
29
- import { pathToFileURL } from 'node:url';
29
+ import { fileURLToPath, pathToFileURL } from 'node:url';
30
30
 
31
31
  // ── Python-shim helpers ──────────────────────────────────────────────────
32
32
 
@@ -867,9 +867,30 @@ function _exists(p: string): boolean {
867
867
  }
868
868
 
869
869
  // `raise SystemExit(main())` — set process.exitCode, never call process.exit.
870
+ function _isCliEntry(): boolean {
871
+ if (process.argv[1] === undefined) {
872
+ return false;
873
+ }
874
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
875
+ if (import.meta.url === argvUrl) {
876
+ return true;
877
+ }
878
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
879
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
880
+ // import.meta.url is the resolved real path while argv[1] keeps the
881
+ // symlink path. Compare realpaths so the entry guard still fires
882
+ // (without this the CLI silently no-ops when run through a symlink).
883
+ try {
884
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
885
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
886
+ return here === argv;
887
+ } catch {
888
+ return false;
889
+ }
890
+ }
891
+
870
892
  const _INVOKED_DIRECTLY =
871
- typeof process.argv[1] === 'string' &&
872
- import.meta.url === pathToFileURL(process.argv[1]).href;
893
+ _isCliEntry();
873
894
 
874
895
  if (_INVOKED_DIRECTLY) {
875
896
  process.exitCode = main();
@@ -37,7 +37,7 @@ Do NOT use when:
37
37
 
38
38
  ### 0. Inspect stack and input
39
39
 
40
- 1. Read `state.stack.frontend` — set by `scripts/work_engine/stack/detect.py` (one of `blade-livewire-flux`, `react-shadcn`, `vue`, `plain`).
40
+ 1. Read `state.stack.frontend` — set by `scripts/work_engine/stack/detect.ts` (one of `blade-livewire-flux`, `react-shadcn`, `vue`, `plain`).
41
41
  2. Read `state.input` — the request being processed. The audit must answer: "what already exists that is similar to this request?"
42
42
 
43
43
  ### 1. Enumerate components and templates
@@ -207,7 +207,7 @@ so the import path is uniform.
207
207
 
208
208
  ## Gotcha
209
209
 
210
- - The model tends to skip the audit and start designing straight from the request — the dispatcher gate at `directives/ui/audit.py` enforces "no design without audit findings". Never treat this skill as optional for non-trivial UI.
210
+ - The model tends to skip the audit and start designing straight from the request — the dispatcher gate at `directives/ui/audit.ts` enforces "no design without audit findings". Never treat this skill as optional for non-trivial UI.
211
211
  - The model tends to misidentify a single Tailwind utility as a "design token" — tokens come from the config or `:root`, not from class strings in templates.
212
212
  - Don't assume a Radix-only `package.json` means shadcn — shadcn requires `components.json` at repo root.
213
213
  - `state.ui_audit.shadcn_inventory.version` is often missing; the shadcn CLI does not always pin itself in `package.json`. Record `null` rather than guessing.
@@ -227,7 +227,7 @@ consistency) or introduce a corrective direction change.
227
227
 
228
228
  ## Do NOT
229
229
 
230
- - Do NOT advance to `directives/ui/design.py` or `apply.py` if `state.ui_audit` is empty.
230
+ - Do NOT advance to `directives/ui/design.ts` or `apply.ts` if `state.ui_audit` is empty.
231
231
  - Do NOT advance to design or apply if `state.ui_audit.greenfield == true` and `state.ui_audit.greenfield_decision` is unset.
232
232
  - Do NOT silently skip the greenfield halt because "Tailwind has defaults" — the user picks the path explicitly.
233
233
  - Do NOT write paths outside the project root into the inventory.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  model_tier: medium
3
3
  name: fe-design
4
- description: "Reference for frontend-design heuristics — component architecture, layout patterns, form/table design, responsive strategy, a11y, UX principles. Stack-agnostic; cited by directives/ui/design.py."
4
+ description: "Reference for frontend-design heuristics — component architecture, layout patterns, form/table design, responsive strategy, a11y, UX principles. Stack-agnostic; cited by directives/ui/design.ts."
5
5
  personas:
6
6
  - frontend-engineer
7
7
  domain: engineering
@@ -21,11 +21,11 @@ own the flow.
21
21
 
22
22
  | Concern | Owner |
23
23
  |---|---|
24
- | Layout / states / microcopy lock | [`directives/ui/design.py`](../../templates/scripts/work_engine/directives/ui/design.py) |
25
- | Stack-dispatched implementation | [`directives/ui/apply.py`](../../templates/scripts/work_engine/directives/ui/apply.py) → `blade-ui` / `livewire` / `flux` / `react-shadcn-ui` |
24
+ | Layout / states / microcopy lock | [`directives/ui/design.ts`](../../templates/scripts/work_engine/directives/ui/design.ts) |
25
+ | Stack-dispatched implementation | [`directives/ui/apply.ts`](../../templates/scripts/work_engine/directives/ui/apply.ts) → `blade-ui` / `livewire` / `flux` / `react-shadcn-ui` |
26
26
  | Existing-component inventory + tokens | [`existing-ui-audit`](../existing-ui-audit/SKILL.md) (mandatory pre-step) |
27
27
  | Grounded selection (style, color tokens, typography, pattern, anti-patterns) | [`design-intelligence`](../design-intelligence/SKILL.md) — corpus-grounded; this skill stays the heuristic layer and *invokes* it |
28
- | Design-review polish loop | [`directives/ui/review.py`](../../templates/scripts/work_engine/directives/ui/review.py) + [`directives/ui/polish.py`](../../templates/scripts/work_engine/directives/ui/polish.py) |
28
+ | Design-review polish loop | [`directives/ui/review.ts`](../../templates/scripts/work_engine/directives/ui/review.ts) + [`directives/ui/polish.ts`](../../templates/scripts/work_engine/directives/ui/polish.ts) |
29
29
 
30
30
  ## When to use
31
31
 
@@ -45,7 +45,7 @@ Do NOT use this skill to:
45
45
 
46
46
  ## How the directive set cites this skill
47
47
 
48
- `directives/ui/design.py` produces the design brief (layout, components,
48
+ `directives/ui/design.ts` produces the design brief (layout, components,
49
49
  states, microcopy, a11y). Selection decisions (style, semantic color
50
50
  tokens, typography pairing, layout pattern, anti-patterns) come **grounded**
51
51
  from [`design-intelligence`](../design-intelligence/SKILL.md) — run its
@@ -317,7 +317,7 @@ Surface the chosen direction in the design brief as a one-line statement (e.g. `
317
317
 
318
318
  ## Procedure
319
319
 
320
- When `directives/ui/design.py` (or any caller) cites this skill:
320
+ When `directives/ui/design.ts` (or any caller) cites this skill:
321
321
 
322
322
  1. **Inspect `state.ui_audit` first** — review the audit produced by [`existing-ui-audit`](../existing-ui-audit/SKILL.md); it is mandatory. Stop and request the audit if missing.
323
323
  2. **Pick the smallest matching section** — Component Architecture, Form Design, Table Design, Responsive Strategy, Accessibility, or UX Principles. Cite by H2/H3 heading, never paste the whole skill.
@@ -364,4 +364,4 @@ approach or explicitly invoke the override condition in the design brief.
364
364
  - Do NOT skip mobile viewport testing.
365
365
  - Do NOT use fixed pixel widths for responsive layouts.
366
366
  - Do NOT ignore accessibility requirements.
367
- - Do NOT use this skill as an executor — it is a reference cited by `directives/ui/design.py`.
367
+ - Do NOT use this skill as an executor — it is a reference cited by `directives/ui/design.ts`.
@@ -60,8 +60,13 @@ or [`fix-pr-comments`](../../commands/fix-pr-comments.md) instead.
60
60
 
61
61
  ### 2. Verify readiness
62
62
 
63
- Run the full end-of-work gate before presenting any options — see
64
- [`verify-before-complete`](../verify-before-complete/SKILL.md):
63
+ Run the end-of-work gate before presenting any options — see
64
+ [`verify-before-complete`](../verify-before-complete/SKILL.md).
65
+ Steps 1–3 run only when `quality.local_auto_run: true`; under the
66
+ default (`false` / missing) skip them without asking — user runs
67
+ quality tools manually, remote CI on the PR is the authoritative gate,
68
+ readiness report says *"quality gates delegated to remote CI"* instead
69
+ of claiming them green:
65
70
 
66
71
  1. Targeted tests green
67
72
  2. Full test suite green
@@ -69,8 +74,8 @@ Run the full end-of-work gate before presenting any options — see
69
74
  4. `git status` clean — nothing unstaged, no stray files
70
75
  5. Branch is pushed or explicitly marked local-only
71
76
 
72
- If any step fails → **stop**. Report the failure, do not present ship
73
- options. Fixing the failure comes first.
77
+ If any executed step fails → **stop**. Report the failure, do not
78
+ present ship options. Fixing the failure comes first.
74
79
 
75
80
  ### 3. Determine the base branch
76
81
 
@@ -236,6 +241,8 @@ After the chosen option completes, report:
236
241
  Before reporting "done" after this skill runs:
237
242
 
238
243
  * [ ] Full gate (tests + quality pipeline) verified green in this turn
244
+ when `quality.local_auto_run: true` — under the default `false`
245
+ the report states "quality gates delegated to remote CI" instead
239
246
  * [ ] Base branch determined and confirmed with the user when ambiguous
240
247
  * [ ] Exactly four numbered options were presented, no narration added
241
248
  * [ ] User's choice recorded literally, not reinterpreted
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  model_tier: medium
3
3
  name: flux
4
- description: "Use when the project uses `livewire/flux` — dispatched by `directives/ui/{apply,review,polish}.py`. Covers Flux components, slots, variants, and form primitives."
4
+ description: "Use when the project uses `livewire/flux` — dispatched by `directives/ui/{apply,review,polish}.ts`. Covers Flux components, slots, variants, and form primitives."
5
5
  domain: engineering
6
6
  workspaces:
7
7
  - engineering
@@ -17,7 +17,8 @@ install:
17
17
  # flux
18
18
 
19
19
  > **Grounded stack guidance:** Tailwind-layer Do/Don't + docs URLs via
20
- > `ground.py search --manifest <skills-root>/design-intelligence/data/manifest.json
20
+ > `./scripts-run <skills-root>/corpus-grounding/scripts/ground search
21
+ > --manifest <skills-root>/design-intelligence/data/manifest.json
21
22
  > --stack html-tailwind "<topic>"`. See
22
23
  > [`design-intelligence`](../design-intelligence/SKILL.md).
23
24
 
@@ -25,15 +26,15 @@ install:
25
26
 
26
27
  `flux` is the **primitive-library executor** for projects on the
27
28
  Livewire + Flux stack. It is invoked by
28
- [`directives/ui/apply.py`](../../templates/scripts/work_engine/directives/ui/apply.py)
29
- once the design brief is locked, and revisited by `review.py` /
30
- `polish.py` during the design-review loop. It does **not** own the
29
+ [`directives/ui/apply.ts`](../../templates/scripts/work_engine/directives/ui/apply.ts)
30
+ once the design brief is locked, and revisited by `review.ts` /
31
+ `polish.ts` during the design-review loop. It does **not** own the
31
32
  flow, does **not** drive the audit, and does **not** lock the design.
32
33
 
33
34
  | Concern | Owner |
34
35
  |---|---|
35
36
  | Audit + token inventory (mandatory pre-step) | [`existing-ui-audit`](../existing-ui-audit/SKILL.md) |
36
- | Design brief (layout / states / microcopy) | [`directives/ui/design.py`](../../templates/scripts/work_engine/directives/ui/design.py) |
37
+ | Design brief (layout / states / microcopy) | [`directives/ui/design.ts`](../../templates/scripts/work_engine/directives/ui/design.ts) |
37
38
  | Universal design heuristics | [`fe-design`](../fe-design/SKILL.md) |
38
39
  | Component logic / state / actions | [`livewire`](../livewire/SKILL.md) |
39
40
  | Static Blade partials | [`blade-ui`](../blade-ui/SKILL.md) |
@@ -42,7 +43,7 @@ flow, does **not** drive the audit, and does **not** lock the design.
42
43
 
43
44
  Cite this skill when:
44
45
 
45
- - The project depends on `livewire/flux` and `directives/ui/apply.py` dispatches Flux primitives
46
+ - The project depends on `livewire/flux` and `directives/ui/apply.ts` dispatches Flux primitives
46
47
  - Building forms, modals, dropdowns, toasts, or other standard UI elements that Flux already provides
47
48
 
48
49
  Do NOT use when:
@@ -84,8 +85,8 @@ Do NOT use when:
84
85
 
85
86
  ### Review pass — a11y findings + preview envelope
86
87
 
87
- When this skill is dispatched by `directives/ui/review.py` (test slot)
88
- or `directives/ui/polish.py` (verify slot) — i.e. a review/polish run,
88
+ When this skill is dispatched by `directives/ui/review.ts` (test slot)
89
+ or `directives/ui/polish.ts` (verify slot) — i.e. a review/polish run,
89
90
  not the initial apply — it also emits:
90
91
 
91
92
  - `state.ui_review.a11y` — `{violations: [{rule, selector, severity}, ...],
@@ -64,10 +64,9 @@ gh pr view <number> --json number,state,mergeStateStatus,mergedAt,baseRefName
64
64
 
65
65
  ## Procedure: Before opening a PR
66
66
 
67
- 1. Run the project's quality pipeline (see `quality-tools` skill) — typically: type-checker → auto-fixer → linter → type-checker.
68
- 2. Run the project's test command — detect from manifest: `php artisan test` / `vendor/bin/phpunit` (PHP), `npm test` / `pnpm test` / `vitest` / `jest` (JS-TS), `pytest` (Python), `cargo test` (Rust), `go test ./...` (Go).
69
- 3. Rebase onto `main`.
70
- 4. Fill in PR template completely.
67
+ 1. Quality pipeline + tests — only when `quality.local_auto_run: true` (see [`quality-tools` § Execution policy](../quality-tools/SKILL.md)): type-checker → auto-fixer → linter → type-checker, then the project's test command (detect from manifest: `php artisan test` / `vendor/bin/phpunit` (PHP), `npm test` / `pnpm test` / `vitest` / `jest` (JS-TS), `pytest` (Python), `cargo test` (Rust), `go test ./...` (Go)). Under the default (`false` / missing) skip both — remote CI on the PR is the gate; say so instead of claiming they passed.
68
+ 2. Rebase onto `main`.
69
+ 3. Fill in PR template completely.
71
70
 
72
71
  ## Procedure: Finish a branch
73
72
 
@@ -83,7 +82,7 @@ Work complete. What would you like to do?
83
82
 
84
83
  ### Option 1: Push and create PR
85
84
 
86
- 1. Run quality pipeline + tests.
85
+ 1. Run quality pipeline + tests (only when `quality.local_auto_run: true`; default `false` → skip, remote CI is the gate).
87
86
  2. `git push -u origin <branch>`.
88
87
  3. `gh pr create` using PR template.
89
88
 
@@ -123,7 +123,7 @@ Above the split signal, break by sub-topic into sibling files in the same folder
123
123
 
124
124
  1. Complete guideline at `docs/guidelines/{topic}/{name}.md`
125
125
  2. At least one skill or rule linking to it
126
- 3. Linter + `check_references.py` clean
126
+ 3. Linter + `check_references.ts` clean
127
127
  4. `bash scripts/condense.sh --sync` confirmation
128
128
 
129
129
  ## Gotchas
@@ -167,7 +167,7 @@ to every guideline you author.
167
167
  ## Cloud Behavior
168
168
 
169
169
  On cloud surfaces (Claude.ai Web, Skills API) the package's
170
- `scripts/check_references.py`, `scripts/skill_linter.py`, and `task`
170
+ `scripts/check_references.ts`, `scripts/skill_linter.ts`, and `task`
171
171
  runner are not reachable. The skill still applies — with prose-only
172
172
  validation:
173
173
 
@@ -29,7 +29,7 @@ Use this skill when:
29
29
  * Mining the audit log (`agents/runtime/state/audit/<YYYY-MM>.jsonl`,
30
30
  [`audit-log-v1`](../../../docs/contracts/audit-log-v1.md)) surfaced
31
31
  a repeated phase pattern via
32
- [`extract_audit_patterns.py`](../../../scripts/extract_audit_patterns.py)
32
+ [`extract_audit_patterns.ts`](../../../scripts/extract_audit_patterns.ts)
33
33
  — the pattern's `count` ≥ 2 already satisfies the repetition gate
34
34
 
35
35
  Do not use this skill when:
@@ -334,7 +334,7 @@ the gap is documented in its skill body.
334
334
  ## Audit-derived learnings (optional source)
335
335
 
336
336
  When the input is a pattern surfaced by
337
- [`extract_audit_patterns.py`](../../../scripts/extract_audit_patterns.py)
337
+ [`extract_audit_patterns.ts`](../../../scripts/extract_audit_patterns.ts)
338
338
  mining `agents/runtime/state/audit/<YYYY-MM>.jsonl`
339
339
  ([`audit-log-v1`](../../../docs/contracts/audit-log-v1.md)):
340
340
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  model_tier: medium
3
3
  name: livewire
4
- description: "Use when the project's frontend stack is Livewire — dispatched by `directives/ui/{apply,review,polish}.py`. Covers reactive state, events, lifecycle hooks, and component/view separation."
4
+ description: "Use when the project's frontend stack is Livewire — dispatched by `directives/ui/{apply,review,polish}.ts`. Covers reactive state, events, lifecycle hooks, and component/view separation."
5
5
  domain: engineering
6
6
  workspaces:
7
7
  - engineering
@@ -17,22 +17,23 @@ install:
17
17
  # livewire
18
18
 
19
19
  > **Grounded stack guidance:** pull idiomatic Blade/UI Do/Don't + docs URLs
20
- > via `ground.py search --manifest <skills-root>/design-intelligence/data/manifest.json
20
+ > via `./scripts-run <skills-root>/corpus-grounding/scripts/ground search
21
+ > --manifest <skills-root>/design-intelligence/data/manifest.json
21
22
  > --stack laravel "<topic>"` (UI-scoped corpus). See
22
23
  > [`design-intelligence`](../design-intelligence/SKILL.md).
23
24
 
24
25
  ## Positioning — dispatched, not standalone
25
26
 
26
27
  `livewire` is the **apply-step executor** for the Livewire stack. It is
27
- invoked by [`directives/ui/apply.py`](../../templates/scripts/work_engine/directives/ui/apply.py)
28
- once the design brief is locked, and revisited by `review.py` /
29
- `polish.py` during the design-review loop. It does **not** own the
28
+ invoked by [`directives/ui/apply.ts`](../../templates/scripts/work_engine/directives/ui/apply.ts)
29
+ once the design brief is locked, and revisited by `review.ts` /
30
+ `polish.ts` during the design-review loop. It does **not** own the
30
31
  flow, does **not** drive the audit, and does **not** lock the design.
31
32
 
32
33
  | Concern | Owner |
33
34
  |---|---|
34
35
  | Audit + token inventory (mandatory pre-step) | [`existing-ui-audit`](../existing-ui-audit/SKILL.md) |
35
- | Design brief (layout / states / microcopy) | [`directives/ui/design.py`](../../templates/scripts/work_engine/directives/ui/design.py) |
36
+ | Design brief (layout / states / microcopy) | [`directives/ui/design.ts`](../../templates/scripts/work_engine/directives/ui/design.ts) |
36
37
  | Universal design heuristics | [`fe-design`](../fe-design/SKILL.md) |
37
38
  | Static Blade partials inside the view | [`blade-ui`](../blade-ui/SKILL.md) |
38
39
  | Flux primitives inside the view | [`flux`](../flux/SKILL.md) |
@@ -41,7 +42,7 @@ flow, does **not** drive the audit, and does **not** lock the design.
41
42
 
42
43
  Cite this skill when:
43
44
 
44
- - `state.stack.frontend == "livewire"` and `directives/ui/apply.py` dispatches to this skill
45
+ - `state.stack.frontend == "livewire"` and `directives/ui/apply.ts` dispatches to this skill
45
46
  - Editing or creating Livewire components — reactive state, forms, tables, real-time updates
46
47
 
47
48
  Do NOT use when:
@@ -96,8 +97,8 @@ Do NOT use when:
96
97
 
97
98
  ### Review pass — a11y findings + preview envelope
98
99
 
99
- When this skill is dispatched by `directives/ui/review.py` (test slot)
100
- or `directives/ui/polish.py` (verify slot) — i.e. a review/polish run,
100
+ When this skill is dispatched by `directives/ui/review.ts` (test slot)
101
+ or `directives/ui/polish.ts` (verify slot) — i.e. a review/polish run,
101
102
  not the initial apply — it also emits:
102
103
 
103
104
  - `state.ui_review.a11y` — `{violations: [{rule, selector, severity}, ...],
@@ -234,7 +234,7 @@ The miner is host-agnostic by design. A `TranscriptAdapter` for host
234
234
  `.agent-settings.yml` under `memory.redact_patterns`.
235
235
 
236
236
  The GATHER implementation lives in the single mining command
237
- `/memory:mine-session` (`scripts/mine_session.py`). It reads the
237
+ `/memory:mine-session` (`scripts/mine_session.ts`). It reads the
238
238
  **cross-host** chat-history JSONL log (`agents/runtime/.agent-chat-history`,
239
239
  written by platform hooks on every host), falling back to the per-host
240
240
  Claude-Code transcript when the log is absent. `--mode=[signals|proposals|both]`
@@ -299,7 +299,7 @@ in-task notes stay in-task and are discarded with the task.
299
299
  - A fact tagged `gotcha + invariant` lands in the `gotcha` JSONL
300
300
  (primary tag); the promoter reads tag intersection to decide the
301
301
  curated YAML target.
302
- - Date-discipline: the `check_memory.py` linter rejects
302
+ - Date-discipline: the `check_memory.ts` linter rejects
303
303
  `yesterday|today|tomorrow|last/next/this week|month|year` in curated
304
304
  YAML without an `YYYY-MM-DD` anchor within ±20 chars. Re-anchor
305
305
  before commit.
@@ -32,14 +32,14 @@ the config — once, without nagging.
32
32
  1. `modules.enabled` is `true` (already configured — use `module-management`).
33
33
  2. `modules.detection_acknowledged` is `true` (user already answered).
34
34
  3. The path matches a `_NOISE_SEGMENTS` entry (`vendor`, `node_modules`,
35
- `dist`, `build`, etc.) — see `scripts/_lib/module_detection.py`.
35
+ `dist`, `build`, etc.) — see `scripts/_lib/module_detection.ts`.
36
36
 
37
37
  Confirm both flags via `get_modules_config()` before running detection.
38
38
 
39
39
  ## Procedure
40
40
 
41
41
  1. **Detect** — call `detect_module_roots(project_root)` from
42
- `scripts/_lib/module_detection.py`. Returns a list of
42
+ `scripts/_lib/module_detection.ts`. Returns a list of
43
43
  `ModuleCandidate` ordered `high → medium` confidence.
44
44
  2. **Bail early** — if the list is empty OR every candidate has
45
45
  `confidence: "medium"` AND no candidate matches the path the agent
@@ -65,7 +65,7 @@ Confirm both flags via `get_modules_config()` before running detection.
65
65
 
66
66
  4. **Persist the choice**:
67
67
 
68
- - **Option 1** — build the payload (matches `propose_modules_config.py
68
+ - **Option 1** — build the payload (matches `propose_modules_config.ts
69
69
  --json` shape, includes `detection_acknowledged: true`), pipe into
70
70
  `./scripts-run src/scripts/apply_modules_config --project <root>`.
71
71
  - **Option 2** — run `./scripts-run src/scripts/apply_modules_config
@@ -122,9 +122,9 @@ Confirm both flags via `get_modules_config()` before running detection.
122
122
  ## See also
123
123
 
124
124
  - `module-management` — the active skill once modules are configured.
125
- - `scripts/_lib/module_detection.py` — `detect_module_roots()` +
125
+ - `scripts/_lib/module_detection.ts` — `detect_module_roots()` +
126
126
  `is_module_like_path()` helpers.
127
- - `scripts/apply_modules_config.py` — persistence with
127
+ - `scripts/apply_modules_config.ts` — persistence with
128
128
  `--acknowledge-only` for option 2.
129
129
  - `commands/agents/init.md` — the explicit re-entry point if the user
130
130
  wants to revisit detection later.
@@ -43,7 +43,7 @@ stack-native auto-loading, or duplicating existing modules.
43
43
  ## Procedure: Work with modules
44
44
 
45
45
  1. Read `modules:` block from `.agent-project-settings.yml` via the
46
- loader (`get_modules_config()` in `scripts/_lib/agent_settings.py`).
46
+ loader (`get_modules_config()` in `scripts/_lib/agent_settings.ts`).
47
47
  2. For each path in `modules.root_paths`, read the module's `README.md`
48
48
  (or `package.json` / `pyproject.toml` description) for purpose.
49
49
  3. If module-level agent docs exist under
@@ -58,7 +58,7 @@ When `modules.enabled` is unset / false, the skill consults the
58
58
  auto-detection table in
59
59
  [`/module explore` Step 1](../../commands/module/explore.md) — same six
60
60
  stack shapes, fallback only. The skill never writes the `modules:`
61
- block automatically; that is `propose_modules_config.py` plus user
61
+ block automatically; that is `propose_modules_config.ts` plus user
62
62
  confirmation per
63
63
  [`/agents init`](../../commands/agents/init.md) Step 7.
64
64
 
@@ -62,7 +62,7 @@ more. **Always optimize the pool's points, never the truth of the match.**
62
62
  from real markets **or** the executed Poisson helper — never a claimed
63
63
  "I ran 10,000 simulations".
64
64
  - **Scorelines computed, not guessed.** EV-max tip per match from the executed
65
- grid optimiser (`score_ev.py`, step 4a), never the eye. A 3:2 / 4:1 / 1:4 in
65
+ grid optimiser (`score_ev.ts`, step 4a), never the eye. A 3:2 / 4:1 / 1:4 in
66
66
  the output = signature of a skipped computation.
67
67
  - **One-sentence justification** per answer. Short.
68
68
 
@@ -265,16 +265,16 @@ gate — the skill never enters or submits anything.
265
265
  base from a sharp-weighted consensus across several; an outlier is a flag to
266
266
  investigate, not a number to copy.
267
267
  - **Tipping the modal result, not the EV-maximal one.** The single most likely
268
- scoreline rarely maximizes partial points — run `score_ev.py` across the
268
+ scoreline rarely maximizes partial points — run `score_ev.ts` across the
269
269
  result grid, don't eyeball the favourite.
270
270
  - **Hand-picking a high scoreline.** 3:2 / 4:1 / 1:4 never EV-max under partial
271
271
  points — moderate favourites peak at 1:0 / 2:0 / 2:1. A high tip = grid
272
- skipped; run `score_ev.py`.
272
+ skipped; run `score_ev.ts`.
273
273
  - **Under-tipping draws.** A correct draw banks the goal-difference tier on
274
274
  every draw scoreline, so a close match can want 1:1 (or 0:0). Let the grid
275
275
  decide; the eye tips too few draws.
276
276
  - **"Rough Kelly" variance for a large pool.** Don't guess deviation amount —
277
- run `pool_winsim.py`; returns the exact flips that raise P(finish 1st) most
277
+ run `pool_winsim.ts`; returns the exact flips that raise P(finish 1st) most
278
278
  per unit EV given up.
279
279
  - **Forgetting to de-vig.** Raw bookmaker odds sum to >100%; treating them as
280
280
  probabilities inflates the favourite. Remove the margin **per book** before
@@ -282,18 +282,18 @@ gate — the skill never enters or submits anything.
282
282
  - **Contrarian under fixed points.** Deviating "to stand out" only helps under
283
283
  quote/rarity rules or a win-a-large-pool goal — otherwise it burns EV.
284
284
  - **Claimed-but-unrun simulation.** "I ran 10,000 tournaments" without
285
- executing `poisson_sim.py` is hallucinated — run the code or use outright odds.
285
+ executing `poisson_sim.ts` is hallucinated — run the code or use outright odds.
286
286
 
287
287
  ## Do NOT
288
288
 
289
289
  - Leave any open pool question (bonus / award / special) unanswered.
290
290
  - Build the base from a single bookmaker, or skip de-vigging before aggregating.
291
291
  - Tip the most likely result instead of the EV-maximal one.
292
- - Hand-pick a scoreline instead of running `score_ev.py` — never emit a
292
+ - Hand-pick a scoreline instead of running `score_ev.ts` — never emit a
293
293
  3:2 / 4:1 / 1:4 tip, never EV-max under partial points.
294
294
  - Go contrarian under standard fixed-point scoring with a "place well" goal.
295
- - Guess large-pool variance ("rough Kelly") instead of running `pool_winsim.py`.
296
- - Report Monte-Carlo numbers without running `poisson_sim.py` / `pool_winsim.py`.
295
+ - Guess large-pool variance ("rough Kelly") instead of running `pool_winsim.ts`.
296
+ - Report Monte-Carlo numbers without running `poisson_sim.ts` / `pool_winsim.ts`.
297
297
  - Treat raw odds as probabilities without removing the vig.
298
298
  - Give betting or financial advice — this optimizes a game; the human submits.
299
299
 
@@ -306,9 +306,9 @@ gate — the skill never enters or submits anything.
306
306
  question taxonomy with a per-type method.
307
307
  - [`reference/ev-fixtures.md`](reference/ev-fixtures.md) — known-good
308
308
  rules+odds → EV examples.
309
- - [`scripts/prediction-pool/score_ev.py`](../../../../scripts/prediction-pool/score_ev.py) —
309
+ - [`scripts/prediction-pool/score_ev.ts`](../../../../scripts/prediction-pool/score_ev.ts) —
310
310
  executed exact-score EV optimiser (step 4a; λ + rule → EV-max scoreline).
311
- - [`scripts/prediction-pool/pool_winsim.py`](../../../../scripts/prediction-pool/pool_winsim.py) —
311
+ - [`scripts/prediction-pool/pool_winsim.ts`](../../../../scripts/prediction-pool/pool_winsim.ts) —
312
312
  executed field model + P(finish 1st) simulator and flip-finder (step 4b).
313
- - [`scripts/prediction-pool/poisson_sim.py`](../../../../scripts/prediction-pool/poisson_sim.py) —
313
+ - [`scripts/prediction-pool/poisson_sim.ts`](../../../../scripts/prediction-pool/poisson_sim.ts) —
314
314
  the executed tournament simulator (step 5).
@@ -17,7 +17,7 @@ No quote rule. No strategy limit. Goal: place well.
17
17
 
18
18
  **Match (football):** Poisson on market xG ≈ 1.7 : 0.8.
19
19
 
20
- **Script-verified** (`score_ev.py --lh 1.7 --la 0.8 --exact 4 --diff 3 --tendency 2`):
20
+ **Script-verified** (`score_ev.ts --lh 1.7 --la 0.8 --exact 4 --diff 3 --tendency 2`):
21
21
 
22
22
  ```
23
23
  EV-max tip : 1:0 (EV 1.574)
@@ -65,7 +65,7 @@ Away 22%.
65
65
 
66
66
  **Reasoning:** N ≥ 100 and you behind → pure EV converges with the field, can't
67
67
  create the gap; target is **P(finish 1st)**, not E(points). Don't guess the
68
- variance: run `pool_winsim.py` with the pool's `N` and your `my_lead`. Shows
68
+ variance: run `pool_winsim.ts` with the pool's `N` and your `my_lead`. Shows
69
69
  P(win) collapsing under EV-max-everywhere, returns the **specific flips**
70
70
  (higher-variance scorelines on high-consensus matches) that raise P(win) most
71
71
  per unit EV given up.
@@ -132,7 +132,7 @@ medium.) **Not** team B — the modal-player trap.
132
132
 
133
133
  **Rule:** kicktipp 2 / 3 / 5 — tendency = 2, goal-difference = 3, exact = 5.
134
134
 
135
- **Matches (script-verified, `score_ev.py … --tendency 2 --diff 3 --exact 5`):**
135
+ **Matches (script-verified, `score_ev.ts … --tendency 2 --diff 3 --exact 5`):**
136
136
 
137
137
  | Match (λ) | EV-max | a high tip's EV | verdict |
138
138
  |---|---|---|---|
@@ -148,7 +148,7 @@ EV-max.** Adding goals — especially the underdog's — only shrinks the hit
148
148
  probability without protecting the diff/tendency points.
149
149
 
150
150
  **Known-good behaviour:** any 3:2 / 4:x / x:4 tip in the run → the grid wasn't
151
- run; `score_ev.py` is the gate. (Risk: low; correctness fixture, not strategy.)
151
+ run; `score_ev.ts` is the gate. (Risk: low; correctness fixture, not strategy.)
152
152
 
153
153
  ---
154
154
 
@@ -156,7 +156,7 @@ run; `score_ev.py` is the gate. (Risk: low; correctness fixture, not strategy.)
156
156
 
157
157
  **Rule:** kicktipp 2 / 3 / 5 (as Fixture 7).
158
158
 
159
- **Matches (script-verified, `score_ev.py … --tendency 2 --diff 3 --exact 5`):**
159
+ **Matches (script-verified, `score_ev.ts … --tendency 2 --diff 3 --exact 5`):**
160
160
 
161
161
  ```
162
162
  λ 1.0:1.0 -> EV-max 0:0 (1.196), 1:1 tied (1.196) # a draw IS the optimum
@@ -171,5 +171,5 @@ As λ rises past ~1.1 a one-goal win edges ahead, but the draw stays in the top
171
171
  tips. Grid surfaces this; intuition suppresses it.
172
172
 
173
173
  **Known-good behaviour:** a tip set with **near-zero draws across many
174
- low-scoring even matches** is a red flag — re-run `score_ev.py`, let the grid
174
+ low-scoring even matches** is a red flag — re-run `score_ev.ts`, let the grid
175
175
  decide, don't default every close game to 1:0.
@@ -86,7 +86,7 @@ does. Optimize each on expected points under its point weight.
86
86
 
87
87
  | Question type | Example | Method |
88
88
  |---|---|---|
89
- | **Outright winner** | "Who wins the tournament?" | Outright "to win" market, consensus per A; or `poisson_sim.py` `title_pct`. EV-max under the question's points. |
89
+ | **Outright winner** | "Who wins the tournament?" | Outright "to win" market, consensus per A; or `poisson_sim.ts` `title_pct`. EV-max under the question's points. |
90
90
  | **Group / stage** | "Who wins group X?", "Who advances?" | "To win group" / "to qualify" markets; or `advance_pct` from the simulator. |
91
91
  | **Finalists / matchup** | "Who reaches the final?" | "To reach final" market per team; simulator pairing is approximate — prefer the market. |
92
92
  | **Top scorer (player)** | "Tournament top scorer?" | "Top goalscorer" outright market, consensus per A; EV-max player (favourite unless rarity scoring rewards a longer shot). |
@@ -109,7 +109,7 @@ If the analysis surfaces a pattern worth preserving for future decisions:
109
109
  not a prediction; label scenarios as prospective.
110
110
  - Do NOT auto-promote memory candidates — `/memory propose` is the intake;
111
111
  `/memory promote` requires explicit human action and passes
112
- `check_memory_proposal.py`.
112
+ `check_memory_proposal.ts`.
113
113
 
114
114
  ## Gotchas
115
115
 
@@ -79,7 +79,7 @@ regulations, workflows, and edge cases that the agent needs to understand the pr
79
79
  3. **List `agents/reference/docs/`** — read detail docs for the specific topic you're working on.
80
80
  4. **Check module docs** — if working in a module, resolve `{module_root}` from
81
81
  `modules.root_paths` and `{agent_folder}` from `modules.agent_folder` (see
82
- `scripts/_lib/agent_settings.py::enumerate_modules()`), then check:
82
+ `scripts/_lib/agent_settings.ts::enumerate_modules()`), then check:
83
83
  - `{module_root}/{Module}/{agent_folder}/` — module-specific docs
84
84
  - `{module_root}/{Module}/{agent_folder}/settings/contexts/` — module-specific contexts (if exists)
85
85
  - `{module_root}/{Module}/{agent_folder}/settings/contexts/domain/` — module-specific domain knowledge (if exists)
@@ -23,6 +23,30 @@ Use this skill whenever running or configuring code quality tools:
23
23
  - **PHP**: PHPStan (static analysis), Rector (automated refactoring), ECS (coding standards)
24
24
  - **JS/TS**: Biome (linting + formatting), TypeScript compiler (type checking), Jest/Vitest (tests)
25
25
 
26
+ ## Execution policy — on demand only, never proactive
27
+
28
+ ```
29
+ NEVER RUN QUALITY TOOLS PROACTIVELY WHEN quality.local_auto_run IS
30
+ false OR MISSING (THE DEFAULT). DO NOT ASK WHETHER TO RUN THEM.
31
+ THE USER RUNS THEM MANUALLY. REMOTE CI IS THE AUTHORITATIVE GATE.
32
+ ```
33
+
34
+ Toolchains differ per language and project, often unknown to the agent —
35
+ discovery + execution burns time and tokens. Under the default, exactly
36
+ three triggers justify running a quality tool:
37
+
38
+ 1. **Explicit ask this turn** — user says so or invokes `/quality-fix`.
39
+ 2. **Concrete CI failure** — remote pipeline reports a failing check;
40
+ run exactly that failing check to reproduce and fix (`/fix:ci` is
41
+ the canonical flow).
42
+ 3. **New-gate carve-out** — change itself introduces a NEW CI gate,
43
+ smoke test, or test file; must run once locally to be proven.
44
+
45
+ `quality.local_auto_run: true` restores legacy autonomous behaviour
46
+ (run pipeline when work is ready for verification). When runs are
47
+ suppressed, completion message says *"quality gates delegated to
48
+ remote CI"* — never that the tools passed.
49
+
26
50
  ## Language detection
27
51
 
28
52
  Detect which tools to run based on **what files were changed**:
@@ -37,9 +61,9 @@ If both PHP and JS/TS files changed → run **both** pipelines.
37
61
 
38
62
  ## Related rules and guidelines
39
63
 
40
- - `verify-before-complete` rule — timing: run quality tools ONCE at the end, not after each edit
64
+ - `verify-before-complete` rule — no pass claims without fresh output; suppressed runs surfaced as "delegated to remote CI", never claimed
41
65
  - `php-coding` rule → PHPStan section — inline ignores, PHPDoc rules
42
- - `verify-before-complete` rule — must run quality checks before claiming work is done
66
+ - `contexts/execution/verification-mechanics.md` — Gate zero (`local_auto_run`) + timing when `true` (quality tools ONCE at the end, not after each edit)
43
67
  - [`testing-anti-patterns`](../testing-anti-patterns/SKILL.md) and
44
68
  [`process-anti-patterns.md`](../testing-anti-patterns/process-anti-patterns.md) —
45
69
  test-side rationalizations these tools cannot catch (e.g. "CI is red,