From ravn-ai-toolkit
Guides creation of portable Claude skills including structure, frontmatter descriptions, triggers, progressive disclosure, context budget optimization, and bundling scripts/references.
npx claudepluginhub ravnhq/ai-toolkitThis skill is limited to using the following tools:
Create effective, portable skills that work across Claude.ai, Claude Code, and the API. A skill is a folderized instruction set that encodes a reusable workflow once, then applies it consistently.
Guides building production-grade Claude Code skills with architecture design, workflow checklists, prompt engineering, and packaging scripts.
Guides creation of new Claude Code skills from scratch, covering SKILL.md anatomy, YAML frontmatter best practices, trigger phrases, and optional resources like scripts. Triggers on 'create a skill', 'new skill', 'scaffold skill'.
Guides creation of Claude Code skills with principles for conciseness, degrees of freedom, SKILL.md structure, and bundling scripts/references/assets.
Share bugs, ideas, or general feedback.
Create effective, portable skills that work across Claude.ai, Claude Code, and the API. A skill is a folderized instruction set that encodes a reusable workflow once, then applies it consistently.
skill-name/
├── SKILL.md # Required: YAML frontmatter + markdown instructions
├── scripts/ # Optional: executable code for deterministic tasks
├── references/ # Optional: docs loaded into context as needed
└── assets/ # Optional: files used in output (templates, images, fonts)
Two parts:
name and description fields. Always in context. Determines when the skill triggers.| Directory | Purpose | Loaded into context? |
|---|---|---|
scripts/ | Executable code (Python/Bash) for deterministic operations | Only when Claude reads them |
references/ | Documentation Claude consults while working | On demand |
assets/ | Files used in output (templates, images, fonts) | Never — used directly in output |
Do not include README.md, CHANGELOG.md, or any auxiliary documentation files.
The context window is shared. Only include what Claude does not already know. Prefer concise examples over verbose explanations. Every paragraph must justify its token cost — remove paragraphs that do not.
Hard limit: Keep SKILL.md body under 5,000 words. Move detailed content to references/.
Match specificity to the task's fragility:
Three-layer loading minimizes context usage:
Keep SKILL.md lean. Split into reference files when exceeding 300 lines. Always reference split files from SKILL.md with clear descriptions of when to read them.
Gather concrete use cases before building anything.
Entry: User request to create or improve a skill.
Actions:
Exit: Clear understanding of the skill's scope, triggers, and expected outputs.
Determine what reusable resources the skill needs.
Entry: Concrete use cases from Step 1.
Actions:
scripts/references/assets/references/workflows.md for common patterns.Exit: List of resources to create and SKILL.md outline.
Create the skill folder and write its contents.
Entry: Resource list and SKILL.md outline from Step 2.
Actions:
Create the skill folder following the structure above. If scripts/init_skill.py is available in the environment, use it as a scaffolding accelerator:
scripts/init_skill.py <skill-name> --path <output-directory>
Otherwise, create the folder and SKILL.md manually.
Write bundled resources first — scripts, references, assets. Test scripts by running them. Delete any scaffolding files not needed.
Write SKILL.md:
references/description-authoring.md for the description formulareferences/validation-checklist.md to ensure the skill meets all structural requirementsDelete unused scaffolding — remove example files and empty directories.
Exit: Complete skill folder with all resources and SKILL.md.
Validate triggering and output quality.
Entry: Complete skill from Step 3.
Actions:
See references/testing-iteration.md for detailed testing methodology and success criteria.
Exit: Skill triggers on 9 out of 10 relevant prompts and produces consistent output.
Refine based on real usage.
Entry: Test results or user feedback.
Actions:
references/testing-iteration.mdExit: Skill meets success criteria across real-world usage.
Package a finished skill as a .skill file (zip with .skill extension). If scripts/package_skill.py is available, use it — it validates and packages automatically:
scripts/package_skill.py <path/to/skill-folder> [output-directory]
Otherwise, zip the skill folder manually ensuring SKILL.md is at the root of the archive.
Consult these based on the skill's needs:
references/description-authoring.md — formula, trigger phrases, negative triggers, hard constraintsreferences/workflows.md — sequential, multi-service, iterative, context-aware, domain intelligencereferences/output-patterns.md — templates and example-based output guidancereferences/testing-iteration.md — triggering tests, functional tests, performance metrics, diagnosticsreferences/validation-checklist.md — structural requirements every skill must meetreferences/troubleshooting.md — common failures and resolution pathsUser: "Create a new skill for converting PDFs to markdown with reusable scripts."
Expected behavior: Follow this skill's workflow — understand use cases, plan resources, build the skill.
User: "Find and fix a TypeScript type error in src/api/client.ts."
Expected behavior: Do not use this skill. Choose a more relevant skill or proceed directly.
references/description-authoring.md.references/ files. Keep SKILL.md as a lean workflow guide.references/troubleshooting.md.