Scaffold a new skill that follows this repo's conventions — interviews for purpose, trigger phrases, and tool needs, then writes `.claude/skills/<name>/SKILL.md` from the skill template with frontmatter and body that pass the integrity gates on first try. Use when user says "write a skill", "scaffold a skill", "create a new skill", "I keep doing X, make it a skill", "new slash command", or "turn this workflow into a skill". NOT for capturing a one-off session discovery — that is `/learn`.
npx skills add https://github.com/pedrohcgs/claude-code-my-workflow --skill new-skill
Scaffold a new skill the way this template's gold-standard skills are written: a deep module behind a simple interface (Ousterhout, *A Philosophy of Software Design* — "deep modules": a small surface that hides substantial implementation). The user supplies a fuzzy intent; this skill interviews it into a tight spec, then writes .claude/skills/<name>/SKILL.md with frontmatter and body that are mutually consistent — so check-skill-integrity.py and check-surface-sync.sh pass without a second pass.
Adapted from the *write-a-skill* pattern in mattpocock/skills, reshaped to this repo's frontmatter, section, and gate conventions.
.claude/skills/ — same sections, same cross-reference style, same gate-passing frontmatter.Use /learn instead when you just discovered something non-obvious *this session* and want it preserved — /learn captures a discovery; /new-skill deliberately designs an interface. With --from-learn, this skill upgrades a /learn-shaped stub into a full convention-compliant skill.
$0 (or ask). Reject non-kebab-case, names that collide with an existing .claude/skills/<name>/, or names that shadow a built-in (commit, learn, …) — ls .claude/skills/ and stop if taken.templates/skill-template.md for the canonical structure and the frontmatter-field reference.Glob .claude/skills/*/SKILL.md, then Read the closest matches) so the new skill borrows real conventions, not invented ones.A skill cannot stop to ask mid-write, so gather all interactivity up front (the orchestrator-protocol.md RUN_CONFIG discipline). Ask, in one batch:
description's "Use when…" clause and are what makes the skill auto-discoverable.--token).Bash? fan out to a subagent (the Task tool)? hit the web via WebSearch/WebFetch? Only declare what it actually uses.Echo a one-paragraph design brief back for confirmation before writing.
Write .claude/skills/<name>/SKILL.md from the template, with these gold-standard sections:
name, description (third person, with the quoted trigger phrases), argument-hint, allowed-tools, effort. Add disable-model-invocation: true if it writes a persistent, load-bearing file (template's "when to disable" rule).check-skill-integrity.py enforces two parities this phase must satisfy (.claude/scripts/ hosts the gate runners; scripts/check-skill-integrity.py is the checker):
argument-hint MUST appear in the body as a bare-backticked token, and every flag documented in the body MUST appear in argument-hint. So --from-learn and --dry-run are listed in the hint *and* described under ## Flags. A stale hint flag fails the gate as surely as a missing one.allowed-tools. If a phase fans out to a subagent (the Task tool), that tool must be in the list; if it never does, do not list it. This skill lists exactly Read, Write, Glob, Grep, Bash — the tools its phases use, and no subagent fan-out.text links must resolve — only link to headings that exist.Run python3 scripts/check-skill-integrity.py --verbose and fix any P0/P1 before declaring done.
The skill is NOT discoverable to a reader until it is listed. check-surface-sync.sh runs a table-row gate: the <!-- surface-sync-table: skills --> tables in README.md and CLAUDE.md must have exactly one data row per skill on disk. Adding a skill without a row fails the gate.
REMIND the user to:
| /<name> [args] | <what it does> | . | /<name> | <what it does> | ../scripts/check-surface-sync.sh and python3 scripts/check-skill-integrity.py — both must exit 0.Print the two ready-to-paste rows so the user can drop them in.
.claude/skills/<name>/SKILL.md.--dry-run: emit the proposed SKILL.md to chat only and write nothing.check-skill-integrity.py reports P0/P1: fix in-place and re-run before returning; never hand back a skill that fails its own gate.--dry-run: print the draft, write nothing, exit 0.--from-learn — Seed the interview from an existing /learn-style stub (or the current session's discovery) and upgrade it into a full convention-compliant skill rather than starting blank.--dry-run — Produce the SKILL.md content in chat for review without writing it to disk or touching any surface table.templates/skill-template.md — the canonical structure, frontmatter-field reference, and the "when to set disable-model-invocation" rule this skill follows..claude/skills/learn/SKILL.md — capture a session discovery (the lighter sibling); --from-learn upgrades its output..claude/skills/coauthor-brief/SKILL.md — a gold-standard skill to imitate (interview → write → flags → exit-behavior shape)..claude/rules/orchestrator-protocol.md — why the interview collects all interactivity *before* writing..claude/scripts/ and scripts/check-skill-integrity.py / scripts/check-surface-sync.sh — the gates this skill is built to pass on the first try./learn. This skill designs an interface; /learn records a finding../scripts/check-surface-sync.sh) is a deliberate human step so the surface gate is never silently satisfied..claude/agents/, a rule in .claude/rules/./commit's job.Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
Replace with description of the skill and when Claude should use it.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
This skill should be used when the user wants to "create a skill", "add a skill to plugin", "write a new skill", "improve skill description", "organize skill content", or needs guidance on skill structure, progressive disclosure, or skill development best practices for Claude Code plugins.
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Take pedrohcgs/new-skill from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.