40 lines
1.4 KiB
Markdown
40 lines
1.4 KiB
Markdown
# Step 2: output-bundle-contract
|
|
|
|
## 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/step0.md
|
|
- /phases/1-core-runtime-contracts/step1.md
|
|
|
|
## Task
|
|
Define deterministic output bundle path rules for chunk Markdown files, image assets, anchors, and runtime artifacts.
|
|
|
|
This is a contract step. It may include lightweight path helpers and tests, but it should not render Markdown or write parsed document content.
|
|
|
|
## Sprint Contract
|
|
- Done means: output directory, chunk file names, image asset names, and runtime log/state locations are modeled and tested.
|
|
- Hard thresholds: document output sidecars remain out of scope; runtime logs/state are separated from Markdown bundle output; asset naming is deterministic.
|
|
- Files owned: `src/pdftomd/`, `tests/`, `PROGRESS.md`, `phases/1-core-runtime-contracts/index.json`.
|
|
- Dependencies: Steps 0 and 1.
|
|
|
|
## Acceptance Criteria
|
|
```powershell
|
|
python scripts\validate_workspace.py
|
|
.\venv\python.exe -m pytest tests
|
|
```
|
|
|
|
## Verification
|
|
1. Run the acceptance commands.
|
|
2. Confirm generated path contracts match `docs/ARCHITECTURE.md`.
|
|
3. Update `PROGRESS.md` and this phase index.
|
|
|
|
## Do Not
|
|
- Do not implement the renderer.
|
|
- Do not write files under `output/` in tests unless using a temp directory.
|
|
- Do not create sidecar metadata output.
|