Back to skills
SKILL.md
Workflows
ASecurityCreate a new skill following the canonical structure with proper TitleCase naming.
- 4 stars
- 0 votes
- 0 copies
- 0 views
- Added September 6, 2026
Works with
Security analysis
100/100Pro scans all 5 files and shows the line behind each finding
npx -y skills add ZDStudios/AIOS --skill Workflows --agent claude-codeAre you the author of Workflows?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/zdstudios-workflows-d248e90e)# CreateSkill Workflow
Create a new skill following the canonical structure with proper TitleCase naming.
## Voice Notification
```bash
curl -s -X POST http://localhost:8888/notify \
-H "Content-Type: application/json" \
-d '{"message": "Running the CreateSkill workflow in the CreateSkill skill to create new skill"}' \
> /dev/null 2>&1 &
```
Running the **CreateSkill** workflow in the **CreateSkill** skill to create new skill...
## Step 1: Read the Authoritative Sources
**REQUIRED FIRST:**
1. Read the skill system documentation: `~/.claude/PAI/SkillSystem.md`
2. Read the canonical example: `~/.claude/skills/Research/SKILL.md`
## Step 2: Understand the Request
Ask the user:
1. What does this skill do?
2. What should trigger it?
3. What workflows does it need?
## Step 3: Determine TitleCase Names
**All names must use TitleCase (PascalCase).**
| Component | Format | Example |
|-----------|--------|---------|
| Skill directory | TitleCase | `Blogging`, `Daemon`, `CreateSkill` |
| 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 naming (NEVER use):**
- `create-skill`, `create_skill`, `CREATESKILL` → Use `CreateSkill`
- `create.md`, `CREATE.md`, `create-info.md` → Use `Create.md`, `CreateInfo.md`
## Step 4: Create the Skill Directory
```bash
mkdir -p ~/.claude/skills/[SkillName]/Workflows
mkdir -p ~/.claude/skills/[SkillName]/Tools
```
**Example:**
```bash
mkdir -p ~/.claude/skills/YourSkill/Workflows
mkdir -p ~/.claude/skills/YourSkill/Tools
```
## Step 5: Create SKILL.md
Follow this exact structure:
```yaml
---
name: SkillName
description: [What it does]. USE WHEN [intent triggers using OR]. [Additional capabilities].
---
# SkillName
[Brief description]
## Voice Notification
**When executing a workflow, do BOTH:**
1. **Send voice notification**:
```bash
curl -s -X POST http://localhost:8888/notify \
-H "Content-Type: application/json" \
-d '{"message": "Running WORKFLOWNAME in SKILLNAME"}' \
> /dev/null 2>&1 &
```
2. **Output text notification**:
```
Running **WorkflowName** in **SkillName**...
```
**Full documentation:** `~/.claude/PAI/THENOTIFICATIONSYSTEM.md`
## Workflow Routing
| Workflow | Trigger | File |
|----------|---------|------|
| **WorkflowOne** | "trigger phrase" | `Workflows/WorkflowOne.md` |
| **WorkflowTwo** | "another trigger" | `Workflows/WorkflowTwo.md` |
## Examples
**Example 1: [Common use case]**
```
User: "[Typical user request]"
→ Invokes WorkflowOne workflow
→ [What skill does]
→ [What user gets back]
```
**Example 2: [Another use case]**
```
User: "[Different request]"
→ [Process]
→ [Output]
```
## [Additional Documentation]
[Any other relevant info]
```
## Step 6: Create Workflow Files
For each workflow in the routing section:
```bash
touch ~/.claude/skills/[SkillName]/Workflows/[WorkflowName].md
```
### Workflow-to-Tool Integration (REQUIRED for workflows with CLI tools)
**If a workflow calls a CLI tool, it MUST include intent-to-flag mapping tables.**
This pattern translates natural language user requests into appropriate CLI flags:
```markdown
## Intent-to-Flag Mapping
### Model/Mode Selection
| User Says | Flag | When to Use |
|-----------|------|-------------|
| "fast", "quick", "draft" | `--model haiku` | Speed priority |
| (default), "best", "high quality" | `--model opus` | Quality priority |
### Output Options
| User Says | Flag | Effect |
|-----------|------|--------|
| "JSON output" | `--format json` | Machine-readable |
| "detailed" | `--verbose` | Extra information |
## Execute Tool
Based on user request, construct the CLI command:
\`\`\`bash
bun ToolName.ts \
[FLAGS_FROM_INTENT_MAPPING] \
--required-param "value"
\`\`\`
```
**Why this matters:**
- Tools have rich configuration via flags
- Workflows should expose this flexibility, not hardcode single patterns
- Users speak naturally; workflows translate to precise CLI
**Reference:** `~/.claude/PAI/CliFirstArchitecture.md` (Workflow-to-Tool Integration section)
**Examples (TitleCase):**
```bash
touch ~/.claude/skills/YourSkill/Workflows/UpdateDaemonInfo.md
touch ~/.claude/skills/YourSkill/Workflows/UpdatePublicRepo.md
touch ~/.claude/skills/YourSkill/Workflows/Create.md
touch ~/.claude/skills/YourSkill/Workflows/Publish.md
```
## Step 7: Verify TitleCase
Run this check:
```bash
ls ~/.claude/skills/[SkillName]/
ls ~/.claude/skills/[SkillName]/Workflows/
ls ~/.claude/skills/[SkillName]/Tools/
```
Verify ALL files use TitleCase:
- `SKILL.md` ✓ (exception - always uppercase)
- `WorkflowName.md` ✓
- `ToolName.ts` ✓
- `ToolName.help.md` ✓
## Step 8: Final Checklist
### Naming (TitleCase)
- [ ] Skill directory uses TitleCase (e.g., `Blogging`, `Daemon`)
- [ ] All workflow files use TitleCase (e.g., `Create.md`, `UpdateInfo.md`)
- [ ] All reference docs use TitleCase (e.g., `ProsodyGuide.md`)
- [ ] All tool files use TitleCase (e.g., `ManageServer.ts`)
- [ ] Routing table workflow names match file names exactly
### YAML Frontmatter
- [ ] `name:` uses TitleCase
- [ ] `description:` is single-line with embedded `USE WHEN` clause
- [ ] No separate `triggers:` or `workflows:` arrays
- [ ] Description uses intent-based language
- [ ] Description is under 1024 characters
### Markdown Body
- [ ] `## Voice Notification` section present (for skills with workflows)
- [ ] `## Workflow Routing` section with table format
- [ ] All workflow files have routing entries
- [ ] `## Examples` section with 2-3 concrete usage patterns
### Structure
- [ ] `tools/` directory exists (even if empty)
- [ ] No `backups/` directory inside skill
### CLI-First Integration (for skills with CLI tools)
- [ ] CLI tools expose configuration via flags (see CliFirstArchitecture.md)
- [ ] Workflows that call CLI tools have intent-to-flag mapping tables
- [ ] Flag mappings cover: mode selection, output options, post-processing (where applicable)
## Done
Skill created following canonical structure with proper TitleCase naming throughout.
Files in this skill
- CanonicalizeSkill.md
- CreateSkill.md
- UpdateSkill.md
- ValidateSkill.md
Attribution
Comments
Loading comments…