@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
@@ -0,0 +1,201 @@
1
+ ---
2
+ adr: 113
3
+ status: accepted
4
+ date: 2026-07-08
5
+ decision: ci-native-release-label-trigger
6
+ supersedes: —
7
+ superseded_by: —
8
+ phase: road-to-ci-native-release · Phase 1
9
+ ---
10
+
11
+ # ADR-113 — CI-native release path, triggered by a `release` label on a merged PR
12
+
13
+ ## Status
14
+
15
+ **Accepted** · 2026-07-08.
16
+
17
+ ## Context
18
+
19
+ `task release` (`src/scripts/release.ts`) is a fully interactive, local
20
+ 9-step pipeline: preflight → plan → confirm → branch+bump → commit/push+PR →
21
+ wait for CI → merge → tag → GitHub Release. The back half is already CI
22
+ (`publish-npm.yml`, `cloud-release.yml`, `release-guard.yml` all trigger on
23
+ the pushed numeric tag), but a maintainer must run the front half from a
24
+ terminal. This ADR adds an unattended, CI-native entry point alongside
25
+ `task release` — not a replacement.
26
+
27
+ ## Decision
28
+
29
+ 1. **Trigger: a `release` / `release:major` / `release:minor` /
30
+ `release:patch` label on a PR, checked at merge time**
31
+ (`pull_request: types: [closed]`, job-guarded on `merged == true` +
32
+ an exact label match). `release` auto-detects the bump from
33
+ Conventional Commits since the last tag (same logic `task release`
34
+ uses); the `release:*` variants force the bump. `workflow_dispatch`
35
+ (with `bump` / `version` / `dry_run` / `resume` inputs) is the
36
+ manual/recovery entry for a release not tied to a PR merge.
37
+
38
+ 2. **The numeric `X.Y.Z` tag stays the pipeline's *output*, never its
39
+ input.** `publish-npm.yml`, `cloud-release.yml`, and
40
+ `release-guard.yml` all trigger on `push: tags:
41
+ [0-9]+.[0-9]+.[0-9]+` and assume the tagged commit already carries
42
+ the bumped `package.json` / `marketplace.json` / regenerated
43
+ projections. A tag-shaped trigger (hand-pushed numeric tag, or a
44
+ `cut-*` intent tag) was considered and rejected — see Alternatives.
45
+
46
+ 3. **One orchestration workflow (`release.yml`), not a prepare/finalize
47
+ split.** GitHub's `GITHUB_TOKEN` recursion guard means events caused
48
+ by the default token do not start new workflow runs (with narrow,
49
+ documented exceptions — see the bot-PR finding below). A
50
+ bot-auto-merged release PR would never trigger a separate
51
+ merge-listening "finalize" workflow. `release.yml` instead runs the
52
+ whole chain synchronously in one job, calling
53
+ `src/scripts/release.ts --ci` end-to-end — the exact same pipeline
54
+ `task release` runs locally, just non-interactively.
55
+
56
+ 4. **`release.ts` gains a `--ci` mode, not a rewrite.** `--ci` changes
57
+ exactly three things relative to the existing interactive path:
58
+ - the `gh`-auth preflight probe (`gh api repos/{slug} --jq .id`
59
+ instead of `gh api user --jq .login` — the default `GITHUB_TOKEN`
60
+ is an installation token and `gh api user` returns 403 for it even
61
+ when perfectly valid);
62
+ - a `nothing_to_release_ci` short-circuit (empty commits + no
63
+ explicit bump/version override → exit 0) so firing the label path
64
+ twice in a row is a clean no-op, not a spurious empty release;
65
+ - explicit post-release dispatch of `release-guard.yml`,
66
+ `publish-npm.yml`, and `cloud-release.yml` via their `tag` input,
67
+ because a `GITHUB_TOKEN`-pushed tag does not fire their
68
+ `push: tags:` trigger either.
69
+
70
+ Every other code path (bump inference, changelog-era rendering, the
71
+ 10-step `execute()` sequence, all idempotent-resume probes) is
72
+ shared, unmodified, between `task release` and `release.yml`.
73
+
74
+ 5. **Token: `secrets.RELEASE_PR_TOKEN` with a `GITHUB_TOKEN` fallback.**
75
+ `release.yml` uses `${{ secrets.RELEASE_PR_TOKEN || secrets.GITHUB_TOKEN
76
+ }}` for checkout, git push, and `gh` auth. See the bot-PR-approval
77
+ finding below for why this matters and why the fallback is safe to
78
+ ship without the secret configured.
79
+
80
+ ## Finding — bot-created PRs need a manual "Approve workflows to run" click (no PAT)
81
+
82
+ Verified against GitHub's own changelog and community docs (2026-06-11,
83
+ ["Bot-created pull requests can run workflows if
84
+ approved"](https://github.blog/changelog/2026-06-11-bot-created-pull-requests-can-run-workflows-if-approved/)):
85
+ when a workflow uses the default `GITHUB_TOKEN` to open or update a PR,
86
+ the resulting `pull_request` events (`opened` / `synchronize` /
87
+ `reopened`) DO create workflow runs for other `pull_request`-triggered
88
+ workflows — but those runs sit in an **approval-required** state until a
89
+ repo collaborator with write access clicks **Approve workflows to run**
90
+ in the PR's merge box. This is a deliberate GitHub security control
91
+ (distinct from, but related to, the fork-first-time-contributor approval
92
+ gate), not a bug in this design.
93
+
94
+ This repo's branch-protection ruleset (verified live via `gh api
95
+ repos/event4u-app/agent-config/rulesets/17749383`) requires
96
+ **zero** approving reviews (`required_approving_review_count: 0`) and
97
+ exactly **one** required status check, `Sync + Generate Tools
98
+ Consistency` (from `consistency.yml`, `pull_request`-triggered). That
99
+ check does not run automatically on a `GITHUB_TOKEN`-opened release PR
100
+ without the one-time approval click — so without `RELEASE_PR_TOKEN`, a
101
+ release via the label path pauses at "waiting for checks" until a
102
+ maintainer approves the run once per release.
103
+
104
+ **Accepted as the default**, not worked around, because:
105
+
106
+ - It requires zero new secrets and zero change to repo-wide security
107
+ settings (disabling the org-wide first-time-contributor approval
108
+ setting would lower security posture for every fork/bot PR, not just
109
+ release PRs — out of proportion to this problem).
110
+ - A release is a production action; per this repo's own engineering
111
+ safety floor (`engineering-safety-floor` rule) and Hard-Floor stance
112
+ on deploys, a single human checkpoint before a release's own CI even
113
+ runs is arguably a feature, not friction.
114
+ - `RELEASE_PR_TOKEN` (a fine-grained PAT or GitHub App installation
115
+ token with `contents: write` + `pull-requests: write` on this repo)
116
+ removes the approval requirement entirely — documented as the
117
+ zero-friction upgrade path in `release.yml`'s header comment. Adding
118
+ it is a maintainer action, not part of this ADR.
119
+
120
+ ## Verified facts (not assumed)
121
+
122
+ - Branch protection ruleset `main protection` (id `17749383`):
123
+ `required_approving_review_count: 0`; required check =
124
+ `Sync + Generate Tools Consistency`; `bypass_actors` includes a
125
+ repository-role bypass. No human-review gate blocks a bot merge once
126
+ checks are green.
127
+ - `consistency.yml` triggers on `pull_request` with path filters that
128
+ match every file a release PR touches (`package.json`,
129
+ `.claude-plugin/marketplace.json`, `CHANGELOG.md`, `dist/agent-src/**`,
130
+ `.augment/**`) — the required check fires (subject to the approval
131
+ gate above), it is not silently skipped.
132
+ - No `RELEASE_PR_TOKEN`-shaped secret exists in the repo today (`gh
133
+ secret list`) — the fallback path is the one that ships by default.
134
+ - `softprops/action-gh-release@v2`'s `overwrite_files` input defaults to
135
+ `true` — re-attaching the same-named cloud-release assets on a
136
+ dispatch-chain re-run is idempotent by construction, no extra guard
137
+ needed.
138
+ - `npm publish` hard-rejects re-publishing an existing version — added a
139
+ `npm view @event4u/agent-config@<tag> version` pre-check to
140
+ `publish-npm.yml` so a double-dispatch (native tag-push trigger racing
141
+ the explicit dispatch, when `RELEASE_PR_TOKEN` IS configured) is a
142
+ clean skip, not a red run.
143
+
144
+ ## Consequences
145
+
146
+ - Releasing needs exactly one human action: label a PR `release` (or a
147
+ `release:*` variant) and merge it. Without `RELEASE_PR_TOKEN`, one
148
+ additional "Approve workflows to run" click is needed once per
149
+ release on the auto-created release PR.
150
+ - `task release` is unaffected — same script, same flags, same tests.
151
+ It remains the interactive/local path and the documented fallback if
152
+ the CI path misbehaves.
153
+ - Three existing workflows (`release-guard.yml`, `publish-npm.yml`)
154
+ gained a `workflow_dispatch` input / idempotency guard respectively;
155
+ `cloud-release.yml` needed no change (already idempotent).
156
+ - A future maintainer who configures `RELEASE_PR_TOKEN` gets a fully
157
+ unattended release with zero code changes required — the fallback
158
+ expression already prefers it.
159
+
160
+ ## Alternatives considered
161
+
162
+ - **Hand-pushed numeric tag as the trigger.** Rejected: the tag-triggered
163
+ workflows require the tagged commit to already carry the bump: a
164
+ hand-pushed `X.Y.Z` on plain main fires them against the *un-bumped*
165
+ tree (red `release-guard`, wrong npm tarball), and the tag would then
166
+ have to be deleted and re-pushed onto the eventual bump-PR merge
167
+ commit — mutable tags are an anti-pattern (stale fetches, npm
168
+ provenance binds to the tag commit).
169
+ - **A `cut-*` intent tag** (`cut-X.Y.Z` / `cut-auto` / `cut-major` / …)
170
+ in a separate namespace from the numeric tags. Functionally workable
171
+ (does not collide with the publish/guard tag patterns), but the
172
+ release label keeps the intent visible on the PR itself — reviewable,
173
+ revocable pre-merge, no second git-tag vocabulary to teach.
174
+ - **`workflow_dispatch` as the sole/primary trigger**, no label. Loses
175
+ the "the intent to release lives on the PR, and is revocable until
176
+ merge" property that the label gives for free; kept as the
177
+ manual/recovery entry, not the primary path.
178
+ - **Prepare + finalize workflow split** (one workflow opens the release
179
+ PR, a second listens for its merge and finalizes). Needs a
180
+ `RELEASE_PR_TOKEN`-class token as a *hard* requirement — under plain
181
+ `GITHUB_TOKEN`, the bot-merged PR's `pull_request: closed` event is
182
+ the SAME kind of GITHUB_TOKEN-caused event subject to the same
183
+ approval/recursion nuance, and splitting the pipeline across two
184
+ workflow boundaries adds a second place idempotency can drift. The
185
+ single-workflow design collapses this into one synchronous run using
186
+ the already-battle-tested `execute()` sequence.
187
+ - **Disable the org-wide "require approval for first-time contributors"
188
+ setting** to remove the bot-PR approval gate without a PAT. Rejected:
189
+ it is an org-wide security posture change affecting every fork/bot PR
190
+ in the organization, not scoped to releases — disproportionate to
191
+ this problem; `RELEASE_PR_TOKEN` is the properly-scoped fix.
192
+
193
+ ## References
194
+
195
+ - `.github/workflows/release.yml` — the orchestration workflow.
196
+ - `src/scripts/release.ts` — the shared pipeline (`--ci` mode).
197
+ - `docs/contracts/release-pr-gating.md`,
198
+ `docs/contracts/branch-protection-policy.md` — release-PR shape and
199
+ required-check contracts this design must keep satisfying.
200
+ - [GitHub Changelog — Bot-created pull requests can run workflows if
201
+ approved (2026-06-11)](https://github.blog/changelog/2026-06-11-bot-created-pull-requests-can-run-workflows-if-approved/)
@@ -114,6 +114,9 @@ _Auto-generated by `scripts/adr/regenerate_index.py`. Do not edit._
114
114
  | [ADR-108](ADR-108-open-source-forever-no-commercial-tier.md) | Open Source Forever No Commercial Tier | accepted | 2026-06-24 | — |
115
115
  | [ADR-109](ADR-109-subagent-v1-contract.md) | Subagent V1 Contract | accepted | 2026-07-04 | — |
116
116
  | [ADR-110](ADR-110-discipline-profile-resolution-locus.md) | Discipline Profile Resolution Locus | accepted | 2026-07-07 | — |
117
+ | [ADR-111](ADR-111-canonical-glama-listing.md) | Canonical Glama Listing | accepted | 2026-07-07 | — |
118
+ | [ADR-112](ADR-112-stdio-lite-stays-read-only.md) | Stdio Lite Stays Read Only | accepted | 2026-07-07 | — |
119
+ | [ADR-113](ADR-113-ci-native-release-label-trigger.md) | Ci Native Release Label Trigger | accepted | 2026-07-08 | — |
117
120
  | [ADR-200](ADR-200-python-to-typescript-migration.md) | Python To Typescript Migration | accepted | 2026-06-11 | — |
118
121
 
119
122
  ## Unnumbered (legacy)
@@ -34,7 +34,7 @@ the submission shape evolves; this file accumulates history.
34
34
 
35
35
  | # | Registry | Submission shape | Status | PR / form URL | Date | Maintainer notes |
36
36
  |---|---|---|---|---|---|---|
37
- | 1 | `punkpeye/awesome-mcp-servers` | One-line entry under agent-tooling section; PR via `scripts/mcp_registry_submit.sh` | `pending` | — | — | Scaffold ready. Run `bash scripts/mcp_registry_submit.sh --dry-run` once before live; the live path needs the maintainer's GitHub identity. |
37
+ | 1 | `punkpeye/awesome-mcp-servers` | One-line entry under agent-tooling section; PR via `scripts/mcp_registry_submit.sh` | `submitted` | <https://github.com/punkpeye/awesome-mcp-servers/pull/9607> | 2026-07-07 | PR opened via the submit script (two script bugs fixed on the way: idempotent upstream remote, `--head OWNER:branch` format). Awaiting upstream review. |
38
38
  | 2 | `mcp.so` | Directory form submission (web form, no programmatic API) | `pending` | — | — | Form URL: <https://mcp.so/>. Submission shape: same one-line entry, paste into the form's `description` field. |
39
39
  | 3 | `mcpservers.org` | Directory form submission (web form, verify URL at submission time) | `pending` | — | — | Form URL: <https://mcpservers.org/>. Submission shape: one-line entry; check the site is live before posting. |
40
40
 
@@ -37,16 +37,18 @@ The suite is global-only (ADR-020) — refresh the global install and every
37
37
  project sees the new skills, rules, and hooks at once, no per-repo bump:
38
38
 
39
39
  ```bash
40
- agent-config upgrade # fetch + install the latest globally (binary + plugin)
41
- agent-config refresh --global # idempotent re-install, same version (root + plugin)
40
+ agent-config upgrade # fetch + install the latest globally (content + hooks)
41
+ agent-config refresh --global # idempotent re-install, same version
42
42
  agent-config refresh --project # refresh a project's minimal surface — bridge
43
43
  # marker, agents/overrides/, .gitignore (no wizard)
44
- agent-config doctor # PATH, binary↔plugin version drift, bridge presence
44
+ agent-config doctor # PATH, hook wiring, duplicate surfaces, bridge presence
45
45
  ```
46
46
 
47
- The Claude marketplace plugin updates on Claude Code's own cadence,
48
- independent of npm; `doctor` surfaces binary↔plugin drift so you know when to
49
- update the plugin from the marketplace.
47
+ Claude Code is single-surface: the file projection carries content AND the
48
+ managed hooks in `~/.claude/settings.json` — there is no marketplace plugin
49
+ to keep in sync anymore. A leftover plugin from an older install is flagged
50
+ by `doctor` as `claude-plugin: duplicate surface` (fix:
51
+ `claude plugin uninstall agent-config@event4u-agent-config`).
50
52
 
51
53
  ## Project CLI — `./agent-config`
52
54
 
@@ -59,7 +59,7 @@ src/skills/<domain-skill>/data/
59
59
  | Named owner + cadence | `manifest.json` keys — schema-validator-enforced |
60
60
  | Staleness visibility | `upstream.last_checked` bumped on every refresh; quarterly default |
61
61
  | Link integrity | `Docs URL` / source columns are plain URLs; `check-refs` + the quarterly refresh catch 404s |
62
- | Eval lock | one `tests/test_<domain>_corpus.py` with representative queries |
62
+ | Eval lock | one `tests/scripts/<domain>_corpus.test.ts` with representative queries |
63
63
  | License | source obligations recorded in the owning skill (ATTRIBUTION pattern) |
64
64
 
65
65
  ## 4. Rejected domains — recorded, do not relitigate (Step 9.7)
@@ -73,7 +73,7 @@ split), the following are **rejected as corpora**:
73
73
  | GTM playbooks | Same volatility; context dominates selection | Framework skills + discovery interviews |
74
74
  | Founder-strategy verdicts | Verdicts are human decisions (strategy-safety-floor); no auditable selection rule | Framework skills + safety floors |
75
75
  | Formula/spec lookup (WACC, WCAG criterion text, API param lists) | Mid-action **reference**, not pre-action grounding | `references/` docs / RAG |
76
- | Lint-able conventions (no hardcoded hex, commit format) | Post-action **validation** | Rules / linters (`tokens.py validate`, commit lints) |
76
+ | Lint-able conventions (no hardcoded hex, commit format) | Post-action **validation** | Rules / linters (`tokens.ts validate`, commit lints) |
77
77
  | Anything ≤5 always-on lines | Grounding theater | A rule |
78
78
 
79
79
  Conditional (deferred, evidence-gated — NOT rejected): finance *method
@@ -25,7 +25,7 @@ that prefer one file per type.
25
25
  | Incident learnings | `agents/memory/incident-learnings.yml` | `agents/memory/incident-learnings/<hash>.yml` |
26
26
  | Product rules | `agents/memory/product-rules.yml` | `agents/memory/product-rules/<hash>.yml` |
27
27
 
28
- Choose one layout per type and stick with it. `scripts/check_memory.py`
28
+ Choose one layout per type and stick with it. `scripts/check_memory.ts`
29
29
  warns if both exist for the same type.
30
30
 
31
31
  ## Shared frontmatter fields
@@ -59,7 +59,7 @@ for why a fourth `high` tier was rejected.
59
59
  | `low` | Background — only surface on explicit full load | Skipped by query-matched retrieval; visible only via `/memory:load --type` full sweep |
60
60
 
61
61
  **Tier-0 governance.**
62
- `scripts/check_memory.py` enforces two soft guards on `critical` entries:
62
+ `scripts/check_memory.ts` enforces two soft guards on `critical` entries:
63
63
 
64
64
  - **Critical-stale warning** — a `priority: critical` entry whose
65
65
  `last_validated` is older than 90 days emits a `critical-stale` warning
@@ -119,7 +119,7 @@ templates for the full shape:
119
119
 
120
120
  ## Redaction rules (hard)
121
121
 
122
- Enforced by `scripts/check_memory.py`. Reject on match:
122
+ Enforced by `scripts/check_memory.ts`. Reject on match:
123
123
 
124
124
  - **No secrets.** API keys, tokens, credentials, private URLs with
125
125
  credentials, internal hostnames that expose infrastructure.
@@ -139,7 +139,7 @@ path if the guardrail is absent.
139
139
 
140
140
  ## Staleness
141
141
 
142
- `check_memory.py` runs weekly (not per-PR). It reports entries where
142
+ `check_memory.ts` runs weekly (not per-PR). It reports entries where
143
143
  `(today - last_validated) > review_after_days`. Stale entries stay
144
144
  active — the report is informational, not a gate.
145
145
 
@@ -17,7 +17,7 @@ machine-managed, and orthogonal to `.agent-project-settings.yml`
17
17
  schema_version: 1
18
18
  agent_config_version: "2.x.y" # last package version that wrote the file
19
19
  tools:
20
- - name: claude-code # must match _VALID_TOOLS in scripts/install.py
20
+ - name: claude-code # must match _VALID_TOOLS in scripts/install.ts
21
21
  scope: global # one of: global, project
22
22
  bridge_marker: ~/.claude/ # validate checks this path exists
23
23
  installed_at: "2026-05-12"
@@ -32,7 +32,7 @@ tools:
32
32
  | `schema_version` | machine | bumps on breaking schema changes |
33
33
  | `agent_config_version` | machine | last writer's package version; `validate` flags drift |
34
34
  | `tools[]` | machine | append-on-init order preserved (not alphabetised) |
35
- | `tools[].name` | machine | one of the 17 valid IDs in `scripts/install.py` |
35
+ | `tools[].name` | machine | one of the 17 valid IDs in `scripts/install.ts` |
36
36
  | `tools[].scope` | machine | `global` (user-home) or `project` (workspace bridge) |
37
37
  | `tools[].bridge_marker` | machine | absolute / `~`-prefixed for global, repo-relative for project |
38
38
  | `tools[].installed_at` | machine | ISO date; informational only |
@@ -51,7 +51,7 @@ npx @event4u/agent-config sync
51
51
  ```
52
52
 
53
53
  `sync` reads `agents/installed-tools.lock`, checks every listed tool's
54
- bridge marker, and replays `install.py --tools=<id>` for each missing
54
+ bridge marker, and replays `install.ts --tools=<id>` for each missing
55
55
  one. Tools whose marker is already present are skipped — `sync` is
56
56
  idempotent and safe to re-run.
57
57
 
@@ -116,7 +116,7 @@ block (the only allowed German location).
116
116
  ## Generated `.md` — fix the generator, never the page
117
117
 
118
118
  When a `.md` page is produced by a generator (e.g. `docs/value.md` from
119
- `scripts/render_value_md.py`, the catalogs from the index/catalog
119
+ `scripts/render_value_md.ts`, the catalogs from the index/catalog
120
120
  generators), German lives in the **generator's source strings** or the
121
121
  data it reads — fix it there so the page regenerates English. Hand-edits
122
122
  to a generated page are overwritten on the next regen. If a generated
@@ -138,4 +138,4 @@ Two — and only two — escapes are allowed when a line must carry German:
138
138
 
139
139
  The marker is line-scoped and auditable. Never scatter it through a
140
140
  generated file to silence the linter — fix the generator instead. Both
141
- escapes are recognized by `scripts/check_md_language.py`.
141
+ escapes are recognized by `scripts/check_md_language.ts`.
@@ -9,7 +9,7 @@ project-local choices always win.
9
9
  Referenced by `road-to-project-memory.md` Phase 0 and
10
10
  `road-to-portable-dev-preferences.md`. Consumed by the centralized
11
11
  settings loader at
12
- [`scripts/_lib/agent_settings.py`](../../../src/scripts/_lib/agent_settings.py),
12
+ [`scripts/_lib/agent_settings.ts`](../../../src/scripts/_lib/agent_settings.ts),
13
13
  the `/onboard` command, and any agent that edits `.agent-settings.yml`
14
14
  on user request.
15
15
 
@@ -32,7 +32,7 @@ All three are YAML. Schemas:
32
32
  - Developer (project-local): [`agent-settings.md`](../../templates/agent-settings.md).
33
33
  - Team: [`agent-project-settings.example.yml`](../../templates/agents/agent-project-settings.example.yml).
34
34
  - User-global: six exact dotted paths — whitelist in
35
- [`scripts/_lib/agent_settings.py`](../../../src/scripts/_lib/agent_settings.py).
35
+ [`scripts/_lib/agent_settings.ts`](../../../src/scripts/_lib/agent_settings.ts).
36
36
 
37
37
  ## Merge order
38
38
 
@@ -248,13 +248,13 @@ Any agent that writes `.agent-settings.yml` or
248
248
  `.agent-project-settings.yml` on the user's behalf (including
249
249
  `/onboard`, `/set-cost-profile`, and ad-hoc "change value X" requests)
250
250
  MUST follow these rules. Initial file creation and legacy migration
251
- are owned by `scripts/install.py`; these rules govern every edit
251
+ are owned by `scripts/install.ts`; these rules govern every edit
252
252
  after that.
253
253
 
254
254
  The contract is **additive merge with user-line preservation** —
255
255
  the user's file is the ground truth, the template only contributes
256
256
  keys the user is missing. Round-trip parser and merger live in
257
- [`scripts/sync_yaml_rt.py`](../../src/scripts/sync_yaml_rt.py); the
257
+ [`scripts/sync_yaml_rt.ts`](../../src/scripts/sync_yaml_rt.ts); the
258
258
  supported YAML subset (block-mappings, scalars, lists, comments,
259
259
  CRLF/LF) is documented in its module docstring. The stdlib-only
260
260
  choice (vs. `ruamel.yaml`) and its revisit triggers are recorded in
@@ -4,21 +4,22 @@ How a skill or command reads engineering memory. Memory is entirely
4
4
  **file-backed** (`agents/memory/`); there is no external backend.
5
5
 
6
6
  Single entry point: the shared `retrieve(types, keys, limit)`
7
- abstraction backed by `scripts/memory_lookup.py`. It reads curated YAML
8
- under `agents/memory/<type>/` and the agent-written `agents/memory/intake/
9
- *.jsonl` signal log.
7
+ abstraction backed by `scripts/memory_lookup.ts` (TypeScript, run via
8
+ tsx). It reads curated YAML under `agents/memory/<type>/` and the
9
+ agent-written `agents/memory/intake/*.jsonl` signal log.
10
10
 
11
11
  ## The contract
12
12
 
13
- ```python
14
- from scripts.memory_status import status
15
- from scripts.memory_lookup import retrieve as retrieve_file
13
+ Consumers reach it via the CLI (`agent-config memory:lookup`) or the
14
+ MCP `memory_lookup` tool — never by ad-hoc file reads:
16
15
 
17
- hits = retrieve_file(
18
- types=["ownership", "historical-patterns"],
19
- keys=["app/Http/Controllers/Billing/Checkout.php"],
20
- limit=3,
21
- )
16
+ ```bash
17
+ agent-config memory:lookup \
18
+ --types ownership,historical-patterns \
19
+ --key "app/Http/Controllers/Billing/Checkout.php" \
20
+ --limit 3
21
+ # --key is repeatable; add --format json for the raw hits,
22
+ # --envelope v1 for the retrieval-contract envelope.
22
23
  ```
23
24
 
24
25
  Every backend MUST return a list of `Hit` with:
@@ -43,14 +44,14 @@ intake (low-confidence tier); it just never reaches the team repo unpromoted.
43
44
 
44
45
  ## The status helper
45
46
 
46
- `scripts/memory_status.py` reports the (constant) file backend so
47
- consumers — including the MCP `memory_status` tool and the v1 health
48
- envelope — read a stable shape:
47
+ `scripts/memory_status.ts` exports `status()`, reporting the (constant)
48
+ file backend so consumers — including the MCP `memory_status` tool and
49
+ the v1 health envelope — read a stable shape:
49
50
 
50
- ```python
51
- from scripts.memory_status import status
52
- r = status() # constant; file-backed, never raises
53
- assert r.status == "file" and r.backend == "file"
51
+ ```ts
52
+ import { status } from './memory_status.js';
53
+ const r = status(); // constant; file-backed, never raises
54
+ // r.status === 'file' && r.backend === 'file'
54
55
  ```
55
56
 
56
57
  Contract guarantees:
@@ -64,6 +64,6 @@ source: package
64
64
 
65
65
  ## Linter enforcement
66
66
 
67
- The skill linter (`scripts/skill_linter.py`) warns on:
67
+ The skill linter (`scripts/skill_linter.ts`) warns on:
68
68
  - **Bare-noun names** — single word without qualifier (e.g., `jira` instead of `jira-integration`)
69
69
  - **Layer collisions** — same name used for both a rule and a skill
@@ -10,7 +10,7 @@ _Origin: migrated from `.agent-src.uncondensed/rules/roadmap-progress-sync.md` p
10
10
  # Roadmap Progress Sync
11
11
 
12
12
  > **Enforced by (defence in depth):**
13
- > 1. [`scripts/roadmap_progress_hook.py`](../../src/scripts/roadmap_progress_hook.py)
13
+ > 1. [`scripts/roadmap_progress_hook.ts`](../../src/scripts/roadmap_progress_hook.ts)
14
14
  > on Augment + Claude Code (`PostToolUse`) — auto-regen on write.
15
15
  > 2. `.git/hooks/pre-commit` (installed by `scripts/install-hooks.sh`) —
16
16
  > blocks any commit whose staged set touches `agents/roadmaps/` or
@@ -44,7 +44,7 @@ without regenerating? The dashboard claims it does not exist. Marked
44
44
  EVERY ACTIVE ROADMAP MUST CONTAIN AT LEAST ONE TRACKABLE CHECKBOX
45
45
  (`- [ ]`) PER NON-INTRO PHASE. ROADMAPS WITHOUT EXECUTABLE STEPS
46
46
  EITHER GET A CHECKLIST OR THE `status: draft` FLAG.
47
- CI-ENFORCED: `scripts/check_roadmap_trackable.py` (CANNOT BE DEFERRED).
47
+ CI-ENFORCED: `scripts/check_roadmap_trackable.ts` (CANNOT BE DEFERRED).
48
48
  ```
49
49
 
50
50
  **Active roadmap =** any file in `agents/roadmaps/` (root, not
@@ -61,7 +61,7 @@ Headings such as `## Phase steps`, `### Sequencing — Phase 1 …`,
61
61
  `### P0 #1 — …`, or `## Block A` do **not** count — only the
62
62
  canonical `Phase <id>` form parsed by the dashboard.
63
63
 
64
- **CI backstop.** `scripts/check_roadmap_trackable.py` (package-shipped,
64
+ **CI backstop.** `scripts/check_roadmap_trackable.ts` (package-shipped,
65
65
  wire into the consumer's pre-commit / pre-push / Actions gate) fails
66
66
  when an active roadmap has zero canonical `Phase` headings or when
67
67
  any parsed phase has zero checkboxes. Last line of defence — real-time
@@ -103,7 +103,7 @@ skipped decision table.
103
103
 
104
104
  ```
105
105
  A FILE THE AGENT DROPS INTO agents/roadmaps/ MUST EITHER
106
- (a) PASS check_roadmap_trackable.py AND LAND IN THE DASHBOARD, OR
106
+ (a) PASS check_roadmap_trackable.ts AND LAND IN THE DASHBOARD, OR
107
107
  (b) NOT BE IN agents/roadmaps/ AT ALL.
108
108
  NO "DECISION MATRIX" / "DESIGN NOTE" SHORTCUT.
109
109
  ```
@@ -173,7 +173,7 @@ surface; the mechanics file is the lookup material.
173
173
  ## Copilot fallback
174
174
 
175
175
  GitHub Copilot has no `PostToolUse` hook surface, so
176
- `scripts/roadmap_progress_hook.py` cannot detect roadmap-file writes
176
+ `scripts/roadmap_progress_hook.ts` cannot detect roadmap-file writes
177
177
  structurally. The dashboard at `agents/roadmaps-progress.md` will
178
178
  not regenerate on its own.
179
179
 
@@ -75,7 +75,7 @@ Referenced by `road-to-role-modes.md` Phase 1. Each contract is a
75
75
 
76
76
  **Memory-write is the final field, not a nice-to-have.** Before the
77
77
  mode exits, the agent MUST either emit an intake signal via
78
- [`memory-access`](memory-access.md) (`scripts/memory_signal.py`
78
+ [`memory-access`](memory-access.md) (`scripts/memory_signal.ts`
79
79
  append — one line, fire-and-forget) or draft a curated entry with
80
80
  [`/memory-add incident-learnings`](../../commands/memory-add.md).
81
81
  Pattern + consequence + guardrail, redacted. Skipping this field
@@ -3,7 +3,7 @@
3
3
  How the agent-security self-audit linters
4
4
  (`lint_hidden_unicode`, `lint_instruction_smuggling`,
5
5
  `lint_mcp_config_security`, `lint_skill_frontmatter_safety` — shared lib
6
- `src/scripts/_lib/security_lint.py`) avoid drowning in false positives **without**
6
+ `src/scripts/_lib/security_lint.ts`) avoid drowning in false positives **without**
7
7
  a global allowlist.
8
8
 
9
9
  ## Why this exists
@@ -76,6 +76,6 @@ inside a `security-example` fence, and not covered by a matching pragma.
76
76
 
77
77
  ## See also
78
78
 
79
- - `src/scripts/_lib/security_lint.py` — the shared implementation.
79
+ - `src/scripts/_lib/security_lint.ts` — the shared implementation.
80
80
  - `road-to-security-pillar` P1.5 (archived roadmap) — the council-locked decision behind this convention.
81
81
  - [`autonomous-execution`](../../../src/rules/autonomous-execution.md) — the allowlist-growth antipattern this convention avoids.
@@ -63,7 +63,7 @@ blocks — it does not hand a half-filled doc to the next stage.
63
63
  ### Stage 4 — Gate
64
64
 
65
65
  - **Trigger:** proposal doc committed or staged.
66
- - **Executor:** `scripts/check_proposal.py`.
66
+ - **Executor:** `scripts/check_proposal.ts`.
67
67
  - **Input:** proposal doc from Stage 3.
68
68
  - **Output:** verdict recorded in the proposal doc section 9
69
69
  (`pass | request changes | block`). Frontmatter `stage: gated`
@@ -113,7 +113,7 @@ evidence-disciplined context type:
113
113
 
114
114
  - Hard bound: **≤ 150 lines** — a card is a thin distillation, never a mirror.
115
115
  - **Mandatory** `links.authoritative` pointer (path or URL).
116
- - Enforced by `check_knowledge_cards.py` (pointer-resolution CI + size +
116
+ - Enforced by `check_knowledge_cards.ts` (pointer-resolution CI + size +
117
117
  trust-tag + multi-evidence git-ancestry consistency; `--strict` adds a
118
118
  content-compare). Durable content = negative facts + pointers; positive
119
119
  structure is a per-line, last-verified hypothesis.
@@ -24,7 +24,7 @@ Every skill MUST have: `When to use`, `Procedure`, `Gotcha`, `Output format`, `D
24
24
  ## Frontmatter Contract
25
25
 
26
26
  Every skill's YAML frontmatter MUST validate against `scripts/schemas/skill.schema.json`.
27
- Violations are reported by `scripts/skill_linter.py` as `schema_<rule>` errors
27
+ Violations are reported by `scripts/skill_linter.ts` as `schema_<rule>` errors
28
28
  and fail `./scripts-run src/scripts/validate_frontmatter` and the full CI pipeline.
29
29
 
30
30
  ### Omit fields equal to their schema default
@@ -39,7 +39,7 @@ A field that carries the schema `default` (e.g. `trust.level: core`,
39
39
  `command.disable-model-invocation: true`) is redundant:
40
40
  `validate_frontmatter.apply_schema_defaults` injects it transparently for
41
41
  every consumer (validator, discovery manifest, drift checksum). Writing it
42
- anyway is boilerplate that `scripts/lint_frontmatter_boilerplate.py` rejects
42
+ anyway is boilerplate that `scripts/lint_frontmatter_boilerplate.ts` rejects
43
43
  (wired into `task ci-fast`). To strip it across the tree, run
44
44
  `./scripts-run src/scripts/migrate_frontmatter_defaults`. Background:
45
45
  `road-to-abstraction-reduction.md` +
@@ -49,7 +49,7 @@ anyway is boilerplate that `scripts/lint_frontmatter_boilerplate.py` rejects
49
49
  > contract: artefacts that omit the field inherit whatever the default *is at
50
50
  > read time*. Flipping a default value (e.g. `lifecycle: active → deprecated`)
51
51
  > silently re-defaults every artefact that omits the field — so a default
52
- > change must pair with a re-run of `migrate_frontmatter_defaults.py` and an
52
+ > change must pair with a re-run of `migrate_frontmatter_defaults.ts` and an
53
53
  > explicit review of the affected artefacts.
54
54
 
55
55
  ## Description Triggering
@@ -106,7 +106,7 @@ blocks beyond the standard required sections:
106
106
  | 3 | Proactive Triggers | `## When the agent should load this` | 3–5 concrete user-prompt patterns (paraphrases users actually type), not abstract categories. |
107
107
  | 4 | Output Artifacts | `## Output` | 1–4 named artifacts with shape (file path, table, markdown structure) — orchestrator-citable identifier each. |
108
108
 
109
- **Forward-only.** `scripts/skill_linter.py` enforces these blocks for
109
+ **Forward-only.** `scripts/skill_linter.ts` enforces these blocks for
110
110
  `tier: senior` skills only; mid-tier and untiered skills skip the
111
111
  check. No retrofit pass on existing Wing-1 skills.
112
112
 
@@ -117,7 +117,7 @@ bad pattern pairs, and the WHEN-NOT routing peer rules live in
117
117
 
118
118
  ## Structural Malice Floor
119
119
 
120
- `scripts/skill_linter.py` runs five regex patterns against every
120
+ `scripts/skill_linter.ts` runs five regex patterns against every
121
121
  skill / rule / command body — credential exfiltration, remote
122
122
  execution, force-push to a protected ref, world-readable secret
123
123
  files, and shell-injection in subprocess calls. A match emits
@@ -61,7 +61,7 @@ invocation.
61
61
 
62
62
  ## Enforcement
63
63
 
64
- `scripts/check_portability.py` scans `.augment/`, `.agent-src.uncondensed/`,
64
+ `scripts/check_portability.ts` scans `.augment/`, `.agent-src.uncondensed/`,
65
65
  and the package repo's root `AGENTS.md` + `.github/copilot-instructions.md`
66
66
  for forbidden identifiers, for any `task <name>` invocation inside
67
67
  artefact files, and for direct script invocations that bypass the
@@ -413,25 +413,24 @@ This is additional to project-installed mode, not a replacement.
413
413
  auggie plugin install agent-config@event4u-agent-config
414
414
  ```
415
415
 
416
- ### Claude Code
416
+ ### Claude Code — plugin deprecated (single-surface model)
417
417
 
418
- Two equivalent paths — pick whichever surface you're already in:
418
+ **Do not install the marketplace plugin for Claude Code.** The npx/npm
419
+ global install (`npx -y @event4u/agent-config init`) is the single supported
420
+ surface: it deploys skills/commands/rules to `~/.claude/` **and** registers
421
+ the deterministic hooks in a managed `~/.claude/settings.json` block. The
422
+ plugin would only duplicate every skill/command listing while its git-SHA
423
+ snapshot silently lags each release.
419
424
 
420
- ```bash
421
- # From your shell (CLI)
422
- claude plugin install agent-config@event4u-agent-config
423
- ```
425
+ Already have the plugin from an earlier install?
424
426
 
425
- ```text
426
- # From inside Claude Code (slash command)
427
- /plugin marketplace add event4u-app/agent-config
428
- /plugin install agent-config@event4u-agent-config
427
+ ```bash
428
+ claude plugin uninstall agent-config@event4u-agent-config
429
429
  ```
430
430
 
431
- The slash-command path is the canonical Claude Code Plugin Marketplace
432
- flow ([reference](https://docs.claude.com/en/docs/claude-code/plugin-marketplaces)).
433
- It pulls the repo via git-clone and reads the skills directly from
434
- `.claude/skills/` — no separate ZIP download.
431
+ Hooks keep firing after removal (they live in `settings.json`, not the
432
+ plugin); `agent-config doctor` verifies via the `hook-wiring` check and
433
+ flags a leftover plugin as `claude-plugin: duplicate surface`.
435
434
 
436
435
  ### Copilot CLI
437
436