47 lines
5.3 KiB
Plaintext
47 lines
5.3 KiB
Plaintext
CHAT_OUTPUT_BEGIN
|
||
COMMAND_ID=NEW-CHAT-PROTOCOL-V3-227
|
||
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=3143d97dde09ed28be3296e125cbc82235fb30eba9d74d874f4ed2d8856c2f9d
|
||
DUPLICATE_FAILED_COMMAND_BLOCKED=false
|
||
EXECUTION_STARTED=true
|
||
CHANGES_MADE=false
|
||
SANITIZED=yes
|
||
SECRETS_INCLUDED=no
|
||
PRIVATE_ADDRESSES_INCLUDED=no
|
||
RAW_EVIDENCE_SHA256=4b884e95ea78c74c8c9962e6080e95feebd2cdaca3919d884a51bbcfa5cdd367
|
||
SANITIZED_OUTPUT_SHA256=4b884e95ea78c74c8c9962e6080e95feebd2cdaca3919d884a51bbcfa5cdd367
|
||
OUTPUT_BEGIN
|
||
PROTOCOL_VERSION=3
|
||
STATUS=ACTIVE
|
||
SUPERSEDES=NEW-CHAT-PROTOCOL-PUBLISH-20260722,NEW-CHAT-PROTOCOL-V2-226
|
||
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. Перед любой командой прочитай bootstrap и все указанные в нем entrypoints: полный контекст, справочник кластера, реестр ошибок, workflow contract и правило двойной проверки.
|
||
2. Единственный источник истины — точный immutable-файл runtime/history/<COMMAND_ID>.txt. latest.json и latest.txt запрещены как подтверждение результата.
|
||
3. Для команды различай состояния ISSUED, CONFIRMED_BY_USER и READ_IN_GITEA. Точка, запятая или обратная косая черта от пользователя означают, что последняя выданная команда уже выполнена и находится в состоянии CONFIRMED_BY_USER. Не отменяй, не повторяй и не объявляй ее невыполненной.
|
||
4. После каждого спойлера обязательно печатай точный RESULT_API_URL с фактическим COMMAND_ID. После подтверждения пользователя открывай именно этот URL из предыдущего ответа.
|
||
5. Из Gitea Contents API прочитай path, last_commit_sha, encoding, content, download_url и html_url. При encoding=base64 декодируй content. Обязательно проверь COMMAND_ID, STATUS, RC, HOST, MODE, COMPONENT, REFERENCE_REGISTER_CHECK, ERROR_REGISTER_CHECK, EXECUTION_STARTED, CHANGES_MADE и весь блок OUTPUT_BEGIN-OUTPUT_END.
|
||
6. HTML-каталог, HTML-history, Branches, старый кэш, Internal Error, raw-ошибка и URL is not safe to open не доказывают отсутствие результата. Не создавай relay-команды и не диагностируй сбой runner или publisher только из-за ошибки собственного веб-инструмента.
|
||
7. Если точный API URL временно не прочитан, повторно проверь этот же COMMAND_ID через API или поиск Gitea. Не выдавай новую инфраструктурную команду и не выдумывай результат.
|
||
8. Footer runner с COMMAND_ID, COMMIT_SHA и GITEA_PUBLICATION=OK подтверждает выполнение и публикацию. Не противоречь ему по данным устаревшей HTML-страницы. Содержимое результата всё равно читай из immutable-файла.
|
||
9. Перед следующей командой зарегистрируй фактические ошибки, сверь их со справочником и реестром, дважды проверь узел, пользователя, sudo, пути, интерпретатор, режим, риск и откат.
|
||
10. Выдавай ровно одну команду только внутри HTML details-спойлера. Не добавляй sudo автоматически. Запрещены heredoc, base64-команды, слепые перезапуски, неподтверждённые удаления, секреты и повтор уже выполненной либо провалившейся команды.
|
||
11. Перед командой пиши: Сверка с файлом ошибок и справочником кластера: CHECK пройден. Перед спойлером пиши: Что делаем. Сразу после спойлера печатай RESULT_API_URL. Следующей строкой пиши: Всего команд осталось: N, включая эту.
|
||
12. После подтверждения пользователя сам прочитай точный результат, проанализируй его и сразу продолжи следующей проверенной командой. Не проси пользователя копировать терминальный вывод.
|
||
|
||
COMMANDS_ALREADY_EXECUTED=BACKUP-CAPACITY-CANDIDATES-224,GITEA-RESULT-RESOLVER-SOURCE-225
|
||
MALFORMED_NOT_EXECUTED=NEW-CHAT-PROTOCOL-V2-226
|
||
CHANGES_MADE=NO
|
||
|
||
OUTPUT_END
|
||
CHAT_OUTPUT_END
|