One file, _config/models.env, now names the model for every unattended job in four slots. Reading it tells you what each class of job costs; editing one line changes a whole class at once — which is exactly what D2-A on the 10-4 Weekly Review proposes.
Until 9-28 the model name lived inside each wrapper script (${PDB_MODEL:-fable}) and the 9-27 weekly asked you to flip three of them by hand. Audit session 6 moved them into one shared file. The work slot still runs Sonnet 4.6 at $3 in / $15 out per million tokens; Sonnet 5.5 shipped 9-28 at $2 / $10. The decision is one line.
A shared env file is a list of KEY=value lines. The shell wrappers read it with `set -a; . models.env; set +a` (every line becomes an environment variable for the job). Python reads the same file through JARBUS/scripts/models.py, whose model(name) function resolves in a fixed order: an environment variable of that name wins, then the file, then a built-in default. That order is the whole lesson — a stray exported variable silently beats the file.
Four slots and who uses them. CLAUDE_NIGHTLY_MODEL (claude-opus-5-5): the JobHunt nightly content leg and the pursuit builds. CLAUDE_JOB_MODEL (fable): plan-day and this weekly review. CLAUDE_WORK_MODEL (claude-sonnet-4-6): the standards-checker that gates every paper doc, media digest, build dispatch and the media garden. CLAUDE_FAST_MODEL (claude-haiku-4-5): narrative, rubric fills and context packs. CLAUDE_FALLBACK_MODELS (sonnet,haiku) is the chain claude --fallback-model walks when the primary is capped.
The same precedence gives you a free trial switch. A one-run override such as `PDB_MODEL=claude-opus-5-5 bash run_plan_day.sh` tests a model without touching the file; the standards-checker also honors STANDARDS_CHECKER_MODEL. Sonnet 5.5 differs from 5 in two ways that could break a caller — thinking cannot be switched off and forced tool choice is rejected — and the JARBUS client sets neither (checked 10-4), so the work-slot switch is a rename.
Read the file, resolve every slot the way the code does, then prove an override wins without editing anything.
cat /Users/tom/Claude/_config/models.env
cd /Users/tom/Claude/JARBUS/scripts && python3 -c "
from models import model
for k in ('CLAUDE_NIGHTLY_MODEL','CLAUDE_JOB_MODEL','CLAUDE_WORK_MODEL',
'CLAUDE_FAST_MODEL','CLAUDE_FALLBACK_MODELS'):
print(f'{k:24} {model(k)}')"
grep -rl CLAUDE_WORK_MODEL /Users/tom/Claude/JARBUS/scripts /Users/tom/Claude/PDB/scripts
CLAUDE_WORK_MODEL=claude-sonnet-5-5 python3 -c "
import sys; sys.path.insert(0,'/Users/tom/Claude/JARBUS/scripts')
from models import model; print(model('CLAUDE_WORK_MODEL'))"
Configuration you can read in one place is configuration you can reason about — one file, four slots, one line per decision.