The plugin's SessionStart hook injected using-agent-skills/SKILL.md as
additionalContext on every session. Claude Code already discovers and
routes skills from their descriptions, so the hook stacks a second
router on the native one — the pattern docs/getting-started.md warns
against ("That creates two routers for the same task"), measured at
~3.5k wasted cache-creation tokens per session in #569.
Delete hooks/hooks.json (the registration; the plugin now ships no
hooks) and keep hooks/session-start.sh as a standalone script for hosts
without native skill routing, matching the fix shape suggested in the
issue. Update the hook header, CONTRIBUTING.md, codex-setup.md, and
gemini-cli-setup.md to match.
- Problem: the CI step skipped the session-start hook test when jq was
missing, turning the whole step into a silent no-op on runners without
jq — the same silently-green shape this PR exists to remove.
- Fix: run hooks/session-start-test.sh unconditionally. The script already
detects jq itself (HAS_JQ) and asserts the hookSpecificOutput envelope on
both code paths, so a jq-less runner now covers the hook's real
jq-missing branch instead of skipping it.
- Verification: test passes with jq present; with jq removed from PATH
(minimal PATH env, command -v jq empty) the hook emits the jq-is-required
envelope and the test still passes; workflow YAML parses clean.
- Problem: session-start-test.sh was not referenced by any workflow, so envelope regressions never failed CI.
- Fix: add a validate-skills step that runs the test and skips when jq is missing.
- Verification: bash hooks/session-start-test.sh → session-start JSON payload OK
#474 changed session-start.sh to the host-required
hookSpecificOutput.hookEventName/additionalContext shape. The
regression test still expected the old {priority, message} payload, so
`bash hooks/session-start-test.sh` fails on current main.
Sabotage: the pre-change test errors with "expected IMPORTANT priority,
got undefined". After this change both the jq and jq-missing paths pass.
Co-Authored-By: Paperclip <noreply@paperclip.ing>