Act one
You say it
No command syntax and no form. A voice note in the chat you already use, and the tools you already look at.
1Telegram
It starts as fourteen seconds of talking
You say what you want the way you would say it to a person. She transcribes it, reads it back so you can see what she heard, and tells you when she will start.
The intake pulls the voice file, a transcriber turns it into text, and the reply with the transcript is the check: if she heard it wrong you see it before anything moves.
2The envelope
Nothing is dropped before the daemon has it
The message becomes an envelope with a correlation id, a channel and a principal, and crosses a Unix socket to the daemon. The intake does not acknowledge until the daemon has journaled it, so a restart loses nothing.
A private socket on the box, readable by her alone. The id follows the work through the journal, the store and every reply, and any turn can be replayed from it later.
3Notion
It becomes a card, and the column is its state
The board is the queue β not a mirror of one. Every fifteen minutes she asks three questions in order: is anything blocked, is anything already in progress, is there something to start. A blocker wins; work in flight wins next. Then the card moves.
The tick is the daemon's heartbeat. A project without a board is skipped rather than failed, which is why the first thing an adopted repository gets is a card.
Start next1
Doing0
Done31
Act two
She works
The light goes out because this is where she lives: one terminal on a small box, and the terminals of the coding tools she hires by the turn. No API keys on the host β subscriptions only, which is a statement about who is in charge.
4Her terminal
The spec comes before the code
She reserves a number, then writes three documents in order: what is required, how it will be built, what the steps are. The reasoning is the artefact. The diff is a consequence of it.
One number sequence shared by every way a task can arrive; a reservation is a tag, not a branch, because branches are deleted on merge and five numbers once went missing that way. More than three hundred plans so far, each written before its code.
5The providers
A subscription CLI does the work, in a checkout of its own
Claude Code writes the change in an isolated worktree. Codex reads the spec and then the diff, and answers with a verdict. If one of them is down she falls back to the next in the row, and the row is a file a human edits.
A table a human edits names the provider, its fallback and the class of model for each kind of work; another lists every tool she can hire. Each turn is a checkout of its own, a budget and a twenty-minute timeout.
6GitHub
Pull requests only. Never a push to main.
Her first change for an adopted project is to her own registry: a row that says what the project is and where her pushes go. CI runs, and when it is green the merge is automatic. When it is not, she asks a human β she does not wait in silence.
The change this page describes, on her own repository. Merged automatically once the checks are green; held by a label when a human should look first. When the build service cannot start at all she says so once and offers to merge on your word.
Register altinity-mcp as an adopted, fork-authority project
- checkslint Β· tests Β· drift
- diagramsrendered on a runner
- screenshotsdesktop + phone
MergedSquash-merged automatically Β· branch deleted
7The throwaway box
When a project needs a machine, it gets one that dies
A spot instance with a time-to-live tag, a build, a smoke test, and a reaper that removes the box when the tag runs out. Nothing lives longer than its ticket, and nothing runs on the operator's own 2 GB.
This is the pipeline's design, and it waits on two permissions only Ivan can grant. It is shown because the flow has a place for it, not because this box ran. Her own deploy β a promote, a canary and a rollback β runs every two minutes for real.
Act three
You hear back
One line, in the channel that owns the work. Brief when healthy, blunt when not β and never silence, because a recovery nobody announces is indistinguishable from an outage nobody fixed.
8Slack
Told once, in the right place
What she did, what she could not do, and what she is waiting on. If she could not look, she says so: βI could not lookβ is a third answer, and it is not βfineβ.
Every turn is recoverable by its id. Replies degrade before they stop: at 100 % of the daily budget they still go out, with zero model calls behind them β the ladder is written down where a human can change it.
Sara APP10:31
Registered altinity-mcp as an adopted project β the change is merged. Pushes go to her fork; upstream stays with Altinity. No board yet, so she skips it until one exists.
9The project
A thing that exists
Not a description of a repository β a repository, with her fork as the place she pushes, a board when one is made, and the same rules every project she runs gets: PRs only, a budget, an owner, a priority.
The machinery that makes repositories refuses three things by construction: it cannot delete one, make one public, or add a member. One table, edited by a human, carries per project the merge policy, budget, autonomy, board, channels and provider. Adding a project is one row.
Sara-Agent / altinity-mcp Β· fork
A Model Context Protocol server for ClickHouse: tools for listing tables, describing schemas and running queries, over stdio, HTTP or SSE.