# S00-012: Fix runner prompt delivery after partial stdin timeout - Remediation для: S00-002; root: S00-002; depth: 1 > Generated from planning/tasks.json; status is in state/tasks.json. - Этап: S00 - Оператор: ci-cd - Reviewer: qa - Зависимости: S00-001, S00-011, S00-013, S00-014, S00-015 - Требования: NFR-007 ## Один результат Reliable complete prompt delivery under startup delay and pipe backpressure, preserving runner lifecycle guarantees. ## Разрешённые пути - `scripts/runner.py` - `tests/tooling/test_automation.py` Не изменять другие modules, shared contracts или spec snapshots без изменения плана. Stem без расширения разрешает принятые stack-specific extensions и focused test рядом. ## Прочитать - docs/WEB_PROFILE.md - docs/ARCHITECTURE.md - docs/CONTRACTS.md - docs/TESTING.md - roles/orchestrator.md - docs/decisions/README.md - state/blockers/S00-012.md ## Шаги 1. Read diagnostic evidence and reproduce delayed-reader partial-write timeout without launching a model. 2. Fix only runner stdin delivery; retain fresh sessions, prompt budget, terminal-transition monitoring, timeout and process-tree cleanup. 3. Add a deterministic delayed-reader large-prompt regression check and run focused runner tests plus make check. 4. Record evidence/handoff/commit message and submit for independent review. ## Приёмка 1. A delayed stdin reader receives the complete large UTF-8 prompt and EOF without hanging. 2. Timeout and terminal-transition process cleanup still work; no background source-writing descendants remain. 3. Existing runner/tooling checks pass; no task scope, spec snapshots or product implementation is changed. ## Focused checks 1. Delayed-reader large UTF-8 prompt regression. 2. Existing runner timeout, transition, scope and fresh-session tests. 3. make check ## Блокер и завершение запуска Для всех ролей scope — только эта задача. При блокере создать issue JSON по state/ISSUE_TEMPLATE.json, вызвать escalate с текущим ID/role/agent, проверить status=blocked и resolution_task, затем немедленно завершить запуск. Не решать blocker и не выбирать следующую задачу самому. Новый агент назначается runner. Правки metadata через CLI — единственное исключение scope. ## Передача Сохранить evidence/handoff; submit → review и завершить запуск. Reviewer также выполняет только эту задачу, включая обязательное escalate при блокере.