39 lines
1.2 KiB
Markdown
39 lines
1.2 KiB
Markdown
# Step 0: ui-api-contract
|
|
|
|
## Read First
|
|
- /AGENTS.md
|
|
- /PLAN.md
|
|
- /PROGRESS.md
|
|
- /docs/HARNESS.md
|
|
- /docs/IMPLEMENTATION_PLAN.md
|
|
- /docs/UI_GUIDE.md
|
|
- /docs/ARCHITECTURE.md
|
|
- /phases/8-release-docs-packaging/index.json
|
|
|
|
## Task
|
|
Define the stable core API contract that PyQt will call.
|
|
|
|
This step should verify that the UI does not need to import Marker, Nougat, PyMuPDF, or renderer internals directly.
|
|
|
|
## Sprint Contract
|
|
- Done means: UI-facing API functions/classes are documented and tested without building UI screens.
|
|
- Hard thresholds: UI remains a thin client; conversion logic is not duplicated; progress/resume events are available through the API.
|
|
- Files owned: `src/pdftomd/`, `tests/`, `docs/UI_GUIDE.md`, `PROGRESS.md`, `phases/9-pyqt-thin-client/index.json`.
|
|
- Dependencies: Local MVP release-ready CLI/library.
|
|
|
|
## Acceptance Criteria
|
|
```powershell
|
|
python scripts\validate_workspace.py
|
|
.\venv\python.exe -m pytest tests
|
|
```
|
|
|
|
## Verification
|
|
1. Run the acceptance commands.
|
|
2. Confirm UI boundary in `docs/UI_GUIDE.md` remains accurate.
|
|
3. Update `PROGRESS.md` and this phase index.
|
|
|
|
## Do Not
|
|
- Do not create UI widgets yet.
|
|
- Do not import parser internals in UI-facing code.
|
|
- Do not change CLI behavior unless tests require it.
|