add files

This commit is contained in:
김경종
2026-04-30 17:05:19 +09:00
parent f3e01b5a8c
commit 7e985ae94a
135 changed files with 41205 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
{
"project": "PDFtoMD",
"phase": "9-pyqt-thin-client",
"steps": [
{
"step": 0,
"name": "ui-api-contract",
"status": "pending"
},
{
"step": 1,
"name": "pyqt-shell",
"status": "pending"
},
{
"step": 2,
"name": "ui-progress-resume",
"status": "pending"
},
{
"step": 3,
"name": "ui-packaging-notes",
"status": "pending"
}
]
}
+38
View File
@@ -0,0 +1,38 @@
# 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.
+36
View File
@@ -0,0 +1,36 @@
# 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.
+36
View File
@@ -0,0 +1,36 @@
# Step 2: ui-progress-resume
## Read First
- /AGENTS.md
- /PLAN.md
- /PROGRESS.md
- /docs/HARNESS.md
- /docs/IMPLEMENTATION_PLAN.md
- /docs/UI_GUIDE.md
- /phases/9-pyqt-thin-client/step1.md
## Task
Connect UI progress, cancellation, error summary, log opening, and resume controls to the core API.
The UI should show chunk success/failure and respect CUDA/auto runtime semantics.
## Sprint Contract
- Done means: UI can display progress events and expose resume behavior without corrupting generated Markdown.
- Hard thresholds: explicit CUDA failures are shown clearly; auto fallback warnings are visible; cancellation does not leave inconsistent runtime state.
- Files owned: UI modules, tests/manual verification notes, `PROGRESS.md`, phase index.
- Dependencies: PyQt shell and core runtime events.
## Acceptance Criteria
```powershell
python scripts\validate_workspace.py
```
## Verification
1. Run the acceptance command.
2. Record UI smoke test steps and screenshots only if the user asks for them.
3. Update `PROGRESS.md` and this phase index.
## Do Not
- Do not write logs into Markdown content.
- Do not silently fallback from explicit CUDA to CPU.
- Do not implement a separate UI-only resume system.
+36
View File
@@ -0,0 +1,36 @@
# Step 3: ui-packaging-notes
## Read First
- /AGENTS.md
- /PLAN.md
- /PROGRESS.md
- /docs/HARNESS.md
- /docs/IMPLEMENTATION_PLAN.md
- /docs/UI_GUIDE.md
- /phases/9-pyqt-thin-client/step2.md
## Task
Document PyQt local packaging and known limitations for Windows.
This step may add packaging notes or scripts only if they are consistent with the verified environment.
## Sprint Contract
- Done means: UI packaging limitations and local execution commands are documented without changing the core engine contract.
- Hard thresholds: docs do not promise standalone redistribution without license review; model weights remain external/cache-based; CLI remains supported.
- Files owned: `README.md`, `docs/UI_GUIDE.md`, optional packaging docs/scripts, `PROGRESS.md`, phase index.
- Dependencies: UI progress/resume behavior.
## Acceptance Criteria
```powershell
python scripts\validate_workspace.py
```
## Verification
1. Run the acceptance command.
2. Confirm packaging notes mention license/model cache constraints.
3. Update `PROGRESS.md` and this phase index.
## Do Not
- Do not build an installer unless explicitly requested.
- Do not bundle model weights.
- Do not drop CLI documentation.