Observed
@tanstack/intent 0.3.6 (also checked 0.3.7 — #214 reworked gate semantics but not this text): the SessionStart hook's injected catalog (additionalContext) tells the agent to "load that full skill guidance with the Intent CLI before proceeding," then lists skills as @scope/pkg#skill ids with descriptions — but no load command appears anywhere in the injected text.
Running ten scripted headless probe sessions (claude -p, Claude Code 2.1.233, claude-sonnet-5) against a package shipping seven skills, we watched sessions receive the catalog and then fail to reach the loader:
- Sessions pattern-matched the
pkg#skill ids to Claude Code's native Skill tool and called it with several name variants (all misses — Intent skills aren't native skills).
- Sessions then hunted for the CLI:
which intent (not on PATH), filesystem searches, ./node_modules/.bin/intent --help.
- Sessions that eventually read the repo's AGENTS.md guidance block found
pnpm dlx @tanstack/intent@latest load <pkg>#<skill> there and recovered; sessions that didn't stalled entirely.
The terminal intent list output already prints a per-skill Load: pnpm dlx @tanstack/intent@latest load <id> line — the hook's catalog text is the one surface that omits it, and it's the surface every session sees first.
Suggestion
In the SessionStart catalog text:
- Name the exact load command — once globally ("Load a skill with:
pnpm dlx @tanstack/intent@latest load <id>") or per skill as intent list does.
- Optionally preempt the observed misroute: a line noting these are not native agent skills and are loaded only via the command above.
Happy to share the session streams if useful.
Observed
@tanstack/intent0.3.6 (also checked 0.3.7 — #214 reworked gate semantics but not this text): the SessionStart hook's injected catalog (additionalContext) tells the agent to "load that full skill guidance with the Intent CLI before proceeding," then lists skills as@scope/pkg#skillids with descriptions — but no load command appears anywhere in the injected text.Running ten scripted headless probe sessions (
claude -p, Claude Code 2.1.233, claude-sonnet-5) against a package shipping seven skills, we watched sessions receive the catalog and then fail to reach the loader:pkg#skillids to Claude Code's native Skill tool and called it with several name variants (all misses — Intent skills aren't native skills).which intent(not on PATH), filesystem searches,./node_modules/.bin/intent --help.pnpm dlx @tanstack/intent@latest load <pkg>#<skill>there and recovered; sessions that didn't stalled entirely.The terminal
intent listoutput already prints a per-skillLoad: pnpm dlx @tanstack/intent@latest load <id>line — the hook's catalog text is the one surface that omits it, and it's the surface every session sees first.Suggestion
In the SessionStart catalog text:
pnpm dlx @tanstack/intent@latest load <id>") or per skill asintent listdoes.Happy to share the session streams if useful.