# Step 0: cli-entrypoint-options ## Read First - /AGENTS.md - /PLAN.md - /PROGRESS.md - /docs/HARNESS.md - /docs/IMPLEMENTATION_PLAN.md - /docs/ARCHITECTURE.md - /phases/1-core-runtime-contracts/index.json - /phases/5-markdown-rendering-assets/index.json ## Task Implement the `python -m pdftomd` CLI entrypoint and option parsing over the existing library API. Expose input PDF, output directory, formula parser mode, Nougat command, runtime/device, chunk size, logging, and resume options. ## Sprint Contract - Done means: CLI options map into typed conversion options and can run against a mocked pipeline in tests. - Hard thresholds: CLI does not duplicate conversion logic; defaults match docs; explicit `cuda` and `auto` modes are represented. - Files owned: `src/pdftomd/__main__.py`, CLI modules/tests, `README.md` if command docs change, `PROGRESS.md`, phase index. - Dependencies: Core contracts and renderer pipeline. ## Acceptance Criteria ```powershell python scripts\validate_workspace.py .\venv\python.exe -m pytest tests ``` ## Verification 1. Run the acceptance commands. 2. Confirm CLI help text shows documented options. 3. Update `PROGRESS.md` and this phase index. ## Do Not - Do not put parser logic inside CLI parsing code. - Do not implement PyQt UI. - Do not silently CPU fallback for explicit CUDA mode.