CHAT_OUTPUT_BEGIN
COMMAND_ID=NEW-CHAT-PROTOCOL-V4-229
STATUS=OK
RC=0
HOST=pve01
MODE=read-only
COMPONENT=cluster-audit
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=08b3a769b8e38eaa1acec915352fb328180d70caa7ff6cd9d1ec0da426262752
COMMAND_SHA256=b7e9231a4c62e9728812fa4df7040f34eb0ff4efca6fcdca3ab83d882a70c1ff
DUPLICATE_FAILED_COMMAND_BLOCKED=false
EXECUTION_STARTED=true
CHANGES_MADE=false
SANITIZED=yes
SECRETS_INCLUDED=no
PRIVATE_ADDRESSES_INCLUDED=no
RAW_EVIDENCE_SHA256=9dd8871915fde39d9d19e9f56ed43e055ecd6c0eb93a4c2a0332cba2948dac2c
SANITIZED_OUTPUT_SHA256=9dd8871915fde39d9d19e9f56ed43e055ecd6c0eb93a4c2a0332cba2948dac2c
OUTPUT_BEGIN
PROTOCOL_VERSION=4
STATUS=ACTIVE
SUPERSEDES=NEW-CHAT-PROTOCOL-PUBLISH-20260722,NEW-CHAT-PROTOCOL-V3-227
BOOTSTRAP_URL=https://git.gram1.ru/.well-known/homelab-bootstrap.json
RESULT_API_TEMPLATE=https://git.gram1.ru/api/v1/repos/homelab-admin/homelab-public-context/contents/runtime/history/<COMMAND_ID>.txt?ref=assistant-runtime

1. Сначала полностью прочитай этот протокол. Если API возвращает content с encoding=base64, декодируй content и прочитай блок OUTPUT_BEGIN—OUTPUT_END.
2. Затем загрузи bootstrap и все указанные в нем точки входа: полный контекст, справочник кластера, реестр ошибок, workflow contract и правило двойной проверки.
3. Единственный источник истины о команде — runtime/history/<COMMAND_ID>.txt. latest.json и latest.txt запрещены как подтверждение.
4. Для каждой команды различай ISSUED, CONFIRMED_BY_USER и READ_IN_GITEA.
5. Отдельная точка, запятая или обратная косая черта означает CONFIRMED_BY_USER. После этого запрещено отменять, повторять или объявлять команду невыполненной.
6. После каждой команды обязательно печатай точный RESULT_API_URL с фактическим COMMAND_ID.
7. После подтверждения пользователя открой RESULT_API_URL из предыдущего ответа. Декодируй content и проверь COMMAND_ID, STATUS, RC, HOST, MODE, COMPONENT, REFERENCE_REGISTER_CHECK, ERROR_REGISTER_CHECK, DUPLICATE_FAILED_COMMAND_BLOCKED, EXECUTION_STARTED, CHANGES_MADE и весь OUTPUT_BEGIN—OUTPUT_END.
8. Только после фактического чтения точного файла присваивай состояние READ_IN_GITEA и переходи к следующей команде.
9. Если API содержит download_url, html_url или last_commit_sha, используй их только для чтения той же точной версии файла.
10. HTML-каталог, HTML-history, Branches, старый кэш, Cache miss, Internal Error, raw-ошибка и URL is not safe to open не доказывают отсутствие результата.
11. При проблеме собственного веб-инструмента не объявляй сбой Gitea, runner или publisher, не создавай relay-команду, не повторяй выполненную команду и не выдавай следующую инфраструктурную команду вслепую.
12. Footer runner с COMMAND_ID, COMMIT_SHA и GITEA_PUBLICATION=OK подтверждает выполнение и публикацию. Не противоречь ему по устаревшему HTML. Содержимое анализа всё равно бери из immutable-файла.
13. Перед новой командой зарегистрируй ошибки, сверься со справочником и реестром ошибок, дважды проверь узел, пользователя, sudo, пути, интерпретатор, режим, риск и откат.
14. Не добавляй sudo автоматически. Запрещены heredoc, base64-команды, секреты, слепые перезапуски, неподтверждённые удаления и повтор уже выполненной или провалившейся команды.
15. Формат ответа: прочитанный COMMAND_ID, STATUS, RC, факты и ошибки; строка CHECK; описание следующего шага; ровно одна команда только под HTML-спойлером; точный RESULT_API_URL; количество оставшихся команд.
16. После подтверждения пользователя самостоятельно прочитай immutable-результат и сразу продолжи. Не проси копировать терминальный вывод, пока существует прямой технический способ чтения.
CHANGES_MADE=NO

OUTPUT_END
CHAT_OUTPUT_END
