Adding a skill is eight manual steps: create the folder, write SKILL.md with valid frontmatter, write README.md, update the table in skills/README.md, update the main README, add a case to evals/routing.tsv, run the validator, run the routing check.
validate-skills.sh fails if any of the mechanical ones are missed, which is the right behaviour but means the first thing a contributor sees can be a red build over a missing table row.
Proposal
scripts/new-skill.sh <skill-name>, following the conventions in docs/SCRIPTS.md, creating:
skills/<name>/SKILL.md with valid frontmatter, the name already matching the directory, license: MIT, and a description stub that carries a reminder to name the boundary with neighbouring skills
skills/<name>/README.md from the shape the existing ones share
- a row in the table in
skills/README.md
- a case in
evals/routing.tsv, with a placeholder prompt that has to be replaced
Then it runs validate-skills.sh and prints what is left to do by hand, which is the content and the routing prompt.
The contributor writes a skill instead of assembling scaffolding, and the parts that a validator can check are correct before the first commit.
Worth deciding
Whether the description stub should be left obviously incomplete, so the validator's short-description warning fires until someone writes a real one, or prefilled with something plausible that might survive to review unnoticed. The first is more annoying and probably better.
Adding a skill is eight manual steps: create the folder, write
SKILL.mdwith valid frontmatter, writeREADME.md, update the table inskills/README.md, update the main README, add a case toevals/routing.tsv, run the validator, run the routing check.validate-skills.shfails if any of the mechanical ones are missed, which is the right behaviour but means the first thing a contributor sees can be a red build over a missing table row.Proposal
scripts/new-skill.sh <skill-name>, following the conventions indocs/SCRIPTS.md, creating:skills/<name>/SKILL.mdwith valid frontmatter, thenamealready matching the directory,license: MIT, and a description stub that carries a reminder to name the boundary with neighbouring skillsskills/<name>/README.mdfrom the shape the existing ones shareskills/README.mdevals/routing.tsv, with a placeholder prompt that has to be replacedThen it runs
validate-skills.shand prints what is left to do by hand, which is the content and the routing prompt.The contributor writes a skill instead of assembling scaffolding, and the parts that a validator can check are correct before the first commit.
Worth deciding
Whether the description stub should be left obviously incomplete, so the validator's short-description warning fires until someone writes a real one, or prefilled with something plausible that might survive to review unnoticed. The first is more annoying and probably better.