NWave nw-agent-creation-workflow
Detailed 5-phase workflow for creating agents - from requirements analysis through validation and iterative refinement
git clone https://github.com/nWave-ai/nWave
T=$(mktemp -d) && git clone --depth=1 https://github.com/nWave-ai/nWave "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/nw/skills/nw-agent-creation-workflow" ~/.claude/skills/nwave-ai-nwave-nw-agent-creation-workflow-98a9ef && rm -rf "$T"
plugins/nw/skills/nw-agent-creation-workflow/SKILL.mdAgent Creation Workflow
Overview
Create agents through 5 phases: ANALYZE -> DESIGN -> CREATE -> VALIDATE -> REFINE. Each phase has clear inputs, outputs, and quality gates. Follow "start minimal, add based on failure."
Phase 1: ANALYZE
Goal: Understand requirements and determine agent architecture.
Inputs: User requirements, use case description, existing codebase context.
Steps:
- Identify single clear responsibility
- Determine new agent or modification of existing
- Check overlap with existing agents (avoid duplication)
- Classify agent type:
- Specialist: Single-domain expert (most common)
- Reviewer: Validates outputs from another agent (Reflection pattern)
- Orchestrator: Coordinates multiple agents
- Identify required tools (start with Read, Glob, Grep -- add only what's needed)
- Determine if Skills needed (domain knowledge > 50 lines)
Gate: Single responsibility identified. Agent type classified. No overlap.
Output: Requirements summary with agent type, tools list, skill needs.
Phase 2: DESIGN
Goal: Design agent architecture and structure.
Inputs: Requirements summary from Phase 1.
Steps:
- Select design pattern (load
skill)design-patterns - Define role and goal (1-2 sentences each)
- Identify core principles that DIVERGE from Claude defaults:
- What must this agent do differently than Claude naturally would?
- Domain-specific methodology steps
- Non-obvious constraints | Project-specific conventions
- Design workflow (3-7 phases)
- Plan Skills extraction: domain knowledge -> separate Skill | Testing/validation -> separate Skill | Keep workflow and principles in core agent
- Design Skill Loading Strategy (required for 3+ skills):
- Map each skill to the workflow phase where it's needed
- Create a loading table: Phase → Skill → Trigger condition
- Add explicit
directives in each workflow phaseLoad: skill-name - Document path:
(installed) or~/.claude/skills/nw-{skill-name}/SKILL.md
(repo)nWave/skills/nw-{skill-name}/SKILL.md - Note:
in frontmatter is declarative only — Claude Code does NOT auto-load skill files. The agent must use Read tool to load them, triggered byskills:
directives in workflow text.Load:
- Draft frontmatter:
--- name: {kebab-case-id} description: Use for {domain}. {When to delegate.} model: inherit tools: [{minimum tools needed}] maxTurns: 30 skills: - nw-{skill-name} ---
Gate: Design fits ~200-300 lines (core) + Skills. Pattern selected. Frontmatter drafted.
Output: Agent architecture document (working notes, not deliverable).
Phase 3: CREATE
Goal: Write agent definition file and Skills.
Inputs: Design from Phase 2.
Steps:
-
Create agent
file:.md- YAML frontmatter (name, description, tools, model, maxTurns, skills)
- Role + Goal paragraph
- Core Principles (divergences only, 3-8 items)
- Workflow phases
- Critical Rules (3-5, where violation causes real harm)
- Examples (3-5 canonical cases)
- Subagent mode instructions
- Constraints (what agent does NOT do)
-
Create Skill files if needed: each in
| YAML frontmatter withnWave/skills/{agent-name}/
andname
| Focused content, 100-250 lines eachdescription -
Measure:
. Target: under 300 lines.wc -l -
Add Skill Loading Strategy section (required for agents with 3+ skills):
## Skill Loading Strategy Load on-demand by phase, not all at once: | Phase | Load | Trigger | |-------|------|---------| | 1 Phase Name | `skill-name` | Always — core methodology | | 2 Phase Name | `other-skill` | When condition is met | Skills path: `~/.claude/skills/nw-{skill-name}/SKILL.md` (installed) or `nWave/skills/nw-{skill-name}/SKILL.md` (repo) -
Add
directives at the start of each workflow phase referencing the applicable skillsLoad: -
Verify: every skill in frontmatter
has at least oneskills:
directive in the workflow text. Orphan skills (declared but never loaded) are a bug.Load:
Gate: Agent file created. Under 300 lines. Skills created if needed. Skill Loading Strategy present for 3+ skills.
Output: Agent
.md file + Skill files.
Phase 4: VALIDATE
Goal: Verify agent meets quality standards.
Steps:
- Run 14-point validation checklist:
- Uses official YAML frontmatter format
- Total definition under 400 lines (domain knowledge in Skills)
- Only specifies behaviors diverging from Claude defaults
- No aggressive signaling language
- 3-5 canonical examples for critical behaviors
- Tools restricted to minimum needed
- maxTurns set in frontmatter
- Safety via platform features, not prose
- Instructions phrased affirmatively
- Consistent terminology throughout
- Description clearly states delegation criteria
- Check anti-patterns: no monolithic sections (>50 lines without structure) | No duplicated Claude defaults | No embedded safety frameworks | No aggressive language
- Test with representative inputs (Layer 1 testing)
Gate: All 14 items pass. No anti-patterns.
Output: Validation report (pass/fail per item).
Phase 5: REFINE
Goal: Iteratively improve based on testing feedback.
Steps:
- Address validation failures
- Test with edge cases
- Add instructions ONLY for observed failure modes: wrong decision -> add rule/example | Missed step -> clarify workflow | Over-generated -> add constraint
- Re-measure:
. If approaching 400 lines, extract to Skills.wc -l - Re-validate with 14-point checklist.
Gate: All validation passes. Line count within target. Edge cases handled.
Output: Final agent definition, ready for installation.
Quality Gates Summary
| Phase | Gate | Blocks |
|---|---|---|
| ANALYZE | Single responsibility, no overlap | DESIGN |
| DESIGN | Architecture fits size target | CREATE |
| CREATE | File created, under 300 lines | VALIDATE |
| VALIDATE | 14-point checklist passes | REFINE/Deploy |
| REFINE | Edge cases handled, within target | Deploy |
Naming Conventions
- Agent files:
innw-{name}.mdnWave/agents/ - Skill files:
in{skill-name}.mdnWave/skills/{agent-name}/ - Reviewer agents:
nw-{name}-reviewer.md - Agent names in frontmatter:
(kebab-case with nw- prefix)nw-{name}
Reviewer Agent Creation (Special Case)
Reviewer agents pair with a primary agent and use the Reflection pattern:
- Set
in frontmatter (cost-efficient review)model: haiku - Use same tools as primary agent (no Write/Edit -- reviewers don't modify)
- Define structured critique output format (YAML)
- Include max 2 review iterations
- Define clear approval/rejection criteria