@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
@@ -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
 
@@ -1001,10 +1001,29 @@ function _setDifference(a: Set<string>, b: Set<string>): string[] {
1001
1001
  return out;
1002
1002
  }
1003
1003
 
1004
- const _isCliEntry =
1005
- process.argv[1] !== undefined &&
1006
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
1007
- if (_isCliEntry || process.argv[1] === _HERE) {
1004
+ function _isCliEntry(): boolean {
1005
+ if (process.argv[1] === undefined) {
1006
+ return false;
1007
+ }
1008
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
1009
+ if (import.meta.url === argvUrl) {
1010
+ return true;
1011
+ }
1012
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
1013
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
1014
+ // import.meta.url is the resolved real path while argv[1] keeps the
1015
+ // symlink path. Compare realpaths so the entry guard still fires
1016
+ // (without this the CLI silently no-ops when run through a symlink).
1017
+ try {
1018
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
1019
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
1020
+ return here === argv;
1021
+ } catch {
1022
+ return false;
1023
+ }
1024
+ }
1025
+
1026
+ if (_isCliEntry() || process.argv[1] === _HERE) {
1008
1027
  process.exitCode = lint();
1009
1028
  }
1010
1029
 
@@ -193,10 +193,29 @@ function main(): number {
193
193
  return 0;
194
194
  }
195
195
 
196
- const _isCliEntry =
197
- process.argv[1] !== undefined &&
198
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
199
- if (_isCliEntry || process.argv[1] === _HERE) {
196
+ function _isCliEntry(): boolean {
197
+ if (process.argv[1] === undefined) {
198
+ return false;
199
+ }
200
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
201
+ if (import.meta.url === argvUrl) {
202
+ return true;
203
+ }
204
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
205
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
206
+ // import.meta.url is the resolved real path while argv[1] keeps the
207
+ // symlink path. Compare realpaths so the entry guard still fires
208
+ // (without this the CLI silently no-ops when run through a symlink).
209
+ try {
210
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
211
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
212
+ return here === argv;
213
+ } catch {
214
+ return false;
215
+ }
216
+ }
217
+
218
+ if (_isCliEntry() || process.argv[1] === _HERE) {
200
219
  process.exit(main());
201
220
  }
202
221
 
@@ -352,10 +352,29 @@ function main(argv: readonly string[] = []): number {
352
352
  return 0;
353
353
  }
354
354
 
355
- const _isCliEntry =
356
- process.argv[1] !== undefined &&
357
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
358
- if (_isCliEntry || process.argv[1] === _HERE) {
355
+ function _isCliEntry(): boolean {
356
+ if (process.argv[1] === undefined) {
357
+ return false;
358
+ }
359
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
360
+ if (import.meta.url === argvUrl) {
361
+ return true;
362
+ }
363
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
364
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
365
+ // import.meta.url is the resolved real path while argv[1] keeps the
366
+ // symlink path. Compare realpaths so the entry guard still fires
367
+ // (without this the CLI silently no-ops when run through a symlink).
368
+ try {
369
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
370
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
371
+ return here === argv;
372
+ } catch {
373
+ return false;
374
+ }
375
+ }
376
+
377
+ if (_isCliEntry() || process.argv[1] === _HERE) {
359
378
  try {
360
379
  process.exit(main(process.argv.slice(2)));
361
380
  } catch (e) {
@@ -290,10 +290,29 @@ function main(argv?: readonly string[]): number {
290
290
  return lint(args);
291
291
  }
292
292
 
293
- const _isCliEntry =
294
- process.argv[1] !== undefined &&
295
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
296
- if (_isCliEntry || process.argv[1] === _HERE) {
293
+ function _isCliEntry(): boolean {
294
+ if (process.argv[1] === undefined) {
295
+ return false;
296
+ }
297
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
298
+ if (import.meta.url === argvUrl) {
299
+ return true;
300
+ }
301
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
302
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
303
+ // import.meta.url is the resolved real path while argv[1] keeps the
304
+ // symlink path. Compare realpaths so the entry guard still fires
305
+ // (without this the CLI silently no-ops when run through a symlink).
306
+ try {
307
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
308
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
309
+ return here === argv;
310
+ } catch {
311
+ return false;
312
+ }
313
+ }
314
+
315
+ if (_isCliEntry() || process.argv[1] === _HERE) {
297
316
  process.exit(main());
298
317
  }
299
318
 
@@ -610,10 +610,29 @@ export function main(argv?: string[]): number {
610
610
  return 0;
611
611
  }
612
612
 
613
- const _isCliEntry =
614
- process.argv[1] !== undefined &&
615
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
616
- if (_isCliEntry || process.argv[1] === _HERE) {
613
+ function _isCliEntry(): boolean {
614
+ if (process.argv[1] === undefined) {
615
+ return false;
616
+ }
617
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
618
+ if (import.meta.url === argvUrl) {
619
+ return true;
620
+ }
621
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
622
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
623
+ // import.meta.url is the resolved real path while argv[1] keeps the
624
+ // symlink path. Compare realpaths so the entry guard still fires
625
+ // (without this the CLI silently no-ops when run through a symlink).
626
+ try {
627
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
628
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
629
+ return here === argv;
630
+ } catch {
631
+ return false;
632
+ }
633
+ }
634
+
635
+ if (_isCliEntry() || process.argv[1] === _HERE) {
617
636
  process.exitCode = main();
618
637
  }
619
638
 
@@ -229,10 +229,29 @@ function main(argv: readonly string[]): number {
229
229
  return 0;
230
230
  }
231
231
 
232
- const _isCliEntry =
233
- process.argv[1] !== undefined &&
234
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
235
- if (_isCliEntry || process.argv[1] === _HERE) {
232
+ function _isCliEntry(): boolean {
233
+ if (process.argv[1] === undefined) {
234
+ return false;
235
+ }
236
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
237
+ if (import.meta.url === argvUrl) {
238
+ return true;
239
+ }
240
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
241
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
242
+ // import.meta.url is the resolved real path while argv[1] keeps the
243
+ // symlink path. Compare realpaths so the entry guard still fires
244
+ // (without this the CLI silently no-ops when run through a symlink).
245
+ try {
246
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
247
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
248
+ return here === argv;
249
+ } catch {
250
+ return false;
251
+ }
252
+ }
253
+
254
+ if (_isCliEntry() || process.argv[1] === _HERE) {
236
255
  process.exitCode = main(process.argv.slice(2));
237
256
  }
238
257