@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
@@ -364,10 +364,29 @@ function main(argv?: readonly string[]): number {
364
364
  return 0;
365
365
  }
366
366
 
367
- const _isCliEntry =
368
- process.argv[1] !== undefined &&
369
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
370
- if (_isCliEntry || process.argv[1] === _HERE) {
367
+ function _isCliEntry(): boolean {
368
+ if (process.argv[1] === undefined) {
369
+ return false;
370
+ }
371
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
372
+ if (import.meta.url === argvUrl) {
373
+ return true;
374
+ }
375
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
376
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
377
+ // import.meta.url is the resolved real path while argv[1] keeps the
378
+ // symlink path. Compare realpaths so the entry guard still fires
379
+ // (without this the CLI silently no-ops when run through a symlink).
380
+ try {
381
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
382
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
383
+ return here === argv;
384
+ } catch {
385
+ return false;
386
+ }
387
+ }
388
+
389
+ if (_isCliEntry() || process.argv[1] === _HERE) {
371
390
  try {
372
391
  process.exit(main());
373
392
  } catch (e) {
Binary file
@@ -691,10 +691,29 @@ function _usageError(arg: string): string {
691
691
  );
692
692
  }
693
693
 
694
- const _isCliEntry =
695
- process.argv[1] !== undefined &&
696
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
697
- if (_isCliEntry || process.argv[1] === _HERE) {
694
+ function _isCliEntry(): boolean {
695
+ if (process.argv[1] === undefined) {
696
+ return false;
697
+ }
698
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
699
+ if (import.meta.url === argvUrl) {
700
+ return true;
701
+ }
702
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
703
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
704
+ // import.meta.url is the resolved real path while argv[1] keeps the
705
+ // symlink path. Compare realpaths so the entry guard still fires
706
+ // (without this the CLI silently no-ops when run through a symlink).
707
+ try {
708
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
709
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
710
+ return here === argv;
711
+ } catch {
712
+ return false;
713
+ }
714
+ }
715
+
716
+ if (_isCliEntry() || process.argv[1] === _HERE) {
698
717
  process.exit(main());
699
718
  }
700
719
 
@@ -489,9 +489,28 @@ export function main(argv?: readonly string[]): number {
489
489
  }
490
490
 
491
491
  const _HERE = fileURLToPath(import.meta.url);
492
- const _isCliEntry =
493
- process.argv[1] !== undefined &&
494
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
495
- if (_isCliEntry || process.argv[1] === _HERE) {
492
+ function _isCliEntry(): boolean {
493
+ if (process.argv[1] === undefined) {
494
+ return false;
495
+ }
496
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
497
+ if (import.meta.url === argvUrl) {
498
+ return true;
499
+ }
500
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
501
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
502
+ // import.meta.url is the resolved real path while argv[1] keeps the
503
+ // symlink path. Compare realpaths so the entry guard still fires
504
+ // (without this the CLI silently no-ops when run through a symlink).
505
+ try {
506
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
507
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
508
+ return here === argv;
509
+ } catch {
510
+ return false;
511
+ }
512
+ }
513
+
514
+ if (_isCliEntry() || process.argv[1] === _HERE) {
496
515
  process.exit(main());
497
516
  }
@@ -337,10 +337,29 @@ function _parse_args(argv: readonly string[]): boolean {
337
337
  return quiet;
338
338
  }
339
339
 
340
- const _isCliEntry =
341
- process.argv[1] !== undefined &&
342
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
343
- if (_isCliEntry || process.argv[1] === _HERE) {
340
+ function _isCliEntry(): boolean {
341
+ if (process.argv[1] === undefined) {
342
+ return false;
343
+ }
344
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
345
+ if (import.meta.url === argvUrl) {
346
+ return true;
347
+ }
348
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
349
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
350
+ // import.meta.url is the resolved real path while argv[1] keeps the
351
+ // symlink path. Compare realpaths so the entry guard still fires
352
+ // (without this the CLI silently no-ops when run through a symlink).
353
+ try {
354
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
355
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
356
+ return here === argv;
357
+ } catch {
358
+ return false;
359
+ }
360
+ }
361
+
362
+ if (_isCliEntry() || process.argv[1] === _HERE) {
344
363
  process.exit(main(process.argv.slice(2)));
345
364
  }
346
365
 
@@ -364,10 +364,29 @@ function _pyListRepr(items: readonly string[]): string {
364
364
  return `[${items.map((i) => _pyRepr(i)).join(', ')}]`;
365
365
  }
366
366
 
367
- const _isCliEntry =
368
- process.argv[1] !== undefined &&
369
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
370
- if (_isCliEntry || process.argv[1] === _HERE) {
367
+ function _isCliEntry(): boolean {
368
+ if (process.argv[1] === undefined) {
369
+ return false;
370
+ }
371
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
372
+ if (import.meta.url === argvUrl) {
373
+ return true;
374
+ }
375
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
376
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
377
+ // import.meta.url is the resolved real path while argv[1] keeps the
378
+ // symlink path. Compare realpaths so the entry guard still fires
379
+ // (without this the CLI silently no-ops when run through a symlink).
380
+ try {
381
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
382
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
383
+ return here === argv;
384
+ } catch {
385
+ return false;
386
+ }
387
+ }
388
+
389
+ if (_isCliEntry() || process.argv[1] === _HERE) {
371
390
  process.exit(main());
372
391
  }
373
392
 
@@ -412,9 +412,30 @@ export function main(argv: string[]): number {
412
412
  return lint(policy, quiet);
413
413
  }
414
414
 
415
+ function _isCliEntry(): boolean {
416
+ if (process.argv[1] === undefined) {
417
+ return false;
418
+ }
419
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
420
+ if (import.meta.url === argvUrl) {
421
+ return true;
422
+ }
423
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
424
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
425
+ // import.meta.url is the resolved real path while argv[1] keeps the
426
+ // symlink path. Compare realpaths so the entry guard still fires
427
+ // (without this the CLI silently no-ops when run through a symlink).
428
+ try {
429
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
430
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
431
+ return here === argv;
432
+ } catch {
433
+ return false;
434
+ }
435
+ }
436
+
415
437
  const isCliEntry =
416
- process.argv[1] !== undefined &&
417
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
438
+ _isCliEntry();
418
439
  if (isCliEntry) {
419
440
  process.exit(main(process.argv.slice(2)));
420
441
  }
@@ -343,10 +343,29 @@ export function main(argv?: readonly string[]): number {
343
343
  return 1;
344
344
  }
345
345
 
346
- const _isCliEntry =
347
- process.argv[1] !== undefined &&
348
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
349
- if (_isCliEntry || process.argv[1] === _HERE) {
346
+ function _isCliEntry(): boolean {
347
+ if (process.argv[1] === undefined) {
348
+ return false;
349
+ }
350
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
351
+ if (import.meta.url === argvUrl) {
352
+ return true;
353
+ }
354
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
355
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
356
+ // import.meta.url is the resolved real path while argv[1] keeps the
357
+ // symlink path. Compare realpaths so the entry guard still fires
358
+ // (without this the CLI silently no-ops when run through a symlink).
359
+ try {
360
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
361
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
362
+ return here === argv;
363
+ } catch {
364
+ return false;
365
+ }
366
+ }
367
+
368
+ if (_isCliEntry() || process.argv[1] === _HERE) {
350
369
  process.exit(main());
351
370
  }
352
371
 
@@ -30,7 +30,7 @@
30
30
 
31
31
  import * as fs from 'node:fs';
32
32
  import * as path from 'node:path';
33
- import { pathToFileURL } from 'node:url';
33
+ import { fileURLToPath, pathToFileURL } from 'node:url';
34
34
 
35
35
  import * as sl from './_lib/security_lint.js';
36
36
 
@@ -342,9 +342,28 @@ export function main(argv: readonly string[] | null = null): number {
342
342
  return sl.report(findings, { check_label: 'hidden-unicode' });
343
343
  }
344
344
 
345
- const _isCliEntry =
346
- process.argv[1] !== undefined &&
347
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
348
- if (_isCliEntry) {
345
+ function _isCliEntry(): boolean {
346
+ if (process.argv[1] === undefined) {
347
+ return false;
348
+ }
349
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
350
+ if (import.meta.url === argvUrl) {
351
+ return true;
352
+ }
353
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
354
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
355
+ // import.meta.url is the resolved real path while argv[1] keeps the
356
+ // symlink path. Compare realpaths so the entry guard still fires
357
+ // (without this the CLI silently no-ops when run through a symlink).
358
+ try {
359
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
360
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
361
+ return here === argv;
362
+ } catch {
363
+ return false;
364
+ }
365
+ }
366
+
367
+ if (_isCliEntry()) {
349
368
  process.exitCode = main();
350
369
  }
@@ -300,10 +300,29 @@ export function main(argv?: readonly string[]): number {
300
300
  return lint(args.manifest, args.settings, { strict: args.strict });
301
301
  }
302
302
 
303
- const _isCliEntry =
304
- process.argv[1] !== undefined &&
305
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
306
- if (_isCliEntry || process.argv[1] === _HERE) {
303
+ function _isCliEntry(): boolean {
304
+ if (process.argv[1] === undefined) {
305
+ return false;
306
+ }
307
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
308
+ if (import.meta.url === argvUrl) {
309
+ return true;
310
+ }
311
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
312
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
313
+ // import.meta.url is the resolved real path while argv[1] keeps the
314
+ // symlink path. Compare realpaths so the entry guard still fires
315
+ // (without this the CLI silently no-ops when run through a symlink).
316
+ try {
317
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
318
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
319
+ return here === argv;
320
+ } catch {
321
+ return false;
322
+ }
323
+ }
324
+
325
+ if (_isCliEntry() || process.argv[1] === _HERE) {
307
326
  process.exit(main());
308
327
  }
309
328
 
@@ -346,9 +346,30 @@ export function main(argv: string[]): number {
346
346
  return lint(manifest, strict);
347
347
  }
348
348
 
349
+ function _isCliEntry(): boolean {
350
+ if (process.argv[1] === undefined) {
351
+ return false;
352
+ }
353
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
354
+ if (import.meta.url === argvUrl) {
355
+ return true;
356
+ }
357
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
358
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
359
+ // import.meta.url is the resolved real path while argv[1] keeps the
360
+ // symlink path. Compare realpaths so the entry guard still fires
361
+ // (without this the CLI silently no-ops when run through a symlink).
362
+ try {
363
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
364
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
365
+ return here === argv;
366
+ } catch {
367
+ return false;
368
+ }
369
+ }
370
+
349
371
  const isCliEntry =
350
- process.argv[1] !== undefined &&
351
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
372
+ _isCliEntry();
352
373
  if (isCliEntry) {
353
374
  process.exit(main(process.argv.slice(2)));
354
375
  }
@@ -24,7 +24,8 @@
24
24
  // Usage: ./scripts-run src/scripts/lint_instruction_smuggling [--json]
25
25
 
26
26
  import * as path from 'node:path';
27
- import { pathToFileURL } from 'node:url';
27
+ import * as fs from 'node:fs';
28
+ import { fileURLToPath, pathToFileURL } from 'node:url';
28
29
 
29
30
  import * as sl from './_lib/security_lint.js';
30
31
 
@@ -165,9 +166,28 @@ export function main(argv: readonly string[] | null = null): number {
165
166
  return sl.report(findings, { check_label: 'instruction-smuggling' });
166
167
  }
167
168
 
168
- const _isCliEntry =
169
- process.argv[1] !== undefined &&
170
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
171
- if (_isCliEntry) {
169
+ function _isCliEntry(): boolean {
170
+ if (process.argv[1] === undefined) {
171
+ return false;
172
+ }
173
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
174
+ if (import.meta.url === argvUrl) {
175
+ return true;
176
+ }
177
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
178
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
179
+ // import.meta.url is the resolved real path while argv[1] keeps the
180
+ // symlink path. Compare realpaths so the entry guard still fires
181
+ // (without this the CLI silently no-ops when run through a symlink).
182
+ try {
183
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
184
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
185
+ return here === argv;
186
+ } catch {
187
+ return false;
188
+ }
189
+ }
190
+
191
+ if (_isCliEntry()) {
172
192
  process.exitCode = main();
173
193
  }
@@ -259,6 +259,28 @@ export function main(): number {
259
259
  return 1;
260
260
  }
261
261
 
262
- if (import.meta.url === pathToFileURL(process.argv[1] ?? '').href) {
262
+ function _isCliEntry(): boolean {
263
+ if (process.argv[1] === undefined) {
264
+ return false;
265
+ }
266
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
267
+ if (import.meta.url === argvUrl) {
268
+ return true;
269
+ }
270
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
271
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
272
+ // import.meta.url is the resolved real path while argv[1] keeps the
273
+ // symlink path. Compare realpaths so the entry guard still fires
274
+ // (without this the CLI silently no-ops when run through a symlink).
275
+ try {
276
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
277
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
278
+ return here === argv;
279
+ } catch {
280
+ return false;
281
+ }
282
+ }
283
+
284
+ if (_isCliEntry()) {
263
285
  process.exit(main());
264
286
  }
@@ -346,10 +346,29 @@ function _pyReprValue(v: unknown): string {
346
346
  return String(v);
347
347
  }
348
348
 
349
- const _isCliEntry =
350
- process.argv[1] !== undefined &&
351
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
352
- if (_isCliEntry || process.argv[1] === _HERE) {
349
+ function _isCliEntry(): boolean {
350
+ if (process.argv[1] === undefined) {
351
+ return false;
352
+ }
353
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
354
+ if (import.meta.url === argvUrl) {
355
+ return true;
356
+ }
357
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
358
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
359
+ // import.meta.url is the resolved real path while argv[1] keeps the
360
+ // symlink path. Compare realpaths so the entry guard still fires
361
+ // (without this the CLI silently no-ops when run through a symlink).
362
+ try {
363
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
364
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
365
+ return here === argv;
366
+ } catch {
367
+ return false;
368
+ }
369
+ }
370
+
371
+ if (_isCliEntry() || process.argv[1] === _HERE) {
353
372
  process.exit(main());
354
373
  }
355
374
 
@@ -21,7 +21,7 @@
21
21
  */
22
22
  import fs from "node:fs";
23
23
  import path from "node:path";
24
- import { pathToFileURL } from "node:url";
24
+ import { fileURLToPath, pathToFileURL } from "node:url";
25
25
 
26
26
  const ROOT = ".";
27
27
  const MARKETPLACE = path.join(ROOT, ".claude-plugin", "marketplace.json");
@@ -272,9 +272,30 @@ function relPosix(child: string, base: string): string {
272
272
  return path.relative(base, child).split(path.sep).join("/");
273
273
  }
274
274
 
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
+
275
297
  const isCliEntry =
276
- process.argv[1] !== undefined &&
277
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
298
+ _isCliEntry();
278
299
  if (isCliEntry) {
279
300
  try {
280
301
  process.exit(main());
@@ -288,10 +288,29 @@ function main(argv?: readonly string[]): number {
288
288
  }
289
289
  }
290
290
 
291
- const _isCliEntry =
292
- process.argv[1] !== undefined &&
293
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
294
- if (_isCliEntry || process.argv[1] === _HERE) {
291
+ function _isCliEntry(): boolean {
292
+ if (process.argv[1] === undefined) {
293
+ return false;
294
+ }
295
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
296
+ if (import.meta.url === argvUrl) {
297
+ return true;
298
+ }
299
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
300
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
301
+ // import.meta.url is the resolved real path while argv[1] keeps the
302
+ // symlink path. Compare realpaths so the entry guard still fires
303
+ // (without this the CLI silently no-ops when run through a symlink).
304
+ try {
305
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
306
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
307
+ return here === argv;
308
+ } catch {
309
+ return false;
310
+ }
311
+ }
312
+
313
+ if (_isCliEntry() || process.argv[1] === _HERE) {
295
314
  process.exit(main());
296
315
  }
297
316
 
@@ -20,7 +20,8 @@
20
20
  // Usage: ./scripts-run src/scripts/lint_mcp_config_security [--json]
21
21
 
22
22
  import * as path from 'node:path';
23
- import { pathToFileURL } from 'node:url';
23
+ import * as fs from 'node:fs';
24
+ import { fileURLToPath, pathToFileURL } from 'node:url';
24
25
 
25
26
  import * as sl from './_lib/security_lint.js';
26
27
 
@@ -217,9 +218,28 @@ export function main(argv: readonly string[] | null = null): number {
217
218
  return sl.report(findings, { check_label: 'mcp-config-security' });
218
219
  }
219
220
 
220
- const _isCliEntry =
221
- process.argv[1] !== undefined &&
222
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
223
- if (_isCliEntry) {
221
+ function _isCliEntry(): boolean {
222
+ if (process.argv[1] === undefined) {
223
+ return false;
224
+ }
225
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
226
+ if (import.meta.url === argvUrl) {
227
+ return true;
228
+ }
229
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
230
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
231
+ // import.meta.url is the resolved real path while argv[1] keeps the
232
+ // symlink path. Compare realpaths so the entry guard still fires
233
+ // (without this the CLI silently no-ops when run through a symlink).
234
+ try {
235
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
236
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
237
+ return here === argv;
238
+ } catch {
239
+ return false;
240
+ }
241
+ }
242
+
243
+ if (_isCliEntry()) {
224
244
  process.exitCode = main();
225
245
  }
@@ -332,10 +332,29 @@ function main(argv: readonly string[]): number {
332
332
  return 0;
333
333
  }
334
334
 
335
- const _isCliEntry =
336
- process.argv[1] !== undefined &&
337
- import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href;
338
- if (_isCliEntry || process.argv[1] === _HERE) {
335
+ function _isCliEntry(): boolean {
336
+ if (process.argv[1] === undefined) {
337
+ return false;
338
+ }
339
+ const argvUrl = pathToFileURL(path.resolve(process.argv[1])).href;
340
+ if (import.meta.url === argvUrl) {
341
+ return true;
342
+ }
343
+ // A symlinked invocation (e.g. via an installed `.augment/` projection,
344
+ // or macOS /var → /private/var temp dirs) makes the raw URLs differ:
345
+ // import.meta.url is the resolved real path while argv[1] keeps the
346
+ // symlink path. Compare realpaths so the entry guard still fires
347
+ // (without this the CLI silently no-ops when run through a symlink).
348
+ try {
349
+ const here = fs.realpathSync(fileURLToPath(import.meta.url));
350
+ const argv = fs.realpathSync(path.resolve(process.argv[1]));
351
+ return here === argv;
352
+ } catch {
353
+ return false;
354
+ }
355
+ }
356
+
357
+ if (_isCliEntry() || process.argv[1] === _HERE) {
339
358
  process.exit(main(process.argv.slice(2)));
340
359
  }
341
360
 
@@ -214,10 +214,29 @@ function main(): number {
214
214
  return 0;
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