# Step 3: runtime-cache-policy ## Read First - /AGENTS.md - /PLAN.md - /PROGRESS.md - /docs/HARNESS.md - /docs/IMPLEMENTATION_PLAN.md - /docs/TOOLCHAIN.md - /docs/CONVERSION_POLICY.md - /phases/1-core-runtime-contracts/step1.md - /phases/1-core-runtime-contracts/step2.md ## Task Establish model cache, log path, and resume state policy as typed contracts and documented path helpers. The result should prepare later CLI/runtime phases to use local model cache paths and offline-preferred model loading. ## Sprint Contract - Done means: model cache and runtime cache path contracts are tested and documented without downloading models. - Hard thresholds: no network download is triggered; logs/state remain outside generated Markdown content; environment variable overrides are deterministic. - Files owned: `src/pdftomd/`, `tests/`, `docs/TOOLCHAIN.md`, `PROGRESS.md`, `phases/1-core-runtime-contracts/index.json`. - Dependencies: Steps 1 and 2. ## Acceptance Criteria ```powershell python scripts\validate_workspace.py .\venv\python.exe -m pytest tests ``` ## Verification 1. Run the acceptance commands. 2. Confirm `docs/TOOLCHAIN.md` stays consistent with any cache path decisions. 3. Update `PROGRESS.md` and this phase index. ## Do Not - Do not download Marker or Nougat weights. - Do not add hosted storage or cloud cache behavior. - Do not write warnings into Markdown output.