skills/skill-forge/SKILL.md
Orchestrates all skill development — required before writing or editing any SKILL.md file. Unified 6-step workflow with automated validation, CSO scoring, register checks, and subagent testing. Triggers on 'create skill', 'new skill', 'validate skill', 'check skill quality', 'improve skill discovery', 'check this skill', 'write SKILL.md', 'edit SKILL.md', 'update skill description', 'can I share this', 'scan for sharing'. (user)
npx skillsauth add spm1001/claude-suite skill-forgeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Unified skill development toolkit. Supersedes skill-creator — combines its creation process with quality validation, description optimization, and testing.
Iron Law: Skills must be discovered to be useful. The description is everything.
Even when the task seems simple, forge adds value you can't get from training alone:
# 1. Initialize new skill
scripts/init_skill.py my-skill --path ~/.claude/skills
# 2. Edit SKILL.md (see Workflow below)
# 3. Lint for structure issues
${CLAUDE_SKILL_DIR}/scripts/lint_skill.py /path/to/skill
# 4. Score description quality (CSO)
${CLAUDE_SKILL_DIR}/scripts/score_description.py /path/to/skill
# 5. Test with subagent (optional but recommended)
${CLAUDE_SKILL_DIR}/scripts/test_skill.py /path/to/skill
# 6. Package for distribution (optional)
${CLAUDE_SKILL_DIR}/scripts/package_skill.py /path/to/skill
Goal: Know exactly how the skill will be used before building.
Questions to answer:
Exit criterion: Clear list of trigger phrases and expected behaviors.
Analyze each example to identify:
| Content Type | When to Include | Example |
|--------------|-----------------|---------|
| scripts/ | Same code rewritten repeatedly | rotate_pdf.py |
| references/ | Documentation Claude should reference | schema.md |
| assets/ | Files used in output (not loaded) | template.pptx |
Exit criterion: List of scripts/references/assets to create.
scripts/init_skill.py <skill-name> --path <directory>
Creates SKILL.md template, example scripts/references/assets. Delete unneeded files.
Order matters:
---
name: kebab-case-name
description: [See CSO Patterns below]
---
Body sections:
| Good | Bad | Why |
|------|-----|-----|
| systematic-debugging | debug | Verb, not capability |
| workspace-fluency | utils | Generic, no information |
| test-driven-development | pdf-helper | "helper" is meaningless |
| desired-outcomes | my-skill | Doesn't describe purpose |
The description determines discovery. Pattern: [ACTION VERB] + [LIFECYCLE CONTEXT] + [METHOD/VALUE PREVIEW]
Best: Clear lifecycle positioning with specific context
description: Orchestrates skill development — required before writing or editing any SKILL.md file. Unified 6-step workflow with automated validation, CSO scoring, and subagent testing.
Why: third-person verb, "required before" positioning, specific context ("any SKILL.md file"), method preview.
Good: Specific trigger with method preview
description: Guides systematic debugging before proposing fixes. 4-phase framework (root cause, pattern analysis, hypothesis testing, implementation) ensures understanding before solutions. Triggers on 'test failing', 'unexpected behavior', 'debug this'.
Why: specific trigger + lifecycle positioning + method preview + value statement.
Good: Natural phrase triggers
description: Coaches on outcome quality. Triggers on 'check my outcomes', 'is this a good outcome', 'review my Todoist' when discussing strategic work.
Why: explicit phrases in quotes, context qualifier.
Good: Scope boundaries to prevent over-triggering
description: Advanced data analysis for CSV files — statistical modelling, regression, clustering. For simple data exploration, use data-viz skill instead.
Why: clear scope boundary in description steers Claude before body loads.
When to add scope boundaries:
Patterns to improve:
| Pattern | Problem | Better |
|---------|---------|--------|
| "Helps with..." | Vague, no trigger | Specific phrases in quotes |
| "Use when creating..." | Too generic | "Required before..." or "Orchestrates..." |
| No timing condition | Claude treats invocation as optional | Add lifecycle positioning: "before", "first" |
| Generic actions | Claude "knows" without loading | Domain-specific phrases |
| Command doesn't name skill | Skill not discoverable | "Invoke the name skill" |
| Over-triggers on related topics | Loads when it shouldn't | Add scope boundary in description |
Run scripts/score_description.py to validate. See references/cso-guide.md for full guidance.
# Automated lint (structure, naming, frontmatter)
scripts/lint_skill.py <skill-path>
# CSO score (description quality)
scripts/score_description.py <skill-path>
# Subagent test (discovery + workflow)
scripts/test_skill.py <skill-path>
All checks should pass before Step 6.
scripts/package_skill.py <skill-path> [output-dir]
Creates .skill file (zip format) for distribution.
(user) tag for user-defined skillsSee references/skill-patterns.md for full taxonomy. Summary:
| Type | Key Feature | Description Pattern |
|------|-------------|-------------------|
| Process | Phases with gates | Lifecycle positioning (before/first) |
| Fluency | Tool best practices | Specific trigger phrases |
| Coaching | Quality criteria | Natural language triggers |
| Gate | Checklist validation | Required before... |
| Skill+CLI | Orchestrates CLI tool | Required before any cli command |
When skill orchestrates a CLI tool. See references/skill-cli-pattern.md for full template.
# {skill-name}
Orchestrates {domain} using `{cli}` command.
## CLI Reference
## Workflows
## When Skill Extends CLI (coaching, quality criteria)
## Error Recovery
| Mistake | Symptom | Better | |---------|---------|--------| | "Use when creating..." | Claude bypasses skill | "Required before..." | | "Helps with..." | Skill never invoked | Specific trigger phrases | | No lifecycle positioning | Claude treats invocation as optional | Add "before", "first", "required" | | Generic actions | Claude "knows" without loading | Domain-specific phrases |
| Mistake | Symptom | Better | |---------|---------|--------| | SKILL.md > 500 lines | Token bloat | Split into references/ | | Name doesn't match dir | Skill not found | Keep synchronized | | Deeply nested refs | Discovery fails | One level deep max |
| Mistake | Symptom | Better | |---------|---------|--------| | Explaining known things | Wastes tokens | Domain-specific only | | Magic constants | Unclear reasoning | Justify all values | | Many options, no default | Analysis paralysis | Recommend one path | | Heavy threat/urgency language | Corner-cutting, concealment | Frame constraints as craft standards |
---
name: kebab-case-name
description: [ACTION VERB] + [LIFECYCLE CONTEXT] + [METHOD/VALUE]. Triggers on 'phrase1', 'phrase2'. (user)
---
# Skill Title
[What good work looks like — the core principle]
## When to Use
[Specific triggers with examples]
## Boundaries
[What this skill is not for]
## Workflow
[Steps with success criteria]
## Common Mistakes
[Pitfalls and better alternatives]
| File | Purpose | When Required | |------|---------|---------------| | SKILL.md | Core instructions | Always | | references/.md | Detailed guides | When SKILL.md > 500 lines | | scripts/.py | Utility scripts | When deterministic code needed | | assets/* | Output templates | When Claude uses files in output |
Run the sharing scanner:
scripts/scan.py <skill-path>
scripts/scan.py --risk high <skill-path> # High-risk only
Detects: emails, paths with usernames, secrets, company terms.
See references/sharing-scan.md for triage guidelines.
Anthropic scripts (symlinked from skill-creator):
init_skill.py — generate templatepackage_skill.py — create .skill fileForge scripts:
lint_skill.py — automated structure validationscore_description.py — CSO quality scoringtest_skill.py — subagent pressure testingscan.py — PII/secrets scanner for sharingrender_graphs.py — DOT workflow diagrams to SVGreferences/cso-guide.md — Claude Search Optimization principlesreferences/skill-cli-pattern.md — Skill+CLI templatereferences/skill-patterns.md — Pattern taxonomy with examplesreferences/rationalization-table.md — Why this skill exists even when the task seems simplereferences/register-principles.md — Emotional register guidelines for instructional textreferences/sharing-scan.md — Sharing triage guidelinesreferences/dot-graphs.md — DOT graph syntax for workflow diagramstools
Orchestrates cross-machine repo hygiene + GitHub account cleanup via an audit→approve→execute process that prevents accidental deletion. FIRST sweeps every git repo across machines (local + ssh) for uncommitted/unpushed work and true ahead/behind drift, THEN audits GitHub-side — Dependabot alerts traced to unused-direct vs transitive deps, stale forks, orphaned secrets, failing workflows, plugin version-bump gaps. Triggers on 'clean up GitHub', 'audit my repos', 'uncommitted or unpushed changes', 'are my repos in sync', 'push discipline', 'Dependabot trouble', 'unused deps', 'stale forks', 'dependency audit'. Requires gh CLI (+ ssh for remote hosts). (user)
development
Deep clean and structural health check for Claude-maintained codebases. INVOKE BEFORE adding significant complexity, WHEN inheriting an unfamiliar repo, or when something feels off and you can't name it. Three agents — Cracks (architecture), Dustballs (convention drift), Goofs (correctness) — examine in parallel, then synthesise into an honest assessment. Triggers on 'toise', 'deep clean', 'health check', 'should I be worried', 'check this codebase', 'is the architecture sound'. (user)
development
Three-lens code review using parallel subagents: Epimetheus (hindsight — bugs, debt, fragility), Metis (craft — clarity, idiom, fit-for-purpose), Prometheus (foresight — vision, extensibility, future-Claude). Triggers on /titans, /review, 'review this code', 'what did I miss', 'before I ship this'. Use after completing substantial work, before /close. (user)
development
Controls InnerClaude instances on Sprites.dev VMs for testing workflows, install patterns, and Claude-to-Claude interaction. INVOKE BEFORE any 'sprite exec', 'inner Claude', 'test this workflow', 'Claude controlling Claude', or remote VM operations. Documents the critical tmux+pipe-pane pattern that makes OuterClaude/InnerClaude interaction work. Also covers checkpoint/restore and bootstrap. (user)