Options like -s read-only routed execution into the /dev/null branch, so codex got no prompt at all. codex natively appends piped stdin as a <stdin> block, so feeding prompt.md unconditionally is safe.