skill-architect
π―Skillfrom erichowens/some_claude_skills
Systematically creates, validates, and improves Agent Skills by encoding domain expertise and preventing incorrect activations.
Installation
npx skills add https://github.com/erichowens/some_claude_skills --skill skill-architectSkill Details
Authoritative meta-skill for creating, auditing, and improving Agent Skills. Combines skill-coach expertise with skill-creator workflows. Use for skill creation, validation, improvement, activation debugging, and progressive disclosure design. NOT for general Claude Code features, runtime debugging, or non-skill coding.
Overview
# Skill Architect: The Authoritative Meta-Skill
The unified authority for creating expert-level Agent Skills. Combines systematic workflow from skill-creator with domain expertise encoding from skill-coach.
Philosophy
Great skills are progressive disclosure machines that encode real domain expertise (shibboleths), not just surface instructions. They activate precisely, teach efficiently, and make users productive immediately.
---
When to Use This Skill
β Use for:
- Creating new skills from scratch
- Auditing/reviewing existing skills
- Improving activation rates
- Adding domain expertise
- Debugging why skills don't activate
- Encoding anti-patterns and shibboleths
- Building self-contained tools (scripts, MCPs, subagents)
β NOT for:
- General Claude Code features (slash commands, MCPs)
- Non-skill coding advice
- Debugging runtime errors (use domain-specific skills)
- Template generation without domain expertise
---
Quick Wins (Immediate Improvements)
For existing skills, apply these in order:
- Add NOT clause β Prevent false activation
- Check line count β SKILL.md should be <500 lines
- Add 1-2 anti-patterns β Prevent common mistakes
- Remove dead files β Delete unreferenced scripts/references
- Test activation β Write queries that should/shouldn't trigger
Run validation:
```bash
python scripts/validate_skill.py
python scripts/check_self_contained.py
```
---
What Makes a Great Skill
Great skills have these 7 qualities:
- Activate precisely - Specific keywords + NOT clause
- Encode shibboleths - Expert knowledge that separates novice from expert
- Surface anti-patterns - "If you see X, that's wrong because Y, use Z"
- Capture temporal knowledge - "Pre-2024: X. 2024+: Y"
- Know their limits - "Use for A, B, C. NOT for D, E, F"
- Provide decision trees - Not templates, but "If X then A, if Y then B"
- Stay under 500 lines - Core in SKILL.md, deep dives in
/references
---
Progressive Disclosure Principle
Skills use a three-level loading system:
| Level | Content | Size | When Loaded |
|-------|---------|------|-------------|
| 1. Metadata | name + description | ~100 tokens | Always in context |
| 2. SKILL.md | Core instructions | <5k tokens | When skill triggers |
| 3. Resources | Scripts, references, assets | Unlimited | As Claude needs them |
Critical: Keep SKILL.md under 500 lines. Move details to /references.
---
Skill Structure
Mandatory
```
your-skill/
βββ SKILL.md # Core instructions (max 500 lines)
```
Strongly Recommended (Self-Contained Skills)
```
βββ scripts/ # Working code - NOT templates
βββ mcp-server/ # Custom MCP if external APIs needed
βββ agents/ # Subagent definitions for orchestration
βββ references/ # Deep dives on domain knowledge
βββ CHANGELOG.md # Version history
```
Philosophy: Skills with working tools are immediately useful.
---
SKILL.md Template
```markdown
---
name: your-skill-name
description: [What] [When] [Triggers]. NOT for [Exclusions].
allowed-tools: Read,Write # Minimal only
---
# Skill Name
[One sentence purpose]
When to Use
β Use for: [A, B, C with specific keywords]
β NOT for: [D, E, F - be explicit]
Core Instructions
[Step-by-step decision trees, not templates]
Common Anti-Patterns
[Pattern Name]
Novice thinking: [Wrong assumption]
Reality: [Why it's wrong]
Correct approach: [Better way]
Timeline: [When this changed]
References
/references/deep-dive.md- [When to consult]
```
---
Description Formula
[What] [When] [Keywords] NOT for [Exclusions]
Examples:
β Bad: "Helps with images"
β οΈ Better: "Image processing with CLIP"
β Good: "CLIP semantic search. Use for image-text matching, zero-shot classification. Activate on 'CLIP', 'embeddings', 'similarity'. NOT for counting objects, spatial reasoning, or fine-grained classification."
---
Frontmatter Rules (CRITICAL)
Only these keys are allowed by Claude's skill marketplace:
| Key | Required | Purpose |
|-----|----------|---------|
| name | β
| Lowercase-hyphenated identifier |
| description | β
| Activation keywords + NOT clause |
| allowed-tools | β οΈ | Comma-separated tool names |
| license | β | e.g., "MIT" |
| metadata | β | Custom key-value pairs |
Invalid keys that WILL FAIL upload:
```yaml
# β WRONG - These break skill upload
integrates_with: [...]
triggers: [...]
tools: Read,Write # Use 'allowed-tools' instead
outputs: [...]
coordinates_with: [...]
python_dependencies: [...]
```
Move custom info to body under appropriate headings.
---
The 6-Step Skill Creation Process
Step 1: Understand with Concrete Examples
Skip only if usage patterns are already clear.
Ask:
- "What functionality should this skill support?"
- "Can you give examples of how it would be used?"
- "What would trigger this skill?"
Example queries (for an image-editor skill):
- "Remove red-eye from this image"
- "Rotate this photo 90 degrees"
- "Adjust brightness and contrast"
Conclude when you have 3-5 concrete examples.
---
Step 2: Plan Reusable Contents
For each example, analyze:
- How to execute from scratch
- What scripts/references/assets would help with repeated execution
Example analyses:
| Skill | Example | Needs |
|-------|---------|-------|
| pdf-editor | "Rotate this PDF" | scripts/rotate_pdf.py |
| frontend-builder | "Build a todo app" | assets/hello-world/ template |
| big-query | "How many users logged in?" | references/schema.md |
| photo-expert | "Improve composition" | scripts/analyze_composition.py |
Shibboleths to encode:
- Domain-specific algorithms
- Common pitfalls and anti-patterns
- Temporal knowledge (what changed when)
- Framework evolution patterns
---
Step 3: Initialize the Skill
For new skills, run the init script:
```bash
scripts/init_skill.py
```
This creates:
- SKILL.md template with proper frontmatter
- Example
scripts/,references/,assets/directories - TODO placeholders to customize
For existing skills, skip to Step 4.
---
Step 4: Edit the Skill
#### Write in Imperative/Infinitive Form
Use objective, instructional language:
- β "To accomplish X, do Y"
- β "When Z occurs, execute A"
- β "You should do X"
- β "If you need to do Z"
#### Start with Reusable Contents
Implement in this order:
- Scripts (
scripts/) - Working code for repeatable operations - References (
references/) - Domain knowledge, schemas, detailed guides - Assets (
assets/) - Templates, boilerplate, files used in output
Delete example files that aren't needed.
#### Update SKILL.md
Answer these questions:
- Purpose: What is this skill for? (1-2 sentences)
- When to use: Specific triggers and exclusions
- How to use: Reference all bundled resources so Claude knows they exist
- Anti-patterns: What mistakes do novices make?
- Temporal context: What changed and when?
---
Step 5: Validate and Package
```bash
# Validate structure and content
python scripts/validate_skill.py
# Check self-contained tool completeness
python scripts/check_self_contained.py
# Package for distribution (validates first)
python scripts/package_skill.py
```
Fix all ERRORS, then WARNINGS, then SUGGESTIONS.
---
Step 6: Iterate
After real-world use:
- Notice struggles or inefficiencies
- Identify how SKILL.md or bundled resources should improve
- Implement changes and test again
- Update CHANGELOG.md
Recursive self-improvement: Use this skill to improve skills.
---
Encoding Shibboleths (Expert Knowledge)
What Are Shibboleths?
Knowledge that separates novices from experts - things LLMs get wrong because training data includes:
- Outdated patterns
- Oversimplified tutorials
- Cargo-culted code
Shibboleth Template
```markdown
Anti-Pattern: [Name]
Novice thinking: "[Wrong assumption]"
Reality: [Fundamental reason it's wrong, with research/data]
Timeline:
- [Date range]: [Old approach] was common
- [Date]: [Change event]
- [Current]: [New approach]
What to use instead:
| Task | Tool | Why |
|------|------|-----|
| [Use case] | [Correct tool] | [Reason] |
LLM mistake: [Why LLMs suggest old pattern]
How to detect: [Validation rule]
```
Example Shibboleths to Encode
- Framework Evolution
- React: Class components β Hooks β Server Components
- Next.js: Pages Router β App Router
- State management: Redux β Zustand/Jotai/React Query
- Model Selection
- CLIP limitations (can't count, can't do spatial reasoning)
- Embedding model specialization (text vs code vs multi-lingual)
- Model versioning (ada-002 vs text-embedding-3-large)
- Tool Architecture
- When to use MCP vs Scripts vs Subagents
- Premature abstraction anti-pattern
- Self-contained tool benefits
---
Self-Contained Tools
Decision Matrix
| Need | Use |
|------|-----|
| External API + auth | MCP Server |
| Multi-step workflow | Subagents |
| Repeatable operation | Scripts |
| Domain validation | Scripts |
| Templates/boilerplate | Assets |
| Deep reference docs | References |
Scripts
Requirements:
- Actually work (not templates or pseudocode)
- Minimal dependencies (prefer stdlib)
- Clear interface (CLI args or stdin/stdout)
- Error handling (graceful failures)
- README (how to install and run)
Example:
```python
#!/usr/bin/env python3
"""
Domain Analyzer
Usage: python analyze.py
Dependencies: pip install numpy
"""
import sys
def analyze(input_path):
# Import here for helpful error
try:
import numpy as np
except ImportError:
print("Install: pip install numpy")
sys.exit(1)
# Actual implementation
result = {"score": 0.85}
return result
if __name__ == "__main__":
if len(sys.argv) != 2:
print(f"Usage: {sys.argv[0]} ")
sys.exit(1)
result = analyze(sys.argv[1])
for k, v in result.items():
print(f"{k}: {v}")
```
MCP Servers
When to build:
- External API with authentication
- Stateful connections (WebSocket, database)
- Real-time data streams
- Security boundaries (credentials, OAuth)
Structure:
```
mcp-server/
βββ src/index.ts # Server implementation
βββ package.json # Dependencies
βββ tsconfig.json # Config
βββ README.md # Setup instructions
```
Minimal MCP template: See /references/mcp-template.md
Subagents
When to define:
- Multi-step workflows
- Different phases need different tool access
- Orchestration logic is complex
Definition format: See /references/subagent-template.md
---
Common Workflows
Create Skill from Expertise
- Define scope: What expertise? Keywords? Exclusions?
- Write description with keywords and NOT clause
- Encode anti-patterns and shibboleths
- Add decision trees (not just instructions)
- Build working tools (scripts/MCP/subagents)
- Test activation thoroughly
Debug Activation Issues
Flowchart:
```
Skill not activating?
βββ Check description has specific keywords
β βββ NO β Add "Activate on: keyword1, keyword2"
β βββ YES β Query contains those keywords?
β βββ NO β Add missing variations
β βββ YES β Conflicting NOT clause?
β βββ YES β Narrow exclusions
β βββ NO β Check file structure
β βββ Wrong location β Move to .claude/skills/
Skill activating when it shouldn't?
βββ Missing NOT clause?
β βββ YES β Add "NOT for: exclusion1, exclusion2"
β βββ NO β NOT clause too narrow
β βββ Expand based on false positives
```
Run: python scripts/test_activation.py
Improve Existing Skill
- Run
python scripts/validate_skill.py - Run
python scripts/check_self_contained.py - Address ERRORS β WARNINGS β SUGGESTIONS
- Add missing shibboleths and anti-patterns
- Ensure <500 lines in SKILL.md
- Re-validate until clean
- Update CHANGELOG.md
---
Tool Permissions
Guidelines:
- Read-only:
Read,Grep,Glob - File modifier:
Read,Write,Edit - Build integration:
Read,Write,Bash(npm:,git:) - β οΈ Never: Unrestricted
Bashfor untrusted skills
Principle: Least privilege - only grant what's needed.
---
Decision Trees
When to Create a NEW Skill?
β Create when:
- Domain expertise not in existing skills
- Pattern repeats across 3+ projects
- Anti-patterns you want to prevent
- Shibboleths to encode
β Don't create when:
- One-time task β Just do it directly
- Existing skill could be extended β Improve that one
- No real expertise to encode β Not worth it
Skill vs Subagent vs MCP vs Script?
| Type | Purpose | State | Auth | Example |
|------|---------|-------|------|---------|
| Skill | Domain expertise, decision trees | None | None | react-server-components |
| Script | Repeatable operations | None | None | validate_skill.py |
| Subagent | Multi-step workflows | Session | Inherited | research-coordinator |
| MCP | External APIs, auth | Persistent | Required | github-mcp-server |
---
Anti-Patterns to Avoid
1. Skill as Documentation Dump
β Wrong: 50-page tutorial in SKILL.md
β
Right: Decision trees + anti-patterns in SKILL.md, details in /references
2. Missing "When NOT to Use"
β Wrong: description: "Processes images using computer vision"
β
Right: description: "CLIP semantic search. NOT for generation, editing, OCR, counting."
3. Phantom Tools
β Wrong: SKILL.md references scripts/analyze.py that doesn't exist
β Right: Only reference tools that exist and work
4. Template Soup
β Wrong: Scripts with # TODO: implement comments
β Right: Ship working code or don't ship at all
5. No Validation Script
β Wrong: Instructions with no way to check correctness
β
Right: Include scripts/validate.py for pre-flight checks
6. Overly Permissive Tools
β Wrong: allowed-tools: Bash
β
Right: allowed-tools: Bash(git:*,npm:run),Read,Write
7. Ignoring Temporal Knowledge
β Wrong: "Use useEffect for componentDidMount"
β Right: "Pre-React 18: useEffect=didMount. React 18+: runs TWICE in dev. Use refs for run-once."
---
Success Metrics
| Metric | Target | How to Measure |
|--------|--------|----------------|
| Correct activation | >90% | Test queries that should trigger |
| False positive rate | <5% | Test queries that shouldn't trigger |
| Token usage | <5k | SKILL.md size + typical reference loads |
| Time to productive | <5 min | User can start working immediately |
| Anti-pattern prevention | >80% | Users avoid documented mistakes |
---
Validation Checklist
Before packaging a skill:
```
β‘ SKILL.md exists and is <500 lines
β‘ Frontmatter has name, description, allowed-tools
β‘ Description includes specific keywords
β‘ Description includes NOT clause for exclusions
β‘ At least 1 anti-pattern documented
β‘ All referenced scripts/tools actually exist
β‘ Scripts have clear installation instructions
β‘ Scripts handle errors gracefully
β‘ If MCP needed, server is complete and tested
β‘ If subagents needed, prompts are defined
β‘ CHANGELOG.md exists with version history
β‘ Validation scripts pass without errors
```
---
Reference Files
For deep dives on specific topics:
| File | Contents |
|------|----------|
| references/antipatterns.md | Shibboleths and case studies |
| references/self-contained-tools.md | Scripts, MCP, subagent patterns |
| references/validation-checklist.md | Complete review guide |
| references/scoring-rubric.md | Quantitative evaluation (0-10) |
| references/mcp-template.md | Minimal MCP server starter |
| references/subagent-template.md | Agent definition format |
---
Real-World Case Studies
Case Study 1: Photo Expert Explosion
Problem: Single skill for ALL photo operations (800+ lines)
Symptoms: Activated on "photo" anywhere, wrong advice given
Root cause: "Everything Skill" anti-pattern
Resolution: Split into 5 focused skills (CLIP, composition, color theory, collage, event detection)
Lesson: One domain β one skill. Split by expertise type.
Case Study 2: The Phantom MCP
Problem: SKILL.md referenced non-existent MCP server
Symptoms: Users ran commands that didn't exist
Root cause: Reference Illusion anti-pattern
Resolution: Added check_self_contained.py to CI
Lesson: Don't promise tools you don't deliver.
Case Study 3: The Time Bomb
Problem: Temporal knowledge became stale (React hooks advice from 2023)
Symptoms: Skill became actively harmful in 2024
Root cause: Missing temporal markers
Resolution: Added "Pre-React 18 vs React 18+" sections
Lesson: Date your knowledge. Update quarterly.
---
This Skill Guides
- β Skill creation from expertise
- β Skill auditing and improvement
- β Anti-pattern detection and prevention
- β Progressive disclosure design
- β Domain expertise encoding (shibboleths)
- β Self-contained tool implementation
- β Activation debugging and optimization
- β Validation and packaging workflows
Use this skill to create skills that make users immediately productive.
More from this repository10
Builds production-ready LLM applications with advanced RAG, vector search, and intelligent agent architectures for enterprise AI solutions.
Conducts comprehensive market research, competitive analysis, and evidence-based strategy recommendations across diverse landscapes and industries.
Generates harmonious color palettes using color theory principles, recommending complementary, analogous, and triadic color schemes for design projects.
Performs semantic image-text matching using CLIP embeddings for zero-shot classification, image search, and similarity tasks.
Manages real-time streaming responses from language models, enabling smooth parsing, buffering, and event-driven handling of incremental AI outputs
Analyzes and refines typography, providing expert guidance on font selection, kerning, readability, and design consistency across digital and print media
Validates and enforces output quality by checking agent responses against predefined schemas, structural requirements, and content standards.
Systematically builds comprehensive visual design databases by analyzing 500-1000 real-world examples across diverse domains, extracting actionable design patterns and trends.
Intelligently coordinates multiple specialized skills, dynamically decomposes complex tasks, synthesizes outputs, and creates new skills to fill capability gaps.
Analyze and optimize audio tracks by applying professional mixing techniques, EQ adjustments, and mastering effects for high-quality sound production