diff --git a/DECISIONS.md b/DECISIONS.md index b360f25..9992ed9 100644 --- a/DECISIONS.md +++ b/DECISIONS.md @@ -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.