40 lines
1.4 KiB
Markdown
40 lines
1.4 KiB
Markdown
# Step 2: marker-block-normalization
|
|
|
|
## Read First
|
|
- /AGENTS.md
|
|
- /PLAN.md
|
|
- /PROGRESS.md
|
|
- /docs/HARNESS.md
|
|
- /docs/IMPLEMENTATION_PLAN.md
|
|
- /docs/ARCHITECTURE.md
|
|
- /docs/CONVERSION_POLICY.md
|
|
- /phases/0-harness-foundation/step1.md
|
|
- /phases/2-marker-adapter/step0.md
|
|
|
|
## Task
|
|
Map Marker structured output into the internal block model for headings, paragraphs, lists, tables, figures, captions, and equation candidates.
|
|
|
|
Prefer structured Marker APIs or JSON-like structures over scraping final Markdown.
|
|
|
|
## Sprint Contract
|
|
- Done means: fake Marker structures and at least one real or recorded sample shape map into internal block types.
|
|
- Hard thresholds: semantic block roles are preserved; bounding boxes and page numbers survive where available; formula blocks are only marked as candidates for Phase 3.
|
|
- Files owned: `src/pdftomd/marker_adapter.py`, model additions if required, tests, `PROGRESS.md`, phase index.
|
|
- Dependencies: Phase 0 models and Step 0 adapter.
|
|
|
|
## Acceptance Criteria
|
|
```powershell
|
|
python scripts\validate_workspace.py
|
|
.\venv\python.exe -m pytest tests
|
|
```
|
|
|
|
## Verification
|
|
1. Run the acceptance commands.
|
|
2. Confirm no final Markdown scraping is required for normal block mapping.
|
|
3. Update `PROGRESS.md` and this phase index.
|
|
|
|
## Do Not
|
|
- Do not perform Nougat conversion.
|
|
- Do not render Markdown.
|
|
- Do not discard page or bounding-box metadata without a documented reason.
|