39 lines
1.3 KiB
Markdown
39 lines
1.3 KiB
Markdown
# Step 0: marker-invocation-adapter
|
|
|
|
## Read First
|
|
- /AGENTS.md
|
|
- /PLAN.md
|
|
- /PROGRESS.md
|
|
- /docs/HARNESS.md
|
|
- /docs/IMPLEMENTATION_PLAN.md
|
|
- /docs/ARCHITECTURE.md
|
|
- /docs/TOOLCHAIN.md
|
|
- /phases/1-core-runtime-contracts/index.json
|
|
|
|
## Task
|
|
Implement the first Marker adapter boundary that invokes Marker through a small internal interface.
|
|
|
|
Keep this adapter isolated so tests can use fakes without loading large models. Real Marker invocation should be smoke-testable but not required for every unit test.
|
|
|
|
## Sprint Contract
|
|
- Done means: Marker invocation is behind a narrow interface and can return structured parse results or clear failures.
|
|
- Hard thresholds: Marker remains the primary document parser; Nougat is not used here; unit tests avoid mandatory model downloads; parser errors are structured.
|
|
- Files owned: `src/pdftomd/marker_adapter.py`, related tests, `PROGRESS.md`, `phases/2-marker-adapter/index.json`.
|
|
- Dependencies: Phase 1 runtime contracts.
|
|
|
|
## Acceptance Criteria
|
|
```powershell
|
|
python scripts\validate_workspace.py
|
|
.\venv\python.exe -m pytest tests
|
|
```
|
|
|
|
## Verification
|
|
1. Run the acceptance commands.
|
|
2. Confirm the adapter can be tested without external services.
|
|
3. Update `PROGRESS.md` and this phase index.
|
|
|
|
## Do Not
|
|
- Do not parse formulas with Nougat.
|
|
- Do not implement Markdown rendering.
|
|
- Do not make every test load Marker models.
|