skip to content

case studies

shipped, scoped, and one decision i’m proud of each.

two projects. not three, not “many.” fewer means each one gets the case study it deserves.

wip · 2026

caduceus

label an issue. wake an agent. get a pull request.

a self-hosted rust daemon + hermes plugin. polls github for labeled issues, hands each one to a configurable ai harness in an isolated worktree, and finalizes the result as a branch + push + pr.

rusttokiogithub rest + webhookshermes pluginisolated git worktreesposix flock
$ caduceus run --issue 42 --worker opencode~/projects
[caduceus] claim acquired        issue #42
[caduceus] worktree              /var/lib/caduceus/work/42
[caduceus] worker started        opencode  (pid 8741)
[caduceus] heartbeat             ok (12s)
[caduceus] worker exit 0         1 file changed, 24 insertions(+), 7 deletions(-)
[caduceus] branch pushed         refs/heads/caduceus/issue-42
[caduceus] pr opened             https://github.com/barkley-assistant/caduceus/pull/87
[caduceus] worktree cleaned      ok
[caduceus] state                 idle

live · 2026

signal house

engineering health, in one quiet dashboard.

a self-hosted dashboard that reads github, local git, and the agent session databases, and tells you whether work is actually moving — without opening five tabs.

bunreacttypescriptechartszustandbun:sqlite
src/shared/math.ts~/projects
export function sum(values: ReadonlyArray<number | null>): number | null {
  let acc = 0;
  let seen = false;
  for (const v of values) {
    if (v !== null && Number.isFinite(v)) {
      acc += v;
      seen = true;
    }
  }
  return seen ? acc : null;   // unknown stays unknown
}