Marketplace

skill-builder

Build Claude skills from extracted documentation. Use after doc-scraper/pdf-extractor to generate uploadable skill packages. Use when relevant to the task.

$ 安裝

git clone https://github.com/jmagly/ai-writing-guide /tmp/ai-writing-guide && cp -r /tmp/ai-writing-guide/.factory/skills/skill-builder ~/.claude/skills/ai-writing-guide

// tip: Run this command in your terminal to install the skill


name: skill-builder description: Build Claude skills from extracted documentation. Use after doc-scraper/pdf-extractor to generate uploadable skill packages. Use when relevant to the task.

Skill Builder Skill

Purpose

Single responsibility: Transform extracted documentation into properly structured Claude skill packages ready for upload. (BP-4)

Grounding Checkpoint (Archetype 1 Mitigation)

Before executing, VERIFY:

  • Input data directory exists and contains extracted content
  • Content format is recognized (JSON pages, markdown, etc.)
  • Output directory is writable
  • Skill name follows Claude conventions (lowercase, alphanumeric, hyphens)

DO NOT build without verifying input data quality.

Uncertainty Escalation (Archetype 2 Mitigation)

ASK USER instead of guessing when:

  • Multiple input formats detected - which to prioritize?
  • Category structure unclear from content
  • Skill description ambiguous
  • Target audience undefined

NEVER generate placeholder content without user guidance.

Context Scope (Archetype 3 Mitigation)

Context TypeIncludedExcluded
RELEVANTInput data, skill config, output pathOther skills
PERIPHERALSimilar skill examplesUnrelated documentation
DISTRACTORPrevious build attemptsSource scraping details

Workflow Steps

Step 1: Validate Input (Grounding)

# Check input data exists
ls -la output/<skill-name>_data/

# Verify page count
find output/<skill-name>_data/pages -name "*.json" | wc -l

# Check summary
cat output/<skill-name>_data/summary.json

Step 2: Generate Skill Structure

Standard Claude skill structure:

output/<skill-name>/
├── SKILL.md              # Main skill file (required)
├── references/           # Reference documentation
│   ├── index.md          # Category index
│   ├── getting_started.md
│   ├── api_reference.md
│   └── guides.md
├── scripts/              # Optional automation scripts
└── assets/               # Optional images, diagrams

Step 3: Create SKILL.md

Template for SKILL.md:

# <Skill Name>

## Description
<When to use this skill - clear, specific>

## Key Features
- Feature 1
- Feature 2
- Feature 3

## Quick Reference

### Common Patterns
<Most frequently used patterns with code examples>

### API Overview
<Key API methods/functions>

## Navigation

| Topic | File | Description |
|-------|------|-------------|
| Getting Started | references/getting_started.md | Installation and setup |
| API Reference | references/api_reference.md | Complete API documentation |
| Guides | references/guides.md | How-to guides and tutorials |

## Code Examples

<3-5 practical code examples from documentation>

## Common Questions

<FAQ section based on documentation>

## Version Information

- Documentation version: <version>
- Last updated: <date>
- Source: <url>

Step 4: Generate Reference Files

Categorize extracted content:

# Categories and their keywords
categories = {
    "getting_started": ["intro", "install", "setup", "quickstart"],
    "api_reference": ["api", "reference", "method", "function", "class"],
    "guides": ["guide", "tutorial", "how-to", "example"],
    "concepts": ["concept", "overview", "architecture"],
    "advanced": ["advanced", "internals", "extend", "customize"]
}

Step 5: Validate Output

# Check required files exist
test -f output/<skill-name>/SKILL.md || echo "Missing SKILL.md"
test -d output/<skill-name>/references || echo "Missing references/"

# Verify SKILL.md structure
grep "^# " output/<skill-name>/SKILL.md
grep "^## " output/<skill-name>/SKILL.md

# Check reference files
ls -la output/<skill-name>/references/

Recovery Protocol (Archetype 4 Mitigation)

On error:

  1. PAUSE - Preserve partial build
  2. DIAGNOSE - Check error type:
    • Missing input data → Re-run extraction
    • Invalid content format → Check parser compatibility
    • Categorization failed → Manual category mapping
    • Template error → Check SKILL.md syntax
  3. ADAPT - Adjust build configuration
  4. RETRY - Rebuild affected sections (max 3 attempts)
  5. ESCALATE - Present partial build, ask for guidance

Checkpoint Support

State saved to: .aiwg/working/checkpoints/skill-builder/

checkpoints/skill-builder/
├── build_config.json       # Build configuration
├── categorization.json     # Category assignments
├── skill_md_draft.md       # SKILL.md draft
└── progress.json           # Build progress

Quality Criteria

CriterionRequirementValidation
SKILL.md presentRequiredFile exists check
Description clearRequiredNon-empty, specific
References organizedRequiredAt least 2 categories
Code examplesRecommended3+ examples in SKILL.md
Navigation tableRecommendedLinks to all references

Output Validation

Run quality check after build:

# Use quality-checker skill
# Or manual validation:

# 1. SKILL.md structure
grep -E "^#{1,2} " output/<skill-name>/SKILL.md

# 2. Code examples present
grep -c '```' output/<skill-name>/SKILL.md

# 3. References populated
for f in output/<skill-name>/references/*.md; do
  echo "$f: $(wc -l < $f) lines"
done

# 4. No broken links
grep -oE '\[.*\]\(.*\)' output/<skill-name>/SKILL.md | head -10

Configuration Options

{
  "name": "myskill",
  "description": "When to use this skill",
  "input_dir": "output/myskill_data/",
  "output_dir": "output/myskill/",
  "template": "standard",
  "options": {
    "extract_examples": true,
    "max_examples": 10,
    "generate_faq": true,
    "include_navigation": true,
    "min_category_pages": 5
  }
}

Templates

Standard Template

Full-featured skill with all sections.

Minimal Template

Just SKILL.md and one reference file.

API Reference Template

Optimized for API documentation.

Tutorial Template

Optimized for learning content.

Troubleshooting

IssueDiagnosisSolution
Missing input dataData directory not foundRun doc-scraper or pdf-extractor first
Empty SKILL.mdTemplate failedCheck input format, verify JSON structure
No categoriesKeywords not matchedProvide custom category mapping
Build hangsLarge datasetUse doc-splitter first for 10K+ pages
Invalid structureWrong templateVerify template compatibility with content

References