# Step 3: marker-failure-reporting ## Read First - /AGENTS.md - /PLAN.md - /PROGRESS.md - /docs/HARNESS.md - /docs/IMPLEMENTATION_PLAN.md - /docs/CONVERSION_POLICY.md - /phases/2-marker-adapter/step0.md - /phases/2-marker-adapter/step2.md ## Task Define structured Marker failure reporting for parser errors, unsupported pages, timeout-like failures, and recoverable partial output. This prepares later CLI and resume behavior without writing CLI code. ## Sprint Contract - Done means: Marker adapter failures are typed, testable, and do not corrupt generated Markdown content. - Hard thresholds: failures include page/chunk context where available; errors go to runtime reporting paths, not document body; fallback eligibility is explicit. - Files owned: `src/pdftomd/marker_adapter.py`, error/reporting models, tests, `PROGRESS.md`, phase index. - Dependencies: Steps 0 and 2. ## Acceptance Criteria ```powershell python scripts\validate_workspace.py .\venv\python.exe -m pytest tests ``` ## Verification 1. Run the acceptance commands. 2. Confirm failure messages are actionable for CLI and evaluator use. 3. Update `PROGRESS.md` and this phase index. ## Do Not - Do not silently swallow Marker failures. - Do not implement resume state here. - Do not write errors into Markdown chunks.