agency-orchestrator 0.1.0 → 0.3.0

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 +239 -112
  2. package/README.zh-CN.md +244 -15
  3. package/dist/cli/explain.d.ts +8 -0
  4. package/dist/cli/explain.js +108 -0
  5. package/dist/cli/init-workflow.d.ts +20 -0
  6. package/dist/cli/init-workflow.js +120 -0
  7. package/dist/cli/watch.d.ts +19 -0
  8. package/dist/cli/watch.js +85 -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 +65 -6
  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 +65 -0
  23. package/integrations/claude-code/README.md +91 -0
  24. package/integrations/codex/README.md +66 -0
  25. package/integrations/codex/instructions.md +50 -0
  26. package/integrations/cursor/README.md +98 -0
  27. package/integrations/cursor/workflow-runner.mdc +55 -0
  28. package/integrations/deerflow/README.md +61 -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 +65 -0
  32. package/integrations/kiro/README.md +101 -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 +101 -0
  36. package/integrations/trae/ao-workflow-runner.md +50 -0
  37. package/package.json +16 -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,108 +1,107 @@
1
1
  # Agency Orchestrator
2
2
 
3
- > **The YAML-first multi-agent orchestrator — 186 Chinese AI roles, zero code, any LLM**
3
+ **English** | [中文](./README.zh-CN.md)
4
+
5
+ > **Multi-agent workflows in YAML — 186 ready-to-use AI roles, zero code required**
4
6
 
5
7
  [![CI](https://github.com/jnMetaCode/agency-orchestrator/actions/workflows/ci.yml/badge.svg)](https://github.com/jnMetaCode/agency-orchestrator/actions)
6
8
  [![npm version](https://img.shields.io/npm/v/agency-orchestrator)](https://www.npmjs.com/package/agency-orchestrator)
7
9
  [![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](./LICENSE)
8
10
  [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](./CONTRIBUTING.md)
9
11
 
10
- [中文文档](./README.zh-CN.md)
11
-
12
12
  ---
13
13
 
14
- ## Why This?
15
-
16
- [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?
17
15
 
18
- 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.
19
17
 
20
- ### vs CrewAI
21
-
22
- ```python
23
- # CrewAI: ~50 lines of Python, write every role from scratch
24
- researcher = Agent(role="PM", goal="...", backstory="...(你自己写)...")
25
- task = Task(description="...", agent=researcher)
26
- crew = Crew(agents=[researcher], tasks=[task])
27
- crew.kickoff()
28
- ```
18
+ **No Python. No framework boilerplate. Just YAML.**
29
19
 
30
20
  ```yaml
31
- # Agency Orchestrator: 10 lines of YAML, 186 roles ready to use
32
21
  steps:
33
22
  - id: analyze
34
- role: "product/product-manager" # pre-built role with expert prompt
35
- 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
36
31
  ```
37
32
 
33
+ ### vs CrewAI / LangGraph
34
+
38
35
  | | CrewAI | LangGraph | **Agency Orchestrator** |
39
36
  |---|--------|-----------|---------------------|
40
37
  | Language | Python | Python | **YAML (zero code)** |
41
- | Role definitions | Write from scratch | Write from scratch | **186 ready-to-use** |
38
+ | Roles | Write your own | Write your own | **186 ready-to-use** |
42
39
  | Dependencies | pip + LiteLLM + dozens | pip + LangChain | **npm + 2 deps** |
43
- | Chinese roles | None | None | **186 (44 China-original)** |
44
- | LLM support | Via LiteLLM (buggy) | Via LangChain | **Native: DeepSeek, Ollama, Claude, OpenAI** |
45
- | Getting started | Write Python classes | Learn graph API | **Write YAML** |
46
- | Parallelism | "Manager" mode (broken) | Manual graph edges | **Auto DAG detection** |
47
- | 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** |
48
46
 
49
47
  ## Quick Start
50
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
+
51
53
  ```bash
52
- # Install
53
- npm install agency-orchestrator
54
+ git clone --depth 1 https://github.com/jnMetaCode/agency-agents-zh.git
55
+ npx superpowers-zh
56
+ ```
54
57
 
55
- # Download 186 AI roles
56
- npx ao init
58
+ Then tell your AI: `Run workflows/story-creation.yaml with premise="A time travel story"`
57
59
 
58
- # View execution plan
59
- npx ao plan workflows/product-review.yaml
60
+ ### Option B: CLI Mode (API key required)
60
61
 
61
- # Run (choose your LLM)
62
- export DEEPSEEK_API_KEY=your-key # or ANTHROPIC_API_KEY, OPENAI_API_KEY
63
- 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"
64
67
  ```
65
68
 
66
- ## Demo: 4 AI Roles Writing a Story in 2 Minutes
69
+ ## Demo: 4 AI Roles Write a Complete Story in 2 Minutes
67
70
 
68
71
  ```
69
- $ ao run workflows/story-creation.yaml -i "premise=一个程序员在凌晨三点发现AI开始回复不该知道的事情"
72
+ $ ao run workflows/story-creation.yaml -i "premise=A programmer discovers AI replies with things it shouldn't know"
70
73
 
71
- 工作流: 短篇小说创作
72
- 步骤数: 4 | 并发: 2 | 模型: deepseek-chat
74
+ Workflow: Short Story Creation
75
+ Steps: 4 | Concurrency: 2 | Model: deepseek-chat
73
76
  ──────────────────────────────────────────────────
74
77
 
75
- ── [1/4] story_structure (academic/academic-narratologist) ──
76
- 完成 | 14.9s | 1919 tokens
77
- 核心冲突:程序员与一个似乎拥有超越其代码权限的自主意识之间的认知对抗...
78
+ ── [1/4] story_structure (Narratologist) ──
79
+ Done | 14.9s | 1,919 tokens
78
80
 
79
- ── [2/4] character_design (academic/academic-psychologist) ── ← parallel
80
- 完成 | 65.5s | 4016 tokens
81
- 人物心理档案:林深——一个信奉逻辑与控制的资深AI工程师...
81
+ ── [2/4] character_design (Psychologist) ── ← parallel
82
+ Done | 65.5s | 4,016 tokens
82
83
 
83
- ── [3/4] conflict_design (game-development/narrative-designer) ── ← parallel
84
- 完成 | 65.5s | 3607 tokens
85
- 凌晨三点,屏幕的冷光映着陈默疲惫的脸...
84
+ ── [3/4] conflict_design (Narrative Designer) ── ← parallel
85
+ Done | 65.5s | 3,607 tokens
86
86
 
87
- ── [4/4] write_story (marketing/marketing-content-creator) ──
88
- 完成 | 33.9s | 5330 tokens
89
- 凌晨三点,调试日志的蓝色荧光是房间里唯一的光源。陈默灌下今晚第三杯黑咖啡...
87
+ ── [4/4] write_story (Content Creator) ──
88
+ Done | 33.9s | 5,330 tokens
90
89
 
91
90
  ==================================================
92
- 完成: 4/4 | 114.3s | 14,872 tokens
91
+ Completed: 4/4 steps | 114.3s | 14,872 tokens
93
92
  ==================================================
94
93
  ```
95
94
 
96
- Steps 2 & 3 ran **in parallel** (auto-detected from DAG). Total: 4 specialized AI roles collaborated to produce a complete short story.
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.
97
96
 
98
97
  ## How It Works
99
98
 
100
99
  ```yaml
101
- name: "Product Review"
100
+ name: "Product Requirements Review"
102
101
  agents_dir: "agency-agents-zh"
103
102
 
104
103
  llm:
105
- provider: "deepseek" # or: claude, openai, ollama
104
+ provider: "deepseek" # or: claude, openai, ollama
106
105
  model: "deepseek-chat"
107
106
 
108
107
  concurrency: 2
@@ -114,7 +113,7 @@ inputs:
114
113
  steps:
115
114
  - id: analyze
116
115
  role: "product/product-manager"
117
- task: "Analyze this PRD, extract key requirements:\n\n{{prd_content}}"
116
+ task: "Analyze this PRD and extract core requirements:\n\n{{prd_content}}"
118
117
  output: requirements
119
118
 
120
119
  - id: tech_review
@@ -136,12 +135,11 @@ steps:
136
135
  ```
137
136
 
138
137
  The engine automatically:
139
-
140
138
  1. Parses YAML → builds a **DAG** (directed acyclic graph)
141
139
  2. Detects parallelism — `tech_review` and `design_review` run concurrently
142
140
  3. Passes outputs between steps via `{{variables}}`
143
- 4. Loads [agency-agents-zh](https://github.com/jnMetaCode/agency-agents-zh) role definitions as system prompts
144
- 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)
145
143
  6. Saves all outputs to `.ao-output/`
146
144
 
147
145
  ```
@@ -150,6 +148,80 @@ analyze ──→ tech_review ──→ summary
150
148
  (parallel)
151
149
  ```
152
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-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: "content/content-creator"
180
+ task: "Write article: {{topic}}"
181
+ output: draft
182
+
183
+ - id: brand_review
184
+ role: "marketing/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
+
153
225
  ## Supported LLMs
154
226
 
155
227
  | Provider | Config | Env Variable |
@@ -159,24 +231,64 @@ analyze ──→ tech_review ──→ summary
159
231
  | **OpenAI** | `provider: "openai"` | `OPENAI_API_KEY` |
160
232
  | **Ollama** (local) | `provider: "ollama"` | None needed |
161
233
 
162
- 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.).
163
235
 
164
- ## CLI Commands
236
+ ## CLI Reference
165
237
 
166
238
  ```bash
167
239
  ao init # Download 186 AI roles
240
+ ao init --workflow # Interactive workflow creator
168
241
  ao run <workflow.yaml> [options] # Execute workflow
169
242
  ao validate <workflow.yaml> # Validate without running
170
243
  ao plan <workflow.yaml> # Show execution plan (DAG)
244
+ ao explain <workflow.yaml> # Explain execution plan in natural language
171
245
  ao roles # List all available roles
172
246
  ```
173
247
 
174
- | Flag | Description |
175
- |------|-------------|
176
- | `--input key=value` | Pass input variable |
177
- | `--input key=@file` | Read variable from file |
178
- | `--output dir` | Output directory (default: `.ao-output/`) |
179
- | `--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 |
180
292
 
181
293
  ## Programmatic API
182
294
 
@@ -191,73 +303,88 @@ console.log(result.success); // true/false
191
303
  console.log(result.totalTokens); // { input: 1234, output: 5678 }
192
304
  ```
193
305
 
194
- ## 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
195
325
 
196
326
  | Template | Roles | Description |
197
327
  |----------|-------|-------------|
198
- | `product-review.yaml` | PM, Architect, UX Researcher | Product requirements review with parallel tech + design evaluation |
199
- | `content-pipeline.yaml` | Strategist, Creator, Growth Hacker | Content creation with research draftreview |
200
- | `story-creation.yaml` | Narratologist, Psychologist, Narrative Designer, Content Creator | Collaborative fiction writing (4 roles, 3 layers) |
201
-
202
- ## YAML Schema
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 |
203
334
 
204
- ### Workflow
335
+ ### Data / Design / Ops Workflows
205
336
 
206
- | Field | Type | Required | Description |
207
- |-------|------|----------|-------------|
208
- | `name` | string | Yes | Workflow name |
209
- | `agents_dir` | string | Yes | Path to agency-agents directory |
210
- | `llm.provider` | string | Yes | `claude` / `deepseek` / `openai` / `ollama` |
211
- | `llm.model` | string | Yes | Model name |
212
- | `llm.max_tokens` | number | No | Default: 4096 |
213
- | `llm.timeout` | number | No | Step timeout ms (default: 120000) |
214
- | `llm.retry` | number | No | Retry count (default: 3) |
215
- | `concurrency` | number | No | Max parallel steps (default: 2) |
216
- | `inputs` | array | No | Input variable definitions |
217
- | `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) |
218
345
 
219
- ### Step
346
+ ### General Workflows
220
347
 
221
- | Field | Type | Required | Description |
222
- |-------|------|----------|-------------|
223
- | `id` | string | Yes | Unique step identifier |
224
- | `role` | string | Yes | Agent path (e.g. `"engineering/engineering-sre"`) |
225
- | `task` | string | Yes | Task description, supports `{{variables}}` |
226
- | `output` | string | No | Output variable name |
227
- | `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) |
228
358
 
229
- ## Output
359
+ ## Output Structure
230
360
 
231
361
  Each run saves to `.ao-output/<name>-<timestamp>/`:
232
362
 
233
363
  ```
234
- .ao-output/短篇小说创作-2026-03-21T16-36-37/
364
+ .ao-output/product-review-2026-03-22/
235
365
  ├── summary.md # Final step output
236
366
  ├── steps/
237
- │ ├── 1-story_structure.md
238
- │ ├── 2-character_design.md
239
- │ ├── 3-conflict_design.md
240
- │ └── 4-write_story.md
241
- └── metadata.json # Duration, token usage, step status
367
+ │ ├── 1-analyze.md
368
+ │ ├── 2-tech_review.md
369
+ │ ├── 3-design_review.md
370
+ │ └── 4-summary.md
371
+ └── metadata.json # Timing, token usage, step states
242
372
  ```
243
373
 
244
374
  ## Ecosystem
245
375
 
246
- ```
247
- agency-agents-zh (186 AI role definitions)
248
-
249
- roles loaded by
250
- agency-orchestrator (this projectYAML workflow engine)
251
-
252
- ▼ connectors
253
- DeepSeek / Claude / OpenAI / Ollama
254
- ```
376
+ | Project | Description |
377
+ |---------|-------------|
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 |
255
381
 
256
382
  ## Roadmap
257
383
 
258
- - [x] **v0.1** — YAML workflow, DAG engine, 4 LLM connectors, CLI, real-time output
259
- - [ ] **v0.2** — Human approval nodes, iteration loops, workflow marketplace
260
- - [ ] **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
261
388
 
262
389
  ## Contributing
263
390