Do skills cost context on every request? How skill enforcement stays cheap

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/**/*.tsx requires 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.