Review and promote skill drafts that skill-curator staged from past sessions. Use when the user runs /skill-review, says "review my skill drafts", "promote a staged skill", or asks what skills the self-improvement loop proposed. Lists drafts under ~/.claude/skill-proposals/, runs the writing-skills quality bar on each, then promotes the approved ones into ~/.claude/skills/ or rejects them.
Install
npx skillscat add dwarvesf/dwarves-kit/skill-review Install via the SkillsCat registry.
skill-review (the promote gate)
skill-curator's background reviewer stages skill drafts under ~/.claude/skill-proposals/. It
NEVER writes ~/.claude/skills/. This skill is the human gate that promotes a vetted draft into the
live library. bin/skill-review (from lib/skill-curator/, put it on PATH or invoke by its full
path) is the only writer of ~/.claude/skills/.
Flow
List the staged drafts:
skill-review list # tab-separated: <slug>\t<description>If "(no staged drafts)", stop and say so.
For each draft, read
~/.claude/skill-proposals/<slug>/SKILL.mdand vet it. Run thesuperpowers:writing-skillschecklist (this skill does NOT reimplement it , delegate):- Is the name class-level (not a PR number, error string, codename, or today-only artifact)?
- Is the
descriptiona real trigger (what class of task + when), so a future agent matches it? - Is it a genuine reusable pattern, or environment-dependent / a complaint that will rot into a
refusal? Drop the latter. - Secret scan: confirm no token / key / credential is in the body.
promotealso refuses a
draft that still contains one, but check first. - Would this be better as a PATCH to an existing umbrella, or a
references/add, than a new
skill? If so, reject and patch by hand.
Decide per draft (always show the user the draft and your read before acting):
- Approve ->
skill-review promote <slug>(moves it into~/.claude/skills/<slug>/; refuses to
overwrite a live skill without--force). - Reject ->
skill-review reject <slug>(moves it to_rejected/, recoverable, never deleted).
- Approve ->
Report what was promoted vs rejected, and any draft you left staged for the user to decide.
Rules
- Never promote a draft you have not read and vetted against writing-skills.
- Never
--forceoverwrite a live skill without explicitly confirming with the user first. - Promotion is the ONLY path a draft enters
~/.claude/skills/. The reviewer cannot (it runs with
no write tool). Keep it that way. - An optional
auto_promoteconfig knob (default OFF) can auto-pass the lowest-risk class only
(areferences/add to an existing umbrella) viaskill-review auto; everything else is manual.