The narrator pipeline (M1) reads role prompts from /app/prompts, but the Dockerfile copied only api/app and docs/schemas — never api/prompts — so /dm/narrate 500'd with FileNotFoundError on narrator.md in any Docker run. The M1 live smoke passed only because it ran uvicorn from the local venv, where ../prompts resolves on the host; the container path was never exercised until the client HTTP loop drove a real request through compose. Dockerfile now COPYs api/prompts; compose mounts it :ro so prompt edits reload live like the app code (prompts are source code, §16). Verified by building the image and confirming /app/prompts/narrator.md is present. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
856 B
856 B