adw-design
Guide creation of AI Developer Workflows (ADWs) that combine deterministic orchestration code with non-deterministic agents. Use when building automated development pipelines, designing AFK agent systems, or implementing the PITER framework.
Best use case
adw-design is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Guide creation of AI Developer Workflows (ADWs) that combine deterministic orchestration code with non-deterministic agents. Use when building automated development pipelines, designing AFK agent systems, or implementing the PITER framework.
Teams using adw-design should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/adw-design/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How adw-design Compares
| Feature / Agent | adw-design | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Guide creation of AI Developer Workflows (ADWs) that combine deterministic orchestration code with non-deterministic agents. Use when building automated development pipelines, designing AFK agent systems, or implementing the PITER framework.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# ADW Design
Guide for creating AI Developer Workflows - reusable agentic workflows that combine deterministic code with non-deterministic agents.
## When to Use
- Building automated development pipelines
- Designing AFK (Away From Keyboard) agent systems
- Implementing the PITER framework
- Creating micro agent architectures
- Setting up GitHub issue → PR automation
## What is an ADW?
An ADW is the highest composition level of agentic coding:
```text
ADW = Orchestrator + Micro Agents + Triggers + Observability
```
Components:
1. **Orchestrator** - Python/TypeScript code that coordinates the workflow
2. **Micro Agents** - Specialized Claude Code invocations with single responsibilities
3. **Triggers** - Webhooks, cron, or manual invocation
4. **Observability** - Logging, issue comments, tracking
## ADW Design Process
### Step 1: Define the Workflow
Map out the phases:
```text
Input → Classify → Branch → Plan → Implement → Review
```
Questions to answer:
- What's the input source? (GitHub issues, Notion, Slack)
- What are the phases? (classify, plan, implement, review)
- What's the output? (PR, deployment, report)
### Step 2: Design Micro Agents
For each phase, define a specialized agent:
| Phase | Agent | Responsibility | Model |
| --- | --- | --- | --- |
| Classify | `issue_classifier` | Determine work type | Haiku |
| Branch | `branch_generator` | Create branch name | Haiku |
| Plan | `sdlc_planner` | Generate implementation plan | Sonnet |
| Build | `sdlc_implementer` | Implement the solution | Sonnet |
| Commit | `committer` | Create semantic commits | Haiku |
| PR | `pr_creator` | Create pull request | Haiku |
### Step 3: Create Templates
Each agent needs a slash command:
- `/classify-issue` - Classify issue type
- `/generate-branch-name` - Create branch name
- `/chore`, `/bug`, `/feature` - Generate plans
- `/implement` - Execute plans
- `/commit-with-agent` - Create commits
- `/pull-request` - Create PRs
### Step 4: Build Orchestrator
The orchestrator coordinates everything:
```python
# Pseudocode structure
def run_adw(issue_number, adw_id):
issue = fetch_issue(issue_number)
issue_type = execute_agent("classifier", issue)
branch = execute_agent("branch_generator", issue)
plan = execute_agent("planner", issue_type, issue)
execute_agent("implementer", plan)
execute_agent("pr_creator", branch, issue, plan)
```
### Step 5: Add Observability
Track everything:
- **ADW ID**: 8-char UUID for correlation
- **Issue comments**: Progress updates
- **Logs**: Structured output per agent
- **Metrics**: Success rate, duration
## ADW Directory Structure
```text
adws/
├── main_workflow.py # Main orchestrator
├── agent.py # Claude Code integration
├── data_types.py # Type definitions
├── github.py # GitHub operations
├── trigger_cron.py # Cron trigger
├── trigger_webhook.py # Webhook trigger
├── health_check.py # Environment validation
└── README.md # Documentation
```
## Model Selection Strategy
Match model to task:
| Task Complexity | Model | Examples |
| --- | --- | --- |
| Simple decision | Haiku | Classification, branch naming |
| Formatting | Haiku | Commit messages, PR body |
| Reasoning | Sonnet | Plan generation |
| Complex coding | Sonnet/Opus | Implementation |
## ADW Quality Checklist
Before deploying:
- [ ] Each agent has single responsibility
- [ ] Model selection matches task complexity
- [ ] ADW ID tracking implemented
- [ ] Issue comments posted at each phase
- [ ] Error handling with meaningful messages
- [ ] Logging captures all agent outputs
- [ ] Health check validates environment
- [ ] Templates tested independently
- [ ] End-to-end workflow tested
## Common Patterns
### Agent Executor Pattern
```python
def execute_agent(agent_name, *args):
prompt = build_prompt(agent_name, args)
result = subprocess.run([
"claude", "-p", prompt,
"--model", get_model(agent_name),
"--output-format", "stream-json"
])
log_result(agent_name, result)
return parse_result(result)
```
### Issue Comment Pattern
```python
def update_issue(issue_number, adw_id, agent_name, message):
comment = f"[{adw_id}_{agent_name}] {message}"
gh_issue_comment(issue_number, comment)
```
### Error Handling Pattern
```python
def check_error(result, phase):
if not result.success:
update_issue(issue, adw_id, phase, f"ERROR: {result.error}")
sys.exit(1)
```
## Anti-Patterns to Avoid
### Monolithic Agent
**Bad**: One agent doing everything
**Good**: Micro agents with single responsibilities
### Missing Observability
**Bad**: No logging, no issue comments
**Good**: ADW ID tracking, structured logs, progress comments
### Wrong Model Selection
**Bad**: Using Opus for branch naming
**Good**: Match model to task complexity
### No Error Handling
**Bad**: Silent failures
**Good**: Error comments, graceful degradation
## Related Memory Files
- @piter-framework.md - PITER elements for AFK agents
- @adw-anatomy.md - ADW structure and patterns
- @outloop-checklist.md - Deployment readiness
- @inloop-vs-outloop.md - When to use ADWs
## Version History
- **v1.0.0** (2025-12-26): Initial release
---
## Last Updated
**Date:** 2025-12-26
**Model:** claude-opus-4-5-20251101Related Skills
Advanced Modular Library Design
Design modular libraries with clear package boundaries, feature-first organization, and clean API surfaces. Use when structuring monorepos, defining module boundaries, or designing library APIs.
action-mapping-designer
This skill should be used when ensuring training focuses on performance outcomes and business impact. Use this skill to identify essential content, design performance-focused activities, create job aids, and eliminate unnecessary training.
zoonk-design
Design philosophy and UI/UX guidelines inspired by Apple, Linear, and Vercel. Use when planning new features, designing interfaces, reviewing implementations, or making visual and interaction design decisions.
widget-design
Best practices for designing UI widgets in xmcp. Use when creating interactive widgets for GPT Apps or MCP Apps, choosing between React components and template literals, designing widget layouts, handling state and data fetching, or troubleshooting widget rendering issues.
web-design-guidelines
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
vibe-techdesign
Create a Technical Design Document for your MVP. Use when the user wants to plan architecture, choose tech stack, or says "plan technical design", "choose tech stack", or "how should I build this".
ui-ux-designer
Create interface designs, wireframes, and design systems. Masters user research, accessibility standards, and modern design tools.
ui-ux-design-system
Expert in building premium, accessible UI/UX design systems for SaaS apps. Covers design tokens, component architecture with shadcn/ui and Radix, dark mode, glassmorphism, micro-animations, responsive layouts, and accessibility. Use when: ui, ux, design system, shadcn, radix, tailwind, dark mode, animation, accessibility, components, figma to code.
ui-designer
Generate and serve live HTML/CSS/JS UI designs from natural language prompts. Use when the user asks to design, create, build, or prototype a website, landing page, UI, dashboard, web page, or frontend mockup. Also triggers on requests to update, tweak, or iterate on a previously generated design. Replaces traditional UI design + frontend dev workflow.
ui-design
Applies consistent renderer UI/UX implementation patterns using a Vercel-inspired white theme, strong accessibility defaults, and repository component conventions.
ui-design-styles
Comprehensive guidance for applying modern UI design styles, including Soft UI, Dark Mode, Flat Design, Neumorphism, Glassmorphism, and Aurora UI Gradients. Use when a user asks to: (1) Apply a specific UI style to a project, (2) Create a modern, visually appealing UI prototype, (3) Improve accessibility while following design trends, or (4) Understand the technical implementation of specific UI effects like frosted glass or soft shadows.
ui-design-create-component
Guided component creation with proper patterns Use when: the user asks to run the `create-component` workflow and the task requires multi-step orchestration. Do not use when: the task is small, single-step, and can be completed directly without orchestration overhead.