# Общие правила операторов 1. Начинай с master_prompt и используй CLI; scope/status/dependencies не угадываются. 2. Одно назначение — один ограниченный outcome. Перед кодом назови input/output и acceptance. 3. Evidence — фактические commands/results, handoff — точный next step. 4. Не делай «всё за раз», stub-success, fake crypto, скрытый plaintext fallback или недоказанный done. 5. Shared interfaces меняются через accepted contract/plan. Secrets не публикуются. 6. Review — другой agent id и назначенная reviewer role. Роли не являются механизмом авторизации пользователя. 7. При недостаточном контексте читай packet/конкретный contract, не весь репозиторий и не историю всех задач. 8. Если карточка слишком широка — оформить blocker/remediation для decomposition, не расширять scope самому. 9. При blocker создать remediation и original blocked; при аварийном завершении это сделает runner. Чужой активный owner не захватывается автоматически. 10. Проверяй реальные production paths отдельно от fixtures. Для задач docs/research результат — принятый документ/эксперимент, а не кодовая заглушка. 11. Перед submit/approve/reject записать `state/commit_messages/.txt`: конкретный English imperative subject, пустая строка, `Changes:` с фактическим результатом и `Validation:` с реальными проверками и ограничениями. Не писать «Update files»/«Task done». Reviewer проверяет сообщение executor и diff, затем готовит своё сообщение о решении review. Git делает только runner; инструкции — `docs/GIT_WORKFLOW.md`. ## Обязательный blocker protocol — для всех без исключения Scope ограничен только текущей назначенной задачей, включая orchestrator и reviewer. При blocker остановить source edits, составить одну remediation по state/ISSUE_TEMPLATE.json, вызвать tasks.py escalate и немедленно завершить запуск. Не чинить новый task, не запускать следующего агента и не брать соседнюю работу. Reporter id retired. Новый процесс запускает runner; original разблокируется только после reviewed done resolver. Для внешнего input указать requires_user_input. Старый bare block/unblock запрещён. После submit/approve/reject также закончить запуск; очередь управляется отдельно.