# 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.
