Repository navigation
v2.1.0 — I said production-grade. 30 of them were error messages.
Back in August I tagged v2.0 and called it "315 production-grade skills." Then I actually read all 315 files.
30 of them weren't skills. Their entire body was Full .md body could not be fetched — an error message from a failed import, published as a product. If you installed chief-of-staff or blockchain-security-auditor, that's what you got.
That's the headline, but the quieter problems were worse because you'd never notice them.
What was actually broken
281 skills told Claude to check that their code compiles. Every finance skill. Every education skill. tax-strategist had a checklist item about unhandled promise rejections. One template got stamped across every domain and nobody read the result.
228 descriptions were too long to work. Claude cuts the description at ~250 characters when it's deciding whether to load a skill. Mine averaged 274, and the trigger clause was always the last sentence. So the only part that decides whether a skill fires was the part getting cut off.
180 of those triggers were generated filler. Use when the user asks about tax strategist — nobody types that. People describe a task, not a skill name.
The router pointed at 37 skills that don't exist and missed 210 that do. Its own docs say a stale index makes it "actively harmful." It was right.
What changed
All 30 stubs are written. Real process, real deliverables. The regulated ones (medical billing, loan files, privacy, ESG) say which jurisdiction they need and that a licensed human signs off.
All 315 descriptions rewritten, capability first, triggers inside 250 chars. Skills that overlap now point at each other, so financial-analyst says "Not for budget-vs-actual variance work, use fp-and-a-analyst" and vice versa. Before, whichever fired first was luck.
The checklists match their domain now. A finance skill checks that figures reconcile and assumptions are stated. An education skill checks that you didn't assess something you never taught.
It's installable now
That's the part I should've done first.
/plugin marketplace add prvthmpcypher/skillary
/plugin install skills-finance@skillaryOr for Codex, Cursor, Gemini CLI and about 70 other agents:
npx skills add prvthmpcypher/skills-finance12 categories, install only what you want. The hub is renamed from open-claude-skills to skillary. Old URL redirects.
Why it won't rot again
Everything that used to be hand-maintained is generated: the 315-row index, the router's index, all 13 manifests, all 315 bundles. scripts/validate.py reports zero findings and CI runs it on every push, so a description over 250 chars fails the build.
I tested that by breaking things on purpose. Over-long description fails. Added skill fails the index check. Edited skill fails the bundle check.
CI also caught something I couldn't. Bundles built on my Windows machine embedded CRLF, and I was byte-comparing compressed zips across Python versions. Both passed locally and failed the second they hit Linux.
Still not done
No skill ships scripts/ or assets/ yet. All 315 are instructions, not executable capability. That's the next thing.
One skill from the old gap list, cost-finops-engineer, is still unbuilt.
315 skills, 12 categories, MIT. If a skill doesn't fire when it should, that's a bug now, open an issue.