The master builder for Claude skills — one Agent Skill that creates, tunes, splits, audits, and researches domain context so you can ship elite skills for any topic without guessing the spec.
It practices what it preaches: a lean SKILL.md router that loads deep knowledge only when the job needs it (progressive disclosure), so it stays light on context while still knowing everything.
v1.1.0 · mid-2026 spec · MIT · changelog
Paste one of these into Claude Code — the skill should pick itself up from the description alone:
| You want… | Try saying |
|---|---|
| Something new | "Build me a skill for reviewing Terraform PRs" |
| Better triggering | "My skill never fires — fix the description and eval it" |
| Slim it down | "This SKILL.md is 800 lines — refactor it with progressive disclosure" |
| A gut-check | "Audit this plugin against the live spec" |
| Unknown domain | "Create a skill for X — research official docs first, cite sources" |
If nothing happens, the description is probably the culprit. This skill will tell you why (invariant #1).
flowchart TD
A[What do you need?] --> B{Starting from scratch?}
B -->|yes| C[playbooks/create.md]
B -->|no| D{Skill too big / always loaded?}
D -->|yes| E[playbooks/refactor.md]
D -->|no| F{Won't trigger / weak quality?}
F -->|yes| G[playbooks/optimize.md]
F -->|no| H{Need a rubric pass?}
H -->|yes| I[playbooks/audit.md]
H -->|no| J{Missing domain facts?}
J -->|yes| K[playbooks/research-augment.md]
J -->|no| L[SKILL.md invariants + references/]
C --> M[Chain: research → audit before ship]
G --> M
Real work often chains playbooks: create → research-augment (unknown domain) → audit (before ship). Load one playbook at a time — never the whole library at once.
Claude Code — symlink or copy this repo into your skills folder:
ln -s "$PWD" ~/.claude/skills/skill-architectThat's it. Next session, ask for a skill and watch it route.
Plugin / marketplace install
This repo ships a .claude-plugin/plugin.json manifest. Install via your plugin channel of choice, or point Claude Code at the repo — skills, hooks, and commands live at the plugin root, not inside .claude-plugin/ (invariant #10).
| Layer | Role | Load when… |
|---|---|---|
SKILL.md |
Router + 15 non-negotiable invariants | Always (when the skill is active) |
playbooks/ |
Procedures — what to do | One job at a time |
references/ |
Facts — what is true | One topic at a time |
assets/templates/ |
Starters for new artifacts | Creating something new |
evals/ |
Smoke evals for this skill | Optimizing / CI |
| File | Job |
|---|---|
playbooks/create.md |
Author a new skill / plugin / subagent / hook / slash command |
playbooks/optimize.md |
Tune triggering and quality (description + evals) |
playbooks/refactor.md |
Split and slim a bloated skill |
playbooks/audit.md |
Full rubric review |
playbooks/research-augment.md |
Find missing context from official sources before writing |
| File | Answers |
|---|---|
references/frontmatter.md |
Field meanings, exact limits, quoting traps |
references/loading-and-context.md |
Three-tier loading, token economics, compaction |
references/descriptions.md |
Triggering theory + writing + eval splits |
references/structure.md |
Multi-file layout, router pattern, scripts |
references/power-features.md |
Hooks, !cmd, fork, allowed-tools, subagents |
references/environments.md |
Claude Code vs Claude.ai portability |
references/packaging.md |
plugin.json, marketplace, install scopes |
references/anti-patterns.md |
Fast do-not checklist |
references/troubleshooting.md |
Broken / won't load / won't fire |
Violate these and the skill silently fails — no error, just nothing happening.
Click to expand — or read the full story in SKILL.md
descriptionis the only trigger — third person, concrete, use-case first.- Hard limits —
name≤ 64;description≤ 1024; combined withwhen_to_use≤ 1536. SKILL.md≤ 500 lines total — every line costs tokens every active turn.- References one level deep —
references/foo.md✓, nested ✗. - Never prefix
claude-oranthropic-— validator passes, runtime drops. - Quote bare numbers in YAML —
123becomes an int and crashes. disable-model-invocation: trueremoves description from context entirely.context: forkwithout a task in the body returns nothing.!commandinjection only works at line start or after whitespace.- Plugin layout — only
plugin.jsonin.claude-plugin/. - Hooks must exit 0 — crashed hook blocks the user's tool call.
- Claude.ai ≠ Claude Code — know your target before leaning on power features.
- Slash commands — name comes from the directory, not
namefield. - Subagents don't nest — fan-out at top level, one turn.
- Don't guess domains — research, verify, cite.
Facts are current as of mid-2026 and cite sources; the spec moves. When limits matter, confirm at the source (playbooks/research-augment.md).
From repo root:
./scripts/check.shRuns JSON validation, markdownlint, scripts/check_consistency.py (frontmatter, router fidelity, orphans, paths, stale terms), and ruff on scripts/*.py.
First-time setup for checks
npm install
python3 -m venv .venv && .venv/bin/pip install -r scripts/requirements-check.txtnode_modules/, .venv/, .tools/, and .ruff_cache/ are gitignored but dev tooling in scripts/ and package.json is committed and ships with the skill payload.
MIT — see LICENSE.
Built by @voidfreud. If this skill saved you from a silent claude- prefix trap, you're welcome.