@jterrats/open-orchestra 0.2.1 → 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.
- package/AGENTS.md +90 -0
- package/CHANGELOG.md +57 -0
- package/CLAUDE.md +103 -0
- package/README.md +164 -28
- package/dist/autonomous-workflow.d.ts +45 -0
- package/dist/autonomous-workflow.js +386 -0
- package/dist/autonomous-workflow.js.map +1 -0
- package/dist/benchmark.d.ts +8 -0
- package/dist/benchmark.js +193 -0
- package/dist/benchmark.js.map +1 -0
- package/dist/burndown.d.ts +3 -0
- package/dist/burndown.js +141 -0
- package/dist/burndown.js.map +1 -0
- package/dist/clarification.d.ts +6 -0
- package/dist/clarification.js +88 -0
- package/dist/clarification.js.map +1 -0
- package/dist/cli.js +65 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts +8 -0
- package/dist/commands.js +425 -0
- package/dist/commands.js.map +1 -1
- package/dist/github.d.ts +11 -0
- package/dist/github.js +48 -0
- package/dist/github.js.map +1 -0
- package/dist/runtime-bootstrap.js +52 -1
- package/dist/runtime-bootstrap.js.map +1 -1
- package/dist/types.d.ts +128 -0
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/workflow-services.js +18 -0
- package/dist/workflow-services.js.map +1 -1
- package/docs/autonomous-workflow.md +165 -0
- package/docs/benchmark.md +219 -0
- package/docs/orchestra-mvp.md +115 -2
- package/package.json +3 -4
package/AGENTS.md
CHANGED
|
@@ -149,3 +149,93 @@
|
|
|
149
149
|
- Ask for **Backlog Item ID** first. Use Conventional Commits with backlog scope: `type(ID): short description`.
|
|
150
150
|
- Mark breaking changes with `!` and a `BREAKING CHANGE:` footer.
|
|
151
151
|
- Keep PRs <400 lines. Review your own diff before requesting review.
|
|
152
|
+
|
|
153
|
+
<!-- open-orchestra:start block-id="runtime-bootstrap" generator="open-orchestra runtime bootstrap" version="1" target="codex" source-manifest="open-orchestra command-manifest,runtime-bootstrap" content-sha256="c215b82bf89b09651384dbee3c7bd8c4e66cab148adc844b4979788848017be5" updated-at="2026-05-06T22:12:02.623Z" -->
|
|
154
|
+
# Open Orchestra Runtime Bootstrap
|
|
155
|
+
|
|
156
|
+
Runtime target: Codex. Reference Open Orchestra from AGENTS.md so local CLI work follows workflow gates.
|
|
157
|
+
|
|
158
|
+
Use Open Orchestra as the local control plane when `.agent-workflow/` exists.
|
|
159
|
+
The active LLM runtime is the parent agent. Do not assume automatic real subagent spawning or real provider execution.
|
|
160
|
+
|
|
161
|
+
## Orchestra Workflow — Required for All Work
|
|
162
|
+
|
|
163
|
+
Every piece of work — feature, bug fix, architecture decision, stack definition, PO refinement, or research spike —
|
|
164
|
+
MUST go through the Orchestra workflow. Do not start any work without a registered task and a running workflow.
|
|
165
|
+
|
|
166
|
+
### Step 1 — Register the task
|
|
167
|
+
```
|
|
168
|
+
orchestra task add --id <ID> --title "<title>" --owner <role> --paths "<files>" --goal "<goal>"
|
|
169
|
+
```
|
|
170
|
+
Use the correct owner role for the type of work:
|
|
171
|
+
- Architecture / stack decisions → `architect`
|
|
172
|
+
- Product strategy / roadmap → `product_manager`
|
|
173
|
+
- Backlog refinement / acceptance criteria → `product_owner`
|
|
174
|
+
- Implementation → `developer`
|
|
175
|
+
- Verification / QA → `qa`
|
|
176
|
+
- Release / deploy → `release_manager`
|
|
177
|
+
|
|
178
|
+
### Step 2 — Declare effort baseline
|
|
179
|
+
```
|
|
180
|
+
orchestra estimate --task <ID> --sizing <xs|s|m|l|xl> --solo-days <N> --ai-unguided-days <N>
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Step 3 — Run the autonomous workflow
|
|
184
|
+
```
|
|
185
|
+
orchestra workflow run --task <ID> --gates phase
|
|
186
|
+
```
|
|
187
|
+
The workflow sequences PM → PO → Architect → Developer → QA → Release.
|
|
188
|
+
Gates pause at `po→architect` and `qa→release` for human review.
|
|
189
|
+
The architect phase requires a sizing decision before proceeding:
|
|
190
|
+
```
|
|
191
|
+
orchestra decision add --task <ID> --owner architect --title "Story sizing" \
|
|
192
|
+
--decision "<xs|s|m|l|xl> [N points]" --context "..." --consequences "..." --status accepted
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Step 4 — Collaborate through the phases
|
|
196
|
+
Each phase routes work to the right role. Pass your comments, requirements, or context via:
|
|
197
|
+
- `orchestra decision add` — architecture decisions, stack choices, accepted trade-offs
|
|
198
|
+
- `orchestra review` — review findings from any role
|
|
199
|
+
- `orchestra workflow clarify` — blocking questions from developer/QA to PO or architect
|
|
200
|
+
- `orchestra evidence add` — artifacts, commands run, test results
|
|
201
|
+
|
|
202
|
+
### Step 5 — Resume after gates
|
|
203
|
+
```
|
|
204
|
+
orchestra workflow run --task <ID> --resume <run-id>
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Step 6 — Benchmark after completion
|
|
208
|
+
```
|
|
209
|
+
orchestra benchmark --task <ID>
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
## Active Work
|
|
213
|
+
- Run `orchestra health --json`.
|
|
214
|
+
- Run `orchestra task list --json` and identify the active task.
|
|
215
|
+
- For the active task, run context, delegation, plan, skills, protocol, and workflow render commands.
|
|
216
|
+
|
|
217
|
+
## Task Loop
|
|
218
|
+
- `orchestra health` - Check local tools and workflow readiness.
|
|
219
|
+
- `orchestra task list` - List local workflow tasks.
|
|
220
|
+
- `orchestra context --task <id>` - Read task context bundle.
|
|
221
|
+
- `orchestra delegation decide --task <id>` - Decide whether to delegate.
|
|
222
|
+
- `orchestra plan --task <id>` - Render role execution plan.
|
|
223
|
+
- `orchestra skills plan --task <id>` - Select task-scoped skills.
|
|
224
|
+
- `orchestra skills render --target <target>` - Render skills for a runtime.
|
|
225
|
+
- `orchestra protocol render` - Render subagent protocol.
|
|
226
|
+
- `orchestra workflow render --task <id>` - Render workflow templates.
|
|
227
|
+
- `orchestra evidence add --task <id> --role <role> --type <type> --summary <text>` - Record delivery evidence.
|
|
228
|
+
- `orchestra review --task <id> --role <role> --result <approve|block|changes> --findings <text> --recommendation <text>` - Record reviewer outcome.
|
|
229
|
+
- `orchestra gate --gate <id> --task <id>` - Evaluate workflow gate.
|
|
230
|
+
- `orchestra summary` - Summarize workspace state.
|
|
231
|
+
|
|
232
|
+
## Completion
|
|
233
|
+
- Run the project validation gate.
|
|
234
|
+
- Record command/file/browser evidence with `orchestra evidence add`.
|
|
235
|
+
- Record review outcome with `orchestra review`.
|
|
236
|
+
- Update task status only after evidence and review are present.
|
|
237
|
+
|
|
238
|
+
## Command Discovery
|
|
239
|
+
- Use `orchestra commands manifest --json` for command metadata.
|
|
240
|
+
- Use `orchestra --help` for human-readable help.
|
|
241
|
+
<!-- open-orchestra:end block-id="runtime-bootstrap" -->
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,62 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## Unreleased
|
|
4
|
+
|
|
5
|
+
## 0.3.1 - 2026-05-06
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
|
|
9
|
+
- Moved `chart.js` from `dependencies` to `devDependencies`. It is bundled by esbuild into `dist/assets/web-console.js` at build time and does not need to be installed as a runtime dependency. This resolves an `ERR_INVALID_ARG_TYPE` crash in npm 11 / Node 25 arborist when installing the package.
|
|
10
|
+
|
|
11
|
+
## 0.3.0 - 2026-05-06
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- **Autonomous workflow engine** (`workflow run`) executes a full story lifecycle as a governed multi-phase sequence: PM → PO → Architect → Developer → QA → Release. State is persisted in `.agent-workflow/workflow-runs.jsonl` (append-only).
|
|
16
|
+
- `--gates none|phase|all` controls how many human approval checkpoints are required. `phase` mode gates at `po→architect` and `qa→release`; `all` gates every transition; `none` runs fully autonomously.
|
|
17
|
+
- `--dry-run` prints the phase graph with gate annotations without creating any records.
|
|
18
|
+
- `--resume <run-id>` continues a paused or clarification-suspended run from the correct phase.
|
|
19
|
+
- **Architect sizing gate**: always enforced regardless of `--gates` mode. The architect must record a sizing decision (`xs/s/m/l/xl`) before the developer phase starts. If missing, the run fails with the exact `orchestra decision add` command to resolve it.
|
|
20
|
+
- `orchestra workflow runs` lists all runs with status and phase trace.
|
|
21
|
+
- **Clarification loop** (`workflow clarify`, `workflow clarify-respond`, `workflow clarify-list`): developer and QA phases can surface blocking questions to the PO or architect mid-phase. The active phase is suspended until the answer is recorded, then resumed with `--resume`. Records persisted in `.agent-workflow/clarifications.jsonl`.
|
|
22
|
+
- **Effectiveness benchmark** (`orchestra estimate` + `orchestra benchmark`): PM declares solo and AI-unguided baselines once at story start; actual cycle time is computed automatically from autonomous run timestamps after the release phase completes. `orchestra benchmark --summary` prints a sortable table across all stories.
|
|
23
|
+
- **Quality signals** automatically collected from the event log per story: review count, blocking reviews, evidence artifacts, gate blocks, lessons generated, model tokens, and estimated cost. Appear in `orchestra benchmark` output with no additional input.
|
|
24
|
+
- **Sprint burndown** (`orchestra burndown --sprint <task-ids-csv>`): computes ideal vs actual lines from story point estimates. Developer points take priority over architect sizing; falls back gracefully. ASCII chart + `--json` output.
|
|
25
|
+
- **Developer story point estimation**: developer records implementation effort via `orchestra decision add` with `actor=developer` and `metadata.points` — same pattern as architect sizing, distinguishable by `actor` field. Used as primary input for burndown; creates a calibration signal when both architect and developer estimates exist.
|
|
26
|
+
- **QA→Developer retry loop**: when a QA phase closes with `qa_fail`, the workflow routes back to the developer phase with failure notes as context. Each retry creates a numbered sub-task (`TASK-developer-<run-suffix>-retry1`). The `maxIterations` cap prevents infinite loops.
|
|
27
|
+
- **GitHub PR auto-creation** (`github.autoCreatePr: true` in config): after the release phase completes, automatically creates a PR via `gh pr create` with title and body generated from `pr-summary` data. PR URL is recorded as an evidence artifact. Failure is non-fatal — the run completes with a warning.
|
|
28
|
+
- **Enriched runtime bootstrap block**: `orchestra init` now injects an "Orchestra Workflow — Required for All Work" section into `CLAUDE.md`, `AGENTS.md`, Cursor rules, Windsurf rules, and VS Code files covering any work type: architecture decisions, stack definition, PO refinement, product strategy, implementation, QA, and release. Correct owner role guidance included per work type.
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
|
|
32
|
+
- `resumePhaseIndex` now scans past `gate_paused` phases instead of returning immediately, preventing re-execution of already-completed phases on runs with multiple sequential gates.
|
|
33
|
+
- `recordDecision` now extracts `sizing` and `points` from the `--decision` text for architect decisions (pattern: `"<xs|s|m|l|xl> [N points]"`), so the architect sizing gate reads them correctly via the standard CLI flow.
|
|
34
|
+
- Phase sub-task IDs are now run-scoped (`TASK-phase-<run-suffix>`) preventing collisions when multiple workflow runs target the same task.
|
|
35
|
+
|
|
36
|
+
### Documentation
|
|
37
|
+
|
|
38
|
+
- README rewritten to lead with the autonomous workflow feature, clarification loop, benchmark, and burndown sections.
|
|
39
|
+
- `docs/autonomous-workflow.md`: new reference page for the workflow engine, gate modes, sizing gate, clarification loop, and run/phase state reference.
|
|
40
|
+
- `docs/benchmark.md`: new reference page for estimate, benchmark, burndown, quality signals, and developer story points.
|
|
41
|
+
- `docs/orchestra-mvp.md` updated with all new sections, command examples, revised workflow files layout, and current scope.
|
|
42
|
+
|
|
43
|
+
### Validation
|
|
44
|
+
|
|
45
|
+
- Dogfooded using Orchestra itself: ORCH-017 and ORCH-022 were developed as autonomous workflow runs, surfacing and fixing the sizing extraction and task ID collision bugs during the process.
|
|
46
|
+
|
|
47
|
+
## 0.2.2 - 2026-05-06
|
|
48
|
+
|
|
49
|
+
### Changed
|
|
50
|
+
|
|
51
|
+
- Added `orchestra --version`, `orchestra -v`, and `orchestra version --json`
|
|
52
|
+
for install and release verification.
|
|
53
|
+
- Release automation now creates GitHub Releases from CI-created tags.
|
|
54
|
+
- CI workflows use Node 24-compatible official GitHub Actions.
|
|
55
|
+
|
|
56
|
+
### Validation
|
|
57
|
+
|
|
58
|
+
- Validates the automated tag, GitHub Release, and npm publication chain.
|
|
59
|
+
|
|
3
60
|
## 0.2.1 - 2026-05-06
|
|
4
61
|
|
|
5
62
|
### Fixed
|
package/CLAUDE.md
CHANGED
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
> Stack-agnostic guardrails for all projects. Managed by Open Orchestra.
|
|
4
4
|
|
|
5
|
+
## Orchestra Workflow — REQUIRED
|
|
6
|
+
|
|
7
|
+
This repo uses Open Orchestra for all development work. Every feature or fix MUST go through the workflow:
|
|
8
|
+
|
|
9
|
+
1. **Task registration**: `orchestra task add --id <ID> --title "..." --owner <role> --paths "..." --goal "..."` before any code is written.
|
|
10
|
+
2. **Effort baseline**: `orchestra estimate --task <ID> --sizing <xs|s|m|l|xl> --solo-days N --ai-unguided-days N` before starting implementation.
|
|
11
|
+
3. **Autonomous run**: `orchestra workflow run --task <ID> --gates phase` to execute the PM→PO→Architect→Developer→QA→Release phase sequence.
|
|
12
|
+
4. **Sizing decision**: `orchestra decision add --task <ID> --owner architect --title "Story sizing" --decision "<sizing> [N points]" ...` is required before the developer phase proceeds.
|
|
13
|
+
5. **Architect sizing format**: always use `"<xs|s|m|l|xl> [N points]"` in `--decision` so the sizing gate reads it correctly (e.g. `"m [5 points]"`).
|
|
14
|
+
6. **Benchmark**: `orchestra benchmark --task <ID>` after completion to record actual vs declared effort.
|
|
15
|
+
|
|
16
|
+
Do NOT start implementation without a registered task and workflow run. Use `orchestra workflow runs` to check active runs. Use `orchestra benchmark --summary` to review effectiveness.
|
|
17
|
+
|
|
5
18
|
## Rule Composition
|
|
6
19
|
|
|
7
20
|
- Keep root files concise. Put detailed guidance in focused `rules/*.mdc` files and reference only the operating principles here.
|
|
@@ -155,3 +168,93 @@
|
|
|
155
168
|
- Concise, but detailed in architectural justifications.
|
|
156
169
|
- Correct mistakes directly without apologizing.
|
|
157
170
|
- **No Ninja Edits.** Summarize proposed changes and get agreement before modifying files.
|
|
171
|
+
|
|
172
|
+
<!-- open-orchestra:start block-id="runtime-bootstrap" generator="open-orchestra runtime bootstrap" version="1" target="claude" source-manifest="open-orchestra command-manifest,runtime-bootstrap" content-sha256="af9e26eb55d14bc7d504c357f6fe6e996eaa2ea1ffb45a830afa15b1885fff8a" updated-at="2026-05-06T22:12:14.883Z" -->
|
|
173
|
+
# Open Orchestra Runtime Bootstrap
|
|
174
|
+
|
|
175
|
+
Runtime target: Claude. Reference compact Open Orchestra blocks from CLAUDE.md and load task skills on demand.
|
|
176
|
+
|
|
177
|
+
Use Open Orchestra as the local control plane when `.agent-workflow/` exists.
|
|
178
|
+
The active LLM runtime is the parent agent. Do not assume automatic real subagent spawning or real provider execution.
|
|
179
|
+
|
|
180
|
+
## Orchestra Workflow — Required for All Work
|
|
181
|
+
|
|
182
|
+
Every piece of work — feature, bug fix, architecture decision, stack definition, PO refinement, or research spike —
|
|
183
|
+
MUST go through the Orchestra workflow. Do not start any work without a registered task and a running workflow.
|
|
184
|
+
|
|
185
|
+
### Step 1 — Register the task
|
|
186
|
+
```
|
|
187
|
+
orchestra task add --id <ID> --title "<title>" --owner <role> --paths "<files>" --goal "<goal>"
|
|
188
|
+
```
|
|
189
|
+
Use the correct owner role for the type of work:
|
|
190
|
+
- Architecture / stack decisions → `architect`
|
|
191
|
+
- Product strategy / roadmap → `product_manager`
|
|
192
|
+
- Backlog refinement / acceptance criteria → `product_owner`
|
|
193
|
+
- Implementation → `developer`
|
|
194
|
+
- Verification / QA → `qa`
|
|
195
|
+
- Release / deploy → `release_manager`
|
|
196
|
+
|
|
197
|
+
### Step 2 — Declare effort baseline
|
|
198
|
+
```
|
|
199
|
+
orchestra estimate --task <ID> --sizing <xs|s|m|l|xl> --solo-days <N> --ai-unguided-days <N>
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### Step 3 — Run the autonomous workflow
|
|
203
|
+
```
|
|
204
|
+
orchestra workflow run --task <ID> --gates phase
|
|
205
|
+
```
|
|
206
|
+
The workflow sequences PM → PO → Architect → Developer → QA → Release.
|
|
207
|
+
Gates pause at `po→architect` and `qa→release` for human review.
|
|
208
|
+
The architect phase requires a sizing decision before proceeding:
|
|
209
|
+
```
|
|
210
|
+
orchestra decision add --task <ID> --owner architect --title "Story sizing" \
|
|
211
|
+
--decision "<xs|s|m|l|xl> [N points]" --context "..." --consequences "..." --status accepted
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### Step 4 — Collaborate through the phases
|
|
215
|
+
Each phase routes work to the right role. Pass your comments, requirements, or context via:
|
|
216
|
+
- `orchestra decision add` — architecture decisions, stack choices, accepted trade-offs
|
|
217
|
+
- `orchestra review` — review findings from any role
|
|
218
|
+
- `orchestra workflow clarify` — blocking questions from developer/QA to PO or architect
|
|
219
|
+
- `orchestra evidence add` — artifacts, commands run, test results
|
|
220
|
+
|
|
221
|
+
### Step 5 — Resume after gates
|
|
222
|
+
```
|
|
223
|
+
orchestra workflow run --task <ID> --resume <run-id>
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Step 6 — Benchmark after completion
|
|
227
|
+
```
|
|
228
|
+
orchestra benchmark --task <ID>
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## Active Work
|
|
232
|
+
- Run `orchestra health --json`.
|
|
233
|
+
- Run `orchestra task list --json` and identify the active task.
|
|
234
|
+
- For the active task, run context, delegation, plan, skills, protocol, and workflow render commands.
|
|
235
|
+
|
|
236
|
+
## Task Loop
|
|
237
|
+
- `orchestra health` - Check local tools and workflow readiness.
|
|
238
|
+
- `orchestra task list` - List local workflow tasks.
|
|
239
|
+
- `orchestra context --task <id>` - Read task context bundle.
|
|
240
|
+
- `orchestra delegation decide --task <id>` - Decide whether to delegate.
|
|
241
|
+
- `orchestra plan --task <id>` - Render role execution plan.
|
|
242
|
+
- `orchestra skills plan --task <id>` - Select task-scoped skills.
|
|
243
|
+
- `orchestra skills render --target <target>` - Render skills for a runtime.
|
|
244
|
+
- `orchestra protocol render` - Render subagent protocol.
|
|
245
|
+
- `orchestra workflow render --task <id>` - Render workflow templates.
|
|
246
|
+
- `orchestra evidence add --task <id> --role <role> --type <type> --summary <text>` - Record delivery evidence.
|
|
247
|
+
- `orchestra review --task <id> --role <role> --result <approve|block|changes> --findings <text> --recommendation <text>` - Record reviewer outcome.
|
|
248
|
+
- `orchestra gate --gate <id> --task <id>` - Evaluate workflow gate.
|
|
249
|
+
- `orchestra summary` - Summarize workspace state.
|
|
250
|
+
|
|
251
|
+
## Completion
|
|
252
|
+
- Run the project validation gate.
|
|
253
|
+
- Record command/file/browser evidence with `orchestra evidence add`.
|
|
254
|
+
- Record review outcome with `orchestra review`.
|
|
255
|
+
- Update task status only after evidence and review are present.
|
|
256
|
+
|
|
257
|
+
## Command Discovery
|
|
258
|
+
- Use `orchestra commands manifest --json` for command metadata.
|
|
259
|
+
- Use `orchestra --help` for human-readable help.
|
|
260
|
+
<!-- open-orchestra:end block-id="runtime-bootstrap" -->
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Open Orchestra is a local-first, provider-agnostic framework for governed multi-agent software delivery.
|
|
4
4
|
|
|
5
|
-
It coordinates agents through task graphs, durable workflow files, handoffs, reviews, evidence, gates, locks, model routing, model provenance, and
|
|
5
|
+
It coordinates agents through task graphs, durable workflow files, handoffs, reviews, evidence, gates, locks, model routing, model provenance, budget controls, and an autonomous multi-phase workflow engine. The public CLI is `orchestra`.
|
|
6
6
|
|
|
7
7
|
## Quick Start
|
|
8
8
|
|
|
@@ -18,51 +18,187 @@ For Claude, Codex, Cursor, VS Code, Windsurf, and generic LLM usage, see
|
|
|
18
18
|
[docs/runtime-llm-flow.md](docs/runtime-llm-flow.md) and
|
|
19
19
|
[docs/runtime-adapters.md](docs/runtime-adapters.md).
|
|
20
20
|
|
|
21
|
+
## Autonomous Workflow
|
|
21
22
|
|
|
22
|
-
|
|
23
|
+
The `workflow run` command executes a full story lifecycle as a governed multi-phase sequence without manual step-by-step commands. Each phase creates a sub-task, generates handoff artifacts, and persists state in an append-only run log.
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
```
|
|
26
|
+
PM → PO [gate] → Architect [sizing gate] → Developer → QA [gate] → Release
|
|
27
|
+
```
|
|
25
28
|
|
|
26
|
-
|
|
29
|
+
```bash
|
|
30
|
+
# Dry run — inspect the phase graph and gate annotations without persisting state
|
|
31
|
+
orchestra workflow run --task FEAT-001 --dry-run --gates phase
|
|
27
32
|
|
|
28
|
-
|
|
33
|
+
# Full autonomous run, no human gates
|
|
34
|
+
orchestra workflow run --task FEAT-001 --gates none
|
|
29
35
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
- Reviewer / Critic for independent review before gates or handoffs.
|
|
33
|
-
- Toolsmith / Integration Engineer for tools, MCPs, providers, adapters, and automation contracts.
|
|
34
|
-
- Context Curator / Memory Manager for decisions, assumptions, stale context, and shared memory hygiene.
|
|
35
|
-
- Policy / Governance Agent for approvals, budgets, workflow rules, and compliance gates.
|
|
36
|
-
- Observability / Incident Response for telemetry, alerts, runbooks, and incident readiness.
|
|
37
|
-
- Data / Privacy Officer for PII, retention, encryption, access, and data compliance.
|
|
38
|
-
- Domain Expert for project-specific business or industry judgment.
|
|
39
|
-
- UX Researcher / Accessibility Reviewer for mobile-first UX, accessibility, onboarding, and game/player guidance.
|
|
40
|
-
- Performance Engineer for load, latency, scalability, caching, concurrency, and graceful degradation.
|
|
41
|
-
- Game Designer for gameplay loops, tutorialization, player feedback, and balance risk.
|
|
36
|
+
# Run with human approval gates at po→architect and qa→release
|
|
37
|
+
orchestra workflow run --task FEAT-001 --gates phase
|
|
42
38
|
|
|
43
|
-
|
|
39
|
+
# Resume a paused or clarification-suspended run
|
|
40
|
+
orchestra workflow run --task FEAT-001 --resume <run-id>
|
|
44
41
|
|
|
45
|
-
|
|
42
|
+
# List all runs with status and phase trace
|
|
43
|
+
orchestra workflow runs
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Gate modes:**
|
|
47
|
+
|
|
48
|
+
| Mode | Gates |
|
|
49
|
+
|------|-------|
|
|
50
|
+
| `none` | Fully autonomous — no human approval required |
|
|
51
|
+
| `phase` | Pauses at `po→architect` and `qa→release` |
|
|
52
|
+
| `all` | Pauses at every phase transition |
|
|
53
|
+
|
|
54
|
+
**Architect sizing gate** is always enforced regardless of `--gates` mode. The architect must record a sizing decision (`xs/s/m/l/xl`) before the developer phase starts. If missing, the run fails with the exact command to resolve it.
|
|
55
|
+
|
|
56
|
+
### Clarification Loop
|
|
57
|
+
|
|
58
|
+
Developers or QA engineers can surface blocking questions to the PO or architect mid-phase without stopping the workflow or making unvalidated assumptions.
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# Developer asks PO a question (suspends the current phase)
|
|
62
|
+
orchestra workflow clarify --run <run-id> --from developer --to po \
|
|
63
|
+
--question "Should empty input return null or throw?"
|
|
64
|
+
|
|
65
|
+
# PO answers (resumes the phase)
|
|
66
|
+
orchestra workflow clarify-respond --run <run-id> --clarification <id> \
|
|
67
|
+
--answer "Return null — downstream code handles it."
|
|
68
|
+
|
|
69
|
+
# Resume execution after the answer is recorded
|
|
70
|
+
orchestra workflow run --task FEAT-001 --resume <run-id>
|
|
71
|
+
|
|
72
|
+
# Inspect all clarifications for a run
|
|
73
|
+
orchestra workflow clarify-list --run <run-id>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Clarifications are persisted in `.agent-workflow/clarifications.jsonl` and visible in task context.
|
|
77
|
+
|
|
78
|
+
## Benchmark & Sprint Burndown
|
|
46
79
|
|
|
47
|
-
Open Orchestra
|
|
80
|
+
Open Orchestra measures effectiveness across three development modes and generates a sprint burndown from story point estimates.
|
|
48
81
|
|
|
49
|
-
|
|
82
|
+
### Estimate (declare baselines once, at story start)
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
orchestra estimate \
|
|
86
|
+
--task FEAT-001 \
|
|
87
|
+
--sizing m \
|
|
88
|
+
--solo-days 5 \
|
|
89
|
+
--ai-unguided-days 3 \
|
|
90
|
+
--confidence high
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Benchmark (auto-computed after run completes)
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# Per-story report: cycle time, savings %, quality signals
|
|
97
|
+
orchestra benchmark --task FEAT-001
|
|
98
|
+
|
|
99
|
+
# Sprint summary table
|
|
100
|
+
orchestra benchmark --summary
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Example output:
|
|
104
|
+
```
|
|
105
|
+
Benchmark: FEAT-001 [complete]
|
|
106
|
+
Sizing: m
|
|
107
|
+
Solo: 5d (declared)
|
|
108
|
+
AI-unguided: 3d (declared)
|
|
109
|
+
Actual: 1.4d
|
|
110
|
+
vs Solo: -72%
|
|
111
|
+
vs AI: -53%
|
|
112
|
+
QA loops: 1
|
|
113
|
+
Reviews: 3 (0 blocking)
|
|
114
|
+
Evidence: 5 artifacts
|
|
115
|
+
Lessons: 2
|
|
116
|
+
Tokens: 17500in / 5000out
|
|
117
|
+
Cost: $0.0257
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Quality signals (reviews, evidence, lessons, gate blocks, token usage, cost) are read automatically from the event log — no manual input after the initial estimate.
|
|
121
|
+
|
|
122
|
+
### Sprint Burndown
|
|
123
|
+
|
|
124
|
+
Developer story points take priority over architect sizing; falls back to architect if developer hasn't estimated yet.
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
# ASCII chart + task breakdown
|
|
128
|
+
orchestra burndown --sprint FEAT-001,FEAT-002,FEAT-003
|
|
129
|
+
|
|
130
|
+
# JSON series for dashboards
|
|
131
|
+
orchestra burndown --sprint FEAT-001,FEAT-002,FEAT-003 --json
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Developer records their own estimate with:
|
|
135
|
+
```bash
|
|
136
|
+
orchestra decision add \
|
|
137
|
+
--task FEAT-001 \
|
|
138
|
+
--owner developer \
|
|
139
|
+
--title "Dev estimate" \
|
|
140
|
+
--decision "M / 8 points" \
|
|
141
|
+
--context "..." --consequences "..." --status accepted
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
See [docs/benchmark.md](docs/benchmark.md) for the full reference.
|
|
145
|
+
|
|
146
|
+
## Role Catalog
|
|
147
|
+
|
|
148
|
+
Open Orchestra treats roles as capabilities and governance responsibilities, not only human job titles. Projects can keep roles inactive until risk, scope, impact area, or a workflow gate requires them.
|
|
149
|
+
|
|
150
|
+
Core delivery roles: Product Manager, Product Owner, Business Analyst, Architect, Developer, QA, Security, DevOps, SRE, DBA, Data Engineer, UX/UI Designer, Accessibility Reviewer, Release Manager, Compliance/Privacy, Technical Writer, Tech Lead, SDET, Platform Engineer, Frontend Specialist, Backend Specialist, Mobile Specialist, AI Evaluation Engineer, and Support/Customer Operations.
|
|
151
|
+
|
|
152
|
+
Orchestration roles for modern multi-agent systems:
|
|
153
|
+
|
|
154
|
+
- Parent Agent / Orchestrator — sequencing, handoffs, locks, escalation, integration.
|
|
155
|
+
- Planner — work breakdown, dependency mapping, role activation rationale.
|
|
156
|
+
- Reviewer / Critic — independent review before gates or handoffs.
|
|
157
|
+
- Toolsmith / Integration Engineer — tools, MCPs, providers, adapters, automation contracts.
|
|
158
|
+
- Context Curator / Memory Manager — decisions, assumptions, stale context, shared memory hygiene.
|
|
159
|
+
- Policy / Governance Agent — approvals, budgets, workflow rules, compliance gates.
|
|
160
|
+
- Observability / Incident Response — telemetry, alerts, runbooks, incident readiness.
|
|
161
|
+
- Data / Privacy Officer — PII, retention, encryption, access, data compliance.
|
|
162
|
+
- Domain Expert — project-specific business or industry judgment.
|
|
163
|
+
- Performance Engineer — load, latency, scalability, caching, concurrency, graceful degradation.
|
|
164
|
+
- Game Designer — gameplay loops, tutorialization, player feedback, balance risk.
|
|
165
|
+
|
|
166
|
+
Each default role declares activation criteria, expected evidence, and gate participation so a parent agent can select only the roles needed for a task. See [docs/dev-team-specialist-role-profiles.md](docs/dev-team-specialist-role-profiles.md) for specialist profiles.
|
|
167
|
+
|
|
168
|
+
## Workflow Files
|
|
169
|
+
|
|
170
|
+
```text
|
|
171
|
+
.agent-workflow/
|
|
172
|
+
config.json
|
|
173
|
+
roles.json
|
|
174
|
+
tasks.json
|
|
175
|
+
locks.json
|
|
176
|
+
events.jsonl
|
|
177
|
+
workflow-runs.jsonl ← autonomous run state (append-only)
|
|
178
|
+
clarifications.jsonl ← clarification loop records (append-only)
|
|
179
|
+
estimates.jsonl ← declared effort baselines (append-only)
|
|
180
|
+
approvals/
|
|
181
|
+
decisions/
|
|
182
|
+
handoffs/
|
|
183
|
+
evidence/
|
|
184
|
+
reviews/
|
|
185
|
+
runs/
|
|
186
|
+
```
|
|
50
187
|
|
|
51
188
|
## Skills and Context Loading
|
|
52
189
|
|
|
53
|
-
Primary instruction files should stay short. Detailed procedures
|
|
190
|
+
Primary instruction files should stay short. Detailed procedures live in task-scoped skills loaded only when needed. See [docs/skill-loading-strategy.md](docs/skill-loading-strategy.md) for the manifest, loading flow, and built-in skill candidates.
|
|
54
191
|
|
|
192
|
+
## Prompt Registry
|
|
55
193
|
|
|
56
|
-
|
|
194
|
+
Open Orchestra scaffolds a stack-agnostic `.generated-prompts/` registry during `orchestra init`. Agents use it to preserve prompt intent and generation conventions without bloating main instruction files. Split by artifact type: code, UI, services, tests, CI/CD, docs, diagrams, and evals.
|
|
57
195
|
|
|
58
|
-
|
|
196
|
+
## VS Code Control Center
|
|
59
197
|
|
|
60
|
-
|
|
198
|
+
The VS Code extension scaffold lives in `extensions/vscode-open-orchestra`. It consumes stable CLI JSON contracts for status, validation, graph plan, roles, approvals, evidence, and config inspection. The CLI remains the source of truth.
|
|
61
199
|
|
|
62
200
|
```bash
|
|
63
|
-
# From this repo, build the CLI first
|
|
64
201
|
npm run build
|
|
65
|
-
# Open the extension folder in VS Code and run the extension host
|
|
66
202
|
code extensions/vscode-open-orchestra
|
|
67
203
|
```
|
|
68
204
|
|
|
@@ -72,4 +208,4 @@ code extensions/vscode-open-orchestra
|
|
|
72
208
|
- Existing `AGENTS.md`, `CLAUDE.md`, Cursor rules, and generated instruction files remain supported.
|
|
73
209
|
- `ORCHESTRA.md` is the intended future primary guide name and can coexist with current agent instruction files.
|
|
74
210
|
|
|
75
|
-
See [docs/orchestra-mvp.md](docs/orchestra-mvp.md) for the
|
|
211
|
+
See [docs/orchestra-mvp.md](docs/orchestra-mvp.md) for the full command reference.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { AutonomousGateMode, AutonomousPhase, AutonomousRun, SizingLabel } from "./types.js";
|
|
2
|
+
export declare const AUTONOMOUS_PHASE_SEQUENCE: Array<{
|
|
3
|
+
phase: string;
|
|
4
|
+
role: string;
|
|
5
|
+
summary: string;
|
|
6
|
+
}>;
|
|
7
|
+
export declare const AUTONOMOUS_RUNS_FILE = "workflow-runs.jsonl";
|
|
8
|
+
export declare function autonomousRunsPath(root: string): string;
|
|
9
|
+
export type SizingCheckResult = {
|
|
10
|
+
found: true;
|
|
11
|
+
sizing: SizingLabel;
|
|
12
|
+
points?: number;
|
|
13
|
+
} | {
|
|
14
|
+
found: false;
|
|
15
|
+
};
|
|
16
|
+
export declare function checkArchitectSizing(root: string, taskId: string): Promise<SizingCheckResult>;
|
|
17
|
+
export type AutonomousRunOptions = {
|
|
18
|
+
taskId: string;
|
|
19
|
+
gates: AutonomousGateMode;
|
|
20
|
+
maxIterations: number;
|
|
21
|
+
};
|
|
22
|
+
export declare function createAutonomousRun(root: string, opts: AutonomousRunOptions): Promise<AutonomousRun>;
|
|
23
|
+
export declare function readAutonomousRun(root: string, id: string): Promise<AutonomousRun | undefined>;
|
|
24
|
+
export declare function listAutonomousRuns(root: string): Promise<AutonomousRun[]>;
|
|
25
|
+
export type PhaseOutcome = {
|
|
26
|
+
kind: "done";
|
|
27
|
+
notes: string;
|
|
28
|
+
} | {
|
|
29
|
+
kind: "gate_pause";
|
|
30
|
+
reviewArtifact: string;
|
|
31
|
+
} | {
|
|
32
|
+
kind: "qa_fail";
|
|
33
|
+
notes: string;
|
|
34
|
+
};
|
|
35
|
+
export declare function initPhase(root: string, run: AutonomousRun, phaseIndex: number, retryContext?: string): Promise<AutonomousPhase>;
|
|
36
|
+
export declare function closePhase(root: string, run: AutonomousRun, phaseIndex: number, outcome: PhaseOutcome): Promise<{
|
|
37
|
+
run: AutonomousRun;
|
|
38
|
+
handoffArtifact?: string;
|
|
39
|
+
reviewArtifact?: string;
|
|
40
|
+
}>;
|
|
41
|
+
export declare function markRunFailed(root: string, run: AutonomousRun, reason: string): Promise<AutonomousRun>;
|
|
42
|
+
export declare function markRunDone(root: string, run: AutonomousRun): Promise<AutonomousRun>;
|
|
43
|
+
export declare function resumePhaseIndex(run: AutonomousRun): number;
|
|
44
|
+
export declare function suspendPhaseForClarification(root: string, run: AutonomousRun, phaseIndex: number): Promise<AutonomousRun>;
|
|
45
|
+
export declare function resumePhaseFromClarification(root: string, run: AutonomousRun, phaseIndex: number): Promise<AutonomousRun>;
|