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.
- package/README.md +239 -112
- package/README.zh-CN.md +244 -15
- 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 +65 -6
- 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 +16 -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,108 +1,107 @@
|
|
|
1
1
|
# Agency Orchestrator
|
|
2
2
|
|
|
3
|
-
|
|
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
|
[](https://github.com/jnMetaCode/agency-orchestrator/actions)
|
|
6
8
|
[](https://www.npmjs.com/package/agency-orchestrator)
|
|
7
9
|
[](./LICENSE)
|
|
8
10
|
[](./CONTRIBUTING.md)
|
|
9
11
|
|
|
10
|
-
[中文文档](./README.zh-CN.md)
|
|
11
|
-
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
-
##
|
|
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
|
-
|
|
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
|
-
|
|
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"
|
|
35
|
-
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
|
|
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
|
-
|
|
|
38
|
+
| Roles | Write your own | Write your own | **186 ready-to-use** |
|
|
42
39
|
| Dependencies | pip + LiteLLM + dozens | pip + LangChain | **npm + 2 deps** |
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
|
|
|
46
|
-
|
|
|
47
|
-
|
|
|
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
|
-
|
|
53
|
-
|
|
54
|
+
git clone --depth 1 https://github.com/jnMetaCode/agency-agents-zh.git
|
|
55
|
+
npx superpowers-zh
|
|
56
|
+
```
|
|
54
57
|
|
|
55
|
-
|
|
56
|
-
npx ao init
|
|
58
|
+
Then tell your AI: `Run workflows/story-creation.yaml with premise="A time travel story"`
|
|
57
59
|
|
|
58
|
-
|
|
59
|
-
npx ao plan workflows/product-review.yaml
|
|
60
|
+
### Option B: CLI Mode (API key required)
|
|
60
61
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
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"
|
|
64
67
|
```
|
|
65
68
|
|
|
66
|
-
## Demo: 4 AI Roles
|
|
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
|
|
72
|
+
$ ao run workflows/story-creation.yaml -i "premise=A programmer discovers AI replies with things it shouldn't know"
|
|
70
73
|
|
|
71
|
-
|
|
72
|
-
|
|
74
|
+
Workflow: Short Story Creation
|
|
75
|
+
Steps: 4 | Concurrency: 2 | Model: deepseek-chat
|
|
73
76
|
──────────────────────────────────────────────────
|
|
74
77
|
|
|
75
|
-
── [1/4] story_structure (
|
|
76
|
-
|
|
77
|
-
核心冲突:程序员与一个似乎拥有超越其代码权限的自主意识之间的认知对抗...
|
|
78
|
+
── [1/4] story_structure (Narratologist) ──
|
|
79
|
+
Done | 14.9s | 1,919 tokens
|
|
78
80
|
|
|
79
|
-
── [2/4] character_design (
|
|
80
|
-
|
|
81
|
-
人物心理档案:林深——一个信奉逻辑与控制的资深AI工程师...
|
|
81
|
+
── [2/4] character_design (Psychologist) ── ← parallel
|
|
82
|
+
Done | 65.5s | 4,016 tokens
|
|
82
83
|
|
|
83
|
-
── [3/4] conflict_design (
|
|
84
|
-
|
|
85
|
-
凌晨三点,屏幕的冷光映着陈默疲惫的脸...
|
|
84
|
+
── [3/4] conflict_design (Narrative Designer) ── ← parallel
|
|
85
|
+
Done | 65.5s | 3,607 tokens
|
|
86
86
|
|
|
87
|
-
── [4/4] write_story (
|
|
88
|
-
|
|
89
|
-
凌晨三点,调试日志的蓝色荧光是房间里唯一的光源。陈默灌下今晚第三杯黑咖啡...
|
|
87
|
+
── [4/4] write_story (Content Creator) ──
|
|
88
|
+
Done | 33.9s | 5,330 tokens
|
|
90
89
|
|
|
91
90
|
==================================================
|
|
92
|
-
|
|
91
|
+
Completed: 4/4 steps | 114.3s | 14,872 tokens
|
|
93
92
|
==================================================
|
|
94
93
|
```
|
|
95
94
|
|
|
96
|
-
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.
|
|
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"
|
|
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
|
|
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)
|
|
144
|
-
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)
|
|
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
|
|
234
|
+
All providers support custom `base_url` and `api_key`, compatible with any OpenAI-compatible API (Zhipu, Moonshot, etc.).
|
|
163
235
|
|
|
164
|
-
## CLI
|
|
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
|
-
|
|
|
175
|
-
|
|
176
|
-
| `--input key=value` | Pass input
|
|
177
|
-
| `--input key=@file` | Read variable from file |
|
|
178
|
-
| `--output dir` | Output directory (default
|
|
179
|
-
| `--
|
|
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
|
-
##
|
|
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
|
-
| `
|
|
199
|
-
| `
|
|
200
|
-
| `
|
|
201
|
-
|
|
202
|
-
|
|
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 |
|
|
203
334
|
|
|
204
|
-
###
|
|
335
|
+
### Data / Design / Ops Workflows
|
|
205
336
|
|
|
206
|
-
|
|
|
207
|
-
|
|
208
|
-
| `
|
|
209
|
-
| `
|
|
210
|
-
| `
|
|
211
|
-
| `
|
|
212
|
-
| `
|
|
213
|
-
| `
|
|
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
|
-
###
|
|
346
|
+
### General Workflows
|
|
220
347
|
|
|
221
|
-
|
|
|
222
|
-
|
|
223
|
-
| `
|
|
224
|
-
| `
|
|
225
|
-
| `
|
|
226
|
-
| `
|
|
227
|
-
| `
|
|
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
|
|
364
|
+
.ao-output/product-review-2026-03-22/
|
|
235
365
|
├── summary.md # Final step output
|
|
236
366
|
├── steps/
|
|
237
|
-
│ ├── 1-
|
|
238
|
-
│ ├── 2-
|
|
239
|
-
│ ├── 3-
|
|
240
|
-
│ └── 4-
|
|
241
|
-
└── metadata.json #
|
|
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
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
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
|
|
259
|
-
- [
|
|
260
|
-
- [
|
|
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
|
|