39 lines
1.4 KiB
Markdown
39 lines
1.4 KiB
Markdown
# Step 0: input-normalization-slug
|
|
|
|
## 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/index.json
|
|
|
|
## Task
|
|
Implement deterministic input normalization and document slug generation for local PDF paths.
|
|
|
|
Cover `pathlib` handling for Korean filenames, spaces, relative paths, absolute paths, and long Windows paths. The API should not invoke Marker, Nougat, PyMuPDF, or any conversion logic.
|
|
|
|
## Sprint Contract
|
|
- Done means: the core package has a tested function or small module that normalizes input PDF paths and produces stable document slugs.
|
|
- Hard thresholds: same input path and options produce the same slug; non-PDF paths fail clearly; Korean and spaced paths are tested; no parser import is introduced.
|
|
- Files owned: `src/pdftomd/`, `tests/`, `PROGRESS.md`, `phases/1-core-runtime-contracts/index.json`.
|
|
- Dependencies: Phase 0 package skeleton and model contracts.
|
|
|
|
## Acceptance Criteria
|
|
```powershell
|
|
python scripts\validate_workspace.py
|
|
.\venv\python.exe -m pytest tests
|
|
```
|
|
|
|
## Verification
|
|
1. Run the acceptance commands.
|
|
2. Confirm `PROGRESS.md` records the handoff and validation result.
|
|
3. Update this phase index step to `completed`, `blocked`, or `error`.
|
|
|
|
## Do Not
|
|
- Do not implement PDF parsing.
|
|
- Do not write conversion output.
|
|
- Do not add UI code.
|