Skip to content

Commit 57bbbba

Browse files
Add Makefile wrapping tools/ scripts, Remove too-many-cooks (#55)
## Summary - Added `Makefile` with targets wrapping all scripts in `tools/`: - `make setup` / `make pub-get` — run `tools/pub_get.sh` - `make test` — run all tests (all tiers) - `make test-tier1/2/3` — run specific tiers - `make lint` / `make fmt` — analyze and format all packages - `make install-vsix` — build and install the VS Code extension - `make ci` — full CI pipeline ## Test plan - [ ] Verify `make help` lists all targets - [ ] Confirm `make test-tier1` runs tier 1 tests --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 0ddb509 commit 57bbbba

File tree

123 files changed

+1047
-20609
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

123 files changed

+1047
-20609
lines changed

.claude/skills/build-extension/SKILL.md

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -8,35 +8,11 @@ allowed-tools: Bash
88

99
# Build VSCode Extensions
1010

11-
This repo has two VSCode extension components:
11+
This repo has one VSCode extension component:
1212

1313
| Component | Location | What it is |
1414
|-----------|----------|------------|
1515
| **dart_node_vsix** | `packages/dart_node_vsix/` | The SDK package — Dart bindings for the VSCode extension API (commands, tree views, webviews, status bar, etc.) |
16-
| **too_many_cooks** | `examples/too_many_cooks_vscode_extension/` | A concrete extension built with that SDK — multi-agent coordination UI |
17-
18-
## too-many-cooks extension
19-
20-
**Full build** (MCP server + extension + .vsix package):
21-
```bash
22-
bash examples/too_many_cooks_vscode_extension/build.sh
23-
```
24-
25-
This does:
26-
1. Compiles MCP server: `dart compile js``add_preamble.dart``server_node.js`
27-
2. Compiles extension: `dart compile js``wrap-extension.js` bridge → `out/lib/extension.js`
28-
3. Packages: `vsce package``.vsix` file
29-
30-
**Test** (runs Mocha tests under a real VSCode instance):
31-
```bash
32-
cd examples/too_many_cooks_vscode_extension && npm run pretest && npm test
33-
```
34-
On headless Linux, prefix with `xvfb-run -a`.
35-
36-
**Install into VSCode**:
37-
```bash
38-
code --install-extension examples/too_many_cooks_vscode_extension/*.vsix
39-
```
4016

4117
## dart_node_vsix SDK package
4218

.claude/skills/pub-get/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Installs `dart pub get` and `npm install` across all packages and examples in de
1919

2020
1. **Tier 1 (Core):** `dart_logging`, `dart_node_coverage`, `dart_node_core`, `reflux`
2121
2. **Tier 2 (Packages):** `dart_jsx`, `dart_node_express`, `dart_node_ws`, `dart_node_better_sqlite3`, `dart_node_mcp`, `dart_node_react`, `dart_node_react_native`
22-
3. **Tier 3 (Examples):** `frontend`, `markdown_editor`, `reflux_demo/web_counter`, `too_many_cooks`, `backend`, `mobile`, `jsx_demo`
22+
3. **Tier 3 (Examples):** `frontend`, `markdown_editor`, `reflux_demo/web_counter`, `backend`, `mobile`, `jsx_demo`
2323

2424
Order matters because Tier 2 depends on Tier 1, and Tier 3 depends on both.
2525

.claude/skills/setup/SKILL.md

Lines changed: 1 addition & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -7,85 +7,13 @@ allowed-tools: Bash
77

88
# Setup Development Tools
99

10-
Install Claude Code CLI with Too Many Cooks extension OR Playwright with Chromium.
10+
Install Playwright with Chromium.
1111

1212
**Usage**: `/setup <tool>`
13-
- `claude` — Install Claude Code CLI and Too Many Cooks VSCode extension
1413
- `playwright` — Install Chromium and Playwright for website E2E testing
1514

1615
---
1716

18-
## Claude Setup
19-
20-
Sets up Claude Code CLI and the Too Many Cooks VSCode extension for multi-agent coordination.
21-
22-
### Step 1: Install Claude Code CLI
23-
24-
```bash
25-
npm install -g @anthropic-ai/claude-code
26-
```
27-
28-
Verify:
29-
```bash
30-
claude --version
31-
```
32-
33-
### Step 2: Build the Too Many Cooks VSCode Extension
34-
35-
The extension provides visual agent coordination (locks, messages, plans) via the MCP server.
36-
37-
#### 2a. Build the MCP Server first
38-
39-
```bash
40-
cd examples/too_many_cooks && dart pub get && npm install
41-
dart compile js -o examples/too_many_cooks/build/bin/server.js examples/too_many_cooks/bin/server.dart
42-
dart run tools/build/add_preamble.dart \
43-
examples/too_many_cooks/build/bin/server.js \
44-
examples/too_many_cooks/build/bin/server_node.js \
45-
--shebang
46-
```
47-
48-
#### 2b. Build and package the extension
49-
50-
```bash
51-
cd examples/too_many_cooks_vscode_extension
52-
npm install
53-
npm run compile
54-
npx @vscode/vsce package
55-
```
56-
57-
This creates a `.vsix` file in `examples/too_many_cooks_vscode_extension/`.
58-
59-
#### 2c. Install the extension
60-
61-
```bash
62-
code --install-extension examples/too_many_cooks_vscode_extension/*.vsix
63-
```
64-
65-
Or use the full build script that does steps 2a-2b:
66-
```bash
67-
bash examples/too_many_cooks_vscode_extension/build.sh
68-
```
69-
70-
### Step 3: Configure Claude Code for this project
71-
72-
The project's `.claude/settings.local.json` already has the required permissions:
73-
- `Bash(dart pub get:*)` — dependency installation
74-
- `mcp__too-many-cooks__register` — MCP agent registration
75-
- `Bash(docker ps:*)` — Docker status checks
76-
77-
Custom skills are in `.claude/skills/` — run `/help` to see them.
78-
79-
### Multi-Agent Usage
80-
81-
After setup, agents coordinate via the Too Many Cooks MCP server:
82-
- **Lock files** before editing, unlock after
83-
- **Check messages** regularly between agents
84-
- **Update plans** so other agents can see your intent
85-
- Keep your agent key — it's critical for authentication
86-
87-
---
88-
8917
## Playwright Setup
9018

9119
Sets up Playwright with Chromium for running the website's E2E test suite.

.claude/skills/test/SKILL.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ Map changed files to packages:
3131
| `packages/reflux/` | `packages/reflux` |
3232
| `packages/dart_jsx/` | `packages/dart_jsx` |
3333
| `examples/frontend/` | `examples/frontend` |
34-
| `examples/too_many_cooks/` | `examples/too_many_cooks` |
3534
| `examples/markdown_editor/` | `examples/markdown_editor` |
3635
| `examples/reflux_demo/` | `examples/reflux_demo/web_counter` |
3736
| `tools/` or root config | Run `--all` |
@@ -75,7 +74,7 @@ Minimum coverage: **80%**. If below threshold, read `coverage/lcov.info` and ide
7574

7675
- **Tier 1:** `dart_logging`, `dart_node_core`
7776
- **Tier 2:** `reflux`, `dart_node_express`, `dart_node_ws`, `dart_node_better_sqlite3`, `dart_node_mcp`, `dart_node_react_native`, `dart_node_react`
78-
- **Tier 3:** `examples/frontend`, `examples/markdown_editor`, `examples/reflux_demo/web_counter`, `examples/too_many_cooks`
77+
- **Tier 3:** `examples/frontend`, `examples/markdown_editor`, `examples/reflux_demo/web_counter`
7978

8079
## After running
8180

.github/workflows/ci.yml

Lines changed: 1 addition & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ on:
66

77
env:
88
MIN_COVERAGE: ${{ vars.MIN_COVERAGE }}
9+
SERVER_BINARY: build/bin/server_node.js
910

1011
jobs:
1112
website:
@@ -128,106 +129,3 @@ jobs:
128129
name: test-logs
129130
path: logs/
130131
retention-days: 7
131-
132-
too-many-cooks-mcp:
133-
name: Too Many Cooks MCP Server
134-
runs-on: ubuntu-latest
135-
steps:
136-
- uses: actions/checkout@v4
137-
138-
- name: Setup Dart
139-
uses: dart-lang/setup-dart@v1
140-
with:
141-
sdk: ${{ vars.DART_VERSION }}
142-
143-
- name: Setup Node.js
144-
uses: actions/setup-node@v4
145-
with:
146-
node-version: '20'
147-
cache: 'npm'
148-
cache-dependency-path: examples/too_many_cooks/package-lock.json
149-
150-
- name: Get tools/build dependencies
151-
working-directory: tools/build
152-
run: dart pub get
153-
154-
- name: Get MCP server dependencies
155-
working-directory: examples/too_many_cooks
156-
run: |
157-
dart pub get
158-
npm ci
159-
160-
- name: Compile MCP server
161-
run: |
162-
set -e
163-
dart compile js -o examples/too_many_cooks/build/bin/server.js examples/too_many_cooks/bin/server.dart
164-
dart run tools/build/add_preamble.dart \
165-
examples/too_many_cooks/build/bin/server.js \
166-
examples/too_many_cooks/build/bin/server_node.js \
167-
--shebang
168-
169-
- name: Verify server exists
170-
run: |
171-
set -e
172-
test -f examples/too_many_cooks/build/bin/server_node.js || (echo "Server build failed!" && exit 1)
173-
echo "MCP server built successfully"
174-
175-
vscode-extension:
176-
name: VSCode Extension Tests
177-
runs-on: ubuntu-latest
178-
needs: too-many-cooks-mcp
179-
steps:
180-
- uses: actions/checkout@v4
181-
182-
- name: Setup Dart
183-
uses: dart-lang/setup-dart@v1
184-
with:
185-
sdk: ${{ vars.DART_VERSION }}
186-
187-
- name: Setup Node.js
188-
uses: actions/setup-node@v4
189-
with:
190-
node-version: '20'
191-
cache: 'npm'
192-
cache-dependency-path: examples/too_many_cooks_vscode_extension/package-lock.json
193-
194-
- name: Get tools/build dependencies
195-
working-directory: tools/build
196-
run: dart pub get
197-
198-
- name: Build Too Many Cooks MCP server
199-
run: |
200-
set -e
201-
cd examples/too_many_cooks
202-
dart pub get
203-
npm ci
204-
dart compile js -o build/bin/server.js bin/server.dart
205-
cd ../..
206-
dart run tools/build/add_preamble.dart \
207-
examples/too_many_cooks/build/bin/server.js \
208-
examples/too_many_cooks/build/bin/server_node.js \
209-
--shebang
210-
211-
- name: Get dart_node_vsix dependencies
212-
working-directory: packages/dart_node_vsix
213-
run: dart pub get
214-
215-
- name: Get extension dependencies (Dart)
216-
working-directory: examples/too_many_cooks_vscode_extension
217-
run: dart pub get
218-
219-
- name: Get extension dependencies (npm)
220-
working-directory: examples/too_many_cooks_vscode_extension
221-
run: npm ci
222-
223-
- name: Compile extension and tests
224-
working-directory: examples/too_many_cooks_vscode_extension
225-
run: |
226-
set -e
227-
npm run pretest
228-
229-
- name: Run VSCode extension tests
230-
uses: coactions/setup-xvfb@v1
231-
with:
232-
run: npm test
233-
working-directory: examples/too_many_cooks_vscode_extension

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,3 +75,7 @@ website/test-results/
7575
# Flutter web scaffolding (not needed for VSCode extension)
7676
examples/too_many_cooks_vscode_extension/web/
7777
examples/too_many_cooks_vscode_extension/lib/main.dart
78+
79+
.commandtree/
80+
.too_many_cooks
81+

.mcp.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"mcpServers": {
3+
"too-many-cooks": {
4+
"type": "http",
5+
"url": "http://localhost:4040/mcp"
6+
}
7+
}
8+
}

.vscode/tasktree.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"tags": {
3+
"quick": [
4+
"npm:/Users/christianfindlay/Documents/Code/dart_node/examples/too_many_cooks_vscode_extension/package.json:compile",
5+
"npm:/Users/christianfindlay/Documents/Code/dart_node/examples/too_many_cooks_vscode_extension/package.json:test"
6+
]
7+
}
8+
}

AGENTS.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,6 @@ Dart packages for building Node.js apps. Strongly Typed Dart layer over JS inter
77
⛔️ NEVER KILL (pkill) THE VSCODE PROCESS!!!
88
- Do not use Git unless asked by user
99

10-
## Multi-Agent Coordination (Too Many Cooks)
11-
- Keep your key! It's critical. Do not lose it!
12-
- Check messages regularly, lock files before editing, unlock after
13-
- Don't edit locked files; signal intent via plans and messages
14-
1510
**Language & Types**
1611
- All Dart, minimal JS. Use `dart:js_interop` (not deprecated `dart:js_util`/`package:js`)
1712
- AVOID `JSObject`/`JSAny`/`dynamic`!
@@ -72,6 +67,5 @@ examples/
7267
backend/ # Express server example
7368
frontend/ # React web example
7469
mobile/ # React Native example
75-
too_many_cooks/ # Multi-agent coordination server
7670
jsx_demo/ # JSX syntax demo
7771
```

CLAUDE.md

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,11 @@ Dart packages for building Node.js apps. Strongly Typed Dart layer over JS inter
77
⛔️ NEVER KILL (pkill) THE VSCODE PROCESS!!!
88
- Do not use Git unless asked by user
99

10-
## Multi-Agent Coordination (Too Many Cooks)
11-
- Keep your key! It's critical. Do not lose it!
12-
- Check messages regularly, lock files before editing, unlock after
13-
- Don't edit locked files; signal intent via plans and messages
14-
1510
**Language & Types**
1611
- All Dart, minimal JS. Use `dart:js_interop` (not deprecated `dart:js_util`/`package:js`)
1712
- AVOID `JSObject`/`JSAny`/`dynamic`!
1813
- Prefer typedef records over classes for data (structural typing)
14+
- Literals are illegal. Move all literals to named constants
1915
- ILLEGAL: `as`, `late`, `!`, `.then()`, global state
2016

2117
**Architecture**
@@ -24,6 +20,7 @@ Dart packages for building Node.js apps. Strongly Typed Dart layer over JS inter
2420
- Functions < 20 lines, files < 500 LOC
2521
- Switch expressions/ternaries over if/else (except in declarative contexts)
2622
- Where Typescript code exists with no Dart wrapper, create the Dart wrapper APIs and add to the appropriate packages.
23+
- Keep all app state in one place. No global state
2724

2825
**Testing**
2926
- 100% coverage with high-level integration tests, not unit tests/mocks
@@ -72,6 +69,5 @@ examples/
7269
backend/ # Express server example
7370
frontend/ # React web example
7471
mobile/ # React Native example
75-
too_many_cooks/ # Multi-agent coordination server
7672
jsx_demo/ # JSX syntax demo
7773
```

0 commit comments

Comments
 (0)