| name | lite-skill-generator |
| description | Lightweight skill generator with style learning - creates simple skills using flow-based execution and style imitation. Use for quick skill scaffolding, simple workflow creation, or style-aware skill generation. |
| allowed-tools | Read, Write, Bash, Glob, Grep, AskUserQuestion |
Lite Skill Generator
Lightweight meta-skill for rapid skill creation with intelligent style learning and flow-based execution.
Core Concept
Simplicity First: Generate simple, focused skills quickly with minimal overhead. Learn from existing skills to maintain consistent style and structure.
Progressive Disclosure: Follow anthropics' three-layer loading principle:
- Metadata - name, description, triggers (always loaded)
- SKILL.md - core instructions (loaded when triggered)
- Bundled resources - scripts, references, assets (loaded on demand)
Execution Model
3-Phase Flow: Style Learning → Requirements Gathering → Generation
User Input → Phase 1: Style Analysis → Phase 2: Requirements → Phase 3: Generate → Skill Package
↓ ↓ ↓
Learn from examples Interactive prompts Write files + validate
Architecture Overview
┌─────────────────────────────────────────────────────────────────┐
│ Lite Skill Generator │
│ │
│ Input: Skill name, purpose, reference skills │
│ ↓ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Phase 1-3: Lightweight Pipeline │ │
│ │ ┌────┐ ┌────┐ ┌────┐ │ │
│ │ │ P1 │→│ P2 │→│ P3 │ │ │
│ │ │Styl│ │Req │ │Gen │ │ │
│ │ └────┘ └────┘ └────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ ↓ │
│ Output: .claude/skills/{skill-name}/ (minimal package) │
│ │
└─────────────────────────────────────────────────────────────────┘
3-Phase Workflow
Phase 1: Style Analysis & Learning
Analyze reference skills to extract language patterns, structural conventions, and writing style.
async function analyzeStyle(referencePaths) {
const references = [];
for (const path of referencePaths) {
const content = Read(path);
references.push({
path: path,
content: content,
metadata: extractYAMLFrontmatter(content)
});
}
const styleProfile = {
structure: {
hasFrontmatter: references.every(r => r.metadata !== null),
sectionHeaders: extractCommonSections(references),
codeBlockUsage: detectCodeBlockPatterns(references),
flowDiagramUsage: detectFlowDiagrams(references)
},
language: {
instructionStyle: detectInstructionStyle(references),
pseudocodeUsage: detectPseudocodePatterns(references),
verbosity: calculateVerbosityLevel(references),
terminology: (references)
},
: {
: (references),
: (references),
: (references)
}
};
{
: styleProfile,
: (styleProfile),
: (references, styleProfile)
};
}
() {
allSections = references.(
r..()?.( s.(, ))
).();
(allSections);
}
() {
imperativePattern = ;
declarativePattern = ;
proceduralPattern = ;
scores = references.( ({
: (r..(imperativePattern) || []).,
: (r..(declarativePattern) || []).,
: (r..(proceduralPattern) || []).
}));
(scores);
}
() {
hasJavaScriptBlocks = references.( r..());
hasFunctionDefs = references.( .(r.));
hasFlowComments = references.( .(r.));
{
: hasJavaScriptBlocks && hasFunctionDefs,
: hasFlowComments,
: hasFunctionDefs ? :
};
}
Output:
Style Analysis Complete:
Structure: Flow-based with pseudocode
Language: Procedural, detailed
Organization: Sequential phases
Key Patterns: 3-5 phases, function definitions, ASCII diagrams
Recommendations:
✓ Use phase-based structure (3-4 phases)
✓ Include pseudocode for complex logic
✓ Add ASCII flow diagrams
✓ Maintain concise documentation style
Phase 2: Requirements Gathering
Interactive discovery of skill requirements using learned style patterns.
async function gatherRequirements(styleProfile) {
const basicInfo = await AskUserQuestion({
questions: [
{
question: "What is the skill name? (kebab-case, e.g., 'pdf-generator')",
header: "Name",
options: [
{ label: "pdf-generator", description: "Example: PDF generation skill" },
{ label: "code-analyzer", description: "Example: Code analysis skill" },
{ label: "Custom", description: "Enter custom name" }
]
},
{
question: "What is the primary purpose?",
header: "Purpose",
options: [
{ label: "Generation", description: "Create/generate artifacts" },
{ label: "Analysis", description: "Analyze/inspect code or data" },
{ label: "Transformation", description: "Convert/transform content" },
{ label: "Orchestration", description: "Coordinate multiple operations" }
]
}
]
});
complexity = ({
: [{
: ,
: ,
: [
{ : , : },
{ : , : },
{ : , : }
]
}]
});
tools = ({
: [{
: ,
: ,
: ,
: [
{ : , : },
{ : , : },
{ : , : },
{ : , : },
{ : , : }
]
}]
});
output = ({
: [{
: ,
: ,
: [
{ : , : },
{ : , : },
{ : , : },
{ : , : }
]
}]
});
{
: basicInfo.,
: basicInfo.,
: (basicInfo., basicInfo.),
: (complexity.),
: tools.,
: output.,
: styleProfile,
: (basicInfo., basicInfo.)
};
}
() {
templates = {
: ,
: ,
: ,
:
};
templates[purpose] || ;
}
() {
base = [name, name.(, )];
purposeVariants = {
: [, , ],
: [, , ],
: [, , ],
: [, , ]
};
[...base, ...purposeVariants[purpose].( )];
}
Display to User:
Requirements Gathered:
Name: pdf-generator
Purpose: Generation
Steps: 3 (Setup → Generate → Validate)
Tools: Read, Write, Bash
Output: Single file (PDF document)
Triggers: "pdf-generator", "generate pdf", "create pdf"
Style Application:
Using flow-based structure (from style analysis)
Including pseudocode blocks
Adding ASCII diagrams for clarity
Phase 3: Generate Skill Package
Create minimal skill structure with style-aware content generation.
async function generateSkillPackage(requirements) {
const skillDir = `.claude/skills/${requirements.name}`;
const workDir = `.workflow/.scratchpad/lite-skill-gen-${Date.now()}`;
Bash(`mkdir -p "${skillDir}" "${workDir}"`);
const skillContent = generateSkillMd(requirements);
Write(`${skillDir}/SKILL.md`, skillContent);
if (requirements.outputType === 'Directory structure') {
Bash(`mkdir -p "${skillDir}/templates"`);
const templateContent = generateTemplate(requirements);
Write(`${skillDir}/templates/base-template.md`, templateContent);
}
if (requirements.allowedTools.includes('Bash')) {
Bash(`mkdir -p "${skillDir}/scripts"`);
const scriptContent = generateScript(requirements);
Write(`${skillDir}/scripts/helper.sh`, scriptContent);
}
readmeContent = (requirements);
(, readmeContent);
validation = (skillDir, requirements);
(, .(validation, , ));
{
: skillDir,
: [
,
...(validation. ? [] : []),
...(validation. ? [] : []),
],
: validation,
: (requirements)
};
}
() {
{ styleProfile } = req;
frontmatter = ;
content = frontmatter;
content += ;
content += ;
(styleProfile..) {
content += (req);
}
content += ;
(styleProfile...) {
content += (req);
} {
content += (req);
}
( i = ; i < req.; i++) {
content += (i + , req, styleProfile);
}
(styleProfile.. !== ) {
content += (req);
}
content;
}
() {
;
}
() {
;
}
() {
phaseName = (phaseNum, req);
section = ;
(styleProfile...) {
section += ;
section += ;
section += ;
section += ;
section += ;
} {
section += ;
section += ;
section += ;
section += ;
}
section;
}
() {
requiredFiles = [, ];
exists = requiredFiles.( (). === );
{
: exists.( e),
: (). === ,
: (). === ,
: requiredFiles.( exists[i]),
: (skillDir, req.)
};
}
Output:
Skill Package Generated:
Location: .claude/skills/pdf-generator/
Structure:
✓ SKILL.md (entry point)
✓ README.md (usage guide)
✓ templates/ (directory templates)
✓ scripts/ (helper scripts)
Validation:
✓ All required files present
✓ Style compliance: 95%
✓ Frontmatter valid
✓ Tool references correct
Next Steps:
1. Review SKILL.md and customize phases
2. Test skill: /skill:pdf-generator "test input"
3. Iterate based on usage
Complete Execution Flow
User: "Create a PDF generator skill"
↓
Phase 1: Style Analysis
|-- Read reference skills (ccw.md, ccw-coordinator.md)
|-- Extract style patterns (flow diagrams, pseudocode, structure)
|-- Generate style profile
+-- Output: Style recommendations
↓
Phase 2: Requirements
|-- Ask: Name, purpose, steps
|-- Ask: Tools, output format
|-- Generate: Description, triggers
+-- Output: Requirements config
↓
Phase 3: Generation
|-- Create: Directory structure
|-- Write: SKILL.md (style-aware)
|-- Write: README.md
|-- Optionally: templates/, scripts/
|-- Validate: Structure and style
+-- Output: Skill package
↓
Return: Skill location + next steps
Phase Execution Protocol
async function liteSkillGenerator(input) {
const references = [
'.claude/commands/ccw.md',
'.claude/commands/ccw-coordinator.md',
...discoverReferenceSkills(input)
];
const styleProfile = await analyzeStyle(references);
console.log(`Style Analysis: ${styleProfile.organization.phaseStructure}, ${styleProfile.language.verbosity}`);
const requirements = await gatherRequirements(styleProfile);
console.log(`Requirements: ${requirements.name} (${requirements.steps} phases)`);
const result = await generateSkillPackage(requirements);
console.log(`✅ Generated: ${result.skillPath}`);
return result;
}
Output Structure
Minimal Package (default):
.claude/skills/{skill-name}/
├── SKILL.md # Entry point with frontmatter
└── README.md # Usage guide
With Templates (if needed):
.claude/skills/{skill-name}/
├── SKILL.md
├── README.md
└── templates/
└── base-template.md
With Scripts (if using Bash):
.claude/skills/{skill-name}/
├── SKILL.md
├── README.md
└── scripts/
└── helper.sh
Key Design Principles
- Style Learning - Analyze reference skills to maintain consistency
- Minimal Overhead - Generate only essential files (SKILL.md + README)
- Progressive Disclosure - Follow anthropics' three-layer loading
- Flow-Based - Use pseudocode and flow diagrams (when style appropriate)
- Interactive - Guided requirements gathering via AskUserQuestion
- Fast Generation - 3 phases instead of 6, focused on simplicity
- Style Awareness - Adapt output based on detected patterns
Style Pattern Detection
Structural Patterns:
- YAML frontmatter usage (100% in references)
- Section headers (H2 for major, H3 for sub-sections)
- Code blocks (JavaScript pseudocode, Bash examples)
- ASCII diagrams (architecture, flow charts)
Language Patterns:
- Instruction style: Procedural with function definitions
- Pseudocode: JavaScript-based with flow annotations
- Verbosity: Detailed but focused
- Terminology: Phase, workflow, pipeline, orchestrator
Organization Patterns:
- Phase structure: 3-5 sequential phases
- Example density: Moderate (1-2 per major section)
- Template usage: Minimal (only when necessary)
Usage Examples
Basic Generation:
User: "Create a markdown formatter skill"
Lite-Skill-Generator:
→ Analyzes ccw.md style
→ Asks: Name? "markdown-formatter"
→ Asks: Purpose? "Transformation"
→ Asks: Steps? "3 steps"
→ Generates: .claude/skills/markdown-formatter/
With Custom References:
User: "Create a skill like software-manual but simpler"
Lite-Skill-Generator:
→ Analyzes software-manual skill
→ Learns: Multi-phase, agent-based, template-heavy
→ Simplifies: 3 phases, direct execution, minimal templates
→ Generates: Simplified version
Comparison: lite-skill-generator vs skill-generator
| Aspect | lite-skill-generator | skill-generator |
|---|
| Phases | 3 (Style → Req → Gen) | 6 (Spec → Req → Dir → Gen → Specs → Val) |
| Style Learning | Yes (analyze references) | No (fixed templates) |
| Complexity | Simple skills only | Full-featured skills |
| Output | Minimal (SKILL.md + README) | Complete (phases/, specs/, templates/) |
| Generation Time | Fast (~2 min) | Thorough (~10 min) |
| Use Case | Quick scaffolding | Production-ready skills |
Workflow Integration
Standalone:
/skill:lite-skill-generator "Create a log analyzer skill"
With References:
/skill:lite-skill-generator "Create a skill based on ccw-coordinator.md style"
Batch Generation (for multiple simple skills):
/skill:lite-skill-generator "Create 3 skills: json-validator, yaml-parser, toml-converter"
Next Steps After Generation:
- Review
.claude/skills/{name}/SKILL.md
- Customize phase logic for your use case
- Add examples to README.md
- Test skill with sample input
- Iterate based on real usage