Skip to content

Naming Conventions

CCW uses consistent naming conventions across skills, commands, files, and configurations. Following these conventions ensures your custom skills integrate seamlessly with the built-in ecosystem.

Overview

Consistent naming conventions help with:

  • Discoverability: Skills and commands are easy to find and understand
  • Integration: Custom skills work well with built-in ones
  • Maintenance: Clear naming reduces cognitive load when debugging
  • Documentation: Self-documenting code and configuration

Skill Naming

Built-in Skill Pattern

Built-in CCW skills follow these patterns:

PatternExamplesUsage
team-*team-lifecycle-v4, team-brainstormMulti-agent team skills
workflow-*workflow-plan, workflow-executePlanning and execution workflows
*-cyclereview-cycle, refactor-cycleIterative process skills
memory-*memory-capture, memory-manageMemory-related operations

Custom Skill Naming

When creating custom skills, use these guidelines:

yaml
# Good: Clear, descriptive, follows convention
name: generate-react-component
name: api-scaffolding
name: test-coverage-analyzer

# Avoid: Too generic or unclear
name: helper
name: stuff
name: my-skill-v2

Naming Principles

  1. Use kebab-case: All skill names use lowercase with hyphens

    yaml
    name: team-lifecycle-v4  # Good
    name: teamLifecycleV4    # Bad
  2. Start with action or category: Indicate what the skill does

    yaml
    name: generate-component  # Action-based
    name: test-coverage       # Category-based
  3. Use version suffixes for iterations: Not "v2" but purpose

    yaml
    name: team-lifecycle   # Version iteration
    name: workflow-lite       # Lightweight variant

Command Naming

CLI Command Pattern

Commands follow a category:action:variant pattern:

bash
# Format
ccw <category>:<action>:<variant>

# Examples
ccw workflow:plan:verify
ccw workflow:replan
ccw memory:capture:session
ccw team:lifecycle

Command Aliases

Short aliases for common commands:

Full CommandShort Alias
workflow:multi-cli-planworkflow:multi-cli-plan
team-lifecycle-v4(via /ccw "从零开始: ..." or Skill())
brainstorm(via /ccw "头脑风暴: ..." or Skill())

File Naming

Skill Files

~/.claude/skills/my-skill/
├── SKILL.md          # Skill definition (required, uppercase)
├── index.ts          # Skill logic (optional)
├── phases/           # Phase files (optional)
│   ├── phase-1.md    # Numbered phases
│   └── phase-2.md
└── examples/         # Usage examples
    └── basic-usage.md

Documentation Files

Documentation follows clear hierarchical patterns:

docs/
├── skills/
│   ├── index.md           # Skills overview
│   ├── core-skills.md     # Built-in skills reference
│   ├── naming-conventions.md  # This file
│   └── custom.md          # Custom skill development
├── workflows/
│   ├── index.md
│   ├── teams.md           # Team workflows
│   └── best-practices.md
└── zh/                    # Chinese translations
    └── skills/
        └── index.md

Markdown File Conventions

PatternExampleUsage
index.mdskills/index.mdSection overview
kebab-case.mdnaming-conventions.mdTopic pages
UPPERCASE.mdSKILL.md, README.mdSpecial/config files

Configuration Keys

Skill Frontmatter

yaml
---
name: workflow-plan              # kebab-case
description: 4-phase planning    # Sentence case
version: 1.0.0                   # Semantic versioning
triggers:                        # Array format
  - workflow-plan
  - workflow:replan
category: planning               # Lowercase
tags:                            # Array of keywords
  - planning
  - verification
---

CLI Tool Configuration

json
{
  "tools": {
    "gemini": {
      "enabled": true,           // camelCase for JSON
      "primaryModel": "gemini-2.5-flash",
      "tags": ["analysis", "Debug"]
    }
  }
}

Variable Naming in Code

TypeScript/JavaScript

typescript
// Files and directories
import { SkillContext } from './types'

// Variables and functions
const skillName = "my-skill"
function executeSkill() {}

// Classes and interfaces
class SkillExecutor {}
interface SkillOptions {}

// Constants
const MAX_RETRIES = 3
const DEFAULT_TIMEOUT = 5000

Configuration Keys

yaml
# Use kebab-case for YAML configuration keys
skill-name: my-skill
max-retries: 3
default-timeout: 5000

# JSON uses camelCase
{
  "skillName": "my-skill",
  "maxRetries": 3,
  "defaultTimeout": 5000
}

Trigger Keywords

Skill Triggers

Triggers define how skills are invoked:

SkillTriggers (English)Triggers (Chinese)
brainstormbrainstorm, brainstorming头脑风暴
team-planexteam planex, wave pipeline波浪流水线
review-codereview code, code review代码审查
memory-managememory manage, update memory更新记忆

Trigger Guidelines

  1. Use natural language: Triggers should be conversational
  2. Support multiple languages: English and Chinese for built-in skills
  3. Include variants: Add common synonyms and abbreviations
  4. Be specific: Avoid overly generic triggers that conflict

Session Naming

Workflow Sessions

Sessions use timestamp-based naming:

.workflow/.team/
├── TLS-my-project-2026-03-02/    # Team:Project:Date
├── WS-feature-dev-2026-03-02/    # Workflow:Feature:Date
└── review-session-2026-03-02/    # Descriptor:Date

Session ID Format

<TYPE>-<DESCRIPTOR>-<DATE>

Types:
- TLS  = Team Lifecycle Session
- WS   = Workflow Session
- RS   = Review Session

Examples

Example 1: Good Skill Naming

yaml
---
name: api-scaffolding
description: Generate REST API boilerplate with routes, controllers, and tests
version: 1.0.0
triggers:
  - generate api
  - api scaffold
  - create api
category: development
tags: [api, rest, scaffolding, generator]
---

Example 2: Good File Organization

~/.claude/skills/api-scaffolding/
├── SKILL.md
├── index.ts
├── templates/
│   ├── controller.ts.template
│   ├── route.ts.template
│   └── test.spec.ts.template
└── examples/
    ├── basic-api.md
    └── authenticated-api.md

Example 3: Good Command Naming

bash
# Clear and hierarchical
ccw api:scaffold:rest
ccw api:scaffold:graphql
ccw api:test:coverage

# Aliases for convenience
ccw api:scaffold    # Defaults to REST
ccw api:test        # Defaults to coverage

Migration Checklist

When renaming skills or commands:

  • [ ] Update SKILL.md frontmatter
  • [ ] Update all trigger references
  • [ ] Update documentation links
  • [ ] Add migration note in old skill description
  • [ ] Update session naming if applicable
  • [ ] Test all command invocations

See Also

Released under the MIT License.