/skill-creator
Scaffold, author, and validate an Agent Skill. Use when the user wants to create a new skill, turn a repeatable workflow into a reusable SKILL.md, or fix a skill that fails to load.
$ npx -y skills add stippi/code-assistant --skill skill-creator --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/skill-creator
Context preview
The summary Claude sees to decide when to auto-load this skill.
Scaffold, author, and validate an Agent Skill. Use when the user wants to create a new skill, turn a repeatable workflow into a reusable SKILL.md, or fix a skill that fails to load.
SKILL.md
skill-creator.SKILL.mdname: skill-creator
description: Scaffold, author, and validate an Agent Skill. Use when the user wants to create a new skill, turn a repeatable workflow into a reusable SKILL.md, or fix a skill that fails to load.
Skill Creator
A *skill* is a reusable, task-specific playbook stored as a `SKILL.md` file in a directory named after the skill. Skills are advertised in the system prompt by name + description (progressive disclosure); their full instructions are loaded on demand with the `read_skill` tool.
Use this skill whenever the user asks to create, author, or improve a skill.
1. Choose a scope
A skill lives in one of three scopes. Pick based on how widely it should apply:
- **project** — `<project_root>/.agents/skills/<name>/` — specific to one repo.
Load with `read_skill(project="<project-name>", name="<name>")`; read its resources with `read_files(project="<project-name>", ...)`.
- **user** — `~/.agents/skills/<name>/` — your personal skills, available in
every project (and shared with other agent harnesses). Addressed by the scope token `:config:`; load with `read_skill(project=":config:", ...)`.
- **system** — token `:system:` — bundled skills (like this one). Usually
read-only.
On a name collision, project wins over user wins over system.
2. Write `SKILL.md`
The file MUST start with a YAML frontmatter block delimited by `---` lines, followed by a free-form Markdown body:
---
name: my-skill
description: One-paragraph routing description the model uses to decide when to load this skill.
---
# My Skill
...instructions...
Frontmatter rules (enforced by the loader):
- `name` is required, must be **lowercase letters, digits, and hyphens** only,
at most 64 characters, and must **equal the directory name**.
- `description` is required, at most 1024 characters. Write it as a routing
signal: say *when* to use the skill, not just what it does.
- `disable-model-invocation` (optional, default `false`): when `true`, the
skill is hidden from the model-facing catalog and the `list_skills` tool so the model never auto-invokes it. It stays loadable via `read_skill` (e.g. when a user explicitly activates it) and visible in the settings UI. Use this for skills that should only run on explicit user request.
- Other keys (license, allowed-tools, metadata, etc.) are allowed and ignored
for now.
3. Add resources (optional)
Bundle supporting files under the skill directory and reference them from the body with paths relative to the skill directory:
- `scripts/` — runnable helpers. Prefer running them with `execute_command`
rather than reading them into context.
- `references/` — longer docs to read on demand with `read_files`.
- `assets/` — templates or output skeletons.
Keep `SKILL.md` itself short: it should orchestrate, pointing at the right resource for each sub-task instead of inlining everything.
4. Validate
- The directory name equals `name`.
- Frontmatter parses and `name`/`description` satisfy the rules above.
- Referenced resource paths exist and are relative to the skill directory.
- Load it once with `read_skill` to confirm the body renders as expected.
Template
---
name: <kebab-case-name>
description: Use this skill when <trigger>. It <what it does>.
---
# <Human Title>
## When to use
<one or two sentences>
## Workflow
1. <step>
2. <step>
## Resources
- `references/<doc>.md` — <what it contains>
- `scripts/<tool>` — <what it does> (run with execute_command)
Quality checklist
- Single responsibility: one skill, one job.
- The description is a strong routing signal (the model only sees this until it
loads the skill).
- Progressive disclosure: short body, details in `references/`.
- Deterministic work lives in `scripts/`, not in prose.
Read more
name: skill-creator description: Scaffold, author, and validate an Agent Skill. Use when the user wants to create a new skill, turn a repeatable workflow into a reusable SKILL.md, or fix a skill that fails to load.
Skill Creator
A *skill* is a reusable, task-specific playbook stored as a `SKILL.md` file in a directory named after the skill. Skills are advertised in the system prompt by name + description (progressive disclosure); their full instructions are loaded on demand with the `read_skill` tool.
Use this skill whenever the user asks to create, author, or improve a skill.
1. Choose a scope
A skill lives in one of three scopes. Pick based on how widely it should apply:
- **project** — `<project_root>/.agents/skills/<name>/` — specific to one repo.
Load with `read_skill(project="<project-name>", name="<name>")`; read its resources with `read_files(project="<project-name>", ...)`.
- **user** — `~/.agents/skills/<name>/` — your personal skills, available in
every project (and shared with other agent harnesses). Addressed by the scope token `:config:`; load with `read_skill(project=":config:", ...)`.
- **system** — token `:system:` — bundled skills (like this one). Usually
read-only.
On a name collision, project wins over user wins over system.
2. Write `SKILL.md`
The file MUST start with a YAML frontmatter block delimited by `---` lines, followed by a free-form Markdown body:
--- name: my-skill description: One-paragraph routing description the model uses to decide when to load this skill. --- # My Skill ...instructions...
Frontmatter rules (enforced by the loader):
- `name` is required, must be **lowercase letters, digits, and hyphens** only,
at most 64 characters, and must **equal the directory name**.
- `description` is required, at most 1024 characters. Write it as a routing
signal: say *when* to use the skill, not just what it does.
- `disable-model-invocation` (optional, default `false`): when `true`, the
skill is hidden from the model-facing catalog and the `list_skills` tool so the model never auto-invokes it. It stays loadable via `read_skill` (e.g. when a user explicitly activates it) and visible in the settings UI. Use this for skills that should only run on explicit user request.
- Other keys (license, allowed-tools, metadata, etc.) are allowed and ignored
for now.
3. Add resources (optional)
Bundle supporting files under the skill directory and reference them from the body with paths relative to the skill directory:
- `scripts/` — runnable helpers. Prefer running them with `execute_command`
rather than reading them into context.
- `references/` — longer docs to read on demand with `read_files`.
- `assets/` — templates or output skeletons.
Keep `SKILL.md` itself short: it should orchestrate, pointing at the right resource for each sub-task instead of inlining everything.
4. Validate
- The directory name equals `name`.
- Frontmatter parses and `name`/`description` satisfy the rules above.
- Referenced resource paths exist and are relative to the skill directory.
- Load it once with `read_skill` to confirm the body renders as expected.
Template
--- name: <kebab-case-name> description: Use this skill when <trigger>. It <what it does>. --- # <Human Title> ## When to use <one or two sentences> ## Workflow 1. <step> 2. <step> ## Resources - `references/<doc>.md` — <what it contains> - `scripts/<tool>` — <what it does> (run with execute_command)
Quality checklist
- Single responsibility: one skill, one job.
- The description is a strong routing signal (the model only sees this until it
loads the skill).
- Progressive disclosure: short body, details in `references/`.
- Deterministic work lives in `scripts/`, not in prose.
An open-source AI coding agent, written in Rust, with a native GUI, a terminal mode, and integrations for editors and MCP clients.

