CLAUDE.md → "Adding a New Skill" is the authoritative checklist. This skill exists to make sure every step actually runs — the session-start loop and the eval cases are the ones most often forgotten.
Read CLAUDE.md's "Adding a New Skill" section now, then execute its steps for logic-<NAME> (ask the user for <NAME> if not in $ARGUMENTS):
skills/logic-<NAME>/SKILL.md— copy the frontmatter shape fromskills/logic-review/SKILL.md(name+description). ThedescriptionMUST include a "Do NOT trigger for:" clause and a "SCOPE … RULE" line distinguishing it from the other skills. Process section = 5–7 numbered items, each citing a guide step. Follow lazy-loading perskills/_shared/common.md§13.skills/logic-<NAME>/logic-<NAME>-guide.md— numbered steps (Step 1, 2, …), each explaining the why, concrete examples over abstractions.commands/logic-<NAME>.md— mirrorcommands/logic-review.md:--- description: <one line> allowed-tools: Skill --- Use the Skill tool to invoke `logic-lens:logic-<NAME>`, then follow its instructions exactly. $ARGUMENTShooks/session-start(CLAUDE.md step 6 — easy to miss) — addlogic-<NAME>to BOTH thefor skill in …loop and the printed skill list:grep -n "for skill in" hooks/session-start- Eval cases (CLAUDE.md step 7 — easy to miss) — add 3–5 content cases to
evals/content/v2/evals-v2.json. Trigger cases underevals/trigger/v2/are optional and only catch description regressions (positive cases always score 0% — see CLAUDE.md → Gotchas). gemini-extension.json— CLAUDE.md says Gemini auto-discovers fromskills/, but the file also enumerates each skill+command undercontribution. If you want that list complete, addlogic-<NAME>entries to bothcontribution.skillsandcontribution.commands. (Not checked byvalidate-repo.sh.)- Validate — run
npm run validateand confirm all checks pass.