docs: extend harness boundary decision to cover Crush as third harness
CI / Lint / Test / Vet (push) Successful in 12s
CI / Mirror to GitHub (push) Successful in 4s

This commit is contained in:
mathias
2026-05-28 11:38:36 +00:00
parent 2beaac2feb
commit 2125558196
+21 -14
View File
@@ -4,24 +4,31 @@ Record *why* things are the way they are. Future-you will thank present-you.
---
## 2026-05-28 — hyperguild and agentsquad are separate harnesses, not competing implementations
## 2026-05-28 — three active harnesses: hyperguild, agentsquad, Crush (extends earlier boundary decision)
**Context:** After a grill-me architecture review, the question arose whether `hyperguild`
and `agentsquad` should be consolidated — they both involve agent orchestration and both
use LiteLLM routing.
**Context:** After wiring Crush to LiteLLM in May 2026, there are now three active harnesses.
The earlier boundary decision only covered hyperguild vs agentsquad. Crush's role was undefined.
**Decision:** Keep separate. Different harnesses targeting different orchestration models.
**Decision:** Three harnesses, three distinct roles, shared skills layer.
- **hyperguild** = Claude Code + MCP. Supervisor pattern. Skills as SKILL.md files invoked
inside Claude Code sessions. Routing pod routes skill calls to local models. Brain MCP
for knowledge accumulation. Target: disciplined solo coding sessions.
- **agentsquad** = OpenCode + LiteLLM. Flat peer-to-peer executor/reviewer agents.
Per-agent model routing via piguard virtual model names, risk-tiered approval middleware.
Target: multi-agent task execution pipelines.
| Harness | Engine | Primary use | Brain MCP? | Routing pod? | Skills? |
|---------|--------|-------------|------------|--------------|---------|
| **hyperguild** | Claude Code + MCP | Disciplined solo coding sessions, TDD/review/debug workflows | Yes | Yes | Yes (SKILL.md) |
| **agentsquad** | OpenCode + LiteLLM | Multi-agent task execution, executor/reviewer pipelines | No | No (own routing) | Yes (SKILL.md) |
| **Crush** | Charmbracelet TUI + LiteLLM | Interactive local coding, quick iterations on flamingo | No (not yet) | No (direct LiteLLM) | Yes (SKILL.md) |
Skills (`mathias/skills`) are shared — both harnesses consume the same SKILL.md files.
**Crush specifics (as of 2026-05-28):**
- Config: `~/.config/crush/crush.json` on flamingo (see brain: `homelab/facts/crush-litellm-wiring-2026-05`)
- Connects directly to LiteLLM at `http://koala:4000/v1/` using `sk-local-123`
- Auth type: `openai-compat` (not `openai`)
- Does NOT go through the routing pod — model selection is manual in the Crush UI
- Brain MCP not wired — Crush has no MCP client capability today; revisit if Crush adds MCP support
**Consequences:** No consolidation work. Both READMEs should state their harness explicitly.
**Shared across all three:**
- `mathias/skills` — any SKILL.md file works in all three harnesses
- LiteLLM proxy on koala (`http://koala:4000/v1/`) — Crush and agentsquad both route through it; hyperguild does too for local model calls
**Consequences:** No consolidation needed. crush.json must be kept in sync when litellm_config.yaml model names change. The `crush.json` canonical location is `~/.config/crush/crush.json` on flamingo — not yet tracked in a dotfiles repo (track as tech debt).
---
@@ -58,7 +65,7 @@ as the top priority. As of 2026-05-28, `internal/skills/review/handlers.go` call
Status of debug, retrospective, and trainer handlers is unverified.
**Decision:** Treat review as the reference implementation. Verify debug, retrospective,
trainer against the same pattern before shipping new skill work.
trainer against the same pattern before shipping new skill work. Tracked in issue #32.
**Consequences:** The April concern may be stale for review. A one-pass audit of the other
three skill handlers closes this fully.