Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
34 lines
1.6 KiB
Markdown
34 lines
1.6 KiB
Markdown
# Boardroom Map reviewer sandbox
|
|
|
|
This directory is the build context for the **reviewer image**, which runs on the
|
|
DGX Spark — it is *not* packed into the `.s9pk`. The orchestrator rsyncs this
|
|
folder to the head Spark and runs `build.sh` there (the Sparks are aarch64), or
|
|
you can build it by hand.
|
|
|
|
- `grader_agent.py` — a one-shot, read-only agent. It reads the documents
|
|
mounted at `/docs`, runs one local model (through the on-Spark proxy) under its
|
|
persona (`/persona/PERSONA.md`) and the shared rubric (`/RUBRIC.md`), and writes
|
|
a single report to `/out`. With `BM_ROLE=synthesizer` it instead reads the
|
|
panel's reports from `/reports` and writes `CONSOLIDATED_REPORT.md`.
|
|
- `reviewer.Dockerfile` — lean pure-Python image (stdlib only).
|
|
- `build.sh` — `IMAGE=boardroom-grader:latest bash build.sh`.
|
|
|
|
## How it is launched (by the orchestrator)
|
|
|
|
Hardened and, in air-gapped mode, network-isolated:
|
|
|
|
```
|
|
docker run -d --name bm-grader-<id> \
|
|
--network boardroom-net \ # --internal in air-gapped mode
|
|
--user 1000:1000 --security-opt no-new-privileges --cap-drop ALL \
|
|
--read-only --tmpfs /tmp --tmpfs /home/rev --pids-limit 256 --memory 6g --cpus 4 \
|
|
-e BM_MODEL=<alias> -e BM_LLM_BASE=http://boardroom-proxy:4000/v1 ... \
|
|
-v <job>/docs:/docs:ro -v <job>/out:/out \
|
|
-v <job>/personas/<id>.md:/persona/PERSONA.md:ro -v <job>/RUBRIC.md:/RUBRIC.md:ro \
|
|
boardroom-grader:latest
|
|
```
|
|
|
|
The container can reach **only** the model proxy in air-gapped mode; it holds no
|
|
credentials beyond a dummy proxy key and cannot touch the host or the documents'
|
|
originals.
|