open-coleslaw 0.2.0 → 0.2.2
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 +87 -60
- package/dist/index.js +12 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,46 +2,93 @@
|
|
|
2
2
|
|
|
3
3
|
**Just type your prompt. Like coleslaw — it's already prepared, just scoop and eat.**
|
|
4
4
|
|
|
5
|
-
Open Coleslaw is a multi-agent orchestrator plugin for Claude Code. It gives you an entire AI engineering team — architects, engineers, QA leads, product managers — that organizes itself, holds meetings, writes PRD-format minutes, and executes tasks.
|
|
5
|
+
Open Coleslaw is a multi-agent orchestrator plugin for Claude Code. It gives you an entire AI engineering team — architects, engineers, QA leads, product managers — that organizes itself, holds meetings, writes PRD-format minutes, and executes tasks.
|
|
6
6
|
|
|
7
7
|
Zero commands to memorize. Zero tools to call manually. Your AI team is already hired.
|
|
8
8
|
|
|
9
9
|
## How It Works
|
|
10
10
|
|
|
11
|
-
You type a prompt like *"
|
|
11
|
+
You type a prompt like *"Build me a balance game app"*. That's it.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
```
|
|
14
|
+
You: "Build me a balance game app"
|
|
15
|
+
|
|
16
|
+
→ Orchestrator analyzes your request
|
|
17
|
+
→ Convenes Architecture + Engineering + Product leaders
|
|
18
|
+
→ Leaders hold a structured meeting (2-3 rounds per agenda item)
|
|
19
|
+
→ PRD meeting minutes generated
|
|
20
|
+
→ Plan presented to you for approval
|
|
21
|
+
→ You: "OK"
|
|
22
|
+
→ Tasks compacted → Workers hired → Code implemented
|
|
23
|
+
→ Results reported
|
|
24
|
+
```
|
|
19
25
|
|
|
20
|
-
You
|
|
26
|
+
You never call a tool. You never pick a department. You never manage an agent. The orchestrator handles everything. If agents need your input on an important decision, they `@mention` you.
|
|
21
27
|
|
|
22
28
|
## Installation
|
|
23
29
|
|
|
24
|
-
|
|
25
|
-
# Add the marketplace
|
|
26
|
-
/plugin marketplace add sshworld/open-coleslaw
|
|
30
|
+
In Claude Code:
|
|
27
31
|
|
|
28
|
-
|
|
32
|
+
```
|
|
33
|
+
/plugin marketplace add sshworld/open-coleslaw
|
|
29
34
|
/plugin install open-coleslaw@sshworld
|
|
30
35
|
```
|
|
31
36
|
|
|
32
|
-
|
|
37
|
+
Then start a new session. That's it — every prompt now goes through the orchestrator pipeline.
|
|
38
|
+
|
|
39
|
+
### Verify It Works
|
|
40
|
+
|
|
41
|
+
Start a new session and type anything:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
Design a REST API for a todo app
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
You should see the orchestrator agent being dispatched and a meeting starting automatically.
|
|
48
|
+
|
|
49
|
+
## The Pipeline
|
|
33
50
|
|
|
34
|
-
|
|
51
|
+
Every request follows this flow. No exceptions.
|
|
35
52
|
|
|
36
53
|
```
|
|
37
|
-
|
|
54
|
+
Prompt → Orchestrator → Meeting → PRD Minutes → Your Approval → Implement
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
1. **Orchestrator dispatched** — analyzes your request, selects departments
|
|
58
|
+
2. **Meeting convened** — leaders discuss in structured rounds
|
|
59
|
+
3. **PRD minutes generated** — decisions, action items, technical specs
|
|
60
|
+
4. **Plan presented** — you review and approve (or request changes)
|
|
61
|
+
5. **Tasks compacted** — minutes converted to actionable tasks per department
|
|
62
|
+
6. **Workers hired** — each leader deploys workers in parallel
|
|
63
|
+
7. **Results reported** — final output delivered to you
|
|
64
|
+
|
|
65
|
+
If you want changes mid-plan, the orchestrator chains a follow-up meeting.
|
|
66
|
+
|
|
67
|
+
## The Agent Hierarchy
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
┌─────────────────┐
|
|
71
|
+
│ Orchestrator │ ← Your proxy (NOT a CEO)
|
|
72
|
+
│ (claude-opus) │ Decides, but asks you
|
|
73
|
+
└────────┬────────┘ for important calls
|
|
74
|
+
┌───────────┼───────────┐
|
|
75
|
+
▼ ▼ ▼
|
|
76
|
+
┌─────────┐ ┌─────────┐ ┌─────────┐
|
|
77
|
+
│ Arch │ │ Eng │ │ QA │ ← Leaders meet & discuss
|
|
78
|
+
│ Leader │ │ Leader │ │ Leader │ Then hire their own workers
|
|
79
|
+
└────┬────┘ └────┬────┘ └────┬────┘
|
|
80
|
+
┌──┴──┐ ┌───┼───┐ ┌──┴──┐
|
|
81
|
+
│W1 W2│ │W3 W4 W5│ │W6 │ ← Workers execute in parallel
|
|
82
|
+
└─────┘ └───────┘ └─────┘
|
|
38
83
|
```
|
|
39
84
|
|
|
40
|
-
|
|
85
|
+
**5 Departments**: Architecture, Engineering, QA, Product, Research
|
|
86
|
+
|
|
87
|
+
Each leader autonomously decides how many workers to hire based on task complexity.
|
|
41
88
|
|
|
42
|
-
## What
|
|
89
|
+
## What's Inside
|
|
43
90
|
|
|
44
|
-
### 14 MCP Tools (
|
|
91
|
+
### 14 MCP Tools (orchestrator calls these — you never do)
|
|
45
92
|
|
|
46
93
|
| Tool | What It Does |
|
|
47
94
|
|------|-------------|
|
|
@@ -53,60 +100,39 @@ If Open Coleslaw is working, the orchestrator will automatically convene a meeti
|
|
|
53
100
|
| `get-task-report` | Shows execution results per department |
|
|
54
101
|
| `get-agent-tree` | Displays the full agent hierarchy |
|
|
55
102
|
| `respond-to-mention` | Handles decisions the agents need from you |
|
|
56
|
-
| `get-mentions` | Lists pending
|
|
103
|
+
| `get-mentions` | Lists pending @mention decision points |
|
|
57
104
|
| `cancel-meeting` | Stops a meeting and cascades to all workers |
|
|
58
105
|
| `list-meetings` | Shows meeting history |
|
|
59
106
|
| `create-capability` | Self-extends the plugin with new hooks/skills |
|
|
60
107
|
| `get-cost-summary` | Tracks spending per agent, meeting, department |
|
|
61
108
|
| `chain-meeting` | Links meetings — output of one feeds into the next |
|
|
62
109
|
|
|
63
|
-
###
|
|
110
|
+
### 7 Skills
|
|
64
111
|
|
|
65
|
-
| Skill |
|
|
66
|
-
|
|
67
|
-
| `
|
|
68
|
-
| `
|
|
69
|
-
| `
|
|
70
|
-
| `
|
|
71
|
-
| `
|
|
72
|
-
| `
|
|
112
|
+
| Skill | Purpose |
|
|
113
|
+
|-------|---------|
|
|
114
|
+
| `using-open-coleslaw` | Loaded at session start — ensures all requests go through the pipeline |
|
|
115
|
+
| `meeting` | Dispatches the orchestrator for the meeting → plan → implement flow |
|
|
116
|
+
| `status` | Shows active meetings, agents, pending mentions |
|
|
117
|
+
| `dashboard` | Opens the real-time Neon Ops Center |
|
|
118
|
+
| `mention` | Handles pending @mention decisions |
|
|
119
|
+
| `agents` | Shows the agent hierarchy tree |
|
|
120
|
+
| `minutes` | Browses past meeting minutes |
|
|
73
121
|
|
|
74
122
|
### Real-Time Dashboard
|
|
75
123
|
|
|
76
|
-
A cyberpunk-themed "Neon Ops Center"
|
|
124
|
+
A cyberpunk-themed "Neon Ops Center" at `http://localhost:35143`:
|
|
77
125
|
|
|
78
126
|
- Live agent hierarchy with animated connections
|
|
127
|
+
- Per-project tabs (multiple terminals → multiple tabs)
|
|
79
128
|
- Meeting progress tracking
|
|
80
129
|
- Task delegation and completion flow
|
|
81
|
-
-
|
|
82
|
-
-
|
|
130
|
+
- @mention alerts
|
|
131
|
+
- Duplicate project names get auto-numbered: `project`, `project (1)`
|
|
83
132
|
|
|
84
133
|
### Self-Extending
|
|
85
134
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
## The Agent Hierarchy
|
|
89
|
-
|
|
90
|
-
```
|
|
91
|
-
┌─────────────────┐
|
|
92
|
-
│ Orchestrator │ ← Your proxy (NOT a CEO)
|
|
93
|
-
│ "What do you │ Decides, but asks you
|
|
94
|
-
│ need built?" │ for important calls
|
|
95
|
-
└────────┬────────┘
|
|
96
|
-
┌───────────┼───────────┐
|
|
97
|
-
▼ ▼ ▼
|
|
98
|
-
┌─────────┐ ┌─────────┐ ┌─────────┐
|
|
99
|
-
│ Arch │ │ Eng │ │ QA │ ← Leaders meet & discuss
|
|
100
|
-
│ Leader │ │ Leader │ │ Leader │ Then hire their own workers
|
|
101
|
-
└────┬────┘ └────┬────┘ └────┬────┘
|
|
102
|
-
┌──┴──┐ ┌───┼───┐ ┌──┴──┐
|
|
103
|
-
│W1 W2│ │W3 W4 W5│ │W6 │ ← Workers execute in parallel
|
|
104
|
-
└─────┘ └───────┘ └─────┘
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
**5 Departments**: Architecture, Engineering, QA, Product, Research
|
|
108
|
-
|
|
109
|
-
Each leader autonomously decides how many workers to hire based on task complexity.
|
|
135
|
+
Ask for a workflow that doesn't exist yet, and the orchestrator creates it — new hooks, skills, or automations — registered for future use.
|
|
110
136
|
|
|
111
137
|
## Agent Tiers
|
|
112
138
|
|
|
@@ -125,10 +151,11 @@ Coleslaw is a side dish that's already made. You don't prepare it — you just e
|
|
|
125
151
|
|
|
126
152
|
### Key Decisions
|
|
127
153
|
|
|
128
|
-
- **The Orchestrator is your proxy, not a CEO.** You are the decision-maker. The orchestrator acts on your behalf but escalates important choices via
|
|
154
|
+
- **The Orchestrator is your proxy, not a CEO.** You are the decision-maker. The orchestrator acts on your behalf but escalates important choices via @mention.
|
|
155
|
+
- **Meeting first, always.** Even "simple" requests go through the pipeline. If it's truly simple, the meeting will be fast.
|
|
129
156
|
- **MVP cycles.** Work happens in loops: meeting → develop → verify → (re-meet if needed).
|
|
130
|
-
- **Rules survive context compaction.**
|
|
131
|
-
- **Agents check before they code.** Every agent analyzes the project's dependencies, existing code, and conventions before writing anything.
|
|
157
|
+
- **Rules survive context compaction.** The `using-open-coleslaw` skill is injected at every session start. The system never forgets how to behave.
|
|
158
|
+
- **Agents check before they code.** Every agent analyzes the project's dependencies, existing code, and conventions before writing anything.
|
|
132
159
|
|
|
133
160
|
## Development
|
|
134
161
|
|
|
@@ -141,7 +168,7 @@ npm run build
|
|
|
141
168
|
# Run with mock agents (no Claude CLI needed)
|
|
142
169
|
COLESLAW_MOCK=1 node dist/index.js
|
|
143
170
|
|
|
144
|
-
# Run tests
|
|
171
|
+
# Run tests (218 tests)
|
|
145
172
|
npm test
|
|
146
173
|
|
|
147
174
|
# Type check
|
package/dist/index.js
CHANGED
|
@@ -1215,10 +1215,12 @@ async function invokeReal(options) {
|
|
|
1215
1215
|
"--print",
|
|
1216
1216
|
"--output-format",
|
|
1217
1217
|
"json",
|
|
1218
|
-
"--no-session-persistence"
|
|
1218
|
+
"--no-session-persistence",
|
|
1219
|
+
"--bare"
|
|
1220
|
+
// CRITICAL: skip hooks, plugins, MCP — prevents infinite recursion
|
|
1219
1221
|
];
|
|
1220
1222
|
if (systemPrompt) {
|
|
1221
|
-
args.push("--
|
|
1223
|
+
args.push("--system-prompt", systemPrompt);
|
|
1222
1224
|
}
|
|
1223
1225
|
if (allowedTools.length > 0) {
|
|
1224
1226
|
args.push("--allowedTools", allowedTools.join(","));
|
|
@@ -6459,11 +6461,14 @@ function startDashboard(options) {
|
|
|
6459
6461
|
// src/index.ts
|
|
6460
6462
|
async function main() {
|
|
6461
6463
|
ensureDataDirs();
|
|
6462
|
-
const
|
|
6463
|
-
|
|
6464
|
-
|
|
6465
|
-
|
|
6466
|
-
|
|
6464
|
+
const isBareSubprocess = process.env["CLAUDE_CODE_SIMPLE"] === "1";
|
|
6465
|
+
if (!isBareSubprocess) {
|
|
6466
|
+
const sessionId = randomUUID();
|
|
6467
|
+
const projectPath = process.cwd();
|
|
6468
|
+
const projectName = projectPath.split("/").pop() ?? "unknown";
|
|
6469
|
+
startDashboard({ sessionId, projectPath, projectName }).catch(() => {
|
|
6470
|
+
});
|
|
6471
|
+
}
|
|
6467
6472
|
const server = createServer();
|
|
6468
6473
|
const transport = new StdioServerTransport();
|
|
6469
6474
|
await server.connect(transport);
|