# Step 1: pyqt-shell

## Read First
- /AGENTS.md
- /PLAN.md
- /PROGRESS.md
- /docs/HARNESS.md
- /docs/IMPLEMENTATION_PLAN.md
- /docs/UI_GUIDE.md
- /phases/9-pyqt-thin-client/step0.md

## Task
Create the minimal PyQt application shell for selecting a PDF, choosing output directory, and configuring runtime/formula options.

Keep the interface quiet and utilitarian for repeated local conversion work.

## Sprint Contract
- Done means: a minimal PyQt window can launch and bind controls to the core API config without running conversion by default.
- Hard thresholds: UI does not duplicate conversion engine logic; long Korean paths remain visible via tooltip or equivalent; defaults match CLI.
- Files owned: UI package/modules, tests if practical, `docs/UI_GUIDE.md`, `PROGRESS.md`, phase index.
- Dependencies: UI API contract.

## Acceptance Criteria
```powershell
python scripts\validate_workspace.py
```

## Verification
1. Run the acceptance command.
2. If UI launch cannot be automated, record manual verification steps in `PROGRESS.md`.
3. Update this phase index.

## Do Not
- Do not create a marketing landing page.
- Do not call Marker/Nougat directly from widgets.
- Do not make UI the only way to run conversion.
