agency-orchestrator 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +232 -118
  2. package/README.zh-CN.md +238 -16
  3. package/dist/cli/explain.d.ts +8 -0
  4. package/dist/cli/explain.js +110 -0
  5. package/dist/cli/init-workflow.d.ts +20 -0
  6. package/dist/cli/init-workflow.js +129 -0
  7. package/dist/cli/watch.d.ts +19 -0
  8. package/dist/cli/watch.js +87 -0
  9. package/dist/cli.js +61 -2
  10. package/dist/core/condition.d.ts +1 -0
  11. package/dist/core/condition.js +41 -0
  12. package/dist/core/dag.js +19 -0
  13. package/dist/core/executor.d.ts +2 -0
  14. package/dist/core/executor.js +118 -12
  15. package/dist/core/parser.js +19 -1
  16. package/dist/index.d.ts +8 -1
  17. package/dist/index.js +63 -5
  18. package/dist/output/reporter.d.ts +13 -0
  19. package/dist/output/reporter.js +60 -3
  20. package/dist/types.d.ts +9 -0
  21. package/integrations/antigravity/AGENTS.md +50 -0
  22. package/integrations/antigravity/README.md +72 -0
  23. package/integrations/claude-code/README.md +91 -0
  24. package/integrations/codex/README.md +73 -0
  25. package/integrations/codex/instructions.md +50 -0
  26. package/integrations/cursor/README.md +101 -0
  27. package/integrations/cursor/workflow-runner.mdc +55 -0
  28. package/integrations/deerflow/README.md +67 -0
  29. package/integrations/deerflow/SKILL.md +55 -0
  30. package/integrations/gemini-cli/GEMINI.md +52 -0
  31. package/integrations/gemini-cli/README.md +72 -0
  32. package/integrations/kiro/README.md +104 -0
  33. package/integrations/kiro/ao-workflow-runner.md +50 -0
  34. package/integrations/openclaw/README.md +60 -0
  35. package/integrations/trae/README.md +104 -0
  36. package/integrations/trae/ao-workflow-runner.md +50 -0
  37. package/package.json +15 -12
  38. package/workflows/data/dashboard-design.yaml +76 -0
  39. package/workflows/data/data-pipeline-review.yaml +77 -0
  40. package/workflows/department-collab/code-review.yaml +109 -0
  41. package/workflows/department-collab/content-publish.yaml +115 -0
  42. package/workflows/department-collab/hiring-pipeline.yaml +89 -0
  43. package/workflows/department-collab/incident-response.yaml +111 -0
  44. package/workflows/department-collab/marketing-campaign.yaml +97 -0
  45. package/workflows/design/requirement-to-plan.yaml +83 -0
  46. package/workflows/design/ux-review.yaml +79 -0
  47. package/workflows/dev/api-doc-gen.yaml +95 -0
  48. package/workflows/dev/pr-review.yaml +108 -0
  49. package/workflows/dev/readme-i18n.yaml +73 -0
  50. package/workflows/dev/release-checklist.yaml +103 -0
  51. package/workflows/dev/security-audit.yaml +88 -0
  52. package/workflows/dev/tech-debt-audit.yaml +113 -0
  53. package/workflows/ops/incident-postmortem.yaml +79 -0
  54. package/workflows/ops/sre-health-check.yaml +100 -0
package/README.md CHANGED
@@ -1,114 +1,107 @@
1
1
  # Agency Orchestrator
2
2
 
3
- > **The YAML-first multi-agent orchestrator — 186 ready-to-use AI roles, zero code, any LLM**
4
- >
5
- > **不用写代码的 AI 团队 — 186 个角色开箱即用,YAML 编排,支持 DeepSeek/Claude/OpenAI/Ollama**
3
+ **English** | [中文](./README.zh-CN.md)
4
+
5
+ > **Multi-agent workflows in YAML — 186 ready-to-use AI roles, zero code required**
6
6
 
7
7
  [![CI](https://github.com/jnMetaCode/agency-orchestrator/actions/workflows/ci.yml/badge.svg)](https://github.com/jnMetaCode/agency-orchestrator/actions)
8
8
  [![npm version](https://img.shields.io/npm/v/agency-orchestrator)](https://www.npmjs.com/package/agency-orchestrator)
9
9
  [![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](./LICENSE)
10
10
  [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](./CONTRIBUTING.md)
11
11
 
12
- **English** | [中文文档](./README.zh-CN.md)
13
-
14
12
  ---
15
13
 
16
- ## Why This?
17
-
18
- [agency-agents-zh](https://github.com/jnMetaCode/agency-agents-zh) provides **186 production-ready AI role prompts** (product managers, engineers, designers, marketers...), but each role works alone. Real tasks need **collaboration** — who goes first, how to hand off context, when to run in parallel.
14
+ ## What Is This?
19
15
 
20
- Agency Orchestrator turns a YAML file into a multi-agent pipeline. No Python. No framework boilerplate. Just roles and tasks.
16
+ A lightweight engine that orchestrates multiple AI agents to collaborate on complex tasks. You define the workflow in YAML — which roles, what tasks, what order — and the engine handles parallel execution, variable passing, retries, and output management.
21
17
 
22
- ### vs CrewAI
23
-
24
- ```python
25
- # CrewAI: ~50 lines of Python, write every role from scratch
26
- researcher = Agent(role="PM", goal="...", backstory="...(write it yourself)...")
27
- task = Task(description="...", agent=researcher)
28
- crew = Crew(agents=[researcher], tasks=[task])
29
- crew.kickoff()
30
- ```
18
+ **No Python. No framework boilerplate. Just YAML.**
31
19
 
32
20
  ```yaml
33
- # Agency Orchestrator: 10 lines of YAML, 186 roles ready to use
34
21
  steps:
35
22
  - id: analyze
36
- role: "product/product-manager" # pre-built role with expert prompt
37
- task: "Analyze this PRD: {{prd_content}}"
23
+ role: "product/product-manager" # 186 built-in roles
24
+ task: "Analyze this PRD:\n\n{{prd_content}}"
25
+ output: requirements
26
+
27
+ - id: tech_review
28
+ role: "engineering/engineering-software-architect"
29
+ task: "Evaluate feasibility:\n\n{{requirements}}"
30
+ depends_on: [analyze] # auto DAG detection
38
31
  ```
39
32
 
33
+ ### vs CrewAI / LangGraph
34
+
40
35
  | | CrewAI | LangGraph | **Agency Orchestrator** |
41
36
  |---|--------|-----------|---------------------|
42
37
  | Language | Python | Python | **YAML (zero code)** |
43
- | Role definitions | Write from scratch | Write from scratch | **186 ready-to-use** |
38
+ | Roles | Write your own | Write your own | **186 ready-to-use** |
44
39
  | Dependencies | pip + LiteLLM + dozens | pip + LangChain | **npm + 2 deps** |
45
- | Chinese roles | None | None | **186 (44 China-original)** |
46
- | LLM support | Via LiteLLM (buggy) | Via LangChain | **Native: DeepSeek, Ollama, Claude, OpenAI** |
47
- | Getting started | Write Python classes | Learn graph API | **Write YAML** |
48
- | Parallelism | "Manager" mode (broken) | Manual graph edges | **Auto DAG detection** |
49
- | Price | Open + $25-99/mo cloud | Open source | **100% free** |
40
+ | Models | LiteLLM | LangChain | **Native: DeepSeek, Claude, OpenAI, Ollama** |
41
+ | Parallelism | Manager mode | Manual graph | **Auto DAG detection** |
42
+ | Branching | None | Manual | **Condition expressions** |
43
+ | Loops | None | Manual | **Declarative loop/exit** |
44
+ | Resume | None | Checkpointers | **Built-in `--resume` + `--from`** |
45
+ | Price | Open-source + $25-99/mo cloud | Open-source | **Completely free** |
50
46
 
51
47
  ## Quick Start
52
48
 
49
+ ### Option A: Inside Claude Code / Cursor (No API key needed)
50
+
51
+ Your AI coding tool's built-in LLM serves as the execution engine:
52
+
53
53
  ```bash
54
- # Install
55
- npm install agency-orchestrator
54
+ git clone --depth 1 https://github.com/jnMetaCode/agency-agents-zh.git
55
+ npx superpowers-zh
56
+ ```
56
57
 
57
- # Download 186 AI roles
58
- npx ao init
58
+ Then tell your AI: `Run workflows/story-creation.yaml with premise="A time travel story"`
59
59
 
60
- # View execution plan
61
- npx ao plan workflows/product-review.yaml
60
+ ### Option B: CLI Mode (API key required)
62
61
 
63
- # Run (choose your LLM)
64
- export DEEPSEEK_API_KEY=your-key # or ANTHROPIC_API_KEY, OPENAI_API_KEY
65
- npx ao run workflows/story-creation.yaml --input premise='A time travel story'
62
+ ```bash
63
+ npm install agency-orchestrator
64
+ npx ao init # download 186 AI roles
65
+ export DEEPSEEK_API_KEY=your-key
66
+ npx ao run workflows/story-creation.yaml --input premise="A time travel story"
66
67
  ```
67
68
 
68
- ## Demo: 3 AI Roles Reviewing a Product in 22 Seconds
69
+ ## Demo: 4 AI Roles Write a Complete Story in 2 Minutes
69
70
 
70
71
  ```
71
- $ ao run workflows/product-review.yaml -i prd_content="Build an AI-powered code review tool"
72
+ $ ao run workflows/story-creation.yaml -i "premise=A programmer discovers AI replies with things it shouldn't know"
72
73
 
73
- Workflow: Product Review
74
+ Workflow: Short Story Creation
74
75
  Steps: 4 | Concurrency: 2 | Model: deepseek-chat
75
76
  ──────────────────────────────────────────────────
76
77
 
77
- ── [1/4] analyze (product/product-manager) ──
78
- Done | 8.2s | 2,341 tokens
79
- Key requirements extracted: 1) GitHub/GitLab integration for PR webhooks
80
- 2) Multi-language AST parsing 3) LLM-based review with context window...
78
+ ── [1/4] story_structure (Narratologist) ──
79
+ Done | 14.9s | 1,919 tokens
81
80
 
82
- ── [2/4] tech_review (engineering/engineering-software-architect) ── ← parallel
83
- Done | 6.8s | 1,892 tokens
84
- Technical feasibility: HIGH. Recommended stack: Node.js + tree-sitter
85
- for parsing, streaming API for real-time review feedback...
81
+ ── [2/4] character_design (Psychologist) ── ← parallel
82
+ Done | 65.5s | 4,016 tokens
86
83
 
87
- ── [3/4] design_review (design/design-ux-researcher) ── ← parallel
88
- Done | 6.8s | 1,756 tokens
89
- UX risks: inline comments may overwhelm developers. Suggest progressive
90
- disclosure — show summary first, expand details on click...
84
+ ── [3/4] conflict_design (Narrative Designer) ── ← parallel
85
+ Done | 65.5s | 3,607 tokens
91
86
 
92
- ── [4/4] summary (product/product-manager) ──
93
- Done | 5.1s | 2,014 tokens
94
- GO with conditions: strong technical feasibility, address UX concern
95
- about comment density before launch...
87
+ ── [4/4] write_story (Content Creator) ──
88
+ Done | 33.9s | 5,330 tokens
96
89
 
97
90
  ==================================================
98
- Done: 4/4 steps | 21.9s | 8,003 tokens
91
+ Completed: 4/4 steps | 114.3s | 14,872 tokens
99
92
  ==================================================
100
93
  ```
101
94
 
102
- Steps 2 & 3 ran **in parallel** (auto-detected from DAG). 3 specialized AI roles (PM, Architect, UX Researcher) collaborated to review the product.
95
+ Steps 2 and 3 run **in parallel** (auto-detected from DAG dependencies). Four specialized AI roles collaborate to produce a complete suspense short story.
103
96
 
104
97
  ## How It Works
105
98
 
106
99
  ```yaml
107
- name: "Product Review"
100
+ name: "Product Requirements Review"
108
101
  agents_dir: "agency-agents-zh"
109
102
 
110
103
  llm:
111
- provider: "deepseek" # or: claude, openai, ollama
104
+ provider: "deepseek" # or: claude, openai, ollama
112
105
  model: "deepseek-chat"
113
106
 
114
107
  concurrency: 2
@@ -120,7 +113,7 @@ inputs:
120
113
  steps:
121
114
  - id: analyze
122
115
  role: "product/product-manager"
123
- task: "Analyze this PRD, extract key requirements:\n\n{{prd_content}}"
116
+ task: "Analyze this PRD and extract core requirements:\n\n{{prd_content}}"
124
117
  output: requirements
125
118
 
126
119
  - id: tech_review
@@ -142,12 +135,11 @@ steps:
142
135
  ```
143
136
 
144
137
  The engine automatically:
145
-
146
138
  1. Parses YAML → builds a **DAG** (directed acyclic graph)
147
139
  2. Detects parallelism — `tech_review` and `design_review` run concurrently
148
140
  3. Passes outputs between steps via `{{variables}}`
149
- 4. Loads [agency-agents-zh](https://github.com/jnMetaCode/agency-agents-zh) role definitions as system prompts
150
- 5. Retries on failure with exponential backoff
141
+ 4. Loads role definitions from [agency-agents-zh](https://github.com/jnMetaCode/agency-agents-zh) as system prompts
142
+ 5. Retries on failure (exponential backoff)
151
143
  6. Saves all outputs to `.ao-output/`
152
144
 
153
145
  ```
@@ -156,6 +148,80 @@ analyze ──→ tech_review ──→ summary
156
148
  (parallel)
157
149
  ```
158
150
 
151
+ ## Features
152
+
153
+ ### Condition Branching
154
+
155
+ ```yaml
156
+ - id: tech_path
157
+ role: "engineering/engineering-sre"
158
+ task: "Technical evaluation: {{requirements}}"
159
+ depends_on: [classify]
160
+ condition: "{{job_type}} contains technical"
161
+
162
+ - id: biz_path
163
+ role: "marketing/marketing-social-media-strategist"
164
+ task: "Business evaluation: {{requirements}}"
165
+ depends_on: [classify]
166
+ condition: "{{job_type}} contains business"
167
+
168
+ - id: summary
169
+ depends_on: [tech_path, biz_path]
170
+ depends_on_mode: "any_completed" # proceeds when ANY upstream completes
171
+ ```
172
+
173
+ Supported operators: `contains`, `equals`, `not_contains`, `not_equals`.
174
+
175
+ ### Loop Iteration
176
+
177
+ ```yaml
178
+ - id: write_draft
179
+ role: "marketing/marketing-content-creator"
180
+ task: "Write article: {{topic}}"
181
+ output: draft
182
+
183
+ - id: brand_review
184
+ role: "design/design-brand-guardian"
185
+ task: "Review brand compliance: {{draft}}"
186
+ output: review_result
187
+ depends_on: [write_draft]
188
+ loop:
189
+ back_to: write_draft
190
+ max_iterations: 3
191
+ exit_condition: "{{review_result}} contains approved"
192
+ ```
193
+
194
+ When the exit condition is not met, execution loops back to `back_to`. The `{{_loop_iteration}}` variable tracks the current round.
195
+
196
+ ### Resume & Iterate
197
+
198
+ **Problem**: After `ao run` completes, all step outputs are lost. To tweak the final story, you'd have to re-run everything from scratch.
199
+
200
+ **Solution**: `--resume` reloads previous outputs. `--from` specifies where to restart.
201
+
202
+ ```bash
203
+ # Round 1: Normal run
204
+ ao run workflows/story-creation.yaml -i premise="A time travel story"
205
+
206
+ # Round 2: Characters feel flat — re-run from character_design
207
+ ao run workflows/story-creation.yaml --resume last --from character_design
208
+
209
+ # Round 3: Only rewrite the final prose
210
+ ao run workflows/story-creation.yaml --resume last --from write_story
211
+
212
+ # Round 4: Go back to a specific version
213
+ ao run workflows/story-creation.yaml --resume .ao-output/<dir>/ --from write_story
214
+ ```
215
+
216
+ Each round creates a new timestamped output directory. All versions are preserved.
217
+
218
+ | Scenario | Command |
219
+ |----------|---------|
220
+ | First run | `ao run workflow.yaml -i key=value` |
221
+ | Re-run from a step | `ao run workflow.yaml --resume last --from <step-id>` |
222
+ | Re-run only failed steps | `ao run workflow.yaml --resume last` |
223
+ | Resume specific version | `ao run workflow.yaml --resume .ao-output/<dir>/ --from <step-id>` |
224
+
159
225
  ## Supported LLMs
160
226
 
161
227
  | Provider | Config | Env Variable |
@@ -165,24 +231,64 @@ analyze ──→ tech_review ──→ summary
165
231
  | **OpenAI** | `provider: "openai"` | `OPENAI_API_KEY` |
166
232
  | **Ollama** (local) | `provider: "ollama"` | None needed |
167
233
 
168
- All providers support custom `base_url` and `api_key` in YAML for compatible APIs (Zhipu, Moonshot, etc.).
234
+ All providers support custom `base_url` and `api_key`, compatible with any OpenAI-compatible API (Zhipu, Moonshot, etc.).
169
235
 
170
- ## CLI Commands
236
+ ## CLI Reference
171
237
 
172
238
  ```bash
173
239
  ao init # Download 186 AI roles
240
+ ao init --workflow # Interactive workflow creator
174
241
  ao run <workflow.yaml> [options] # Execute workflow
175
242
  ao validate <workflow.yaml> # Validate without running
176
243
  ao plan <workflow.yaml> # Show execution plan (DAG)
244
+ ao explain <workflow.yaml> # Explain execution plan in natural language
177
245
  ao roles # List all available roles
178
246
  ```
179
247
 
180
- | Flag | Description |
181
- |------|-------------|
182
- | `--input key=value` | Pass input variable |
183
- | `--input key=@file` | Read variable from file |
184
- | `--output dir` | Output directory (default: `.ao-output/`) |
185
- | `--quiet` | Suppress progress output |
248
+ | Option | Description |
249
+ |--------|-------------|
250
+ | `--input key=value` | Pass input variables |
251
+ | `--input key=@file` | Read variable value from file |
252
+ | `--output dir` | Output directory (default `.ao-output/`) |
253
+ | `--resume <dir\|last>` | Resume from previous run |
254
+ | `--from <step-id>` | With `--resume`, restart from a specific step |
255
+ | `--watch` | Real-time terminal progress display |
256
+ | `--quiet` | Quiet mode |
257
+
258
+ ## YAML Schema
259
+
260
+ ### Workflow
261
+
262
+ | Field | Type | Required | Description |
263
+ |-------|------|----------|-------------|
264
+ | `name` | string | Yes | Workflow name |
265
+ | `agents_dir` | string | Yes | Path to role definitions directory |
266
+ | `llm.provider` | string | Yes | `claude` / `deepseek` / `openai` / `ollama` |
267
+ | `llm.model` | string | Yes | Model name |
268
+ | `llm.max_tokens` | number | No | Default 4096 |
269
+ | `llm.timeout` | number | No | Step timeout in ms (default 120000) |
270
+ | `llm.retry` | number | No | Retry count (default 3) |
271
+ | `concurrency` | number | No | Max parallel steps (default 2) |
272
+ | `inputs` | array | No | Input variable definitions |
273
+ | `steps` | array | Yes | Workflow steps |
274
+
275
+ ### Step
276
+
277
+ | Field | Type | Required | Description |
278
+ |-------|------|----------|-------------|
279
+ | `id` | string | Yes | Unique step identifier |
280
+ | `role` | string | Yes | Role path (e.g. `"engineering/engineering-sre"`) |
281
+ | `task` | string | Yes | Task description, supports `{{variables}}` |
282
+ | `output` | string | No | Output variable name |
283
+ | `depends_on` | string[] | No | Dependent step IDs |
284
+ | `depends_on_mode` | string | No | `"all"` (default) or `"any_completed"` |
285
+ | `condition` | string | No | Condition expression; step skipped if not met |
286
+ | `type` | string | No | `"approval"` for human approval gate |
287
+ | `prompt` | string | No | Prompt text for approval nodes |
288
+ | `loop` | object | No | Loop config |
289
+ | `loop.back_to` | string | No | Step ID to loop back to |
290
+ | `loop.max_iterations` | number | No | Max loop rounds (1-10) |
291
+ | `loop.exit_condition` | string | No | Exit condition expression |
186
292
 
187
293
  ## Programmatic API
188
294
 
@@ -197,80 +303,88 @@ console.log(result.success); // true/false
197
303
  console.log(result.totalTokens); // { input: 1234, output: 5678 }
198
304
  ```
199
305
 
200
- ## Built-in Workflow Templates
306
+ ## Integrations
307
+
308
+ Works with **9 AI coding tools** — each tool gets a workflow-runner skill file:
309
+
310
+ | Tool | Integration | Docs |
311
+ |------|------------|------|
312
+ | **Claude Code** | Skill mode / CLI | [Guide](./integrations/claude-code/) |
313
+ | **Cursor** | `.cursor/rules` | [Guide](./integrations/cursor/) |
314
+ | **Kiro** | `.kiro/steering` | [Guide](./integrations/kiro/) |
315
+ | **Trae** | `.trae/rules` | [Guide](./integrations/trae/) |
316
+ | **Gemini CLI** | `GEMINI.md` | [Guide](./integrations/gemini-cli/) |
317
+ | **Codex CLI** | `.codex/instructions` | [Guide](./integrations/codex/) |
318
+ | **DeerFlow 2.0** | `skills/custom` | [Guide](./integrations/deerflow/) |
319
+ | **Antigravity** | `AGENTS.md` | [Guide](./integrations/antigravity/) |
320
+ | **OpenClaw** | Skill mode / CLI | [Guide](./integrations/openclaw/) |
321
+
322
+ ## Workflow Templates (20+)
323
+
324
+ ### Dev Workflows
201
325
 
202
326
  | Template | Roles | Description |
203
327
  |----------|-------|-------------|
204
- | `product-review.yaml` | PM, Architect, UX Researcher | Product requirements review with parallel tech + design evaluation |
205
- | `content-pipeline.yaml` | Strategist, Creator, Growth Hacker | Content creation with research draftreview |
206
- | `story-creation.yaml` | Narratologist, Psychologist, Narrative Designer, Content Creator | Collaborative fiction writing (4 roles, 3 layers) |
328
+ | `dev/pr-review.yaml` | Code Reviewer, Security Engineer, Performance Benchmarker | PR review (3-way parallel summary) |
329
+ | `dev/tech-debt-audit.yaml` | Architect, Code Reviewer, Test Analyst, Sprint Prioritizer | Tech debt audit (parallelprioritize) |
330
+ | `dev/api-doc-gen.yaml` | Tech Writer, API Tester | API doc generation (analyze validate → finalize) |
331
+ | `dev/readme-i18n.yaml` | Content Creator, Tech Writer | README internationalization |
332
+ | `dev/security-audit.yaml` | Security Engineer, Threat Detection Engineer | Security audit (parallel → report) |
333
+ | `dev/release-checklist.yaml` | SRE, Performance Benchmarker, Security Engineer, PM | Release Go/No-Go decision |
207
334
 
208
- ## YAML Schema
209
-
210
- ### Workflow
335
+ ### Data / Design / Ops Workflows
211
336
 
212
- | Field | Type | Required | Description |
213
- |-------|------|----------|-------------|
214
- | `name` | string | Yes | Workflow name |
215
- | `agents_dir` | string | Yes | Path to agency-agents directory |
216
- | `llm.provider` | string | Yes | `claude` / `deepseek` / `openai` / `ollama` |
217
- | `llm.model` | string | Yes | Model name |
218
- | `llm.max_tokens` | number | No | Default: 4096 |
219
- | `llm.timeout` | number | No | Step timeout ms (default: 120000) |
220
- | `llm.retry` | number | No | Retry count (default: 3) |
221
- | `concurrency` | number | No | Max parallel steps (default: 2) |
222
- | `inputs` | array | No | Input variable definitions |
223
- | `steps` | array | Yes | Workflow steps |
337
+ | Template | Roles | Description |
338
+ |----------|-------|-------------|
339
+ | `data/data-pipeline-review.yaml` | Data Engineer, DB Optimizer, Data Analyst | Data pipeline review |
340
+ | `data/dashboard-design.yaml` | Data Analyst, UX Researcher, UI Designer | Dashboard design |
341
+ | `design/requirement-to-plan.yaml` | PM, Architect, Project Manager | Requirements tech design task breakdown |
342
+ | `design/ux-review.yaml` | UX Researcher, Accessibility Auditor, UX Architect | UX review |
343
+ | `ops/incident-postmortem.yaml` | Incident Commander, SRE, PM | Incident postmortem |
344
+ | `ops/sre-health-check.yaml` | SRE, Performance Benchmarker, Infra Ops | SRE health check (3-way parallel) |
224
345
 
225
- ### Step
346
+ ### General Workflows
226
347
 
227
- | Field | Type | Required | Description |
228
- |-------|------|----------|-------------|
229
- | `id` | string | Yes | Unique step identifier |
230
- | `role` | string | Yes | Agent path (e.g. `"engineering/engineering-sre"`) |
231
- | `task` | string | Yes | Task description, supports `{{variables}}` |
232
- | `output` | string | No | Output variable name |
233
- | `depends_on` | string[] | No | Dependency step IDs |
348
+ | Template | Roles | Description |
349
+ |----------|-------|-------------|
350
+ | `product-review.yaml` | PM, Architect, UX Researcher | Product requirements review |
351
+ | `content-pipeline.yaml` | Strategist, Creator, Growth Hacker | Content creation pipeline |
352
+ | `story-creation.yaml` | Narratologist, Psychologist, Narrative Designer, Creator | Collaborative fiction (4 roles) |
353
+ | `department-collab/code-review.yaml` | Code Reviewer, Security Engineer | Code review (review loop) |
354
+ | `department-collab/hiring-pipeline.yaml` | HR, Tech Interviewer, Biz Interviewer | Hiring pipeline |
355
+ | `department-collab/content-publish.yaml` | Content Creator, Brand Guardian | Content publishing (review loop) |
356
+ | `department-collab/incident-response.yaml` | SRE, Security Engineer, Backend Architect | Incident response |
357
+ | `department-collab/marketing-campaign.yaml` | Strategist, Creator, Approver | Marketing campaign (human approval) |
234
358
 
235
- ## Output
359
+ ## Output Structure
236
360
 
237
361
  Each run saves to `.ao-output/<name>-<timestamp>/`:
238
362
 
239
363
  ```
240
- .ao-output/Product-Review-2026-03-21T16-30-00/
364
+ .ao-output/product-review-2026-03-22/
241
365
  ├── summary.md # Final step output
242
366
  ├── steps/
243
367
  │ ├── 1-analyze.md
244
368
  │ ├── 2-tech_review.md
245
369
  │ ├── 3-design_review.md
246
370
  │ └── 4-summary.md
247
- └── metadata.json # Duration, token usage, step status
371
+ └── metadata.json # Timing, token usage, step states
248
372
  ```
249
373
 
250
374
  ## Ecosystem
251
375
 
252
- ```
253
- agency-agents-zh (186 AI role definitions)
254
-
255
- ▼ roles loaded by
256
- agency-orchestrator (this project — YAML workflow engine)
257
-
258
- ▼ connectors
259
- DeepSeek / Claude / OpenAI / Ollama
260
- ```
261
-
262
- ## Sister Projects
263
-
264
376
  | Project | Description |
265
377
  |---------|-------------|
266
- | [agency-agents-zh](https://github.com/jnMetaCode/agency-agents-zh) | 186 AI role definitions — the role library this orchestrator is built on |
267
- | [superpowers-zh](https://github.com/jnMetaCode/superpowers-zh) | AI coding superpowers — 17 skills to make your AI coding assistant actually productive |
378
+ | [agency-agents-zh](https://github.com/jnMetaCode/agency-agents-zh) | 186 AI role definitions — the role library for this engine |
379
+ | [superpowers-zh](https://github.com/jnMetaCode/superpowers-zh) | AI coding superpowers — 20 skills for Claude Code / Cursor |
380
+ | [shellward](https://github.com/jnMetaCode/shellward) | AI agent security middleware — prompt injection detection, DLP, command safety |
268
381
 
269
382
  ## Roadmap
270
383
 
271
- - [x] **v0.1** — YAML workflow, DAG engine, 4 LLM connectors, CLI, real-time output
272
- - [ ] **v0.2** — Human approval nodes, iteration loops, workflow marketplace
273
- - [ ] **v0.3** — Web UI, MCP Server mode, visual DAG editor
384
+ - [x] **v0.1** — YAML workflows, DAG engine, 4 LLM connectors, CLI, streaming output
385
+ - [x] **v0.2** — Condition branching, loop iteration, human approval, Resume, 5 department-collab templates
386
+ - [x] **v0.3** — 9 AI tool integrations, 20+ workflow templates, `ao explain`, `ao init --workflow`, `--watch` mode
387
+ - [ ] **v0.4** — MCP Server mode, Web UI, visual DAG editor, English role support, workflow marketplace
274
388
 
275
389
  ## Contributing
276
390