# Step 4: model-cache-offline ## Read First - /AGENTS.md - /PLAN.md - /PROGRESS.md - /docs/HARNESS.md - /docs/IMPLEMENTATION_PLAN.md - /docs/TOOLCHAIN.md - /docs/ARCHITECTURE.md - /phases/6-cli-runtime-resume/step3.md ## Task Document and wire model cache/offline behavior for Marker, Nougat, and Hugging Face cache paths. Add CLI/runtime hooks for environment variables or explicit cache paths without downloading models during tests. ## Sprint Contract - Done means: users can see how to pre-download models and run offline, and runtime cache paths are configurable. - Hard thresholds: no test performs network download; docs include Windows commands; cache path policy matches Phase 1. - Files owned: `src/pdftomd/runtime.py`, `README.md`, `docs/TOOLCHAIN.md`, tests, `PROGRESS.md`, phase index. - Dependencies: Device/runtime policy and cache contracts. ## Acceptance Criteria ```powershell python scripts\validate_workspace.py .\venv\python.exe -m pytest tests ``` ## Verification 1. Run the acceptance commands. 2. Confirm offline instructions are clear and do not imply bundled weights. 3. Update `PROGRESS.md` and this phase index. ## Do Not - Do not download model weights as part of tests. - Do not commit model caches. - Do not make online access mandatory for already-cached models.