newskilllisted
Install: claude install-skill duthaho/skillhub
# newskill — add a skill without drift
`/newskill scaffold <name> "<description>" <category>` — create a new skill, registered
`/newskill fix [<name>]` — complete a skill that exists in some surfaces but not others
A skillhub skill lives in **four surfaces**, and it is only really "added" when
all four agree:
1. **Folder** — `.claude/skills/<name>/SKILL.md` with valid frontmatter.
2. **README table row** — a row in the right category table (a prose mention
does *not* count; the validator checks for a table row specifically).
3. **Marketplace** — `<name>` listed in one plugin's `skills[]` in
`.claude-plugin/marketplace.json`.
4. **Trigger evals** — cases in `evals/triggers.json` (model-invoked skills
only; user-invoked skills are exempt).
**Drift** is these four disagreeing — the default failure of hand-adding a
skill. The oracle for drift is `python3 scripts/validate-skills.py`: it already
reports which surfaces are missing. This skill's whole job is to make the four
agree and leave the validator green.
## The loop (both modes end here)
Run `python3 scripts/validate-skills.py` → read each FAIL/WARN → fix that exact
surface → re-run. Repeat until **no FAIL**. Never assert done from memory; the
validator is cheap and authoritative.
## Mode: scaffold
Adding a brand-new skill from a name + description + category.
1. **Guard.** If `.claude/skills/<name>/` already exists, **stop** — this is a
`fix`, not a scaffold; never overwrite an existing `SKILL.md`. Also r