@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
@@ -278,10 +278,29 @@ function main(): number {
278
278
  return 0;
279
279
  }
280
280
 
281
- const _isCliEntry =
282
- process.argv[1] !== undefined &&
283
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
284
- if (_isCliEntry || process.argv[1] === _HERE) {
281
+ function _isCliEntry(): boolean {
282
+ if (process.argv[1] === undefined) {
283
+ return false;
284
+ }
285
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
286
+ if (import.meta.url === argvUrl) {
287
+ return true;
288
+ }
289
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
290
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
291
+ // import.meta.url is the resolved real path while argv[1] keeps the
292
+ // symlink path. Compare realpaths so the entry guard still fires
293
+ // (without this the CLI silently no-ops when run through a symlink).
294
+ try {
295
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
296
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
297
+ return here === argv;
298
+ } catch {
299
+ return false;
300
+ }
301
+ }
302
+
303
+ if (_isCliEntry() || process.argv[1] === _HERE) {
285
304
  process.exit(main());
286
305
  }
287
306
 
@@ -238,10 +238,29 @@ function _pyRepr(s: string): string {
238
238
  return `'${s.replace(/\\/g, '\\\\').replace(/'/g, "\\'")}'`;
239
239
  }
240
240
 
241
- const _isCliEntry =
242
- process.argv[1] !== undefined &&
243
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
244
- if (_isCliEntry || process.argv[1] === _HERE) {
241
+ function _isCliEntry(): boolean {
242
+ if (process.argv[1] === undefined) {
243
+ return false;
244
+ }
245
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
246
+ if (import.meta.url === argvUrl) {
247
+ return true;
248
+ }
249
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
250
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
251
+ // import.meta.url is the resolved real path while argv[1] keeps the
252
+ // symlink path. Compare realpaths so the entry guard still fires
253
+ // (without this the CLI silently no-ops when run through a symlink).
254
+ try {
255
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
256
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
257
+ return here === argv;
258
+ } catch {
259
+ return false;
260
+ }
261
+ }
262
+
263
+ if (_isCliEntry() || process.argv[1] === _HERE) {
245
264
  process.exit(main());
246
265
  }
247
266
 
@@ -306,10 +306,29 @@ function lint(quiet = false): number {
306
306
  return 0;
307
307
  }
308
308
 
309
- const _isCliEntry =
310
- process.argv[1] !== undefined &&
311
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
312
- if (_isCliEntry || process.argv[1] === _HERE) {
309
+ function _isCliEntry(): boolean {
310
+ if (process.argv[1] === undefined) {
311
+ return false;
312
+ }
313
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
314
+ if (import.meta.url === argvUrl) {
315
+ return true;
316
+ }
317
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
318
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
319
+ // import.meta.url is the resolved real path while argv[1] keeps the
320
+ // symlink path. Compare realpaths so the entry guard still fires
321
+ // (without this the CLI silently no-ops when run through a symlink).
322
+ try {
323
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
324
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
325
+ return here === argv;
326
+ } catch {
327
+ return false;
328
+ }
329
+ }
330
+
331
+ if (_isCliEntry() || process.argv[1] === _HERE) {
313
332
  process.exit(lint(process.argv.includes('--quiet')));
314
333
  }
315
334
 
@@ -179,10 +179,29 @@ function main(): number {
179
179
  return 0;
180
180
  }
181
181
 
182
- const _isCliEntry =
183
- process.argv[1] !== undefined &&
184
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
185
- if (_isCliEntry || process.argv[1] === _HERE) {
182
+ function _isCliEntry(): boolean {
183
+ if (process.argv[1] === undefined) {
184
+ return false;
185
+ }
186
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
187
+ if (import.meta.url === argvUrl) {
188
+ return true;
189
+ }
190
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
191
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
192
+ // import.meta.url is the resolved real path while argv[1] keeps the
193
+ // symlink path. Compare realpaths so the entry guard still fires
194
+ // (without this the CLI silently no-ops when run through a symlink).
195
+ try {
196
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
197
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
198
+ return here === argv;
199
+ } catch {
200
+ return false;
201
+ }
202
+ }
203
+
204
+ if (_isCliEntry() || process.argv[1] === _HERE) {
186
205
  process.exit(main());
187
206
  }
188
207
 
@@ -63,10 +63,29 @@ function main(): number {
63
63
  return 0;
64
64
  }
65
65
 
66
- const _isCliEntry =
67
- process.argv[1] !== undefined &&
68
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
69
- if (_isCliEntry || process.argv[1] === _HERE) {
66
+ function _isCliEntry(): boolean {
67
+ if (process.argv[1] === undefined) {
68
+ return false;
69
+ }
70
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
71
+ if (import.meta.url === argvUrl) {
72
+ return true;
73
+ }
74
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
75
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
76
+ // import.meta.url is the resolved real path while argv[1] keeps the
77
+ // symlink path. Compare realpaths so the entry guard still fires
78
+ // (without this the CLI silently no-ops when run through a symlink).
79
+ try {
80
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
81
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
82
+ return here === argv;
83
+ } catch {
84
+ return false;
85
+ }
86
+ }
87
+
88
+ if (_isCliEntry() || process.argv[1] === _HERE) {
70
89
  process.exit(main());
71
90
  }
72
91
 
@@ -492,10 +492,29 @@ function _deltaForJson(delta: Delta): unknown {
492
492
  };
493
493
  }
494
494
 
495
- const _isCliEntry =
496
- process.argv[1] !== undefined &&
497
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
498
- if (_isCliEntry || process.argv[1] === fileURLToPath(import.meta.url)) {
495
+ function _isCliEntry(): boolean {
496
+ if (process.argv[1] === undefined) {
497
+ return false;
498
+ }
499
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
500
+ if (import.meta.url === argvUrl) {
501
+ return true;
502
+ }
503
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
504
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
505
+ // import.meta.url is the resolved real path while argv[1] keeps the
506
+ // symlink path. Compare realpaths so the entry guard still fires
507
+ // (without this the CLI silently no-ops when run through a symlink).
508
+ try {
509
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
510
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
511
+ return here === argv;
512
+ } catch {
513
+ return false;
514
+ }
515
+ }
516
+
517
+ if (_isCliEntry() || process.argv[1] === fileURLToPath(import.meta.url)) {
499
518
  process.exit(main());
500
519
  }
501
520
 
@@ -191,10 +191,29 @@ function main(): number {
191
191
  return 0;
192
192
  }
193
193
 
194
- const _isCliEntry =
195
- process.argv[1] !== undefined &&
196
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
197
- if (_isCliEntry || process.argv[1] === _HERE) {
194
+ function _isCliEntry(): boolean {
195
+ if (process.argv[1] === undefined) {
196
+ return false;
197
+ }
198
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
199
+ if (import.meta.url === argvUrl) {
200
+ return true;
201
+ }
202
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
203
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
204
+ // import.meta.url is the resolved real path while argv[1] keeps the
205
+ // symlink path. Compare realpaths so the entry guard still fires
206
+ // (without this the CLI silently no-ops when run through a symlink).
207
+ try {
208
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
209
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
210
+ return here === argv;
211
+ } catch {
212
+ return false;
213
+ }
214
+ }
215
+
216
+ if (_isCliEntry() || process.argv[1] === _HERE) {
198
217
  process.exit(main());
199
218
  }
200
219
 
@@ -227,10 +227,29 @@ function main(): number {
227
227
  return 0;
228
228
  }
229
229
 
230
- const _isCliEntry =
231
- process.argv[1] !== undefined &&
232
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
233
- if (_isCliEntry || process.argv[1] === _HERE) {
230
+ function _isCliEntry(): boolean {
231
+ if (process.argv[1] === undefined) {
232
+ return false;
233
+ }
234
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
235
+ if (import.meta.url === argvUrl) {
236
+ return true;
237
+ }
238
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
239
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
240
+ // import.meta.url is the resolved real path while argv[1] keeps the
241
+ // symlink path. Compare realpaths so the entry guard still fires
242
+ // (without this the CLI silently no-ops when run through a symlink).
243
+ try {
244
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
245
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
246
+ return here === argv;
247
+ } catch {
248
+ return false;
249
+ }
250
+ }
251
+
252
+ if (_isCliEntry() || process.argv[1] === _HERE) {
234
253
  process.exit(main());
235
254
  }
236
255
 
@@ -353,10 +353,29 @@ function _relPosix(target: string, root: string): string {
353
353
  return path.relative(root, target).split(path.sep).join('/');
354
354
  }
355
355
 
356
- const _isCliEntry =
357
- process.argv[1] !== undefined &&
358
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
359
- if (_isCliEntry || process.argv[1] === _HERE) {
356
+ function _isCliEntry(): boolean {
357
+ if (process.argv[1] === undefined) {
358
+ return false;
359
+ }
360
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
361
+ if (import.meta.url === argvUrl) {
362
+ return true;
363
+ }
364
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
365
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
366
+ // import.meta.url is the resolved real path while argv[1] keeps the
367
+ // symlink path. Compare realpaths so the entry guard still fires
368
+ // (without this the CLI silently no-ops when run through a symlink).
369
+ try {
370
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
371
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
372
+ return here === argv;
373
+ } catch {
374
+ return false;
375
+ }
376
+ }
377
+
378
+ if (_isCliEntry() || process.argv[1] === _HERE) {
360
379
  process.exit(main());
361
380
  }
362
381
 
@@ -334,10 +334,29 @@ function main(argv?: readonly string[]): number {
334
334
  return violations.length ? 1 : 0;
335
335
  }
336
336
 
337
- const _isCliEntry =
338
- process.argv[1] !== undefined &&
339
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
340
- if (_isCliEntry || process.argv[1] === _HERE) {
337
+ function _isCliEntry(): boolean {
338
+ if (process.argv[1] === undefined) {
339
+ return false;
340
+ }
341
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
342
+ if (import.meta.url === argvUrl) {
343
+ return true;
344
+ }
345
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
346
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
347
+ // import.meta.url is the resolved real path while argv[1] keeps the
348
+ // symlink path. Compare realpaths so the entry guard still fires
349
+ // (without this the CLI silently no-ops when run through a symlink).
350
+ try {
351
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
352
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
353
+ return here === argv;
354
+ } catch {
355
+ return false;
356
+ }
357
+ }
358
+
359
+ if (_isCliEntry() || process.argv[1] === _HERE) {
341
360
  process.exitCode = main();
342
361
  }
343
362
 
@@ -386,10 +386,29 @@ function _pyRepr(value: unknown): string {
386
386
  return String(value);
387
387
  }
388
388
 
389
- const _isCliEntry =
390
- process.argv[1] !== undefined &&
391
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
392
- if (_isCliEntry || process.argv[1] === _HERE) {
389
+ function _isCliEntry(): boolean {
390
+ if (process.argv[1] === undefined) {
391
+ return false;
392
+ }
393
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
394
+ if (import.meta.url === argvUrl) {
395
+ return true;
396
+ }
397
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
398
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
399
+ // import.meta.url is the resolved real path while argv[1] keeps the
400
+ // symlink path. Compare realpaths so the entry guard still fires
401
+ // (without this the CLI silently no-ops when run through a symlink).
402
+ try {
403
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
404
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
405
+ return here === argv;
406
+ } catch {
407
+ return false;
408
+ }
409
+ }
410
+
411
+ if (_isCliEntry() || process.argv[1] === _HERE) {
393
412
  process.exit(main());
394
413
  }
395
414
 
@@ -271,10 +271,29 @@ export function main(): number {
271
271
  }
272
272
  }
273
273
 
274
- const _isCliEntry =
275
- process.argv[1] !== undefined &&
276
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
277
- if (_isCliEntry || process.argv[1] === _HERE) {
274
+ function _isCliEntry(): boolean {
275
+ if (process.argv[1] === undefined) {
276
+ return false;
277
+ }
278
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
279
+ if (import.meta.url === argvUrl) {
280
+ return true;
281
+ }
282
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
283
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
284
+ // import.meta.url is the resolved real path while argv[1] keeps the
285
+ // symlink path. Compare realpaths so the entry guard still fires
286
+ // (without this the CLI silently no-ops when run through a symlink).
287
+ try {
288
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
289
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
290
+ return here === argv;
291
+ } catch {
292
+ return false;
293
+ }
294
+ }
295
+
296
+ if (_isCliEntry() || process.argv[1] === _HERE) {
278
297
  process.exit(main());
279
298
  }
280
299
 
@@ -17,7 +17,7 @@
17
17
  */
18
18
  import fs from "node:fs";
19
19
  import path from "node:path";
20
- import { pathToFileURL } from "node:url";
20
+ import { fileURLToPath, pathToFileURL } from "node:url";
21
21
  import { artefact_roots } from "./_lib/agent_src.js";
22
22
 
23
23
  const QUIET = process.argv.includes("--quiet");
@@ -161,9 +161,30 @@ function pyRepr(items: string[]): string {
161
161
  return `[${items.map((s) => `'${s}'`).join(", ")}]`;
162
162
  }
163
163
 
164
+ function _isCliEntry(): boolean {
165
+ if (process.argv[1] === undefined) {
166
+ return false;
167
+ }
168
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
169
+ if (import.meta.url === argvUrl) {
170
+ return true;
171
+ }
172
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
173
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
174
+ // import.meta.url is the resolved real path while argv[1] keeps the
175
+ // symlink path. Compare realpaths so the entry guard still fires
176
+ // (without this the CLI silently no-ops when run through a symlink).
177
+ try {
178
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
179
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
180
+ return here === argv;
181
+ } catch {
182
+ return false;
183
+ }
184
+ }
185
+
164
186
  const isCliEntry =
165
- process.argv[1] !== undefined &&
166
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
187
+ _isCliEntry();
167
188
  if (isCliEntry) {
168
189
  process.exit(main());
169
190
  }
@@ -237,10 +237,29 @@ function main(): number {
237
237
  return 0;
238
238
  }
239
239
 
240
- const _isCliEntry =
241
- process.argv[1] !== undefined &&
242
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
243
- if (_isCliEntry || process.argv[1] === _HERE) {
240
+ function _isCliEntry(): boolean {
241
+ if (process.argv[1] === undefined) {
242
+ return false;
243
+ }
244
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
245
+ if (import.meta.url === argvUrl) {
246
+ return true;
247
+ }
248
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
249
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
250
+ // import.meta.url is the resolved real path while argv[1] keeps the
251
+ // symlink path. Compare realpaths so the entry guard still fires
252
+ // (without this the CLI silently no-ops when run through a symlink).
253
+ try {
254
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
255
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
256
+ return here === argv;
257
+ } catch {
258
+ return false;
259
+ }
260
+ }
261
+
262
+ if (_isCliEntry() || process.argv[1] === _HERE) {
244
263
  process.exit(main());
245
264
  }
246
265
 
@@ -23,7 +23,8 @@
23
23
  // Usage: ./scripts-run src/scripts/lint_skill_frontmatter_safety [--json]
24
24
 
25
25
  import * as path from 'node:path';
26
- import { pathToFileURL } from 'node:url';
26
+ import * as fs from 'node:fs';
27
+ import { fileURLToPath, pathToFileURL } from 'node:url';
27
28
 
28
29
  import * as sl from './_lib/security_lint.js';
29
30
 
@@ -271,9 +272,28 @@ export function main(argv: readonly string[] | null = null): number {
271
272
  return sl.report(findings, { check_label: 'dangerous-frontmatter' });
272
273
  }
273
274
 
274
- const _isCliEntry =
275
- process.argv[1] !== undefined &&
276
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
277
- if (_isCliEntry) {
275
+ function _isCliEntry(): boolean {
276
+ if (process.argv[1] === undefined) {
277
+ return false;
278
+ }
279
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
280
+ if (import.meta.url === argvUrl) {
281
+ return true;
282
+ }
283
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
284
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
285
+ // import.meta.url is the resolved real path while argv[1] keeps the
286
+ // symlink path. Compare realpaths so the entry guard still fires
287
+ // (without this the CLI silently no-ops when run through a symlink).
288
+ try {
289
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
290
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
291
+ return here === argv;
292
+ } catch {
293
+ return false;
294
+ }
295
+ }
296
+
297
+ if (_isCliEntry()) {
278
298
  process.exitCode = main();
279
299
  }
@@ -555,10 +555,29 @@ function _isFile(p: string): boolean {
555
555
  }
556
556
  }
557
557
 
558
- const _isCliEntry =
559
- process.argv[1] !== undefined &&
560
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
561
- if (_isCliEntry || process.argv[1] === _HERE) {
558
+ function _isCliEntry(): boolean {
559
+ if (process.argv[1] === undefined) {
560
+ return false;
561
+ }
562
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
563
+ if (import.meta.url === argvUrl) {
564
+ return true;
565
+ }
566
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
567
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
568
+ // import.meta.url is the resolved real path while argv[1] keeps the
569
+ // symlink path. Compare realpaths so the entry guard still fires
570
+ // (without this the CLI silently no-ops when run through a symlink).
571
+ try {
572
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
573
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
574
+ return here === argv;
575
+ } catch {
576
+ return false;
577
+ }
578
+ }
579
+
580
+ if (_isCliEntry() || process.argv[1] === _HERE) {
562
581
  try {
563
582
  process.exit(main());
564
583
  } catch (exc) {
@@ -301,10 +301,29 @@ function main(argv?: readonly string[]): number {
301
301
  return code;
302
302
  }
303
303
 
304
- const _isCliEntry =
305
- process.argv[1] !== undefined &&
306
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
307
- if (_isCliEntry || process.argv[1] === _HERE) {
304
+ function _isCliEntry(): boolean {
305
+ if (process.argv[1] === undefined) {
306
+ return false;
307
+ }
308
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
309
+ if (import.meta.url === argvUrl) {
310
+ return true;
311
+ }
312
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
313
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
314
+ // import.meta.url is the resolved real path while argv[1] keeps the
315
+ // symlink path. Compare realpaths so the entry guard still fires
316
+ // (without this the CLI silently no-ops when run through a symlink).
317
+ try {
318
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
319
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
320
+ return here === argv;
321
+ } catch {
322
+ return false;
323
+ }
324
+ }
325
+
326
+ if (_isCliEntry() || process.argv[1] === _HERE) {
308
327
  process.exit(main());
309
328
  }
310
329
 
@@ -115,10 +115,29 @@ function main(dir: string = SUBAGENT_DIR): number {
115
115
  return 0;
116
116
  }
117
117
 
118
- const _isCliEntry =
119
- process.argv[1] !== undefined &&
120
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
121
- if (_isCliEntry) {
118
+ function _isCliEntry(): boolean {
119
+ if (process.argv[1] === undefined) {
120
+ return false;
121
+ }
122
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
123
+ if (import.meta.url === argvUrl) {
124
+ return true;
125
+ }
126
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
127
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
128
+ // import.meta.url is the resolved real path while argv[1] keeps the
129
+ // symlink path. Compare realpaths so the entry guard still fires
130
+ // (without this the CLI silently no-ops when run through a symlink).
131
+ try {
132
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
133
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
134
+ return here === argv;
135
+ } catch {
136
+ return false;
137
+ }
138
+ }
139
+
140
+ if (_isCliEntry()) {
122
141
  process.exit(main());
123
142
  }
124
143