CreateSkill
Complete PAI skill development lifecycle across two tracks. Structure track: scaffold new skills (TitleCase dirs, flat 2-level max, Workflows/ + Tools/ + References/ only), validate against canonical format, canonicalize existing skills. Effectiveness track (Anthropic methodology): TestSkill spawns with-skill vs baseline agents in parallel and compares outputs, ImproveSkill diagnoses root causes and rewrites instructions with reasoning over rigid constraints, OptimizeDescription generates 20 should/shouldn't-trigger test queries and rewrites for accuracy. Guides from Thariq Shihipar (Mar 2026): Gotchas section mandatory, BPE check before finalizing, progressive disclosure (frontmatter β SKILL.md body β reference files), on-demand hooks. USE WHEN create skill, new skill, validate skill, test skill, improve skill, optimize description, skill not triggering, skill overtriggering, canonicalize, scaffold skill, skill quality. NOT FOR TypeScript CLI generation (use CreateCLI).
What this skill does
## Customization
**Before executing, check for user customizations at:**
`~/.claude/PAI/USER/SKILLCUSTOMIZATIONS/CreateSkill/`
If this directory exists, load and apply any PREFERENCES.md, configurations, or resources found there. These override default behavior. If the directory does not exist, proceed with skill defaults.
## π¨ MANDATORY: Voice Notification (REQUIRED BEFORE ANY ACTION)
**You MUST send this notification BEFORE doing anything else when this skill is invoked.**
1. **Send voice notification**:
```bash
curl -s -X POST http://localhost:31337/notify \
-H "Content-Type: application/json" \
-d '{"message": "Running the WORKFLOWNAME workflow in the CreateSkill skill to ACTION"}' \
> /dev/null 2>&1 &
```
2. **Output text notification**:
```
Running the **WorkflowName** workflow in the **CreateSkill** skill to ACTION...
```
**This is not optional. Execute this curl command immediately upon skill invocation.**
# CreateSkill
Complete skill development lifecycle: **structure** (create, validate, canonicalize) + **effectiveness** (test, improve, optimize triggers). Structural workflows ensure skills follow PAI conventions. Effectiveness workflows β inspired by Anthropic's skill-creator β ensure skills actually work and trigger reliably.
## Authoritative Source
**Before creating ANY skill, READ:** `~/.claude/PAI/DOCUMENTATION/Skills/SkillSystem.md`
**Canonical example to follow:** any well-formed public skill in `~/.claude/skills/` (e.g. `Research/SKILL.md`, `Daemon/SKILL.md`, `CreateSkill/SKILL.md` itself).
## Naming Convention β Public vs Private
**Skill name encodes its public/private status. There are exactly two valid forms.**
| Skill type | Directory format | Example | Allowed content |
|------------|------------------|---------|-----------------|
| **Public** | `TitleCase` | `Blogging`, `Daemon`, `CreateSkill` | Templated, safe, generic, ready for public release |
| **Private** | `_ALLCAPS` (underscore prefix, all uppercase) | `<your-release-skill>`, `_INBOX`, `_BROADCAST`, `_DOTFILES` | Anything personal, sensitive, identity-bound, customer-bound, or environment-specific |
**The leading underscore is the public-release boundary.** Release tooling skips `_*` skills entirely β they never leave `~/.claude`. Public skills (no underscore) are mirrored into the PAI public release and MUST contain only generic, templated content.
**Sub-file naming (both public and private skills):**
| Component | Format | Example |
|-----------|--------|---------|
| Workflow files | `TitleCase.md` | `Create.md`, `UpdateDaemonInfo.md` |
| Reference docs | `TitleCase.md` | `ProsodyGuide.md`, `ApiReference.md` |
| Tool files | `TitleCase.ts` | `ManageServer.ts` |
| Help files | `TitleCase.help.md` | `ManageServer.help.md` |
**Wrong (NEVER use):**
- Skill dirs: `createskill`, `create-skill`, `CREATE_SKILL` (no underscore + caps for public; no kebab/snake for private)
- Files: `create.md`, `update-info.md`, `SYNC_REPO.md`
### Choosing public vs private β the decision rule
Ask: **"Could this skill be dropped, as-is, into a stranger's `~/.claude/skills/` and just work?"**
- **Yes** β public skill (`TitleCase`). Body must be generic; user-specific config layers in via `PAI/USER/SKILLCUSTOMIZATIONS/<SkillName>/`.
- **No, because it references my identity, my contacts, my business, my customer, my paid API, my private infra, my domain, my private repo, my partner, or my financial/health/security data** β private skill (`_ALLCAPS`).
**When in doubt, build it private first (`_ALLCAPS`). Promoting `_FOO` β `Foo` later is easy. Discovering a public skill leaks your life is permanent.**
---
## Public Release Readiness (MANDATORY)
**Public skills (`TitleCase`) ship to the world. Private skills (`_ALLCAPS`) never leave the local repo.** Sensitivity is decided by skill name, not by per-file scrubbing at share-time.
### The Bright Line
**Public skill (`TitleCase`) β content rule:**
ONLY templated, safe, public, ready content. Period.
- β
Generic instructions any PAI user could follow
- β
Templated patterns with placeholders for user-specific values
- β
Public API references and dependencies on public tools
- β Real names (people, products, companies, customers)
- β Real domains, hostnames, IPs, internal URLs
- β API keys, tokens, credentials, session cookies, OAuth secrets β even example-looking ones
- β Private repo paths or references (`github.com/<org>/<private-repo>`)
- β Customer data, customer-specific workflows, customer engagement context
- β First-person war stories tied to a specific incident, project, or person
- β User-specific filesystem paths (`/Users/<name>/...`, `/home/<name>/...`)
- β Identity-bound preferences (DA name, principal name, partner name, pet name, financial figures, health data)
**Private skill (`_ALLCAPS`) β content rule:**
Anything goes. Real names, real domains, real customers, real credentials-by-reference (env var names, never values), real war stories, real internal infra. The underscore IS the safety boundary. These skills are excluded from release tooling.
### The Decision Test
When you find yourself wanting to write any of the following into a skill body, that skill MUST be `_ALLCAPS`:
| If the skill mentions⦠| Skill must be |
|------------------------|---------------|
| A specific person's name (yours, your partner's, your team's, a customer's) | `_ALLCAPS` |
| A specific product name you own or sell | `_ALLCAPS` |
| A specific customer or client | `_ALLCAPS` |
| A specific paid API account, billing realm, or subscription | `_ALLCAPS` |
| A specific private domain, hostname, internal IP, or VPN | `_ALLCAPS` |
| A specific private repo, dotfile location, or local infra | `_ALLCAPS` |
| A specific business process tied to your company | `_ALLCAPS` |
| A specific financial, health, security, or legal context | `_ALLCAPS` |
| A specific incident or one-off war story | `_ALLCAPS` |
| Anything that would be wrong, embarrassing, or unsafe in someone else's `~/.claude/` | `_ALLCAPS` |
If none of the above apply and the skill is fully generic β it can be `TitleCase` (public).
### Where Personal Layering Goes for Public Skills
A public skill can be made user-specific at runtime via `~/.claude/PAI/USER/SKILLCUSTOMIZATIONS/<SkillName>/PREFERENCES.md`. The skill body stays generic; the user's customization file overlays per-instance context. Use this when a skill is fundamentally generic but benefits from per-user tweaks (preferred voice, default formats, personal taste).
**Do not use SKILLCUSTOMIZATIONS to smuggle private content into a public skill.** If the skill *requires* private context to function (real customer name, real API account, real internal infra), it is a private skill β name it `_ALLCAPS` and stop.
### Allowed in Public Skills
- Generic `~/` paths (`~/.claude/skills/`, `~/Projects/<tool>/`) β resolve per-user
- Public repo URLs for tools the skill depends on
- Public API endpoints that are conventions, not secrets (e.g., `localhost:31337/notify`)
- Example values clearly marked as placeholders (`<url>`, `<SESSION_ID>`, `[email protected]`)
- Generic env var *names* (never values): `STRIPE_API_KEY`, `OPENAI_API_KEY`
### Pre-Flight Grep (Public Skills Only)
Before shipping or modifying any `TitleCase` skill, run:
```bash
rg -i "<your-name>|<your-org>|<your-product>|<your-domain>|/Users/[a-z]+/" ~/.claude/skills/<SkillName>/
```
Zero matches = ready for public release. Any match = either scrub it, move it to SKILLCUSTOMIZATIONS, or rename the skill to `_ALLCAPS` and stop pretending it's public. **`_ALLCAPS` skills are exempt from this grep β they are private by design.**
---
## Flat Folder Structure (MANDATORY)
**CRITICAL: Keep folder structure FLAT - maximum 2 levels deep.**
### The Rule
**Maximum depth:** `skills/SkillName/Category/`
### β
ALLOWED (2 levels max)
```
skills/SkillName/SKILL.md # Skill root
skills/SkillName/Workflows/CreaRelated in AI Agents
skill-development
IncludedComprehensive meta-skill for creating, managing, validating, auditing, and distributing Claude Code skills and slash commands (unified in v2.1.3+). Provides skill templates, creation workflows, validation patterns, audit checklists, naming conventions, YAML frontmatter guidance, progressive disclosure examples, and best practices lookup. Use when creating new skills, validating existing skills, auditing skill quality, understanding skill architecture, needing skill templates, learning about YAML frontmatter requirements, progressive disclosure patterns, tool restrictions (allowed-tools), skill composition, skill naming conventions, troubleshooting skill activation issues, creating custom slash commands, configuring command frontmatter, using command arguments ($ARGUMENTS, $1, $2), bash execution in commands, file references in commands, command namespacing, plugin commands, MCP slash commands, Skill tool configuration, or deciding between skills vs slash commands. Delegates to docs-management skill for official documentation.
reprompter
IncludedTransform messy prompts into well-structured, effective prompts β single or multi-agent. Use when: "reprompt", "reprompt this", "clean up this prompt", "structure my prompt", rough text needing XML tags and best practices, "reprompter teams", "repromptception", "run with quality", "smart run", "smart agents", multi-agent tasks, audits, parallel work, anything going to agent teams. Don't use when: simple Q&A, pure chat, immediate execution-only tasks. See "Don't Use When" section for details. Outputs: Structured XML/Markdown prompt, quality score (before/after), optional team brief + per-agent sub-prompts, agent team output files. Success criteria: Single mode quality score β₯ 7/10; Repromptception per-agent prompt quality score 8+/10; all required sections present, actionable and specific.
adaptive-compaction
IncludedAdaptive add-on policy and recovery layer that decides WHEN to compact, prune, snapshot, or fork -- replacing fixed-percent auto-compaction across Claude Code, Codex, and MCP-capable hosts. Trigger on auto-compact timing or damage: "when should I compact", "is it safe to compact now or start a fresh session", "auto-compact fires too early/mid-task", "switching to an unrelated task but the window still has space", "context rot", "answers get worse the longer the session runs", "the agent forgot the plan or my decisions after it summarized", "add a layer on top that manages context without changing the agent", raising autoCompactWindow to give the policy room, or installing/tuning a cross-tool compaction policy or PreCompact hook -- even when "compaction" is never said but the problem is context-window pressure or post-summarization memory loss. Do NOT use to summarize a conversation, build RAG, write a summarization prompt (decides WHEN not HOW), or answer max-context-length trivia.
agent-skill-creator
IncludedCreate cross-platform agent skills from workflow descriptions. Activates when users ask to create an agent, automate a repetitive workflow, create a custom skill, or need advanced agent creation. Triggers on phrases like create agent for, automate workflow, create skill for, every day I have to, daily I need to, turn process into agent, need to automate, create a cross-platform skill, validate this skill, export this skill, migrate this skill. Supports single skills, multi-agent suites, transcript processing, template-based creation, interactive configuration, cross-platform export, and spec validation.
llm-wiki
IncludedUse when building or maintaining a persistent personal knowledge base (second brain) in Obsidian where an LLM incrementally ingests sources, updates entity/concept pages, maintains cross-references, and keeps a synthesis current. Triggers include "second brain", "Obsidian wiki", "personal knowledge management", "ingest this paper/article/book", "build a research wiki", "compound knowledge", "Memex", or whenever the user wants knowledge to accumulate across sessions instead of being re-derived by RAG on every query.
skill-master
IncludedAgent Skills authoring, evaluation, and optimization. Create, edit, validate, benchmark, and improve skills following the agentskills.io specification. Use when designing SKILL.md files, structuring skill folders (references, scripts, assets), ingesting external documentation into skills, running trigger evals, benchmarking skill quality, optimizing descriptions, or performing blind A/B comparisons. Keywords: agentskills.io, SKILL.md, skill authoring, eval, benchmark, trigger optimization.