Repository navigation
v0.7.0
-
The factory loop, installed in one command.
herdr-docket init --factory
writes all six personas into an existing fleet — never overwriting one you
already have — and appends the four schedules that drive the loop to the
automations plugin's config when it is present, pointingrepo:at the
fleet it was installed into. The three that read the queue (intake,
stall,lookback) are pointed at the fleet and run; the three that work a
repo (pm,dev,reviewer) land paused on a placeholder workdir, because
every stage the loop names has to exist — intake and lookback file topm,
the reviewer takes the dev's handoff — and none of them may run against a
repo you did not choose. Edit the workdir,herdr-docket agent resume, and
drop thedisabled: truethereview-sweepentry ships with. Without the
automations plugin the personas still land and the output says they await
schedules. The fleet's ownfleet.yamlis not touched. -
The loop is written down:
docs/factory.mdis the wiring — the cron
entries, the dials it leans on, and the refusals (the fleet never merges;
agents do, under a policy paragraph in the reviewer's persona). The loop's
three new personas join the worked examples, and the dev and reviewer
personas gain what makes their stage real: the dev babysits its PR to
green, the reviewer's merge policy decides what ships unattended. -
A run's delivery is read, not believed. A worktree-mode run's history
records the branch it was provisioned on, how many commits that branch
gained, and the pull request it shipped as — reported through the new
herdr-docket task done|fail|block --pr <url>— soherdr-docket history
answers what did this run produce without reading prose on a task. A
root-mode run claims no branch, because it has none to vouch for. -
A worktree that still holds uncommitted changes is not torn down. When a
disposable worktree endsdonewith changes nobody committed, the fleet
keeps the workspace, says so on the task, records the fact on the run, and
moves the task to the human-decides column — the agent's report and the
worktree's state disagree, and the board now says which it found. A delivery
that cannot be read is kept and called unverified; blindness is not evidence. -
A reported verdict is no longer recorded as silence. A run whose agent
judged the ticket and closed it — a reviewer refusing to merge a migration,
say — was filed with the same sentence as an agent that closed nothing:
the agent settled without reporting a verdict. On a fleet whose config
pointsfailedandblockedat one column, that was every correct refusal.
The run still ends failed, because the task did; the record now says whether
anybody needs to go and look at the agent. -
A budget counts runs, not log lines. Attaching a pull request to a run
that had already closed appended a second closing record for it, and the
budget charged both — an agent that had run four times read as5/4and was
parked with spend left. The window now collapses per run, the way the run
list always has. The line also says the window it measures:4/6 runs in 24h,
because the window is a rolling day and never reset at midnight. -
A persona that does not load is named on the board.
agent listprinted
it and the daemon logged it; the pane dropped it, so the agent vanished from
the roster and its work drew asghost?— telling you to fix an assignee
when the fault was a file you had just edited. The roster now names the file
and the reason, and the agent column saysbrokenrather thanghost?. -
The board refreshes in one pass over the history. It read a record per
row, so a refresh walked the whole log once per task — 1.4s every five
seconds on a fleet of 80 tasks, on a file the plugin never truncates. Now
30ms, and it grows with the log rather than with the log times the board. -
greaches the roster from the task detail, which is what the line under
it always said; it went to the board instead. -
An agent in root mode is told the checkout is not its workspace. The
reviewerandpmpersonas run in the project checkout because the tasks
they file are files in it; nothing said the rest of that checkout belongs to
a human. Found on a live fleet as a four-day-oldreviewer-stashholding
thirty task files — an agent had stashed a working tree to get a clean one
for its own testing and never popped it. Both personas now refuse git in the
root checkout and build their own throwaway worktree instead.