Files

1.6 KiB

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.shIMAGE=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.