# Context: BooCode Glossary of the domain language. Terms only — no implementation detail. ## Workspace - **Pane** — one tile in the multi-pane workspace. Each pane has a *kind*: Chat (BooChat), Coder (BooCoder), Terminal (BooTerm), Orchestrator, Arena, plus artifact/settings kinds. - **Backend** — an AI engine a task is dispatched to: *native* (BooChat inference on a local llama-swap model) or an *external* CLI agent (Claude Code, OpenCode, Qwen, Goose). Code sometimes calls this the "agent" (`tasks.agent`). - **BooChat Agent** (a.k.a. *persona*) — a preset from the `data/AGENTS.md` registry (e.g. "Code Reviewer", "Debugger"): a system prompt + tool whitelist + sampling knobs that runs **on the native backend** with a chosen model. Distinct from a Backend — this is the overloaded sense of "agent" the UI's Agent picker selects. ## Arena A way to run the **same prompt** against several AI competitors at once and pick the best result. - **Battle** — one Arena run. Dated. Produces a results folder at `//Arena//`. (The earlier API-only feature called this an "arena"; a Battle is one such run.) - **Battle Type** — what is being compared: - *Coding* — Contestants change code; a result is the **diff** they produced (plus their explanation). Each Contestant works in its own worktree. - *Q&A* — Contestants answer a prompt; a result is the **text answer**. No code changes. - **Contestant** — one competitor in a Battle, given the Battle's prompt. What defines a Contestant depends on Battle Type: - *Coding* — a **Backend + Model** (e.g. Claude Code + opus, native BooCode + 35b). Each works in its own isolated git **worktree** (a branched on-disk copy of the project). Contestants do not see each other's work. - *Q&A* — a **BooChat Agent (persona) + Model** (e.g. Debugger + 35b), running on the native backend only. No worktree (no code changes). The same model can appear under two Contestants, so a Contestant's identity is the (backend-or-persona, model) pair, not the model alone. - **Benchmark** — per-Contestant performance captured during a Battle. Wall-clock **duration** is recorded for every Contestant; **throughput** (tokens/sec) is recorded only for local (llama-swap) models, which are the ones the speed comparison is meaningful for. - **Arena results folder** (`//Arena//`) — where a Battle's *results* are written (not the working copies — those stay in each Contestant's worktree). Holds the per-Contestant result and the final analysis. - **Lane** — how a Battle's Contestants are scheduled. The *local lane* holds every llama-swap-backed Contestant and runs them strictly one at a time (the local server can only load one model at a time, which also keeps their speed Benchmark fair). The *cloud lane* holds cloud-backed Contestants (Claude Code, OpenCode-on-cloud) and runs them all in parallel. The two lanes run concurrently with each other. - **Analysis** — an end-of-Battle judgement of the Contestants' results, produced by the default BooChat model, naming a **Winner**. - **Cross-examination** — an after-the-Battle step where a chosen model (from any agent) is pointed at the Battle's results to interrogate / compare them.