skills/skill-forge/SKILL.md
Creates new Claude Code skills with proper structure and best practices. Use when user wants to create a skill, update an existing skill, add a new command, scaffold a workflow, define skill hooks, or asks "how do I make a skill".
npx skillsauth add antoniocascais/claude-code-toolkit 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.
Creates Claude Code skills following official best practices.
Claude is already smart. Only include domain-specific context it lacks:
Match instruction specificity to task fragility:
| Level | When | Example | |-------|------|---------| | High freedom | Multiple valid approaches | Code review (heuristics, not rigid steps) | | Medium freedom | Preferred pattern exists | Reports (customizable scripts) | | Low freedom | Fragile operations | DB migrations (exact commands, no deviation) |
Context loads in 3 levels:
Use AskUserQuestion to collect:
Skill name - lowercase, hyphens only, ≤64 chars
pdf-processor, code-reviewer, deploy-helperPDF_Processor, my cool skillDescription - what it does + when to use it (≤1024 chars)
Allowed tools (optional) - restrict capabilities
Read Glob Grepallowed-tools:
- Read
- Write
- Bash(git:*)
Bash(git:*), Bash(git diff:*)Complexity - determines resource structure
Execution context (optional)
context: forkagent: Explore / Planmodel: haiku / sonnet / opusInvocation control (optional)
disable-model-invocation: trueuser-invocable: falseArguments (optional)
$ARGUMENTS in bodyargument-hint: [issue-number]Hooks (optional) - lifecycle automation
references/hooks.md for patterns- Only lowercase letters, numbers, hyphens
- No leading/trailing hyphens, no consecutive hyphens
- ≤64 characters
- Not reserved: anthropic, claude
- Must match parent directory name
Default location: ~/.claude/skills/{skill-name}/
Create SKILL.md with:
---
name: {skill-name}
description: {description}
allowed-tools: {tools} # optional: space-delimited or YAML list
context: fork # optional: isolated execution
agent: {agent-type} # optional: Explore, Plan, general-purpose
model: {model} # optional: haiku, sonnet, opus
disable-model-invocation: true # optional: user-only invocation
user-invocable: false # optional: Claude-only invocation
argument-hint: {hint} # optional: autocomplete hint
hooks: {} # optional: see references/hooks.md
---
Generate skill body matching the degree of freedom needed. Use imperative/infinitive form for instructions.
✅ Skill created at: ~/.claude/skills/{skill-name}/
✅ Skill is immediately available (hot-reload enabled)
Inform user of the iteration loop:
Two fields control who can invoke a skill and how it loads into context:
| Frontmatter | User can invoke | Claude can invoke | Context loading |
|-------------|----------------|-------------------|-----------------|
| (default) | Yes | Yes | Description always in context, body loads when invoked |
| disable-model-invocation: true | Yes | No | Description NOT in context, body loads when user invokes |
| user-invocable: false | No | Yes | Description always in context, body loads when invoked |
When to use disable-model-invocation: true:
When to use user-invocable: false:
legacy-system-context — Claude should know it, but /legacy-system-context isn't a meaningful user actionSequential: Step 1 → 2 → 3 (most skills)
Conditional: Decision trees based on input type or user choice (see webapp-testing/)
Multi-phase: Plan → validate → execute → verify (for destructive operations)
For enforcing phase gates (hard stops between phases), see references/advanced-features.md.
For resource types (scripts/, references/, assets/) and their context loading behavior, see references/spec-reference.md.
examples/ subdirectories)For isolated execution (context: fork), string substitution ($ARGUMENTS), dynamic context injection, phase gates, and skill hooks — see references/advanced-features.md.
For skill hook syntax and patterns, see references/hooks.md.
For the condensed field spec, directory structure, and description budget, see references/spec-reference.md.
Generated skill examples at each complexity level:
references/examples/simple.md — SKILL.md only, no resourcesreferences/examples/medium.md — with references/ and allowed-toolsUse these as templates when generating skills. For more examples: git clone https://github.com/anthropics/skills.git /tmp/claude-skills-examples
Before creating, check if a skill already exists: ls ~/.claude/skills/{name}/. If it does, ask the user whether to update or choose a different name.
Common causes:
description: "Deploy helper: automates releases"--- delimiters (need both opening and closing)The description is the primary discovery mechanism. Check:
Before finalizing:
examples/ subdirectories)disable-model-invocation: truecompatibility fieldtools
Reviews Claude Code sessions and proposes workflow improvements. Use when: (1) /workflow-review command, (2) "review my workflow", "how can I improve", (3) after long sessions when nudged, (4) start of session with pending review. Analyzes tool usage patterns, CLAUDE.md configuration, and compares against CC best practices. Proposes: CLAUDE.md updates, new skills, underused CC features. Saves session summaries to .claude/workflow-reviews/ for cross-session continuity.
devops
Activates voice conversation mode using Pocket TTS Docker container. Use when user says "voice mode", "let's talk", "talk to me", "speak your responses", or wants Claude to respond with spoken audio. Speaks all responses through TTS and plays via speakers.
testing
Guides strong, effective unit test generation using proven testing techniques. Use when writing unit tests, reviewing test quality, improving existing tests, generating test cases, checking test coverage strength, or when tests exist but may be weak. Triggers on: unit test, test quality, test coverage, write tests, improve tests, review tests, test strength, mutation testing, boundary testing.
testing
Generates multiple choice quiz questions based on current conversation context. Use when testing understanding, reviewing what was discussed, or wanting a knowledge check on the session.