Skills are lazy-loaded, session-scoped, and enforced by glob — the design is specifically about not paying for what you don’t use:
- Lazy: a skill’s full instructions load only when invoked. Until then it costs one line in a listing.
- Session-scoped: once loaded, it stays active for the session — no re-payment per edit.
- Glob-routed: enforcement maps file patterns to skills (e.g. editing
src/frontend/**/*.tsxrequires the frontend skill for your stack). The hook blocks the first write in a domain until the matching skill is loaded, then everything flows.
So the effective cost is one skill load per domain per session — a few hundred lines of instructions in exchange for the agent following your stack’s actual conventions instead of generic habits.
Efficiency tips:
- Load the obvious skills up-front when the task’s domain is known (one batch, no mid-task interruption).
- Don’t preload “just in case” — the block message names exactly which skill to load if the agent wanders into a new domain.