CHAT_OUTPUT_BEGIN
COMMAND_ID=ERRORS-INDEX-001
STATUS=OK
RC=0
HOST=pve01
MODE=read-only
COMPONENT=error-ledger
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=f6f7749fda946015116cdbbd754c7e7f20356b4a6cf4df330a1b0b8fdf59cbb2
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=ab8308549db90d235b591af0581580c3c7ba1b287b129cc6111c2eef0a0f9ecc
COMMAND_SHA256=280cb3910a51e34e4cd97ad077f10a28b2b911f5bc672977c54efa8325b01468
DUPLICATE_FAILED_COMMAND_BLOCKED=false
EXECUTION_STARTED=true
CHANGES_MADE=false
SANITIZED=yes
SECRETS_INCLUDED=no
PRIVATE_ADDRESSES_INCLUDED=no
RAW_EVIDENCE_SHA256=1a8a3b39313470910499ff5f400ab65de37d07de55347ff7bd7fafb4c8235afd
SANITIZED_OUTPUT_SHA256=1a8a3b39313470910499ff5f400ab65de37d07de55347ff7bd7fafb4c8235afd
OUTPUT_BEGIN
{
  "schema_version": 1,
  "status": "READY",
  "generated_at_utc": "2026-07-21T07:10:17Z",
  "source": {
    "path": "/etc/pve/HOMELAB_ASSISTANT_ERROR_REGISTER.md",
    "sha256": "ab8308549db90d235b591af0581580c3c7ba1b287b129cc6111c2eef0a0f9ecc",
    "immutable_context_command_id": "CONTEXT-SOURCES-FULL-002"
  },
  "entry_count": 146,
  "rule_count": 10,
  "duplicate_ids": [],
  "entries": [
    {
      "id": "ERR-N-1",
      "kind": "numbered",
      "source_line": 6,
      "title": "Повторно дал слишком большой интерактивный paste в shell.",
      "status": "known"
    },
    {
      "id": "ERR-N-2",
      "kind": "numbered",
      "source_line": 7,
      "title": "Повторно использовал here-doc/Markdown/backticks там, где нужен короткий безопасный файл или отдельный скрипт.",
      "status": "known"
    },
    {
      "id": "ERR-N-3",
      "kind": "numbered",
      "source_line": 8,
      "title": "Дал генератор справочника прямо в терминал вместо безопасного маленького шага.",
      "status": "known"
    },
    {
      "id": "ERR-N-4",
      "kind": "numbered",
      "source_line": 9,
      "title": "Нарушил своё же правило: не давать длинные вложенные команды с кавычками.",
      "status": "known"
    },
    {
      "id": "ERR-N-11",
      "kind": "numbered",
      "source_line": 35,
      "title": "Ошибка: считать offhost OK после failed rsync.",
      "status": "known"
    },
    {
      "id": "ERR-N-12",
      "kind": "numbered",
      "source_line": 40,
      "title": "Ошибка: широкий secret-поиск по /opt/stacks дал шум.",
      "status": "known"
    },
    {
      "id": "ERR-N-13",
      "kind": "numbered",
      "source_line": 45,
      "title": "Ошибка: SQL с одинарными кавычками внутри одинарной SSH-команды ломается.",
      "status": "known"
    },
    {
      "id": "ERR-N-14",
      "kind": "numbered",
      "source_line": 50,
      "title": "Ошибка: путать контекст входа и узел выполнения.",
      "status": "known"
    },
    {
      "id": "ERR-N-15",
      "kind": "numbered",
      "source_line": 57,
      "title": "Ошибка: повторно нарушено правило №13 после его добавления.",
      "status": "known"
    },
    {
      "id": "ERR-N-16",
      "kind": "numbered",
      "source_line": 63,
      "title": "Основополагающее правило: перед каждой командой ассистент обязан явно написать: Сверка с файлом ошибок: CHECK пройден.",
      "status": "known"
    },
    {
      "id": "ERR-N-19",
      "kind": "numbered",
      "source_line": 68,
      "title": "Уточнение формата: не писать отдельную строку сверки перед каждой командой в пакете.",
      "status": "known"
    },
    {
      "id": "ERR-N-20",
      "kind": "numbered",
      "source_line": 73,
      "title": "Ошибка: широкий XenForo SMTP-поиск по src дал шум исходников.",
      "status": "known"
    },
    {
      "id": "ERR-N-21",
      "kind": "numbered",
      "source_line": 77,
      "title": "Ошибка: nested PHP php -r дал Parse error на forum-prod.",
      "status": "known"
    },
    {
      "id": "ERR-N-22",
      "kind": "numbered",
      "source_line": 82,
      "title": "Ошибка: самодельный base64 PHP для SMTP auth сломан.",
      "status": "known"
    },
    {
      "id": "ERR-N-23",
      "kind": "numbered",
      "source_line": 87,
      "title": "Ошибка: MariaDB не поддержала cast('true' as json) в JSON_SET.",
      "status": "known"
    },
    {
      "id": "ERR-N-24",
      "kind": "numbered",
      "source_line": 92,
      "title": "Ошибка: exit 1 в interactive-check закрыл SSH-сессию.",
      "status": "known"
    },
    {
      "id": "ERR-N-25",
      "kind": "numbered",
      "source_line": 97,
      "title": "Ошибка анализа: не надо слепо включать smtpSsl=true при smtpPort=587.",
      "status": "known"
    },
    {
      "id": "ERR-N-26",
      "kind": "numbered",
      "source_line": 102,
      "title": "Ошибка: openssl -crlf вместе с ручным CRLF ломает SMTP AUTH checker.",
      "status": "known"
    },
    {
      "id": "ERR-N-27",
      "kind": "numbered",
      "source_line": 108,
      "title": "Ошибка: Python heredoc внутри ssh сломал not_ok диагностику.",
      "status": "known"
    },
    {
      "id": "ERR-N-28",
      "kind": "numbered",
      "source_line": 112,
      "title": "Ошибка: docker compose ls --format json | wc -l дал ложный COMPOSE_PROJECT_COUNT=1.",
      "status": "known"
    },
    {
      "id": "ERR-N-29",
      "kind": "numbered",
      "source_line": 116,
      "title": "Ошибка: monitoring compact status искал неверные имена health-файлов.",
      "status": "known"
    },
    {
      "id": "ERR-N-30",
      "kind": "numbered",
      "source_line": 121,
      "title": "Ошибка/инцидент: Prometheus API HTTP_CODE=000 после monitoring reference.",
      "status": "known"
    },
    {
      "id": "ERR-N-31",
      "kind": "numbered",
      "source_line": 125,
      "title": "Строгое правило: перед каждой командой сверяться с файлом ошибок и справочником.",
      "status": "known"
    },
    {
      "id": "ERR-N-32",
      "kind": "numbered",
      "source_line": 130,
      "title": "Ошибка: 153_PROMETHEUS_TARGETS_SETTLED_PROOF содержит SyntaxError из-за вложенного Python внутри SSH.",
      "status": "known"
    },
    {
      "id": "ERR-N-34",
      "kind": "numbered",
      "source_line": 135,
      "title": "Ошибка операционного ввода: полный терминальный лог MobaXterm попал в shell.",
      "status": "known"
    },
    {
      "id": "ERR-N-33",
      "kind": "numbered",
      "source_line": 140,
      "title": "Security finding: root authorized_keys на PVE-нодах имел права 777.",
      "status": "known"
    },
    {
      "id": "ERR-N-35",
      "kind": "numbered",
      "source_line": 144,
      "title": "Ошибка проверки: 160_PVE_ROOT_AUTHORIZED_KEYS_PERMISSIONS_FIXED не доказал исправление прав.",
      "status": "known"
    },
    {
      "id": "ERR-N-36",
      "kind": "numbered",
      "source_line": 149,
      "title": "Quality check: Storage block needs integrity and pve03 capacity coverage review.",
      "status": "known"
    },
    {
      "id": "ERR-N-37",
      "kind": "numbered",
      "source_line": 154,
      "title": "Coverage gap: pve03_staging missing from disk-space health coverage.",
      "status": "known"
    },
    {
      "id": "ERR-N-38",
      "kind": "numbered",
      "source_line": 158,
      "title": "Quality check: Service Dependency Map block needs integrity review.",
      "status": "known"
    },
    {
      "id": "ERR-N-39",
      "kind": "numbered",
      "source_line": 162,
      "title": "Ошибка проверки: post deep audit BAD_MARKER scan caught prose false positive.",
      "status": "known"
    },
    {
      "id": "ERR-N-40",
      "kind": "numbered",
      "source_line": 166,
      "title": "Ошибка/вывод: VM150 Mail cloud single-file upload failed with 413.",
      "status": "known"
    },
    {
      "id": "ERR-N-41",
      "kind": "numbered",
      "source_line": 170,
      "title": "Ошибка: post-backup-pass-slo-reconciliation checked pve01 router health on edge-vm.",
      "status": "known"
    },
    {
      "id": "ERR-H-L174",
      "kind": "heading",
      "source_line": 174,
      "title": "ASSISTANT_COMMAND_BATCHING_RULE_20260630",
      "status": "known"
    },
    {
      "id": "ERR-H-L180",
      "kind": "heading",
      "source_line": 180,
      "title": "HOME_PORTAL_BASE64_APPLY_FAILURE_20260630",
      "status": "known"
    },
    {
      "id": "ERR-H-L184",
      "kind": "heading",
      "source_line": 184,
      "title": "HOMELAB_COMMAND_SAFETY_HARDENING_20260630",
      "status": "known"
    },
    {
      "id": "ERR-H-L193",
      "kind": "heading",
      "source_line": 193,
      "title": "HOME_PORTAL_API_ERROR_CLOSURE_RULE_20260630",
      "status": "known"
    },
    {
      "id": "ERR-H-L198",
      "kind": "heading",
      "source_line": 198,
      "title": "HOME_PORTAL_COMPLEX_QUOTING_FAILURE_20260630",
      "status": "known"
    },
    {
      "id": "ERR-H-L203",
      "kind": "heading",
      "source_line": 203,
      "title": "HOME_PORTAL_ACTIVE_CONFIG_SCOPE_RULE_20260630",
      "status": "known"
    },
    {
      "id": "ERR-H-L208",
      "kind": "heading",
      "source_line": 208,
      "title": "HOME_PORTAL_LINK_VALIDATION_NPMPLUS_DEFAULT_RULE_20260630",
      "status": "known"
    },
    {
      "id": "ERR-H-L213",
      "kind": "heading",
      "source_line": 213,
      "title": "ROUTER_CLI_STDIN_APPLY_FAILURE_20260630",
      "status": "known"
    },
    {
      "id": "ERR-H-L219",
      "kind": "heading",
      "source_line": 219,
      "title": "ROUTER_CLI_PROBE_STDIN_CONSUMPTION_ERROR_20260630",
      "status": "known"
    },
    {
      "id": "ERR-H-L224",
      "kind": "heading",
      "source_line": 224,
      "title": "ROUTERBACKUP_READONLY_CLI_PERMISSION_LIMIT_20260630",
      "status": "known"
    },
    {
      "id": "ERR-H-L230",
      "kind": "heading",
      "source_line": 230,
      "title": "PROOF_SUMMARY_EXTRACTION_BLANK_20260630",
      "status": "known"
    },
    {
      "id": "ERR-H-L235",
      "kind": "heading",
      "source_line": 235,
      "title": "ROUTER_ACL_UI_RULE_DELETE_AND_RESTORE_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L241",
      "kind": "heading",
      "source_line": 241,
      "title": "ROUTER_MONITOR_NODE_LOOKUP_PROBE_BUG_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L247",
      "kind": "heading",
      "source_line": 247,
      "title": "ROUTER_HTTP_SERVICE_FORBIDDEN_FROM_EDGE_VM_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L254",
      "kind": "heading",
      "source_line": 254,
      "title": "PY_COMPILE_PYC_PERMISSION_ERROR_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L261",
      "kind": "heading",
      "source_line": 261,
      "title": "ROUTER_HOME_IP_DOCKER_ROUTE_CONFLICT_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L267",
      "kind": "heading",
      "source_line": 267,
      "title": "HOMEPAGE_ROUTER_MOSCOW_YAML_TITLE_SHAPE_MISMATCH_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L273",
      "kind": "heading",
      "source_line": 273,
      "title": "HOMEPAGE_ROUTER_MOSCOW_APPLY_SCRIPT_SYNTAX_ERROR_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L281",
      "kind": "heading",
      "source_line": 281,
      "title": "FORUM_PROD_VM160_FIRST_BOOT_SSH255_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L286",
      "kind": "heading",
      "source_line": 286,
      "title": "FORUM_PROD_VM160_NESTED_HOSTNAME_PROOF_QUOTING_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L292",
      "kind": "heading",
      "source_line": 292,
      "title": "FORUM_PROD_VM160_SWAP_PROOF_QUOTING_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L298",
      "kind": "heading",
      "source_line": 298,
      "title": "FORUM_UPLOAD_ARCHIVES_VM_VERIFY_QUOTING_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L304",
      "kind": "heading",
      "source_line": 304,
      "title": "FORUM_PROD_BULK_IMPORT_PHP85_EMPTY_FRONTEND_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L311",
      "kind": "heading",
      "source_line": 311,
      "title": "XENFORO_REQUIREMENTS_DIRECT_DOWNLOAD_403_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L318",
      "kind": "heading",
      "source_line": 318,
      "title": "PVE01_UNZIP_MISSING_FOR_XF_REQUIREMENTS_VERIFY_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L324",
      "kind": "heading",
      "source_line": 324,
      "title": "FRESH5_DEPLOY_SUCCESS_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L330",
      "kind": "heading",
      "source_line": 330,
      "title": "NPMPLUS_SQLITE_PASTE_FAILURE_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L336",
      "kind": "heading",
      "source_line": 336,
      "title": "NPMPLUS_PUBLISH_SCRIPT_WRONG_ENV_SOURCE_525_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L342",
      "kind": "heading",
      "source_line": 342,
      "title": "NPMPLUS_API_LOGIN_MISSED_HTTPS81_AND_JSON_ESCAPE_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L348",
      "kind": "heading",
      "source_line": 348,
      "title": "NPMPLUS_API_AUTH_UNAVAILABLE_MANUAL_ROUTES_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L354",
      "kind": "heading",
      "source_line": 354,
      "title": "EDGE_CERTBOT_TOKEN_FILE_PERMISSION_535_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L360",
      "kind": "heading",
      "source_line": 360,
      "title": "EDGE_CERTBOT_FAILED_DNS_CUTOVER_ABORTED_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L366",
      "kind": "heading",
      "source_line": 366,
      "title": "CLOUDFLARE_TOKEN_NO_ZONE_ACCESS_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L372",
      "kind": "heading",
      "source_line": 372,
      "title": "FORUM_PUBLICATION_FINAL_SUCCESS_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L377",
      "kind": "heading",
      "source_line": 377,
      "title": "FINAL_SNAPSHOT_NAME_TOO_LONG_556_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L384",
      "kind": "heading",
      "source_line": 384,
      "title": "CLOUDFLARE_DNS_AUDIT_TXT_SUBSTRING_GAP_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L391",
      "kind": "heading",
      "source_line": 391,
      "title": "CLOUDFLARE_DNS_CLEANUP_DRYRUN_QUOTE_563_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L396",
      "kind": "heading",
      "source_line": 396,
      "title": "SPF_DUPLICATE_AFTER_565_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L402",
      "kind": "heading",
      "source_line": 402,
      "title": "MSMTP_SECRET_SOURCE_PARSE_ERROR_576_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L408",
      "kind": "heading",
      "source_line": 408,
      "title": "FORUM_MSMTP_MAIL_TRANSPORT_STILL_FAILING_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L414",
      "kind": "heading",
      "source_line": 414,
      "title": "SMTP_PASSWORD_EXPOSED_ROTATE_REQUIRED_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L421",
      "kind": "heading",
      "source_line": 421,
      "title": "NETBIRD_MAILCOW_REPORTED_DOWN_AFTER_SMTP_INCIDENT_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L426",
      "kind": "heading",
      "source_line": 426,
      "title": "FORUM_SMTP_FAILED_CONFIG_DISABLED_AFTER_MAILCOW_BAN_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L432",
      "kind": "heading",
      "source_line": 432,
      "title": "FORUM_OLD_CODEVIPE_CLOUD_BACKUP_STALE_AFTER_FRESH5_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L439",
      "kind": "heading",
      "source_line": 439,
      "title": "FORUM_RESTORE_DRILL_610_STATUS_FLAG_BUG_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L445",
      "kind": "heading",
      "source_line": 445,
      "title": "FORUM_XENFORO_MAIL_SMOKE_TEST_FAILED_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L449",
      "kind": "heading",
      "source_line": 449,
      "title": "XENFORO_MAIL_SMOKE_623_INVALID_ROOT_PATH_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L456",
      "kind": "heading",
      "source_line": 456,
      "title": "FORUM_NEXT_CHAT_KNOWN_ERRORS_AND_CLOSED_INCIDENTS_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L509",
      "kind": "heading",
      "source_line": 509,
      "title": "PARKED_DOMAINS_STAGE4_DNS01_PREFLIGHT_FAILED_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L516",
      "kind": "heading",
      "source_line": 516,
      "title": "PARKED_DOMAINS_STAGE5_BASH_LOCAL_SETU_BUG_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L523",
      "kind": "heading",
      "source_line": 523,
      "title": "PARKED_DOMAINS_STAGE6_TEMP_HTTP_ROOT_VALIDATION_BUG_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L530",
      "kind": "heading",
      "source_line": 530,
      "title": "PARKED_DOMAINS_STAGE7_NEWFI_ROOT_ACME_REDIRECT_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L535",
      "kind": "heading",
      "source_line": 535,
      "title": "PARKED_DOMAINS_STAGE8_DEFAULT_HTTP_TO_HTTPS_REDIRECT_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L541",
      "kind": "heading",
      "source_line": 541,
      "title": "PARKED_DOMAINS_STAGE9_NEWFI_EXACT_PROBE_NEEDED_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L547",
      "kind": "heading",
      "source_line": 547,
      "title": "PARKED_DOMAINS_STAGE10_EXACT_NEWFI_PROBE_OK_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L553",
      "kind": "heading",
      "source_line": 553,
      "title": "PARKED_DOMAINS_STAGE11_LOW_ID_EXACT_ROUTE_FAILED_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L560",
      "kind": "heading",
      "source_line": 560,
      "title": "PARKED_DOMAINS_SWITCH_TO_DNS01_AFTER_HTTP01_FAILURES_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L566",
      "kind": "heading",
      "source_line": 566,
      "title": "PARKED_DOMAINS_STAGE15_FALSE_LOCAL_VALIDATE_ROLLBACK_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L571",
      "kind": "heading",
      "source_line": 571,
      "title": "DOMAIN_ACTIONS_STAGE18_PLACEHOLDER_AND_RENEWAL_PROOF_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L575",
      "kind": "heading",
      "source_line": 575,
      "title": "GRAM1_ROOT_WWW_PLACEHOLDER_CLOSE_STAGE19_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L581",
      "kind": "heading",
      "source_line": 581,
      "title": "PVEPRO_EDGE_LANDING_STAGE21_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L587",
      "kind": "heading",
      "source_line": 587,
      "title": "PVEPRO_STAGE21_LANDING_SERVICE_FAILED_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L592",
      "kind": "heading",
      "source_line": 592,
      "title": "PVEPRO_STAGE22_VALIDATION_AND_COPY_GUARD_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L597",
      "kind": "heading",
      "source_line": 597,
      "title": "TAFTAUTO_CERT_AUTORENEW_BLOCKED_NO_PRIVATE_ACCESS_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L603",
      "kind": "heading",
      "source_line": 603,
      "title": "TAFTAUTO_CERT_AUTORENEW_BLOCKED_NO_PRIVATE_ACCESS_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L609",
      "kind": "heading",
      "source_line": 609,
      "title": "TAFTAUTO_WG_STAGE24_SECRET_AND_IMPORT_RULE_20260701",
      "status": "known"
    },
    {
      "id": "ERR-H-L615",
      "kind": "heading",
      "source_line": 615,
      "title": "TAFTAUTO_WG_PSK_ROTATION_SCRIPT_BROKE_DATAPLANE_20260702",
      "status": "known"
    },
    {
      "id": "ERR-H-L620",
      "kind": "heading",
      "source_line": 620,
      "title": "TAFTAUTO_CERTBOT_CLOUDFLARE_PLUGIN_MISSING_20260702",
      "status": "known"
    },
    {
      "id": "ERR-H-L624",
      "kind": "heading",
      "source_line": 624,
      "title": "HOMEPAGE_SERVICES_YAML_BAD_INDENT_20260702",
      "status": "known"
    },
    {
      "id": "ERR-H-L628",
      "kind": "heading",
      "source_line": 628,
      "title": "HOMEPAGE_SERVICES_YAML_BAD_INDENT_REPAIR_20260702",
      "status": "known"
    },
    {
      "id": "ERR-H-L632",
      "kind": "heading",
      "source_line": 632,
      "title": "TAFTAUTO_CERTBOT_DRYRUN_BAD_FLAG_20260702",
      "status": "known"
    },
    {
      "id": "ERR-H-L636",
      "kind": "heading",
      "source_line": 636,
      "title": "TAFTAUTO_CERT_RENEW_DRYRUN_RATE_LIMITED_20260702",
      "status": "known"
    },
    {
      "id": "ERR-H-L643",
      "kind": "heading",
      "source_line": 643,
      "title": "HOMEPAGE_XENFORO_INFO_INLINE_PYTHON_SYNTAX_ERROR_20260702",
      "status": "known"
    },
    {
      "id": "ERR-H-L647",
      "kind": "heading",
      "source_line": 647,
      "title": "HOMEPAGE_USEFUL_ROUTER_NAME_MISMATCH_20260702",
      "status": "known"
    },
    {
      "id": "ERR-H-L651",
      "kind": "heading",
      "source_line": 651,
      "title": "HOMEPAGE_USEFUL_ROUTER_CARD_NOT_FOUND_20260702",
      "status": "known"
    },
    {
      "id": "ERR-H-L655",
      "kind": "heading",
      "source_line": 655,
      "title": "20260702_CF_TOKEN_AUDIT_BROKEN_COMMAND",
      "status": "known"
    },
    {
      "id": "ERR-H-L661",
      "kind": "heading",
      "source_line": 661,
      "title": "LESSON_20260702_CROWDSEC_NETBIRD_EXIT_ROUTE",
      "status": "known"
    },
    {
      "id": "ERR-H-L668",
      "kind": "heading",
      "source_line": 668,
      "title": "LESSON_20260702_HOMEPAGE_MONITORS_REPAIR_NOT_DELETE",
      "status": "known"
    },
    {
      "id": "ERR-H-L674",
      "kind": "heading",
      "source_line": 674,
      "title": "LESSON_20260702_KUMA_ADD_ONE_MONITOR_ONLY",
      "status": "known"
    },
    {
      "id": "ERR-H-L680",
      "kind": "heading",
      "source_line": 680,
      "title": "LESSON_20260702_DOCKGE_STALE_STACKS_NOT_CONTAINERS",
      "status": "known"
    },
    {
      "id": "ERR-H-L686",
      "kind": "heading",
      "source_line": 686,
      "title": "STAGE4B_MASKED_SQL_QUERY_FAILURE_20260714",
      "status": "known"
    },
    {
      "id": "ERR-H-L691",
      "kind": "heading",
      "source_line": 691,
      "title": "STAGE4C_SCHEMA_MIGRATIONS_ID_ASSUMPTION_20260714",
      "status": "known"
    },
    {
      "id": "ERR-H-L696",
      "kind": "heading",
      "source_line": 696,
      "title": "STAGE4C_PGDUMP_DEV_NULL_FSYNC_INVALID_PROBE_20260714",
      "status": "known"
    },
    {
      "id": "ERR-H-L702",
      "kind": "heading",
      "source_line": 702,
      "title": "STAGE4C_REMOTE_PREP_THIRD_SUBSTEP_FAILED_20260714",
      "status": "known"
    },
    {
      "id": "ERR-H-L708",
      "kind": "heading",
      "source_line": 708,
      "title": "STAGE4C_REMOTE_PREP_GLOB_AFTER_CHMOD_ROOT_CAUSE_20260714",
      "status": "known"
    },
    {
      "id": "ERR-H-L713",
      "kind": "heading",
      "source_line": 713,
      "title": "STAGE4C_MIGRATION003_FINGERPRINT_DOLLAR_QUOTE_FAILURE_20260714",
      "status": "known"
    },
    {
      "id": "ERR-H-L718",
      "kind": "heading",
      "source_line": 718,
      "title": "STAGE4C_SEAL_OUTER_RC_MASKING_20260714",
      "status": "known"
    },
    {
      "id": "ERR-H-L724",
      "kind": "heading",
      "source_line": 724,
      "title": "STAGE4C_DIAGNOSIS_EXPECTED_DERIVED_FILE_ON_VM180_20260714",
      "status": "known"
    },
    {
      "id": "ERR-H-L729",
      "kind": "heading",
      "source_line": 729,
      "title": "STAGE4C_NO_JOBS_RUNNING_TEXT_COUNTED_AS_JOB_20260714",
      "status": "known"
    },
    {
      "id": "ERR-H-L735",
      "kind": "heading",
      "source_line": 735,
      "title": "STAGE4D_ADAPTER_SOURCE_AUDIT_ABORTED_BEFORE_FINAL_MARKERS_20260714",
      "status": "known"
    },
    {
      "id": "ERR-H-L741",
      "kind": "heading",
      "source_line": 741,
      "title": "STAGE4D_LOCAL_EXPANSION_OF_REMOTE_Q_UNDER_NOUNSET_20260714",
      "status": "known"
    },
    {
      "id": "ERR-H-L747",
      "kind": "heading",
      "source_line": 747,
      "title": "STAGE4D_REMOTE_PYTHON311_ADAPTER_SELFTEST_RC1_20260714",
      "status": "known"
    },
    {
      "id": "ERR-H-L752",
      "kind": "heading",
      "source_line": 752,
      "title": "STAGE4D_PYTHON311_FSTRING_COMPATIBILITY_AND_REPRO_VALIDATOR_20260714",
      "status": "known"
    },
    {
      "id": "ERR-H-L759",
      "kind": "heading",
      "source_line": 759,
      "title": "STAGE4E_DESIGN_VALIDATOR_ABORTED_BEFORE_LOCAL_VALIDATION_MARKER_20260714",
      "status": "known"
    },
    {
      "id": "ERR-H-L765",
      "kind": "heading",
      "source_line": 765,
      "title": "STAGE4E_VALIDATOR_SCANNED_PYC_AND_OWN_FORBIDDEN_LITERALS_20260714",
      "status": "known"
    },
    {
      "id": "ERR-H-L772",
      "kind": "heading",
      "source_line": 772,
      "title": "STAGE4E_V2_VALIDATOR_FAILED_STATIC_COMPILE_20260714",
      "status": "known"
    },
    {
      "id": "ERR-H-L778",
      "kind": "heading",
      "source_line": 778,
      "title": "STAGE4E_PIPESTATUS_LOST_AFTER_FIRST_ASSIGNMENT_20260714",
      "status": "known"
    },
    {
      "id": "ERR-H-L784",
      "kind": "heading",
      "source_line": 784,
      "title": "STAGE4F_VALIDATOR_EXPECTED_HEALTH_REFRESH_FROM_NONWRITING_BACKUP_SCRIPT_20260714",
      "status": "known"
    },
    {
      "id": "ERR-H-L791",
      "kind": "heading",
      "source_line": 791,
      "title": "STRICT_RULE_20260714_CLOSE_TAILS_IMMEDIATELY",
      "status": "known"
    },
    {
      "id": "ERR-H-L798",
      "kind": "heading",
      "source_line": 798,
      "title": "ERROR_20260714_DEPENDENCY_FACT_QUERY_GLOBAL_LIMIT",
      "status": "known"
    },
    {
      "id": "ERR-H-L806",
      "kind": "heading",
      "source_line": 806,
      "title": "ERROR_20260714_COLLECTOR_PATCH_REQUIREMENT_PATTERN_MISMATCH",
      "status": "known"
    },
    {
      "id": "ERR-H-L814",
      "kind": "heading",
      "source_line": 814,
      "title": "ERROR_20260714_PRIVILEGED_FILE_REDIRECTION_BEFORE_SUDO",
      "status": "known"
    },
    {
      "id": "ERR-H-L822",
      "kind": "heading",
      "source_line": 822,
      "title": "ERROR_20260714_COLLECTOR_RUN_COLUMN_ASSUMPTION",
      "status": "known"
    },
    {
      "id": "ERR-H-L830",
      "kind": "heading",
      "source_line": 830,
      "title": "ERROR_20260714_REMOTE_STDIN_ARGUMENT_SHIFT",
      "status": "known"
    },
    {
      "id": "ERR-H-L838",
      "kind": "heading",
      "source_line": 838,
      "title": "ERROR_20260714_OVERSIZED_COMMAND_PARSE_FAILURE",
      "status": "known"
    },
    {
      "id": "ERR-H-L847",
      "kind": "heading",
      "source_line": 847,
      "title": "ERROR_20260714_HOMELAB_ADMIN_HELP_RC_ASSUMPTION",
      "status": "known"
    },
    {
      "id": "ERR-H-L856",
      "kind": "heading",
      "source_line": 856,
      "title": "ERROR_20260715_EXPECTED_NEGATIVE_RC_TRAP_CLASSIFICATION",
      "status": "known"
    },
    {
      "id": "ERR-H-L864",
      "kind": "heading",
      "source_line": 864,
      "title": "ERROR_20260715_DUPLICATE_MACHINE_MARKER_COUNT",
      "status": "known"
    },
    {
      "id": "ERR-H-L875",
      "kind": "heading",
      "source_line": 875,
      "title": "ERROR_20260715_OUTER_WRAPPER_SHELL_SYNTAX",
      "status": "known"
    },
    {
      "id": "ERR-H-L888",
      "kind": "heading",
      "source_line": 888,
      "title": "ERROR_20260715_INLINE_REMOTE_SHELL_IN_APPLY_PHASE",
      "status": "known"
    },
    {
      "id": "ERR-H-L902",
      "kind": "heading",
      "source_line": 902,
      "title": "ERROR_20260715_OPTIONAL_RUN_DIRECTORY_FIND_UNDER_PIPEFAIL",
      "status": "known"
    },
    {
      "id": "ERR-H-L912",
      "kind": "heading",
      "source_line": 912,
      "title": "ERROR_20260715_PG_CONSTRAINT_CONTYPE_CHAR_CONCAT",
      "status": "known"
    },
    {
      "id": "ERR-H-L925",
      "kind": "heading",
      "source_line": 925,
      "title": "ERROR_20260715_LIVE_COLLECTOR_VERIFIER_WRONG_PATH",
      "status": "known"
    }
  ],
  "rules": [
    {
      "id": "CHECK-1",
      "source_line": 12,
      "text": "команда не должна быть большим paste."
    },
    {
      "id": "CHECK-2",
      "source_line": 13,
      "text": "команда не должна содержать большой here-doc."
    },
    {
      "id": "CHECK-3",
      "source_line": 14,
      "text": "команда не должна смешивать Markdown, backticks и shell-логику."
    },
    {
      "id": "CHECK-4",
      "source_line": 15,
      "text": "команда не должна иметь вложенный ssh с несколькими уровнями кавычек."
    },
    {
      "id": "CHECK-5",
      "source_line": 16,
      "text": "команда не должна печатать секреты."
    },
    {
      "id": "CHECK-6",
      "source_line": 17,
      "text": "если создаётся файл, сначала маленький безопасный шаг, потом проверка."
    },
    {
      "id": "CHECK-7",
      "source_line": 18,
      "text": "если команда длиннее 8 строк, её нельзя давать в интерактивный shell."
    },
    {
      "id": "CHECK-8",
      "source_line": 19,
      "text": "для edge-vm использовать debian@[PRIVATE_IP] и sudo."
    },
    {
      "id": "CHECK-9",
      "source_line": 20,
      "text": "для forum-prod использовать pve02 и ключ [SENSITIVE_PATH]"
    },
    {
      "id": "CHECK-10",
      "source_line": 21,
      "text": "Corosync не трогать без отдельного плана и rollback."
    }
  ]
}

OUTPUT_END
CHAT_OUTPUT_END
