cc-os/plugins/cc-architect/workflows/create-skill.md

158 lines
5.7 KiB
Markdown
Raw Permalink Normal View History

# Workflow: Create Skill
**Model tier**: Haiku (research/scaffold), Sonnet (processing/content), Opus (synthesis), Haiku (cleanup)
## When to use
- Creating a new skill for a project or plugin
- The skill doesn't exist yet or needs to be rebuilt from scratch
## Before you start
If concept unclear, brainstorm: `references/brainstorming/workflow.md`
## Inputs required
- **target_location** - `.claude/skills/<skill-name>/` (project) or `<plugin-path>/skills/<skill-name>/` (plugin)
- **skill_name** - kebab-case
- **skill_purpose** - What problem this solves
- **initial_workflows** - At least one task to handle
## Task document
Create: `.claude/plugin-data/skill-architect/tasks/new-skill-<skill-name>-<date>.md`
All subagents append to this.
---
## Pattern consideration
See `references/tool-patterns/catalog.md`.
| Question | If Yes |
|----------|--------|
| Will skill make design decisions? | Include brainstorming triggers |
| Will skill modify files? | Include verification step |
| Will skill create files in user projects? | Follow [plugin-data-convention](../references/conventions/plugin-data-convention.md) |
| Will skill need maintenance/auditing? | Create reversion protection scaffolding |
| Will skill orchestrate 2+ subagent workflows with synthesis? | Use [Role-Workflow pattern](../references/tool-patterns/role-workflow-pattern.md) |
---
## Phases
### Phase 1: Research (Haiku)
**Objective:** Gather requirements, validate inputs, design structure, scaffold files.
**Read:**
- `${CLAUDE_PLUGIN_ROOT}/references/layout/reference.md`
- `references/tool-patterns/deterministic-scripting.md`
- `${CLAUDE_PLUGIN_ROOT}/references/layout/skill-structure.md`
**Do:**
1. Clarify with user: skill purpose, major workflows, knowledge domains
2. Map workflows to `workflows/*.md`
3. Map knowledge domains to `references/` subdirs
4. Identify scripting opportunities (mechanical, repeatable, unambiguous?)
5. Identify scripts vs templates vs knowledge docs
6. Write to task doc: `## Domain Understanding`, `## Proposed Structure`, `## Script Candidates`
7. Confirm with user (checkpoint)
8. Scaffold skill directory tree by hand, following
`${CLAUDE_PLUGIN_ROOT}/references/layout/skill-structure.md`:
- Omit `target-dir` or use "project" for `.claude/skills/<skill-name>/`
- Create: `SKILL.md` (empty stub), `workflows/`, `references/`, and
`templates/`/`scripts/` if the skill needs them
- Create empty `reference.md` in each references subdir
- Reversion protection: `invariants.md` (stub), `examples/golden/`, `.decisions/`
9. Write to task doc: `## Scaffolded Files`
**Invariants stub:**
```markdown
# Invariants
Behaviors that must not change without explicit human approval.
> TODO: Fill after skill stabilizes (2-3 uses). See `references/tool-patterns/reversion-protection.md`.
## Critical Invariants
- [To be defined]
## Structural Invariants
- [To be defined]
```
**Outputs:** Task document with domain understanding, structure plan, scaffolded files.
---
### Phase 2: Processing (Sonnet)
**Objective:** Write workflows, reference.md files, knowledge docs, scripts, and templates.
**Read:**
- Task document (all sections from Phase 1)
- `${CLAUDE_PLUGIN_ROOT}/references/layout/skill-structure.md`
- `references/progressive-disclosure/reference-md-pattern.md`
**Do:**
1. Write workflows:
- One `workflows/<workflow-name>.md` per workflow
- Include: when to use, inputs, subtasks with subagent hints, task doc instructions
- Pattern hooks: brainstorming reference (if design decisions), verification step (if modifies files)
- Write to task doc: `## Workflows Written`
2. Write reference.md files:
- For each references subdir: write `reference.md`
- Include: purpose, what's here, when to read which file, model hints
- Stub knowledge docs
- Write to task doc: `## Reference.md Files Created`
3. Fill knowledge docs:
- Write each knowledge doc, <=150 lines
- If longer, split and update parent `reference.md`
- May require user input for domain expertise
- Write to task doc: `## Knowledge Docs Written`
4. Create scripts and templates:
- Write scripts for mechanical tasks
- Write templates for repetitive structures
- Make scripts executable
- Write to task doc: `## Scripts and Templates Created`
**Outputs:** Complete workflow files, reference.md navigation, knowledge docs, scripts, templates.
---
### Phase 3: Synthesis (Opus + Haiku cleanup)
**Objective:** Write SKILL.md, validate, generate description, final review.
**Subagent:** Opus for decisions, then Haiku for cleanup.
**Read:**
- Task document (complete)
- `${CLAUDE_PLUGIN_ROOT}/references/layout/skill-structure.md`
- All created workflow files (spot-check)
**Do (Opus):**
1. **Inline vs Reference decision:**
- Count workflow content lines (exclude blanks, frontmatter, headings)
- Threshold: <=40 (inline full), 41-100 (inline checklist + reference), >100 (reference only)
- Multiple workflows -> router pattern
2. Generate description via the `generate-description` workflow
(`${CLAUDE_PLUGIN_ROOT}/workflows/generate-description.md`):
- Input: type=skill, name, purpose, triggers
3. Write `SKILL.md` with description, applying inline vs reference decision
4. Write to task doc: `## SKILL.md Structure Decision`
5. Validate against `${CLAUDE_PLUGIN_ROOT}/templates/audit-checklist-template.md`
(Skill-Specific Attributes section)
6. Fix validation errors
7. Verify structure matches plan
8. Verify `reference.md` files accurate
9. Friction? Add to task doc: `## Friction / Improvement Notes`
10. Write final summary
**Do (Haiku cleanup):**
1. Remove task document artifacts
2. Verify all placeholder text filled
3. Final file permissions check (scripts executable)
**Outputs:** Complete, validated skill with SKILL.md, ready for use.