40 lines
1.3 KiB
Markdown
40 lines
1.3 KiB
Markdown
# Step 2: figure-asset-writer
|
|
|
|
## Read First
|
|
- /AGENTS.md
|
|
- /PLAN.md
|
|
- /PROGRESS.md
|
|
- /docs/HARNESS.md
|
|
- /docs/IMPLEMENTATION_PLAN.md
|
|
- /docs/ARCHITECTURE.md
|
|
- /docs/CONVERSION_POLICY.md
|
|
- /phases/1-core-runtime-contracts/step2.md
|
|
- /phases/5-markdown-rendering-assets/step0.md
|
|
|
|
## Task
|
|
Implement deterministic image/figure asset writing and Markdown image reference generation.
|
|
|
|
Use hash-based deduplication when asset bytes are available and preserve figure captions and reference anchors.
|
|
|
|
## Sprint Contract
|
|
- Done means: figure assets can be written to temp output bundles with deterministic names and Markdown references.
|
|
- Hard thresholds: duplicate images share stored assets where configured; Korean path output is tested; missing assets produce validation failures, not broken silent links.
|
|
- Files owned: `src/pdftomd/assets.py`, renderer integration/tests, `PROGRESS.md`, phase index.
|
|
- Dependencies: Output bundle contract and renderer.
|
|
|
|
## Acceptance Criteria
|
|
```powershell
|
|
python scripts\validate_workspace.py
|
|
.\venv\python.exe -m pytest tests
|
|
```
|
|
|
|
## Verification
|
|
1. Run the acceptance commands.
|
|
2. Confirm tests write only to temporary directories.
|
|
3. Update `PROGRESS.md` and this phase index.
|
|
|
|
## Do Not
|
|
- Do not write into real `output/` during tests.
|
|
- Do not rename source PDFs.
|
|
- Do not drop figure captions.
|