Runbook

Phase 0 end-to-end run path

Operational checklist for reproducing the current local smoke and moving toward a real SimpleFold-100M run.

Local smoke command

ORCHESTRATOR_URL=http://localhost:8787 \
MCP_CITE_VERIFY_URL=http://localhost:8788 \
MCP_PDF_PARSE_URL=http://localhost:8789 \
MCP_STRUCTURE_PRED_URL=http://localhost:8790 \
MCP_PDB_FETCH_URL=http://localhost:8791 \
MCP_SCORING_URL=http://localhost:8792 \
RESULTS_DIR=./results \
PROMPTS_DIR=../agents \
bash pilot/run.sh \
  --doi 10.48550/arXiv.2509.18480 \
  --url https://arxiv.org/pdf/2509.18480 \
  --recipe-fixture ../fixtures/simplefold_smoke_recipe_v0.json \
  --dry-run

Operational sequence

  1. Start local Workers for orchestrator and MCP services on ports 8787-8792.
  2. Run the fixture smoke above.
  3. Inspect the output packet under pilot/local-runner/results/10.48550_arXiv.2509.18480/.
  4. Inspect audit via /paper-audit/10.48550%2FarXiv.2509.18480.
  5. Only after the fixture path is healthy, start the M3 Max server and run without --dry-run.

Cloudflare deployment role

Local Workers prove the runtime shape. Deployed Workers make the same shape public, stable, and inspectable under project routes. The M3 Max stays private behind Cloudflare Tunnel.

No-fixture Reader fallback

When Claude Code access is blocked, the local runner can use a command adapter for the Reader without weakening the Recipe schema.

READER_ADAPTER=command \
READER_COMMAND='node scripts/codex-agent.mjs' \
CODEX_AGENT_FLAGS='--full-auto' \
OPENAI_API_KEY=... \
bun run pilot \
  --doi 10.48550/arXiv.2509.18480 \
  --url https://arxiv.org/pdf/2509.18480 \
  --model simplefold-100m

The adapter receives the Reader system prompt and user JSON on stdin, prints one Recipe JSON object, and the runner still writes reader_raw.txt, recipe.json, and audit records.

Full source runbook

The complete operator manual lives in docs/13_e2e_runbook.md.