resources/bundled-skills/create-skill/SKILL.md
Create new Claude Code skills with best practices. Use when the user wants to create, build, or develop a new skill, or when they mention SKILL.md, skill creation, or custom commands.
npx skillsauth add sterll/claude-terminal create-skillInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill guides you through creating high-quality Claude Code skills following Anthropic's best practices and prompt engineering principles.
When creating a new skill:
Ask the user:
~/.claude/skills/{skill-name}/
├── SKILL.md # Required: Main instructions
├── reference.md # Optional: Detailed documentation
├── examples.md # Optional: Usage examples
└── scripts/ # Optional: Utility scripts
└── helper.py
Location Guide:
| Location | Path | Scope |
|:---------|:-----|:------|
| Personal | ~/.claude/skills/ | All your projects |
| Project | .claude/skills/ | Current repository |
Use this template:
---
name: skill-name
description: [Specific description with keywords for auto-discovery. Describe WHAT it does and WHEN to use it.]
user-invocable: true
allowed-tools: [Optional: Tool restrictions]
---
# Skill Title
## Quick Start
[Essential instructions - what Claude needs to know immediately]
## Workflow
[Step-by-step process]
## Examples
[Concrete input/output examples]
## Advanced Features
For detailed reference, see [reference.md](reference.md).
<good_description> description: Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction. </good_description>
<bad_description> description: Helps with documents </bad_description>
Rules:
<progressive_disclosure>
<consistent_terminology>
<explicit_instructions> Be direct and explicit. Tell Claude exactly what to do.
LESS EFFECTIVE: "Handle errors appropriately" MORE EFFECTIVE: "Catch exceptions, log the error message, and return a structured error response with status code and message." </explicit_instructions>
<provide_context> Explain WHY, not just WHAT.
LESS EFFECTIVE: "Always validate input" MORE EFFECTIVE: "Validate input because this data comes from external users and could contain malicious content or unexpected formats." </provide_context>
<use_examples> Show concrete input/output pairs:
Example: Input: User request to format date Output:
const formatted = new Intl.DateTimeFormat('en-US').format(date);
</use_examples>
<xml_tags> Use XML tags for structured sections - Claude is fine-tuned to respond to them:
<task>Description</task>
<constraints>Limits</constraints>
<output_format>Expected format</output_format>
</xml_tags>
| Level | When to Use | Example | |:------|:------------|:--------| | High | Multiple approaches valid | General code review guidance | | Medium | Preferred pattern exists | Template with customization | | Low | Consistency critical | Exact script sequences |
allowed-tools: Read, Grep, Glob, Bash(python:*)
Common patterns:
Read, Grep, GlobRead, Bash(python:*)allowed-tools---
name: skill-name # Required: Unique identifier
description: Description here # Required: For auto-discovery
user-invocable: true # Optional: Show in slash menu (default: true)
disable-model-invocation: false # Optional: Block Skill tool (default: false)
allowed-tools: Read, Grep # Optional: Restrict available tools
context: fork # Optional: Run in isolated context
agent: Explore # Optional: Use specific agent type
hooks: # Optional: Lifecycle hooks
PreToolUse:
- matcher: "Bash"
hooks:
- type: command
command: "./check.sh"
---
After creating the skill:
/skill-name directly1. Run validation: `script validate input`
2. Review results
3. Fix any issues
4. Re-validate until passing
## Workflow
1. [First step]
2. [Second step]
3. [Verification step]
4. [Final step]
## Scripts
- `scripts/analyze.py` - Analyzes input
- `scripts/process.py` - Processes data
- `scripts/validate.py` - Validates output
Run scripts, don't load their contents into context.
For detailed examples and advanced patterns, see:
tools
Create Claude Code agents (autonomous workers with isolated context and restricted tools). Use when the user wants to create an agent, autonomous worker, isolated task runner, or custom subagent. NOT for skills - agents have tool restrictions and run in isolation.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.