skills/skill-creator/SKILL.md
Creates new skills, either generic for the global catalog or specific to the current project. Trigger: /skill-create <name>, create skill, new skill, generate skill, add skill to project.
npx skillsauth add fearovex/claude-config skill-creatorInstall 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 new skills, either generic for the global catalog or specific to the current project.
Triggers: skill:create, create skill, new skill, generate skill
/skill-create <name>Creates a new skill that does not exist anywhere. Asks whether it is:
~/.claude/skills/<name>/SKILL.md (available in all projects).claude/skills/<name>/SKILL.md (only in this project)EXCEPTION —
agent-configrepo: this repo IS the source of~/.claude/. When working inside it:
- "Generic" placement → write to
<repo>/skills/<name>/SKILL.md(NOT~/.claude/skills/).install.shdeploys it.- "Project-specific" does NOT apply — the repo has no
.claude/of its own; everything it owns is global.- NEVER write directly to
~/.claude/skills/from this repo; the nextinstall.shoverwrites it.
/skill-add <name>Adds an existing skill from the global catalog to the current project. Copies or creates a reference.
Context detection (run before presenting the placement prompt):
is_claude_config = (
file_exists("install.sh")
AND (
project root contains install.sh AND skills/_shared/
OR basename(cwd) == "agent-config"
)
)
has_project_context = (
dir_exists(".claude")
)
is_tech_skill = name matches any of:
react*, vue*, angular*, svelte*, next*, nuxt*, remix*,
prisma*, drizzle*, sequelize*, typeorm*, mongoose*,
zod*, yup*, valibot*,
tailwind*, bootstrap*, chakra*,
typescript*, javascript*, node*,
python*, django*, fastapi*, flask*,
rails*, laravel*, spring*,
go-*, rust-*, kotlin*, swift*,
zustand*, redux*, jotai*, mobx*, recoil*,
react-native*, expo*,
playwright*, vitest*, jest*, cypress*, storybook*
if is_tech_skill AND NOT is_claude_config:
default_placement = "project-local" → option 1
rationale = "Tech-specific skills belong in the consuming project's
.claude/skills/, not the global catalog. See CLAUDE.md rule."
elif is_tech_skill AND is_claude_config:
default_placement = "_templates/tech/" → option 3 (template-only)
rationale = "In agent-config repo, tech skills go to skills/_templates/tech/
so skill-creator can scaffold them into consumer projects."
elif has_project_context AND NOT is_claude_config:
default_placement = "project-local" → option 1
else:
default_placement = "global" → option 2
Ask the necessary questions to create a useful skill.
The placement prompt MUST reflect the detected default using the [DEFAULT] marker:
When default_placement = "project-local":
Is this skill for this specific project or for all your projects?
1. This project only → .claude/skills/ [DEFAULT]
2. Global catalog → ~/.claude/skills/
What does this skill do? (one-sentence description)
When should it activate? (what situations trigger its use?)
Are there specific code patterns, commands, or processes it should know about?
When default_placement = "global":
Is this skill for this specific project or for all your projects?
1. This project only → .claude/skills/
2. Global catalog → ~/.claude/skills/ [DEFAULT]
What does this skill do? (one-sentence description)
When should it activate? (what situations trigger its use?)
Are there specific code patterns, commands, or processes it should know about?
When default_placement = "_templates/tech/" (tech skill inside agent-config repo):
This is a tech-specific skill. It will NOT be deployed globally.
Save as a template at `skills/_templates/tech/<name>/` so `skill-creator`
can scaffold it into consumer projects on demand.
Confirm [Y/n]:
When context is ambiguous (neither has_project_context nor is_claude_config matches):
Is this skill for this specific project or for all your projects?
1. This project only → .claude/skills/
2. Global catalog → ~/.claude/skills/
What does this skill do? (one-sentence description)
When should it activate? (what situations trigger its use?)
Are there specific code patterns, commands, or processes it should know about?
The user can accept the default by pressing Enter or selecting the numbered option. If the user has already provided enough context in the command, skip obvious questions.
Before generating the skeleton, determine the skill's format type. Apply inference heuristics first, then always show the result to the user for confirmation.
Inference heuristics (apply in order; stop at first match):
*-antipatterns or *-anti-patterns → infer anti-pattern-19, -5, -4, or a language name) → infer referencesdd-*, project-*, memory-*, deploy-*, run-*) → infer proceduralAlways present the format to the user before proceeding:
Format type for this skill:
Inferred: [procedural | reference | anti-pattern | none — please select]
Available formats (full contract: docs/format-types.md):
1. procedural — orchestrates a sequence of steps (SDD phases, meta-tools, workflows)
2. reference — provides patterns and examples for a technology or library
3. anti-pattern — catalogs things to avoid (use for anti-pattern-focused skills)
Confirm [1/2/3] or press Enter to accept inferred:
If docs/format-types.md does not exist:
⚠️ WARNING: docs/format-types.md not found — skill-format-types change may not be applied.
Defaulting to procedural format.
Continue with procedural and do not block skill creation.
Store the confirmed format as $SELECTED_FORMAT for use in Step 3.
Read the existing project code to:
Generate the skeleton based on $SELECTED_FORMAT from Step 1b. Each skeleton includes
format: $SELECTED_FORMAT in the YAML frontmatter and meets the section contract for that format.
Full contracts are defined in docs/format-types.md.
If $SELECTED_FORMAT is procedural:
---
name: [skill-name]
description: >
[one-line description]
format: procedural
---
# [skill-name]
> [One-line description. What it does and what it is for.]
**Triggers**: [word1, word2, situation1, situation2]
---
## Process
### Step 1 — [step name]
[Explain what this step does.]
### Step 2 — [step name]
[Explain what this step does.]
---
## Rules
- [constraint or invariant for this skill]
- [another constraint]
If $SELECTED_FORMAT is reference:
---
name: [skill-name]
description: >
[technology] patterns for [use case].
format: reference
---
# [skill-name]
> [technology] patterns for [use case].
**Triggers**: [technology name], [use-case keyword]
---
## Patterns
### [Pattern 1]: [Descriptive name]
[Explanation of the pattern]
```[language]
[real example code]
```
[Explanation]
[example code]
[Complete, executable code]
[Complete, executable code]
| Task | Pattern / Command | | ------------- | ----------------- | | [common task] | [solution] |
**If `$SELECTED_FORMAT` is `anti-pattern`:**
```markdown
---
name: [skill-name]
description: >
[technology] anti-patterns: [brief description].
format: anti-pattern
---
# [skill-name]
> [technology] anti-patterns: [brief description].
**Triggers**: [technology name] antipatterns, code review, refactoring
---
## Anti-patterns
### ❌ [Anti-pattern 1]: [Descriptive name]
**Why it is problematic**: [explanation]
```[language]
// ❌ Bad
[bad code]
// ✅ Good
[corrected code]
Why it is problematic: [explanation]
### Step 4 — Preview and confirm
Show the content to be created and confirm with the user before writing.
### Step 5 — Create and register
1. Create the file at the corresponding path
2. If it is a project skill, suggest adding it to the project `CLAUDE.md` in the skills section
3. If it is a generic skill, add it to the registry in `~/.claude/CLAUDE.md`
---
## Global Catalog Skills
Current catalog available in `~/.claude/skills/`:
### SDD Phase Skills
| Skill | Purpose |
|-------|---------|
| `sdd-explore` | SDD exploration phase |
| `sdd-propose` | SDD proposal phase |
| `sdd-spec` | SDD specifications phase |
| `sdd-design` | SDD technical design phase |
| `sdd-tasks` | SDD task plan phase |
| `sdd-apply` | SDD implementation phase |
| `sdd-verify` | SDD verification phase |
| `sdd-archive` | SDD archive phase |
| `sdd-init` | SDD initialization in a project |
| `sdd-status` | SDD active changes status |
### Infrastructure / Meta-tools
| Skill | Purpose |
|-------|---------|
| `project-setup` | Deploy SDD + memory structure in a new project |
| `project-audit` | Configuration audit |
| `project-fix` | Apply audit corrections |
| `project-onboard` | Diagnose and recommend onboarding sequence |
| `memory-manage` | Manage ai-context/ (init/update/maintain) |
| `codebase-teach` | Analyze bounded contexts and write ai-context/features/ docs |
| `feature-domain-expert` | Author and consume feature-level domain knowledge files |
| `config-export` | Export Claude config to Copilot, Gemini, Cursor formats |
| `skill-creator` | Skill creation |
| `smart-commit` | Conventional commit message generation |
### Workflow
| Skill | Purpose |
|-------|---------|
| `branch-pr` | PR creation workflow |
| `issue-creation` | GitHub issue creation workflow |
| `project-tracking` | GitHub Project board + Issues backlog management |
| `judgment-day` | Parallel adversarial review protocol |
### Stack-agnostic global skills
| Skill | Purpose |
|-------|---------|
| `solid-ddd` | Language-agnostic SOLID principles and DDD tactical patterns |
### Tech skill templates (NOT deployed globally)
Located at `skills/_templates/tech/<name>/` in the agent-config repo. NOT
copied to `~/.claude/skills/` by `install.sh`. `skill-creator` copies them
into a consumer project's `.claude/skills/<name>/` on demand.
| Template | Purpose |
|----------|---------|
| `go-testing` | Go testing patterns including Bubbletea TUI testing |
| `nextjs-15` | Next.js 15 App Router, Server Actions, data fetching |
| `react-19` | React 19 with React Compiler, Server Components, use() hook |
| `react-native` | React Native with Expo, navigation, NativeWind |
| `tailwind-4` | Tailwind CSS 4, cn() utility, dynamic styles |
| `typescript` | TypeScript strict mode, utility types, advanced patterns |
| `zustand-5` | State management with Zustand 5, slices, persistence |
---
## Rules
- Always use real project code as examples when it is a project skill
- Never invent patterns — extract them from existing code
- Minimum 3 code examples per skill (reference and anti-pattern formats)
- Preview and confirm before writing
- Register the new skill in the corresponding CLAUDE.md
- The format-selection step (Step 1b) MUST always run before skeleton generation — a skeleton is never written without a confirmed format type
- The `format:` field MUST be present in the YAML frontmatter of every SKILL.md generated by this skill
- If `docs/format-types.md` does not exist, default all new skills to `procedural` and emit WARNING: "docs/format-types.md not found — skill-format-types change may not be applied"
- Inference is a convenience — the user MUST always confirm or override the inferred type before the skeleton is written
business
Turns an already-investigated customer issue into a short, non-technical engineering-to-CS brief: one natural message that leads with the finding (root cause, real scope, open question), ready to paste into Slack for the support team. Trigger: /support-brief, support brief, brief for support, resumen soporte.
development
Parks the current Claude Code session before going to sleep. Analyzes the conversation, writes a handoff document to docs/handoffs/ in the current project, mirrors the same summary to engram tagged with the session ID, and prints the exact `claude --resume <id>` command for tomorrow. Zero interaction — runs end-to-end on a single invocation. Trigger: /night-park, night park, park session, me voy a dormir, guardar sesion.
testing
Interactive creator for a project feature: scaffolds the domain knowledge markdown at ai-context/features/<slug>.md AND the antenna skill at .claude/skills/<slug>/SKILL.md, both from the canonical templates. Also registers the antenna in the project's CLAUDE.md. Trigger: /feature-define <name>, define feature, documentar funcionalidad, nueva feature.
data-ai
Generates a short, non-technical, informal English summary of an already-investigated customer issue, ready to paste into Slack/email for support, CX, or ops teammates. Trigger: /customer-summary, customer summary, resumir customer issue, slack summary.