@event4u/agent-config 8.1.0 → 8.3.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 (615) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/CHANGELOG.md +83 -292
  3. package/MIGRATION.md +18 -0
  4. package/README.md +86 -3
  5. package/dist/agent-src/commands/agents/init.md +3 -3
  6. package/dist/agent-src/commands/chat-history/import.md +5 -5
  7. package/dist/agent-src/commands/chat-history.md +1 -1
  8. package/dist/agent-src/commands/condense.md +1 -1
  9. package/dist/agent-src/commands/context/create.md +1 -1
  10. package/dist/agent-src/commands/council/analysis.md +2 -2
  11. package/dist/agent-src/commands/council/default.md +3 -3
  12. package/dist/agent-src/commands/council/design.md +2 -2
  13. package/dist/agent-src/commands/council/optimize.md +1 -1
  14. package/dist/agent-src/commands/council/pr.md +2 -2
  15. package/dist/agent-src/commands/council.md +1 -1
  16. package/dist/agent-src/commands/feature/plan.md +1 -1
  17. package/dist/agent-src/commands/ghostwriter/list.md +1 -1
  18. package/dist/agent-src/commands/ghostwriter/write.md +1 -1
  19. package/dist/agent-src/commands/ghostwriter.md +1 -1
  20. package/dist/agent-src/commands/implement-ticket.md +2 -2
  21. package/dist/agent-src/commands/judge/on-diff.md +1 -1
  22. package/dist/agent-src/commands/judge/steps.md +3 -1
  23. package/dist/agent-src/commands/memory/add.md +2 -2
  24. package/dist/agent-src/commands/memory/learn-low-impact.md +1 -1
  25. package/dist/agent-src/commands/memory/load.md +1 -1
  26. package/dist/agent-src/commands/memory/mine-session.md +1 -1
  27. package/dist/agent-src/commands/memory/promote.md +1 -1
  28. package/dist/agent-src/commands/memory/propose.md +1 -1
  29. package/dist/agent-src/commands/mission/upgrade.md +1 -1
  30. package/dist/agent-src/commands/module/explore.md +3 -3
  31. package/dist/agent-src/commands/optimize/agents-dir.md +1 -1
  32. package/dist/agent-src/commands/optimize/skills.md +1 -1
  33. package/dist/agent-src/commands/optimize-project.md +1 -1
  34. package/dist/agent-src/commands/orchestrate.md +2 -2
  35. package/dist/agent-src/commands/project-analyze.md +1 -1
  36. package/dist/agent-src/commands/project-health.md +1 -1
  37. package/dist/agent-src/commands/roadmap/ai-council.md +1 -1
  38. package/dist/agent-src/commands/roadmap/create.md +2 -2
  39. package/dist/agent-src/commands/roadmap/process-full.md +3 -1
  40. package/dist/agent-src/commands/roadmap/process-phase.md +4 -2
  41. package/dist/agent-src/commands/roadmap/process-step.md +3 -1
  42. package/dist/agent-src/commands/security-audit-config.md +1 -1
  43. package/dist/agent-src/commands/sync-agent-settings.md +7 -7
  44. package/dist/agent-src/commands/sync-gitignore/fix.md +3 -3
  45. package/dist/agent-src/commands/sync-gitignore.md +4 -4
  46. package/dist/agent-src/commands/work.md +3 -3
  47. package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
  48. package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +2 -2
  49. package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +1 -1
  50. package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +8 -7
  51. package/dist/agent-src/contexts/execution/evidence-discipline.md +2 -2
  52. package/dist/agent-src/contexts/execution/roadmap-process-loop.md +9 -4
  53. package/dist/agent-src/contexts/execution/toolchain-resolver.md +10 -9
  54. package/dist/agent-src/contexts/execution/verification-mechanics.md +13 -1
  55. package/dist/agent-src/packs/README.md +1 -1
  56. package/dist/agent-src/presets/README.md +1 -1
  57. package/dist/agent-src/profiles/README.md +1 -1
  58. package/dist/agent-src/rules/architecture.md +2 -2
  59. package/dist/agent-src/rules/context-hygiene.md +2 -2
  60. package/dist/agent-src/rules/fast-path-marker-visibility.md +1 -1
  61. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +1 -1
  62. package/dist/agent-src/rules/linked-projects-onboarding-gate.md +1 -1
  63. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +3 -3
  64. package/dist/agent-src/rules/media-governance-routing.md +1 -1
  65. package/dist/agent-src/rules/no-roadmap-references.md +3 -3
  66. package/dist/agent-src/rules/preservation-guard.md +2 -2
  67. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +6 -5
  68. package/dist/agent-src/rules/roadmap-progress-sync.md +3 -3
  69. package/dist/agent-src/rules/security-sensitive-stop.md +7 -9
  70. package/dist/agent-src/rules/source-confidentiality.md +1 -1
  71. package/dist/agent-src/rules/telegraph-speak.md +1 -1
  72. package/dist/agent-src/rules/token-optimizer-maintenance.md +1 -1
  73. package/dist/agent-src/rules/ui-audit-gate.md +1 -1
  74. package/dist/agent-src/scripts/archive_completed_roadmaps.ts +22 -4
  75. package/dist/agent-src/scripts/update_roadmap_progress.ts +29 -1
  76. package/dist/agent-src/skills/accessibility-auditor/SKILL.md +3 -2
  77. package/dist/agent-src/skills/adr-create/SKILL.md +8 -6
  78. package/dist/agent-src/skills/agent-docs-writing/SKILL.md +1 -1
  79. package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +2 -2
  80. package/dist/agent-src/skills/ai-council/SKILL.md +15 -15
  81. package/dist/agent-src/skills/api-design/SKILL.md +1 -1
  82. package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -1
  83. package/dist/agent-src/skills/authz-review/SKILL.md +1 -1
  84. package/dist/agent-src/skills/blade-ui/SKILL.md +11 -10
  85. package/dist/agent-src/skills/blameless-post-mortem/SKILL.md +9 -8
  86. package/dist/agent-src/skills/code-review/SKILL.md +3 -4
  87. package/dist/agent-src/skills/command-routing/SKILL.md +3 -3
  88. package/dist/agent-src/skills/command-writing/SKILL.md +3 -3
  89. package/dist/agent-src/skills/condense-memory/SKILL.md +2 -2
  90. package/dist/agent-src/skills/context-authoring/SKILL.md +1 -1
  91. package/dist/agent-src/skills/context-document/SKILL.md +1 -1
  92. package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +1 -1
  93. package/dist/agent-src/skills/corpus-grounding/SKILL.md +16 -11
  94. package/dist/agent-src/skills/corpus-grounding/scripts/ground.ts +24 -3
  95. package/dist/agent-src/skills/dashboard-design/SKILL.md +2 -1
  96. package/dist/agent-src/skills/database/SKILL.md +2 -1
  97. package/dist/agent-src/skills/description-assist/SKILL.md +6 -6
  98. package/dist/agent-src/skills/design-intelligence/SKILL.md +6 -5
  99. package/dist/agent-src/skills/design-tokens/SKILL.md +5 -5
  100. package/dist/agent-src/skills/design-tokens/scripts/tokens.ts +24 -3
  101. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +3 -3
  102. package/dist/agent-src/skills/fe-design/SKILL.md +7 -7
  103. package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +11 -4
  104. package/dist/agent-src/skills/flux/SKILL.md +10 -9
  105. package/dist/agent-src/skills/git-workflow/SKILL.md +4 -5
  106. package/dist/agent-src/skills/guideline-writing/SKILL.md +2 -2
  107. package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +2 -2
  108. package/dist/agent-src/skills/livewire/SKILL.md +10 -9
  109. package/dist/agent-src/skills/memory-consolidation/SKILL.md +2 -2
  110. package/dist/agent-src/skills/module-detect-on-the-fly/SKILL.md +5 -5
  111. package/dist/agent-src/skills/module-management/SKILL.md +2 -2
  112. package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +11 -11
  113. package/dist/agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +6 -6
  114. package/dist/agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +1 -1
  115. package/dist/agent-src/skills/premortem/SKILL.md +1 -1
  116. package/dist/agent-src/skills/project-docs/SKILL.md +1 -1
  117. package/dist/agent-src/skills/quality-tools/SKILL.md +26 -2
  118. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +8 -7
  119. package/dist/agent-src/skills/react-shadcn-ui/scripts/shadcn_add.ts +31 -10
  120. package/dist/agent-src/skills/refine-prompt/SKILL.md +14 -14
  121. package/dist/agent-src/skills/refine-ticket/SKILL.md +24 -25
  122. package/dist/agent-src/skills/refine-ticket/detection-map.yml +1 -1
  123. package/dist/agent-src/skills/review-routing/SKILL.md +6 -7
  124. package/dist/agent-src/skills/roadmap-management/SKILL.md +11 -6
  125. package/dist/agent-src/skills/rule-refactor/SKILL.md +1 -1
  126. package/dist/agent-src/skills/rule-writing/SKILL.md +5 -5
  127. package/dist/agent-src/skills/script-writing/SKILL.md +28 -41
  128. package/dist/agent-src/skills/skill-writing/SKILL.md +3 -3
  129. package/dist/agent-src/skills/source-discovery/SKILL.md +3 -3
  130. package/dist/agent-src/skills/sql-writing/SKILL.md +2 -1
  131. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +1 -1
  132. package/dist/agent-src/skills/systematic-debugging/SKILL.md +5 -7
  133. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +2 -2
  134. package/dist/agent-src/skills/tailwind-engineer/scripts/tailwind_config_gen.ts +25 -4
  135. package/dist/agent-src/skills/token-optimizer/SKILL.md +1 -1
  136. package/dist/agent-src/skills/typography-system/SKILL.md +1 -1
  137. package/dist/agent-src/skills/validate-feature-fit/SKILL.md +5 -7
  138. package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +13 -1
  139. package/dist/agent-src/templates/agent-settings.md +34 -25
  140. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
  141. package/dist/agent-src/templates/agents/memory/incident-learnings.example.yml +1 -1
  142. package/dist/agent-src/templates/agents/proposal.example.md +4 -4
  143. package/dist/agent-src/templates/copilot-instructions.md +1 -1
  144. package/dist/agent-src/templates/github-workflows/memory-hygiene.yml +10 -10
  145. package/dist/agent-src/templates/github-workflows/pr-risk-review.yml +19 -8
  146. package/dist/agent-src/templates/github-workflows/proposal-drift.yml +11 -8
  147. package/dist/agent-src/templates/github-workflows/roadmap-progress-check.yml +10 -12
  148. package/dist/agent-src/templates/hooks/pre-commit-frontmatter +21 -11
  149. package/dist/agent-src/templates/hooks/pre-commit-roadmap-progress +43 -29
  150. package/dist/agent-src/templates/roadmaps.md +9 -4
  151. package/dist/agent-src/templates/rule.md +3 -3
  152. package/dist/agent-src/templates/scripts/README.md +6 -6
  153. package/dist/agent-src/templates/scripts/check_memory.ts +24 -2
  154. package/dist/agent-src/templates/scripts/check_memory_proposal.ts +23 -4
  155. package/dist/agent-src/templates/scripts/historical-bug-patterns.example.yml +1 -1
  156. package/dist/agent-src/templates/scripts/memory_hash.ts +24 -2
  157. package/dist/agent-src/templates/scripts/memory_lookup.ts +24 -2
  158. package/dist/agent-src/templates/scripts/memory_report.ts +24 -2
  159. package/dist/agent-src/templates/scripts/memory_signal.ts +24 -2
  160. package/dist/agent-src/templates/scripts/memory_status.ts +26 -2
  161. package/dist/agent-src/templates/scripts/ownership-map.example.yml +1 -1
  162. package/dist/agent-src/templates/scripts/pr-risk-config.example.yml +1 -1
  163. package/dist/agent-src/templates/scripts/pr_review_routing.ts +24 -3
  164. package/dist/agent-src/templates/scripts/pr_risk_review.ts +0 -0
  165. package/dist/agent-src/templates/scripts/telemetry_record.ts +24 -3
  166. package/dist/agent-src/templates/scripts/telemetry_report.ts +25 -3
  167. package/dist/agent-src/templates/scripts/telemetry_status.ts +24 -3
  168. package/dist/agent-src/templates/scripts/tier_usage_report.ts +24 -2
  169. package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +44 -10
  170. package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/_chat_history_base.ts +26 -13
  171. package/dist/agent-src/templates/skill.md +2 -2
  172. package/dist/cli/python/knowledge_ingest.js +24 -3
  173. package/dist/cli/python/knowledge_ingest.js.map +1 -1
  174. package/dist/cli/python/workspace_analytics.js +23 -3
  175. package/dist/cli/python/workspace_analytics.js.map +1 -1
  176. package/dist/cli/python/workspace_crypto.js +23 -3
  177. package/dist/cli/python/workspace_crypto.js.map +1 -1
  178. package/dist/cli/python/workspace_documents.js +23 -3
  179. package/dist/cli/python/workspace_documents.js.map +1 -1
  180. package/dist/cli/python/workspace_drive.js +24 -3
  181. package/dist/cli/python/workspace_drive.js.map +1 -1
  182. package/dist/cli/python/workspace_drive_health.js +23 -3
  183. package/dist/cli/python/workspace_drive_health.js.map +1 -1
  184. package/dist/cli/python/workspace_explain.js +23 -3
  185. package/dist/cli/python/workspace_explain.js.map +1 -1
  186. package/dist/cli/python/workspace_hosts.js +23 -3
  187. package/dist/cli/python/workspace_hosts.js.map +1 -1
  188. package/dist/cli/python/workspace_inbox.js +23 -3
  189. package/dist/cli/python/workspace_inbox.js.map +1 -1
  190. package/dist/cli/python/workspace_render.js +23 -3
  191. package/dist/cli/python/workspace_render.js.map +1 -1
  192. package/dist/cli/python/workspace_roles.js +23 -3
  193. package/dist/cli/python/workspace_roles.js.map +1 -1
  194. package/dist/cli/python/workspace_sessions.js +23 -3
  195. package/dist/cli/python/workspace_sessions.js.map +1 -1
  196. package/dist/cli/python/workspace_skills.js +23 -3
  197. package/dist/cli/python/workspace_skills.js.map +1 -1
  198. package/dist/cli/registry.js +2 -0
  199. package/dist/cli/registry.js.map +1 -1
  200. package/dist/discovery/deprecation-report.md +1 -1
  201. package/dist/discovery/discovery-manifest.json +118 -118
  202. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  203. package/dist/discovery/discovery-manifest.summary.md +2 -2
  204. package/dist/discovery/orphan-report.md +1 -1
  205. package/dist/discovery/packs.json +3 -3
  206. package/dist/discovery/trust-report.md +1 -1
  207. package/dist/discovery/workspaces.json +3 -3
  208. package/dist/install/install.mjs +647 -408
  209. package/dist/mcp/registry-manifest.json +3 -3
  210. package/dist/server/routes/settings.js +4 -4
  211. package/dist/server/routes/settings.js.map +1 -1
  212. package/dist/server/schemas/settings.js +1 -1
  213. package/dist/server/schemas/settings.js.map +1 -1
  214. package/docs/CLAIMS.md +2 -2
  215. package/docs/archive/CHANGELOG-pre-8.1.0.md +316 -0
  216. package/docs/benchmark.md +40 -0
  217. package/docs/contracts/CHANGELOG-conventions.md +8 -5
  218. package/docs/contracts/branch-protection-policy.md +14 -5
  219. package/docs/contracts/mcp-phase-1-scope.md +75 -0
  220. package/docs/contracts/mcp-tool-inventory.md +22 -15
  221. package/docs/contracts/release-pr-gating.md +22 -11
  222. package/docs/contracts/skill-bundled-assets.md +2 -2
  223. package/docs/customization.md +1 -1
  224. package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +9 -4
  225. package/docs/decisions/ADR-111-canonical-glama-listing.md +97 -0
  226. package/docs/decisions/ADR-112-stdio-lite-stays-read-only.md +92 -0
  227. package/docs/decisions/ADR-113-ci-native-release-label-trigger.md +201 -0
  228. package/docs/decisions/INDEX.md +3 -0
  229. package/docs/distribution/registry-submissions.md +1 -1
  230. package/docs/getting-started.md +8 -6
  231. package/docs/guidelines/agent-infra/corpus-grounding-authoring.md +2 -2
  232. package/docs/guidelines/agent-infra/engineering-memory-data-format.md +4 -4
  233. package/docs/guidelines/agent-infra/installed-tools-manifest.md +3 -3
  234. package/docs/guidelines/agent-infra/language-and-tone-examples.md +2 -2
  235. package/docs/guidelines/agent-infra/layered-settings.md +4 -4
  236. package/docs/guidelines/agent-infra/memory-access.md +19 -18
  237. package/docs/guidelines/agent-infra/naming.md +1 -1
  238. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +5 -5
  239. package/docs/guidelines/agent-infra/role-contracts.md +1 -1
  240. package/docs/guidelines/agent-infra/security-lint-containment.md +2 -2
  241. package/docs/guidelines/agent-infra/self-improvement-pipeline.md +1 -1
  242. package/docs/guidelines/agent-infra/size-and-scope.md +1 -1
  243. package/docs/guidelines/agent-infra/skill-quality-checklist.md +5 -5
  244. package/docs/guidelines/augment-portability-patterns.md +1 -1
  245. package/docs/installation.md +13 -14
  246. package/docs/mcp-server.md +32 -20
  247. package/docs/proof.md +1 -1
  248. package/docs/setup/mcp-cloud-endpoints.md +9 -2
  249. package/docs/setup/per-ide/claude-code.md +10 -4
  250. package/package.json +4 -3
  251. package/src/config/agent-settings.template.yml +31 -17
  252. package/src/config/host-capabilities.yml +25 -16
  253. package/src/config/profiles/balanced.ini +5 -3
  254. package/src/scripts/_cli/cmd_analyze_session.ts +23 -4
  255. package/src/scripts/_cli/cmd_conformance.ts +23 -4
  256. package/src/scripts/_cli/cmd_doctor.ts +196 -8
  257. package/src/scripts/_cli/cmd_explain.ts +23 -4
  258. package/src/scripts/_cli/cmd_export.ts +23 -4
  259. package/src/scripts/_cli/cmd_fleet.ts +23 -4
  260. package/src/scripts/_cli/cmd_migrate.ts +23 -4
  261. package/src/scripts/_cli/cmd_preflight.ts +24 -4
  262. package/src/scripts/_cli/cmd_prune.ts +23 -4
  263. package/src/scripts/_cli/cmd_refresh.ts +23 -4
  264. package/src/scripts/_cli/cmd_settings_check.ts +23 -4
  265. package/src/scripts/_cli/cmd_settings_migrate.ts +23 -4
  266. package/src/scripts/_cli/cmd_sync.ts +23 -4
  267. package/src/scripts/_cli/cmd_uninstall.ts +45 -4
  268. package/src/scripts/_cli/cmd_update.ts +23 -4
  269. package/src/scripts/_cli/cmd_upgrade.ts +307 -17
  270. package/src/scripts/_cli/cmd_validate.ts +23 -4
  271. package/src/scripts/_cli/cmd_versions.ts +23 -4
  272. package/src/scripts/_dispatch.bash +62 -19
  273. package/src/scripts/_lib/claude_plugin.ts +83 -0
  274. package/src/scripts/_lib/claude_settings_hooks.ts +251 -0
  275. package/src/scripts/_lib/knowledge_global.ts +24 -2
  276. package/src/scripts/_lib/knowledge_global_promote.ts +24 -2
  277. package/src/scripts/_lib/knowledge_global_redaction.ts +24 -2
  278. package/src/scripts/_lib/link_crypto.ts +24 -5
  279. package/src/scripts/_lib/pin_resolver.ts +24 -3
  280. package/src/scripts/adoption_report.ts +23 -4
  281. package/src/scripts/adoption_snapshot.ts +23 -1
  282. package/src/scripts/adoption_status.ts +23 -4
  283. package/src/scripts/adr/regenerate_index.ts +24 -3
  284. package/src/scripts/ai_council/airgap.ts +25 -2
  285. package/src/scripts/ai_council/compile_corpus.ts +24 -2
  286. package/src/scripts/ai_council/pricing.ts +11 -1
  287. package/src/scripts/analysis_freshness.ts +23 -4
  288. package/src/scripts/annotate_discovery.ts +23 -1
  289. package/src/scripts/apply_modules_config.ts +23 -4
  290. package/src/scripts/audit_adr_coverage.ts +23 -4
  291. package/src/scripts/audit_auto_rules.ts +23 -1
  292. package/src/scripts/audit_cloud_compatibility.ts +23 -4
  293. package/src/scripts/audit_command_surface.ts +23 -4
  294. package/src/scripts/audit_initial_context.ts +23 -3
  295. package/src/scripts/audit_likelihood.ts +23 -1
  296. package/src/scripts/audit_mcp_tools.ts +23 -3
  297. package/src/scripts/audit_overlap.ts +23 -1
  298. package/src/scripts/audit_skill_descriptions.ts +24 -2
  299. package/src/scripts/audit_skill_overlap.ts +23 -1
  300. package/src/scripts/audit_user_type_axis.ts +23 -4
  301. package/src/scripts/backfill_model_tier.ts +23 -4
  302. package/src/scripts/bench_ab_cache_dispatch.ts +23 -1
  303. package/src/scripts/bench_ab_clone.ts +23 -1
  304. package/src/scripts/bench_ab_diff.ts +23 -1
  305. package/src/scripts/bench_ab_integrity.ts +23 -1
  306. package/src/scripts/bench_ab_run.ts +23 -2
  307. package/src/scripts/bench_ab_task_runner.ts +23 -1
  308. package/src/scripts/bench_ab_tracka_run.ts +23 -2
  309. package/src/scripts/bench_ab_v2_run.ts +23 -1
  310. package/src/scripts/bench_ab_v2_stats.ts +23 -1
  311. package/src/scripts/bench_baseline_ready.ts +23 -1
  312. package/src/scripts/bench_condense_memory.ts +23 -1
  313. package/src/scripts/bench_drift_check.ts +23 -2
  314. package/src/scripts/bench_matrix.ts +23 -4
  315. package/src/scripts/bench_per_tool.ts +23 -1
  316. package/src/scripts/bench_quality_run.ts +23 -2
  317. package/src/scripts/bench_rtk_savings.ts +23 -1
  318. package/src/scripts/bench_rule_load_latency.ts +23 -2
  319. package/src/scripts/bench_run.ts +23 -2
  320. package/src/scripts/bench_runner.ts +23 -1
  321. package/src/scripts/build_cloud_bundle.ts +23 -3
  322. package/src/scripts/build_discovery_manifest.ts +23 -4
  323. package/src/scripts/build_linear_digest.ts +23 -3
  324. package/src/scripts/build_mcp_registry_manifest.ts +23 -4
  325. package/src/scripts/build_rule_trigger_matrix.ts +23 -4
  326. package/src/scripts/capture_showcase_session.ts +23 -1
  327. package/src/scripts/chat_history.ts +24 -3
  328. package/src/scripts/check_always_budget.ts +23 -2
  329. package/src/scripts/check_artefact_checksums.ts +23 -4
  330. package/src/scripts/check_augment_description_cap.ts +23 -4
  331. package/src/scripts/check_augmentignore.ts +23 -4
  332. package/src/scripts/check_beta_review_markers.ts +23 -4
  333. package/src/scripts/check_cluster_patterns.ts +23 -4
  334. package/src/scripts/check_command_count_messaging.ts +23 -4
  335. package/src/scripts/check_comparison.ts +23 -1
  336. package/src/scripts/check_condensation.ts +24 -3
  337. package/src/scripts/check_condensed_paths.ts +23 -2
  338. package/src/scripts/check_context_paths.ts +23 -4
  339. package/src/scripts/check_council_config_location.ts +23 -4
  340. package/src/scripts/check_council_layout.ts +23 -4
  341. package/src/scripts/check_council_references.ts +23 -4
  342. package/src/scripts/check_discovery_determinism.ts +24 -4
  343. package/src/scripts/check_gate_paths.ts +23 -4
  344. package/src/scripts/check_generated_artefact_headers.ts +23 -4
  345. package/src/scripts/check_generator_output_coverage.ts +23 -4
  346. package/src/scripts/check_gitignore_freshness.ts +23 -4
  347. package/src/scripts/check_iron_law_prominence.ts +23 -4
  348. package/src/scripts/check_kernel_prefix_stability.ts +0 -0
  349. package/src/scripts/check_kernel_rule_bundle.ts +23 -4
  350. package/src/scripts/check_knowledge_cards.ts +23 -1
  351. package/src/scripts/check_md_language.ts +23 -4
  352. package/src/scripts/check_media_deps.ts +24 -1
  353. package/src/scripts/check_memory.ts +24 -2
  354. package/src/scripts/check_memory_proposal.ts +23 -4
  355. package/src/scripts/check_module_management_neutral.ts +23 -4
  356. package/src/scripts/check_no_conflict_markers.ts +23 -4
  357. package/src/scripts/check_no_external_sources.ts +23 -4
  358. package/src/scripts/check_no_local_settings_committed.ts +24 -4
  359. package/src/scripts/check_no_new_legacy_path.ts +23 -4
  360. package/src/scripts/check_no_roadmap_refs.ts +23 -4
  361. package/src/scripts/check_one_off_location.ts +23 -4
  362. package/src/scripts/check_overlay_cascade_subdirs.ts +23 -4
  363. package/src/scripts/check_portability.ts +24 -3
  364. package/src/scripts/check_proposal.ts +0 -0
  365. package/src/scripts/check_public_catalog_links.ts +23 -4
  366. package/src/scripts/check_public_links.ts +23 -4
  367. package/src/scripts/check_quality_regression.ts +23 -2
  368. package/src/scripts/check_references.ts +23 -4
  369. package/src/scripts/check_release_includes_discovery.ts +23 -4
  370. package/src/scripts/check_release_pr_shape.ts +23 -4
  371. package/src/scripts/check_release_published.ts +23 -4
  372. package/src/scripts/check_release_trunk_sync.ts +23 -4
  373. package/src/scripts/check_reply_consistency.ts +23 -4
  374. package/src/scripts/check_roadmap_trackable.ts +23 -4
  375. package/src/scripts/check_role_doc_links.ts +23 -4
  376. package/src/scripts/check_safety_floor_untouched.ts +24 -4
  377. package/src/scripts/check_site_links.ts +23 -1
  378. package/src/scripts/check_skill_gaps.ts +23 -1
  379. package/src/scripts/check_skill_requires.ts +23 -4
  380. package/src/scripts/check_structural_breaking.ts +24 -4
  381. package/src/scripts/check_surface_tiers.ts +23 -4
  382. package/src/scripts/check_template_pin_drift.ts +23 -4
  383. package/src/scripts/check_test_coverage_diff.ts +23 -4
  384. package/src/scripts/check_token_optimizer_freshness.ts +23 -4
  385. package/src/scripts/check_token_quality_golden.ts +23 -2
  386. package/src/scripts/check_token_regression.ts +23 -2
  387. package/src/scripts/check_tracked_but_ignored.ts +24 -4
  388. package/src/scripts/check_trigger_evals.ts +23 -4
  389. package/src/scripts/check_trunk_drift.ts +24 -1
  390. package/src/scripts/check_update_banner.ts +23 -4
  391. package/src/scripts/ci_summary.ts +23 -4
  392. package/src/scripts/ci_time_ratio.ts +23 -4
  393. package/src/scripts/cluster_near_miss_patterns.ts +0 -0
  394. package/src/scripts/compile_router.ts +23 -4
  395. package/src/scripts/condense.ts +30 -31
  396. package/src/scripts/condense_memory.ts +24 -2
  397. package/src/scripts/config/packs.ts +24 -4
  398. package/src/scripts/config/session_profiles.ts +23 -4
  399. package/src/scripts/context_hygiene_hook.ts +24 -3
  400. package/src/scripts/cost_by_conversation.ts +23 -4
  401. package/src/scripts/cost_summary.ts +23 -4
  402. package/src/scripts/council_cli.ts +35 -7
  403. package/src/scripts/council_prune.ts +25 -2
  404. package/src/scripts/cross_repo_retrieve.ts +23 -4
  405. package/src/scripts/discovery_stats.ts +23 -4
  406. package/src/scripts/evidence_report.ts +23 -1
  407. package/src/scripts/export_replay_corpus.ts +23 -2
  408. package/src/scripts/extract_audit_patterns.ts +23 -1
  409. package/src/scripts/first_run_gate_hook.ts +24 -3
  410. package/src/scripts/gen_discovery_baseline.ts +23 -4
  411. package/src/scripts/generate_capabilities_index.ts +24 -5
  412. package/src/scripts/generate_capability_matrix.ts +23 -4
  413. package/src/scripts/generate_catalog.ts +23 -1
  414. package/src/scripts/generate_command_flows.ts +23 -4
  415. package/src/scripts/generate_cookbook.ts +23 -4
  416. package/src/scripts/generate_index.ts +23 -4
  417. package/src/scripts/generate_ownership_matrix.ts +23 -1
  418. package/src/scripts/generate_pack_manifests.ts +24 -5
  419. package/src/scripts/generate_role_experiences_catalog.ts +23 -4
  420. package/src/scripts/hooks/block_no_verify.ts +23 -4
  421. package/src/scripts/hooks/design_slop_hook.ts +24 -3
  422. package/src/scripts/hooks/dispatch_hook.ts +47 -14
  423. package/src/scripts/hooks/replay_hook.ts +23 -2
  424. package/src/scripts/hooks/rtk_wrap_hook.ts +24 -5
  425. package/src/scripts/hooks_doctor.ts +23 -2
  426. package/src/scripts/hooks_status.ts +23 -2
  427. package/src/scripts/injection_scan_hook.ts +24 -5
  428. package/src/scripts/install +23 -4
  429. package/src/scripts/install.ts +102 -44
  430. package/src/scripts/inventory_abstraction_budget.ts +23 -1
  431. package/src/scripts/inventory_frontmatter.ts +23 -1
  432. package/src/scripts/inventory_meta_layers.ts +23 -1
  433. package/src/scripts/iron_law_sha.ts +23 -4
  434. package/src/scripts/janitor.ts +23 -4
  435. package/src/scripts/knowledge_global_cli.ts +24 -2
  436. package/src/scripts/linked_projects_list.ts +23 -4
  437. package/src/scripts/lint_agent_security.ts +23 -4
  438. package/src/scripts/lint_agent_skill_names.ts +23 -4
  439. package/src/scripts/lint_agents_layout.ts +23 -4
  440. package/src/scripts/lint_agents_md.ts +23 -4
  441. package/src/scripts/lint_archived_skills.ts +23 -4
  442. package/src/scripts/lint_artefact_frontmatter.ts +23 -4
  443. package/src/scripts/lint_bench_ab.ts +23 -4
  444. package/src/scripts/lint_bench_corpus.ts +23 -2
  445. package/src/scripts/lint_command_flow_coverage.ts +23 -4
  446. package/src/scripts/lint_command_routing.ts +23 -4
  447. package/src/scripts/lint_command_tiers.ts +23 -2
  448. package/src/scripts/lint_command_verbs.ts +23 -4
  449. package/src/scripts/lint_commit_subjects.ts +24 -4
  450. package/src/scripts/lint_confusables.ts +25 -5
  451. package/src/scripts/lint_context_spine_usage.ts +23 -4
  452. package/src/scripts/lint_discovery_manifest.ts +23 -4
  453. package/src/scripts/lint_discovery_vocabulary.ts +23 -4
  454. package/src/scripts/lint_empty_roadmaps.ts +23 -4
  455. package/src/scripts/lint_eval_freshness.ts +23 -4
  456. package/src/scripts/lint_examples.ts +23 -4
  457. package/src/scripts/lint_explain_trace.ts +23 -4
  458. package/src/scripts/lint_featured_skills.ts +0 -0
  459. package/src/scripts/lint_flows.ts +23 -4
  460. package/src/scripts/lint_framework_leakage.ts +23 -4
  461. package/src/scripts/lint_frontmatter_boilerplate.ts +23 -4
  462. package/src/scripts/lint_ghostwriter_source.ts +23 -4
  463. package/src/scripts/lint_glama_drift.ts +75 -0
  464. package/src/scripts/lint_global_paths.ts +23 -2
  465. package/src/scripts/lint_handoffs.ts +23 -4
  466. package/src/scripts/lint_hidden_unicode.ts +24 -5
  467. package/src/scripts/lint_hook_concern_budget.ts +23 -4
  468. package/src/scripts/lint_hook_manifest.ts +23 -2
  469. package/src/scripts/lint_instruction_smuggling.ts +25 -5
  470. package/src/scripts/lint_legal_pack.ts +23 -1
  471. package/src/scripts/lint_load_context.ts +23 -4
  472. package/src/scripts/lint_marketplace.ts +24 -3
  473. package/src/scripts/lint_marketplace_install_completeness.ts +23 -4
  474. package/src/scripts/lint_mcp_config_security.ts +25 -5
  475. package/src/scripts/lint_mcp_registry_manifest.ts +23 -4
  476. package/src/scripts/lint_media_policy_linkage.ts +23 -4
  477. package/src/scripts/lint_missions.ts +23 -4
  478. package/src/scripts/lint_model_tier_coverage.ts +23 -4
  479. package/src/scripts/lint_namespace.ts +23 -4
  480. package/src/scripts/lint_namespace_collisions.ts +23 -4
  481. package/src/scripts/lint_new_skill_gate.ts +23 -4
  482. package/src/scripts/lint_no_new_atomic_commands.ts +23 -4
  483. package/src/scripts/lint_one_off_age.ts +23 -4
  484. package/src/scripts/lint_orchestration_dsl.ts +23 -4
  485. package/src/scripts/lint_orchestrator_auto_detect.ts +23 -4
  486. package/src/scripts/lint_pack_boundaries.ts +23 -4
  487. package/src/scripts/lint_pack_dependencies.ts +23 -2
  488. package/src/scripts/lint_pack_first_win.ts +23 -4
  489. package/src/scripts/lint_pack_risk_class.ts +23 -1
  490. package/src/scripts/lint_persona_governance.ts +23 -4
  491. package/src/scripts/lint_positioning.ts +23 -4
  492. package/src/scripts/lint_profile_overlay_set_only.ts +23 -4
  493. package/src/scripts/lint_readme_jargon.ts +23 -4
  494. package/src/scripts/lint_readme_size.ts +23 -4
  495. package/src/scripts/lint_regression.ts +23 -4
  496. package/src/scripts/lint_roadmap_blockers.ts +23 -4
  497. package/src/scripts/lint_roadmap_ci_steps.ts +23 -4
  498. package/src/scripts/lint_roadmap_complexity.ts +23 -4
  499. package/src/scripts/lint_roadmap_later_disposition.ts +23 -4
  500. package/src/scripts/lint_role_experiences.ts +23 -4
  501. package/src/scripts/lint_rule_interactions.ts +23 -4
  502. package/src/scripts/lint_rule_tiers.ts +24 -3
  503. package/src/scripts/lint_showcase_sessions.ts +23 -4
  504. package/src/scripts/lint_skill_frontmatter_safety.ts +25 -5
  505. package/src/scripts/lint_skill_originality.ts +23 -4
  506. package/src/scripts/lint_skill_tools.ts +23 -4
  507. package/src/scripts/lint_subagent_determinism.ts +23 -4
  508. package/src/scripts/lint_ticket_buildable.ts +23 -4
  509. package/src/scripts/lint_topics_yaml.ts +23 -4
  510. package/src/scripts/lint_trust_coherence.ts +23 -4
  511. package/src/scripts/lint_value_dashboard.ts +23 -4
  512. package/src/scripts/lint_workflow_security.ts +23 -4
  513. package/src/scripts/lint_workspace_boundary.ts +23 -4
  514. package/src/scripts/mcp_exec/safety_envelope.ts +105 -0
  515. package/src/scripts/mcp_parity_smoke.ts +23 -2
  516. package/src/scripts/mcp_registry_submit.sh +14 -3
  517. package/src/scripts/mcp_render.ts +23 -4
  518. package/src/scripts/mcp_server/__main__.ts +6 -8
  519. package/src/scripts/mcp_server/consumer_tool_catalog.json +78 -3
  520. package/src/scripts/mcp_server/tools.ts +731 -0
  521. package/src/scripts/mcp_telemetry_health.ts +23 -4
  522. package/src/scripts/mcp_telemetry_query.ts +23 -4
  523. package/src/scripts/mcp_telemetry_store.ts +23 -4
  524. package/src/scripts/measure_augment_budget.ts +23 -1
  525. package/src/scripts/measure_density.ts +23 -1
  526. package/src/scripts/measure_frugality_savings.ts +23 -1
  527. package/src/scripts/measure_markitdown_lift.ts +23 -1
  528. package/src/scripts/measure_patterns.ts +23 -1
  529. package/src/scripts/measure_projection_bytes.ts +23 -1
  530. package/src/scripts/measure_rule_budget.ts +23 -4
  531. package/src/scripts/measure_skill_reduction.ts +23 -1
  532. package/src/scripts/memory_hash.ts +24 -2
  533. package/src/scripts/memory_lookup.ts +24 -2
  534. package/src/scripts/memory_report.ts +24 -2
  535. package/src/scripts/memory_signal.ts +24 -2
  536. package/src/scripts/memory_status.ts +26 -2
  537. package/src/scripts/migrate_command_suggestions.ts +23 -4
  538. package/src/scripts/migrate_frontmatter_defaults.ts +23 -4
  539. package/src/scripts/migration_status.ts +25 -4
  540. package/src/scripts/mine_missing_guardrails.ts +23 -1
  541. package/src/scripts/mine_session.ts +23 -1
  542. package/src/scripts/minimal_safe_diff_hook.ts +24 -3
  543. package/src/scripts/new_skill.ts +23 -3
  544. package/src/scripts/onboarding_gate_hook.ts +24 -3
  545. package/src/scripts/parity/coverage_diff.ts +25 -3
  546. package/src/scripts/parity/phase_gate.ts +25 -4
  547. package/src/scripts/parity/replay.ts +25 -3
  548. package/src/scripts/pattern_share.ts +23 -4
  549. package/src/scripts/plan_physical_move.ts +23 -4
  550. package/src/scripts/prediction-pool/poisson_sim.ts +24 -3
  551. package/src/scripts/prediction-pool/pool_winsim.ts +24 -3
  552. package/src/scripts/prediction-pool/score_ev.ts +24 -3
  553. package/src/scripts/print_required_checks.ts +24 -4
  554. package/src/scripts/probe_host_compliance.ts +23 -2
  555. package/src/scripts/probe_projection_fidelity.ts +23 -1
  556. package/src/scripts/probe_skill_registration.ts +24 -2
  557. package/src/scripts/profile_staleness_hook.ts +24 -3
  558. package/src/scripts/profile_use.ts +23 -4
  559. package/src/scripts/project_thin_rules.ts +23 -3
  560. package/src/scripts/propose_modules_config.ts +23 -4
  561. package/src/scripts/prototype_lint_contradictions.ts +23 -1
  562. package/src/scripts/prove_pack_extractable.ts +23 -4
  563. package/src/scripts/readme_linter.ts +23 -3
  564. package/src/scripts/redact_hook_capture.ts +23 -4
  565. package/src/scripts/refine_ticket_detect.ts +23 -4
  566. package/src/scripts/release.ts +226 -43
  567. package/src/scripts/render_benchmark_composite.ts +23 -4
  568. package/src/scripts/render_benchmark_md.ts +23 -4
  569. package/src/scripts/roadmap_progress_hook.ts +46 -16
  570. package/src/scripts/run_skill_evals.ts +23 -4
  571. package/src/scripts/runtime_dispatcher.ts +23 -4
  572. package/src/scripts/runtime_registry.ts +23 -4
  573. package/src/scripts/score_skill_selection.ts +23 -1
  574. package/src/scripts/security_audit_config.ts +24 -5
  575. package/src/scripts/skill_collision_clusters.ts +23 -4
  576. package/src/scripts/skill_discovery.ts +23 -4
  577. package/src/scripts/skill_linter.ts +23 -2
  578. package/src/scripts/skill_preview.ts +23 -4
  579. package/src/scripts/skill_tools/audit_persona_coverage.ts +23 -1
  580. package/src/scripts/skill_tools/audit_user_type_coverage.ts +23 -1
  581. package/src/scripts/skill_tools/run_block_d_eval.ts +23 -1
  582. package/src/scripts/skill_tools/score_skill_relevance.ts +23 -1
  583. package/src/scripts/skill_tools/suggest_skill_for_task.ts +24 -1
  584. package/src/scripts/skill_usage_collect.ts +23 -4
  585. package/src/scripts/smoke_path_resolution.ts +23 -4
  586. package/src/scripts/smoke_quickstart.ts +23 -4
  587. package/src/scripts/snapshot_agent_outputs.ts +23 -4
  588. package/src/scripts/spotcheck_thin_root.ts +23 -4
  589. package/src/scripts/sync_agent_settings.ts +23 -4
  590. package/src/scripts/sync_github_metadata.ts +23 -4
  591. package/src/scripts/sync_gitignore.ts +23 -4
  592. package/src/scripts/telegraph_stats.ts +23 -4
  593. package/src/scripts/tool_registry.ts +24 -4
  594. package/src/scripts/trigger_coverage.ts +23 -4
  595. package/src/scripts/update_counts.ts +23 -4
  596. package/src/scripts/update_prices.ts +23 -1
  597. package/src/scripts/validate_agent_settings.ts +23 -4
  598. package/src/scripts/validate_decision_engine.ts +23 -4
  599. package/src/scripts/validate_discovery_manifest.ts +23 -4
  600. package/src/scripts/validate_frontmatter.ts +23 -2
  601. package/src/scripts/validate_pack_yaml.ts +0 -0
  602. package/src/scripts/validate_safe_paths.ts +24 -4
  603. package/src/scripts/validate_telegraph_carveouts.ts +23 -4
  604. package/src/scripts/verify_before_complete_hook.ts +24 -3
  605. package/src/scripts/verify_physical_move.ts +23 -4
  606. package/src/scripts/wrapper_freshness_hook.ts +107 -8
  607. package/tests/fixtures/hooks/README.md +92 -0
  608. package/tests/fixtures/hooks/agent_error.json +7 -0
  609. package/tests/fixtures/hooks/post_tool_use.json +13 -0
  610. package/tests/fixtures/hooks/pre_compact.json +7 -0
  611. package/tests/fixtures/hooks/pre_tool_use.json +9 -0
  612. package/tests/fixtures/hooks/session_end.json +6 -0
  613. package/tests/fixtures/hooks/session_start.json +6 -0
  614. package/tests/fixtures/hooks/stop.json +6 -0
  615. package/tests/fixtures/hooks/user_prompt_submit.json +7 -0
@@ -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
@@ -104,13 +104,11 @@ Goal: locate the failure in a single component, layer, or call site.
104
104
  recent dependency updates, config edits, infra changes.
105
105
  4. **Consult memory for prior matches.** Via
106
106
  [`memory-access`](../../../docs/guidelines/agent-infra/memory-access.md):
107
- ```python
108
- from scripts.memory_lookup import retrieve
109
- priors = retrieve(
110
- types=["incident-learnings", "historical-patterns"],
111
- keys=[<error class>, <failing path(s)>],
112
- limit=3,
113
- )
107
+ ```bash
108
+ agent-config memory:lookup \
109
+ --types incident-learnings,historical-patterns \
110
+ --key <error class> --key <failing path> \
111
+ --limit 3
114
112
  ```
115
113
  A matching `incident-learning` may already name the root cause, the
116
114
  fix, and the regression test. A matching `historical-pattern`
@@ -53,10 +53,10 @@ one-line comment naming the design source.
53
53
 
54
54
  Token authoring (DTCG 3-layer model, CSS-var/Tailwind generation) lives
55
55
  in [`design-tokens`](../design-tokens/SKILL.md); its
56
- `tokens.py validate --dir <path>` is the **single token-discipline
56
+ `tokens.ts validate --dir <path>` is the **single token-discipline
57
57
  linter** — the mechanical check behind this rule (no hardcoded hex / px /
58
58
  rem outside the token files). Greenfield Tailwind config: bundled
59
- `scripts/tailwind_config_gen.py` (Apache-2.0-derived, pure templating)
59
+ `scripts/tailwind_config_gen.ts` (Apache-2.0-derived, pure templating)
60
60
  scaffolds `tailwind.config.{js,ts}` per framework.
61
61
 
62
62
  ### 2. Compose, don't inline
@@ -23,9 +23,9 @@
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
- const PROG = 'tailwind_config_gen.py';
28
+ const PROG = 'tailwind_config_gen';
29
29
 
30
30
  // Mirror argparse's wrapped usage block (80-col default; non-tty). Used for
31
31
  // the invalid-choice / unrecognized-argument error paths.
@@ -553,9 +553,30 @@ export function main(argv: string[] = process.argv.slice(2)): number {
553
553
  return success ? 0 : 1;
554
554
  }
555
555
 
556
+ function _isCliEntry(): boolean {
557
+ if (process.argv[1] === undefined) {
558
+ return false;
559
+ }
560
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
561
+ if (import.meta.url === argvUrl) {
562
+ return true;
563
+ }
564
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
565
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
566
+ // import.meta.url is the resolved real path while argv[1] keeps the
567
+ // symlink path. Compare realpaths so the entry guard still fires
568
+ // (without this the CLI silently no-ops when run through a symlink).
569
+ try {
570
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
571
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
572
+ return here === argv;
573
+ } catch {
574
+ return false;
575
+ }
576
+ }
577
+
556
578
  const _invokedDirectly =
557
- process.argv[1] !== undefined &&
558
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
579
+ _isCliEntry();
559
580
  if (_invokedDirectly) {
560
581
  process.exitCode = main();
561
582
  }
@@ -95,7 +95,7 @@ INTENT
95
95
  cited asset's trigger keywords or scope, update the matching row in
96
96
  this skill in the same commit (enforced by
97
97
  [`token-optimizer-maintenance`](../../rules/token-optimizer-maintenance.md)
98
- rule + `scripts/check_token_optimizer_freshness.py` CI gate).
98
+ rule + `scripts/check_token_optimizer_freshness.ts` CI gate).
99
99
  - Tree must stay scannable (≤ 50 lines incl. labels). Catalog rows
100
100
  carry the long form.
101
101
  - Authoritative-link assets (`rtk` upstream, `markitdown` upstream,
@@ -49,7 +49,7 @@ degrades gracefully: with no brand layer, only stage 1 runs.
49
49
  xl / 2xl / 3xl`; set `line-height` (1.5 for body, 1.2 for display);
50
50
  assign weights (400 body, 600–700 heading).
51
51
  4. **Emit DTCG `$type: "typography"` tokens** through `design-tokens`
52
- (`scripts/tokens.py`) — add a `typography` section to `tokens.json` with
52
+ (`scripts/tokens.ts`) — add a `typography` section to `tokens.json` with
53
53
  `$type: "typography"` and `$value` objects carrying `fontFamily`,
54
54
  `fontSize`, `fontWeight`, `lineHeight`.
55
55
  5. **Verify** — confirm both chosen fonts exist on Google Fonts (check the
@@ -52,13 +52,11 @@ Verify the request doesn't conflict with:
52
52
  shared abstraction (see
53
53
  [`memory-access`](../../../docs/guidelines/agent-infra/memory-access.md)):
54
54
 
55
- ```python
56
- from scripts.memory_lookup import retrieve
57
- matches = retrieve(
58
- types=["product-rules", "domain-invariants"],
59
- keys=[<affected domain>, <affected paths>],
60
- limit=5,
61
- )
55
+ ```bash
56
+ agent-config memory:lookup \
57
+ --types product-rules,domain-invariants \
58
+ --key <affected domain> --key <affected path> \
59
+ --limit 5
62
60
  ```
63
61
 
64
62
  A product rule is an intentional business constraint
@@ -93,6 +93,15 @@ on the changed scope."* — not *"everything looks good"*.
93
93
 
94
94
  ## The end-of-work sequence
95
95
 
96
+ **Gate zero:** when `quality.local_auto_run` is `false` or missing (the
97
+ default), steps 2–3 below do NOT run — user runs quality tools
98
+ manually, remote CI is the authoritative gate (see
99
+ [`quality-tools` § Execution policy](../quality-tools/SKILL.md)). Run
100
+ only the narrowest probe the claim needs (step 1, a `curl`, a syntax
101
+ check on the edited file) and close with *"quality gates delegated to
102
+ remote CI"* — never a pass claim for tools that did not run. Full
103
+ sequence applies when `local_auto_run: true`.
104
+
96
105
  When all code changes are done and you are ready to report completion:
97
106
 
98
107
  1. **Targeted tests** — the test(s) covering the changed code pass.
@@ -176,7 +185,8 @@ When reporting completion to the user:
176
185
  * Do NOT suppress warnings or skip tests to pass the gate
177
186
  * Do NOT report only the last line of output — read the whole thing
178
187
  * Do NOT run the full quality pipeline between intermediate edits —
179
- run it once at the end
188
+ and under `quality.local_auto_run: false` (the default) do NOT run
189
+ it at the end either; remote CI is the gate
180
190
 
181
191
  ## When to hand over to another skill
182
192
 
@@ -196,6 +206,8 @@ Before sending a completion message:
196
206
  * [ ] Output is quoted with numeric counts, not paraphrased
197
207
  * [ ] No warnings or skips are hidden
198
208
  * [ ] Targeted tests green → full suite green → quality pipeline clean
209
+ (`local_auto_run: true` only; under the default `false` state
210
+ "quality gates delegated to remote CI" instead)
199
211
  * [ ] `git status` reflects only the intended change set
200
212
  * [ ] If `git status --short` shows untracked files, the report lists
201
213
  them verbatim under "Untracked files"
@@ -33,7 +33,7 @@ exists and is the source of truth.
33
33
  ## Template
34
34
 
35
35
  This block defines the personal and project-level settings that
36
- `scripts/install.py` (via `config/agent-settings.template.yml`)
36
+ `scripts/install.ts` (via `config/agent-settings.template.yml`)
37
37
  writes to `.agent-settings.yml` on first install. Subsequent edits are
38
38
  made by the user directly or by the agent on request, following the
39
39
  [section-aware merge rules](../docs/guidelines/agent-infra/layered-settings.md#section-aware-merge-rules).
@@ -54,15 +54,16 @@ made by the user directly or by the agent on request, following the
54
54
  # essential = kernel + the lift-carrying rules (~3.3x, keeps the weak-host
55
55
  # discipline lift; the full load's residual is not significant).
56
56
  # full = every rule tier (~11.7x). EXPERIMENTAL opt-in only.
57
- # auto = resolve per session against host-capabilities.yml
58
- # (measured-null model -> off, otherwise -> essential).
57
+ # auto = resolve per session against host-capabilities.yml — measured
58
+ # NULL-lift model -> off; unmeasured Claude-family -> essential;
59
+ # unmeasured non-Claude -> off (P2 verdict, vendor-granular).
59
60
  #
60
61
  # When set, this key WINS over the legacy rule_loading_tier below
61
62
  # (mapping when absent: minimal->off, balanced->essential, full->full).
62
- # The installer fills it per preset (minimal->off, balanced->essential,
63
- # full->full — behaviour-preserving); `auto` is the evidence-gated flip
64
- # target (roadmap Phase 4).
65
- discipline_profile: essential
63
+ # The installer fills it per preset: minimal->off, balanced->auto,
64
+ # full->full (P2-verdict council 2026-07-07 — the non-Claude replication
65
+ # failed, so auto enables the lift only where measured).
66
+ discipline_profile: auto
66
67
 
67
68
  # --- Cost profile (legacy knob — superseded by discipline_profile) ---
68
69
  #
@@ -164,9 +165,9 @@ eloquent:
164
165
  #
165
166
  # Persistent JSONL log at agents/runtime/.agent-chat-history (git-ignored under /agents/runtime/).
166
167
  # Keeps a durable record of the conversation so a crashed or switched
167
- # agent session can be resumed. See scripts/chat_history.py for the API.
168
+ # agent session can be resumed. See scripts/chat_history.ts for the API.
168
169
  #
169
- # Defaults below are placeholders — scripts/install.py substitutes them
170
+ # Defaults below are placeholders — scripts/install.ts substitutes them
170
171
  # per rule_loading_tier (see config/profiles/*.ini).
171
172
  chat_history:
172
173
  # Log chat events to disk (true, false)
@@ -225,9 +226,9 @@ hooks:
225
226
  chat_history:
226
227
  enabled: true
227
228
  # Override path to the chat-history CLI (defaults to
228
- # scripts/chat_history.py). Only set this when the script lives
229
+ # scripts/chat_history.ts). Only set this when the script lives
229
230
  # outside the standard location.
230
- # script: scripts/chat_history.py
231
+ # script: scripts/chat_history.ts
231
232
 
232
233
  # --- Optional pipelines ---
233
234
  pipelines:
@@ -264,20 +265,28 @@ roadmap:
264
265
  # end_of_roadmap = once, before archiving (default — fastest, fewest tokens)
265
266
  # per_phase = once after every completed phase
266
267
  # per_step = after every completed step (legacy; highest token cost)
267
- # Iron Law `verify-before-complete` still applies — fresh output is
268
- # mandatory before any "roadmap complete" claim, regardless of cadence.
268
+ # `quality.local_auto_run: false` (the default) suppresses local
269
+ # pipeline runs at EVERY cadence — remote CI is the gate; this knob
270
+ # only matters when `local_auto_run` is `true`.
269
271
  quality_cadence: end_of_roadmap
270
272
 
271
273
  # --- Quality / CI execution ---
272
274
  quality:
273
275
  # Run local quality / CI tasks and tests autonomously (true, false)
274
- # true = agent runs the quality pipeline whenever work is ready
275
- # for verification, without asking (default)
276
- # false = agent asks before running quality tools / tests locally
276
+ # false = default. Agent NEVER runs quality tools / full test suites
277
+ # proactively — and does not ask. The user runs them manually;
278
+ # remote CI is the authoritative gate. The agent runs one ONLY
279
+ # on: (1) explicit ask this turn (e.g. /quality-fix), (2) a
280
+ # concrete CI failure — run exactly that failing check, or
281
+ # (3) the new-gate carve-out below.
282
+ # true = opt-in legacy: agent runs the quality pipeline whenever
283
+ # work is ready for verification, without asking.
277
284
  # Carve-out: NEW CI gates / smoke tests / test files MUST run
278
285
  # locally regardless of this flag — without execution the gate is
279
- # unverified evidence. Iron Law `verify-before-complete` still applies.
280
- local_auto_run: true
286
+ # unverified evidence. Iron Law `verify-before-complete` still applies:
287
+ # suppressed runs are surfaced ("quality gates delegated to remote CI"),
288
+ # never claimed as passing.
289
+ local_auto_run: false
281
290
 
282
291
  # Wait for remote CI to finish on the PR / pipeline (true, false)
283
292
  # true = poll GitHub check-runs / pipeline after push and report
@@ -436,9 +445,9 @@ verbosity:
436
445
  # it") in skill bodies. false = act and emit the result.
437
446
  intent_announcements: false
438
447
 
439
- # Script stdout chatter from `scripts/*.py`, `scripts/*.sh`, and
448
+ # Script stdout chatter from `scripts/*.ts`, `scripts/*.sh`, and
440
449
  # `.augment/scripts/`. Read by the helper module
441
- # `scripts/_lib/script_output.py`.
450
+ # `scripts/_lib/script_output.ts`.
442
451
  # silent = stderr only; success = no output
443
452
  # minimal = one summary line per script (default)
444
453
  # verbose = pre-Phase-10 behaviour (per-step prints)
@@ -515,7 +524,7 @@ linked_projects_max_files: 20000
515
524
  ## Settings Reference
516
525
 
517
526
  Personal and project-level settings (initial file written by
518
- `scripts/install.py`, edits follow the merge rules in
527
+ `scripts/install.ts`, edits follow the merge rules in
519
528
  [`layered-settings`](../docs/guidelines/agent-infra/layered-settings.md#section-aware-merge-rules)).
520
529
  **Key paths use dot-notation** to denote nesting: `personal.user_name`
521
530
  lives under `personal:` in YAML.
@@ -544,18 +553,18 @@ the canonical narrative lives in
544
553
  | `chat_history.frequency` | `per_turn`, `per_phase`, `per_tool` | per profile | Logging granularity. Defaults: `minimal`→`per_turn`, `balanced`→`per_phase`, `full`→`per_tool`. |
545
554
  | `chat_history.max_size_kb` | integer | per profile | Max file size before overflow handling. Defaults: `minimal`→`128`, `balanced`→`256`, `full`→`512`. |
546
555
  | `chat_history.on_overflow` | `rotate`, `condense` | per profile | On overflow: `rotate` drops oldest entries; `condense` marks the file for summarization on the next turn. Defaults: `minimal`/`balanced`→`rotate`, `full`→`condense`. |
547
- | `chat_history.text_limits.{user,agent,tool,phase}` | integer (chars) | `user=0`, `agent=5000`, `tool=200`, `phase=200` | Per-entry-type text-length cap. `0` = verbatim, no slice. `N > 0` = collapse whitespace, slice to N chars, append `" … [+K chars]"` so the log self-reports truncation. Defaults match `DEFAULT_TEXT_LIMITS` in `scripts/chat_history.py`. |
556
+ | `chat_history.text_limits.{user,agent,tool,phase}` | integer (chars) | `user=0`, `agent=5000`, `tool=200`, `phase=200` | Per-entry-type text-length cap. `0` = verbatim, no slice. `N > 0` = collapse whitespace, slice to N chars, append `" … [+K chars]"` so the log self-reports truncation. Defaults match `DEFAULT_TEXT_LIMITS` in `scripts/chat_history.ts`. |
548
557
  | `hooks.enabled` | `true`, `false` | `false` | Master switch for the work-engine hook layer. When `false` (default) the registry stays empty and golden replay is byte-stable. See [`agents/settings/contexts/work-engine-hooks.md`](../../../agents/settings/contexts/work-engine-hooks.md). |
549
558
  | `hooks.trace` | `true`, `false` | `false` | Emit per-event trace lines on stderr. Useful for debugging; off by default because it is noisy. |
550
559
  | `hooks.halt_surface_audit` | `true`, `false` | `true` | Defense-in-depth check that every halt surfaced by the dispatcher carries the expected shape. Cheap. |
551
560
  | `hooks.state_shape_validation` | `true`, `false` | `true` | Re-run the state schema validator on `AFTER_LOAD` and `BEFORE_SAVE`. Cheap, catches drift. |
552
561
  | `hooks.directive_set_guard` | `true`, `false` | `true` | Verify the dispatcher-resolved directive set matches the input envelope intent. Cheap, catches routing drift. |
553
562
  | `hooks.chat_history.enabled` | `true`, `false` | `true` | Register the chat-history hooks (`append` on `after_step`, `halt_append` on `on_halt`). Gated by **both** this flag AND `chat_history.enabled`; either off → no chat-history hook registers. Schema v4: every entry self-identifies via a 16-char session fingerprint, no ownership/sidecar layer. |
554
- | `hooks.chat_history.script` | path | `scripts/chat_history.py` | Override path to the chat-history CLI. Set only when the script lives outside the standard location. |
563
+ | `hooks.chat_history.script` | path | `scripts/chat_history.ts` | Override path to the chat-history CLI. Set only when the script lives outside the standard location. |
555
564
  | `pipelines.skill_improvement` | `true`, `false` | `true` | When `true`: propose learning capture after meaningful tasks. When `false`: silent. Included in every profile except `custom`. |
556
565
  | `roadmap.skip_pre_run_gate` | `true`, `false` | `true` | When `true` (default): `/roadmap:process-step\|phase\|full` skips the interactive pre-run summary and starts the loop immediately — the resolved roadmap, cadence, and council are surfaced inline so an unwanted pick can still be aborted. When `false`: the loop shows the pre-run summary with numbered options (Go / Different roadmap / Different scope / Toggle council / Abort) and waits. The gate is always shown — regardless of this flag — when the roadmap is ambiguous (multiple active, none named) or a scope / cadence conflict has no sensible default. |
557
- | `roadmap.quality_cadence` | `end_of_roadmap`, `per_phase`, `per_step` | `end_of_roadmap` | When `/roadmap:process-step|phase|full` runs the project's quality pipeline. Default skips per-step / per-phase runs and gates only the final archival. `per_phase` runs once after every phase; `per_step` is the legacy verbose mode. Step checkboxes and the dashboard are always updated regardless. `verify-before-complete` still requires fresh output before any "roadmap complete" claim. |
558
- | `quality.local_auto_run` | `true`, `false` | `true` | When `true`: agent runs the project's quality pipeline (`task ci`, `make test`, `npm run check`, PHPStan, ECS, Rector, test suites) autonomously when work is ready for verification. When `false`: agent asks before running locally. **Carve-out**: NEW CI gates / smoke tests / test files MUST run locally regardless of this flag — without execution the new gate is unverified evidence. Iron Law `verify-before-complete` still applies; suppressed runs require the agent to surface the gap before claiming completion. |
566
+ | `roadmap.quality_cadence` | `end_of_roadmap`, `per_phase`, `per_step` | `end_of_roadmap` | When `/roadmap:process-step|phase|full` runs the project's quality pipeline — only relevant when `quality.local_auto_run` is `true`; when it is `false` (the default) local pipeline runs are suppressed at every cadence and remote CI is the gate. Default skips per-step / per-phase runs and gates only the final archival. `per_phase` runs once after every phase; `per_step` is the legacy verbose mode. Step checkboxes and the dashboard are always updated regardless. |
567
+ | `quality.local_auto_run` | `true`, `false` | `false` | When `false` (default): agent NEVER runs the project's quality pipeline (`task ci`, `make test`, `npm run check`, PHPStan, ECS, Rector, test suites) proactively — and does not ask. The user runs quality tools manually; remote CI is the authoritative gate. The agent runs one only on (1) an explicit ask this turn, (2) a concrete CI failure (run exactly that failing check), or (3) the new-gate carve-out. When `true`: opt-in legacy — agent runs the pipeline autonomously when work is ready for verification. **Carve-out**: NEW CI gates / smoke tests / test files MUST run locally regardless of this flag — without execution the new gate is unverified evidence. Iron Law `verify-before-complete` still applies; suppressed runs are surfaced ("quality gates delegated to remote CI"), never claimed as passing. |
559
568
  | `quality.wait_for_remote_ci` | `true`, `false` | `false` | When `true`: after `git push`, the agent polls GitHub check-runs / pipeline status on the PR and reports green / red before handing back. When `false`: agent pushes and hands back immediately; the user inspects CI themselves (default — saves agent runtime and tokens). |
560
569
  | `subagents.implementer_model` | model alias or empty | _(empty)_ | Model for implementer subagents. Empty = same tier as session model. See [subagent-configuration](../contexts/subagent-configuration.md). |
561
570
  | `subagents.judge_model` | model alias or empty | _(empty)_ | Model for judge subagents. Empty = one tier above implementer (opus if sonnet, sonnet if haiku). |
@@ -37,9 +37,9 @@ schema_version: 1
37
37
  # disables the pin (resolver picks the latest release; only safe for
38
38
  # greenfield projects). Ranges (^, ~, >=) are NOT supported.
39
39
  # CI guard: a release bump of `package.json` must update this value
40
- # in lockstep — see scripts/check_template_pin_drift.py (road-to-
40
+ # in lockstep — see scripts/check_template_pin_drift.ts (road-to-
41
41
  # portable-runtime-and-update-check P3.3).
42
- agent_config_version: "8.1.0"
42
+ agent_config_version: "8.3.0"
43
43
 
44
44
  # --- Project identity ---
45
45
  project:
@@ -65,7 +65,7 @@ project:
65
65
  # module-aware surface skips its module branch — the project is
66
66
  # treated as a flat repo.
67
67
  #
68
- # Populated automatically by `scripts/install.py` on a fresh install
68
+ # Populated automatically by `scripts/install.ts` on a fresh install
69
69
  # when an `app/Modules/`, `src/modules/`, `packages/`, `internal/`, or
70
70
  # similar shape is detected. Set manually for custom layouts. Lockable
71
71
  # via `locked_keys: [modules.root_paths]` for compliance-critical
@@ -10,7 +10,7 @@
10
10
  # REDACTION IS MANDATORY — see road-to-engineering-memory.md.
11
11
  # Every entry is a PATTERN + CONSEQUENCE + GUARDRAIL.
12
12
  # Every entry that contains a customer name, internal URL, PII, or
13
- # secret is rejected by `scripts/check_memory.py`. No opt-out.
13
+ # secret is rejected by `scripts/check_memory.ts`. No opt-out.
14
14
  #
15
15
  # BAD entry (auto-rejected):
16
16
  # "On 2026-03-14 customer ACME hit a rate limit and Redis died."
@@ -6,7 +6,7 @@
6
6
  #
7
7
  # An agent drafting a rule/skill/guideline change in a consumer project
8
8
  # produces this doc and hands it to `upstream-contribute`. The gate
9
- # (`scripts/check_proposal.py`) verifies evidence, scope, and
9
+ # (`scripts/check_proposal.ts`) verifies evidence, scope, and
10
10
  # portability before a PR is opened.
11
11
  #
12
12
  # Copy this file, fill every field, run `task check-proposal`, commit.
@@ -92,10 +92,10 @@ under `agents/drafts/<proposal_id>.md` and link from here.
92
92
  List the checks the draft MUST pass before the gate signs off. The
93
93
  gate auto-runs every item in this list.
94
94
 
95
- - [ ] Passes `scripts/skill_linter.py` with zero errors
96
- - [ ] Passes `scripts/check_portability.py` (no project-specific
95
+ - [ ] Passes `scripts/skill_linter.ts` with zero errors
96
+ - [ ] Passes `scripts/check_portability.ts` (no project-specific
97
97
  identifiers)
98
- - [ ] References in the draft all resolve (`check_references.py`)
98
+ - [ ] References in the draft all resolve (`check_references.ts`)
99
99
  - [ ] Size within budget for its type (per `size-enforcement` rule)
100
100
  - [ ] `preservation-guard` check: if `Replaces existing`, justify
101
101
  the replacement below.
@@ -127,7 +127,7 @@ resolve at agent runtime. The patterns below are correct by design:
127
127
  `.augment/skills/`, `.augment/commands/` via installer-managed
128
128
  symlinks. Missing-file reports here are renderer artifacts.
129
129
  - **Body-link forms `../docs/guidelines/...`** (single-up). This is
130
- the post-rewrite shape produced by `scripts/condense.py`. The
130
+ the post-rewrite shape produced by `scripts/condense.ts`. The
131
131
  condensed `dist/agent-src/rules/` tree is one level deeper than the
132
132
  source `.agent-src.uncondensed/rules/`, so the rewriter collapses
133
133
  `../../docs/...` to `../docs/...`. Both forms are expected — one in
@@ -1,7 +1,7 @@
1
1
  # Memory Hygiene — template shipped by agent-config
2
2
  #
3
3
  # Copy this file to `.github/workflows/memory-hygiene.yml` in the consumer
4
- # project. It runs `scripts/check_memory.py` on a weekly schedule and
4
+ # project. It runs `agent-config memory:check` on a weekly schedule and
5
5
  # opens (or updates) a single tracking issue when stale entries are
6
6
  # found in `agents/memory/`.
7
7
  #
@@ -9,9 +9,12 @@
9
9
  # is a review signal, not a merge blocker. See
10
10
  # `road-to-engineering-memory.md` Phase 4 for the rationale.
11
11
  #
12
+ # Runtime: Node/tsx (py2ts migration) — the check runs through the
13
+ # `@event4u/agent-config` package via npx (`memory:check` resolves a
14
+ # local `scripts/check_memory.ts` customization first, then the packaged
15
+ # copy); no Python required.
16
+ #
12
17
  # Prerequisites:
13
- # - `scripts/check_memory.py` copied from
14
- # `.augment/templates/scripts/check_memory.py` into the consumer repo.
15
18
  # - At least one file exists under `agents/memory/` — absence short-
16
19
  # circuits the job with an informational log, no issue opened.
17
20
 
@@ -36,13 +39,10 @@ jobs:
36
39
  - name: Check out repository
37
40
  uses: actions/checkout@v4
38
41
 
39
- - name: Set up Python
40
- uses: actions/setup-python@v5
42
+ - name: Set up Node
43
+ uses: actions/setup-node@v4
41
44
  with:
42
- python-version: "3.12"
43
-
44
- - name: Install PyYAML
45
- run: pip install pyyaml
45
+ node-version: "22"
46
46
 
47
47
  - name: Short-circuit if no memory files
48
48
  id: has_memory
@@ -63,7 +63,7 @@ jobs:
63
63
  echo "## Memory hygiene report"
64
64
  echo
65
65
  echo '```'
66
- python3 scripts/check_memory.py --path agents/memory
66
+ npx --yes @event4u/agent-config memory:check --path agents/memory
67
67
  exit_code=$?
68
68
  echo '```'
69
69
  } > staleness.md