agency-orchestrator 0.2.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.
- package/README.md +232 -118
- package/README.zh-CN.md +238 -16
- package/dist/cli/explain.d.ts +8 -0
- package/dist/cli/explain.js +108 -0
- package/dist/cli/init-workflow.d.ts +20 -0
- package/dist/cli/init-workflow.js +120 -0
- package/dist/cli/watch.d.ts +19 -0
- package/dist/cli/watch.js +85 -0
- package/dist/cli.js +61 -2
- package/dist/core/condition.d.ts +1 -0
- package/dist/core/condition.js +41 -0
- package/dist/core/dag.js +19 -0
- package/dist/core/executor.d.ts +2 -0
- package/dist/core/executor.js +118 -12
- package/dist/core/parser.js +19 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.js +63 -5
- package/dist/output/reporter.d.ts +13 -0
- package/dist/output/reporter.js +60 -3
- package/dist/types.d.ts +9 -0
- package/integrations/antigravity/AGENTS.md +50 -0
- package/integrations/antigravity/README.md +65 -0
- package/integrations/claude-code/README.md +91 -0
- package/integrations/codex/README.md +66 -0
- package/integrations/codex/instructions.md +50 -0
- package/integrations/cursor/README.md +98 -0
- package/integrations/cursor/workflow-runner.mdc +55 -0
- package/integrations/deerflow/README.md +61 -0
- package/integrations/deerflow/SKILL.md +55 -0
- package/integrations/gemini-cli/GEMINI.md +52 -0
- package/integrations/gemini-cli/README.md +65 -0
- package/integrations/kiro/README.md +101 -0
- package/integrations/kiro/ao-workflow-runner.md +50 -0
- package/integrations/openclaw/README.md +60 -0
- package/integrations/trae/README.md +101 -0
- package/integrations/trae/ao-workflow-runner.md +50 -0
- package/package.json +15 -12
- package/workflows/data/dashboard-design.yaml +76 -0
- package/workflows/data/data-pipeline-review.yaml +77 -0
- package/workflows/department-collab/code-review.yaml +109 -0
- package/workflows/department-collab/content-publish.yaml +115 -0
- package/workflows/department-collab/hiring-pipeline.yaml +89 -0
- package/workflows/department-collab/incident-response.yaml +111 -0
- package/workflows/department-collab/marketing-campaign.yaml +97 -0
- package/workflows/design/requirement-to-plan.yaml +83 -0
- package/workflows/design/ux-review.yaml +79 -0
- package/workflows/dev/api-doc-gen.yaml +95 -0
- package/workflows/dev/pr-review.yaml +108 -0
- package/workflows/dev/readme-i18n.yaml +73 -0
- package/workflows/dev/release-checklist.yaml +103 -0
- package/workflows/dev/security-audit.yaml +88 -0
- package/workflows/dev/tech-debt-audit.yaml +113 -0
- package/workflows/ops/incident-postmortem.yaml +79 -0
- package/workflows/ops/sre-health-check.yaml +100 -0
package/README.md
CHANGED
|
@@ -1,114 +1,107 @@
|
|
|
1
1
|
# Agency Orchestrator
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
>
|
|
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
|
[](https://github.com/jnMetaCode/agency-orchestrator/actions)
|
|
8
8
|
[](https://www.npmjs.com/package/agency-orchestrator)
|
|
9
9
|
[](./LICENSE)
|
|
10
10
|
[](./CONTRIBUTING.md)
|
|
11
11
|
|
|
12
|
-
**English** | [中文文档](./README.zh-CN.md)
|
|
13
|
-
|
|
14
12
|
---
|
|
15
13
|
|
|
16
|
-
##
|
|
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
|
-
|
|
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
|
-
|
|
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"
|
|
37
|
-
task: "Analyze this PRD
|
|
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
|
-
|
|
|
38
|
+
| Roles | Write your own | Write your own | **186 ready-to-use** |
|
|
44
39
|
| Dependencies | pip + LiteLLM + dozens | pip + LangChain | **npm + 2 deps** |
|
|
45
|
-
|
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
|
|
|
49
|
-
|
|
|
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
|
-
|
|
55
|
-
|
|
54
|
+
git clone --depth 1 https://github.com/jnMetaCode/agency-agents-zh.git
|
|
55
|
+
npx superpowers-zh
|
|
56
|
+
```
|
|
56
57
|
|
|
57
|
-
|
|
58
|
-
npx ao init
|
|
58
|
+
Then tell your AI: `Run workflows/story-creation.yaml with premise="A time travel story"`
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
npx ao plan workflows/product-review.yaml
|
|
60
|
+
### Option B: CLI Mode (API key required)
|
|
62
61
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
npx ao
|
|
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:
|
|
69
|
+
## Demo: 4 AI Roles Write a Complete Story in 2 Minutes
|
|
69
70
|
|
|
70
71
|
```
|
|
71
|
-
$ ao run workflows/
|
|
72
|
+
$ ao run workflows/story-creation.yaml -i "premise=A programmer discovers AI replies with things it shouldn't know"
|
|
72
73
|
|
|
73
|
-
Workflow:
|
|
74
|
+
Workflow: Short Story Creation
|
|
74
75
|
Steps: 4 | Concurrency: 2 | Model: deepseek-chat
|
|
75
76
|
──────────────────────────────────────────────────
|
|
76
77
|
|
|
77
|
-
── [1/4]
|
|
78
|
-
Done |
|
|
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]
|
|
83
|
-
Done |
|
|
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]
|
|
88
|
-
Done |
|
|
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]
|
|
93
|
-
Done |
|
|
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
|
-
|
|
91
|
+
Completed: 4/4 steps | 114.3s | 14,872 tokens
|
|
99
92
|
==================================================
|
|
100
93
|
```
|
|
101
94
|
|
|
102
|
-
Steps 2
|
|
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"
|
|
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
|
|
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)
|
|
150
|
-
5. Retries on failure
|
|
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-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
|
+
|
|
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
|
|
234
|
+
All providers support custom `base_url` and `api_key`, compatible with any OpenAI-compatible API (Zhipu, Moonshot, etc.).
|
|
169
235
|
|
|
170
|
-
## CLI
|
|
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
|
-
|
|
|
181
|
-
|
|
182
|
-
| `--input key=value` | Pass input
|
|
183
|
-
| `--input key=@file` | Read variable from file |
|
|
184
|
-
| `--output dir` | Output directory (default
|
|
185
|
-
| `--
|
|
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
|
-
##
|
|
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
|
-
| `
|
|
205
|
-
| `
|
|
206
|
-
| `
|
|
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 (parallel → prioritize) |
|
|
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
|
-
|
|
209
|
-
|
|
210
|
-
### Workflow
|
|
335
|
+
### Data / Design / Ops Workflows
|
|
211
336
|
|
|
212
|
-
|
|
|
213
|
-
|
|
214
|
-
| `
|
|
215
|
-
| `
|
|
216
|
-
| `
|
|
217
|
-
| `
|
|
218
|
-
| `
|
|
219
|
-
| `
|
|
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
|
-
###
|
|
346
|
+
### General Workflows
|
|
226
347
|
|
|
227
|
-
|
|
|
228
|
-
|
|
229
|
-
| `
|
|
230
|
-
| `
|
|
231
|
-
| `
|
|
232
|
-
| `
|
|
233
|
-
| `
|
|
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/
|
|
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 #
|
|
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
|
|
267
|
-
| [superpowers-zh](https://github.com/jnMetaCode/superpowers-zh) | AI coding superpowers —
|
|
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
|
|
272
|
-
- [
|
|
273
|
-
- [
|
|
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
|
|