@event4u/agent-config 8.0.0 → 8.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (593) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +53 -568
  3. package/dist/agent-src/commands/agents/init.md +3 -3
  4. package/dist/agent-src/commands/chat-history/import.md +5 -5
  5. package/dist/agent-src/commands/chat-history.md +1 -1
  6. package/dist/agent-src/commands/condense.md +1 -1
  7. package/dist/agent-src/commands/context/create.md +1 -1
  8. package/dist/agent-src/commands/council/analysis.md +2 -2
  9. package/dist/agent-src/commands/council/default.md +3 -3
  10. package/dist/agent-src/commands/council/design.md +2 -2
  11. package/dist/agent-src/commands/council/optimize.md +1 -1
  12. package/dist/agent-src/commands/council/pr.md +2 -2
  13. package/dist/agent-src/commands/council.md +1 -1
  14. package/dist/agent-src/commands/feature/plan.md +1 -1
  15. package/dist/agent-src/commands/ghostwriter/list.md +1 -1
  16. package/dist/agent-src/commands/ghostwriter/write.md +1 -1
  17. package/dist/agent-src/commands/ghostwriter.md +1 -1
  18. package/dist/agent-src/commands/implement-ticket.md +2 -2
  19. package/dist/agent-src/commands/judge/on-diff.md +1 -1
  20. package/dist/agent-src/commands/judge/steps.md +3 -1
  21. package/dist/agent-src/commands/memory/add.md +2 -2
  22. package/dist/agent-src/commands/memory/learn-low-impact.md +1 -1
  23. package/dist/agent-src/commands/memory/load.md +1 -1
  24. package/dist/agent-src/commands/memory/mine-session.md +1 -1
  25. package/dist/agent-src/commands/memory/promote.md +1 -1
  26. package/dist/agent-src/commands/memory/propose.md +1 -1
  27. package/dist/agent-src/commands/mission/upgrade.md +1 -1
  28. package/dist/agent-src/commands/module/explore.md +3 -3
  29. package/dist/agent-src/commands/optimize/agents-dir.md +1 -1
  30. package/dist/agent-src/commands/optimize/skills.md +1 -1
  31. package/dist/agent-src/commands/optimize-project.md +1 -1
  32. package/dist/agent-src/commands/orchestrate.md +2 -2
  33. package/dist/agent-src/commands/project-analyze.md +1 -1
  34. package/dist/agent-src/commands/project-health.md +1 -1
  35. package/dist/agent-src/commands/roadmap/ai-council.md +1 -1
  36. package/dist/agent-src/commands/roadmap/create.md +2 -2
  37. package/dist/agent-src/commands/roadmap/process-full.md +3 -1
  38. package/dist/agent-src/commands/roadmap/process-phase.md +4 -2
  39. package/dist/agent-src/commands/roadmap/process-step.md +3 -1
  40. package/dist/agent-src/commands/security-audit-config.md +1 -1
  41. package/dist/agent-src/commands/sync-agent-settings.md +7 -7
  42. package/dist/agent-src/commands/sync-gitignore/fix.md +3 -3
  43. package/dist/agent-src/commands/sync-gitignore.md +4 -4
  44. package/dist/agent-src/commands/work.md +3 -3
  45. package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
  46. package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +2 -2
  47. package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +1 -1
  48. package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +8 -7
  49. package/dist/agent-src/contexts/execution/evidence-discipline.md +2 -2
  50. package/dist/agent-src/contexts/execution/roadmap-process-loop.md +9 -4
  51. package/dist/agent-src/contexts/execution/toolchain-resolver.md +10 -9
  52. package/dist/agent-src/contexts/execution/verification-mechanics.md +13 -1
  53. package/dist/agent-src/packs/README.md +1 -1
  54. package/dist/agent-src/presets/README.md +1 -1
  55. package/dist/agent-src/profiles/README.md +1 -1
  56. package/dist/agent-src/rules/architecture.md +2 -2
  57. package/dist/agent-src/rules/commit-policy.md +10 -0
  58. package/dist/agent-src/rules/context-hygiene.md +2 -2
  59. package/dist/agent-src/rules/fast-path-marker-visibility.md +1 -1
  60. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +1 -1
  61. package/dist/agent-src/rules/linked-projects-onboarding-gate.md +1 -1
  62. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +3 -3
  63. package/dist/agent-src/rules/media-governance-routing.md +1 -1
  64. package/dist/agent-src/rules/no-roadmap-references.md +3 -3
  65. package/dist/agent-src/rules/preservation-guard.md +2 -2
  66. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +6 -5
  67. package/dist/agent-src/rules/roadmap-progress-sync.md +3 -3
  68. package/dist/agent-src/rules/security-sensitive-stop.md +7 -9
  69. package/dist/agent-src/rules/source-confidentiality.md +1 -1
  70. package/dist/agent-src/rules/telegraph-speak.md +1 -1
  71. package/dist/agent-src/rules/token-optimizer-maintenance.md +1 -1
  72. package/dist/agent-src/rules/ui-audit-gate.md +1 -1
  73. package/dist/agent-src/scripts/archive_completed_roadmaps.ts +22 -4
  74. package/dist/agent-src/scripts/update_roadmap_progress.ts +29 -1
  75. package/dist/agent-src/skills/accessibility-auditor/SKILL.md +3 -2
  76. package/dist/agent-src/skills/adr-create/SKILL.md +8 -6
  77. package/dist/agent-src/skills/agent-docs-writing/SKILL.md +1 -1
  78. package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +2 -2
  79. package/dist/agent-src/skills/ai-council/SKILL.md +15 -15
  80. package/dist/agent-src/skills/api-design/SKILL.md +1 -1
  81. package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -1
  82. package/dist/agent-src/skills/authz-review/SKILL.md +1 -1
  83. package/dist/agent-src/skills/blade-ui/SKILL.md +11 -10
  84. package/dist/agent-src/skills/blameless-post-mortem/SKILL.md +9 -8
  85. package/dist/agent-src/skills/code-review/SKILL.md +3 -4
  86. package/dist/agent-src/skills/command-routing/SKILL.md +3 -3
  87. package/dist/agent-src/skills/command-writing/SKILL.md +3 -3
  88. package/dist/agent-src/skills/condense-memory/SKILL.md +2 -2
  89. package/dist/agent-src/skills/context-authoring/SKILL.md +1 -1
  90. package/dist/agent-src/skills/context-document/SKILL.md +1 -1
  91. package/dist/agent-src/skills/copilot-agents-optimization/SKILL.md +1 -1
  92. package/dist/agent-src/skills/corpus-grounding/SKILL.md +16 -11
  93. package/dist/agent-src/skills/corpus-grounding/scripts/ground.ts +24 -3
  94. package/dist/agent-src/skills/dashboard-design/SKILL.md +2 -1
  95. package/dist/agent-src/skills/database/SKILL.md +2 -1
  96. package/dist/agent-src/skills/description-assist/SKILL.md +6 -6
  97. package/dist/agent-src/skills/design-intelligence/SKILL.md +6 -5
  98. package/dist/agent-src/skills/design-tokens/SKILL.md +5 -5
  99. package/dist/agent-src/skills/design-tokens/scripts/tokens.ts +24 -3
  100. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +3 -3
  101. package/dist/agent-src/skills/fe-design/SKILL.md +7 -7
  102. package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +11 -4
  103. package/dist/agent-src/skills/flux/SKILL.md +10 -9
  104. package/dist/agent-src/skills/git-workflow/SKILL.md +4 -5
  105. package/dist/agent-src/skills/guideline-writing/SKILL.md +2 -2
  106. package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +2 -2
  107. package/dist/agent-src/skills/livewire/SKILL.md +10 -9
  108. package/dist/agent-src/skills/memory-consolidation/SKILL.md +2 -2
  109. package/dist/agent-src/skills/module-detect-on-the-fly/SKILL.md +5 -5
  110. package/dist/agent-src/skills/module-management/SKILL.md +2 -2
  111. package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +11 -11
  112. package/dist/agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +6 -6
  113. package/dist/agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +1 -1
  114. package/dist/agent-src/skills/premortem/SKILL.md +1 -1
  115. package/dist/agent-src/skills/project-docs/SKILL.md +1 -1
  116. package/dist/agent-src/skills/quality-tools/SKILL.md +26 -2
  117. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +8 -7
  118. package/dist/agent-src/skills/react-shadcn-ui/scripts/shadcn_add.ts +31 -10
  119. package/dist/agent-src/skills/refine-prompt/SKILL.md +14 -14
  120. package/dist/agent-src/skills/refine-ticket/SKILL.md +24 -25
  121. package/dist/agent-src/skills/refine-ticket/detection-map.yml +1 -1
  122. package/dist/agent-src/skills/review-routing/SKILL.md +6 -7
  123. package/dist/agent-src/skills/roadmap-management/SKILL.md +11 -6
  124. package/dist/agent-src/skills/rule-refactor/SKILL.md +1 -1
  125. package/dist/agent-src/skills/rule-writing/SKILL.md +5 -5
  126. package/dist/agent-src/skills/script-writing/SKILL.md +28 -41
  127. package/dist/agent-src/skills/skill-writing/SKILL.md +3 -3
  128. package/dist/agent-src/skills/source-discovery/SKILL.md +3 -3
  129. package/dist/agent-src/skills/sql-writing/SKILL.md +2 -1
  130. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +1 -1
  131. package/dist/agent-src/skills/systematic-debugging/SKILL.md +5 -7
  132. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +2 -2
  133. package/dist/agent-src/skills/tailwind-engineer/scripts/tailwind_config_gen.ts +25 -4
  134. package/dist/agent-src/skills/token-optimizer/SKILL.md +1 -1
  135. package/dist/agent-src/skills/typography-system/SKILL.md +1 -1
  136. package/dist/agent-src/skills/validate-feature-fit/SKILL.md +5 -7
  137. package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +13 -1
  138. package/dist/agent-src/templates/agent-settings.md +34 -25
  139. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
  140. package/dist/agent-src/templates/agents/memory/incident-learnings.example.yml +1 -1
  141. package/dist/agent-src/templates/agents/proposal.example.md +4 -4
  142. package/dist/agent-src/templates/copilot-instructions.md +1 -1
  143. package/dist/agent-src/templates/github-workflows/memory-hygiene.yml +10 -10
  144. package/dist/agent-src/templates/github-workflows/pr-risk-review.yml +19 -8
  145. package/dist/agent-src/templates/github-workflows/proposal-drift.yml +11 -8
  146. package/dist/agent-src/templates/github-workflows/roadmap-progress-check.yml +10 -12
  147. package/dist/agent-src/templates/hooks/pre-commit-frontmatter +21 -11
  148. package/dist/agent-src/templates/hooks/pre-commit-roadmap-progress +43 -29
  149. package/dist/agent-src/templates/roadmaps.md +9 -4
  150. package/dist/agent-src/templates/rule.md +3 -3
  151. package/dist/agent-src/templates/scripts/README.md +6 -6
  152. package/dist/agent-src/templates/scripts/check_memory.ts +24 -2
  153. package/dist/agent-src/templates/scripts/check_memory_proposal.ts +23 -4
  154. package/dist/agent-src/templates/scripts/historical-bug-patterns.example.yml +1 -1
  155. package/dist/agent-src/templates/scripts/memory_hash.ts +24 -2
  156. package/dist/agent-src/templates/scripts/memory_lookup.ts +24 -2
  157. package/dist/agent-src/templates/scripts/memory_report.ts +24 -2
  158. package/dist/agent-src/templates/scripts/memory_signal.ts +24 -2
  159. package/dist/agent-src/templates/scripts/memory_status.ts +26 -2
  160. package/dist/agent-src/templates/scripts/ownership-map.example.yml +1 -1
  161. package/dist/agent-src/templates/scripts/pr-risk-config.example.yml +1 -1
  162. package/dist/agent-src/templates/scripts/pr_review_routing.ts +24 -3
  163. package/dist/agent-src/templates/scripts/pr_risk_review.ts +0 -0
  164. package/dist/agent-src/templates/scripts/telemetry_record.ts +24 -3
  165. package/dist/agent-src/templates/scripts/telemetry_report.ts +25 -3
  166. package/dist/agent-src/templates/scripts/telemetry_status.ts +24 -3
  167. package/dist/agent-src/templates/scripts/tier_usage_report.ts +24 -2
  168. package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +44 -10
  169. package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/_chat_history_base.ts +26 -13
  170. package/dist/agent-src/templates/skill.md +2 -2
  171. package/dist/cli/python/knowledge_ingest.js +24 -3
  172. package/dist/cli/python/knowledge_ingest.js.map +1 -1
  173. package/dist/cli/python/workspace_analytics.js +23 -3
  174. package/dist/cli/python/workspace_analytics.js.map +1 -1
  175. package/dist/cli/python/workspace_crypto.js +23 -3
  176. package/dist/cli/python/workspace_crypto.js.map +1 -1
  177. package/dist/cli/python/workspace_documents.js +23 -3
  178. package/dist/cli/python/workspace_documents.js.map +1 -1
  179. package/dist/cli/python/workspace_drive.js +24 -3
  180. package/dist/cli/python/workspace_drive.js.map +1 -1
  181. package/dist/cli/python/workspace_drive_health.js +23 -3
  182. package/dist/cli/python/workspace_drive_health.js.map +1 -1
  183. package/dist/cli/python/workspace_explain.js +23 -3
  184. package/dist/cli/python/workspace_explain.js.map +1 -1
  185. package/dist/cli/python/workspace_hosts.js +23 -3
  186. package/dist/cli/python/workspace_hosts.js.map +1 -1
  187. package/dist/cli/python/workspace_inbox.js +23 -3
  188. package/dist/cli/python/workspace_inbox.js.map +1 -1
  189. package/dist/cli/python/workspace_render.js +23 -3
  190. package/dist/cli/python/workspace_render.js.map +1 -1
  191. package/dist/cli/python/workspace_roles.js +23 -3
  192. package/dist/cli/python/workspace_roles.js.map +1 -1
  193. package/dist/cli/python/workspace_sessions.js +23 -3
  194. package/dist/cli/python/workspace_sessions.js.map +1 -1
  195. package/dist/cli/python/workspace_skills.js +23 -3
  196. package/dist/cli/python/workspace_skills.js.map +1 -1
  197. package/dist/cli/registry.js +2 -0
  198. package/dist/cli/registry.js.map +1 -1
  199. package/dist/discovery/deprecation-report.md +1 -1
  200. package/dist/discovery/discovery-manifest.json +119 -119
  201. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  202. package/dist/discovery/discovery-manifest.summary.md +2 -2
  203. package/dist/discovery/orphan-report.md +1 -1
  204. package/dist/discovery/packs.json +3 -3
  205. package/dist/discovery/trust-report.md +1 -1
  206. package/dist/discovery/workspaces.json +3 -3
  207. package/dist/install/install.mjs +67 -28
  208. package/dist/mcp/registry-manifest.json +2 -2
  209. package/dist/server/routes/settings.js +4 -4
  210. package/dist/server/routes/settings.js.map +1 -1
  211. package/dist/server/schemas/settings.js +1 -1
  212. package/dist/server/schemas/settings.js.map +1 -1
  213. package/docs/CLAIMS.md +2 -2
  214. package/docs/archive/CHANGELOG-pre-8.0.0.md +301 -0
  215. package/docs/archive/CHANGELOG-pre-8.1.0.md +316 -0
  216. package/docs/benchmark.md +40 -0
  217. package/docs/contracts/skill-bundled-assets.md +2 -2
  218. package/docs/customization.md +1 -1
  219. package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +9 -4
  220. package/docs/guidelines/agent-infra/corpus-grounding-authoring.md +2 -2
  221. package/docs/guidelines/agent-infra/engineering-memory-data-format.md +4 -4
  222. package/docs/guidelines/agent-infra/installed-tools-manifest.md +3 -3
  223. package/docs/guidelines/agent-infra/language-and-tone-examples.md +2 -2
  224. package/docs/guidelines/agent-infra/layered-settings.md +4 -4
  225. package/docs/guidelines/agent-infra/memory-access.md +19 -18
  226. package/docs/guidelines/agent-infra/naming.md +1 -1
  227. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +5 -5
  228. package/docs/guidelines/agent-infra/role-contracts.md +1 -1
  229. package/docs/guidelines/agent-infra/security-lint-containment.md +2 -2
  230. package/docs/guidelines/agent-infra/self-improvement-pipeline.md +1 -1
  231. package/docs/guidelines/agent-infra/size-and-scope.md +1 -1
  232. package/docs/guidelines/agent-infra/skill-quality-checklist.md +5 -5
  233. package/docs/guidelines/augment-portability-patterns.md +1 -1
  234. package/docs/proof.md +1 -1
  235. package/docs/setup/per-ide/claude-code.md +10 -4
  236. package/package.json +3 -2
  237. package/src/config/agent-settings.template.yml +31 -17
  238. package/src/config/host-capabilities.yml +25 -16
  239. package/src/config/profiles/balanced.ini +5 -3
  240. package/src/scripts/_cli/cmd_analyze_session.ts +23 -4
  241. package/src/scripts/_cli/cmd_conformance.ts +23 -4
  242. package/src/scripts/_cli/cmd_doctor.ts +96 -8
  243. package/src/scripts/_cli/cmd_explain.ts +23 -4
  244. package/src/scripts/_cli/cmd_export.ts +23 -4
  245. package/src/scripts/_cli/cmd_fleet.ts +23 -4
  246. package/src/scripts/_cli/cmd_migrate.ts +23 -4
  247. package/src/scripts/_cli/cmd_preflight.ts +24 -4
  248. package/src/scripts/_cli/cmd_prune.ts +23 -4
  249. package/src/scripts/_cli/cmd_refresh.ts +23 -4
  250. package/src/scripts/_cli/cmd_settings_check.ts +23 -4
  251. package/src/scripts/_cli/cmd_settings_migrate.ts +23 -4
  252. package/src/scripts/_cli/cmd_sync.ts +23 -4
  253. package/src/scripts/_cli/cmd_uninstall.ts +23 -4
  254. package/src/scripts/_cli/cmd_update.ts +23 -4
  255. package/src/scripts/_cli/cmd_upgrade.ts +238 -9
  256. package/src/scripts/_cli/cmd_validate.ts +23 -4
  257. package/src/scripts/_cli/cmd_versions.ts +23 -4
  258. package/src/scripts/_dispatch.bash +62 -19
  259. package/src/scripts/_lib/claude_plugin.ts +83 -0
  260. package/src/scripts/_lib/knowledge_global.ts +24 -2
  261. package/src/scripts/_lib/knowledge_global_promote.ts +24 -2
  262. package/src/scripts/_lib/knowledge_global_redaction.ts +24 -2
  263. package/src/scripts/_lib/link_crypto.ts +24 -5
  264. package/src/scripts/_lib/pin_resolver.ts +24 -3
  265. package/src/scripts/adoption_report.ts +23 -4
  266. package/src/scripts/adoption_snapshot.ts +23 -1
  267. package/src/scripts/adoption_status.ts +23 -4
  268. package/src/scripts/adr/regenerate_index.ts +24 -3
  269. package/src/scripts/ai_council/airgap.ts +25 -2
  270. package/src/scripts/ai_council/compile_corpus.ts +24 -2
  271. package/src/scripts/ai_council/pricing.ts +11 -1
  272. package/src/scripts/analysis_freshness.ts +23 -4
  273. package/src/scripts/annotate_discovery.ts +23 -1
  274. package/src/scripts/apply_modules_config.ts +23 -4
  275. package/src/scripts/audit_adr_coverage.ts +23 -4
  276. package/src/scripts/audit_auto_rules.ts +23 -1
  277. package/src/scripts/audit_cloud_compatibility.ts +23 -4
  278. package/src/scripts/audit_command_surface.ts +23 -4
  279. package/src/scripts/audit_initial_context.ts +23 -3
  280. package/src/scripts/audit_likelihood.ts +23 -1
  281. package/src/scripts/audit_mcp_tools.ts +23 -3
  282. package/src/scripts/audit_overlap.ts +23 -1
  283. package/src/scripts/audit_skill_descriptions.ts +24 -2
  284. package/src/scripts/audit_skill_overlap.ts +23 -1
  285. package/src/scripts/audit_user_type_axis.ts +23 -4
  286. package/src/scripts/backfill_model_tier.ts +23 -4
  287. package/src/scripts/bench_ab_cache_dispatch.ts +23 -1
  288. package/src/scripts/bench_ab_clone.ts +23 -1
  289. package/src/scripts/bench_ab_diff.ts +23 -1
  290. package/src/scripts/bench_ab_integrity.ts +23 -1
  291. package/src/scripts/bench_ab_run.ts +23 -2
  292. package/src/scripts/bench_ab_task_runner.ts +23 -1
  293. package/src/scripts/bench_ab_tracka_run.ts +23 -2
  294. package/src/scripts/bench_ab_v2_run.ts +23 -1
  295. package/src/scripts/bench_ab_v2_stats.ts +23 -1
  296. package/src/scripts/bench_baseline_ready.ts +23 -1
  297. package/src/scripts/bench_condense_memory.ts +23 -1
  298. package/src/scripts/bench_drift_check.ts +23 -2
  299. package/src/scripts/bench_matrix.ts +23 -4
  300. package/src/scripts/bench_per_tool.ts +23 -1
  301. package/src/scripts/bench_quality_run.ts +23 -2
  302. package/src/scripts/bench_rtk_savings.ts +23 -1
  303. package/src/scripts/bench_rule_load_latency.ts +23 -2
  304. package/src/scripts/bench_run.ts +23 -2
  305. package/src/scripts/bench_runner.ts +23 -1
  306. package/src/scripts/build_cloud_bundle.ts +23 -3
  307. package/src/scripts/build_discovery_manifest.ts +23 -4
  308. package/src/scripts/build_linear_digest.ts +23 -3
  309. package/src/scripts/build_mcp_registry_manifest.ts +23 -4
  310. package/src/scripts/build_rule_trigger_matrix.ts +23 -4
  311. package/src/scripts/capture_showcase_session.ts +23 -1
  312. package/src/scripts/chat_history.ts +24 -3
  313. package/src/scripts/check_always_budget.ts +23 -2
  314. package/src/scripts/check_artefact_checksums.ts +23 -4
  315. package/src/scripts/check_augment_description_cap.ts +23 -4
  316. package/src/scripts/check_augmentignore.ts +23 -4
  317. package/src/scripts/check_beta_review_markers.ts +23 -4
  318. package/src/scripts/check_cluster_patterns.ts +23 -4
  319. package/src/scripts/check_command_count_messaging.ts +23 -4
  320. package/src/scripts/check_comparison.ts +23 -1
  321. package/src/scripts/check_condensation.ts +24 -3
  322. package/src/scripts/check_condensed_paths.ts +23 -2
  323. package/src/scripts/check_context_paths.ts +23 -4
  324. package/src/scripts/check_council_config_location.ts +23 -4
  325. package/src/scripts/check_council_layout.ts +23 -4
  326. package/src/scripts/check_council_references.ts +23 -4
  327. package/src/scripts/check_discovery_determinism.ts +24 -4
  328. package/src/scripts/check_gate_paths.ts +23 -4
  329. package/src/scripts/check_generated_artefact_headers.ts +23 -4
  330. package/src/scripts/check_generator_output_coverage.ts +23 -4
  331. package/src/scripts/check_gitignore_freshness.ts +23 -4
  332. package/src/scripts/check_iron_law_prominence.ts +23 -4
  333. package/src/scripts/check_kernel_prefix_stability.ts +0 -0
  334. package/src/scripts/check_kernel_rule_bundle.ts +23 -4
  335. package/src/scripts/check_knowledge_cards.ts +23 -1
  336. package/src/scripts/check_md_language.ts +23 -4
  337. package/src/scripts/check_media_deps.ts +24 -1
  338. package/src/scripts/check_memory.ts +24 -2
  339. package/src/scripts/check_memory_proposal.ts +23 -4
  340. package/src/scripts/check_module_management_neutral.ts +23 -4
  341. package/src/scripts/check_no_conflict_markers.ts +23 -4
  342. package/src/scripts/check_no_external_sources.ts +23 -4
  343. package/src/scripts/check_no_local_settings_committed.ts +24 -4
  344. package/src/scripts/check_no_new_legacy_path.ts +23 -4
  345. package/src/scripts/check_no_roadmap_refs.ts +23 -4
  346. package/src/scripts/check_one_off_location.ts +23 -4
  347. package/src/scripts/check_overlay_cascade_subdirs.ts +23 -4
  348. package/src/scripts/check_portability.ts +24 -3
  349. package/src/scripts/check_proposal.ts +0 -0
  350. package/src/scripts/check_public_catalog_links.ts +23 -4
  351. package/src/scripts/check_public_links.ts +23 -4
  352. package/src/scripts/check_quality_regression.ts +23 -2
  353. package/src/scripts/check_references.ts +23 -4
  354. package/src/scripts/check_release_includes_discovery.ts +23 -4
  355. package/src/scripts/check_release_pr_shape.ts +23 -4
  356. package/src/scripts/check_release_published.ts +23 -4
  357. package/src/scripts/check_release_trunk_sync.ts +23 -4
  358. package/src/scripts/check_reply_consistency.ts +23 -4
  359. package/src/scripts/check_roadmap_trackable.ts +23 -4
  360. package/src/scripts/check_role_doc_links.ts +23 -4
  361. package/src/scripts/check_safety_floor_untouched.ts +24 -4
  362. package/src/scripts/check_site_links.ts +23 -1
  363. package/src/scripts/check_skill_gaps.ts +23 -1
  364. package/src/scripts/check_skill_requires.ts +23 -4
  365. package/src/scripts/check_structural_breaking.ts +24 -4
  366. package/src/scripts/check_surface_tiers.ts +23 -4
  367. package/src/scripts/check_template_pin_drift.ts +23 -4
  368. package/src/scripts/check_test_coverage_diff.ts +23 -4
  369. package/src/scripts/check_token_optimizer_freshness.ts +23 -4
  370. package/src/scripts/check_token_quality_golden.ts +23 -2
  371. package/src/scripts/check_token_regression.ts +23 -2
  372. package/src/scripts/check_tracked_but_ignored.ts +24 -4
  373. package/src/scripts/check_trigger_evals.ts +23 -4
  374. package/src/scripts/check_trunk_drift.ts +24 -1
  375. package/src/scripts/check_update_banner.ts +23 -4
  376. package/src/scripts/ci_summary.ts +23 -4
  377. package/src/scripts/ci_time_ratio.ts +23 -4
  378. package/src/scripts/cluster_near_miss_patterns.ts +0 -0
  379. package/src/scripts/compile_router.ts +23 -4
  380. package/src/scripts/condense.ts +23 -2
  381. package/src/scripts/condense_memory.ts +24 -2
  382. package/src/scripts/config/packs.ts +24 -4
  383. package/src/scripts/config/session_profiles.ts +23 -4
  384. package/src/scripts/context_hygiene_hook.ts +24 -3
  385. package/src/scripts/cost_by_conversation.ts +23 -4
  386. package/src/scripts/cost_summary.ts +23 -4
  387. package/src/scripts/council_cli.ts +35 -7
  388. package/src/scripts/council_prune.ts +25 -2
  389. package/src/scripts/cross_repo_retrieve.ts +23 -4
  390. package/src/scripts/discovery_stats.ts +23 -4
  391. package/src/scripts/evidence_report.ts +23 -1
  392. package/src/scripts/export_replay_corpus.ts +23 -2
  393. package/src/scripts/extract_audit_patterns.ts +23 -1
  394. package/src/scripts/first_run_gate_hook.ts +24 -3
  395. package/src/scripts/gen_discovery_baseline.ts +23 -4
  396. package/src/scripts/generate_capabilities_index.ts +24 -5
  397. package/src/scripts/generate_capability_matrix.ts +23 -4
  398. package/src/scripts/generate_catalog.ts +23 -1
  399. package/src/scripts/generate_command_flows.ts +23 -4
  400. package/src/scripts/generate_cookbook.ts +23 -4
  401. package/src/scripts/generate_index.ts +23 -4
  402. package/src/scripts/generate_ownership_matrix.ts +23 -1
  403. package/src/scripts/generate_pack_manifests.ts +24 -5
  404. package/src/scripts/generate_role_experiences_catalog.ts +23 -4
  405. package/src/scripts/hooks/block_no_verify.ts +23 -4
  406. package/src/scripts/hooks/design_slop_hook.ts +24 -3
  407. package/src/scripts/hooks/dispatch_hook.ts +47 -14
  408. package/src/scripts/hooks/replay_hook.ts +23 -2
  409. package/src/scripts/hooks/rtk_wrap_hook.ts +24 -5
  410. package/src/scripts/hooks_doctor.ts +23 -2
  411. package/src/scripts/hooks_status.ts +23 -2
  412. package/src/scripts/injection_scan_hook.ts +24 -5
  413. package/src/scripts/install.ts +72 -44
  414. package/src/scripts/inventory_abstraction_budget.ts +23 -1
  415. package/src/scripts/inventory_frontmatter.ts +23 -1
  416. package/src/scripts/inventory_meta_layers.ts +23 -1
  417. package/src/scripts/iron_law_sha.ts +23 -4
  418. package/src/scripts/janitor.ts +23 -4
  419. package/src/scripts/knowledge_global_cli.ts +24 -2
  420. package/src/scripts/linked_projects_list.ts +23 -4
  421. package/src/scripts/lint_agent_security.ts +23 -4
  422. package/src/scripts/lint_agent_skill_names.ts +23 -4
  423. package/src/scripts/lint_agents_layout.ts +23 -4
  424. package/src/scripts/lint_agents_md.ts +23 -4
  425. package/src/scripts/lint_archived_skills.ts +23 -4
  426. package/src/scripts/lint_artefact_frontmatter.ts +23 -4
  427. package/src/scripts/lint_bench_ab.ts +23 -4
  428. package/src/scripts/lint_bench_corpus.ts +23 -2
  429. package/src/scripts/lint_command_flow_coverage.ts +23 -4
  430. package/src/scripts/lint_command_routing.ts +23 -4
  431. package/src/scripts/lint_command_tiers.ts +23 -2
  432. package/src/scripts/lint_command_verbs.ts +23 -4
  433. package/src/scripts/lint_commit_subjects.ts +24 -4
  434. package/src/scripts/lint_confusables.ts +25 -5
  435. package/src/scripts/lint_context_spine_usage.ts +23 -4
  436. package/src/scripts/lint_discovery_manifest.ts +23 -4
  437. package/src/scripts/lint_discovery_vocabulary.ts +23 -4
  438. package/src/scripts/lint_empty_roadmaps.ts +23 -4
  439. package/src/scripts/lint_eval_freshness.ts +23 -4
  440. package/src/scripts/lint_examples.ts +23 -4
  441. package/src/scripts/lint_explain_trace.ts +23 -4
  442. package/src/scripts/lint_featured_skills.ts +0 -0
  443. package/src/scripts/lint_flows.ts +23 -4
  444. package/src/scripts/lint_framework_leakage.ts +23 -4
  445. package/src/scripts/lint_frontmatter_boilerplate.ts +23 -4
  446. package/src/scripts/lint_ghostwriter_source.ts +23 -4
  447. package/src/scripts/lint_global_paths.ts +23 -2
  448. package/src/scripts/lint_handoffs.ts +23 -4
  449. package/src/scripts/lint_hidden_unicode.ts +24 -5
  450. package/src/scripts/lint_hook_concern_budget.ts +23 -4
  451. package/src/scripts/lint_hook_manifest.ts +23 -2
  452. package/src/scripts/lint_instruction_smuggling.ts +25 -5
  453. package/src/scripts/lint_legal_pack.ts +23 -1
  454. package/src/scripts/lint_load_context.ts +23 -4
  455. package/src/scripts/lint_marketplace.ts +24 -3
  456. package/src/scripts/lint_marketplace_install_completeness.ts +23 -4
  457. package/src/scripts/lint_mcp_config_security.ts +25 -5
  458. package/src/scripts/lint_mcp_registry_manifest.ts +23 -4
  459. package/src/scripts/lint_media_policy_linkage.ts +23 -4
  460. package/src/scripts/lint_missions.ts +23 -4
  461. package/src/scripts/lint_model_tier_coverage.ts +23 -4
  462. package/src/scripts/lint_namespace.ts +23 -4
  463. package/src/scripts/lint_namespace_collisions.ts +23 -4
  464. package/src/scripts/lint_new_skill_gate.ts +23 -4
  465. package/src/scripts/lint_no_new_atomic_commands.ts +23 -4
  466. package/src/scripts/lint_one_off_age.ts +23 -4
  467. package/src/scripts/lint_orchestration_dsl.ts +23 -4
  468. package/src/scripts/lint_orchestrator_auto_detect.ts +23 -4
  469. package/src/scripts/lint_pack_boundaries.ts +23 -4
  470. package/src/scripts/lint_pack_dependencies.ts +23 -2
  471. package/src/scripts/lint_pack_first_win.ts +23 -4
  472. package/src/scripts/lint_pack_risk_class.ts +23 -1
  473. package/src/scripts/lint_persona_governance.ts +23 -4
  474. package/src/scripts/lint_positioning.ts +23 -4
  475. package/src/scripts/lint_profile_overlay_set_only.ts +23 -4
  476. package/src/scripts/lint_readme_jargon.ts +23 -4
  477. package/src/scripts/lint_readme_size.ts +23 -4
  478. package/src/scripts/lint_regression.ts +23 -4
  479. package/src/scripts/lint_roadmap_blockers.ts +23 -4
  480. package/src/scripts/lint_roadmap_ci_steps.ts +23 -4
  481. package/src/scripts/lint_roadmap_complexity.ts +23 -4
  482. package/src/scripts/lint_roadmap_later_disposition.ts +23 -4
  483. package/src/scripts/lint_role_experiences.ts +23 -4
  484. package/src/scripts/lint_rule_interactions.ts +23 -4
  485. package/src/scripts/lint_rule_tiers.ts +24 -3
  486. package/src/scripts/lint_showcase_sessions.ts +23 -4
  487. package/src/scripts/lint_skill_frontmatter_safety.ts +25 -5
  488. package/src/scripts/lint_skill_originality.ts +23 -4
  489. package/src/scripts/lint_skill_tools.ts +23 -4
  490. package/src/scripts/lint_subagent_determinism.ts +23 -4
  491. package/src/scripts/lint_ticket_buildable.ts +23 -4
  492. package/src/scripts/lint_topics_yaml.ts +23 -4
  493. package/src/scripts/lint_trust_coherence.ts +23 -4
  494. package/src/scripts/lint_value_dashboard.ts +23 -4
  495. package/src/scripts/lint_workflow_security.ts +23 -4
  496. package/src/scripts/lint_workspace_boundary.ts +23 -4
  497. package/src/scripts/mcp_parity_smoke.ts +23 -2
  498. package/src/scripts/mcp_render.ts +23 -4
  499. package/src/scripts/mcp_telemetry_health.ts +23 -4
  500. package/src/scripts/mcp_telemetry_query.ts +23 -4
  501. package/src/scripts/mcp_telemetry_store.ts +23 -4
  502. package/src/scripts/measure_augment_budget.ts +23 -1
  503. package/src/scripts/measure_density.ts +23 -1
  504. package/src/scripts/measure_frugality_savings.ts +23 -1
  505. package/src/scripts/measure_markitdown_lift.ts +23 -1
  506. package/src/scripts/measure_patterns.ts +23 -1
  507. package/src/scripts/measure_projection_bytes.ts +23 -1
  508. package/src/scripts/measure_rule_budget.ts +23 -4
  509. package/src/scripts/measure_skill_reduction.ts +23 -1
  510. package/src/scripts/memory_hash.ts +24 -2
  511. package/src/scripts/memory_lookup.ts +24 -2
  512. package/src/scripts/memory_report.ts +24 -2
  513. package/src/scripts/memory_signal.ts +24 -2
  514. package/src/scripts/memory_status.ts +26 -2
  515. package/src/scripts/migrate_command_suggestions.ts +23 -4
  516. package/src/scripts/migrate_frontmatter_defaults.ts +23 -4
  517. package/src/scripts/migration_status.ts +25 -4
  518. package/src/scripts/mine_missing_guardrails.ts +23 -1
  519. package/src/scripts/mine_session.ts +23 -1
  520. package/src/scripts/minimal_safe_diff_hook.ts +24 -3
  521. package/src/scripts/new_skill.ts +23 -3
  522. package/src/scripts/onboarding_gate_hook.ts +24 -3
  523. package/src/scripts/parity/coverage_diff.ts +25 -3
  524. package/src/scripts/parity/phase_gate.ts +25 -4
  525. package/src/scripts/parity/replay.ts +25 -3
  526. package/src/scripts/pattern_share.ts +23 -4
  527. package/src/scripts/plan_physical_move.ts +23 -4
  528. package/src/scripts/prediction-pool/poisson_sim.ts +24 -3
  529. package/src/scripts/prediction-pool/pool_winsim.ts +24 -3
  530. package/src/scripts/prediction-pool/score_ev.ts +24 -3
  531. package/src/scripts/print_required_checks.ts +24 -4
  532. package/src/scripts/probe_host_compliance.ts +23 -2
  533. package/src/scripts/probe_projection_fidelity.ts +23 -1
  534. package/src/scripts/probe_skill_registration.ts +24 -2
  535. package/src/scripts/profile_staleness_hook.ts +24 -3
  536. package/src/scripts/profile_use.ts +23 -4
  537. package/src/scripts/project_thin_rules.ts +23 -3
  538. package/src/scripts/propose_modules_config.ts +23 -4
  539. package/src/scripts/prototype_lint_contradictions.ts +23 -1
  540. package/src/scripts/prove_pack_extractable.ts +23 -4
  541. package/src/scripts/readme_linter.ts +23 -3
  542. package/src/scripts/redact_hook_capture.ts +23 -4
  543. package/src/scripts/refine_ticket_detect.ts +23 -4
  544. package/src/scripts/release.ts +23 -4
  545. package/src/scripts/render_benchmark_composite.ts +23 -4
  546. package/src/scripts/render_benchmark_md.ts +23 -4
  547. package/src/scripts/roadmap_progress_hook.ts +46 -16
  548. package/src/scripts/run_skill_evals.ts +23 -4
  549. package/src/scripts/runtime_dispatcher.ts +23 -4
  550. package/src/scripts/runtime_registry.ts +23 -4
  551. package/src/scripts/score_skill_selection.ts +23 -1
  552. package/src/scripts/security_audit_config.ts +24 -5
  553. package/src/scripts/skill_collision_clusters.ts +23 -4
  554. package/src/scripts/skill_discovery.ts +23 -4
  555. package/src/scripts/skill_linter.ts +23 -2
  556. package/src/scripts/skill_preview.ts +23 -4
  557. package/src/scripts/skill_tools/audit_persona_coverage.ts +23 -1
  558. package/src/scripts/skill_tools/audit_user_type_coverage.ts +23 -1
  559. package/src/scripts/skill_tools/run_block_d_eval.ts +23 -1
  560. package/src/scripts/skill_tools/score_skill_relevance.ts +23 -1
  561. package/src/scripts/skill_tools/suggest_skill_for_task.ts +24 -1
  562. package/src/scripts/skill_usage_collect.ts +23 -4
  563. package/src/scripts/smoke_path_resolution.ts +23 -4
  564. package/src/scripts/smoke_quickstart.ts +23 -4
  565. package/src/scripts/snapshot_agent_outputs.ts +23 -4
  566. package/src/scripts/spotcheck_thin_root.ts +23 -4
  567. package/src/scripts/sync_agent_settings.ts +23 -4
  568. package/src/scripts/sync_github_metadata.ts +23 -4
  569. package/src/scripts/sync_gitignore.ts +23 -4
  570. package/src/scripts/telegraph_stats.ts +23 -4
  571. package/src/scripts/tool_registry.ts +24 -4
  572. package/src/scripts/trigger_coverage.ts +23 -4
  573. package/src/scripts/update_counts.ts +23 -4
  574. package/src/scripts/update_prices.ts +23 -1
  575. package/src/scripts/validate_agent_settings.ts +23 -4
  576. package/src/scripts/validate_decision_engine.ts +23 -4
  577. package/src/scripts/validate_discovery_manifest.ts +23 -4
  578. package/src/scripts/validate_frontmatter.ts +23 -2
  579. package/src/scripts/validate_pack_yaml.ts +0 -0
  580. package/src/scripts/validate_safe_paths.ts +24 -4
  581. package/src/scripts/validate_telegraph_carveouts.ts +23 -4
  582. package/src/scripts/verify_before_complete_hook.ts +24 -3
  583. package/src/scripts/verify_physical_move.ts +23 -4
  584. package/src/scripts/wrapper_freshness_hook.ts +107 -8
  585. package/tests/fixtures/hooks/README.md +92 -0
  586. package/tests/fixtures/hooks/agent_error.json +7 -0
  587. package/tests/fixtures/hooks/post_tool_use.json +13 -0
  588. package/tests/fixtures/hooks/pre_compact.json +7 -0
  589. package/tests/fixtures/hooks/pre_tool_use.json +9 -0
  590. package/tests/fixtures/hooks/session_end.json +6 -0
  591. package/tests/fixtures/hooks/session_start.json +6 -0
  592. package/tests/fixtures/hooks/stop.json +6 -0
  593. package/tests/fixtures/hooks/user_prompt_submit.json +7 -0
@@ -216,10 +216,29 @@ function main(argv?: readonly string[]): number {
216
216
  return check(files);
217
217
  }
218
218
 
219
- const _isCliEntry =
220
- process.argv[1] !== undefined &&
221
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
222
- if (_isCliEntry || process.argv[1] === _HERE) {
219
+ function _isCliEntry(): boolean {
220
+ if (process.argv[1] === undefined) {
221
+ return false;
222
+ }
223
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
224
+ if (import.meta.url === argvUrl) {
225
+ return true;
226
+ }
227
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
228
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
229
+ // import.meta.url is the resolved real path while argv[1] keeps the
230
+ // symlink path. Compare realpaths so the entry guard still fires
231
+ // (without this the CLI silently no-ops when run through a symlink).
232
+ try {
233
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
234
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
235
+ return here === argv;
236
+ } catch {
237
+ return false;
238
+ }
239
+ }
240
+
241
+ if (_isCliEntry() || process.argv[1] === _HERE) {
223
242
  process.exit(main());
224
243
  }
225
244
 
@@ -211,10 +211,29 @@ function _pyRepr(s: string): string {
211
211
  return out + quote;
212
212
  }
213
213
 
214
- const _isCliEntry =
215
- process.argv[1] !== undefined &&
216
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
217
- if (_isCliEntry || process.argv[1] === _HERE) {
214
+ function _isCliEntry(): boolean {
215
+ if (process.argv[1] === undefined) {
216
+ return false;
217
+ }
218
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
219
+ if (import.meta.url === argvUrl) {
220
+ return true;
221
+ }
222
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
223
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
224
+ // import.meta.url is the resolved real path while argv[1] keeps the
225
+ // symlink path. Compare realpaths so the entry guard still fires
226
+ // (without this the CLI silently no-ops when run through a symlink).
227
+ try {
228
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
229
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
230
+ return here === argv;
231
+ } catch {
232
+ return false;
233
+ }
234
+ }
235
+
236
+ if (_isCliEntry() || process.argv[1] === _HERE) {
218
237
  process.exit(main(process.argv.slice(2)));
219
238
  }
220
239
 
@@ -177,10 +177,29 @@ function main(): number {
177
177
  }
178
178
 
179
179
  const _HERE = fileURLToPath(import.meta.url);
180
- const _isCliEntry =
181
- process.argv[1] !== undefined &&
182
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
183
- if (_isCliEntry || process.argv[1] === _HERE) {
180
+ function _isCliEntry(): boolean {
181
+ if (process.argv[1] === undefined) {
182
+ return false;
183
+ }
184
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
185
+ if (import.meta.url === argvUrl) {
186
+ return true;
187
+ }
188
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
189
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
190
+ // import.meta.url is the resolved real path while argv[1] keeps the
191
+ // symlink path. Compare realpaths so the entry guard still fires
192
+ // (without this the CLI silently no-ops when run through a symlink).
193
+ try {
194
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
195
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
196
+ return here === argv;
197
+ } catch {
198
+ return false;
199
+ }
200
+ }
201
+
202
+ if (_isCliEntry() || process.argv[1] === _HERE) {
184
203
  try {
185
204
  process.exit(main());
186
205
  } catch (exc) {
@@ -338,10 +338,29 @@ function main(argv: readonly string[] = process.argv.slice(2)): number {
338
338
  return code;
339
339
  }
340
340
 
341
- const _isCliEntry =
342
- process.argv[1] !== undefined &&
343
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
344
- if (_isCliEntry || process.argv[1] === _HERE) {
341
+ function _isCliEntry(): boolean {
342
+ if (process.argv[1] === undefined) {
343
+ return false;
344
+ }
345
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
346
+ if (import.meta.url === argvUrl) {
347
+ return true;
348
+ }
349
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
350
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
351
+ // import.meta.url is the resolved real path while argv[1] keeps the
352
+ // symlink path. Compare realpaths so the entry guard still fires
353
+ // (without this the CLI silently no-ops when run through a symlink).
354
+ try {
355
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
356
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
357
+ return here === argv;
358
+ } catch {
359
+ return false;
360
+ }
361
+ }
362
+
363
+ if (_isCliEntry() || process.argv[1] === _HERE) {
345
364
  process.exit(main());
346
365
  }
347
366
 
@@ -248,10 +248,29 @@ function main(): number {
248
248
  }
249
249
 
250
250
  const _HERE = fileURLToPath(import.meta.url);
251
- const _isCliEntry =
252
- process.argv[1] !== undefined &&
253
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
254
- if (_isCliEntry || process.argv[1] === _HERE) {
251
+ function _isCliEntry(): boolean {
252
+ if (process.argv[1] === undefined) {
253
+ return false;
254
+ }
255
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
256
+ if (import.meta.url === argvUrl) {
257
+ return true;
258
+ }
259
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
260
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
261
+ // import.meta.url is the resolved real path while argv[1] keeps the
262
+ // symlink path. Compare realpaths so the entry guard still fires
263
+ // (without this the CLI silently no-ops when run through a symlink).
264
+ try {
265
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
266
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
267
+ return here === argv;
268
+ } catch {
269
+ return false;
270
+ }
271
+ }
272
+
273
+ if (_isCliEntry() || process.argv[1] === _HERE) {
255
274
  process.exit(main());
256
275
  }
257
276
 
@@ -177,10 +177,29 @@ function main(argv?: readonly string[]): number {
177
177
  return 0;
178
178
  }
179
179
 
180
- const _isCliEntry =
181
- process.argv[1] !== undefined &&
182
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
183
- if (_isCliEntry || process.argv[1] === _HERE) {
180
+ function _isCliEntry(): boolean {
181
+ if (process.argv[1] === undefined) {
182
+ return false;
183
+ }
184
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
185
+ if (import.meta.url === argvUrl) {
186
+ return true;
187
+ }
188
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
189
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
190
+ // import.meta.url is the resolved real path while argv[1] keeps the
191
+ // symlink path. Compare realpaths so the entry guard still fires
192
+ // (without this the CLI silently no-ops when run through a symlink).
193
+ try {
194
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
195
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
196
+ return here === argv;
197
+ } catch {
198
+ return false;
199
+ }
200
+ }
201
+
202
+ if (_isCliEntry() || process.argv[1] === _HERE) {
184
203
  process.exit(main());
185
204
  }
186
205
 
@@ -21,6 +21,7 @@
21
21
  */
22
22
  import { spawnSync } from 'node:child_process';
23
23
  import * as path from 'node:path';
24
+ import * as fs from 'node:fs';
24
25
  import { fileURLToPath, pathToFileURL } from 'node:url';
25
26
 
26
27
  const _HERE = fileURLToPath(import.meta.url);
@@ -150,10 +151,29 @@ function main(): number {
150
151
  return 0;
151
152
  }
152
153
 
153
- const _isCliEntry =
154
- process.argv[1] !== undefined &&
155
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
156
- if (_isCliEntry || process.argv[1] === _HERE) {
154
+ function _isCliEntry(): boolean {
155
+ if (process.argv[1] === undefined) {
156
+ return false;
157
+ }
158
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
159
+ if (import.meta.url === argvUrl) {
160
+ return true;
161
+ }
162
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
163
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
164
+ // import.meta.url is the resolved real path while argv[1] keeps the
165
+ // symlink path. Compare realpaths so the entry guard still fires
166
+ // (without this the CLI silently no-ops when run through a symlink).
167
+ try {
168
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
169
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
170
+ return here === argv;
171
+ } catch {
172
+ return false;
173
+ }
174
+ }
175
+
176
+ if (_isCliEntry() || process.argv[1] === _HERE) {
157
177
  process.exit(main());
158
178
  }
159
179
 
@@ -130,6 +130,28 @@ export function main(argv: string[] = process.argv.slice(2)): number {
130
130
  return 0;
131
131
  }
132
132
 
133
+ function _isCliEntry(): boolean {
134
+ if (process.argv[1] === undefined) {
135
+ return false;
136
+ }
137
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
138
+ if (import.meta.url === argvUrl) {
139
+ return true;
140
+ }
141
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
142
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
143
+ // import.meta.url is the resolved real path while argv[1] keeps the
144
+ // symlink path. Compare realpaths so the entry guard still fires
145
+ // (without this the CLI silently no-ops when run through a symlink).
146
+ try {
147
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
148
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
149
+ return here === argv;
150
+ } catch {
151
+ return false;
152
+ }
153
+ }
154
+
133
155
  const _isCli =
134
- process.argv[1] !== undefined && import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
156
+ _isCliEntry();
135
157
  if (_isCli) process.exit(main());
@@ -94,6 +94,28 @@ export function main(argv: string[] = process.argv.slice(2)): number {
94
94
  return 0;
95
95
  }
96
96
 
97
+ function _isCliEntry(): boolean {
98
+ if (process.argv[1] === undefined) {
99
+ return false;
100
+ }
101
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
102
+ if (import.meta.url === argvUrl) {
103
+ return true;
104
+ }
105
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
106
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
107
+ // import.meta.url is the resolved real path while argv[1] keeps the
108
+ // symlink path. Compare realpaths so the entry guard still fires
109
+ // (without this the CLI silently no-ops when run through a symlink).
110
+ try {
111
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
112
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
113
+ return here === argv;
114
+ } catch {
115
+ return false;
116
+ }
117
+ }
118
+
97
119
  const _isCli =
98
- process.argv[1] !== undefined && import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
120
+ _isCliEntry();
99
121
  if (_isCli) process.exit(main());
@@ -188,10 +188,29 @@ function _intersects(a: Set<string>, b: Set<string>): boolean {
188
188
  return false;
189
189
  }
190
190
 
191
- const _isCliEntry =
192
- process.argv[1] !== undefined &&
193
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
194
- if (_isCliEntry || process.argv[1] === _HERE) {
191
+ function _isCliEntry(): boolean {
192
+ if (process.argv[1] === undefined) {
193
+ return false;
194
+ }
195
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
196
+ if (import.meta.url === argvUrl) {
197
+ return true;
198
+ }
199
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
200
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
201
+ // import.meta.url is the resolved real path while argv[1] keeps the
202
+ // symlink path. Compare realpaths so the entry guard still fires
203
+ // (without this the CLI silently no-ops when run through a symlink).
204
+ try {
205
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
206
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
207
+ return here === argv;
208
+ } catch {
209
+ return false;
210
+ }
211
+ }
212
+
213
+ if (_isCliEntry() || process.argv[1] === _HERE) {
195
214
  process.exit(main());
196
215
  }
197
216
 
@@ -27,6 +27,7 @@
27
27
  */
28
28
  import { spawnSync } from 'node:child_process';
29
29
  import * as path from 'node:path';
30
+ import * as fs from 'node:fs';
30
31
  import { fileURLToPath, pathToFileURL } from 'node:url';
31
32
 
32
33
  const QUIET = process.argv.includes('--quiet');
@@ -152,10 +153,29 @@ function main(): number {
152
153
  }
153
154
 
154
155
  const _HERE = fileURLToPath(import.meta.url);
155
- const _isCliEntry =
156
- process.argv[1] !== undefined &&
157
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
158
- if (_isCliEntry || process.argv[1] === _HERE) {
156
+ function _isCliEntry(): boolean {
157
+ if (process.argv[1] === undefined) {
158
+ return false;
159
+ }
160
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
161
+ if (import.meta.url === argvUrl) {
162
+ return true;
163
+ }
164
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
165
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
166
+ // import.meta.url is the resolved real path while argv[1] keeps the
167
+ // symlink path. Compare realpaths so the entry guard still fires
168
+ // (without this the CLI silently no-ops when run through a symlink).
169
+ try {
170
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
171
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
172
+ return here === argv;
173
+ } catch {
174
+ return false;
175
+ }
176
+ }
177
+
178
+ if (_isCliEntry() || process.argv[1] === _HERE) {
159
179
  process.exit(main());
160
180
  }
161
181
 
@@ -549,10 +549,29 @@ function main(argv?: readonly string[]): number {
549
549
  }
550
550
 
551
551
  const _HERE = fileURLToPath(import.meta.url);
552
- const _isCliEntry =
553
- process.argv[1] !== undefined &&
554
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
555
- if (_isCliEntry || process.argv[1] === _HERE) {
552
+ function _isCliEntry(): boolean {
553
+ if (process.argv[1] === undefined) {
554
+ return false;
555
+ }
556
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
557
+ if (import.meta.url === argvUrl) {
558
+ return true;
559
+ }
560
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
561
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
562
+ // import.meta.url is the resolved real path while argv[1] keeps the
563
+ // symlink path. Compare realpaths so the entry guard still fires
564
+ // (without this the CLI silently no-ops when run through a symlink).
565
+ try {
566
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
567
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
568
+ return here === argv;
569
+ } catch {
570
+ return false;
571
+ }
572
+ }
573
+
574
+ if (_isCliEntry() || process.argv[1] === _HERE) {
556
575
  process.exit(main());
557
576
  }
558
577
 
@@ -203,10 +203,29 @@ function main(argv: readonly string[] = []): number {
203
203
  return 0;
204
204
  }
205
205
 
206
- const _isCliEntry =
207
- process.argv[1] !== undefined &&
208
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
209
- if (_isCliEntry || process.argv[1] === _HERE) {
206
+ function _isCliEntry(): boolean {
207
+ if (process.argv[1] === undefined) {
208
+ return false;
209
+ }
210
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
211
+ if (import.meta.url === argvUrl) {
212
+ return true;
213
+ }
214
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
215
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
216
+ // import.meta.url is the resolved real path while argv[1] keeps the
217
+ // symlink path. Compare realpaths so the entry guard still fires
218
+ // (without this the CLI silently no-ops when run through a symlink).
219
+ try {
220
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
221
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
222
+ return here === argv;
223
+ } catch {
224
+ return false;
225
+ }
226
+ }
227
+
228
+ if (_isCliEntry() || process.argv[1] === _HERE) {
210
229
  process.exit(main(process.argv.slice(2)));
211
230
  }
212
231
 
@@ -214,10 +214,29 @@ function _set_hooks_for_test(overrides: Partial<typeof _hooks>): void {
214
214
  Object.assign(_hooks, overrides);
215
215
  }
216
216
 
217
- const _isCliEntry =
218
- process.argv[1] !== undefined &&
219
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
220
- if (_isCliEntry || process.argv[1] === _HERE) {
217
+ function _isCliEntry(): boolean {
218
+ if (process.argv[1] === undefined) {
219
+ return false;
220
+ }
221
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
222
+ if (import.meta.url === argvUrl) {
223
+ return true;
224
+ }
225
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
226
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
227
+ // import.meta.url is the resolved real path while argv[1] keeps the
228
+ // symlink path. Compare realpaths so the entry guard still fires
229
+ // (without this the CLI silently no-ops when run through a symlink).
230
+ try {
231
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
232
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
233
+ return here === argv;
234
+ } catch {
235
+ return false;
236
+ }
237
+ }
238
+
239
+ if (_isCliEntry() || process.argv[1] === _HERE) {
221
240
  process.exit(main());
222
241
  }
223
242
 
@@ -173,10 +173,29 @@ function main(): number {
173
173
  return allErrs.length ? 1 : 0;
174
174
  }
175
175
 
176
- const _isCliEntry =
177
- process.argv[1] !== undefined &&
178
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
179
- if (_isCliEntry || process.argv[1] === _HERE) {
176
+ function _isCliEntry(): boolean {
177
+ if (process.argv[1] === undefined) {
178
+ return false;
179
+ }
180
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
181
+ if (import.meta.url === argvUrl) {
182
+ return true;
183
+ }
184
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
185
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
186
+ // import.meta.url is the resolved real path while argv[1] keeps the
187
+ // symlink path. Compare realpaths so the entry guard still fires
188
+ // (without this the CLI silently no-ops when run through a symlink).
189
+ try {
190
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
191
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
192
+ return here === argv;
193
+ } catch {
194
+ return false;
195
+ }
196
+ }
197
+
198
+ if (_isCliEntry() || process.argv[1] === _HERE) {
180
199
  process.exit(main());
181
200
  }
182
201
 
@@ -428,9 +428,30 @@ function main(argv: string[]): number {
428
428
  return 0;
429
429
  }
430
430
 
431
+ function _isCliEntry(): boolean {
432
+ if (process.argv[1] === undefined) {
433
+ return false;
434
+ }
435
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
436
+ if (import.meta.url === argvUrl) {
437
+ return true;
438
+ }
439
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
440
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
441
+ // import.meta.url is the resolved real path while argv[1] keeps the
442
+ // symlink path. Compare realpaths so the entry guard still fires
443
+ // (without this the CLI silently no-ops when run through a symlink).
444
+ try {
445
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
446
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
447
+ return here === argv;
448
+ } catch {
449
+ return false;
450
+ }
451
+ }
452
+
431
453
  const _IS_MAIN =
432
- process.argv[1] !== undefined &&
433
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
454
+ _isCliEntry();
434
455
 
435
456
  if (_IS_MAIN) {
436
457
  process.exit(main(process.argv.slice(2)));
@@ -255,9 +255,30 @@ function main(argv: string[]): number {
255
255
  return result.status === 'regression' ? 2 : 0;
256
256
  }
257
257
 
258
+ function _isCliEntry(): boolean {
259
+ if (process.argv[1] === undefined) {
260
+ return false;
261
+ }
262
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
263
+ if (import.meta.url === argvUrl) {
264
+ return true;
265
+ }
266
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
267
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
268
+ // import.meta.url is the resolved real path while argv[1] keeps the
269
+ // symlink path. Compare realpaths so the entry guard still fires
270
+ // (without this the CLI silently no-ops when run through a symlink).
271
+ try {
272
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
273
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
274
+ return here === argv;
275
+ } catch {
276
+ return false;
277
+ }
278
+ }
279
+
258
280
  const _IS_MAIN =
259
- process.argv[1] !== undefined &&
260
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
281
+ _isCliEntry();
261
282
 
262
283
  if (_IS_MAIN) {
263
284
  process.exit(main(process.argv.slice(2)));
@@ -15,6 +15,7 @@
15
15
  * 2 — git command failed or not in a git repo
16
16
  */
17
17
  import { execSync } from 'node:child_process';
18
+ import * as fs from 'node:fs';
18
19
  import { fileURLToPath, pathToFileURL } from 'node:url';
19
20
  import * as path from 'node:path';
20
21
 
@@ -57,10 +58,29 @@ function main(argv?: readonly string[]): number {
57
58
  return 1;
58
59
  }
59
60
 
60
- const _isCliEntry =
61
- process.argv[1] !== undefined &&
62
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
63
- if (_isCliEntry || process.argv[1] === _HERE) {
61
+ function _isCliEntry(): boolean {
62
+ if (process.argv[1] === undefined) {
63
+ return false;
64
+ }
65
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
66
+ if (import.meta.url === argvUrl) {
67
+ return true;
68
+ }
69
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
70
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
71
+ // import.meta.url is the resolved real path while argv[1] keeps the
72
+ // symlink path. Compare realpaths so the entry guard still fires
73
+ // (without this the CLI silently no-ops when run through a symlink).
74
+ try {
75
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
76
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
77
+ return here === argv;
78
+ } catch {
79
+ return false;
80
+ }
81
+ }
82
+
83
+ if (_isCliEntry() || process.argv[1] === _HERE) {
64
84
  process.exit(main());
65
85
  }
66
86