create-ultimate-skill
Create Ultimate Skill
Creation Workflow
When creating a new skill based on user's request: $ARGUMENTS
Phase 1: Define Use Cases
Ask the user:
- Use cases: "Describe 2-3 specific scenarios where you'd want this skill to activate. What would you say to Claude, and what should it do?"
- Non-use cases: "What should this skill NOT be used for?" (defines negative triggers)
Phase 2: Choose Archetype and Scope
Ask the user:
- Archetype (see Archetypes section below)
- Triggers: What phrases should activate this skill?
- Scope: What's in scope vs out of scope?
Phase 3: Fetch Latest Documentation
Fetch the latest official skill documentation to verify current fields and constraints:
WebFetch: https://markdown.new/https://code.claude.com/docs/en/skills.md
Phase 4: Choose Save Location
Use AskUserQuestion:
- Personal (home folder):
~/.claude/skills/<skill-name>/- available in all projects - Project folder:
.claude/skills/<skill-name>/- project-specific - Existing plugin: ask which plugin, then
plugins/<plugin-name>/skills/
Phase 5: Create the Skill
Scaffold with init_skill.py or create manually:
python .claude/skills/create-ultimate-skill/scripts/init_skill.py <skill-name> --path <location>
Then write SKILL.md applying all rules below. Review with the checklist before presenting to user.
Phase 6: Summary
When complete, provide:
- Skill location and how to trigger it
- What it does
- Suggestions for improvement
- Testing prompts the user can try
Frontmatter Hard Rules
descriptionMUST be a single-line plain string. NEVER use YAML multi-line indicators (>-,|,>,|-). Multi-line descriptions break frontmatter parsing.allowed-toolsMUST be a single-line comma-separated string (e.g.allowed-tools: Read, Write, Edit). NEVER use YAML list syntax.
Required Fields
| Field | Constraints |
|---|---|
name |
Max 64 chars, [a-z0-9-] only, no "anthropic"/"claude" |
description |
Max 1024 chars, non-empty, no XML tags |
Optional Fields
| Field | Purpose | Example |
|---|---|---|
allowed-tools |
Limit tool access | Read, Grep, Glob |
model |
Override model | sonnet, opus |
context |
Isolation | fork |
agent |
Subagent type | Explore, Plan |
hooks |
Lifecycle events | PreToolUse, PostToolUse, Stop |
user-invocable |
Slash menu visibility | false to hide |
disable-model-invocation |
Block Skill tool | true |
See references/api-reference.md for full field documentation.
Archetypes
| Archetype | Best For | Structure |
|---|---|---|
| CLI Reference | Tool documentation | Commands grouped by function, minimal prose |
| Methodology | Workflows, processes | Philosophy + THE EXACT PROMPT + examples |
| Safety Tool | Validation, security | Threat model + risk tiers + rules |
| Orchestration | Multi-agent coordination | Quick start + APIs + integrations |
See references/archetypes.md for templates.
Description Rules
- Third person always ("Processes files" not "I help you")
- Include WHAT it does AND WHEN to trigger
- Specific trigger phrases users would say
- Add negative triggers ("Do NOT use for...") to prevent over-triggering
- Max 1024 characters
Template:
description: [What it does]. Use when [triggers]. Do NOT use for [exclusions].
Examples:
description: Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when user mentions PDFs, forms, or document extraction.
description: Process and transform CSV data files. Use when working with CSV imports, exports, or data cleaning. Do NOT use for Excel files (.xlsx) or database queries.
SKILL.md Body Rules
- Imperative voice ("Extract the data", "Run validation")
- Never second person ("You should...")
- Concise - challenge each line: "Does Claude need this?"
- Under 500 lines, under 5,000 words (~2,000 ideal)
- Put critical instructions at the top of the file
- Use scripts for validation where possible - code is deterministic, language interpretation is not
- "Take your time to do this thoroughly" is more effective in user prompts than in SKILL.md
Structure Rules
skill-name/
├── SKILL.md # Core guidance only
├── references/ # Detailed docs (on-demand)
├── examples/ # Working code samples
└── scripts/ # Executable utilities
- References ONE level deep only - no chains
- Long files (>100 lines): include TOC
- Never include README.md in skill folder (SKILL.md IS the readme)
- Forward slashes only (no Windows paths)
Anti-Patterns
| Anti-Pattern | Fix |
|---|---|
| Vague descriptions | Specific triggers + negative triggers |
| Deeply nested references | One level deep |
| README.md in skill folder | Delete it - SKILL.md IS the readme |
>- or ` |
` in description |
| YAML list for allowed-tools | Comma-separated string |
Testing
Define success criteria before building:
- Quantitative: Trigger rate >90% of relevant queries, correct tool sequence, task completes without user intervention
- Qualitative: Output matches expected format, no hallucinated commands, consistent across sessions
Debug technique: Ask Claude "When would you use the [skill name] skill?" - the response reveals how Claude interprets the description.
Test three areas:
- Triggering: Direct trigger phrases, paraphrased requests, and edge cases that should NOT trigger
- Functional: Run each use case end-to-end, check output format and accuracy
- Performance: Compare skill-assisted vs manual - does the skill save time and improve quality?
Pro tip: Iterate on a single challenging task until Claude succeeds, then extract the winning approach into the skill. This grounds design in proven patterns rather than theory.
Iteration Signals
| Signal | Fix |
|---|---|
| Skill never activates | Add more trigger phrases to description |
| Wrong skill activates | Add "Do NOT use for..." negative triggers |
| Output is wrong | Refine SKILL.md instructions, add examples |
| Output is inconsistent | Reduce degrees of freedom, be more prescriptive |
Utility Scripts
init_skill.py
python .claude/skills/create-ultimate-skill/scripts/init_skill.py <skill-name> --path <location>
Creates SKILL.md with template, plus scripts/, references/, assets/ directories.
package_skill.py
python .claude/skills/create-ultimate-skill/scripts/package_skill.py <path/to/skill> [output-dir]
Validates and creates distributable zip. Checks frontmatter, naming, ensures no TODOs remain.
Skill Review Mode
When reviewing an existing skill (triggered by --review or "review my skill"):
- Read SKILL.md frontmatter, body, and supporting directories
- Categorise issues by severity:
- Critical: Won't trigger or wrong output (missing description, vague triggers, broken refs)
- Major: Significantly reduces effectiveness (>5,000 words, no progressive disclosure)
- Minor: Polish (inconsistent terminology, missing TOC, no negative triggers)
- Generate structured review report:
## Skill Review: [skill-name]
### Summary
[Assessment, word counts, structure]
### Description Analysis
**Current:** [description]
**Issues:** [with severity]
**Suggested:** "[improved version]"
### Issues by Severity
#### Critical ([count])
- [File]: [Issue] - [Fix]
#### Major ([count])
- [File]: [Issue] - [Fix]
#### Minor ([count])
- [File]: [Issue] - [Suggestion]
### Rating: [Pass / Needs Improvement / Needs Major Revision]
### Priority Fixes
1. [Highest impact]
2. [Second]
3. [Third]
Review Checklist
- Use cases: 2-3 concrete scenarios defined
- name: lowercase, hyphens, ≤64 chars
- description: single-line plain string, third person, specific triggers, ≤1024 chars
- description: negative triggers if needed
- SKILL.md body: <500 lines, <5,000 words
- No README.md in skill folder
- References: one level deep
- Forward slashes only
- Examples concrete, not abstract
Latest Documentation
Before finalising any skill's frontmatter, fetch the latest official documentation to check for new fields, changed constraints, or updated rules:
WebFetch: https://markdown.new/https://code.claude.com/docs/en/skills.md
Further Reading
More from henkisdabro/wookstar-claude-code-plugins
tampermonkey
Write and debug Tampermonkey userscripts for browser automation, page modification, and web enhancement. Use whenever the user mentions userscripts, Tampermonkey, Greasemonkey, Violentmonkey, or wants to write a script that runs on a website - even if they don't say 'userscript' explicitly. Also trigger for: injecting JavaScript or CSS into web pages, modifying website behaviour, hiding page elements, form auto-fill, scraping page data, intercepting requests, detecting URL changes in SPAs, adding keyboard shortcuts to websites, tab audio control, or TypeScript userscripts. Covers all header tags (@match, @grant, @require, @run-in), GM_* synchronous APIs, GM.* promise-based APIs (recommended for new scripts), batch storage (GM.getValues/setValues v5.3+), binary data support (v5.4+), TypeScript setup via @types/tampermonkey, security sandboxing, and cross-browser compatibility (Chrome, Firefox, Edge). Do NOT use for Selenium/Puppeteer automation, browser extensions (WebExtensions/MV3), or server-side scripts.
95google-tagmanager
Comprehensive Google Tag Manager guide covering container setup, tags, triggers, variables, data layer, debugging, custom templates, and API automation. Use when working with GTM implementation, configuration, optimisation, troubleshooting, or any GTM-related tasks.
81google-apps-script
Comprehensive guide for Google Apps Script development covering all built-in services (SpreadsheetApp, DocumentApp, GmailApp, DriveApp, CalendarApp, FormApp, SlidesApp), triggers, authorization, error handling, and performance optimization. Use when automating Google Sheets operations, creating Google Docs, managing Gmail/email, working with Google Drive files, automating Calendar events, implementing triggers (time-based, event-based), building custom functions, creating add-ons, handling OAuth scopes, optimizing Apps Script performance, working with UrlFetchApp for API calls, using PropertiesService for persistent storage, or implementing CacheService for temporary data. Covers batch operations, error recovery, and JavaScript ES6+ runtime.
74shopify-theme-dev
Complete theme development guide including file structure, JSON templates, sections, snippets, settings schema, and Online Store 2.0 architecture. Use when creating Shopify themes, organizing theme files, building sections and blocks, working with .json template files, configuring settings_schema.json, creating snippets, or implementing theme customization features.
23shopify-developer
Complete Shopify development reference for Liquid templating, theme development (OS 2.0), GraphQL Admin API, Storefront API, custom app development, Shopify Functions, Hydrogen, performance optimisation, and debugging. Use when working with .liquid files, creating theme sections and blocks, writing GraphQL queries or mutations for Shopify, building Shopify apps with CLI and Polaris, implementing cart operations via Ajax API, optimising Core Web Vitals for Shopify stores, debugging Liquid or API errors, configuring settings_schema.json, accessing Shopify objects (product, collection, cart, customer), using Liquid filters, creating app extensions, working with webhooks, migrating from Scripts to Functions, or building headless storefronts with Hydrogen and React Router 7. Covers API version 2026-01.
17google-analytics
Comprehensive Google Analytics 4 guide covering property setup, events, custom events, recommended events, custom dimensions, user tracking, audiences, reporting, BigQuery integration, gtag.js implementation, GTM integration, Measurement Protocol, DebugView, privacy compliance, and data management. Use when working with GA4 implementation, tracking, analysis, or any GA4-related tasks.
14