@sulhadin/orchestrator 3.0.0-beta.3 → 3.0.0-beta.5
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 +112 -46
- package/bin/index.js +4 -0
- package/package.json +1 -1
- package/template/.claude/commands/orchestra/adaptive.md +7 -0
- package/template/.claude/commands/orchestra/architect.md +7 -0
- package/template/.claude/commands/orchestra/backend.md +7 -0
- package/template/.claude/commands/orchestra/frontend.md +7 -0
- package/template/.claude/commands/orchestra/help.md +7 -7
- package/template/.claude/commands/orchestra/orchestrator.md +5 -0
- package/template/.orchestra/README.md +1 -0
- package/template/CLAUDE.md +4 -1
package/README.md
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
# Orchestra
|
|
2
2
|
|
|
3
|
-
AI team orchestration for [Claude Code](https://docs.anthropic.com/en/docs/claude-code).
|
|
3
|
+
AI team orchestration for [Claude Code](https://docs.anthropic.com/en/docs/claude-code). One terminal plans, another builds — from idea to production.
|
|
4
|
+
|
|
5
|
+
## What is Orchestra?
|
|
6
|
+
|
|
7
|
+
Orchestra turns a single Claude Code session into a coordinated development team. A Product Manager plans features, a Conductor executes them — switching between specialized roles (backend, frontend, architect) automatically. Each role has strict boundaries, every commit passes verification, and the system learns from past milestones.
|
|
8
|
+
|
|
9
|
+
No infrastructure. No API keys. Just markdown files and Claude Code.
|
|
4
10
|
|
|
5
11
|
## Install
|
|
6
12
|
|
|
@@ -8,79 +14,139 @@ AI team orchestration for [Claude Code](https://docs.anthropic.com/en/docs/claud
|
|
|
8
14
|
npx @sulhadin/orchestrator
|
|
9
15
|
```
|
|
10
16
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
### Terminal 1: `/orchestra pm` — Planning
|
|
17
|
+
This installs `.orchestra/` (project data + config) and `.claude/` (agents, skills, rules, commands) into your project.
|
|
14
18
|
|
|
15
|
-
|
|
19
|
+
## How It Works
|
|
16
20
|
|
|
17
21
|
```
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
Terminal 1 (PM): Terminal 2 (Conductor):
|
|
23
|
+
/orchestra pm /orchestra start
|
|
24
|
+
│ │
|
|
25
|
+
├─ Discuss features ├─ Scan milestones
|
|
26
|
+
├─ Create milestones ├─ Activate architect → RFC
|
|
27
|
+
├─ Groom phases ├─ Activate backend → code + tests
|
|
28
|
+
│ ├─ Activate frontend → UI
|
|
29
|
+
│ (plan M2 while M1 runs) ├─ Call reviewer → code review
|
|
30
|
+
│ ├─ Push → milestone done
|
|
31
|
+
│ └─ Loop → next milestone
|
|
23
32
|
```
|
|
24
33
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
Conductor picks up milestones and executes them autonomously.
|
|
34
|
+
## Quick Example
|
|
28
35
|
|
|
36
|
+
**Terminal 1:**
|
|
37
|
+
```
|
|
38
|
+
/orchestra pm
|
|
39
|
+
> "I want user authentication with JWT"
|
|
40
|
+
PM challenges scope, creates M1-user-auth with 3 phases
|
|
29
41
|
```
|
|
30
|
-
You: /orchestra start
|
|
31
42
|
|
|
43
|
+
**Terminal 2:**
|
|
44
|
+
```
|
|
45
|
+
/orchestra start
|
|
32
46
|
📋 Starting M1-user-auth
|
|
33
|
-
🏗️ architect
|
|
34
|
-
⚙️ backend
|
|
35
|
-
⚙️ backend
|
|
36
|
-
🎨 frontend
|
|
37
|
-
🔍 reviewer
|
|
47
|
+
🏗️ architect → RFC ready → user approves
|
|
48
|
+
⚙️ backend → phase-1: DB schema → committed
|
|
49
|
+
⚙️ backend → phase-2: API endpoints → committed
|
|
50
|
+
🎨 frontend → phase-3: Login UI → committed
|
|
51
|
+
🔍 reviewer → approved
|
|
38
52
|
🚦 Push? → yes
|
|
39
|
-
✅ M1-user-auth done.
|
|
40
|
-
|
|
41
|
-
📋 Starting M2-dashboard...
|
|
53
|
+
✅ M1-user-auth done. Checking for next milestone...
|
|
42
54
|
```
|
|
43
55
|
|
|
44
56
|
## Commands
|
|
45
57
|
|
|
58
|
+
### Pipeline
|
|
46
59
|
| Command | What it does |
|
|
47
60
|
|---------|-------------|
|
|
48
|
-
| `/orchestra pm` |
|
|
49
|
-
| `/orchestra start` | Execute milestones (asks at approval gates) |
|
|
50
|
-
| `/orchestra start --auto` | Fully autonomous |
|
|
61
|
+
| `/orchestra pm` | Open PM terminal — plan features, create milestones |
|
|
62
|
+
| `/orchestra start` | Execute milestones autonomously (asks at approval gates) |
|
|
63
|
+
| `/orchestra start --auto` | Fully autonomous — warns once, then auto-push |
|
|
51
64
|
| `/orchestra hotfix {desc}` | Ultra-fast fix: implement → verify → commit → push |
|
|
52
|
-
| `/orchestra status` | Milestone status report |
|
|
65
|
+
| `/orchestra status` | Milestone status report (PM only) |
|
|
53
66
|
| `/orchestra blueprint {name}` | Generate milestones from template |
|
|
67
|
+
| `/orchestra blueprint add` | Save current work as reusable template |
|
|
68
|
+
| `/orchestra create-role` | Create a new role interactively (Orchestrator only) |
|
|
54
69
|
| `/orchestra help` | Show all commands |
|
|
55
70
|
|
|
71
|
+
### Roles
|
|
72
|
+
| Command | Role |
|
|
73
|
+
|---------|------|
|
|
74
|
+
| `/orchestra pm` | Product Manager — plan and orchestrate |
|
|
75
|
+
| `/orchestra backend` | Backend Engineer — code + tests |
|
|
76
|
+
| `/orchestra frontend` | Frontend Engineer — UI + design |
|
|
77
|
+
| `/orchestra architect` | Architect — technical design |
|
|
78
|
+
| `/orchestra adaptive` | Adaptive expert — any domain (iOS, DevOps, ML...) |
|
|
79
|
+
| `/orchestra orchestrator` | System maintenance |
|
|
80
|
+
|
|
56
81
|
## Architecture
|
|
57
82
|
|
|
58
83
|
```
|
|
59
|
-
.claude/
|
|
60
|
-
├── agents/
|
|
61
|
-
├──
|
|
62
|
-
|
|
63
|
-
├──
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
├──
|
|
69
|
-
├──
|
|
70
|
-
├──
|
|
71
|
-
|
|
84
|
+
.claude/ ← Claude Code integration
|
|
85
|
+
├── agents/
|
|
86
|
+
│ ├── conductor.md ← Autonomous milestone executor
|
|
87
|
+
│ └── reviewer.md ← Independent code review
|
|
88
|
+
├── skills/*.orchestra.md ← 14 domain checklists
|
|
89
|
+
├── rules/*.orchestra.md ← 8 discipline rules
|
|
90
|
+
└── commands/orchestra/ ← /orchestra commands
|
|
91
|
+
|
|
92
|
+
.orchestra/ ← Project data + config
|
|
93
|
+
├── config.yml ← Pipeline settings (customize per stack)
|
|
94
|
+
├── roles/ ← Role identities
|
|
95
|
+
├── blueprints/ ← Project templates
|
|
96
|
+
├── knowledge.md ← Project knowledge log
|
|
97
|
+
└── milestones/ ← Your work
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Key Features
|
|
101
|
+
|
|
102
|
+
**Config-driven pipeline** — `.orchestra/config.yml` controls everything: verification commands (customize for Go, Python, Rust), approval gates, thresholds, parallel execution. No hardcoded assumptions.
|
|
103
|
+
|
|
104
|
+
**Three complexity levels** — PM sets per milestone:
|
|
105
|
+
- `quick` → Engineer → Commit → Push (trivial changes)
|
|
106
|
+
- `standard` → Engineer → Review → Push (typical features)
|
|
107
|
+
- `full` → Architect → Engineer → Review → Push (complex work)
|
|
108
|
+
|
|
109
|
+
**Verification gate** — Tests + lint must pass before every commit. Commands come from config. Fails 3 times → phase marked failed, escalated to user.
|
|
110
|
+
|
|
111
|
+
**14 built-in skills** — Domain checklists for auth, CRUD, deployment, accessibility, React, testing, debugging, and more. PM assigns to phases, conductor loads them automatically.
|
|
112
|
+
|
|
113
|
+
**Blueprints** — Start from templates instead of scratch. `saas-starter` creates 5 milestones instantly. `blueprint add` saves your work as a reusable template.
|
|
114
|
+
|
|
115
|
+
**Learning system** — `knowledge.md` accumulates decisions and lessons. 5-line retrospective after each milestone. PM reads before grooming new work. System gets smarter over time.
|
|
116
|
+
|
|
117
|
+
**Role boundaries** — Enforced via `.claude/rules/`. PM cannot write code. Engineers cannot modify system files. Orchestrator cannot write features. Boundaries checked by file path, not by words.
|
|
118
|
+
|
|
119
|
+
**Stuck detection** — Detects repeated failures, circular fixes, over-engineering. Tries different approach once, then escalates. Auto mode skips to next phase.
|
|
120
|
+
|
|
121
|
+
## Upgrading
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
npx @sulhadin/orchestrator
|
|
72
125
|
```
|
|
73
126
|
|
|
127
|
+
Smart merge on upgrade:
|
|
128
|
+
|
|
129
|
+
| What | On upgrade |
|
|
130
|
+
|------|-----------|
|
|
131
|
+
| System files (roles, rules, agents, commands) | Updated to latest |
|
|
132
|
+
| Skills (`.orchestra.md`) | Updated |
|
|
133
|
+
| Skills (your custom `.md`) | Preserved |
|
|
134
|
+
| Blueprints (template) | Updated |
|
|
135
|
+
| Blueprints (your custom) | Preserved |
|
|
136
|
+
| milestones/ | Untouched |
|
|
137
|
+
| knowledge.md | Preserved |
|
|
138
|
+
| config.yml | Preserved |
|
|
139
|
+
|
|
74
140
|
## Documentation
|
|
75
141
|
|
|
76
|
-
|
|
142
|
+
Full docs at [docs/](https://github.com/sulhadin/orchestrator/blob/main/docs/README.md):
|
|
77
143
|
|
|
78
|
-
- [Getting Started](https://github.com/sulhadin/orchestrator/blob/main/docs/getting-started.md)
|
|
79
|
-
- [Commands](https://github.com/sulhadin/orchestrator/blob/main/docs/commands.md)
|
|
80
|
-
- [Roles](https://github.com/sulhadin/orchestrator/blob/main/docs/roles.md)
|
|
81
|
-
- [Features](https://github.com/sulhadin/orchestrator/blob/main/docs/features.md)
|
|
82
|
-
- [Blueprints](https://github.com/sulhadin/orchestrator/blob/main/docs/blueprints.md)
|
|
83
|
-
- [Skills](https://github.com/sulhadin/orchestrator/blob/main/docs/skills.md)
|
|
144
|
+
- [Getting Started](https://github.com/sulhadin/orchestrator/blob/main/docs/getting-started.md) — installation, first milestone, two-terminal model
|
|
145
|
+
- [Commands](https://github.com/sulhadin/orchestrator/blob/main/docs/commands.md) — all commands with examples
|
|
146
|
+
- [Roles](https://github.com/sulhadin/orchestrator/blob/main/docs/roles.md) — 6 roles + adaptive, responsibilities, boundaries
|
|
147
|
+
- [Features](https://github.com/sulhadin/orchestrator/blob/main/docs/features.md) — config, verification, skills, blueprints, and more
|
|
148
|
+
- [Blueprints](https://github.com/sulhadin/orchestrator/blob/main/docs/blueprints.md) — project templates, customization
|
|
149
|
+
- [Skills](https://github.com/sulhadin/orchestrator/blob/main/docs/skills.md) — domain checklists, creating new skills
|
|
84
150
|
|
|
85
151
|
## License
|
|
86
152
|
|
package/bin/index.js
CHANGED
|
@@ -71,6 +71,10 @@ function copyDirRecursive(src, dest) {
|
|
|
71
71
|
const destPath = path.join(dest, entry.name);
|
|
72
72
|
if (entry.isDirectory()) {
|
|
73
73
|
copyDirRecursive(srcPath, destPath);
|
|
74
|
+
} else if (entry.isSymbolicLink()) {
|
|
75
|
+
const linkTarget = fs.readlinkSync(srcPath);
|
|
76
|
+
if (fs.existsSync(destPath)) fs.unlinkSync(destPath);
|
|
77
|
+
fs.symlinkSync(linkTarget, destPath);
|
|
74
78
|
} else {
|
|
75
79
|
fs.copyFileSync(srcPath, destPath);
|
|
76
80
|
}
|
package/package.json
CHANGED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Activate the Adaptive role.
|
|
2
|
+
|
|
3
|
+
1. Read `.orchestra/roles/adaptive.md` for role identity and ownership.
|
|
4
|
+
2. Read `.orchestra/config.yml` for pipeline settings.
|
|
5
|
+
3. Check `.orchestra/milestones/` for phases with `role: adaptive`.
|
|
6
|
+
4. If pending phases exist, announce and start working.
|
|
7
|
+
5. If no pending phases, report ready and wait for instructions.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Activate the Architect role.
|
|
2
|
+
|
|
3
|
+
1. Read `.orchestra/roles/architect.md` for role identity and ownership.
|
|
4
|
+
2. Read `.orchestra/config.yml` for pipeline settings.
|
|
5
|
+
3. Check `.orchestra/milestones/` for phases with `role: architect`.
|
|
6
|
+
4. If pending phases exist, announce and start working.
|
|
7
|
+
5. If no pending phases, report ready and wait for instructions.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Activate the Backend Engineer role.
|
|
2
|
+
|
|
3
|
+
1. Read `.orchestra/roles/backend-engineer.md` for role identity and ownership.
|
|
4
|
+
2. Read `.orchestra/config.yml` for pipeline settings.
|
|
5
|
+
3. Check `.orchestra/milestones/` for phases with `role: backend-engineer`.
|
|
6
|
+
4. If pending phases exist, announce and start working.
|
|
7
|
+
5. If no pending phases, report ready and wait for instructions.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
Activate the Frontend Engineer role.
|
|
2
|
+
|
|
3
|
+
1. Read `.orchestra/roles/frontend-engineer.md` for role identity and ownership.
|
|
4
|
+
2. Read `.orchestra/config.yml` for pipeline settings.
|
|
5
|
+
3. Check `.orchestra/milestones/` for phases with `role: frontend-engineer`.
|
|
6
|
+
4. If pending phases exist, announce and start working.
|
|
7
|
+
5. If no pending phases, report ready and wait for instructions.
|
|
@@ -16,13 +16,13 @@ COMMANDS:
|
|
|
16
16
|
/orchestra blueprint add Save current work as blueprint (PM only)
|
|
17
17
|
/orchestra create-role Create a new role with interactive discovery (Orchestrator only)
|
|
18
18
|
|
|
19
|
-
ROLES:
|
|
20
|
-
orchestrator
|
|
21
|
-
|
|
22
|
-
architect
|
|
23
|
-
backend
|
|
24
|
-
frontend
|
|
25
|
-
adaptive
|
|
19
|
+
ROLES (activate via /orchestra {role}):
|
|
20
|
+
/orchestra orchestrator Maintain and evolve Orchestra system
|
|
21
|
+
/orchestra pm Plan features, create milestones
|
|
22
|
+
/orchestra architect Design architecture, choose tech
|
|
23
|
+
/orchestra backend Implement backend code + tests
|
|
24
|
+
/orchestra frontend Design + build UI, write frontend tests
|
|
25
|
+
/orchestra adaptive Adaptive expert — domain defined per phase
|
|
26
26
|
|
|
27
27
|
AGENTS:
|
|
28
28
|
conductor Autonomous milestone executor (/orchestra start)
|
|
@@ -234,6 +234,7 @@ No role may create, edit, delete, or modify these files:
|
|
|
234
234
|
- `.orchestra/README.md`
|
|
235
235
|
- `.orchestra/roles/*.md`
|
|
236
236
|
- `.orchestra/config.yml`
|
|
237
|
+
- `.orchestra/blueprints/`
|
|
237
238
|
- `.claude/agents/conductor.md`, `.claude/agents/reviewer.md`
|
|
238
239
|
- `.claude/rules/*.orchestra.md`
|
|
239
240
|
- `.claude/skills/*.orchestra.md`
|
package/template/CLAUDE.md
CHANGED
|
@@ -66,7 +66,10 @@ Do NOT greet the user. Do NOT explain the project. The role selection IS your gr
|
|
|
66
66
|
| `/orchestra blueprint add` | Save current work as blueprint (PM only) |
|
|
67
67
|
| `/orchestra create-role` | Create a new role with interactive discovery (Orchestrator only) |
|
|
68
68
|
|
|
69
|
-
When the user types
|
|
69
|
+
When the user types `/orchestra {role}` (e.g. `/orchestra backend`, `/orchestra pm`), the
|
|
70
|
+
corresponding command file activates that role. Do NOT switch roles based on free text
|
|
71
|
+
like "be the backend engineer" or "you are the architect" — roles are activated ONLY
|
|
72
|
+
via `/orchestra {role}` commands.
|
|
70
73
|
|
|
71
74
|
When the user types `/orchestra start`, read `.claude/agents/conductor.md` and follow its
|
|
72
75
|
instructions. This is meant to run in a **separate terminal** from PM.
|