millpond is designed, not built. Its design book holds the design whole.
How it fits
millpond sits between the tools that notice events and the tools that do
the work. Each tool stands alone, with its own Claude Code and herdr
plugins, and millpond is the inbox that joins them.
One loop, from what is noticed to what lands. Flywheel is the Method it belongs to.
1headwater and eddy notice events and print captures.
2millpond keeps them as an inbox: captures become signals, and curation joins signals into items.
3millpond sends each item down flume, which launches one agent in one worktree for it, and tidies the place once the work lands.
4An item is worked in its worktree or a planner's plan. A question goes to a sounding, whose conclusion comes back as new items.
5sluice tests the work as merged and lands it.
6The landed bump moves the pin, so headwater stops reporting that release.
Reports releases and advisories for what a repository declares. Its
adapter part, headwater capture, prints one capture per new
release. The release’s notes are its excerpt, and its signal asks for
a bump.
eddy · meetings
Lists recorded meetings across meeting services. A part per service
prints one capture per meeting, with the transcript as raw material
and no excerpt, so a reader turns it into signals.
sounding · one question
Works one question in one session, in a worktree of its own, and ends
on a conclusion you accept, send back for another round, or drop.
millpond sends it an item that asks a question, keeps the accepted
conclusion as the item’s record, and makes an item of each piece of
work it proposes. A finding beyond the question comes back as a
capture, keyed sounding/<name>/<n>.
sluice · landing
Tests a change as merged and lands it. The agent an item starts
submits through sluice, and millpond records the landing against the
item.
crew · teams and plans
Runs teams, plans and bolts, and calls millpond’s command line as it
calls sluice’s. Its curator works an inbox through millpond’s tools,
and its planner turns items into chores and units.
Flywheel · the umbrella
Built later on the same crates as millpond. It reads the same
inboxes with no import, and crew becomes Flywheel.
An adapter whose source needs no other tool ships inside millpond: the
folder drop, where any file in a watched folder is one capture, and the
import that carries existing signal folders in once. An adapter that
wraps another tool’s domain ships with that tool, so headwater’s and
eddy’s parts stay theirs and millpond runs them like anyone else’s.
Inbox: a git repository of your own.
Curates: a Claude session through millpond’s tools, and you
accept. Items go to one worktree each, landed by sluice, or a
question to a sounding.
With crew
Inbox: the partition’s flywheel branch in crew’s state
repository. Curates: crew’s curator through the same tools, and
the operator decides each item on crew’s rail. Items go to crew’s
planner, then a team, landed by sluice.
With Flywheel
Inbox: the instance’s state repository, the same files.
Curates: Flywheel’s curation session. Items go to Flywheel’s
units and bolts.
Moving from one setup to the next changes the host and the curator. The
adapters and the inbox stay where they are, so nothing is captured twice
and Flywheel imports nothing when it takes over.
It never judges what a capture says. A reader session reads a
capture into signals, and a curation session proposes moves. A model
runs in those two places and nowhere else.
It never plans across items. crew’s planner orders items across
teams today, and Flywheel’s does later.
It never works a question. A sounding does, and millpond keeps the
conclusion you accept.
It never knows a source. An adapter lists its source and keys its
events. millpond takes whatever lines it is handed, from any adapter.
It never lets raw material into git. A transcript stays on the
host behind a pointer.
millpond and Flywheel share their foundation, flywheel-next’s crates.
They hold the capture contract’s types and key rules, the signal, move
and item records, the built-in adapters, the five-field cron schedule
and the conformance pack, and both hosts take them. One conformance pack
proves every host and every adapter part. Raw banking, the checks on a
capture and the verbatim check on a reader’s excerpt are millpond’s, and
Flywheel takes them in turn.