Work / de-novo skills

Current section: Summary

Work / 2026 / de-novo skills

de-novo skills

Year
2026
Role
Design · Engineering · Open source

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.

FIG. 02 — Grove: one machine, one shared ground, names instead of ports.

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.

FIG. 03 — Overlay: only the changed service; the rest falls through.

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.

FIG. 04 — Dryad: one seat per worker, counted, handed to any launcher.

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.

FIG. 05 — Dryad at the prompt: plan, hand off, count, finish.

Grove × Dryad / Before & after

One machine · Three workers

Three stacks.

00 / 03
After

Drag to fold · Arrow keys to step · Before

Worker / w1

whole-stack clone

private stack

4 services

baseline ≠ clone

:3000

Worker / w2

whole-stack clone

private stack

4 services

baseline ≠ clone

:3000

Worker / w3

whole-stack clone

private stack

4 services

baseline ≠ clone

:3000

api + web ≠ baselineapi + web ≠ baselineapi + web ≠ baseline
db + cache private enginesdb + cache private enginesdb + cache private engines
3000 vs 3000 vs 3000

Port collisions. Baseline drift. Service status unknown.

seats
—
worktrees
—
envs
—
done
?

Illustrative status · n = reported completions

Outcome

  • 0ports to remember
  • 1engine set per machine
  • 2skills
  • 5seat verbs

Tags

  • [ Open source ]
  • [ Developer tooling ]
  • [ CLI ]
  • [ Local environments ]

← Selected work

P. — / —