Creates one new skill in 64x-lunicorn. skill-creator does the drafting and testing; this skill decides whether a skill is warranted and holds it to the repo's rules. skill-creator is only ever used through this skill.
0. Check project setup
Read .claude/64x-lunicorn.yml in the project root, then go on with step 1 in every case; the notice informs, it does not block:
- File missing: print
Project setup missing. Run /64x-lunicorn:setup-project. setup_versionbelow 3: printProject setup outdated. Re-run /64x-lunicorn:setup-project.
1. Gate
A skill is warranted by exactly one of:
- an entry in
inbox.mdwith Count: 3× or more, or - a gap Daniel names explicitly, where the repo's own process or his development skill set is missing a step.
It also has to fit the plugin: it serves developing products (domain to spec to tickets, code, security, CI/CD, operation) and applies across projects. Project-specific material stays in that project's .claude/.
When the evidence is below 3×, record or raise the inbox entry verbatim, in the language it was given in, and stop.
Done when the evidence is quoted back to Daniel, or the inbox entry is written and the run has stopped.
2. Existing skills
List skills/ and read the descriptions. When an own skill already covers the job, extend that skill with write-skill instead of creating a second one.
Done when it is clear that no own skill covers the job.
3. Shape
Apply steps 1 and 2 of write-skill: the one-sentence test, invocation, category and name. Present the sentence, name, category and invocation to Daniel and wait for his go.
When the name needs a verb that is not in SKILL_NAME_VERBS, propose it to Daniel. Once he agrees, add it test first: fixture under tools/validator/fixtures/sk006/, failing test, then conventions.ts and the verb list in ADR 0002.
Done when Daniel has confirmed the shape.
4. Draft and test with skill-creator
Invoke skill-creator for the drafting and eval loop, with these repo rules taking precedence over its defaults:
- The skill lives at
skills/<category>/<name>/SKILL.md, not in a separate workspace or.skillpackage. - Eval prompts go to
evals/<name>/<case>/prompt.md, one realistic prompt per case. Workspaces, benchmark files and viewer output go to the scratchpad and never into the repo. - Everything in the skill is English. Inbox quotes stay in their original language.
- The text of the
SKILL.mdfollowswrite-skill, which replacesskill-creator's own writing guide. - Runs with subagents and description optimisation start only when Daniel asks for them; offer them once the draft stands.
Done when the SKILL.md and at least one eval case exist and Daniel has seen the draft.
5. Wire up
- Add the path to
skillsin.claude-plugin/plugin.json. - Add a row to the skills table in
README.md. - When the skill was harvested from the inbox, remove that entry in the same change.
npm testandnpm run validatepass.- Add a changeset with
npx changeset. Ask Daniel for the bump; he sets the release version. - Commit with
write-commit-messageon a branch, never onmain.
Done when the validator is green, the changeset exists and the commit is on a branch.