# caoshiyi/eat architecture

> Architecture diagram of the GitHub repository caoshiyi/eat, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/caoshiyi/eat
- Repository: https://github.com/caoshiyi/eat

## Overview

EAT is a Claude Code plugin for running evolving teams of coding agents against a user’s task. The documented loop is: Claude Code helps prepare the task and evaluation, launches a run, and a supervisor diagnoses stalled iterations from transcripts and rebuilds the team. The tree also includes clean-room isolation and run-verification/curve utilities. The README supports the main workflow; sampled source supports the proxy and utility behavior. Launch-script internals and other unsampled wiring are not asserted.

Main entry points: [`agent_team/SUPERVISOR.md`](https://github.com/caoshiyi/eat/blob/main/agent_team/SUPERVISOR.md) (Supervisor), [`SKILL.md`](https://github.com/caoshiyi/eat/blob/main/SKILL.md) (EAT skill), [`cleanroom/allowlist_proxy.py`](https://github.com/caoshiyi/eat/blob/main/cleanroom/allowlist_proxy.py) (Allowlist proxy), [`cleanroom/tcp2unix.py`](https://github.com/caoshiyi/eat/blob/main/cleanroom/tcp2unix.py) (TCP-to-Unix bridge)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_orchestration["Agent orchestration"]
  node_eat_skill["EAT skill<br/>[SKILL.md]"]
  node_supervisor["Supervisor<br/>[SUPERVISOR.md]"]
  node_team_config["Team config parser"]
  node_team_launcher["Team launcher<br/>[launch_team.sh]"]
  node_stateless_launcher["Stateless launcher"]
  node_result_extractor["Result extractor<br/>[extract_result.py]"]
end

subgraph group_isolation["Clean-room controls"]
  node_sandbox["Run sandbox<br/>[sandbox.sh]"]
  node_proxy["Allowlist proxy<br/>[allowlist_proxy.py]"]
  node_tcp_bridge["TCP-to-Unix bridge<br/>[tcp2unix.py]"]
  node_trace_audit["Trace audit"]
  node_overlap_audit["Code overlap audit"]
end

subgraph group_run_data["Run operations"]
  node_task_fetcher["Task fetcher<br/>[fetch_task.sh]"]
  node_gpu_runner["GPU runner"]
  node_iteration_verifier["Iteration verifier<br/>[verify_iter.py]"]
  node_curve_exporter["Curve exporter<br/>[curve_data.py]"]
end

node_user(("User"))
node_claude_code["Claude Code"]
node_anthropic_api["Anthropic / Claude API"]

node_user -->|"requests run"| node_claude_code
node_claude_code -->|"invokes skill"| node_eat_skill
node_eat_skill -->|"starts workflow"| node_supervisor
node_supervisor -->|"launches team"| node_team_launcher
node_supervisor -->|"diagnoses and rebuilds"| node_supervisor
node_proxy -->|"forwards allowed traffic"| node_anthropic_api
node_tcp_bridge -->|"bridges socket"| node_proxy

click node_eat_skill "https://github.com/caoshiyi/eat/blob/main/SKILL.md"
click node_supervisor "https://github.com/caoshiyi/eat/blob/main/agent_team/SUPERVISOR.md"
click node_team_config "https://github.com/caoshiyi/eat/blob/main/agent_team/parse_team_config.py"
click node_team_launcher "https://github.com/caoshiyi/eat/blob/main/agent_team/launch_team.sh"
click node_stateless_launcher "https://github.com/caoshiyi/eat/blob/main/agent_team/launch_stateless.sh"
click node_result_extractor "https://github.com/caoshiyi/eat/blob/main/agent_team/extract_result.py"
click node_sandbox "https://github.com/caoshiyi/eat/blob/main/cleanroom/sandbox.sh"
click node_proxy "https://github.com/caoshiyi/eat/blob/main/cleanroom/allowlist_proxy.py"
click node_tcp_bridge "https://github.com/caoshiyi/eat/blob/main/cleanroom/tcp2unix.py"
click node_trace_audit "https://github.com/caoshiyi/eat/blob/main/cleanroom/audit_clean_traces.py"
click node_overlap_audit "https://github.com/caoshiyi/eat/blob/main/cleanroom/audit_code_overlap.py"
click node_task_fetcher "https://github.com/caoshiyi/eat/blob/main/ops/fetch_task.sh"
click node_gpu_runner "https://github.com/caoshiyi/eat/blob/main/ops/gpu_run"
click node_iteration_verifier "https://github.com/caoshiyi/eat/blob/main/ops/verify_iter.py"
click node_curve_exporter "https://github.com/caoshiyi/eat/blob/main/ops/curve_data.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_eat_skill,node_supervisor,node_team_config,node_team_launcher,node_stateless_launcher,node_result_extractor,node_user toneBlue
class node_sandbox,node_proxy,node_tcp_bridge,node_trace_audit,node_overlap_audit toneAmber
class node_task_fetcher,node_gpu_runner,node_iteration_verifier,node_curve_exporter,node_anthropic_api toneMint
class node_claude_code toneIndigo
```

## Components

### Agent orchestration

- [EAT skill](https://github.com/caoshiyi/eat/blob/main/SKILL.md): `SKILL.md`
- [Supervisor](https://github.com/caoshiyi/eat/blob/main/agent_team/SUPERVISOR.md): `agent_team/SUPERVISOR.md`
- [Team config parser](https://github.com/caoshiyi/eat/blob/main/agent_team/parse_team_config.py): `agent_team/parse_team_config.py`
- [Team launcher](https://github.com/caoshiyi/eat/blob/main/agent_team/launch_team.sh): `agent_team/launch_team.sh`
- [Stateless launcher](https://github.com/caoshiyi/eat/blob/main/agent_team/launch_stateless.sh): `agent_team/launch_stateless.sh`
- [Result extractor](https://github.com/caoshiyi/eat/blob/main/agent_team/extract_result.py): `agent_team/extract_result.py`

### Clean-room controls

- [Run sandbox](https://github.com/caoshiyi/eat/blob/main/cleanroom/sandbox.sh): `cleanroom/sandbox.sh`
- [Allowlist proxy](https://github.com/caoshiyi/eat/blob/main/cleanroom/allowlist_proxy.py): `cleanroom/allowlist_proxy.py`
- [TCP-to-Unix bridge](https://github.com/caoshiyi/eat/blob/main/cleanroom/tcp2unix.py): `cleanroom/tcp2unix.py`
- [Trace audit](https://github.com/caoshiyi/eat/blob/main/cleanroom/audit_clean_traces.py): `cleanroom/audit_clean_traces.py`
- [Code overlap audit](https://github.com/caoshiyi/eat/blob/main/cleanroom/audit_code_overlap.py): `cleanroom/audit_code_overlap.py`

### Run operations

- [Task fetcher](https://github.com/caoshiyi/eat/blob/main/ops/fetch_task.sh): `ops/fetch_task.sh`
- [GPU runner](https://github.com/caoshiyi/eat/blob/main/ops/gpu_run): `ops/gpu_run`
- [Iteration verifier](https://github.com/caoshiyi/eat/blob/main/ops/verify_iter.py): `ops/verify_iter.py`
- [Curve exporter](https://github.com/caoshiyi/eat/blob/main/ops/curve_data.py): `ops/curve_data.py`

### Other components

- **User**
- **Claude Code**
- **Anthropic / Claude API**

## Connections

- User → Claude Code: requests run (evidence: `README.md`)
- Claude Code → EAT skill: invokes skill (evidence: `README.md`)
- EAT skill → Supervisor: starts workflow (evidence: `README.md`)
- Supervisor → Team launcher: launches team (evidence: `README.md`)
- Supervisor → Supervisor: diagnoses and rebuilds (evidence: `README.md`)
- Allowlist proxy → Anthropic / Claude API: forwards allowed traffic (evidence: `cleanroom/allowlist_proxy.py`)
- TCP-to-Unix bridge → Allowlist proxy: bridges socket (evidence: `cleanroom/allowlist_proxy.py`)
