PR #204/#205/#207 — Local Agent: oMLX Driver, Capability Seeding, and Real-Hardware Tests
The Broader Goal at the End of the Previous PR
BS-8 had already shipped the Business Goal hierarchy, and GOVERNS was in the middle of rolling out the seven-stage vocabulary that sits above it. The next open thread was not another abstraction layer; it was practical dogfooding: prove that synlynk could route real implementation work to a zero-cost local agent without breaking the existing capability-to-quota-to-cost pipeline.
Strategic Shifts in This PR
The main pivot happened before code was written. Ornith was initially assumed to be
GGUF-only, which would have pointed the local-agent dispatch story toward llama.cpp.
During the brainstorm and spec pass, that assumption turned out to be wrong: the model
has MLX conversions, so the recommendation changed mid-brainstorm from llama.cpp to
oMLX. That mattered because it kept the feature inside the existing OpenAI-compatible
agent-subprocess model instead of inventing a new driver path.
What This PR Shipped
Task Group 1: driver wiring
PR #204 wired local as an Aider subprocess over oMLX. The implementation keeps the
existing dispatch architecture intact: _preflight_local() checks the oMLX endpoint,
AGENT_CAPABILITY_BASELINES["local"] uses the same shape as the other agents, and the
job still runs as a normal CLI subprocess inside the worktree.
Task Group 2: capability seeding and concurrency guard
PR #205 added the narrow starter envelope. synlynk local doctor seeds moderate
capability scores for the granular coordinates the spec called out first, so the local
agent shows up for docs/testing execute-stage work before it has earned broader trust.
The same PR also introduced the local_concurrency guard so in-flight local jobs are
bounded by hardware, not by a spend cap.
Task Group 3: two-tier tests
PR #207 added the test split the spec called for. The standard CI path stays mocked and
portable, while the opt-in @pytest.mark.local_hardware tier exercises a real
omlx serve instance with a live roster. That keeps the PR gate deterministic while
still leaving room for real inference validation on Apple Silicon or a later hosted
runner.
The design and implementation were tracked against
docs/superpowers/specs/2026-07-12-local-agent-mlx-driver-design.md. No separate
brainstorm visuals were used for this feature; the decision trail lived in the spec and
plan text.
What This Achieved on the Path to Autonomy
This is the first route in synlynk that can route low-risk implementation work to a
zero-marginal-cost local model while still preserving the same dispatch, capability, and
verification contract used for paid agents. The important part is not just that local
exists, but that it was added without a parallel taxon or a bespoke driver stack.
Strategic Note: The Goal at the End of This PR
The next thing to watch is real local-agent job completions. Once those arrive, we can
decide whether the starter whitelist should widen, and whether a second Linux/Windows
driver path should be added for non-Apple-Silicon environments. Until then, local
should stay narrow, cheap, and observable.