claude skills description field is what actually determines if your skill works or not
been using claude skills for a while now and a few things tripped me up that i didn't see mentioned anywhere so putting them here.
the description field is everything. i kept building skills that weren't triggering and every single time it came back to a vague description. claude reads that field to decide whether to load the skill or not. if it's too generic it never fires, if it's too broad it fires when you don't want it to. i spent way more time than i should have tweaking the actual instructions when the real problem was one sentence at the top.
there's also a 200 character limit on that field. roughly two sentences. if you don't know it exists you'll write something longer, it gets cut off silently, and the skill behaves unpredictably.
a few other things worth knowing:
if your skill isn't triggering after upload, check if code execution is enabled in settings. custom skills need it on. wasted time debugging a perfectly fine skill because of this.
disable-model-invocation in the frontmatter does nothing on Claude AI web interface. it's claude code only. if you add it thinking it'll stop auto-triggering on the web it just silently ignores it.
when zipping the skill, zip the folder not the contents. loose Skill MD at the zip root doesn't work. the folder needs to wrap it.
and skills vs projects, worth being clear on before you start building. skills load automatically across every conversation. projects are scoped to one ongoing context. people mix these up and then wonder why behavior is inconsistent.