home / skills / outfitter-dev / agents / codify
This skill helps translate repeatable conversations and workflows into Claude Code components such as skills, commands, hooks, and agents.
npx playbooks add skill outfitter-dev/agents --skill codifyReview the files below or copy the command above to add this skill to your agents.
---
name: codify
description: This skill should be used when implementing patterns as Claude Code components (skills, commands, hooks, agents), or when "codify", "capture workflow", "turn into a skill", or "make reusable" are mentioned. For pattern identification, see patterns skill.
agent: analyst
context: fork
metadata:
version: "1.3.0"
related-skills:
- patterns
- claude-skills
- claude-commands
- claude-hooks
- claude-agents
---
# Codify
Identified pattern → component mapping → implementation.
<when_to_use>
- Spotting repeated behavior worth codifying
- User explicitly wants to capture a workflow
- Recognizing orchestration sequences in conversation
- Identifying decision heuristics being applied
NOT for: one-off tasks, simple questions, well-documented existing patterns
</when_to_use>
<pattern_types>
| Type | Purpose | Example |
|------|---------|---------|
| Workflow | Multi-step sequences | Debug → Test → Fix → Verify |
| Orchestration | Tool coordination | Git + Linear + PR automation |
| Heuristic | Decision rules | "When X, do Y because Z" |
Workflows: Step-by-step processes with defined stages and transitions.
Orchestration: Tool combinations that work together for a goal.
Heuristics: Conditional logic and decision trees for common situations.
</pattern_types>
<component_mapping>
Match pattern type to implementation:
```text
Is it a multi-step process with stages?
├─ Yes → Does it need tool restrictions?
│ ├─ Yes → Skill (with allowed_tools)
│ └─ No → Skill
└─ No → Is it a simple entry point?
├─ Yes → Command (thin wrapper → Skill)
└─ No → Is it autonomous/long-running?
├─ Yes → Agent
└─ No → Is it reactive to events?
├─ Yes → Hook
└─ No → Probably doesn't need codifying
```
Composites:
- Skill + Command: Skill holds logic, command provides entry point
- Skill + Hook: Skill holds logic, hook triggers automatically
- Agent + Skill: Agent orchestrates, skill provides methodology
</component_mapping>
<specification>
Pattern spec format (YAML):
```yaml
name: pattern-name
type: workflow | orchestration | heuristic
trigger: when to apply
stages: # workflow
- name: stage-name
actions: [...]
exit_criteria: condition
tools: # orchestration
- tool: name
role: purpose
sequence: order
rules: # heuristic
- condition: when
action: what
rationale: why
quality:
specific: true | false
repeatable: true | false
valuable: true | false
documented: true | false
scoped: true | false
```
All five quality checks must pass before codifying.
</specification>
<workflow>
1. Identify: Spot repeatable behavior in conversation
- If hint/argument provided, focus analysis on that specific pattern
- Otherwise scan for: workflows, orchestrations, and heuristics worth capturing
- For deep analysis, load `outfitter:codebase-recon` skill and use `outfitter:patterns` techniques
- Extract success, frustration, workflow, and request signals
- Look for 3+ occurrences of similar behavior
2. Classify: Workflow, Orchestration, or Heuristic?
3. Map: Which component(s) should implement it?
4. Specify: Document with pattern spec format
5. Quality: Validate against SRVDS criteria
6. Implement: Create the component(s)
Task stages:
```text
- Identify { pattern description }
- Classify { pattern type }
- Map { component decision }
- Specify { pattern name }
- Implement { component type }
```
</workflow>
<quality>
SRVDS criteria — all must pass:
| Check | Question | Red Flag |
|-------|----------|----------|
| Specific | Clear trigger + scope? | "Sometimes useful" |
| Repeatable | Works across contexts? | One-off solution |
| Valuable | Worth the overhead? | Saves < 5 minutes |
| Documented | Can others understand? | Tribal knowledge |
| Scoped | Single responsibility? | Kitchen sink |
Skip if: < 3 occurrences, context-dependent, simpler inline
</quality>
<anti_patterns>
- Premature abstraction: Codifying after first occurrence
- Over-specification: 50-line spec for 5-line pattern
- Wrong component: Hook when Skill needed, Agent when Command suffices
- Missing trigger: Pattern exists but no clear activation
- Scope creep: Pattern grows to handle edge cases
</anti_patterns>
<rules>
ALWAYS:
- Identify pattern type before choosing component
- Validate all SRVDS criteria
- Start with minimal implementation
- Document trigger conditions clearly
- Test pattern in at least 2 contexts
NEVER:
- Codify after single occurrence
- Create Agent when Skill suffices
- Skip quality validation
- Implement without clear trigger
- Add "might need later" features
</rules>
<references>
- [pattern-types.md](references/pattern-types.md) — extended examples by type
- [component-mapping.md](references/component-mapping.md) — decision tree details
- [examples/](examples/) — captured pattern examples
**Identification vs Implementation**:
- `patterns` skill identifies and documents patterns
- This skill (`codify`) implements patterns as Claude Code components
Use `patterns` first to identify what's worth capturing. Use `codify` to turn identified patterns into skills, commands, hooks, or agents.
**Component skills** (loaded during implementation):
- `claude-skills` — skill authoring
- `claude-commands` — command authoring
- `claude-hooks` — hook authoring
- `claude-agents` — agent authoring
</references>
This skill turns identified conversational patterns into reusable Claude Code components (skills, commands, hooks, agents). It guides you from spotting repeatable behaviour to selecting the right component and producing a minimal, quality-checked implementation. Use it to capture workflows, orchestrations, and heuristics so teams can reuse proven processes.
The skill inspects conversation context and pattern artifacts produced by a pattern-identification pass (use the patterns skill first). It classifies the pattern as workflow, orchestration, or heuristic, maps the pattern to an implementation type with clear rules, generates a YAML-style pattern spec, validates SRVDS quality checks, and scaffolds the corresponding component(s). During implementation it prefers minimal, tested artifacts and hooks into authoring tools for skills, commands, hooks, and agents.
Do I always need the patterns skill first?
Yes — use the patterns identification pass to confirm repeatability and gather signals before codifying.
What if a pattern barely meets SRVDS?
Prefer deferring codification until it clearly meets all SRVDS checks or collect more occurrences; avoid one-off abstractions.