# Step 1: conversion-options-config ## Read First - /AGENTS.md - /PLAN.md - /PROGRESS.md - /docs/HARNESS.md - /docs/IMPLEMENTATION_PLAN.md - /docs/ARCHITECTURE.md - /docs/ADR.md - /phases/1-core-runtime-contracts/step0.md ## Task Define the typed conversion options and runtime configuration used by CLI, library, parser adapters, renderer, and UI. Include runtime mode, device behavior, chunk target pages, formula parser mode, Nougat command path, output directory, model cache location, and resume/log options. ## Sprint Contract - Done means: conversion options have defaults matching project policy and can be constructed by tests without CLI parsing. - Hard thresholds: explicit `cuda` fail-fast semantics and `auto` fallback semantics are represented; Nougat remains formula-only; PyQt and hosted API options are not introduced. - Files owned: `src/pdftomd/`, `tests/`, `PROGRESS.md`, `phases/1-core-runtime-contracts/index.json`. - Dependencies: Step 0 normalized path/slug contract. ## Acceptance Criteria ```powershell python scripts\validate_workspace.py .\venv\python.exe -m pytest tests ``` ## Verification 1. Run the acceptance commands. 2. Confirm defaults align with `docs/ARCHITECTURE.md` and `docs/CONVERSION_POLICY.md`. 3. Update `PROGRESS.md` and this phase index. ## Do Not - Do not add command-line parsing yet. - Do not initialize CUDA, Marker, or Nougat. - Do not add external API settings.