@event4u/agent-config 8.1.0 → 8.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (591) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +50 -297
  3. package/dist/agent-src/commands/agents/init.md +3 -3
  4. package/dist/agent-src/commands/chat-history/import.md +5 -5
  5. package/dist/agent-src/commands/chat-history.md +1 -1
  6. package/dist/agent-src/commands/condense.md +1 -1
  7. package/dist/agent-src/commands/context/create.md +1 -1
  8. package/dist/agent-src/commands/council/analysis.md +2 -2
  9. package/dist/agent-src/commands/council/default.md +3 -3
  10. package/dist/agent-src/commands/council/design.md +2 -2
  11. package/dist/agent-src/commands/council/optimize.md +1 -1
  12. package/dist/agent-src/commands/council/pr.md +2 -2
  13. package/dist/agent-src/commands/council.md +1 -1
  14. package/dist/agent-src/commands/feature/plan.md +1 -1
  15. package/dist/agent-src/commands/ghostwriter/list.md +1 -1
  16. package/dist/agent-src/commands/ghostwriter/write.md +1 -1
  17. package/dist/agent-src/commands/ghostwriter.md +1 -1
  18. package/dist/agent-src/commands/implement-ticket.md +2 -2
  19. package/dist/agent-src/commands/judge/on-diff.md +1 -1
  20. package/dist/agent-src/commands/judge/steps.md +3 -1
  21. package/dist/agent-src/commands/memory/add.md +2 -2
  22. package/dist/agent-src/commands/memory/learn-low-impact.md +1 -1
  23. package/dist/agent-src/commands/memory/load.md +1 -1
  24. package/dist/agent-src/commands/memory/mine-session.md +1 -1
  25. package/dist/agent-src/commands/memory/promote.md +1 -1
  26. package/dist/agent-src/commands/memory/propose.md +1 -1
  27. package/dist/agent-src/commands/mission/upgrade.md +1 -1
  28. package/dist/agent-src/commands/module/explore.md +3 -3
  29. package/dist/agent-src/commands/optimize/agents-dir.md +1 -1
  30. package/dist/agent-src/commands/optimize/skills.md +1 -1
  31. package/dist/agent-src/commands/optimize-project.md +1 -1
  32. package/dist/agent-src/commands/orchestrate.md +2 -2
  33. package/dist/agent-src/commands/project-analyze.md +1 -1
  34. package/dist/agent-src/commands/project-health.md +1 -1
  35. package/dist/agent-src/commands/roadmap/ai-council.md +1 -1
  36. package/dist/agent-src/commands/roadmap/create.md +2 -2
  37. package/dist/agent-src/commands/roadmap/process-full.md +3 -1
  38. package/dist/agent-src/commands/roadmap/process-phase.md +4 -2
  39. package/dist/agent-src/commands/roadmap/process-step.md +3 -1
  40. package/dist/agent-src/commands/security-audit-config.md +1 -1
  41. package/dist/agent-src/commands/sync-agent-settings.md +7 -7
  42. package/dist/agent-src/commands/sync-gitignore/fix.md +3 -3
  43. package/dist/agent-src/commands/sync-gitignore.md +4 -4
  44. package/dist/agent-src/commands/work.md +3 -3
  45. package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
  46. package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +2 -2
  47. package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +1 -1
  48. package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +8 -7
  49. package/dist/agent-src/contexts/execution/evidence-discipline.md +2 -2
  50. package/dist/agent-src/contexts/execution/roadmap-process-loop.md +9 -4
  51. package/dist/agent-src/contexts/execution/toolchain-resolver.md +10 -9
  52. package/dist/agent-src/contexts/execution/verification-mechanics.md +13 -1
  53. package/dist/agent-src/packs/README.md +1 -1
  54. package/dist/agent-src/presets/README.md +1 -1
  55. package/dist/agent-src/profiles/README.md +1 -1
  56. package/dist/agent-src/rules/architecture.md +2 -2
  57. package/dist/agent-src/rules/context-hygiene.md +2 -2
  58. package/dist/agent-src/rules/fast-path-marker-visibility.md +1 -1
  59. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +1 -1
  60. package/dist/agent-src/rules/linked-projects-onboarding-gate.md +1 -1
  61. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +3 -3
  62. package/dist/agent-src/rules/media-governance-routing.md +1 -1
  63. package/dist/agent-src/rules/no-roadmap-references.md +3 -3
  64. package/dist/agent-src/rules/preservation-guard.md +2 -2
  65. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +6 -5
  66. package/dist/agent-src/rules/roadmap-progress-sync.md +3 -3
  67. package/dist/agent-src/rules/security-sensitive-stop.md +7 -9
  68. package/dist/agent-src/rules/source-confidentiality.md +1 -1
  69. package/dist/agent-src/rules/telegraph-speak.md +1 -1
  70. package/dist/agent-src/rules/token-optimizer-maintenance.md +1 -1
  71. package/dist/agent-src/rules/ui-audit-gate.md +1 -1
  72. package/dist/agent-src/scripts/archive_completed_roadmaps.ts +22 -4
  73. package/dist/agent-src/scripts/update_roadmap_progress.ts +29 -1
  74. package/dist/agent-src/skills/accessibility-auditor/SKILL.md +3 -2
  75. package/dist/agent-src/skills/adr-create/SKILL.md +8 -6
  76. package/dist/agent-src/skills/agent-docs-writing/SKILL.md +1 -1
  77. package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +2 -2
  78. package/dist/agent-src/skills/ai-council/SKILL.md +15 -15
  79. package/dist/agent-src/skills/api-design/SKILL.md +1 -1
  80. package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -1
  81. package/dist/agent-src/skills/authz-review/SKILL.md +1 -1
  82. package/dist/agent-src/skills/blade-ui/SKILL.md +11 -10
  83. package/dist/agent-src/skills/blameless-post-mortem/SKILL.md +9 -8
  84. package/dist/agent-src/skills/code-review/SKILL.md +3 -4
  85. package/dist/agent-src/skills/command-routing/SKILL.md +3 -3
  86. package/dist/agent-src/skills/command-writing/SKILL.md +3 -3
  87. package/dist/agent-src/skills/condense-memory/SKILL.md +2 -2
  88. package/dist/agent-src/skills/context-authoring/SKILL.md +1 -1
  89. package/dist/agent-src/skills/context-document/SKILL.md +1 -1
  90. package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +1 -1
  91. package/dist/agent-src/skills/corpus-grounding/SKILL.md +16 -11
  92. package/dist/agent-src/skills/corpus-grounding/scripts/ground.ts +24 -3
  93. package/dist/agent-src/skills/dashboard-design/SKILL.md +2 -1
  94. package/dist/agent-src/skills/database/SKILL.md +2 -1
  95. package/dist/agent-src/skills/description-assist/SKILL.md +6 -6
  96. package/dist/agent-src/skills/design-intelligence/SKILL.md +6 -5
  97. package/dist/agent-src/skills/design-tokens/SKILL.md +5 -5
  98. package/dist/agent-src/skills/design-tokens/scripts/tokens.ts +24 -3
  99. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +3 -3
  100. package/dist/agent-src/skills/fe-design/SKILL.md +7 -7
  101. package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +11 -4
  102. package/dist/agent-src/skills/flux/SKILL.md +10 -9
  103. package/dist/agent-src/skills/git-workflow/SKILL.md +4 -5
  104. package/dist/agent-src/skills/guideline-writing/SKILL.md +2 -2
  105. package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +2 -2
  106. package/dist/agent-src/skills/livewire/SKILL.md +10 -9
  107. package/dist/agent-src/skills/memory-consolidation/SKILL.md +2 -2
  108. package/dist/agent-src/skills/module-detect-on-the-fly/SKILL.md +5 -5
  109. package/dist/agent-src/skills/module-management/SKILL.md +2 -2
  110. package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +11 -11
  111. package/dist/agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +6 -6
  112. package/dist/agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +1 -1
  113. package/dist/agent-src/skills/premortem/SKILL.md +1 -1
  114. package/dist/agent-src/skills/project-docs/SKILL.md +1 -1
  115. package/dist/agent-src/skills/quality-tools/SKILL.md +26 -2
  116. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +8 -7
  117. package/dist/agent-src/skills/react-shadcn-ui/scripts/shadcn_add.ts +31 -10
  118. package/dist/agent-src/skills/refine-prompt/SKILL.md +14 -14
  119. package/dist/agent-src/skills/refine-ticket/SKILL.md +24 -25
  120. package/dist/agent-src/skills/refine-ticket/detection-map.yml +1 -1
  121. package/dist/agent-src/skills/review-routing/SKILL.md +6 -7
  122. package/dist/agent-src/skills/roadmap-management/SKILL.md +11 -6
  123. package/dist/agent-src/skills/rule-refactor/SKILL.md +1 -1
  124. package/dist/agent-src/skills/rule-writing/SKILL.md +5 -5
  125. package/dist/agent-src/skills/script-writing/SKILL.md +28 -41
  126. package/dist/agent-src/skills/skill-writing/SKILL.md +3 -3
  127. package/dist/agent-src/skills/source-discovery/SKILL.md +3 -3
  128. package/dist/agent-src/skills/sql-writing/SKILL.md +2 -1
  129. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +1 -1
  130. package/dist/agent-src/skills/systematic-debugging/SKILL.md +5 -7
  131. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +2 -2
  132. package/dist/agent-src/skills/tailwind-engineer/scripts/tailwind_config_gen.ts +25 -4
  133. package/dist/agent-src/skills/token-optimizer/SKILL.md +1 -1
  134. package/dist/agent-src/skills/typography-system/SKILL.md +1 -1
  135. package/dist/agent-src/skills/validate-feature-fit/SKILL.md +5 -7
  136. package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +13 -1
  137. package/dist/agent-src/templates/agent-settings.md +34 -25
  138. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
  139. package/dist/agent-src/templates/agents/memory/incident-learnings.example.yml +1 -1
  140. package/dist/agent-src/templates/agents/proposal.example.md +4 -4
  141. package/dist/agent-src/templates/copilot-instructions.md +1 -1
  142. package/dist/agent-src/templates/github-workflows/memory-hygiene.yml +10 -10
  143. package/dist/agent-src/templates/github-workflows/pr-risk-review.yml +19 -8
  144. package/dist/agent-src/templates/github-workflows/proposal-drift.yml +11 -8
  145. package/dist/agent-src/templates/github-workflows/roadmap-progress-check.yml +10 -12
  146. package/dist/agent-src/templates/hooks/pre-commit-frontmatter +21 -11
  147. package/dist/agent-src/templates/hooks/pre-commit-roadmap-progress +43 -29
  148. package/dist/agent-src/templates/roadmaps.md +9 -4
  149. package/dist/agent-src/templates/rule.md +3 -3
  150. package/dist/agent-src/templates/scripts/README.md +6 -6
  151. package/dist/agent-src/templates/scripts/check_memory.ts +24 -2
  152. package/dist/agent-src/templates/scripts/check_memory_proposal.ts +23 -4
  153. package/dist/agent-src/templates/scripts/historical-bug-patterns.example.yml +1 -1
  154. package/dist/agent-src/templates/scripts/memory_hash.ts +24 -2
  155. package/dist/agent-src/templates/scripts/memory_lookup.ts +24 -2
  156. package/dist/agent-src/templates/scripts/memory_report.ts +24 -2
  157. package/dist/agent-src/templates/scripts/memory_signal.ts +24 -2
  158. package/dist/agent-src/templates/scripts/memory_status.ts +26 -2
  159. package/dist/agent-src/templates/scripts/ownership-map.example.yml +1 -1
  160. package/dist/agent-src/templates/scripts/pr-risk-config.example.yml +1 -1
  161. package/dist/agent-src/templates/scripts/pr_review_routing.ts +24 -3
  162. package/dist/agent-src/templates/scripts/pr_risk_review.ts +0 -0
  163. package/dist/agent-src/templates/scripts/telemetry_record.ts +24 -3
  164. package/dist/agent-src/templates/scripts/telemetry_report.ts +25 -3
  165. package/dist/agent-src/templates/scripts/telemetry_status.ts +24 -3
  166. package/dist/agent-src/templates/scripts/tier_usage_report.ts +24 -2
  167. package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +44 -10
  168. package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/_chat_history_base.ts +26 -13
  169. package/dist/agent-src/templates/skill.md +2 -2
  170. package/dist/cli/python/knowledge_ingest.js +24 -3
  171. package/dist/cli/python/knowledge_ingest.js.map +1 -1
  172. package/dist/cli/python/workspace_analytics.js +23 -3
  173. package/dist/cli/python/workspace_analytics.js.map +1 -1
  174. package/dist/cli/python/workspace_crypto.js +23 -3
  175. package/dist/cli/python/workspace_crypto.js.map +1 -1
  176. package/dist/cli/python/workspace_documents.js +23 -3
  177. package/dist/cli/python/workspace_documents.js.map +1 -1
  178. package/dist/cli/python/workspace_drive.js +24 -3
  179. package/dist/cli/python/workspace_drive.js.map +1 -1
  180. package/dist/cli/python/workspace_drive_health.js +23 -3
  181. package/dist/cli/python/workspace_drive_health.js.map +1 -1
  182. package/dist/cli/python/workspace_explain.js +23 -3
  183. package/dist/cli/python/workspace_explain.js.map +1 -1
  184. package/dist/cli/python/workspace_hosts.js +23 -3
  185. package/dist/cli/python/workspace_hosts.js.map +1 -1
  186. package/dist/cli/python/workspace_inbox.js +23 -3
  187. package/dist/cli/python/workspace_inbox.js.map +1 -1
  188. package/dist/cli/python/workspace_render.js +23 -3
  189. package/dist/cli/python/workspace_render.js.map +1 -1
  190. package/dist/cli/python/workspace_roles.js +23 -3
  191. package/dist/cli/python/workspace_roles.js.map +1 -1
  192. package/dist/cli/python/workspace_sessions.js +23 -3
  193. package/dist/cli/python/workspace_sessions.js.map +1 -1
  194. package/dist/cli/python/workspace_skills.js +23 -3
  195. package/dist/cli/python/workspace_skills.js.map +1 -1
  196. package/dist/cli/registry.js +2 -0
  197. package/dist/cli/registry.js.map +1 -1
  198. package/dist/discovery/deprecation-report.md +1 -1
  199. package/dist/discovery/discovery-manifest.json +118 -118
  200. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  201. package/dist/discovery/discovery-manifest.summary.md +2 -2
  202. package/dist/discovery/orphan-report.md +1 -1
  203. package/dist/discovery/packs.json +3 -3
  204. package/dist/discovery/trust-report.md +1 -1
  205. package/dist/discovery/workspaces.json +3 -3
  206. package/dist/install/install.mjs +67 -28
  207. package/dist/mcp/registry-manifest.json +2 -2
  208. package/dist/server/routes/settings.js +4 -4
  209. package/dist/server/routes/settings.js.map +1 -1
  210. package/dist/server/schemas/settings.js +1 -1
  211. package/dist/server/schemas/settings.js.map +1 -1
  212. package/docs/CLAIMS.md +2 -2
  213. package/docs/archive/CHANGELOG-pre-8.1.0.md +316 -0
  214. package/docs/benchmark.md +40 -0
  215. package/docs/contracts/skill-bundled-assets.md +2 -2
  216. package/docs/customization.md +1 -1
  217. package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +9 -4
  218. package/docs/guidelines/agent-infra/corpus-grounding-authoring.md +2 -2
  219. package/docs/guidelines/agent-infra/engineering-memory-data-format.md +4 -4
  220. package/docs/guidelines/agent-infra/installed-tools-manifest.md +3 -3
  221. package/docs/guidelines/agent-infra/language-and-tone-examples.md +2 -2
  222. package/docs/guidelines/agent-infra/layered-settings.md +4 -4
  223. package/docs/guidelines/agent-infra/memory-access.md +19 -18
  224. package/docs/guidelines/agent-infra/naming.md +1 -1
  225. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +5 -5
  226. package/docs/guidelines/agent-infra/role-contracts.md +1 -1
  227. package/docs/guidelines/agent-infra/security-lint-containment.md +2 -2
  228. package/docs/guidelines/agent-infra/self-improvement-pipeline.md +1 -1
  229. package/docs/guidelines/agent-infra/size-and-scope.md +1 -1
  230. package/docs/guidelines/agent-infra/skill-quality-checklist.md +5 -5
  231. package/docs/guidelines/augment-portability-patterns.md +1 -1
  232. package/docs/proof.md +1 -1
  233. package/docs/setup/per-ide/claude-code.md +10 -4
  234. package/package.json +3 -2
  235. package/src/config/agent-settings.template.yml +31 -17
  236. package/src/config/host-capabilities.yml +25 -16
  237. package/src/config/profiles/balanced.ini +5 -3
  238. package/src/scripts/_cli/cmd_analyze_session.ts +23 -4
  239. package/src/scripts/_cli/cmd_conformance.ts +23 -4
  240. package/src/scripts/_cli/cmd_doctor.ts +96 -8
  241. package/src/scripts/_cli/cmd_explain.ts +23 -4
  242. package/src/scripts/_cli/cmd_export.ts +23 -4
  243. package/src/scripts/_cli/cmd_fleet.ts +23 -4
  244. package/src/scripts/_cli/cmd_migrate.ts +23 -4
  245. package/src/scripts/_cli/cmd_preflight.ts +24 -4
  246. package/src/scripts/_cli/cmd_prune.ts +23 -4
  247. package/src/scripts/_cli/cmd_refresh.ts +23 -4
  248. package/src/scripts/_cli/cmd_settings_check.ts +23 -4
  249. package/src/scripts/_cli/cmd_settings_migrate.ts +23 -4
  250. package/src/scripts/_cli/cmd_sync.ts +23 -4
  251. package/src/scripts/_cli/cmd_uninstall.ts +23 -4
  252. package/src/scripts/_cli/cmd_update.ts +23 -4
  253. package/src/scripts/_cli/cmd_upgrade.ts +238 -9
  254. package/src/scripts/_cli/cmd_validate.ts +23 -4
  255. package/src/scripts/_cli/cmd_versions.ts +23 -4
  256. package/src/scripts/_dispatch.bash +62 -19
  257. package/src/scripts/_lib/claude_plugin.ts +83 -0
  258. package/src/scripts/_lib/knowledge_global.ts +24 -2
  259. package/src/scripts/_lib/knowledge_global_promote.ts +24 -2
  260. package/src/scripts/_lib/knowledge_global_redaction.ts +24 -2
  261. package/src/scripts/_lib/link_crypto.ts +24 -5
  262. package/src/scripts/_lib/pin_resolver.ts +24 -3
  263. package/src/scripts/adoption_report.ts +23 -4
  264. package/src/scripts/adoption_snapshot.ts +23 -1
  265. package/src/scripts/adoption_status.ts +23 -4
  266. package/src/scripts/adr/regenerate_index.ts +24 -3
  267. package/src/scripts/ai_council/airgap.ts +25 -2
  268. package/src/scripts/ai_council/compile_corpus.ts +24 -2
  269. package/src/scripts/ai_council/pricing.ts +11 -1
  270. package/src/scripts/analysis_freshness.ts +23 -4
  271. package/src/scripts/annotate_discovery.ts +23 -1
  272. package/src/scripts/apply_modules_config.ts +23 -4
  273. package/src/scripts/audit_adr_coverage.ts +23 -4
  274. package/src/scripts/audit_auto_rules.ts +23 -1
  275. package/src/scripts/audit_cloud_compatibility.ts +23 -4
  276. package/src/scripts/audit_command_surface.ts +23 -4
  277. package/src/scripts/audit_initial_context.ts +23 -3
  278. package/src/scripts/audit_likelihood.ts +23 -1
  279. package/src/scripts/audit_mcp_tools.ts +23 -3
  280. package/src/scripts/audit_overlap.ts +23 -1
  281. package/src/scripts/audit_skill_descriptions.ts +24 -2
  282. package/src/scripts/audit_skill_overlap.ts +23 -1
  283. package/src/scripts/audit_user_type_axis.ts +23 -4
  284. package/src/scripts/backfill_model_tier.ts +23 -4
  285. package/src/scripts/bench_ab_cache_dispatch.ts +23 -1
  286. package/src/scripts/bench_ab_clone.ts +23 -1
  287. package/src/scripts/bench_ab_diff.ts +23 -1
  288. package/src/scripts/bench_ab_integrity.ts +23 -1
  289. package/src/scripts/bench_ab_run.ts +23 -2
  290. package/src/scripts/bench_ab_task_runner.ts +23 -1
  291. package/src/scripts/bench_ab_tracka_run.ts +23 -2
  292. package/src/scripts/bench_ab_v2_run.ts +23 -1
  293. package/src/scripts/bench_ab_v2_stats.ts +23 -1
  294. package/src/scripts/bench_baseline_ready.ts +23 -1
  295. package/src/scripts/bench_condense_memory.ts +23 -1
  296. package/src/scripts/bench_drift_check.ts +23 -2
  297. package/src/scripts/bench_matrix.ts +23 -4
  298. package/src/scripts/bench_per_tool.ts +23 -1
  299. package/src/scripts/bench_quality_run.ts +23 -2
  300. package/src/scripts/bench_rtk_savings.ts +23 -1
  301. package/src/scripts/bench_rule_load_latency.ts +23 -2
  302. package/src/scripts/bench_run.ts +23 -2
  303. package/src/scripts/bench_runner.ts +23 -1
  304. package/src/scripts/build_cloud_bundle.ts +23 -3
  305. package/src/scripts/build_discovery_manifest.ts +23 -4
  306. package/src/scripts/build_linear_digest.ts +23 -3
  307. package/src/scripts/build_mcp_registry_manifest.ts +23 -4
  308. package/src/scripts/build_rule_trigger_matrix.ts +23 -4
  309. package/src/scripts/capture_showcase_session.ts +23 -1
  310. package/src/scripts/chat_history.ts +24 -3
  311. package/src/scripts/check_always_budget.ts +23 -2
  312. package/src/scripts/check_artefact_checksums.ts +23 -4
  313. package/src/scripts/check_augment_description_cap.ts +23 -4
  314. package/src/scripts/check_augmentignore.ts +23 -4
  315. package/src/scripts/check_beta_review_markers.ts +23 -4
  316. package/src/scripts/check_cluster_patterns.ts +23 -4
  317. package/src/scripts/check_command_count_messaging.ts +23 -4
  318. package/src/scripts/check_comparison.ts +23 -1
  319. package/src/scripts/check_condensation.ts +24 -3
  320. package/src/scripts/check_condensed_paths.ts +23 -2
  321. package/src/scripts/check_context_paths.ts +23 -4
  322. package/src/scripts/check_council_config_location.ts +23 -4
  323. package/src/scripts/check_council_layout.ts +23 -4
  324. package/src/scripts/check_council_references.ts +23 -4
  325. package/src/scripts/check_discovery_determinism.ts +24 -4
  326. package/src/scripts/check_gate_paths.ts +23 -4
  327. package/src/scripts/check_generated_artefact_headers.ts +23 -4
  328. package/src/scripts/check_generator_output_coverage.ts +23 -4
  329. package/src/scripts/check_gitignore_freshness.ts +23 -4
  330. package/src/scripts/check_iron_law_prominence.ts +23 -4
  331. package/src/scripts/check_kernel_prefix_stability.ts +0 -0
  332. package/src/scripts/check_kernel_rule_bundle.ts +23 -4
  333. package/src/scripts/check_knowledge_cards.ts +23 -1
  334. package/src/scripts/check_md_language.ts +23 -4
  335. package/src/scripts/check_media_deps.ts +24 -1
  336. package/src/scripts/check_memory.ts +24 -2
  337. package/src/scripts/check_memory_proposal.ts +23 -4
  338. package/src/scripts/check_module_management_neutral.ts +23 -4
  339. package/src/scripts/check_no_conflict_markers.ts +23 -4
  340. package/src/scripts/check_no_external_sources.ts +23 -4
  341. package/src/scripts/check_no_local_settings_committed.ts +24 -4
  342. package/src/scripts/check_no_new_legacy_path.ts +23 -4
  343. package/src/scripts/check_no_roadmap_refs.ts +23 -4
  344. package/src/scripts/check_one_off_location.ts +23 -4
  345. package/src/scripts/check_overlay_cascade_subdirs.ts +23 -4
  346. package/src/scripts/check_portability.ts +24 -3
  347. package/src/scripts/check_proposal.ts +0 -0
  348. package/src/scripts/check_public_catalog_links.ts +23 -4
  349. package/src/scripts/check_public_links.ts +23 -4
  350. package/src/scripts/check_quality_regression.ts +23 -2
  351. package/src/scripts/check_references.ts +23 -4
  352. package/src/scripts/check_release_includes_discovery.ts +23 -4
  353. package/src/scripts/check_release_pr_shape.ts +23 -4
  354. package/src/scripts/check_release_published.ts +23 -4
  355. package/src/scripts/check_release_trunk_sync.ts +23 -4
  356. package/src/scripts/check_reply_consistency.ts +23 -4
  357. package/src/scripts/check_roadmap_trackable.ts +23 -4
  358. package/src/scripts/check_role_doc_links.ts +23 -4
  359. package/src/scripts/check_safety_floor_untouched.ts +24 -4
  360. package/src/scripts/check_site_links.ts +23 -1
  361. package/src/scripts/check_skill_gaps.ts +23 -1
  362. package/src/scripts/check_skill_requires.ts +23 -4
  363. package/src/scripts/check_structural_breaking.ts +24 -4
  364. package/src/scripts/check_surface_tiers.ts +23 -4
  365. package/src/scripts/check_template_pin_drift.ts +23 -4
  366. package/src/scripts/check_test_coverage_diff.ts +23 -4
  367. package/src/scripts/check_token_optimizer_freshness.ts +23 -4
  368. package/src/scripts/check_token_quality_golden.ts +23 -2
  369. package/src/scripts/check_token_regression.ts +23 -2
  370. package/src/scripts/check_tracked_but_ignored.ts +24 -4
  371. package/src/scripts/check_trigger_evals.ts +23 -4
  372. package/src/scripts/check_trunk_drift.ts +24 -1
  373. package/src/scripts/check_update_banner.ts +23 -4
  374. package/src/scripts/ci_summary.ts +23 -4
  375. package/src/scripts/ci_time_ratio.ts +23 -4
  376. package/src/scripts/cluster_near_miss_patterns.ts +0 -0
  377. package/src/scripts/compile_router.ts +23 -4
  378. package/src/scripts/condense.ts +23 -2
  379. package/src/scripts/condense_memory.ts +24 -2
  380. package/src/scripts/config/packs.ts +24 -4
  381. package/src/scripts/config/session_profiles.ts +23 -4
  382. package/src/scripts/context_hygiene_hook.ts +24 -3
  383. package/src/scripts/cost_by_conversation.ts +23 -4
  384. package/src/scripts/cost_summary.ts +23 -4
  385. package/src/scripts/council_cli.ts +35 -7
  386. package/src/scripts/council_prune.ts +25 -2
  387. package/src/scripts/cross_repo_retrieve.ts +23 -4
  388. package/src/scripts/discovery_stats.ts +23 -4
  389. package/src/scripts/evidence_report.ts +23 -1
  390. package/src/scripts/export_replay_corpus.ts +23 -2
  391. package/src/scripts/extract_audit_patterns.ts +23 -1
  392. package/src/scripts/first_run_gate_hook.ts +24 -3
  393. package/src/scripts/gen_discovery_baseline.ts +23 -4
  394. package/src/scripts/generate_capabilities_index.ts +24 -5
  395. package/src/scripts/generate_capability_matrix.ts +23 -4
  396. package/src/scripts/generate_catalog.ts +23 -1
  397. package/src/scripts/generate_command_flows.ts +23 -4
  398. package/src/scripts/generate_cookbook.ts +23 -4
  399. package/src/scripts/generate_index.ts +23 -4
  400. package/src/scripts/generate_ownership_matrix.ts +23 -1
  401. package/src/scripts/generate_pack_manifests.ts +24 -5
  402. package/src/scripts/generate_role_experiences_catalog.ts +23 -4
  403. package/src/scripts/hooks/block_no_verify.ts +23 -4
  404. package/src/scripts/hooks/design_slop_hook.ts +24 -3
  405. package/src/scripts/hooks/dispatch_hook.ts +47 -14
  406. package/src/scripts/hooks/replay_hook.ts +23 -2
  407. package/src/scripts/hooks/rtk_wrap_hook.ts +24 -5
  408. package/src/scripts/hooks_doctor.ts +23 -2
  409. package/src/scripts/hooks_status.ts +23 -2
  410. package/src/scripts/injection_scan_hook.ts +24 -5
  411. package/src/scripts/install.ts +72 -44
  412. package/src/scripts/inventory_abstraction_budget.ts +23 -1
  413. package/src/scripts/inventory_frontmatter.ts +23 -1
  414. package/src/scripts/inventory_meta_layers.ts +23 -1
  415. package/src/scripts/iron_law_sha.ts +23 -4
  416. package/src/scripts/janitor.ts +23 -4
  417. package/src/scripts/knowledge_global_cli.ts +24 -2
  418. package/src/scripts/linked_projects_list.ts +23 -4
  419. package/src/scripts/lint_agent_security.ts +23 -4
  420. package/src/scripts/lint_agent_skill_names.ts +23 -4
  421. package/src/scripts/lint_agents_layout.ts +23 -4
  422. package/src/scripts/lint_agents_md.ts +23 -4
  423. package/src/scripts/lint_archived_skills.ts +23 -4
  424. package/src/scripts/lint_artefact_frontmatter.ts +23 -4
  425. package/src/scripts/lint_bench_ab.ts +23 -4
  426. package/src/scripts/lint_bench_corpus.ts +23 -2
  427. package/src/scripts/lint_command_flow_coverage.ts +23 -4
  428. package/src/scripts/lint_command_routing.ts +23 -4
  429. package/src/scripts/lint_command_tiers.ts +23 -2
  430. package/src/scripts/lint_command_verbs.ts +23 -4
  431. package/src/scripts/lint_commit_subjects.ts +24 -4
  432. package/src/scripts/lint_confusables.ts +25 -5
  433. package/src/scripts/lint_context_spine_usage.ts +23 -4
  434. package/src/scripts/lint_discovery_manifest.ts +23 -4
  435. package/src/scripts/lint_discovery_vocabulary.ts +23 -4
  436. package/src/scripts/lint_empty_roadmaps.ts +23 -4
  437. package/src/scripts/lint_eval_freshness.ts +23 -4
  438. package/src/scripts/lint_examples.ts +23 -4
  439. package/src/scripts/lint_explain_trace.ts +23 -4
  440. package/src/scripts/lint_featured_skills.ts +0 -0
  441. package/src/scripts/lint_flows.ts +23 -4
  442. package/src/scripts/lint_framework_leakage.ts +23 -4
  443. package/src/scripts/lint_frontmatter_boilerplate.ts +23 -4
  444. package/src/scripts/lint_ghostwriter_source.ts +23 -4
  445. package/src/scripts/lint_global_paths.ts +23 -2
  446. package/src/scripts/lint_handoffs.ts +23 -4
  447. package/src/scripts/lint_hidden_unicode.ts +24 -5
  448. package/src/scripts/lint_hook_concern_budget.ts +23 -4
  449. package/src/scripts/lint_hook_manifest.ts +23 -2
  450. package/src/scripts/lint_instruction_smuggling.ts +25 -5
  451. package/src/scripts/lint_legal_pack.ts +23 -1
  452. package/src/scripts/lint_load_context.ts +23 -4
  453. package/src/scripts/lint_marketplace.ts +24 -3
  454. package/src/scripts/lint_marketplace_install_completeness.ts +23 -4
  455. package/src/scripts/lint_mcp_config_security.ts +25 -5
  456. package/src/scripts/lint_mcp_registry_manifest.ts +23 -4
  457. package/src/scripts/lint_media_policy_linkage.ts +23 -4
  458. package/src/scripts/lint_missions.ts +23 -4
  459. package/src/scripts/lint_model_tier_coverage.ts +23 -4
  460. package/src/scripts/lint_namespace.ts +23 -4
  461. package/src/scripts/lint_namespace_collisions.ts +23 -4
  462. package/src/scripts/lint_new_skill_gate.ts +23 -4
  463. package/src/scripts/lint_no_new_atomic_commands.ts +23 -4
  464. package/src/scripts/lint_one_off_age.ts +23 -4
  465. package/src/scripts/lint_orchestration_dsl.ts +23 -4
  466. package/src/scripts/lint_orchestrator_auto_detect.ts +23 -4
  467. package/src/scripts/lint_pack_boundaries.ts +23 -4
  468. package/src/scripts/lint_pack_dependencies.ts +23 -2
  469. package/src/scripts/lint_pack_first_win.ts +23 -4
  470. package/src/scripts/lint_pack_risk_class.ts +23 -1
  471. package/src/scripts/lint_persona_governance.ts +23 -4
  472. package/src/scripts/lint_positioning.ts +23 -4
  473. package/src/scripts/lint_profile_overlay_set_only.ts +23 -4
  474. package/src/scripts/lint_readme_jargon.ts +23 -4
  475. package/src/scripts/lint_readme_size.ts +23 -4
  476. package/src/scripts/lint_regression.ts +23 -4
  477. package/src/scripts/lint_roadmap_blockers.ts +23 -4
  478. package/src/scripts/lint_roadmap_ci_steps.ts +23 -4
  479. package/src/scripts/lint_roadmap_complexity.ts +23 -4
  480. package/src/scripts/lint_roadmap_later_disposition.ts +23 -4
  481. package/src/scripts/lint_role_experiences.ts +23 -4
  482. package/src/scripts/lint_rule_interactions.ts +23 -4
  483. package/src/scripts/lint_rule_tiers.ts +24 -3
  484. package/src/scripts/lint_showcase_sessions.ts +23 -4
  485. package/src/scripts/lint_skill_frontmatter_safety.ts +25 -5
  486. package/src/scripts/lint_skill_originality.ts +23 -4
  487. package/src/scripts/lint_skill_tools.ts +23 -4
  488. package/src/scripts/lint_subagent_determinism.ts +23 -4
  489. package/src/scripts/lint_ticket_buildable.ts +23 -4
  490. package/src/scripts/lint_topics_yaml.ts +23 -4
  491. package/src/scripts/lint_trust_coherence.ts +23 -4
  492. package/src/scripts/lint_value_dashboard.ts +23 -4
  493. package/src/scripts/lint_workflow_security.ts +23 -4
  494. package/src/scripts/lint_workspace_boundary.ts +23 -4
  495. package/src/scripts/mcp_parity_smoke.ts +23 -2
  496. package/src/scripts/mcp_render.ts +23 -4
  497. package/src/scripts/mcp_telemetry_health.ts +23 -4
  498. package/src/scripts/mcp_telemetry_query.ts +23 -4
  499. package/src/scripts/mcp_telemetry_store.ts +23 -4
  500. package/src/scripts/measure_augment_budget.ts +23 -1
  501. package/src/scripts/measure_density.ts +23 -1
  502. package/src/scripts/measure_frugality_savings.ts +23 -1
  503. package/src/scripts/measure_markitdown_lift.ts +23 -1
  504. package/src/scripts/measure_patterns.ts +23 -1
  505. package/src/scripts/measure_projection_bytes.ts +23 -1
  506. package/src/scripts/measure_rule_budget.ts +23 -4
  507. package/src/scripts/measure_skill_reduction.ts +23 -1
  508. package/src/scripts/memory_hash.ts +24 -2
  509. package/src/scripts/memory_lookup.ts +24 -2
  510. package/src/scripts/memory_report.ts +24 -2
  511. package/src/scripts/memory_signal.ts +24 -2
  512. package/src/scripts/memory_status.ts +26 -2
  513. package/src/scripts/migrate_command_suggestions.ts +23 -4
  514. package/src/scripts/migrate_frontmatter_defaults.ts +23 -4
  515. package/src/scripts/migration_status.ts +25 -4
  516. package/src/scripts/mine_missing_guardrails.ts +23 -1
  517. package/src/scripts/mine_session.ts +23 -1
  518. package/src/scripts/minimal_safe_diff_hook.ts +24 -3
  519. package/src/scripts/new_skill.ts +23 -3
  520. package/src/scripts/onboarding_gate_hook.ts +24 -3
  521. package/src/scripts/parity/coverage_diff.ts +25 -3
  522. package/src/scripts/parity/phase_gate.ts +25 -4
  523. package/src/scripts/parity/replay.ts +25 -3
  524. package/src/scripts/pattern_share.ts +23 -4
  525. package/src/scripts/plan_physical_move.ts +23 -4
  526. package/src/scripts/prediction-pool/poisson_sim.ts +24 -3
  527. package/src/scripts/prediction-pool/pool_winsim.ts +24 -3
  528. package/src/scripts/prediction-pool/score_ev.ts +24 -3
  529. package/src/scripts/print_required_checks.ts +24 -4
  530. package/src/scripts/probe_host_compliance.ts +23 -2
  531. package/src/scripts/probe_projection_fidelity.ts +23 -1
  532. package/src/scripts/probe_skill_registration.ts +24 -2
  533. package/src/scripts/profile_staleness_hook.ts +24 -3
  534. package/src/scripts/profile_use.ts +23 -4
  535. package/src/scripts/project_thin_rules.ts +23 -3
  536. package/src/scripts/propose_modules_config.ts +23 -4
  537. package/src/scripts/prototype_lint_contradictions.ts +23 -1
  538. package/src/scripts/prove_pack_extractable.ts +23 -4
  539. package/src/scripts/readme_linter.ts +23 -3
  540. package/src/scripts/redact_hook_capture.ts +23 -4
  541. package/src/scripts/refine_ticket_detect.ts +23 -4
  542. package/src/scripts/release.ts +23 -4
  543. package/src/scripts/render_benchmark_composite.ts +23 -4
  544. package/src/scripts/render_benchmark_md.ts +23 -4
  545. package/src/scripts/roadmap_progress_hook.ts +46 -16
  546. package/src/scripts/run_skill_evals.ts +23 -4
  547. package/src/scripts/runtime_dispatcher.ts +23 -4
  548. package/src/scripts/runtime_registry.ts +23 -4
  549. package/src/scripts/score_skill_selection.ts +23 -1
  550. package/src/scripts/security_audit_config.ts +24 -5
  551. package/src/scripts/skill_collision_clusters.ts +23 -4
  552. package/src/scripts/skill_discovery.ts +23 -4
  553. package/src/scripts/skill_linter.ts +23 -2
  554. package/src/scripts/skill_preview.ts +23 -4
  555. package/src/scripts/skill_tools/audit_persona_coverage.ts +23 -1
  556. package/src/scripts/skill_tools/audit_user_type_coverage.ts +23 -1
  557. package/src/scripts/skill_tools/run_block_d_eval.ts +23 -1
  558. package/src/scripts/skill_tools/score_skill_relevance.ts +23 -1
  559. package/src/scripts/skill_tools/suggest_skill_for_task.ts +24 -1
  560. package/src/scripts/skill_usage_collect.ts +23 -4
  561. package/src/scripts/smoke_path_resolution.ts +23 -4
  562. package/src/scripts/smoke_quickstart.ts +23 -4
  563. package/src/scripts/snapshot_agent_outputs.ts +23 -4
  564. package/src/scripts/spotcheck_thin_root.ts +23 -4
  565. package/src/scripts/sync_agent_settings.ts +23 -4
  566. package/src/scripts/sync_github_metadata.ts +23 -4
  567. package/src/scripts/sync_gitignore.ts +23 -4
  568. package/src/scripts/telegraph_stats.ts +23 -4
  569. package/src/scripts/tool_registry.ts +24 -4
  570. package/src/scripts/trigger_coverage.ts +23 -4
  571. package/src/scripts/update_counts.ts +23 -4
  572. package/src/scripts/update_prices.ts +23 -1
  573. package/src/scripts/validate_agent_settings.ts +23 -4
  574. package/src/scripts/validate_decision_engine.ts +23 -4
  575. package/src/scripts/validate_discovery_manifest.ts +23 -4
  576. package/src/scripts/validate_frontmatter.ts +23 -2
  577. package/src/scripts/validate_pack_yaml.ts +0 -0
  578. package/src/scripts/validate_safe_paths.ts +24 -4
  579. package/src/scripts/validate_telegraph_carveouts.ts +23 -4
  580. package/src/scripts/verify_before_complete_hook.ts +24 -3
  581. package/src/scripts/verify_physical_move.ts +23 -4
  582. package/src/scripts/wrapper_freshness_hook.ts +107 -8
  583. package/tests/fixtures/hooks/README.md +92 -0
  584. package/tests/fixtures/hooks/agent_error.json +7 -0
  585. package/tests/fixtures/hooks/post_tool_use.json +13 -0
  586. package/tests/fixtures/hooks/pre_compact.json +7 -0
  587. package/tests/fixtures/hooks/pre_tool_use.json +9 -0
  588. package/tests/fixtures/hooks/session_end.json +6 -0
  589. package/tests/fixtures/hooks/session_start.json +6 -0
  590. package/tests/fixtures/hooks/stop.json +6 -0
  591. package/tests/fixtures/hooks/user_prompt_submit.json +7 -0
@@ -123,7 +123,7 @@ THE HOST AGENT IS THE CONVENER, NEVER A REVIEWER.
123
123
 
124
124
  If you find yourself wanting to "frame" the artefact for the council,
125
125
  stop. Framing is exactly what kills the second-opinion value. Use the
126
- unbiased system prompts in `scripts/ai_council/prompts.py`; do not
126
+ unbiased system prompts in `scripts/ai_council/prompts.ts`; do not
127
127
  roll your own.
128
128
 
129
129
  The host runs the council and synthesises convergence — it is the
@@ -148,7 +148,7 @@ in front of every member's system prompt, assembled by
148
148
  | One paragraph of repo purpose from `README.md` (max 400 chars) | Host-agent framing language ("I think this looks weak", "the user probably wants…") |
149
149
  | The user's **original ask** verbatim (the free-form sentence that triggered `/council`) | Anything the host agent generated about the artefact |
150
150
 
151
- `detect_project_context()` in `scripts/ai_council/project_context.py`
151
+ `detect_project_context()` in `scripts/ai_council/project_context.ts`
152
152
  reads only the manifest files + root README; missing fields collapse
153
153
  to `None` and the preamble silently omits the line. With both
154
154
  `project=None` and `original_ask=""`, the preamble degrades to the
@@ -167,7 +167,7 @@ travel changes.
167
167
  | `manual` | `ManualClient` | no | `stdout` (prompt block) + `stdin` (user pastes the web-UI reply, terminated by a line containing only `END`) | shipped (Phase 2b) |
168
168
  | `cli` | `AnthropicCliClient` / `OpenAICliClient` / `GeminiCliClient` | no (subscription-authed) | local subprocess against the vendor CLI (`claude`, `codex`, `gemini`); auth delegated to the CLI's own session, no API key in this process | shipped (anthropic/openai/gemini · Phase 3) |
169
169
 
170
- Resolution lives in `scripts/ai_council/modes.py`:
170
+ Resolution lives in `scripts/ai_council/modes.ts`:
171
171
  `resolve_mode(name, invocation_mode, member_settings, global_mode)`
172
172
  with precedence **invocation flag > per-member setting > global
173
173
  setting > default (`manual`)**. Whitespace-and-case insensitive; empty
@@ -293,15 +293,15 @@ not a default.
293
293
  1. **Resolve target.** Identify the artefact mode (`prompt`, `roadmap`,
294
294
  `diff`, `files`) and locate the source. Refuse to proceed if the
295
295
  target is ambiguous.
296
- 2. **Bundle + redact.** Call `scripts/ai_council/bundler.py` to produce
296
+ 2. **Bundle + redact.** Call `scripts/ai_council/bundler.ts` to produce
297
297
  a redacted artefact bundle. If `BundleTooLarge` fires, surface the
298
298
  size and ask the user to narrow scope — do NOT truncate silently.
299
299
  3. **Confirm spend.** Before any network call, surface members + cost
300
300
  ceiling and require an explicit user `1` to proceed. Autonomy
301
301
  settings do not override this gate.
302
302
  4. **Fan out.** Dispatch the bundle to each enabled council member via
303
- `scripts/ai_council/orchestrator.py`. Each member receives the
304
- neutrality preamble from `prompts.py` plus the artefact — nothing
303
+ `scripts/ai_council/orchestrator.ts`. Each member receives the
304
+ neutrality preamble from `prompts.ts` plus the artefact — nothing
305
305
  from the host agent's prior reasoning.
306
306
  5. **Render results.** Stack each member's response under its own
307
307
  provider-attributed heading. Never merge or paraphrase responses
@@ -412,10 +412,10 @@ matching `road-to-<topic-slug>` roadmap under `agents/roadmaps/`).
412
412
  that may include council artefacts as part of their evidence trail
413
413
  (e.g. `audit-2026-05-14-north-star/` bundles its triggering
414
414
  question, raw responses, and synthesis alongside the audit's
415
- findings). The layout linter (`scripts/check_council_layout.py`)
415
+ findings). The layout linter (`scripts/check_council_layout.ts`)
416
416
  skips these directories.
417
417
 
418
- `scripts/check_council_layout.py` is the mechanical check for the
418
+ `scripts/check_council_layout.ts` is the mechanical check for the
419
419
  output path convention — wire it into the package's CI pipeline so
420
420
  violations break the build.
421
421
 
@@ -458,7 +458,7 @@ attributed to the host.
458
458
  The **Convergence / Divergence** slot in `council:render` output is
459
459
  populated with a lens-specific synthesis prompt. The host agent reads
460
460
  this prompt and writes the summary in the shape it dictates. The five
461
- templates live in `scripts/ai_council/prompts.py::_SYNTHESIS_TABLE`
461
+ templates live in `scripts/ai_council/prompts.ts::_SYNTHESIS_TABLE`
462
462
  and are exposed via `synthesis_template(mode)`.
463
463
 
464
464
  **R4 Q4 split** — decision lenses get a structured Karpathy-style
@@ -546,7 +546,7 @@ Real failure modes seen in the wild:
546
546
  | Anti-pattern | Why it's wrong | Correct approach |
547
547
  |---|---|---|
548
548
  | "Pre-warm" the council with the agent's own analysis. | Bias attack — collapses the reviewer to a yes-man. | Send the artefact text only. |
549
- | Paste the host-agent identity ("I am Augment / Claude Code…") | Identity primes the reviewer's model. | Neutrality preamble in `prompts.py` already handles this. |
549
+ | Paste the host-agent identity ("I am Augment / Claude Code…") | Identity primes the reviewer's model. | Neutrality preamble in `prompts.ts` already handles this. |
550
550
  | Silently truncate a too-large bundle. | Misleads the reviewer into thinking they saw the whole thing. | Bundler raises `BundleTooLarge`; surface and ask for narrower scope. |
551
551
  | Reuse the same SDK client across calls without re-loading the key. | Leaks the key in long-lived process state. | Each invocation builds fresh clients from `load_*_key()`. |
552
552
  | Auto-spend tokens under `personal.autonomy: on`. | Autonomy ≠ permission to spend money. | Always ask before consultation, even under autonomy. |
@@ -586,7 +586,7 @@ per-invocation caps from `ai_council.cost_budget`:
586
586
  `daily_budget_exceeded` instead of `cost_budget_exceeded`.
587
587
 
588
588
  Prices come from `agents/runtime/.agent-prices.md` (gitignored, refreshed weekly).
589
- The pricing module bootstraps it from `_default_prices.py` on first
589
+ The pricing module bootstraps it from `_default_prices.ts` on first
590
590
  use and flags it stale when older than the most recent Monday 00:00
591
591
  UTC.
592
592
 
@@ -937,16 +937,16 @@ fast-path entries (clean session is not an error).
937
937
  - `/council` command — the user-facing entry point.
938
938
  - `subagent-orchestration` skill — internal multi-agent variant (no
939
939
  network, no spend, but no diversity of weights either).
940
- - `scripts/ai_council/prompts.py` — neutrality preamble + per-mode
940
+ - `scripts/ai_council/prompts.ts` — neutrality preamble + per-mode
941
941
  system prompts.
942
- - `scripts/ai_council/advisors.py` — replace-mode planning + persona
942
+ - `scripts/ai_council/advisors.ts` — replace-mode planning + persona
943
943
  resolution.
944
- - `scripts/ai_council/bundler.py` — redaction pattern set + size
944
+ - `scripts/ai_council/bundler.ts` — redaction pattern set + size
945
945
  guard.
946
946
  - `docs/customization.md` § `ai_council.*` — settings reference.
947
947
  - `docs/contracts/ai-council-config.md` § advisors — schema + precedence
948
948
  contract.
949
949
  - `docs/contracts/ai-council-config.md` § Decision-replay artefact —
950
950
  Phase 9 audit trail contract + redaction modes.
951
- - `scripts/ai_council/replay.py` — pure projection renderer (no model
951
+ - `scripts/ai_council/replay.ts` — pure projection renderer (no model
952
952
  calls).
@@ -17,7 +17,7 @@ packs:
17
17
 
18
18
  > **Grounded corpus (Tier-1 consultation):** pagination, versioning,
19
19
  > error shape (RFC 9457), idempotency, async ops, rate limiting, bulk,
20
- > naming, expansion, webhooks — `ground.py search --manifest
20
+ > naming, expansion, webhooks — `./scripts-run <skills-root>/corpus-grounding/scripts/ground search --manifest
21
21
  > <skills-root>/api-design/data/manifest.json "<concern>"` proposes the
22
22
  > grounded pattern (+ hardening + anti-patterns + RFC link) before
23
23
  > designing from memory. Corpus: [`data/api-patterns.csv`](data/api-patterns.csv).
@@ -14,7 +14,8 @@ packs:
14
14
 
15
15
  > **Grounded corpus:** endpoint-shape decisions (pagination, error shape,
16
16
  > idempotency, rate limits) ground via the
17
- > [`api-design`](../api-design/SKILL.md) corpus — `ground.py search
17
+ > [`api-design`](../api-design/SKILL.md) corpus — `./scripts-run
18
+ > <skills-root>/corpus-grounding/scripts/ground search
18
19
  > --manifest <skills-root>/api-design/data/manifest.json "<concern>"`.
19
20
 
20
21
  ## When to use
@@ -19,7 +19,7 @@ packs:
19
19
  > **Grounded corpus (Tier-1 consultation):** the threat corpus's
20
20
  > `authorization` + `tenancy` rows (IDOR, mass-assignment escalation,
21
21
  > unscoped queries, sealed job context — each with negative tests) come
22
- > from `ground.py ground --manifest
22
+ > from `./scripts-run <skills-root>/corpus-grounding/scripts/ground ground --manifest
23
23
  > <skills-root>/threat-modeling/data/manifest.json "<check under review>"`.
24
24
  > Cite corpus rows in findings; surface the evidence gap when no row.
25
25
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  model_tier: medium
3
3
  name: blade-ui
4
- description: "Use when the project's frontend stack is Blade — dispatched by `directives/ui/{apply,review,polish}.py`. Covers views, components, partials, layouts, and view logic."
4
+ description: "Use when the project's frontend stack is Blade — dispatched by `directives/ui/{apply,review,polish}.ts`. Covers views, components, partials, layouts, and view logic."
5
5
  domain: engineering
6
6
  workspaces:
7
7
  - engineering
@@ -17,7 +17,8 @@ install:
17
17
  # blade-ui
18
18
 
19
19
  > **Grounded stack guidance:** pull idiomatic Do/Don't + docs URLs from the
20
- > adopted stack corpus before improvising — `ground.py search --manifest
20
+ > adopted stack corpus before improvising — `./scripts-run
21
+ > <skills-root>/corpus-grounding/scripts/ground search --manifest
21
22
  > <skills-root>/design-intelligence/data/manifest.json --stack laravel "<topic>"`
22
23
  > (the `laravel` stack file is Blade/UI-scoped, not general Laravel). See
23
24
  > [`design-intelligence`](../design-intelligence/SKILL.md).
@@ -25,23 +26,23 @@ install:
25
26
  ## Positioning — dispatched, not standalone
26
27
 
27
28
  `blade-ui` is the **apply-step executor** for the Blade stack. It is
28
- invoked by [`directives/ui/apply.py`](../../templates/scripts/work_engine/directives/ui/apply.py)
29
- once the design brief is locked, and revisited by `review.py` /
30
- `polish.py` during the design-review loop. It does **not** own the
29
+ invoked by [`directives/ui/apply.ts`](../../templates/scripts/work_engine/directives/ui/apply.ts)
30
+ once the design brief is locked, and revisited by `review.ts` /
31
+ `polish.ts` during the design-review loop. It does **not** own the
31
32
  flow, does **not** drive the audit, and does **not** lock the design.
32
33
 
33
34
  | Concern | Owner |
34
35
  |---|---|
35
36
  | Audit + token inventory (mandatory pre-step) | [`existing-ui-audit`](../existing-ui-audit/SKILL.md) |
36
- | Design brief (layout / states / microcopy) | [`directives/ui/design.py`](../../templates/scripts/work_engine/directives/ui/design.py) |
37
+ | Design brief (layout / states / microcopy) | [`directives/ui/design.ts`](../../templates/scripts/work_engine/directives/ui/design.ts) |
37
38
  | Universal design heuristics | [`fe-design`](../fe-design/SKILL.md) |
38
- | Review + polish loop | [`directives/ui/review.py`](../../templates/scripts/work_engine/directives/ui/review.py) + [`polish.py`](../../templates/scripts/work_engine/directives/ui/polish.py) |
39
+ | Review + polish loop | [`directives/ui/review.ts`](../../templates/scripts/work_engine/directives/ui/review.ts) + [`polish.ts`](../../templates/scripts/work_engine/directives/ui/polish.ts) |
39
40
 
40
41
  ## When to use
41
42
 
42
43
  Cite this skill when:
43
44
 
44
- - `state.stack.frontend == "blade"` (or the project is clearly Blade-only without Livewire / Flux) and `directives/ui/apply.py` dispatches to this skill
45
+ - `state.stack.frontend == "blade"` (or the project is clearly Blade-only without Livewire / Flux) and `directives/ui/apply.ts` dispatches to this skill
45
46
  - Editing or creating Blade views, components, partials, layouts, or forms
46
47
 
47
48
  Do NOT use when:
@@ -92,8 +93,8 @@ Do NOT use when:
92
93
 
93
94
  ### Review pass — a11y findings + preview envelope
94
95
 
95
- When this skill is dispatched by `directives/ui/review.py` (test slot)
96
- or `directives/ui/polish.py` (verify slot) — i.e. a review/polish run,
96
+ When this skill is dispatched by `directives/ui/review.ts` (test slot)
97
+ or `directives/ui/polish.ts` (verify slot) — i.e. a review/polish run,
97
98
  not the initial apply — it also emits:
98
99
 
99
100
  - `state.ui_review.a11y` — `{violations: [{rule, selector, severity}, ...],
@@ -124,9 +124,10 @@ An action without a closure criterion is a wish, not a plan.
124
124
 
125
125
  Per [`docs/contracts/analysis-memory-loop.md § 2`](../../docs/contracts/analysis-memory-loop.md):
126
126
 
127
- 1. Run the dedup pre-check — call `find_duplicate(...)` from
128
- `scripts.memory_lookup` over the same key-space (incident type,
129
- affected paths, decision area).
127
+ 1. Run the dedup pre-check — `find_duplicate(...)` from
128
+ `scripts/memory_lookup.ts` over the same key-space (incident type,
129
+ affected paths, decision area); a `memory:lookup` query over the
130
+ same keys is the CLI equivalent.
130
131
  2. **Match found** — propose a `frequency` / `supersedes` update to
131
132
  the existing entry; do NOT create a new candidate.
132
133
  3. **No match** — draft a REDACTED `incident-learnings` candidate to
@@ -143,10 +144,10 @@ Per [`docs/contracts/analysis-memory-loop.md § 2`](../../docs/contracts/analysi
143
144
 
144
145
  4. NEVER auto-promote. The human drives promotion via `/memory
145
146
  promote`. If the candidate fails the admission gate
146
- (`check_memory_proposal.py`), surface the gap to the user.
147
+ (`check_memory_proposal.ts`), surface the gap to the user.
147
148
 
148
- If `retrieve()` returns stale entries in `skipped`, surface them
149
- explicitly — never silently use stale data.
149
+ If the lookup surfaces stale entries (past `review_after_days`),
150
+ surface them explicitly — never silently use stale data.
150
151
 
151
152
  ## Output
152
153
 
@@ -181,8 +182,8 @@ The post-mortem produces, in order:
181
182
  Severity is `near-miss`; the extra two questions apply.
182
183
  - **Corrective actions without closure criteria** are non-actionable.
183
184
  Always require a specific, testable done condition.
184
- - **Stale memory entries** surface in `skipped`, not `results`. Never
185
- silently reuse stale data.
185
+ - **Stale memory entries** must be surfaced as stale, never merged
186
+ into the findings. Never silently reuse stale data.
186
187
 
187
188
  ## See also
188
189
 
@@ -105,10 +105,9 @@ The checks below are stack-agnostic. For framework-specific conventions (PSR-12
105
105
 
106
106
  ## Before creating a PR
107
107
 
108
- 1. Run the project's quality pipeline (see the stack carve-out for the exact commands — PHP: `quality-tools`).
109
- 2. Run tests via the project's runner (`make test`, `npm test`, `pytest`, `go test ./...`, or the project's wrapper script).
110
- 3. Ensure CI passes on the branch.
111
- 4. Self-review the diff: `git diff origin/main..HEAD`.
108
+ 1. When `quality.local_auto_run: true`: run the project's quality pipeline (see the stack carve-out for the exact commands — PHP: `quality-tools`) and tests via the project's runner (`make test`, `npm test`, `pytest`, `go test ./...`, or the project's wrapper script). Under the default (`false` / missing): skip both — remote CI on the PR is the gate.
109
+ 2. Ensure CI passes on the branch (remote CI is authoritative).
110
+ 3. Self-review the diff: `git diff origin/main..HEAD`.
112
111
 
113
112
  ## Receiving feedback
114
113
 
@@ -45,11 +45,11 @@ Only ask the user if inference fails and the command cannot proceed without the
45
45
  | `.augment/commands/` | Shared commands (work across projects) |
46
46
  | `agents/overrides/commands/` | Project-specific overrides (used instead of original) |
47
47
 
48
- ## Commands that dispatch to a Python engine
48
+ ## Commands that dispatch to the work engine
49
49
 
50
50
  Most commands are pure markdown procedures — the agent reads the steps
51
- and executes them. Two commands delegate to the `work_engine` Python
52
- module via the `./agent-config` dispatcher; both share the same
51
+ and executes them. Two commands delegate to the `work_engine` engine
52
+ (TypeScript, run via tsx) via the `./agent-config` dispatcher; both share the same
53
53
  Option-A loop (read state → run engine → handle exit code → repeat),
54
54
  they only differ in the input envelope they build:
55
55
 
@@ -59,7 +59,7 @@ Why optional + not yet blocking, + the upgrade trigger:
59
59
  ## Commands ARE Claude skills (projection reality)
60
60
 
61
61
  Every `src/agent-src/commands/{name}.md` projects to
62
- `.claude/skills/{slug}/SKILL.md` via `scripts/condense.py`
62
+ `.claude/skills/{slug}/SKILL.md` via `scripts/condense.ts`
63
63
  (`generate_claude_commands`). Nested commands flatten with `-`
64
64
  (`council/default.md` → `council-default`). Skills + commands share the
65
65
  **same `.claude/skills/` namespace** — Claude does not distinguish them.
@@ -205,7 +205,7 @@ multi-paragraph explanation, extract it into a skill and call it.
205
205
  ### 6. Governance baseline (when introducing a new linter check)
206
206
 
207
207
  **Advisory, reviewer-checked — no CI gate.** When the same PR adds a
208
- new check to `scripts/skill_linter.py` (or strengthens an existing one)
208
+ new check to `scripts/skill_linter.ts` (or strengthens an existing one)
209
209
  such that previously-clean commands now warn, the PR body MUST record
210
210
  the pre-existing violations on `main` in a Markdown table:
211
211
 
@@ -273,7 +273,7 @@ to every command you author.
273
273
  ## Cloud Behavior
274
274
 
275
275
  On cloud surfaces (Claude.ai Web, Skills API) the package's
276
- `scripts/skill_linter.py`, `scripts/condense.py`, and the `task`
276
+ `scripts/skill_linter.ts`, `scripts/condense.ts`, and the `task`
277
277
  runner are not available. This skill still applies — but with
278
278
  prose-only validation:
279
279
 
@@ -29,7 +29,7 @@ Use when:
29
29
 
30
30
  - Condense reply, commit message, PR body, ticket summary, or any deliverable written *for* human reader — those are carve-outs in [`telegraph-speak § Carve-outs`](../../rules/telegraph-speak.md) and stay verbatim.
31
31
  - Condense path matching sensitive-file denylist (`.env*`, `.netrc`, `credentials*`, `secrets*`, `id_rsa*`, `*.pem|key|p12|pfx|crt|cer|jks`, `.ssh/*`) — script refuses with `SensitivePathError` and so should you.
32
- - Condense generated file (`dist/agent-src/`, `.augment/`, `.claude/`, `.cursor/`, `.clinerules/`, `.windsurfrules`) — edit source in `.agent-src.uncondensed/` and regenerate via package's sync + generate-tools scripts (`scripts/condense.sh --sync` + `scripts/condense.py --generate-tools`).
32
+ - Condense generated file (`dist/agent-src/`, `.augment/`, `.claude/`, `.cursor/`, `.clinerules/`, `.windsurfrules`) — edit source in `.agent-src.uncondensed/` and regenerate via package's sync + generate-tools scripts (`scripts/condense.sh --sync` + `scripts/condense.ts --generate-tools`).
33
33
  - Hand-edit condensed memory file in place — run `--decondense` first; next condense pass refuses on body-hash drift (`CondensationRefused`).
34
34
  - Commit condensed file without committing matching `.original.md` backup — round-trip breaks otherwise.
35
35
 
@@ -99,7 +99,7 @@ CLI exit codes:
99
99
  - **Denylist false positive** — sensitive-looking filename outside denylist surface (project-specific naming) will still pass `assert_safe()`. Denylist necessary but not sufficient; maintainer responsible for never feeding secrets to condenseor.
100
100
  - **Frontmatter ordering with existing keys** — if target already has frontmatter, condenseor preserves existing keys, drops any prior `original_sha256:` / `condensed_at:` entries, and appends new pair. Other agents reading file should treat SHA + timestamp pair as canonical condensation marker, not file size.
101
101
  - **Negative savings on pointer-heavy files** — `templates/AGENTS.md` already following Thin-Root (≥ 40 % pointers, ≥ 60-char *why*-clauses) has little prose left to drop; condensation may net near-zero or even add bytes via frontmatter. Run [`agents-md-thin-root`](../agents-md-thin-root/SKILL.md) first to maximise pointer share, then measure whether this skill still pays.
102
- - **Generated-tree drift** — condensing `.agent-src.uncondensed/templates/AGENTS.md` does NOT propagate to `.augment/`, `.claude/`, etc. until package's sync + generate-tools scripts run (`scripts/condense.sh --sync` + `scripts/condense.py --generate-tools`). Always regenerate after condensing templated file.
102
+ - **Generated-tree drift** — condensing `.agent-src.uncondensed/templates/AGENTS.md` does NOT propagate to `.augment/`, `.claude/`, etc. until package's sync + generate-tools scripts run (`scripts/condense.sh --sync` + `scripts/condense.ts --generate-tools`). Always regenerate after condensing templated file.
103
103
 
104
104
  ## Measurement — when to condense
105
105
 
@@ -156,7 +156,7 @@ If the context file declares its own `load_context:` (chain reasoning),
156
156
  use logical names rooted at the source — `contexts/<area>/<file>.md`
157
157
  for package material or `agents/settings/contexts/<file>.md` for project-local
158
158
  material. The `.agent-src.uncondensed/` prefix is rejected by the
159
- schema regex and by `scripts/lint_load_context.py`. Body links to
159
+ schema regex and by `scripts/lint_load_context.ts`. Body links to
160
160
  `docs/guidelines/...` use the verbatim `../../docs/...` relative form.
161
161
  Canonical reference: `rule-writing` § 3b and
162
162
  `docs/contracts/load-context-schema.md`.
@@ -108,7 +108,7 @@ human curates), a card is governed: it is a cache of *expensive* remote evidence
108
108
  **negative facts + pointers** (`trust: durable`); its positive structure is a
109
109
  per-line, last-verified **hypothesis** that loads as "Assumed (from card)" and
110
110
  must be re-confirmed against the live source before use. Cards pass the
111
- `check_knowledge_cards.py` pointer-CI (size ≤ 150, mandatory authoritative
111
+ `check_knowledge_cards.ts` pointer-CI (size ≤ 150, mandatory authoritative
112
112
  pointer, trust tagging, multi-evidence consistency). See
113
113
  [`source-discovery`](../source-discovery/SKILL.md) for when a structure is
114
114
  card-worthy and [`evidence-discipline`](../../agent-src/contexts/execution/evidence-discipline.md)
@@ -156,7 +156,7 @@ about the project** over time:
156
156
  Before deduplicating, run three scans:
157
157
 
158
158
  1. **Legacy identifier scan** — compare both files against the package's
159
- `FORBIDDEN_IDENTIFIERS` blocklist (see `scripts/check_portability.py`)
159
+ `FORBIDDEN_IDENTIFIERS` blocklist (see `scripts/check_portability.ts`)
160
160
  plus any project names from `agents/` module docs that don't match
161
161
  the current project.
162
162
  2. **Stack coherence scan** — auto-detect the actual stack from
@@ -36,7 +36,8 @@ frontend-hardcoded axis moved into the manifest. Full license obligations:
36
36
  - A skill needs **pre-action selection** grounded in curated knowledge
37
37
  ("which layout pattern / threat class / index strategy applies here").
38
38
  - You are authoring a **new domain corpus** — write a manifest + CSVs,
39
- validate with `ground.py validate`, never fork the engine.
39
+ validate with the grounding CLI (`ground validate` via ./scripts-run),
40
+ never fork the engine.
40
41
  - You need stack-scoped Do/Don't guidance (`--stack react …`).
41
42
 
42
43
  ## Do NOT
@@ -92,7 +93,8 @@ Stable v1 surface:
92
93
  search_stack, evaluate_rules, ground, persist_grounding}`,
93
94
  `schema_validator.{load_manifest, validate_manifest, resolve_data_path,
94
95
  ManifestError, MANIFEST_VERSION, TIERS}`.
95
- 2. **CLI** — `ground.py {search|ground|validate}` with the flags shown above.
96
+ 2. **CLI** — the grounding CLI (`ground {search|ground|validate}` via
97
+ ./scripts-run) with the flags shown above.
96
98
  3. **Result shape** — search: `{domain|stack, query, file, count, results,
97
99
  scores, filtered_from, confidence{label,score}, evidence_gap[]}`;
98
100
  ground: `{domain, query, category, rule, rules_evaluation{matched,
@@ -138,7 +140,7 @@ Each domain ships `data/manifest.json` beside its CSVs — declaring its
138
140
  "priority_domain": "style",
139
141
  "name_columns": { "style": "Style Category" },
140
142
  "plan": { "style": 3, "color": 2 },
141
- "rules_module": "rules.py"
143
+ "rules_module": "rules.ts"
142
144
  },
143
145
  "owner": "package-maintainer",
144
146
  "refresh_cadence": "quarterly",
@@ -151,8 +153,10 @@ Each domain ships `data/manifest.json` beside its CSVs — declaring its
151
153
  - `owner`, `refresh_cadence`, `upstream{repo,sha,last_checked}` are
152
154
  **required** — provenance discipline per ADR-061 §6; an unowned corpus
153
155
  is not merged.
154
- - `rules_module` (optional Python escape hatch where JSON rules cap out)
155
- must live beside the manifest — absolute paths and `..` are refused.
156
+ - `rules_module` (optional TypeScript escape hatch where JSON rules cap
157
+ out — a module exposing `evaluate(rules, query, context)`; a legacy
158
+ `.py` name in a manifest is remapped to its `.ts`/`.js` twin) must live
159
+ beside the manifest — absolute paths and `..` are refused.
156
160
  - Decision rules are surfaced as `matched` **and** `unmatched` — the full
157
161
  rule space stays auditable, never a hidden gate.
158
162
 
@@ -162,7 +166,7 @@ Each domain ships `data/manifest.json` beside its CSVs — declaring its
162
166
  row count; grounding must happen **before** action; "fits in 5 lines →
163
167
  it's a rule, not a corpus".
164
168
  2. Write `data/manifest.json` + CSVs in your domain skill; run
165
- `ground.py validate`.
169
+ the grounding CLI (`ground validate` via ./scripts-run).
166
170
  3. Name an owner + refresh cadence in the manifest, pin the upstream SHA.
167
171
  4. Cite this skill from your domain skill; consult via the CLI (Tier-1
168
172
  consultation default — propose grounded options, human confirms).
@@ -189,9 +193,9 @@ Each domain ships `data/manifest.json` beside its CSVs — declaring its
189
193
  under the caller-chosen `DIR`; nothing else writes.
190
194
  - **No network, no subprocess, no secrets** — pure stdlib; embeddings /
191
195
  remote retrievers are intentionally not implemented (ADR-061 §2).
192
- - `rules_module` executes manifest-adjacent Python — same trust domain as
193
- the skill that ships the manifest; containment enforced by
194
- `resolve_data_path`.
196
+ - `rules_module` executes a manifest-adjacent TypeScript module (dynamic
197
+ `import()`) — same trust domain as the skill that ships the manifest;
198
+ containment enforced by `resolve_data_path`.
195
199
 
196
200
  ## See also
197
201
 
@@ -201,5 +205,6 @@ Each domain ships `data/manifest.json` beside its CSVs — declaring its
201
205
  architecture, qualification rubric, fork resolutions.
202
206
  - [`docs/contracts/skill-bundled-assets.md`](../../../docs/contracts/skill-bundled-assets.md)
203
207
  — how bundled `scripts/` + `data/` reach consumer runtime.
204
- - Tests: `tests/test_corpus_grounding_engine.py`,
205
- `tests/test_skill_bundled_assets.py`.
208
+ - Tests: `tests/scripts/skills_corpus_grounding_ground.test.ts`,
209
+ `tests/scripts/skills_corpus_grounding_bm25_search.test.ts`,
210
+ `tests/scripts/skills_corpus_grounding_schema_validator.test.ts`.
@@ -22,7 +22,7 @@
22
22
 
23
23
  import * as fs from 'node:fs';
24
24
  import * as path from 'node:path';
25
- import { pathToFileURL } from 'node:url';
25
+ import { fileURLToPath, pathToFileURL } from 'node:url';
26
26
 
27
27
  import {
28
28
  PyFloat,
@@ -524,9 +524,30 @@ function _jsonStr(s: string): string {
524
524
  return `${out}"`;
525
525
  }
526
526
 
527
+ function _isCliEntry(): boolean {
528
+ if (process.argv[1] === undefined) {
529
+ return false;
530
+ }
531
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
532
+ if (import.meta.url === argvUrl) {
533
+ return true;
534
+ }
535
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
536
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
537
+ // import.meta.url is the resolved real path while argv[1] keeps the
538
+ // symlink path. Compare realpaths so the entry guard still fires
539
+ // (without this the CLI silently no-ops when run through a symlink).
540
+ try {
541
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
542
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
543
+ return here === argv;
544
+ } catch {
545
+ return false;
546
+ }
547
+ }
548
+
527
549
  const _isMain =
528
- process.argv[1] !== undefined &&
529
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
550
+ _isCliEntry();
530
551
  if (_isMain) {
531
552
  main()
532
553
  .then((code) => {
@@ -27,7 +27,8 @@ Do NOT use when:
27
27
  2. **Pick the surface** — Use the decision tables below to choose Grafana, app dashboard, or embed; document audience and refresh cadence.
28
28
  3. **Draft the layout** — Sketch panels, choose visualization per signal (RED / USE / Golden Signals), define filters and thresholds.
29
29
  **Ground the chart-type choice** in the adopted data-viz corpus instead
30
- of memory: `ground.py search --manifest
30
+ of memory: `./scripts-run <skills-root>/corpus-grounding/scripts/ground
31
+ search --manifest
31
32
  <skills-root>/design-intelligence/data/manifest.json --domain chart
32
33
  "<data shape>"` returns the best chart type, when-NOT-to-use, data-volume
33
34
  threshold, a11y grade + colorblind fallback, and a library
@@ -15,7 +15,8 @@ packs:
15
15
 
16
16
 
17
17
  > **Grounded corpus (Tier-1 consultation):** symptom → index/strategy
18
- > decisions come grounded — `ground.py search --manifest
18
+ > decisions come grounded — `./scripts-run
19
+ > <skills-root>/corpus-grounding/scripts/ground search --manifest
19
20
  > <skills-root>/database/data/manifest.json "<symptom>"` returns root
20
21
  > cause, strategy, good-code sketch, anti-pattern, and the verification
21
22
  > probe (EXPLAIN expectation). Corpus:
@@ -19,8 +19,8 @@ packs:
19
19
  "will this ever fire", "rewrite the description".
20
20
  * Called from within the Draft phase of one of the writing skills
21
21
  (`skill-writing`, `rule-writing`, `command-writing`, `guideline-writing`).
22
- * Auditing a skill flagged by `audit_skill_descriptions.py` as `too-short`,
23
- `no-trigger-prefix`, or `description_too_long` in `skill_linter.py`.
22
+ * Auditing a skill flagged by `audit_skill_descriptions.ts` as `too-short`,
23
+ `no-trigger-prefix`, or `description_too_long` in `skill_linter.ts`.
24
24
 
25
25
  Do NOT use this skill when:
26
26
 
@@ -65,7 +65,7 @@ If the target is a skill, check for a trigger-eval report:
65
65
 
66
66
  * `.agent-src.uncondensed/skills/{name}/evals/triggers.json` — the expected-trigger corpus
67
67
  * `evals/last-run.json` — the most recent runner output (see
68
- [`scripts/skill_trigger_eval.py`](../../../scripts/skill_trigger_eval.py))
68
+ [`scripts/skill_trigger_eval.ts`](../../../scripts/skill_trigger_eval.ts))
69
69
 
70
70
  If `last-run.json` exists and contains failed queries for this skill,
71
71
  extract the failure patterns and **use them to inform step 3 variants**.
@@ -159,14 +159,14 @@ and stop. Do not loop further.
159
159
  * Do NOT propose more than 3 variants in one turn
160
160
  * Do NOT change the skill name, body, or trigger phrases in the same turn
161
161
  * Do NOT silently strip or reword quotes inside the description value
162
- * Do NOT run `scripts/skill_trigger_eval.py` from inside this skill — eval
162
+ * Do NOT run `scripts/skill_trigger_eval.ts` from inside this skill — eval
163
163
  execution spends API tokens and is a separate user action
164
164
 
165
165
  ## Cloud Behavior
166
166
 
167
167
  On cloud surfaces (Claude.ai Web, Skills API) the package's
168
- `scripts/audit_skill_descriptions.py`, `scripts/skill_linter.py`,
169
- and `scripts/skill_trigger_eval.py` are not reachable. The skill
168
+ `scripts/audit_skill_descriptions.ts`, `scripts/skill_linter.ts`,
169
+ and `scripts/skill_trigger_eval.ts` are not reachable. The skill
170
170
  still applies — with prose-only inspection:
171
171
 
172
172
  * Reason from the description text in the conversation. The agent
@@ -26,9 +26,9 @@ execution:
26
26
  > consult this corpus FIRST and pre-fill the brief candidates — then the
27
27
  > human confirms (`design_confirmed`). Corpus output is a **constraint
28
28
  > set**, never final microcopy; the placeholder lock in
29
- > `directives/ui/design.py` is unaffected.
29
+ > `directives/ui/design.ts` is unaffected.
30
30
  >
31
- > **Boundary (council-locked):** `design.py` stays a pure orchestration
31
+ > **Boundary (council-locked):** `design.ts` stays a pure orchestration
32
32
  > gate and never imports the engine — the corpus call lives HERE, in the
33
33
  > skill layer, keeping the engine an optional dependency.
34
34
 
@@ -221,7 +221,8 @@ consistency; on a fresh session, re-hydrate `state.ui_design` from
221
221
  The `review`/`polish` steps gate on `state.ui_review.a11y`. Ground two
222
222
  finding classes instead of ad-hoc judgment:
223
223
 
224
- - **Chart-type findings** — `…/ground.py search --manifest … --domain
224
+ - **Chart-type findings** — the grounding CLI (`ground` via
225
+ ./scripts-run) — `…/ground search --manifest … --domain
225
226
  chart "<data shape>"` → `Accessibility Grade`, `A11y Fallback`,
226
227
  `Color Guidance` columns justify "wrong chart type / missing colorblind
227
228
  fallback" findings with a citable row.
@@ -260,7 +261,7 @@ guidance + docs URLs from here instead of memory.
260
261
 
261
262
  - Do NOT let the corpus write microcopy — it supplies constraint sets;
262
263
  final strings are agent-written (placeholder lock stays in force).
263
- - Do NOT import the engine into `directives/ui/design.py` — council
264
+ - Do NOT import the engine into `directives/ui/design.ts` — council
264
265
  boundary; the corpus call lives in this skill layer.
265
266
  - Do NOT propose a new component the `existing-ui-audit` inventory
266
267
  already covers — audit findings outrank corpus suggestions.
@@ -273,7 +274,7 @@ guidance + docs URLs from here instead of memory.
273
274
  | What already exists (components, tokens) | [`existing-ui-audit`](../existing-ui-audit/SKILL.md) — mandatory pre-step; audit findings outrank corpus suggestions |
274
275
  | What to build (grounded selection) | **this skill** |
275
276
  | Stack-agnostic heuristics + flow | [`fe-design`](../fe-design/SKILL.md) — invokes this skill for grounding |
276
- | Orchestration gates + locks | `directives/ui/{design,review,polish}.py` — never import the engine |
277
+ | Orchestration gates + locks | `directives/ui/{design,review,polish}.ts` — never import the engine |
277
278
  | WCAG audit method | [`accessibility-auditor`](../accessibility-auditor/SKILL.md) |
278
279
  | Token authoring | [`design-tokens`](../design-tokens/SKILL.md) |
279
280
  | Lo-fi structure exploration (pre-selection) | [`wireframe`](../wireframe/SKILL.md) — disposable greyscale variants |
@@ -21,14 +21,14 @@ execution:
21
21
 
22
22
  > Token *authoring* skill: the 3-layer DTCG model
23
23
  > (**primitive → semantic → component**) with light/dark theming, a
24
- > Python toolchain (`scripts/tokens.py` — generate / validate / embed,
25
- > no Node dependency per ADR-061), and a starter template. Selection of
24
+ > TypeScript toolchain (`scripts/tokens.ts` — generate / validate /
25
+ > embed, run via ./scripts-run), and a starter template. Selection of
26
26
  > *which* token values fit the product comes grounded from
27
27
  > [`design-intelligence`](../design-intelligence/SKILL.md) (WCAG-adjusted
28
28
  > color sets, typography pairings); this skill turns the selection into a
29
29
  > maintained token system.
30
30
 
31
- Toolchain provenance: Python port of the upstream `.cjs` trio
31
+ Toolchain provenance: port of the upstream `.cjs` trio
32
32
  (`generate-tokens`, `validate-tokens`, `embed-tokens`) from
33
33
  `nextlevelbuilder/ui-ux-pro-max-skill` `design-system` sub-skill
34
34
  @ `b7e3af80f6e331f6fb456667b82b12cade7c9d35` (MIT, last checked
@@ -59,7 +59,7 @@ under `dark.semantic.*` overriding the same semantic names (emitted as a
59
59
  (DTCG). Start from
60
60
  [the bundled starter template](templates/design-tokens-starter.json).
61
61
 
62
- ## Toolchain (`scripts/tokens.py` — skill-relative, any cwd)
62
+ ## Toolchain (`scripts/tokens.ts` — skill-relative, any cwd)
63
63
 
64
64
  ```bash
65
65
  # tokens.json → CSS variables (primitives + semantic + components + .dark)
@@ -140,4 +140,4 @@ four-operation split assigns to *rules/linters*, not the corpus).
140
140
  - [`tailwind-engineer`](../tailwind-engineer/SKILL.md) — utility-discipline consumer.
141
141
  - [`react-shadcn-ui`](../react-shadcn-ui/SKILL.md) — shadcn token conventions.
142
142
  - [`docs/guidelines/design-antipatterns.md`](../../../docs/guidelines/design-antipatterns.md) — when authoring the colour layer, avoid the C5 cream/sand default palette (OKLCH L 0.84–0.97, C < 0.06) and C1 purple/violet primaries unless the brand explicitly defines them; the `brand-consistency` rule validates emitted tokens against the active brand profile.
143
- - Tests: `tests/test_design_tokens_toolchain.py`.
143
+ - Tests: `tests/scripts/skills_design_tokens_tokens.test.ts`.