harness-go — an autonomous multi-agent coding pipeline that actually ships.
Proctor plans. Coders implement in isolated git-worktree generations. Reviewers score and reject. The pipeline maintains opinionated memory across sessions and hot-reloads policy without dropping in-flight work.
01 · Thesis
Most “AI coding” tools are single-shot assistants dressed up as agents. harness-go is the opposite bet: a long-running pipeline where planning, implementation, and review are separate roles with separate memories and separate failure modes. The pipeline can reject its own output, regenerate, and learn across sessions. That's the only way this ever becomes production-grade.
02 · Architecture
Three agent roles — Proctor, Coder, Reviewer — communicate over NATS JetStream. Each generation N produces 3–5 candidate implementations in isolated git worktrees, scored and either merged or rejected. Rejection feeds back into the Proctor with structured rationale, not a vibes retry.
Why NATS JetStream
We need durable, ordered, replayable work queues with consumer-group semantics and exactly-once delivery when we ack. JetStream gives us that without the operational weight of Kafka, and the ack-nak semantics map cleanly onto “generation produced valid candidate / needs regeneration.”
03 · Memory model
Two stores, one purpose:
BadgerDB— key-value, LSM-backed, for structured episodic memory: run artifacts, decision trees, per-agent scratchpads.Bleve— full-text, for semantic recall across sessions: “have we tried this refactor before? what happened?”
Both are embedded — no external dependency, no network, and a single Go binary ships the entire harness. This matters for local-model evaluation where we're running on one box.
04 · Hot-reload policy via atomic pointer swap
Policy (scoring weights, reviewer thresholds, tool allow-lists) is a struct behind an atomic.Pointer. Updates build a new policy graph, validate it, then swap the pointer during a safe compaction window. In-flight work holds references to the old policy until it completes; new work reads the new policy. No drain, no stop-the-world.
05 · Evaluation harness
We benchmark harness-go against a fixed 60-task suite (bug fixes, small features, refactors, test authoring) across frontier models and the local weights we run in-house. Local models run on 128GB Strix Halo via Vulkan — gfx1151 has a ROCm hang on this generation, so Vulkan is the compatibility path.
Public results and methodology live on me.nerds.run; numbers refresh monthly.
06 · Takeaway
Three things came out of building harness-go that are reshaping every client engagement we take on: (1) agent pipelines must be able to reject their own output or they're just slower autocompletes; (2) cross-session memory is underrated and underbuilt; (3) local models on serious hardware are now competitive for a surprising chunk of real coding work, and organizations with regulated data should be watching.
Tell us what you're trying to ship —
we'll tell you what it looks like to get there.
We take one or two new engagements per quarter. No published pricing — every engagement is scope- and duration-dependent, so pricing is a conversation. Bring the problem. We'll bring the questions.