feat(output): add wrapper and failed conversion handling

This commit is contained in:
2025-10-15 13:39:37 -05:00
parent 7afec09482
commit d7682ee87d
11 changed files with 324 additions and 0 deletions

18
output/AGENTS.md Normal file
View File

@@ -0,0 +1,18 @@
# Output Agent Guide
## Scope
The `output/` tree houses the delivery pipeline that watches for approved Markdown resumes, converts them to DOCX/PDF using Pandoc, and archives the source material. It is intended to run independently from the `input/` authoring workflow.
## Key Components
- `ForRelease/inbox`: manually populated with a single vetted `.md` resume for conversion.
- `ForRelease/outbox`: timestamped folders containing generated DOCX/PDF pairs ready for sharing.
- `ForRelease/processed`: timestamped archives of Markdown files that converted successfully.
- `ForRelease/failed`: Markdown originals for conversion attempts that Pandoc could not render.
- `Docker/`: container definition, watcher script, and wrapper to run the stack without root-owned outputs.
## Operational Rules
- Always launch the service with `Docker/run-output-processor.sh` so the container inherits the callers UID/GID.
- Before testing, ensure `ForRelease/inbox` is empty; this watcher expects at most one Markdown file at a time.
- Monitor logs via `./run-output-processor.sh logs -f` while converting to confirm the Markdown leaves inbox and the exports appear in outbox.
- If Pandoc fails, the Markdown moves to `ForRelease/failed`; fix the content there, then move it back to `inbox` for another run.
- Only remove history from `outbox/` or `processed/` after you are certain the artifacts are no longer needed.