Automated skill creation workshop with intelligent source detection, smart path management, and end-to-end workflow automation...
An automated skill creation workshop that provides end-to-end guidance for forging effective skills. Features intelligent source detection, smart path management, automatic material fetching from GitHub repositories, online documentation (with llms.txt support), or local directories, and comprehensive cleanup tools.
Skills are modular, self-contained packages that extend Claude's capabilities by providing specialized knowledge, workflows, and tools. Think of them as "onboarding guides" for specific domains or tasksβthey transform Claude from a general-purpose agent into a specialized agent equipped with procedural knowledge that no model can fully possess.
Every skill consists of a required SKILL.md file and optional bundled resources:
skill-name/
βββ SKILL.md (required)
β βββ YAML frontmatter metadata (required)
β β βββ name: (required)
β β βββ description: (required)
β βββ Markdown instructions (required)
βββ Bundled Resources (optional)
βββ scripts/ - Executable code (Python/Bash/etc.)
βββ references/ - Documentation intended to be loaded into context as needed
βββ assets/ - Files used in output (templates, icons, fonts, etc.)
Metadata Quality: The name and description in YAML frontmatter determine when Claude will use the skill. Be specific about what the skill does and when to use it. Use the third-person (e.g. "This skill should be used when..." instead of "Use this skill when...").
scripts/)Executable code (Python/Bash/etc.) for tasks that require deterministic reliability or are repeatedly rewritten.
scripts/rotate_pdf.py for PDF rotation tasksreferences/)Documentation and reference material intended to be loaded as needed into context to inform Claude's process and thinking.
references/finance.md for financial schemas, references/mnda.md for company NDA template, references/policies.md for company policies, references/api_docs.md for API specificationsassets/)Files not intended to be loaded into context, but rather used within the output Claude produces.
assets/logo.png for brand assets, assets/slides.pptx for PowerPoint templates, assets/frontend-template/ for HTML/React boilerplate, assets/font.ttf for typographySkills use a three-level loading system to manage context efficiently:
*Unlimited because scripts can be executed without reading into context window.
Three types of paths with different management strategies:
| Type | Location | Strategy |
|---|---|---|
| Materials (temp) | .claude/temp-materials/ or ~/skill-materials/ |
Auto-detected |
| Skill (permanent) | User chooses location | Ask user |
| Zip (package) | Inside skill directory | Default |
π Detailed Guide: See path-management.md for smart path detection, cleanup strategies, and examples.
This skill should be triggered when users request to create a new skill or convert external resources into a skill. Common trigger patterns:
Automatically detect source type and act accordingly:
Decision Tree:
GitHub URL (github.com/*) β fetch_source.py --git <url>
Documentation URL (docs.*, */docs/) β fetch_source.py --docs <url> --name <name>
Local Path (~/, /, ./) β Use directly (skip fetch)
Ambiguous β Ask user for clarification
Quick Examples:
https://github.com/user/repo β Auto-clone to materials directoryhttps://docs.example.com β Auto-scrape documentation~/my-tools/ β Use local directory directly"Create skill for X" β Ask for source clarificationπ Detailed Guide: See source-detection.md for complete patterns, edge cases, and examples.
β Do: Immediately fetch when source type is clear β Don't: Ask permission for obvious actions (GitHub URLs, documentation sites) β Ask: Only when genuinely ambiguous
Follow these steps in order. Skip only when clearly not applicable.
π Complete Workflow: See workflow-guide.md for detailed step-by-step instructions and examples.
When: User provides external source (GitHub/docs URL) Skip: When using local directory
scripts/fetch_source.py --git https://github.com/user/repo
No additional dependencies needed (requires git command only).
π llms.txt Detection (Recommended)
Many modern documentation sites support the llms.txt standard - a LLM-optimized documentation format that's 10x faster to fetch.
First, check if the site has llms.txt:
scripts/detect_llms_txt.py https://docs.example.com
If found, use the llms.txt URL directly:
# Much faster! β‘
scripts/fetch_source.py --docs https://docs.example.com/llms-full.txt --name project-name
Note: fetch_source.py automatically detects llms.txt and recommends it if available.
Regular Documentation Scraping
If no llms.txt available, use regular scraping with markitdown:
First, verify markitdown is installed:
try:
from markitdown import MarkItDown
print("β
MarkItDown is installed")
except ImportError:
print("β Need to install: pip install 'markitdown[all]'")
If not installed:
pip install 'markitdown[all]'
Then fetch documentation:
scripts/fetch_source.py --docs https://docs.example.com --name project-name
markitdown also supports PDF, Word, PowerPoint, and Excel files:
PDF Documents:
# From URL
scripts/fetch_source.py --docs https://example.com/manual.pdf --name manual
# From local file
scripts/fetch_source.py --docs /path/to/document.pdf --name doc
Other Formats:
# Word document
scripts/fetch_source.py --docs /path/to/spec.docx --name spec
# PowerPoint
scripts/fetch_source.py --docs /path/to/slides.pptx --name slides
# Excel
scripts/fetch_source.py --docs /path/to/data.xlsx --name data
Notes:
scripts/fetch_source.py --git <url> --docs <url> --name combo
Smart Path Detection: Materials auto-saved to:
<project-root>/.claude/temp-materials/~/skill-materials/Common Options: --depth 1 (shallow clone), --branch <name>, --output <path>
π See workflow-guide.md#step-0 for full options and examples.
Goal: Clearly understand how the skill will be used through concrete examples.
Process:
Example Questions:
When to conclude: Clear sense of the skill's purpose and usage patterns.
π See workflow-guide.md#step-1 for detailed question strategies and best practices.
Goal: Identify what scripts, references, and assets to bundle with the skill.
Analysis Questions:
scripts/references/assets/Common Patterns:
scripts/rotate_pdf.py)references/schema.md)assets/template/)Output: List of reusable resources to include.
π See workflow-guide.md#step-2 for detailed examples and analysis patterns.
Goal: Create skill directory structure using init_skill.py.
Skip: If skill already exists (jump to Step 4).
Choosing Skill Location:
Unlike temporary materials (auto-detected), skills are permanent. Always ask user where to create it:
Where would you like to create the <skill-name> skill?
1. Project skills (.claude/skills/) - For this project only
2. Global skills (~/.claude/skills/) - Available everywhere
3. Custom path - Specify your own location
Usage:
# Based on user choice (1, 2, or 3):
scripts/init_skill.py <skill-name> --path <user-chosen-path>
What it creates:
scripts/, references/, assets/ directoriesπ See workflow-guide.md#step-3 for detailed path selection guidance and examples.
Goal: Implement bundled resources and write SKILL.md instructions.
Start with Resources:
scripts/, references/, assets/ from Step 2π Smart Processing for Large Documentation Files:
If documentation was fetched (especially via llms.txt), check file size:
# Check if documentation file is large
ls -lh <path-to-fetched-docs>
For large files (>50KB or >10,000 words):
Split into logical sections following Progressive Disclosure principle:
Example Structure:
references/
βββ overview.md # High-level concepts, getting started
βββ core-concepts.md # Main ideas, architecture
βββ api-reference.md # API documentation
βββ advanced.md # Advanced usage, examples
Splitting Strategy:
Benefits:
For small files (<50KB):
references/Update SKILL.md:
Writing Style: Use imperative/infinitive form (verb-first), not second person.
Answer These Questions:
Focus: Include procedural knowledge and domain-specific details that benefit another Claude instance.
π See workflow-guide.md#step-4 for writing guidelines and examples.
CRITICAL: After Step 4, the skill is already installed and ready to use!
Required Actions After Step 4:
Auto-cleanup temporary materials (if materials exist):
# Silently clean up temp-materials - user doesn't need to know
scripts/cleanup_materials.py <skill-name>
Do this automatically without asking. Materials are no longer needed after skill creation.
Auto-cleanup temporary helper scripts (if any exist in skill's scripts/ directory):
Common temporary scripts to remove:
split_docs.py - Document splitting helper (if created during Step 4)process_*.py - Any temporary processing scriptstemp_*.py - Any scripts with "temp" prefixCheck and clean:
# Example: Remove split_docs.py if it exists
rm -f <skill-path>/scripts/split_docs.py
Do this silently. Only keep scripts that are part of the skill's permanent functionality.
Inform user of completion:
β
Skill created and installed successfully!
π Location: ~/.claude/skills/crewai/
π The skill is ready to use immediately!
ONLY THEN ask about packaging:
π¦ Would you like to package it as a .zip for sharing with others? (Optional)
β οΈ DO NOT package automatically - must ask user first!
If user wants to package (optional):
Goal: Validate and package skill into distributable .zip file for sharing.
Usage:
scripts/package_skill.py <path/to/skill-folder>
# Custom output location:
scripts/package_skill.py <path/to/skill-folder> ./dist
Process:
<skill-name>.zip in skill directory (default)After Packaging:
β
Skill packaged successfully!
π¦ Package: ~/.claude/skills/crewai/crewai.zip
π Installed: ~/.claude/skills/crewai/ (ready to use)
Note: Temporary materials are automatically cleaned up after skill creation. Users don't need to manually manage cleanup.
π See workflow-guide.md#step-5 and path-management.md for detailed workflow documentation.
When: After testing skill on real tasks Trigger: Users request improvements based on skill performance
Workflow:
π See workflow-guide.md#step-6 for iteration patterns.