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.

in development · 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 watches what is moving across our repos — throughput, cycle time, ci health, stale items — without opening five tabs.

next.jsreacttypescriptechartstailwindzustand
signal_house/freshness.py~/projects
def freshness(panel: Panel) -> Status:
    age = now() - panel.last_polled
    if age > STALE_AFTER:
        return Status.UNKNOWN       # not "fine"
    if panel.source_missing:
        return Status.UNKNOWN       # not "fine"
    return Status.OK