@event4u/agent-config 8.0.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 (593) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +53 -568
  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/commit-policy.md +10 -0
  58. package/dist/agent-src/rules/context-hygiene.md +2 -2
  59. package/dist/agent-src/rules/fast-path-marker-visibility.md +1 -1
  60. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +1 -1
  61. package/dist/agent-src/rules/linked-projects-onboarding-gate.md +1 -1
  62. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +3 -3
  63. package/dist/agent-src/rules/media-governance-routing.md +1 -1
  64. package/dist/agent-src/rules/no-roadmap-references.md +3 -3
  65. package/dist/agent-src/rules/preservation-guard.md +2 -2
  66. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +6 -5
  67. package/dist/agent-src/rules/roadmap-progress-sync.md +3 -3
  68. package/dist/agent-src/rules/security-sensitive-stop.md +7 -9
  69. package/dist/agent-src/rules/source-confidentiality.md +1 -1
  70. package/dist/agent-src/rules/telegraph-speak.md +1 -1
  71. package/dist/agent-src/rules/token-optimizer-maintenance.md +1 -1
  72. package/dist/agent-src/rules/ui-audit-gate.md +1 -1
  73. package/dist/agent-src/scripts/archive_completed_roadmaps.ts +22 -4
  74. package/dist/agent-src/scripts/update_roadmap_progress.ts +29 -1
  75. package/dist/agent-src/skills/accessibility-auditor/SKILL.md +3 -2
  76. package/dist/agent-src/skills/adr-create/SKILL.md +8 -6
  77. package/dist/agent-src/skills/agent-docs-writing/SKILL.md +1 -1
  78. package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +2 -2
  79. package/dist/agent-src/skills/ai-council/SKILL.md +15 -15
  80. package/dist/agent-src/skills/api-design/SKILL.md +1 -1
  81. package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -1
  82. package/dist/agent-src/skills/authz-review/SKILL.md +1 -1
  83. package/dist/agent-src/skills/blade-ui/SKILL.md +11 -10
  84. package/dist/agent-src/skills/blameless-post-mortem/SKILL.md +9 -8
  85. package/dist/agent-src/skills/code-review/SKILL.md +3 -4
  86. package/dist/agent-src/skills/command-routing/SKILL.md +3 -3
  87. package/dist/agent-src/skills/command-writing/SKILL.md +3 -3
  88. package/dist/agent-src/skills/condense-memory/SKILL.md +2 -2
  89. package/dist/agent-src/skills/context-authoring/SKILL.md +1 -1
  90. package/dist/agent-src/skills/context-document/SKILL.md +1 -1
  91. package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +1 -1
  92. package/dist/agent-src/skills/corpus-grounding/SKILL.md +16 -11
  93. package/dist/agent-src/skills/corpus-grounding/scripts/ground.ts +24 -3
  94. package/dist/agent-src/skills/dashboard-design/SKILL.md +2 -1
  95. package/dist/agent-src/skills/database/SKILL.md +2 -1
  96. package/dist/agent-src/skills/description-assist/SKILL.md +6 -6
  97. package/dist/agent-src/skills/design-intelligence/SKILL.md +6 -5
  98. package/dist/agent-src/skills/design-tokens/SKILL.md +5 -5
  99. package/dist/agent-src/skills/design-tokens/scripts/tokens.ts +24 -3
  100. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +3 -3
  101. package/dist/agent-src/skills/fe-design/SKILL.md +7 -7
  102. package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +11 -4
  103. package/dist/agent-src/skills/flux/SKILL.md +10 -9
  104. package/dist/agent-src/skills/git-workflow/SKILL.md +4 -5
  105. package/dist/agent-src/skills/guideline-writing/SKILL.md +2 -2
  106. package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +2 -2
  107. package/dist/agent-src/skills/livewire/SKILL.md +10 -9
  108. package/dist/agent-src/skills/memory-consolidation/SKILL.md +2 -2
  109. package/dist/agent-src/skills/module-detect-on-the-fly/SKILL.md +5 -5
  110. package/dist/agent-src/skills/module-management/SKILL.md +2 -2
  111. package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +11 -11
  112. package/dist/agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +6 -6
  113. package/dist/agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +1 -1
  114. package/dist/agent-src/skills/premortem/SKILL.md +1 -1
  115. package/dist/agent-src/skills/project-docs/SKILL.md +1 -1
  116. package/dist/agent-src/skills/quality-tools/SKILL.md +26 -2
  117. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +8 -7
  118. package/dist/agent-src/skills/react-shadcn-ui/scripts/shadcn_add.ts +31 -10
  119. package/dist/agent-src/skills/refine-prompt/SKILL.md +14 -14
  120. package/dist/agent-src/skills/refine-ticket/SKILL.md +24 -25
  121. package/dist/agent-src/skills/refine-ticket/detection-map.yml +1 -1
  122. package/dist/agent-src/skills/review-routing/SKILL.md +6 -7
  123. package/dist/agent-src/skills/roadmap-management/SKILL.md +11 -6
  124. package/dist/agent-src/skills/rule-refactor/SKILL.md +1 -1
  125. package/dist/agent-src/skills/rule-writing/SKILL.md +5 -5
  126. package/dist/agent-src/skills/script-writing/SKILL.md +28 -41
  127. package/dist/agent-src/skills/skill-writing/SKILL.md +3 -3
  128. package/dist/agent-src/skills/source-discovery/SKILL.md +3 -3
  129. package/dist/agent-src/skills/sql-writing/SKILL.md +2 -1
  130. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +1 -1
  131. package/dist/agent-src/skills/systematic-debugging/SKILL.md +5 -7
  132. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +2 -2
  133. package/dist/agent-src/skills/tailwind-engineer/scripts/tailwind_config_gen.ts +25 -4
  134. package/dist/agent-src/skills/token-optimizer/SKILL.md +1 -1
  135. package/dist/agent-src/skills/typography-system/SKILL.md +1 -1
  136. package/dist/agent-src/skills/validate-feature-fit/SKILL.md +5 -7
  137. package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +13 -1
  138. package/dist/agent-src/templates/agent-settings.md +34 -25
  139. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
  140. package/dist/agent-src/templates/agents/memory/incident-learnings.example.yml +1 -1
  141. package/dist/agent-src/templates/agents/proposal.example.md +4 -4
  142. package/dist/agent-src/templates/copilot-instructions.md +1 -1
  143. package/dist/agent-src/templates/github-workflows/memory-hygiene.yml +10 -10
  144. package/dist/agent-src/templates/github-workflows/pr-risk-review.yml +19 -8
  145. package/dist/agent-src/templates/github-workflows/proposal-drift.yml +11 -8
  146. package/dist/agent-src/templates/github-workflows/roadmap-progress-check.yml +10 -12
  147. package/dist/agent-src/templates/hooks/pre-commit-frontmatter +21 -11
  148. package/dist/agent-src/templates/hooks/pre-commit-roadmap-progress +43 -29
  149. package/dist/agent-src/templates/roadmaps.md +9 -4
  150. package/dist/agent-src/templates/rule.md +3 -3
  151. package/dist/agent-src/templates/scripts/README.md +6 -6
  152. package/dist/agent-src/templates/scripts/check_memory.ts +24 -2
  153. package/dist/agent-src/templates/scripts/check_memory_proposal.ts +23 -4
  154. package/dist/agent-src/templates/scripts/historical-bug-patterns.example.yml +1 -1
  155. package/dist/agent-src/templates/scripts/memory_hash.ts +24 -2
  156. package/dist/agent-src/templates/scripts/memory_lookup.ts +24 -2
  157. package/dist/agent-src/templates/scripts/memory_report.ts +24 -2
  158. package/dist/agent-src/templates/scripts/memory_signal.ts +24 -2
  159. package/dist/agent-src/templates/scripts/memory_status.ts +26 -2
  160. package/dist/agent-src/templates/scripts/ownership-map.example.yml +1 -1
  161. package/dist/agent-src/templates/scripts/pr-risk-config.example.yml +1 -1
  162. package/dist/agent-src/templates/scripts/pr_review_routing.ts +24 -3
  163. package/dist/agent-src/templates/scripts/pr_risk_review.ts +0 -0
  164. package/dist/agent-src/templates/scripts/telemetry_record.ts +24 -3
  165. package/dist/agent-src/templates/scripts/telemetry_report.ts +25 -3
  166. package/dist/agent-src/templates/scripts/telemetry_status.ts +24 -3
  167. package/dist/agent-src/templates/scripts/tier_usage_report.ts +24 -2
  168. package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +44 -10
  169. package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/_chat_history_base.ts +26 -13
  170. package/dist/agent-src/templates/skill.md +2 -2
  171. package/dist/cli/python/knowledge_ingest.js +24 -3
  172. package/dist/cli/python/knowledge_ingest.js.map +1 -1
  173. package/dist/cli/python/workspace_analytics.js +23 -3
  174. package/dist/cli/python/workspace_analytics.js.map +1 -1
  175. package/dist/cli/python/workspace_crypto.js +23 -3
  176. package/dist/cli/python/workspace_crypto.js.map +1 -1
  177. package/dist/cli/python/workspace_documents.js +23 -3
  178. package/dist/cli/python/workspace_documents.js.map +1 -1
  179. package/dist/cli/python/workspace_drive.js +24 -3
  180. package/dist/cli/python/workspace_drive.js.map +1 -1
  181. package/dist/cli/python/workspace_drive_health.js +23 -3
  182. package/dist/cli/python/workspace_drive_health.js.map +1 -1
  183. package/dist/cli/python/workspace_explain.js +23 -3
  184. package/dist/cli/python/workspace_explain.js.map +1 -1
  185. package/dist/cli/python/workspace_hosts.js +23 -3
  186. package/dist/cli/python/workspace_hosts.js.map +1 -1
  187. package/dist/cli/python/workspace_inbox.js +23 -3
  188. package/dist/cli/python/workspace_inbox.js.map +1 -1
  189. package/dist/cli/python/workspace_render.js +23 -3
  190. package/dist/cli/python/workspace_render.js.map +1 -1
  191. package/dist/cli/python/workspace_roles.js +23 -3
  192. package/dist/cli/python/workspace_roles.js.map +1 -1
  193. package/dist/cli/python/workspace_sessions.js +23 -3
  194. package/dist/cli/python/workspace_sessions.js.map +1 -1
  195. package/dist/cli/python/workspace_skills.js +23 -3
  196. package/dist/cli/python/workspace_skills.js.map +1 -1
  197. package/dist/cli/registry.js +2 -0
  198. package/dist/cli/registry.js.map +1 -1
  199. package/dist/discovery/deprecation-report.md +1 -1
  200. package/dist/discovery/discovery-manifest.json +119 -119
  201. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  202. package/dist/discovery/discovery-manifest.summary.md +2 -2
  203. package/dist/discovery/orphan-report.md +1 -1
  204. package/dist/discovery/packs.json +3 -3
  205. package/dist/discovery/trust-report.md +1 -1
  206. package/dist/discovery/workspaces.json +3 -3
  207. package/dist/install/install.mjs +67 -28
  208. package/dist/mcp/registry-manifest.json +2 -2
  209. package/dist/server/routes/settings.js +4 -4
  210. package/dist/server/routes/settings.js.map +1 -1
  211. package/dist/server/schemas/settings.js +1 -1
  212. package/dist/server/schemas/settings.js.map +1 -1
  213. package/docs/CLAIMS.md +2 -2
  214. package/docs/archive/CHANGELOG-pre-8.0.0.md +301 -0
  215. package/docs/archive/CHANGELOG-pre-8.1.0.md +316 -0
  216. package/docs/benchmark.md +40 -0
  217. package/docs/contracts/skill-bundled-assets.md +2 -2
  218. package/docs/customization.md +1 -1
  219. package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +9 -4
  220. package/docs/guidelines/agent-infra/corpus-grounding-authoring.md +2 -2
  221. package/docs/guidelines/agent-infra/engineering-memory-data-format.md +4 -4
  222. package/docs/guidelines/agent-infra/installed-tools-manifest.md +3 -3
  223. package/docs/guidelines/agent-infra/language-and-tone-examples.md +2 -2
  224. package/docs/guidelines/agent-infra/layered-settings.md +4 -4
  225. package/docs/guidelines/agent-infra/memory-access.md +19 -18
  226. package/docs/guidelines/agent-infra/naming.md +1 -1
  227. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +5 -5
  228. package/docs/guidelines/agent-infra/role-contracts.md +1 -1
  229. package/docs/guidelines/agent-infra/security-lint-containment.md +2 -2
  230. package/docs/guidelines/agent-infra/self-improvement-pipeline.md +1 -1
  231. package/docs/guidelines/agent-infra/size-and-scope.md +1 -1
  232. package/docs/guidelines/agent-infra/skill-quality-checklist.md +5 -5
  233. package/docs/guidelines/augment-portability-patterns.md +1 -1
  234. package/docs/proof.md +1 -1
  235. package/docs/setup/per-ide/claude-code.md +10 -4
  236. package/package.json +3 -2
  237. package/src/config/agent-settings.template.yml +31 -17
  238. package/src/config/host-capabilities.yml +25 -16
  239. package/src/config/profiles/balanced.ini +5 -3
  240. package/src/scripts/_cli/cmd_analyze_session.ts +23 -4
  241. package/src/scripts/_cli/cmd_conformance.ts +23 -4
  242. package/src/scripts/_cli/cmd_doctor.ts +96 -8
  243. package/src/scripts/_cli/cmd_explain.ts +23 -4
  244. package/src/scripts/_cli/cmd_export.ts +23 -4
  245. package/src/scripts/_cli/cmd_fleet.ts +23 -4
  246. package/src/scripts/_cli/cmd_migrate.ts +23 -4
  247. package/src/scripts/_cli/cmd_preflight.ts +24 -4
  248. package/src/scripts/_cli/cmd_prune.ts +23 -4
  249. package/src/scripts/_cli/cmd_refresh.ts +23 -4
  250. package/src/scripts/_cli/cmd_settings_check.ts +23 -4
  251. package/src/scripts/_cli/cmd_settings_migrate.ts +23 -4
  252. package/src/scripts/_cli/cmd_sync.ts +23 -4
  253. package/src/scripts/_cli/cmd_uninstall.ts +23 -4
  254. package/src/scripts/_cli/cmd_update.ts +23 -4
  255. package/src/scripts/_cli/cmd_upgrade.ts +238 -9
  256. package/src/scripts/_cli/cmd_validate.ts +23 -4
  257. package/src/scripts/_cli/cmd_versions.ts +23 -4
  258. package/src/scripts/_dispatch.bash +62 -19
  259. package/src/scripts/_lib/claude_plugin.ts +83 -0
  260. package/src/scripts/_lib/knowledge_global.ts +24 -2
  261. package/src/scripts/_lib/knowledge_global_promote.ts +24 -2
  262. package/src/scripts/_lib/knowledge_global_redaction.ts +24 -2
  263. package/src/scripts/_lib/link_crypto.ts +24 -5
  264. package/src/scripts/_lib/pin_resolver.ts +24 -3
  265. package/src/scripts/adoption_report.ts +23 -4
  266. package/src/scripts/adoption_snapshot.ts +23 -1
  267. package/src/scripts/adoption_status.ts +23 -4
  268. package/src/scripts/adr/regenerate_index.ts +24 -3
  269. package/src/scripts/ai_council/airgap.ts +25 -2
  270. package/src/scripts/ai_council/compile_corpus.ts +24 -2
  271. package/src/scripts/ai_council/pricing.ts +11 -1
  272. package/src/scripts/analysis_freshness.ts +23 -4
  273. package/src/scripts/annotate_discovery.ts +23 -1
  274. package/src/scripts/apply_modules_config.ts +23 -4
  275. package/src/scripts/audit_adr_coverage.ts +23 -4
  276. package/src/scripts/audit_auto_rules.ts +23 -1
  277. package/src/scripts/audit_cloud_compatibility.ts +23 -4
  278. package/src/scripts/audit_command_surface.ts +23 -4
  279. package/src/scripts/audit_initial_context.ts +23 -3
  280. package/src/scripts/audit_likelihood.ts +23 -1
  281. package/src/scripts/audit_mcp_tools.ts +23 -3
  282. package/src/scripts/audit_overlap.ts +23 -1
  283. package/src/scripts/audit_skill_descriptions.ts +24 -2
  284. package/src/scripts/audit_skill_overlap.ts +23 -1
  285. package/src/scripts/audit_user_type_axis.ts +23 -4
  286. package/src/scripts/backfill_model_tier.ts +23 -4
  287. package/src/scripts/bench_ab_cache_dispatch.ts +23 -1
  288. package/src/scripts/bench_ab_clone.ts +23 -1
  289. package/src/scripts/bench_ab_diff.ts +23 -1
  290. package/src/scripts/bench_ab_integrity.ts +23 -1
  291. package/src/scripts/bench_ab_run.ts +23 -2
  292. package/src/scripts/bench_ab_task_runner.ts +23 -1
  293. package/src/scripts/bench_ab_tracka_run.ts +23 -2
  294. package/src/scripts/bench_ab_v2_run.ts +23 -1
  295. package/src/scripts/bench_ab_v2_stats.ts +23 -1
  296. package/src/scripts/bench_baseline_ready.ts +23 -1
  297. package/src/scripts/bench_condense_memory.ts +23 -1
  298. package/src/scripts/bench_drift_check.ts +23 -2
  299. package/src/scripts/bench_matrix.ts +23 -4
  300. package/src/scripts/bench_per_tool.ts +23 -1
  301. package/src/scripts/bench_quality_run.ts +23 -2
  302. package/src/scripts/bench_rtk_savings.ts +23 -1
  303. package/src/scripts/bench_rule_load_latency.ts +23 -2
  304. package/src/scripts/bench_run.ts +23 -2
  305. package/src/scripts/bench_runner.ts +23 -1
  306. package/src/scripts/build_cloud_bundle.ts +23 -3
  307. package/src/scripts/build_discovery_manifest.ts +23 -4
  308. package/src/scripts/build_linear_digest.ts +23 -3
  309. package/src/scripts/build_mcp_registry_manifest.ts +23 -4
  310. package/src/scripts/build_rule_trigger_matrix.ts +23 -4
  311. package/src/scripts/capture_showcase_session.ts +23 -1
  312. package/src/scripts/chat_history.ts +24 -3
  313. package/src/scripts/check_always_budget.ts +23 -2
  314. package/src/scripts/check_artefact_checksums.ts +23 -4
  315. package/src/scripts/check_augment_description_cap.ts +23 -4
  316. package/src/scripts/check_augmentignore.ts +23 -4
  317. package/src/scripts/check_beta_review_markers.ts +23 -4
  318. package/src/scripts/check_cluster_patterns.ts +23 -4
  319. package/src/scripts/check_command_count_messaging.ts +23 -4
  320. package/src/scripts/check_comparison.ts +23 -1
  321. package/src/scripts/check_condensation.ts +24 -3
  322. package/src/scripts/check_condensed_paths.ts +23 -2
  323. package/src/scripts/check_context_paths.ts +23 -4
  324. package/src/scripts/check_council_config_location.ts +23 -4
  325. package/src/scripts/check_council_layout.ts +23 -4
  326. package/src/scripts/check_council_references.ts +23 -4
  327. package/src/scripts/check_discovery_determinism.ts +24 -4
  328. package/src/scripts/check_gate_paths.ts +23 -4
  329. package/src/scripts/check_generated_artefact_headers.ts +23 -4
  330. package/src/scripts/check_generator_output_coverage.ts +23 -4
  331. package/src/scripts/check_gitignore_freshness.ts +23 -4
  332. package/src/scripts/check_iron_law_prominence.ts +23 -4
  333. package/src/scripts/check_kernel_prefix_stability.ts +0 -0
  334. package/src/scripts/check_kernel_rule_bundle.ts +23 -4
  335. package/src/scripts/check_knowledge_cards.ts +23 -1
  336. package/src/scripts/check_md_language.ts +23 -4
  337. package/src/scripts/check_media_deps.ts +24 -1
  338. package/src/scripts/check_memory.ts +24 -2
  339. package/src/scripts/check_memory_proposal.ts +23 -4
  340. package/src/scripts/check_module_management_neutral.ts +23 -4
  341. package/src/scripts/check_no_conflict_markers.ts +23 -4
  342. package/src/scripts/check_no_external_sources.ts +23 -4
  343. package/src/scripts/check_no_local_settings_committed.ts +24 -4
  344. package/src/scripts/check_no_new_legacy_path.ts +23 -4
  345. package/src/scripts/check_no_roadmap_refs.ts +23 -4
  346. package/src/scripts/check_one_off_location.ts +23 -4
  347. package/src/scripts/check_overlay_cascade_subdirs.ts +23 -4
  348. package/src/scripts/check_portability.ts +24 -3
  349. package/src/scripts/check_proposal.ts +0 -0
  350. package/src/scripts/check_public_catalog_links.ts +23 -4
  351. package/src/scripts/check_public_links.ts +23 -4
  352. package/src/scripts/check_quality_regression.ts +23 -2
  353. package/src/scripts/check_references.ts +23 -4
  354. package/src/scripts/check_release_includes_discovery.ts +23 -4
  355. package/src/scripts/check_release_pr_shape.ts +23 -4
  356. package/src/scripts/check_release_published.ts +23 -4
  357. package/src/scripts/check_release_trunk_sync.ts +23 -4
  358. package/src/scripts/check_reply_consistency.ts +23 -4
  359. package/src/scripts/check_roadmap_trackable.ts +23 -4
  360. package/src/scripts/check_role_doc_links.ts +23 -4
  361. package/src/scripts/check_safety_floor_untouched.ts +24 -4
  362. package/src/scripts/check_site_links.ts +23 -1
  363. package/src/scripts/check_skill_gaps.ts +23 -1
  364. package/src/scripts/check_skill_requires.ts +23 -4
  365. package/src/scripts/check_structural_breaking.ts +24 -4
  366. package/src/scripts/check_surface_tiers.ts +23 -4
  367. package/src/scripts/check_template_pin_drift.ts +23 -4
  368. package/src/scripts/check_test_coverage_diff.ts +23 -4
  369. package/src/scripts/check_token_optimizer_freshness.ts +23 -4
  370. package/src/scripts/check_token_quality_golden.ts +23 -2
  371. package/src/scripts/check_token_regression.ts +23 -2
  372. package/src/scripts/check_tracked_but_ignored.ts +24 -4
  373. package/src/scripts/check_trigger_evals.ts +23 -4
  374. package/src/scripts/check_trunk_drift.ts +24 -1
  375. package/src/scripts/check_update_banner.ts +23 -4
  376. package/src/scripts/ci_summary.ts +23 -4
  377. package/src/scripts/ci_time_ratio.ts +23 -4
  378. package/src/scripts/cluster_near_miss_patterns.ts +0 -0
  379. package/src/scripts/compile_router.ts +23 -4
  380. package/src/scripts/condense.ts +23 -2
  381. package/src/scripts/condense_memory.ts +24 -2
  382. package/src/scripts/config/packs.ts +24 -4
  383. package/src/scripts/config/session_profiles.ts +23 -4
  384. package/src/scripts/context_hygiene_hook.ts +24 -3
  385. package/src/scripts/cost_by_conversation.ts +23 -4
  386. package/src/scripts/cost_summary.ts +23 -4
  387. package/src/scripts/council_cli.ts +35 -7
  388. package/src/scripts/council_prune.ts +25 -2
  389. package/src/scripts/cross_repo_retrieve.ts +23 -4
  390. package/src/scripts/discovery_stats.ts +23 -4
  391. package/src/scripts/evidence_report.ts +23 -1
  392. package/src/scripts/export_replay_corpus.ts +23 -2
  393. package/src/scripts/extract_audit_patterns.ts +23 -1
  394. package/src/scripts/first_run_gate_hook.ts +24 -3
  395. package/src/scripts/gen_discovery_baseline.ts +23 -4
  396. package/src/scripts/generate_capabilities_index.ts +24 -5
  397. package/src/scripts/generate_capability_matrix.ts +23 -4
  398. package/src/scripts/generate_catalog.ts +23 -1
  399. package/src/scripts/generate_command_flows.ts +23 -4
  400. package/src/scripts/generate_cookbook.ts +23 -4
  401. package/src/scripts/generate_index.ts +23 -4
  402. package/src/scripts/generate_ownership_matrix.ts +23 -1
  403. package/src/scripts/generate_pack_manifests.ts +24 -5
  404. package/src/scripts/generate_role_experiences_catalog.ts +23 -4
  405. package/src/scripts/hooks/block_no_verify.ts +23 -4
  406. package/src/scripts/hooks/design_slop_hook.ts +24 -3
  407. package/src/scripts/hooks/dispatch_hook.ts +47 -14
  408. package/src/scripts/hooks/replay_hook.ts +23 -2
  409. package/src/scripts/hooks/rtk_wrap_hook.ts +24 -5
  410. package/src/scripts/hooks_doctor.ts +23 -2
  411. package/src/scripts/hooks_status.ts +23 -2
  412. package/src/scripts/injection_scan_hook.ts +24 -5
  413. package/src/scripts/install.ts +72 -44
  414. package/src/scripts/inventory_abstraction_budget.ts +23 -1
  415. package/src/scripts/inventory_frontmatter.ts +23 -1
  416. package/src/scripts/inventory_meta_layers.ts +23 -1
  417. package/src/scripts/iron_law_sha.ts +23 -4
  418. package/src/scripts/janitor.ts +23 -4
  419. package/src/scripts/knowledge_global_cli.ts +24 -2
  420. package/src/scripts/linked_projects_list.ts +23 -4
  421. package/src/scripts/lint_agent_security.ts +23 -4
  422. package/src/scripts/lint_agent_skill_names.ts +23 -4
  423. package/src/scripts/lint_agents_layout.ts +23 -4
  424. package/src/scripts/lint_agents_md.ts +23 -4
  425. package/src/scripts/lint_archived_skills.ts +23 -4
  426. package/src/scripts/lint_artefact_frontmatter.ts +23 -4
  427. package/src/scripts/lint_bench_ab.ts +23 -4
  428. package/src/scripts/lint_bench_corpus.ts +23 -2
  429. package/src/scripts/lint_command_flow_coverage.ts +23 -4
  430. package/src/scripts/lint_command_routing.ts +23 -4
  431. package/src/scripts/lint_command_tiers.ts +23 -2
  432. package/src/scripts/lint_command_verbs.ts +23 -4
  433. package/src/scripts/lint_commit_subjects.ts +24 -4
  434. package/src/scripts/lint_confusables.ts +25 -5
  435. package/src/scripts/lint_context_spine_usage.ts +23 -4
  436. package/src/scripts/lint_discovery_manifest.ts +23 -4
  437. package/src/scripts/lint_discovery_vocabulary.ts +23 -4
  438. package/src/scripts/lint_empty_roadmaps.ts +23 -4
  439. package/src/scripts/lint_eval_freshness.ts +23 -4
  440. package/src/scripts/lint_examples.ts +23 -4
  441. package/src/scripts/lint_explain_trace.ts +23 -4
  442. package/src/scripts/lint_featured_skills.ts +0 -0
  443. package/src/scripts/lint_flows.ts +23 -4
  444. package/src/scripts/lint_framework_leakage.ts +23 -4
  445. package/src/scripts/lint_frontmatter_boilerplate.ts +23 -4
  446. package/src/scripts/lint_ghostwriter_source.ts +23 -4
  447. package/src/scripts/lint_global_paths.ts +23 -2
  448. package/src/scripts/lint_handoffs.ts +23 -4
  449. package/src/scripts/lint_hidden_unicode.ts +24 -5
  450. package/src/scripts/lint_hook_concern_budget.ts +23 -4
  451. package/src/scripts/lint_hook_manifest.ts +23 -2
  452. package/src/scripts/lint_instruction_smuggling.ts +25 -5
  453. package/src/scripts/lint_legal_pack.ts +23 -1
  454. package/src/scripts/lint_load_context.ts +23 -4
  455. package/src/scripts/lint_marketplace.ts +24 -3
  456. package/src/scripts/lint_marketplace_install_completeness.ts +23 -4
  457. package/src/scripts/lint_mcp_config_security.ts +25 -5
  458. package/src/scripts/lint_mcp_registry_manifest.ts +23 -4
  459. package/src/scripts/lint_media_policy_linkage.ts +23 -4
  460. package/src/scripts/lint_missions.ts +23 -4
  461. package/src/scripts/lint_model_tier_coverage.ts +23 -4
  462. package/src/scripts/lint_namespace.ts +23 -4
  463. package/src/scripts/lint_namespace_collisions.ts +23 -4
  464. package/src/scripts/lint_new_skill_gate.ts +23 -4
  465. package/src/scripts/lint_no_new_atomic_commands.ts +23 -4
  466. package/src/scripts/lint_one_off_age.ts +23 -4
  467. package/src/scripts/lint_orchestration_dsl.ts +23 -4
  468. package/src/scripts/lint_orchestrator_auto_detect.ts +23 -4
  469. package/src/scripts/lint_pack_boundaries.ts +23 -4
  470. package/src/scripts/lint_pack_dependencies.ts +23 -2
  471. package/src/scripts/lint_pack_first_win.ts +23 -4
  472. package/src/scripts/lint_pack_risk_class.ts +23 -1
  473. package/src/scripts/lint_persona_governance.ts +23 -4
  474. package/src/scripts/lint_positioning.ts +23 -4
  475. package/src/scripts/lint_profile_overlay_set_only.ts +23 -4
  476. package/src/scripts/lint_readme_jargon.ts +23 -4
  477. package/src/scripts/lint_readme_size.ts +23 -4
  478. package/src/scripts/lint_regression.ts +23 -4
  479. package/src/scripts/lint_roadmap_blockers.ts +23 -4
  480. package/src/scripts/lint_roadmap_ci_steps.ts +23 -4
  481. package/src/scripts/lint_roadmap_complexity.ts +23 -4
  482. package/src/scripts/lint_roadmap_later_disposition.ts +23 -4
  483. package/src/scripts/lint_role_experiences.ts +23 -4
  484. package/src/scripts/lint_rule_interactions.ts +23 -4
  485. package/src/scripts/lint_rule_tiers.ts +24 -3
  486. package/src/scripts/lint_showcase_sessions.ts +23 -4
  487. package/src/scripts/lint_skill_frontmatter_safety.ts +25 -5
  488. package/src/scripts/lint_skill_originality.ts +23 -4
  489. package/src/scripts/lint_skill_tools.ts +23 -4
  490. package/src/scripts/lint_subagent_determinism.ts +23 -4
  491. package/src/scripts/lint_ticket_buildable.ts +23 -4
  492. package/src/scripts/lint_topics_yaml.ts +23 -4
  493. package/src/scripts/lint_trust_coherence.ts +23 -4
  494. package/src/scripts/lint_value_dashboard.ts +23 -4
  495. package/src/scripts/lint_workflow_security.ts +23 -4
  496. package/src/scripts/lint_workspace_boundary.ts +23 -4
  497. package/src/scripts/mcp_parity_smoke.ts +23 -2
  498. package/src/scripts/mcp_render.ts +23 -4
  499. package/src/scripts/mcp_telemetry_health.ts +23 -4
  500. package/src/scripts/mcp_telemetry_query.ts +23 -4
  501. package/src/scripts/mcp_telemetry_store.ts +23 -4
  502. package/src/scripts/measure_augment_budget.ts +23 -1
  503. package/src/scripts/measure_density.ts +23 -1
  504. package/src/scripts/measure_frugality_savings.ts +23 -1
  505. package/src/scripts/measure_markitdown_lift.ts +23 -1
  506. package/src/scripts/measure_patterns.ts +23 -1
  507. package/src/scripts/measure_projection_bytes.ts +23 -1
  508. package/src/scripts/measure_rule_budget.ts +23 -4
  509. package/src/scripts/measure_skill_reduction.ts +23 -1
  510. package/src/scripts/memory_hash.ts +24 -2
  511. package/src/scripts/memory_lookup.ts +24 -2
  512. package/src/scripts/memory_report.ts +24 -2
  513. package/src/scripts/memory_signal.ts +24 -2
  514. package/src/scripts/memory_status.ts +26 -2
  515. package/src/scripts/migrate_command_suggestions.ts +23 -4
  516. package/src/scripts/migrate_frontmatter_defaults.ts +23 -4
  517. package/src/scripts/migration_status.ts +25 -4
  518. package/src/scripts/mine_missing_guardrails.ts +23 -1
  519. package/src/scripts/mine_session.ts +23 -1
  520. package/src/scripts/minimal_safe_diff_hook.ts +24 -3
  521. package/src/scripts/new_skill.ts +23 -3
  522. package/src/scripts/onboarding_gate_hook.ts +24 -3
  523. package/src/scripts/parity/coverage_diff.ts +25 -3
  524. package/src/scripts/parity/phase_gate.ts +25 -4
  525. package/src/scripts/parity/replay.ts +25 -3
  526. package/src/scripts/pattern_share.ts +23 -4
  527. package/src/scripts/plan_physical_move.ts +23 -4
  528. package/src/scripts/prediction-pool/poisson_sim.ts +24 -3
  529. package/src/scripts/prediction-pool/pool_winsim.ts +24 -3
  530. package/src/scripts/prediction-pool/score_ev.ts +24 -3
  531. package/src/scripts/print_required_checks.ts +24 -4
  532. package/src/scripts/probe_host_compliance.ts +23 -2
  533. package/src/scripts/probe_projection_fidelity.ts +23 -1
  534. package/src/scripts/probe_skill_registration.ts +24 -2
  535. package/src/scripts/profile_staleness_hook.ts +24 -3
  536. package/src/scripts/profile_use.ts +23 -4
  537. package/src/scripts/project_thin_rules.ts +23 -3
  538. package/src/scripts/propose_modules_config.ts +23 -4
  539. package/src/scripts/prototype_lint_contradictions.ts +23 -1
  540. package/src/scripts/prove_pack_extractable.ts +23 -4
  541. package/src/scripts/readme_linter.ts +23 -3
  542. package/src/scripts/redact_hook_capture.ts +23 -4
  543. package/src/scripts/refine_ticket_detect.ts +23 -4
  544. package/src/scripts/release.ts +23 -4
  545. package/src/scripts/render_benchmark_composite.ts +23 -4
  546. package/src/scripts/render_benchmark_md.ts +23 -4
  547. package/src/scripts/roadmap_progress_hook.ts +46 -16
  548. package/src/scripts/run_skill_evals.ts +23 -4
  549. package/src/scripts/runtime_dispatcher.ts +23 -4
  550. package/src/scripts/runtime_registry.ts +23 -4
  551. package/src/scripts/score_skill_selection.ts +23 -1
  552. package/src/scripts/security_audit_config.ts +24 -5
  553. package/src/scripts/skill_collision_clusters.ts +23 -4
  554. package/src/scripts/skill_discovery.ts +23 -4
  555. package/src/scripts/skill_linter.ts +23 -2
  556. package/src/scripts/skill_preview.ts +23 -4
  557. package/src/scripts/skill_tools/audit_persona_coverage.ts +23 -1
  558. package/src/scripts/skill_tools/audit_user_type_coverage.ts +23 -1
  559. package/src/scripts/skill_tools/run_block_d_eval.ts +23 -1
  560. package/src/scripts/skill_tools/score_skill_relevance.ts +23 -1
  561. package/src/scripts/skill_tools/suggest_skill_for_task.ts +24 -1
  562. package/src/scripts/skill_usage_collect.ts +23 -4
  563. package/src/scripts/smoke_path_resolution.ts +23 -4
  564. package/src/scripts/smoke_quickstart.ts +23 -4
  565. package/src/scripts/snapshot_agent_outputs.ts +23 -4
  566. package/src/scripts/spotcheck_thin_root.ts +23 -4
  567. package/src/scripts/sync_agent_settings.ts +23 -4
  568. package/src/scripts/sync_github_metadata.ts +23 -4
  569. package/src/scripts/sync_gitignore.ts +23 -4
  570. package/src/scripts/telegraph_stats.ts +23 -4
  571. package/src/scripts/tool_registry.ts +24 -4
  572. package/src/scripts/trigger_coverage.ts +23 -4
  573. package/src/scripts/update_counts.ts +23 -4
  574. package/src/scripts/update_prices.ts +23 -1
  575. package/src/scripts/validate_agent_settings.ts +23 -4
  576. package/src/scripts/validate_decision_engine.ts +23 -4
  577. package/src/scripts/validate_discovery_manifest.ts +23 -4
  578. package/src/scripts/validate_frontmatter.ts +23 -2
  579. package/src/scripts/validate_pack_yaml.ts +0 -0
  580. package/src/scripts/validate_safe_paths.ts +24 -4
  581. package/src/scripts/validate_telegraph_carveouts.ts +23 -4
  582. package/src/scripts/verify_before_complete_hook.ts +24 -3
  583. package/src/scripts/verify_physical_move.ts +23 -4
  584. package/src/scripts/wrapper_freshness_hook.ts +107 -8
  585. package/tests/fixtures/hooks/README.md +92 -0
  586. package/tests/fixtures/hooks/agent_error.json +7 -0
  587. package/tests/fixtures/hooks/post_tool_use.json +13 -0
  588. package/tests/fixtures/hooks/pre_compact.json +7 -0
  589. package/tests/fixtures/hooks/pre_tool_use.json +9 -0
  590. package/tests/fixtures/hooks/session_end.json +6 -0
  591. package/tests/fixtures/hooks/session_start.json +6 -0
  592. package/tests/fixtures/hooks/stop.json +6 -0
  593. package/tests/fixtures/hooks/user_prompt_submit.json +7 -0
@@ -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,
@@ -23,11 +23,12 @@ execution:
23
23
  # react-shadcn-ui
24
24
 
25
25
  > **Grounded stack guidance:** pull idiomatic Do/Don't + docs URLs via
26
- > `ground.py search --manifest <skills-root>/design-intelligence/data/manifest.json
26
+ > `./scripts-run <skills-root>/corpus-grounding/scripts/ground search
27
+ > --manifest <skills-root>/design-intelligence/data/manifest.json
27
28
  > --stack shadcn "<topic>"` (also `--stack react`, `--stack nextjs`). See
28
29
  > [`design-intelligence`](../design-intelligence/SKILL.md).
29
30
 
30
- ## Component installer — `scripts/shadcn_add.py` (gated, assisted)
31
+ ## Component installer — `scripts/shadcn_add.ts` (gated, assisted)
31
32
 
32
33
  Bundled installer (Apache-2.0-derived, see header + `design-intelligence/ATTRIBUTION.md`)
33
34
  wraps `npx shadcn@latest add <components>` — **the only subprocess+network
@@ -47,14 +48,14 @@ block above:
47
48
  ## Compatibility
48
49
 
49
50
  - **Tested against:** `shadcn@2.1`, Tailwind CSS `3.x`, React `18+`.
50
- - The audit step (`directives/ui/audit.py`) reads the line above and
51
+ - The audit step (`directives/ui/audit.ts`) reads the line above and
51
52
  compares it with `state.ui_audit.shadcn_inventory.version`; a major
52
53
  mismatch triggers a soft halt before this skill runs.
53
54
 
54
55
  ## When to use
55
56
 
56
- Use when `state.stack.frontend == "react-shadcn"` and `directives/ui/apply.py`,
57
- `review.py`, or `polish.py` dispatches to this skill, or when a React project
57
+ Use when `state.stack.frontend == "react-shadcn"` and `directives/ui/apply.ts`,
58
+ `review.ts`, or `polish.ts` dispatches to this skill, or when a React project
58
59
  clearly uses shadcn/ui (presence of `components.json`, `@radix-ui/*`
59
60
  dependencies, a `components/ui/` folder of generated primitives).
60
61
 
@@ -216,8 +217,8 @@ Default path = bundled `scripts/shadcn_add.ts` + `components.json`; works on mos
216
217
 
217
218
  ### Review pass — a11y findings + preview envelope
218
219
 
219
- When this skill is dispatched by `directives/ui/review.py` (test slot)
220
- or `directives/ui/polish.py` (verify slot) — i.e. a review/polish run,
220
+ When this skill is dispatched by `directives/ui/review.ts` (test slot)
221
+ or `directives/ui/polish.ts` (verify slot) — i.e. a review/polish run,
221
222
  not the initial apply — it also emits:
222
223
 
223
224
  - `state.ui_review.a11y` — `{violations: [{rule, selector, severity}, ...],
@@ -23,7 +23,7 @@ import { spawnSync } from 'node:child_process';
23
23
  import * as fs from 'node:fs';
24
24
  import * as path from 'node:path';
25
25
  import process from 'node:process';
26
- import { pathToFileURL } from 'node:url';
26
+ import { fileURLToPath, pathToFileURL } from 'node:url';
27
27
 
28
28
  export class ShadcnInstaller {
29
29
  projectRoot: string;
@@ -226,7 +226,7 @@ function _calledProcessError(cmd: string[], status: number | null, signal: strin
226
226
  return `Command ${cmdRepr} returned non-zero exit status ${status}.`;
227
227
  }
228
228
 
229
- const PROG = 'shadcn_add.py';
229
+ const PROG = 'shadcn_add';
230
230
 
231
231
  const HELP =
232
232
  `usage: ${PROG} [-h] [--all] [--overwrite] [--dry-run] [--list]\n` +
@@ -249,22 +249,22 @@ const HELP =
249
249
  '\n' +
250
250
  'Examples:\n' +
251
251
  ' # Add single component\n' +
252
- ' python shadcn_add.py button\n' +
252
+ ' ./scripts-run <skills-root>/react-shadcn-ui/scripts/shadcn_add button\n' +
253
253
  '\n' +
254
254
  ' # Add multiple components\n' +
255
- ' python shadcn_add.py button card dialog\n' +
255
+ ' ./scripts-run <skills-root>/react-shadcn-ui/scripts/shadcn_add button card dialog\n' +
256
256
  '\n' +
257
257
  ' # Add all components\n' +
258
- ' python shadcn_add.py --all\n' +
258
+ ' ./scripts-run <skills-root>/react-shadcn-ui/scripts/shadcn_add --all\n' +
259
259
  '\n' +
260
260
  ' # Overwrite existing components\n' +
261
- ' python shadcn_add.py button --overwrite\n' +
261
+ ' ./scripts-run <skills-root>/react-shadcn-ui/scripts/shadcn_add button --overwrite\n' +
262
262
  '\n' +
263
263
  ' # Dry run (show what would be done)\n' +
264
- ' python shadcn_add.py button card --dry-run\n' +
264
+ ' ./scripts-run <skills-root>/react-shadcn-ui/scripts/shadcn_add button card --dry-run\n' +
265
265
  '\n' +
266
266
  ' # List installed components\n' +
267
- ' python shadcn_add.py --list\n' +
267
+ ' ./scripts-run <skills-root>/react-shadcn-ui/scripts/shadcn_add --list\n' +
268
268
  ' \n';
269
269
 
270
270
  const USAGE =
@@ -380,9 +380,30 @@ export function main(argv: string[] = process.argv.slice(2)): number {
380
380
  return success ? 0 : 1;
381
381
  }
382
382
 
383
+ function _isCliEntry(): boolean {
384
+ if (process.argv[1] === undefined) {
385
+ return false;
386
+ }
387
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
388
+ if (import.meta.url === argvUrl) {
389
+ return true;
390
+ }
391
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
392
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
393
+ // import.meta.url is the resolved real path while argv[1] keeps the
394
+ // symlink path. Compare realpaths so the entry guard still fires
395
+ // (without this the CLI silently no-ops when run through a symlink).
396
+ try {
397
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
398
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
399
+ return here === argv;
400
+ } catch {
401
+ return false;
402
+ }
403
+ }
404
+
383
405
  const _invokedDirectly =
384
- process.argv[1] !== undefined &&
385
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
406
+ _isCliEntry();
386
407
  if (_invokedDirectly) {
387
408
  process.exitCode = main();
388
409
  }
@@ -51,7 +51,7 @@ plan, does not implement, does not write back anywhere.
51
51
  ## Input
52
52
 
53
53
  Exactly one path: a non-empty raw string carried in
54
- `state.input.data.raw` (built by [`work_engine.resolvers.prompt`](../../templates/scripts/work_engine/resolvers/prompt.py)).
54
+ `state.input.data.raw` (built by [`work_engine/resolvers/prompt.ts`](../../templates/scripts/work_engine/resolvers/prompt.ts)).
55
55
  No branch detection, no URL parsing, no clipboard fallback — the
56
56
  calling command (`/work`) owns prompt capture; this skill only refines.
57
57
 
@@ -160,20 +160,20 @@ step 3 — never both implicit.
160
160
 
161
161
  ### 5. Score confidence
162
162
 
163
- Delegate to [`scripts.work_engine.scoring.confidence`](../../templates/scripts/work_engine/scoring/confidence.py):
163
+ Delegate to [`work_engine/scoring/confidence.ts`](../../templates/scripts/work_engine/scoring/confidence.ts):
164
164
 
165
- ```python
166
- from work_engine.scoring.confidence import score
167
- result = score(raw=prompt_raw, ac=reconstructed_ac, assumptions=assumptions)
168
- # result.band ∈ {"high", "medium", "low"}
169
- # result.score ∈ [0.0, 1.0]
170
- # result.dimensions: dict[str, int] # 0–2 per dimension
171
- # result.reasons: list[str] # human-readable rationale
165
+ ```ts
166
+ import { score } from './work_engine/scoring/confidence.js';
167
+ const result = score({ raw: promptRaw, ac: reconstructedAc, assumptions });
168
+ // result.band ∈ {"high", "medium", "low"}
169
+ // result.score ∈ [0.0, 1.0]
170
+ // result.dimensions: Record<string, number> // 0–2 per dimension
171
+ // result.reasons: string[] // human-readable rationale
172
172
  ```
173
173
 
174
174
  The rubric (5 dimensions × 0–2, sum / 10) and band thresholds
175
175
  (`high ≥ 0.8`, `medium 0.5–0.79`, `low < 0.5`) are owned by
176
- `confidence.py`. Do not re-derive them in prose.
176
+ `confidence.ts`. Do not re-derive them in prose.
177
177
 
178
178
  ### 6. Self-review (3-scan checklist)
179
179
 
@@ -187,7 +187,7 @@ Source: adapted from an external reference `writing-plans/SKILL.md` § Self-Revi
187
187
 
188
188
  ## Band-action mapping
189
189
 
190
- The `refine` dispatcher step in `directives/backend/refine.py` reads
190
+ The `refine` dispatcher step in `directives/backend/refine.ts` reads
191
191
  the score and returns one of three outcomes — the skill does not
192
192
  decide the action, only produces the inputs.
193
193
 
@@ -267,7 +267,7 @@ For `low`, the question replaces the AC list:
267
267
  verbatim for replay; reconstructed output lands in
268
268
  `data.reconstructed_ac` and `data.assumptions`.
269
269
  - Do NOT re-derive band thresholds in prose. They live in
270
- `confidence.py` and only there.
270
+ `confidence.ts` and only there.
271
271
  - Do NOT read source files, `.env*`, secrets, or arbitrary user
272
272
  files when stack-detecting in mini / max mode. The allowlist
273
273
  above (`package.json`, `composer.json`, `pyproject.toml`,
@@ -284,8 +284,8 @@ For `low`, the question replaces the AC list:
284
284
 
285
285
  - [`refine-ticket`](../refine-ticket/SKILL.md) — sibling for ticket-shaped input
286
286
  - [`prompt-optimizer`](../prompt-optimizer/SKILL.md) — engine-outbound sibling; same `prompt_optimization` setting controls its mode
287
- - [`work_engine.resolvers.prompt`](../../templates/scripts/work_engine/resolvers/prompt.py) — envelope builder
288
- - [`work_engine.scoring.confidence`](../../templates/scripts/work_engine/scoring/confidence.py) — rubric + band thresholds
287
+ - [`work_engine/resolvers/prompt.ts`](../../templates/scripts/work_engine/resolvers/prompt.ts) — envelope builder
288
+ - [`work_engine/scoring/confidence.ts`](../../templates/scripts/work_engine/scoring/confidence.ts) — rubric + band thresholds
289
289
  - [`ask-when-uncertain`](../../rules/ask-when-uncertain.md) — one-question-per-turn Iron Law
290
290
  - [`artifact-drafting-protocol`](../../rules/artifact-drafting-protocol.md) — this skill was drafted under it
291
291
  - AI Council session: `agents/runtime/council/responses/prompt-master-mini.json` (2026-05-17) — analysis behind the mini/max split and `/raw` bypass <!-- council-ref-allowed: ADR decision trace -->
@@ -105,17 +105,14 @@ bullets + body.
105
105
  **Auto-fetch parent (Phase F4).** Before detection, check the
106
106
  issue type and fold parent context in:
107
107
 
108
- ```python
109
- from scripts.refine_ticket_detect import (
110
- issuetype_needs_parent, fold_parent_context,
111
- )
112
-
113
- if issuetype_needs_parent(ticket["issuetype"]):
114
- parent_key = ticket["parent_key"] # from `fields.parent.key`
115
- parent = fetch_jira_issue(parent_key) # +1 API call
116
- ticket_body = fold_parent_context(
117
- ticket_body, parent_body=parent["body"], parent_key=parent_key,
118
- )
108
+ ```ts
109
+ import { issuetype_needs_parent, fold_parent_context } from 'scripts/refine_ticket_detect.js';
110
+
111
+ if (issuetype_needs_parent(ticket.issuetype)) {
112
+ const parentKey = ticket.parent_key; // from `fields.parent.key`
113
+ const parent = fetch_jira_issue(parentKey); // +1 API call
114
+ ticketBody = fold_parent_context(ticketBody, parent.body, parentKey);
115
+ }
119
116
  ```
120
117
 
121
118
  Rules:
@@ -146,9 +143,9 @@ logic in prose:
146
143
 
147
144
  ```bash
148
145
  ./agent-config refine-ticket:detect <ticket-body-file>
149
- # or, inside the skill run:
150
- from scripts.refine_ticket_detect import detect, load_map
151
- decision = detect(ticket_body, load_map(), cwd=Path.cwd())
146
+ # or, inside the skill run (scripts/refine_ticket_detect.ts):
147
+ # import { detect, load_map } from 'scripts/refine_ticket_detect.js';
148
+ # const decision = detect(ticketBody, load_map(), process.cwd());
152
149
  ```
153
150
 
154
151
  The helper consumes [`detection-map.yml`](detection-map.yml) (co-located
@@ -179,8 +176,8 @@ risks instead of inventing terms.
179
176
 
180
177
  The match lists and `require_count` thresholds are owned by
181
178
  `detection-map.yml` — edit the map, not this skill. Tests:
182
- [`tests/test_refine_ticket_detect.py`](../../../tests/test_refine_ticket_detect.py)
183
- (17 cases, DE + EN fixtures, repo-aware + graceful-degrade coverage).
179
+ [`tests/scripts/refine_ticket_detect.test.ts`](../../../tests/scripts/refine_ticket_detect.test.ts)
180
+ (DE + EN fixtures, repo-aware + graceful-degrade coverage).
184
181
 
185
182
  ### 3. Orchestrate
186
183
 
@@ -279,17 +276,19 @@ Source: adapted from an external reference `writing-plans/SKILL.md` § Self-Revi
279
276
  **Probe write access first (Phase F6).** Before rendering, do a
280
277
  cheap upfront check:
281
278
 
282
- ```python
283
- from scripts.refine_ticket_detect import render_close_prompt
279
+ ```ts
280
+ import { render_close_prompt } from 'scripts/refine_ticket_detect.js';
284
281
 
285
- try:
286
- me = jira_get("/myself") # existence → auth works
287
- meta = jira_get(f"/issue/{key}/editmeta")# fields → write access
288
- write = bool(meta.get("fields"))
289
- except Exception:
290
- write = None # probe itself failed
282
+ let write: boolean | null;
283
+ try {
284
+ const me = jira_get('/myself'); // existence → auth works
285
+ const meta = jira_get(`/issue/${key}/editmeta`); // fields → write access
286
+ write = Boolean(meta.fields);
287
+ } catch {
288
+ write = null; // probe itself failed
289
+ }
291
290
 
292
- print(render_close_prompt(write))
291
+ console.log(render_close_prompt(write));
293
292
  ```
294
293
 
295
294
  Behaviour:
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # Declares which sub-skills fire on which ticket-body signals.
4
4
  # Consumed by:
5
- # - scripts/refine_ticket_detect.py (deterministic helper, pytest-covered)
5
+ # - scripts/refine_ticket_detect.ts (deterministic helper, vitest-covered)
6
6
  # - the refine-ticket skill's Step 2 (cites this file, never re-derives)
7
7
  #
8
8
  # Schema:
@@ -60,13 +60,12 @@ using [`reviewer-awareness`](../../rules/reviewer-awareness.md).
60
60
  **Also** pull agent-written signals via the shared abstraction (see
61
61
  [`memory-access`](../../../docs/guidelines/agent-infra/memory-access.md)):
62
62
 
63
- ```python
64
- from scripts.memory_lookup import retrieve
65
- extra = retrieve(
66
- types=["ownership", "historical-patterns", "incident-learnings"],
67
- keys=<changed file paths>,
68
- limit=5,
69
- )
63
+ ```bash
64
+ agent-config memory:lookup \
65
+ --types ownership,historical-patterns,incident-learnings \
66
+ --key <changed file path> \
67
+ --limit 5
68
+ # Repeat --key per changed path.
70
69
  ```
71
70
 
72
71
  Treat `source: "curated"` as equal-trust to the project YAML.
@@ -88,7 +88,7 @@ Common shapes:
88
88
  - Symfony bundles — `src/Bundle/{Bundle}/agents/roadmaps/`
89
89
  - Node / Python / Go monorepo packages — `packages/{Pkg}/agents/roadmaps/`
90
90
 
91
- Use `scripts/_lib/agent_settings.py::enumerate_modules()` to discover the
91
+ Use `scripts/_lib/agent_settings.ts::enumerate_modules()` to discover the
92
92
  actual paths in the current project; never assume `app/Modules/`.
93
93
 
94
94
  The file `.augment/templates/roadmaps.md` defines the canonical structure.
@@ -152,11 +152,16 @@ Every roadmap follows this structure:
152
152
  ### Quality gates
153
153
 
154
154
  Every roadmap implicitly includes the project's quality pipeline
155
- (static analysis, autofixes, tests). What's configurable is **when**
156
- the pipeline runs during `/roadmap:process-step|phase|full`,
157
- controlled by `roadmap.quality_cadence` in `.agent-settings.yml`:
158
-
159
- | Cadence | Pipeline runs | Trade-off |
155
+ (static analysis, autofixes, tests). Whether the agent runs it locally
156
+ at all is gated by `quality.local_auto_run`: `false` or missing (the
157
+ default) → agent never runs the pipeline locally; user runs it
158
+ manually, remote CI on the PR is the authoritative gate (run-end
159
+ report: *"quality gates delegated to remote CI"*; new-gate carve-out
160
+ steps still run once). When `local_auto_run: true`, **when** the
161
+ pipeline runs during `/roadmap:process-step|phase|full` is controlled
162
+ by `roadmap.quality_cadence` in `.agent-settings.yml`:
163
+
164
+ | Cadence | Pipeline runs (`local_auto_run: true` only) | Trade-off |
160
165
  |---|---|---|
161
166
  | `end_of_roadmap` (default) | Once before archiving | Fastest, fewest tokens; errors compound across phases |
162
167
  | `per_phase` | After every completed phase + final | Balanced; catches drift at phase boundaries |
@@ -31,7 +31,7 @@ Do NOT use this skill for:
31
31
 
32
32
  **Threshold-lift is forbidden.** When the budget breaches, the
33
33
  content must shrink — not the gate. Loosening `FAIL_THRESHOLD` in
34
- `scripts/measure_augment_budget.py` to make CI pass is an explicit
34
+ `scripts/measure_augment_budget.ts` to make CI pass is an explicit
35
35
  anti-pattern. The only valid budget-growth move is an ADR that
36
36
  raises `TOTAL_CAP`.
37
37
 
@@ -101,11 +101,11 @@ fail `./scripts-run src/scripts/lint_load_context`. Canonical reference:
101
101
  | `triggers[].path_prefix:` | **Literal match pattern** the host evaluates against the file the agent is editing — not rewritten | `src/skills/` (source-of-truth rules) or `agents/`, `app/`, `.augment/` |
102
102
  | Body links to guidelines / contracts | **Verbatim relative form** — `../../docs/...` works in any markdown viewer; rewriter handles depth | `[guideline](../../docs/guidelines/<group>/<name>.md)` |
103
103
 
104
- The condense-time rewriter (`scripts/condense.py::_rewrite_paths`) is
104
+ The condense-time rewriter (`scripts/condense.ts::_rewrite_paths`) is
105
105
  idempotent and depth-aware — it resolves logical names and body links
106
106
  to the deployment-correct relative path at condense time, leaving
107
107
  `path_prefix:` literally as written. The schema regex
108
- (`scripts/schemas/rule.schema.json`) and `scripts/lint_load_context.py`
108
+ (`scripts/schemas/rule.schema.json`) and `scripts/lint_load_context.ts`
109
109
  both reject the `src/` prefix in `load_context:` /
110
110
  `load_context_eager:` with an error pointing at the canonical logical
111
111
  name.
@@ -146,7 +146,7 @@ invoke [`rule-refactor`](../rule-refactor/SKILL.md). Do NOT:
146
146
 
147
147
  * Trim the new rule further to "just fit" — if it needs that body to
148
148
  do its job, the rule is right and the rule set around it is wrong.
149
- * Raise `FAIL_THRESHOLD` in `scripts/measure_augment_budget.py` —
149
+ * Raise `FAIL_THRESHOLD` in `scripts/measure_augment_budget.ts` —
150
150
  threshold-lift is explicitly forbidden (see the
151
151
  [`validation-budget`](../../rules/validation-budget.md) rule and
152
152
  the `rule-refactor` Iron Law).
@@ -162,7 +162,7 @@ move-to-context / promote-to-skill so the new rule earns its space.
162
162
  ### 6. Governance baseline (when introducing a new linter check)
163
163
 
164
164
  **Advisory, reviewer-checked — no CI gate.** When the same PR adds a
165
- new check to `scripts/skill_linter.py` (or strengthens an existing
165
+ new check to `scripts/skill_linter.ts` (or strengthens an existing
166
166
  one) such that previously-clean rules now warn, the PR body MUST
167
167
  record the pre-existing violations on `main` in a Markdown table:
168
168
 
@@ -250,7 +250,7 @@ to every rule you author.
250
250
  ## Cloud Behavior
251
251
 
252
252
  On cloud surfaces (Claude.ai Web, Skills API) the package's
253
- `scripts/skill_linter.py`, `scripts/condense.py`, and `task` runner
253
+ `scripts/skill_linter.ts`, `scripts/condense.ts`, and `task` runner
254
254
  are not reachable. The skill still applies — with prose-only
255
255
  validation:
256
256
 
@@ -15,7 +15,7 @@ packs:
15
15
 
16
16
  ## When to use
17
17
 
18
- * Creating a new Python script in `scripts/{name}.py` (linters, checks, generators, measure tools)
18
+ * Creating a new TypeScript script in `src/scripts/{name}.ts` (linters, checks, generators, measure tools — run via `./scripts-run src/scripts/{name}`)
19
19
  * Editing an existing script that prints progress or success lines
20
20
  * Wiring a script into `Taskfile.yml` or `taskfiles/*.yml`
21
21
  * Reviewing a PR that adds scripts and asking "why does this still print on minimal?"
@@ -48,38 +48,25 @@ family **must** go through Understand → Research → Draft from the
48
48
 
49
49
  * **Understand** — what failure does this script catch that no existing
50
50
  check catches? Is it a one-off (then archive it) or evergreen?
51
- * **Research** — `ls scripts/check_*.py scripts/lint_*.py`, grep for
52
- overlap, skim 1–2 peer scripts (e.g. `lint_handoffs.py`,
53
- `check_md_language.py`).
51
+ * **Research** — `ls src/scripts/check_*.ts src/scripts/lint_*.ts`, grep for
52
+ overlap, skim 1–2 peer scripts (e.g. `lint_handoffs.ts`,
53
+ `check_md_language.ts`).
54
54
  * **Draft** — propose name + one-line purpose first. Only fill the body
55
55
  after the shape is confirmed.
56
56
 
57
- ### 1. `--quiet` flag — argparse + sys.argv fallback
57
+ ### 1. `--quiet` flag — argv check
58
58
 
59
- Every `check_*.py` / `lint_*.py` script MUST accept `--quiet` so the
59
+ Every `check_*.ts` / `lint_*.ts` script MUST accept `--quiet` so the
60
60
  silent Taskfile layer (§ 4) can suppress success-only output.
61
61
 
62
- **With argparse (preferred):**
62
+ **Canonical pattern (see e.g. `lint_handoffs.ts`):**
63
63
 
64
- ```python
65
- parser = argparse.ArgumentParser(...)
66
- parser.add_argument("--quiet", action="store_true",
67
- help="Only print on failure")
68
- args = parser.parse_args()
69
- ...
70
- if not args.quiet:
71
- print("✅ All clean")
72
- ```
73
-
74
- **Plain script (no argparse) fallback:**
75
-
76
- ```python
77
- import sys
78
-
79
- QUIET = "--quiet" in sys.argv
80
- ...
81
- if not QUIET:
82
- print("✅ All clean")
64
+ ```ts
65
+ const QUIET = process.argv.slice(2).includes('--quiet');
66
+ // ...
67
+ if (!QUIET) {
68
+ console.log('✅ All clean');
69
+ }
83
70
  ```
84
71
 
85
72
  Failure output (`❌`, non-zero exit) is **never** gated — failures must
@@ -90,15 +77,15 @@ always print regardless of `--quiet`.
90
77
  For anything richer than a single `✅`/`❌`, import the verbosity-aware
91
78
  router instead of raw `print()`:
92
79
 
93
- ```python
94
- from _lib.script_output import info, success, warn, error, flush_summary
80
+ ```ts
81
+ import { info, success, warn, error, flush_summary } from './_lib/script_output.js';
95
82
 
96
- info("Loading manifest") # drops on silent + minimal
97
- success("Wrote 3 files") # collected at minimal, printed at verbose
98
- warn("Skipping stale entry") # stderr unless silent
99
- error("Manifest missing") # stderr always
83
+ info('Loading manifest'); // drops on silent + minimal
84
+ success('Wrote 3 files'); // collected at minimal, printed at verbose
85
+ warn('Skipping stale entry'); // stderr unless silent
86
+ error('Manifest missing'); // stderr always
100
87
 
101
- flush_summary("Done — 3 entries") # one-line summary at minimal
88
+ flush_summary('Done — 3 entries'); // one-line summary at minimal
102
89
  ```
103
90
 
104
91
  Resolution order (first wins, cached for the process):
@@ -110,7 +97,7 @@ Resolution order (first wins, cached for the process):
110
97
 
111
98
  The resolved level is exported back into `AGENT_SCRIPT_VERBOSITY` so
112
99
  child processes inherit it. Tests reset via `reset_level()` from the
113
- same module — see `tests/test_script_output.py`.
100
+ same module — see `tests/lib/script_output.test.ts`.
114
101
 
115
102
  ### 3. Iron-Law carve-outs — never silenced
116
103
 
@@ -125,8 +112,8 @@ helpers, so verbosity settings cannot suppress them:
125
112
  * Any prompt that asks the user for confirmation per
126
113
  [`non-destructive-by-default`](../../rules/non-destructive-by-default.md) — Hard Floor cannot be silenced
127
114
 
128
- If unsure, check `scripts/ai_council/one_off_archive/2026-05/_one_off_silent_taskfiles.py`
129
- `CARVE_OUTS` for the canonical list.
115
+ If unsure, check `src/scripts/ai_council/one_off_archive/2026-05/README.md`
116
+ for the archived carve-out inventory.
130
117
 
131
118
  ### 4. Taskfile wiring — `silent: true` + `{{.QUIET_FLAG}}`
132
119
 
@@ -157,13 +144,13 @@ do **not** add `silent: true` and do **not** use `{{.QUIET_FLAG}}`.
157
144
  ### 5. Validate
158
145
 
159
146
  * Run `./scripts-run src/scripts/skill_linter src/skills/script-writing/SKILL.md` → 0 FAIL
160
- * Run `python3 scripts/{your-script}.py --quiet` and the verbose path — exit code 0 on clean, non-zero on failure regardless of flag
161
- * If the script uses `_lib/script_output`, add a test under `tests/` patterned on `tests/test_script_output.py` — assert `silent` / `minimal` / `verbose` behave per § 2
147
+ * Run `./scripts-run src/scripts/{your-script} --quiet` and the verbose path — exit code 0 on clean, non-zero on failure regardless of flag
148
+ * If the script uses `_lib/script_output`, add a test under `tests/` patterned on `tests/lib/script_output.test.ts` — assert `silent` / `minimal` / `verbose` behave per § 2
162
149
  * Run the full CI pipeline locally (see `Taskfile.yml` in this repo for the script list) — must exit 0 except for tolerated warnings
163
150
 
164
151
  ## Output format
165
152
 
166
- 1. Script file at `scripts/{name}.py` with `--quiet` accepted
153
+ 1. Script file at `src/scripts/{name}.ts` with `--quiet` accepted
167
154
  2. Taskfile wiring with `silent: true` + `{{.QUIET_FLAG}}` (unless carve-out)
168
155
  3. Test under `tests/` if `_lib/script_output` is used
169
156
  4. Linter output showing 0 FAIL
@@ -175,7 +162,7 @@ do **not** add `silent: true` and do **not** use `{{.QUIET_FLAG}}`.
175
162
  * Using raw `print()` for progress lines — drops on `minimal`, no inheritance
176
163
  * Adding `silent: true` to a release / install-keys task — bypasses the Hard Floor confirmation
177
164
  * Editing `Taskfile.yml`'s `QUIET_FLAG` var — single source of truth, do not duplicate
178
- * Forgetting that `from _lib.script_output import …` requires the script's resolution to walk up to `scripts/` — copy the `Path(__file__).resolve().parent` pattern from a peer
165
+ * Forgetting that `import … from './_lib/script_output.js'` resolves relative to the script's own directory — copy the import path from a peer under `src/scripts/`
179
166
 
180
167
  ## Frugality Standards
181
168
 
@@ -217,7 +204,7 @@ applies — with prose-only validation:
217
204
 
218
205
  * Emit the full script + Taskfile snippet as copyable Markdown blocks. Do not attempt to write to disk.
219
206
  * Self-check: `--quiet` accepted, failures never gated, success lines gated, helper imports look syntactically right.
220
- * Tell the user to save under `scripts/{name}.py`, wire the Taskfile entry, and run `task lint-skills && task ci` locally before committing.
207
+ * Tell the user to save under `src/scripts/{name}.ts`, wire the Taskfile entry, and run `task lint-skills && task ci` locally before committing.
221
208
  * Skip every reference to running the linter or `task` commands yourself — they only run on the user's machine.
222
209
 
223
210
  ## Examples
@@ -70,7 +70,7 @@ Ask: **"Does the model need this to do its job correctly?"**
70
70
 
71
71
  Skills in `.agent-src.uncondensed/skills/{name}/SKILL.md` AND commands in
72
72
  `.agent-src.uncondensed/commands/{name}.md` both project into
73
- `.claude/skills/` (see `scripts/condense.py` →
73
+ `.claude/skills/` (see `scripts/condense.ts` →
74
74
  `generate_claude_skills` + `generate_claude_commands`). Claude treats
75
75
  the whole directory as native skills.
76
76
 
@@ -158,7 +158,7 @@ generic descriptions cause **undertriggering**. Normative source:
158
158
 
159
159
  Three rules: name 2+ triggers (domains, symptoms, user phrasing), end with
160
160
  `... even if they don't explicitly ask for \`<skill-name>\`.`, and stay
161
- **≤ 200 characters** (`skill_linter.py` warns `description_too_long` above
161
+ **≤ 200 characters** (`skill_linter.ts` warns `description_too_long` above
162
162
  that). When trimming to fit, drop adjectives or the second example phrasing
163
163
  before you drop a trigger class or the `even if ...` tail.
164
164
 
@@ -336,7 +336,7 @@ rubric:
336
336
  via a fresh sub-agent reading the output against the criterion — keep
337
337
  each criterion to one falsifiable sentence.
338
338
 
339
- **Loop** (orchestrated by `scripts/run_skill_evals.py`):
339
+ **Loop** (orchestrated by `scripts/run_skill_evals.ts`):
340
340
 
341
341
  1. **Scaffold** — `./scripts-run src/scripts/run_skill_evals scaffold {skill}`
342
342
  creates `runs/{timestamp}-{baseline,with-skill}/` and seeds each
@@ -113,12 +113,12 @@ never a build input**:
113
113
 
114
114
  - Load **negative facts + pointers** as leads (`trust: durable`).
115
115
  - Load **positive structure** under **"Assumed (from card · GLOBAL,
116
- unverified)"** — record via `evidence_report.py add --bucket assumed --origin
116
+ unverified)"** — record via `evidence_report.ts add --bucket assumed --origin
117
117
  global …` and **re-confirm vs the live source this session** before use
118
118
  (version skew / schema drift). Never "Verified" on the global card alone.
119
119
  - `public`/`vendor` seen in ≥ `auto_promote_threshold` distinct repos → one-tap
120
120
  promotion **suggestion** (never silent); `proprietary` is manual-only. Record
121
- sightings via `_lib/knowledge_global_promote.py record-seen`.
121
+ sightings via `_lib/knowledge_global_promote.ts record-seen`.
122
122
 
123
123
  ## Missing structure → fixed extension workflow
124
124
 
@@ -126,7 +126,7 @@ When the field/endpoint/table you need is **not** there:
126
126
 
127
127
  1. **Search** the relevant sources.
128
128
  2. **Not found** — record the **absence-search log** with `searched` *and*
129
- `not_searched` (via `evidence_report.py add --bucket gaps --searched … --not-searched …`).
129
+ `not_searched` (via `evidence_report.ts add --bucket gaps --searched … --not-searched …`).
130
130
  3. **Negative-fact card** — only **after the search is exhausted across all
131
131
  relevant sources** for that claim: write `type: anti-hallucination`,
132
132
  `polarity: negative`, with `actionable` + `next_step` + a `revalidate_if`
@@ -14,7 +14,8 @@ packs:
14
14
 
15
15
  > **Grounded corpus:** tuning decisions (indexes, keyset pagination, N+1,
16
16
  > trigram search, lock contention) ground via the
17
- > [`database`](../database/SKILL.md) corpus — `ground.py search
17
+ > [`database`](../database/SKILL.md) corpus — `./scripts-run
18
+ > <skills-root>/corpus-grounding/scripts/ground search
18
19
  > --manifest <skills-root>/database/data/manifest.json "<symptom>"`.
19
20
 
20
21
  ## When to use
@@ -201,7 +201,7 @@ in [`using-git-worktrees`](../using-git-worktrees/SKILL.md) and
201
201
  its `## Output` block → control passes to delegated-skill in a fresh
202
202
  worktree → delegated-skill consumes the input shape declared in its
203
203
  `## Input` (or `## When the agent should load this`) block. The
204
- handoff is auditable; `lint_handoffs.py` validates the chain.
204
+ handoff is auditable; `lint_handoffs.ts` validates the chain.
205
205
 
206
206
  **Example chain (W3 launch):** `positioning-strategy` (worktree A) →
207
207
  `messaging-architecture` (worktree B, consumes positioning's