de-novo skills
An open-source skill catalog for agent-driven development. Two skills, Grove and Dryad, let several workers build and verify on one machine without cloning the stack.
Problem
Several agents on one machine each want a stack of their own. Cloned stacks collide on ports, drift from the baseline, and nobody can say which services are up.
Approach
Grove gives one machine shared local ground.
One engine set runs per machine; projects are isolated by database name and key prefix, not by ports.
Services answer to hostnames instead of ports.
One machine runs one engine set, db and cache, and one app baseline, api and web. Three project trees, acme, beta and core, draw from that ground and answer to hostnames such as api.acme.localhost and web.acme.localhost.
A thin overlay attaches only the services a worker changed and leaves everything else on the baseline.
A thin overlay for seat w1 sits on the app baseline and replaces api only, reachable at api--w1.acme.localhost. web falls through to the baseline at web.acme.localhost. The engine set is untouched.
Success is counted, engines n/n and invariants n/n, and readiness is observed before anything is called attached.
Dryad puts one seat per worker on that ground.
A seat is a Git worktree, an overlay env, and a task.
Dryad launches no agent: Claude Code, Codex, Cursor, a terminal, or a worktree app all work as launchers.
Workers report their own completion.
The human hands a seat to any launcher: Claude Code, Codex, Cursor or a terminal. Three seats, w1, w2 and w3, each hold a worktree, an env and a task on the shared ground. A status row counts seats 3, worktrees 3 of 3, envs 3 of 3, done n.
Finish clears the seat and keeps the branch.
A terminal transcript. dryad plan w1 with a task and --apply answers: seat w1, worktree 1 of 1 created, env 1 of 1. The seat is handed to Claude Code with eval of dryad seat w1 --shell. dryad status counts seats 2, worktrees 2 of 2 present, envs 2 of 2 tracked with 1 in-flight, reported working 1 and done 1, then lists w1 done by claude and w2 working by codex. dryad finish w1 --apply answers: env 1 of 1 destroyed, branch kept dryad/w1.
Grove × Dryad / Before & after
One machine · Three workersThree stacks.
Worker / w1
4 services
:3000
Worker / w2
4 services
:3000
Worker / w3
4 services
:3000
Port collisions. Baseline drift. Service status unknown.
- seats
- —
- worktrees
- —
- envs
- —
- done
- ?
Outcome
- 0
- 1
- 2
- 5