From amplify
Scaffolds new Claude Code skills with init_skill.py, packages them into .skill files with package_skill.py, and validates frontmatter with quick_validate.py. Use for direct script execution or skill-forge delegation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/amplify:skill-creatorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Low-level scaffolding toolkit for skill authoring. Provides three scripts: `init_skill.py` (create a new skill from template), `package_skill.py` (validate and package into a `.skill` file), and `quick_validate.py` (frontmatter checks). For end-to-end skill authoring workflow, use `skill-forge` instead.
Low-level scaffolding toolkit for skill authoring. Provides three scripts: init_skill.py (create a new skill from template), package_skill.py (validate and package into a .skill file), and quick_validate.py (frontmatter checks). For end-to-end skill authoring workflow, use skill-forge instead.
Prerequisites: Python 3 (python3 --version) and PyYAML (pip install pyyaml).
Run from the repository root:
python3 skills/skill-creator/scripts/init_skill.py <skill-name> --path skills/
The script:
skills/<skill-name>/ directorySKILL.md with frontmatter template and TODO placeholdersscripts/, references/, and assets/ subdirectories with example placeholder filesAfter init: Delete all unneeded placeholder files. The script creates examples in all three directories — most skills won't need all of them.
Skill name rules: [a-z0-9-]+, max 64 characters, must match the directory name exactly. (The script's help text says "Max 40 characters" — this is stale; the validator enforces 64.)
Must be run from inside the scripts/ directory because package_skill.py imports quick_validate without a path:
cd skills/skill-creator/scripts && python3 package_skill.py ../../<skill-name>
Or with an explicit output directory:
cd skills/skill-creator/scripts && python3 package_skill.py ../../<skill-name> ../../../dist
The script validates the skill first (frontmatter format, required fields, naming conventions, description length, no angle brackets). If validation passes, it creates <skill-name>.skill — a ZIP archive with a .skill extension — containing all files from the skill directory.
If ModuleNotFoundError: No module named 'quick_validate' appears, the CWD is wrong. Run from skills/skill-creator/scripts/ as shown above.
python3 skills/skill-creator/scripts/quick_validate.py skills/<skill-name>
Checks: SKILL.md exists, valid YAML frontmatter, name and description present, name is [a-z0-9-]+ and max 64 chars, description has no angle brackets and is under 1024 chars, no unexpected frontmatter keys.
Allowed frontmatter keys: name, description, license, allowed-tools, metadata. Any other key fails validation.
Read references/workflows.md when writing sequential or conditional workflow steps in a skill body.
Read references/output-patterns.md when the skill needs to produce consistent output formats or example-driven guidance.
skill-name/
├── SKILL.md (required)
│ ├── YAML frontmatter (name + description — the only routing signal)
│ └── Markdown body (loaded only after the skill triggers)
└── Bundled resources (optional)
├── scripts/ executable code for deterministic/repetitive operations
├── references/ dense context loaded on demand
└── assets/ output templates, boilerplate, fonts, images (not loaded into context)
Skills use three loading levels:
name + description — always in context (~100 words)Keep SKILL.md body under 500 lines. Move dense reference material, large examples, and schemas to references/. Always use Read references/X.md when [condition]. Skip if [skip condition]. — not "See X" or "refer to X".
Do not create: README.md, CHANGELOG.md, INSTALLATION_GUIDE.md, QUICK_REFERENCE.md, or any other human-facing documentation. Skills are for agents; extra files add noise and inflate context.
[Capability statement in third person]. Use when [2-3 concrete trigger conditions].
Don't use for [negative triggers — most likely false-positive domains].
Max 1,024 characters. No angle brackets. Read references/description-guide.md (in skill-forge) for detailed formula, examples, and checklist.
| Error | Cause | Fix |
|---|---|---|
ModuleNotFoundError: No module named 'quick_validate' | package_skill.py run from wrong CWD | Run from skills/skill-creator/scripts/ |
Unexpected key(s) in SKILL.md frontmatter | Extra YAML fields (e.g., license without validator support) | Remove the key or check allowed keys list above |
Description is too long | Over 1,024 characters | Shorten; move detail to trigger conditions |
Name should be hyphen-case | Uppercase or underscore in skill name | Rename to [a-z0-9-]+ |
Skill directory already exists | init_skill.py run on an existing skill | Skip init; edit SKILL.md directly |
| Validation passes but skill doesn't trigger | Description too narrow or missing paraphrase variants | Broaden trigger conditions; run Phase 1 validation via skill-forge |
npx claudepluginhub wunki/amplify --plugin ask-questions-if-underspecifiedGenerates validated SKILL.md files for Claude Code skills with YAML frontmatter, naming conventions, tool minimalism, structure constraints, and best practices.
Scaffolds new Agent Skills-compliant skills with full directory structure and frontmatter, then auto-syncs the skills registry.
Creates, updates, or validates SKILL.md agent skills including frontmatter authoring, bundled resource planning, and three-phase discoverability validation.