CHAT_OUTPUT_BEGIN
COMMAND_ID=HOMELAB-CLUSTER-KB-V1-GITEA-DEFINED-CLUSTER-FACT-GAP-READ-ONLY-20260805T131000Z
STATUS=OK
RC=0
HOST=pve01
MODE=verify
COMPONENT=cluster-knowledge-base-error-system
REFERENCE_REGISTER_CHECK=OK
REFERENCE_SHA256=5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e
ERROR_REGISTER_CHECK=OK
ERROR_REGISTER_SHA256=24934a2c7fa5c26f6e828583c4aefac7f143b40c0171736ed7571e617d55ab83
COMMAND_SHA256=9088e8f5ce54b2b810894f0d1860a25390b3179b29d85f63e19e6f81c9f066a6
DUPLICATE_FAILED_COMMAND_BLOCKED=false
EXECUTION_STARTED=true
CHANGE_DECLARED=false
RESULT_CONTRACT_VALID=true
RESULT_CONTRACT_STATUS=NOT_APPLICABLE
RESULT_CONTRACT_ERROR=NONE
COMMAND_RC=0
CHANGES_MADE=false
ROLLBACK_STARTED=false
ROLLBACK_RESTORED=null
MUTATION_OUTCOME=NO_MUTATION
SANITIZED=yes
SECRETS_INCLUDED=no
PRIVATE_ADDRESSES_INCLUDED=no
RAW_EVIDENCE_SHA256=6c2d4b05d4a1d95e2dfbc5ebcff23469e469ec2d5e1550a49d07c3ad51a5f205
SANITIZED_OUTPUT_SHA256=6c2d4b05d4a1d95e2dfbc5ebcff23469e469ec2d5e1550a49d07c3ad51a5f205
OUTPUT_BEGIN
HOMELAB_RESULT_CONTRACT={"changes_made":false,"command_id":"HOMELAB-CLUSTER-KB-V1-GITEA-DEFINED-CLUSTER-FACT-GAP-READ-ONLY-20260805T131000Z","command_rc":0,"mutation_outcome":"NO_MUTATION","output_truncated_in_json":false,"rc":0,"rollback_restored":null,"rollback_started":false,"status":"OK","version":1}
{"api":{"fetch_failure_count":0,"fetched_file_count":104,"fetched_total_bytes":297443,"route_coverage":{"blob":true,"branch":true,"repo":true,"tree":true},"text_file_count":104,"tree":{"blob_count":125,"body_emitted":false,"complete":true,"entry_count":161,"exact_commit":"fe1221b06643db3b00a621b0230f92a46a4edc2b","json_parse_ok":true,"status":200,"tree_count":36,"truncated":false}},"authorization_sent":true,"authorization_values_emitted":false,"branch":{"body_emitted":false,"branch":"main","commit_sha":"fe1221b06643db3b00a621b0230f92a46a4edc2b","json_parse_ok":true,"matches_expected_commit":true,"status":200},"changes_made":false,"command_id":"HOMELAB-CLUSTER-KB-V1-GITEA-DEFINED-CLUSTER-FACT-GAP-READ-ONLY-20260805T131000Z","command_rc":0,"credential_values_emitted":false,"endpoint_summary":{"address_literal_occurrence_count":81,"raw_addresses_emitted":false,"raw_url_occurrence_count":6,"raw_urls_emitted":false,"scope_counts":{"external_hostname":2,"known_external_gitea":1,"private":1},"tokens":[{"host_scope":"external_hostname","host_sha256":"8005522570737cc57f67406b7c6fb5d572797e4ba947dfb0bf3befee3639e667","path_depth":2,"port":null,"scheme":"https"},{"host_scope":"known_external_gitea","host_sha256":"92feea413ab6bd72fdd8b9102d872777d284d002a6be3e5323ca6e848105ee88","path_depth":2,"port":null,"scheme":"https"},{"host_scope":"external_hostname","host_sha256":"11d6a89894efa93b767088253526b02bac35874c1f63783507a3fb1d3b194e8a","path_depth":3,"port":null,"scheme":"https"},{"host_scope":"private","host_sha256":"7f25d5297f515cb92000161cbee4cb49a7fbbbd1c0ef2466a5d88644f4bb6d69","path_depth":1,"port":8081,"scheme":"http"}],"unique_endpoint_token_count":4},"error_fingerprint":"dadccd2e354a457c337b9089047ec0a0918a5d3cccd5a188b83f8dce425a59ab","error_registry":{"content_sha256":"8051e3e761493a1b7088a0f3ed7e0aa9218673f453ca88171178364d26701f64","duplicate_fingerprint_count":0,"duplicate_id_count":0,"duplicate_ids":[],"fingerprint_value_count":0,"fingerprint_values_emitted":false,"migratable_record_count":0,"migration_coverage_ratio":0.0,"path":"errors/regression-cases.json","present":true,"prevention_evidence_count":0,"raw_records_emitted":false,"record_count":59,"status_counts":{},"unique_fingerprint_count":0,"unique_id_count":59},"fact_record_summary":{"domain_record_counts":{"access":10,"freshness":25,"identity":16},"emitted_record_count":25,"raw_record_values_emitted":false,"secret_hashes_emitted":false,"source_record_counts":{"inventory/access-paths.json":9,"inventory/cluster-nodes.json":3,"observed/cluster-guests.json":11,"observed/current-context.json":2},"top_fields":["status","id","node","type","name","vmid","address","service"],"unique_record_count":25},"fact_records":[],"fact_records_omitted_but_count_retained":true,"files_written":false,"http_methods":["GET"],"mutation_blueprint":{"atomicity_requirements":["read all exact source blobs again at the expected branch commit","build the full candidate tree in a temporary directory","validate JSON, JSONL, schemas, gate self-tests and repository tests","create byte-for-byte backup objects for every modified blob","create one commit against the expected parent commit","verify the new commit tree and CI-visible files","on any failure restore the exact previous branch state"],"code_root_choice":{"basis":"existing_top_level_code_or_directory","existing_python_file_count":2,"path":"tools/pre_command_gate.py","path_exists":false,"root":"tools"},"files_to_create_or_replace":["docs/CLUSTER-HANDBOOK.md","inventory/cluster-reference.json","docs/ERROR-SYSTEM-V2.md","schemas/error-record.schema.json","errors/error-registry.jsonl","tools/pre_command_gate.py","tests/test_error_system_v2.py"],"files_to_update_conditionally":[".gitea/workflows/ci.yml","docs/WORKFLOW.md"],"migration_requirements":{"append_runtime_failures_from_known_error_gate":true,"derive_fingerprint_only_from_sanitized_stable_fields":true,"mark_parallel_draft_superseded_only_after_validation":true,"preserve_all_existing_records":true,"require_prevention_test_for_each_active_record":true},"migration_source":"errors/regression-cases.json","ready":true,"transaction_preconditions":{"branch":"main","exact_source_sha256":{".gitea/workflows/ci.yml":"b078ac1b57e0846a90fd6acb1f3cb0866dbed0fb3bbde0d7070d29a344907681","docs/WORKFLOW.md":"87a6f9a0960ee7240261138ecea122fd8fbd727d87bb0b27b02c103c3bc2f122","errors/regression-cases.json":"8051e3e761493a1b7088a0f3ed7e0aa9218673f453ca88171178364d26701f64","schemas/change.schema.json":"57fbce7c6ca1f53c5ec2f8cd604d787f01019a2184b611e3b4406b467331d0af","schemas/context.schema.json":"84c3c29984402b25c102575b54bdb82544844e455d3d2e115fefc5f42021e043"},"expected_branch_commit":"fe1221b06643db3b00a621b0230f92a46a4edc2b","proposed_paths":[{"creation_precondition":"must_remain_absent","exists_at_exact_commit":false,"path":"docs/CLUSTER-HANDBOOK.md"},{"creation_precondition":"must_remain_absent","exists_at_exact_commit":false,"path":"inventory/cluster-reference.json"},{"creation_precondition":"must_remain_absent","exists_at_exact_commit":false,"path":"docs/ERROR-SYSTEM-V2.md"},{"creation_precondition":"must_remain_absent","exists_at_exact_commit":false,"path":"schemas/error-record.schema.json"},{"creation_precondition":"must_remain_absent","exists_at_exact_commit":false,"path":"errors/error-registry.jsonl"},{"creation_precondition":"must_remain_absent","exists_at_exact_commit":false,"path":"tests/test_error_system_v2.py"},{"creation_precondition":"must_remain_absent","exists_at_exact_commit":false,"path":"tools/pre_command_gate.py"}],"repository":"homelab-admin/homelab-ops"}},"mutation_outcome":"NO_MUTATION","network_requests_made":true,"next_action":"RUN_ONE_IDEMPOTENT_GITEA_TRANSACTION_CREATE_CLUSTER_HANDBOOK_AND_ERROR_SYSTEM_V2","output_truncated_in_json":false,"pre_command_known_error_gate":{"checked":true,"known_error_count":28,"known_error_ids":["candidate-file-limit-600-20260805","runner-wrapper-mismatch-after-success-20260805","canonical-cluster-handbook-ambiguous-20260805","pvesh-adapter-context-unreadable-20260805","homelab-ops-bare-repository-not-found-local-20260805","gitea-network-fallback-stage-not-emitted-20260805","gitea-owner-hardcoded-homelab-admin-20260805","gitea-git-auth-required-or-credential-unavailable-20260805","gitea-process-self-match-payload-name-20260805","sanitize-bool-attributeerror-20260805","reader-v3-path-misclassified-as-route-20260805","reader-v3-loopback-assumption-20260805","reader-v3-capability-not-treated-as-secret-20260805","reader-v3-systemd-unit-fed-to-python-ast-20260805","reader-v3-helper-control-flow-not-traced-20260805","reader-v3-post-capability-operation-not-derived-20260805","reader-v3-detected-operations-not-tested-20260805","reader-v3-manifest-global-not-bound-in-sandbox-20260805","reader-v3-result-file-second-source-not-read-20260805","reader-v3-negative-control-mixed-with-production-20260805","reader-v3-manifest-schema-guessed-20260805","reader-result-output-bound-after-compaction-20260805","reader-v3-generation-record-shape-guessed-20260805","reader-v3-result-file-assumed-standalone-json-20260805","reader-v3-gitea-detail-marker-false-inventory-20260805","reverse-proxy-runtime-not-visible-on-host-20260805","gitea-public-owner-not-anonymously-discoverable-20260805","exact-output-long-line-not-projectable-by-portal-view-20260805"],"previous_exact_identity_verified":true},"previous_exact_verification":{"bundle_bytes_ok":true,"bundle_sha256_ok":true,"capsule_member_match_count":0,"capsule_sha256_basis":"verified exact lane before command publication; optional bundle member count reported separately","checks":{"changes_made_false":true,"command_id":true,"command_rc_zero":true,"contract_ok":true,"mutation_outcome_no_mutation":true,"projection_ok":true,"rollback_started_false":true,"runner_rc_zero":true,"runner_status_ok":true},"embedded_output_match_count":1,"exists":true,"identity_fully_verified":true,"member_count":6,"path_from_exact_result":true,"runner_json_match_count":1,"runner_text_match_count":1,"unsafe_member_rejected":false},"private_addresses_emitted":false,"raw_repository_contents_emitted":false,"rc":0,"read_only":true,"ready_for_idempotent_mutation":true,"regression_tests":{"endpoint_token_hides_host":true,"git_blob_oid_semantics":true,"known_error_gate_complete":true,"passed":true,"private_address_not_emitted":true,"safe_record_fingerprint_deterministic":true,"sanitize_bool_type_safe":true,"secret_value_redacted_before_record_hash":true,"strict_handbook_excludes_error_registry":true},"repository":{"archived":false,"default_branch":"main","empty":false,"full_name":"homelab-admin/homelab-ops","identity_safe":true,"mirror":false,"name":"homelab-ops","owner":"homelab-admin","private":true,"size":3837},"result_projection":{"budget_bytes":24976,"bytes":24326,"steps":["source_summaries_24","fact_records_32","drop_json_shapes_and_limit_headings","handbook_candidates_4","omit_fact_records"]},"rollback_restored":null,"rollback_started":false,"root_cause_classification":"GITEA_CLUSTER_FACTS_AND_DOCUMENT_GAPS_EXACTLY_ANALYZED_MUTATION_READY","schema":1,"secret_hashes_emitted":false,"source_summaries":[{"blob_sha":"7a8cb9e2dd5bc1235937aa211293b47ed4e26263","bytes":29485,"content_sha256":"8051e3e761493a1b7088a0f3ed7e0aa9218673f453ca88171178364d26701f64","domains":{"access":9,"backup":22,"error_system":38,"freshness":5,"internal_external":1,"repair":38,"restore":9,"services":8},"headings":[],"json_parse_ok":true,"path":"errors/regression-cases.json","raw_content_emitted":false,"secret_key_name_occurrence_count":60},{"blob_sha":"bad7037197f12ce9ce0b8be3b5723345699680b5","bytes":2289,"content_sha256":"e07ccfac39f862c2bce2da0d31112e8e055ca9d3f23a01a8f33302863239203a","domains":{"access":1,"backup":0,"error_system":1,"freshness":1,"internal_external":2,"repair":0,"restore":0,"services":0},"headings":[],"json_parse_ok":true,"path":"changes/CR-2026-0018/regression-cases-draft.json","raw_content_emitted":false,"secret_key_name_occurrence_count":0},{"blob_sha":"d072c291ee6b99466be0f4897e9d1308ee02e2b2","bytes":1134,"content_sha256":"df400edc01d8201665c92e7434f8b0663eac0d34aab35e918abfb9bb873877e8","domains":{"access":0,"backup":0,"error_system":0,"freshness":2,"internal_external":0,"repair":1,"restore":0,"services":4},"headings":["Caller inventory requirements","Search surfaces","Required record","Gate"],"json_parse_ok":false,"path":"changes/CR-2026-0018/caller-inventory-requirements.md","raw_content_emitted":false,"secret_key_name_occurrence_count":0},{"blob_sha":"823d591344d8b8f67e213e2b890acdbd7bfc9864","bytes":211,"content_sha256":"d3347712264b62c8768c952575574140c388df6d4d045c824ed9a8722bad1454","domains":{"access":0,"backup":0,"error_system":0,"freshness":0,"internal_external":0,"repair":1,"restore":0,"services":0},"headings":["Changes"],"json_parse_ok":false,"path":"changes/README.md","raw_content_emitted":false,"secret_key_name_occurrence_count":0},{"blob_sha":"c42de139cdf529611d50ad86291fb40df5bc0d09","bytes":1652,"content_sha256":"ac5dc881dcd9fcb72644bc893e866f463c9c2b9b4544e32434e21b5d34168fb5","domains":{"access":9,"backup":0,"error_system":0,"freshness":0,"internal_external":0,"repair":0,"restore":0,"services":0},"headings":[],"json_parse_ok":true,"path":"inventory/access-paths.json","raw_content_emitted":false,"secret_key_name_occurrence_count":0},{"blob_sha":"5a1fb00b587a813cee2a7bd98be451bd22173f5e","bytes":4952,"content_sha256":"6b732f5ce3af0e8066d020bf10ee81b764b6d93ee5f08a9c8f17d0075eeced32","domains":{"access":0,"backup":0,"error_system":0,"freshness":0,"internal_external":0,"repair":0,"restore":1,"services":22},"headings":[],"json_parse_ok":true,"path":"observed/cluster-guests.json","raw_content_emitted":false,"secret_key_name_occurrence_count":0},{"blob_sha":"3327f8b644b3f3e83774d5e7748a8dfa6b4f1ebf","bytes":958,"content_sha256":"5e7236f3b8072ff6115ab5bc50ad448425882e86463e90d85df1a1c8eb502d65","domains":{"access":0,"backup":1,"error_system":0,"freshness":0,"internal_external":0,"repair":1,"restore":0,"services":2},"headings":["Архитектура управления","Разделение ответственности"],"json_parse_ok":false,"path":"docs/ARCHITECTURE.md","raw_content_emitted":false,"secret_key_name_occurrence_count":0},{"blob_sha":"3b034041ab628d15e74a7167b5545b366aeb4ad1","bytes":526,"content_sha256":"87a6f9a0960ee7240261138ecea122fd8fbd727d87bb0b27b02c103c3bc2f122","domains":{"access":0,"backup":0,"error_system":0,"freshness":1,"internal_external":0,"repair":1,"restore":0,"services":0},"headings":["Change workflow"],"json_parse_ok":false,"path":"docs/WORKFLOW.md","raw_content_emitted":false,"secret_key_name_occurrence_count":0},{"blob_sha":"f03826dcf6f8c6af4a8a78206c1b841ffaffd2ca","bytes":3020,"content_sha256":"91c66d8ee6622d925174055599ad5ece6270c35f8d7d7967a26609f7e290c7e6","domains":{"access":0,"backup":1,"error_system":3,"freshness":4,"internal_external":0,"repair":1,"restore":1,"services":0},"headings":["Одна постоянная команда","Что проверяется автоматически","Правила безопасности"],"json_parse_ok":false,"path":"docs/skladchik-cookie-refresh.md","raw_content_emitted":false,"secret_key_name_occurrence_count":17},{"blob_sha":"b4979003f9bb899f4a5de41ede47eacaeac48dee","bytes":2264,"content_sha256":"e74454f528cdb5522e2c43d959472a04b7cc36e33da7aa5a5bd664fc79015344","domains":{"access":2,"backup":0,"error_system":0,"freshness":2,"internal_external":0,"repair":0,"restore":0,"services":1},"headings":["Skladchik Moderator Assistant","Назначение","Что планируется подготовить позднее","Что сейчас не делать"],"json_parse_ok":false,"path":"docs/planned/skladchik-moderator-assistant.md","raw_content_emitted":false,"secret_key_name_occurrence_count":0},{"blob_sha":"9586f62339cc657d18d033c104229458ebcadb58","bytes":1290,"content_sha256":"cfb21fbf6ead4b3537b5f6f43e19602365b7b16adba5f317e48f8f19f5d40475","domains":{"access":0,"backup":0,"error_system":2,"freshness":0,"internal_external":1,"repair":1,"restore":0,"services":0},"headings":[],"json_parse_ok":true,"path":"policies/operating-policy.json","raw_content_emitted":false,"secret_key_name_occurrence_count":1},{"blob_sha":"2032d3ebab4794625854b8c80d23ab72aac9998b","bytes":1436,"content_sha256":"e06b7e6285eda2885ef913aa954a70abc7c1d892199a8b7cea2ada98b8edba34","domains":{"access":0,"backup":2,"error_system":3,"freshness":0,"internal_external":0,"repair":3,"restore":2,"services":0},"headings":[],"json_parse_ok":true,"path":"policies/cluster-cloud-quorum.json","raw_content_emitted":false,"secret_key_name_occurrence_count":0},{"blob_sha":"8352f9a2024afea21049cd7700e460ee096c6c53","bytes":969,"content_sha256":"57fbce7c6ca1f53c5ec2f8cd604d787f01019a2184b611e3b4406b467331d0af","domains":{"access":0,"backup":2,"error_system":0,"freshness":0,"internal_external":0,"repair":2,"restore":0,"services":0},"headings":[],"json_parse_ok":true,"path":"schemas/change.schema.json","raw_content_emitted":false,"secret_key_name_occurrence_count":0},{"blob_sha":"7dc9476a8ca0227b4d5bf0cbd2c706c60af21119","bytes":539,"content_sha256":"84c3c29984402b25c102575b54bdb82544844e455d3d2e115fefc5f42021e043","domains":{"access":0,"backup":0,"error_system":0,"freshness":0,"internal_external":0,"repair":0,"restore":0,"services":0},"headings":[],"json_parse_ok":true,"path":"schemas/context.schema.json","raw_content_emitted":false,"secret_key_name_occurrence_count":0},{"blob_sha":"3d6801bd6e7faefd1fc4579c41dc387f3dd1a9f0","bytes":318,"content_sha256":"b078ac1b57e0846a90fd6acb1f3cb0866dbed0fb3bbde0d7070d29a344907681","domains":{"access":0,"backup":0,"error_system":1,"freshness":0,"internal_external":0,"repair":0,"restore":0,"services":1},"headings":[],"json_parse_ok":false,"path":".gitea/workflows/ci.yml","raw_content_emitted":false,"secret_key_name_occurrence_count":0},{"blob_sha":"68ae87029a1660255df02ff192e5b9206e9a6c05","bytes":13579,"content_sha256":"d3108777e5094468aa3e633740ce8a56c90ca957a9a62932be896bbe784680b0","domains":{"access":22,"backup":23,"error_system":16,"freshness":3,"internal_external":1,"repair":22,"restore":10,"services":13},"headings":[],"json_parse_ok":true,"path":"tasks/skladchik-reports-monitor-controlled-reauth-v1/task.json","raw_content_emitted":false,"secret_key_name_occurrence_count":43},{"blob_sha":"6e22f5ca60d95965765c03ac1d012631aaae68b0","bytes":6750,"content_sha256":"3a8fdfb6b4b64880012fcc3bc6fee4be6f101377310325541f9776de6d1623f7","domains":{"access":0,"backup":4,"error_system":16,"freshness":4,"internal_external":2,"repair":18,"restore":1,"services":28},"headings":[],"json_parse_ok":true,"path":"tasks/homelab-logrotate-namespace-latch-clearance-v1/task.json","raw_content_emitted":false,"secret_key_name_occurrence_count":0},{"blob_sha":"a1528e7cbc2b1027bfd7faa220bf1f096cdde1f5","bytes":3665,"content_sha256":"666072447ba11d346772f62f274dadc974c4463e20f67e67f82f228f1fcf2ce8","domains":{"access":20,"backup":17,"error_system":1,"freshness":1,"internal_external":0,"repair":4,"restore":10,"services":7},"headings":[],"json_parse_ok":false,"path":"tasks/cluster-cloud-quorum-vm160-canary-v1/phases/rollback.sh","raw_content_emitted":false,"secret_key_name_occurrence_count":0},{"blob_sha":"d2adf1bf345063da2b02040697f4358ba4ca4ae1","bytes":4667,"content_sha256":"a49bcb32ac7212d7fb9768db8a277cb5525c873c84dd6fb633edae35dc6de532","domains":{"access":8,"backup":14,"error_system":9,"freshness":1,"internal_external":0,"repair":1,"restore":6,"services":10},"headings":[],"json_parse_ok":false,"path":"tasks/cluster-cloud-quorum-vm160-canary-v1/phases/preflight.sh","raw_content_emitted":false,"secret_key_name_occurrence_count":0},{"blob_sha":"c6f94aa845bc4cd8fc061e5e03e0fd7771a01bc6","bytes":7440,"content_sha256":"636254d2526f0f62184d47cdb4c30c2831b11869c2000c557666f60b55d7691b","domains":{"access":13,"backup":24,"error_system":13,"freshness":0,"internal_external":0,"repair":12,"restore":4,"services":8},"headings":[],"json_parse_ok":true,"path":"tasks/cluster-cloud-quorum-vm160-canary-v1/task.json","raw_content_emitted":false,"secret_key_name_occurrence_count":2},{"blob_sha":"9cc7d2fa3bc044d311500a5cf798273c79e39c35","bytes":4233,"content_sha256":"ac0885c9762b99f360256ad3b3894f9cbcc4a8deab529a19ef264fe446bff029","domains":{"access":8,"backup":16,"error_system":8,"freshness":1,"internal_external":0,"repair":7,"restore":0,"services":11},"headings":[],"json_parse_ok":false,"path":"tasks/cluster-cloud-quorum-vm160-canary-v1/phases/verify.sh","raw_content_emitted":false,"secret_key_name_occurrence_count":0},{"blob_sha":"774e2b0e591c9ada9aac9700a1b8427645284f1e","bytes":4665,"content_sha256":"34de7dd0cc60c90c1b74e7a91334cb737d33c761882d1483d5b39f15b439c6f1","domains":{"access":13,"backup":19,"error_system":1,"freshness":1,"internal_external":0,"repair":1,"restore":0,"services":7},"headings":[],"json_parse_ok":false,"path":"tasks/cluster-cloud-quorum-vm160-canary-v1/phases/apply.sh","raw_content_emitted":false,"secret_key_name_occurrence_count":3},{"blob_sha":"938db71d80350ac328ec90fe7bb5176a4d6d50ac","bytes":2867,"content_sha256":"3b8687392163cf5b6f8b0874087320fe74ceaa5fee897dd0e7762d8c71476a1c","domains":{"access":4,"backup":4,"error_system":1,"freshness":0,"internal_external":0,"repair":8,"restore":11,"services":3},"headings":[],"json_parse_ok":false,"path":"tasks/skladchik-reports-monitor-controlled-reauth-v1/phases/rollback.sh","raw_content_emitted":false,"secret_key_name_occurrence_count":2},{"blob_sha":"aefe7ac6860ec2107c281485b35c8cba1f1196ef","bytes":4846,"content_sha256":"cfde805604d58d87d975584431aeb024bef21e863c4293d4726e5504415fe9bc","domains":{"access":0,"backup":6,"error_system":5,"freshness":2,"internal_external":1,"repair":3,"restore":9,"services":0},"headings":[],"json_parse_ok":false,"path":"tests/test_cr_2026_0012_skladchik_cookie_refresh_runbook.py","raw_content_emitted":false,"secret_key_name_occurrence_count":21}],"status":"OK","strict_handbook":{"candidates":[{"canonical_phrase_hits":0,"content_sha256":"91c66d8ee6622d925174055599ad5ece6270c35f8d7d7967a26609f7e290c7e6","covered_domains":["backup","error_system","repair","restore"],"headings":["Одна постоянная команда","Что проверяется автоматически","Правила безопасности"],"path":"docs/skladchik-cookie-refresh.md","score":80,"title_signal":false},{"canonical_phrase_hits":1,"content_sha256":"5e7236f3b8072ff6115ab5bc50ad448425882e86463e90d85df1a1c8eb502d65","covered_domains":["backup","repair","services"],"headings":["Архитектура управления","Разделение ответственности"],"path":"docs/ARCHITECTURE.md","score":75,"title_signal":false},{"canonical_phrase_hits":1,"content_sha256":"d9cb129e009176a7dde2a07f59760acddd9e17237eef563e97a55b3e62838bd1","covered_domains":["repair"],"headings":["homelab-ops","Порядок работы","Локальная проверка"],"path":"README.md","score":55,"title_signal":true},{"canonical_phrase_hits":0,"content_sha256":"e74454f528cdb5522e2c43d959472a04b7cc36e33da7aa5a5bd664fc79015344","covered_domains":["access","services"],"headings":["Skladchik Moderator Assistant","Назначение","Что планируется подготовить позднее","Что сейчас не делать","Условие возобновления"],"path":"docs/planned/skladchik-moderator-assistant.md","score":40,"title_signal":false}],"path":null,"previous_loose_candidate_rejected":"errors/regression-cases.json","qualified_count":0,"rejection_reason":"error registry is not a cluster handbook under the strict source-class definition","status":"NOT_FOUND","strict_definition":{"allowed_source_classes":["docs","inventory","root index"],"excluded_source_classes":["errors","changes","tasks","tests","workflows","schemas"],"minimum_domains":6,"requires_canonical_phrase":true,"requires_cluster_title":true}},"verified_gaps":[{"evidence":{"qualified_count":0,"strict_status":"NOT_FOUND"},"gap_id":"canonical_cluster_handbook_absent","remediation":"create one canonical docs/CLUSTER-HANDBOOK.md and link every fact to an exact machine-readable source","severity":"BLOCKING"},{"evidence":{"path_verified_absent":true},"gap_id":"machine_readable_cluster_reference_absent","remediation":"create inventory/cluster-reference.json with source_sha256, verified_at and stale/unknown states","severity":"BLOCKING"},{"evidence":{"record_count":0},"gap_id":"structured_backup_restore_facts_absent","remediation":"materialize backup_restore facts into the machine-readable cluster reference","severity":"HIGH"},{"evidence":{"record_count":0},"gap_id":"structured_repair_facts_absent","remediation":"materialize repair facts into the machine-readable cluster reference","severity":"HIGH"},{"evidence":{"record_count":0},"gap_id":"structured_scope_facts_absent","remediation":"materialize scope facts into the machine-readable cluster reference","severity":"HIGH"},{"evidence":{"error_record_count":59,"fingerprint_count":0},"gap_id":"error_registry_has_no_fingerprints","remediation":"seed stable normalized fingerprints and block duplicate failed fingerprints before publication","severity":"BLOCKING"},{"evidence":{"error_record_count":59,"prevention_evidence_count":0},"gap_id":"error_registry_has_no_prevention_evidence","remediation":"require one positive and one negative prevention test for every active error record","severity":"BLOCKING"},{"evidence":{"ci_mentions_fingerprint":false,"ci_mentions_pre_command_gate":false},"gap_id":"ci_does_not_enforce_error_fingerprint_gate","remediation":"wire the pre-command gate and registry/schema tests into .gitea/workflows/ci.yml","severity":"BLOCKING"},{"evidence":{"both_present":true,"content_sha256_equal":false},"gap_id":"parallel_draft_and_canonical_error_registries_diverge","remediation":"declare canonical ownership and mark the draft superseded after migration","severity":"MEDIUM"},{"evidence":{"matching_path_count":0},"gap_id":"superseded_command_registry_absent","remediation":"record superseded command_id/capsule/result relationships during post-result ingestion","severity":"HIGH"}],"workflow_gate_signals":{"ci_mentions_error_registry":false,"ci_mentions_fingerprint":false,"ci_mentions_pre_command_gate":false,"ci_present":true,"repository_mentions_duplicate_failed_command_blocked":false,"repository_mentions_error_register_checked":false,"repository_mentions_reference_register_checked":false}}

OUTPUT_END
CHAT_OUTPUT_END
