# Output Pipeline Overview This directory houses the post-processing side of ResumeCustomizer. It accepts one human-approved Markdown resume at a time and renders shareable DOCX/PDF artifacts while preserving historical output. ## Directory Layout - `ForRelease/inbox` – drop a single vetted `*.md` file here to trigger conversion; keep empty otherwise. - `ForRelease/outbox/YYYY/MM/DD/HHMM` – timestamped export folders containing the generated `.docx`/`.pdf` pair for each run. - `ForRelease/processed/YYYY/MM/DD/HHMM` – timestamped archives of Markdown files that converted successfully. - `ForRelease/failed` – holding area for Markdown files that Pandoc could not render. - `Docker/` – Dockerfile, compose stack, watcher script, and wrapper used to run the conversion container. - `templates/` – default Pandoc assets (`*.example`) the watcher copies into `/tmp` at runtime; copy any `.example` file without the suffix to override it locally (ignored by git). All `ForRelease` subdirectories include `.gitkeep` and `.gitignore` so artifacts stay local and never reach version control. ## Running the Output Processor Launch the stack with the wrapper so files inherit your UID/GID: ```bash cd output/Docker ./run-output-processor.sh up -d ``` The wrapper auto-detects the Docker Compose plugin or legacy `docker-compose`, forwards any extra arguments (`down`, `logs`, etc.), and passes your UID/GID and current timezone into the container. The stack registers as `RCEO-AI-ResumeCustomizer-Output` with the container `RCEO-AI-ResumeCustomizer-OutputProcessor`. ## Conversion Flow 1. The watcher polls `ForRelease/inbox` every few seconds for exactly one Markdown resume. 2. Pandoc renders DOCX and PDF using the shared templates (and auto-falls back to the bundled `.example` files if no overrides exist). 3. Artifacts land in a timestamped folder under `ForRelease/outbox`. 4. The source Markdown moves into the matching timestamp folder under `ForRelease/processed`. 5. On Pandoc failure, the Markdown shifts into `ForRelease/failed` for human review before retrying. Outbox and processed directories are append-only historical records managed solely by the human operator—automation must never delete or reorganize them. ## Prerequisites - Docker Engine with the Compose plugin (`docker compose`) or the standalone `docker-compose` binary. - Template assets mounted read-only from `templates/` (copy `.example` files to matching names without the suffix to customize them). Stop or inspect the stack with: ```bash cd output/Docker ./run-output-processor.sh down ./run-output-processor.sh logs -f ``` Monitor logs during conversions to confirm the Markdown leaves inbox, exports appear in outbox, and the source lands in processed.