{
  "phase_id": "phase-02",
  "category_id": "architecture_engineering_core",
  "doc_id": "panel_navigation_spec",
  "source_path": "/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json",
  "documentation_branch_status": "CUSTOM_BRANCH",
  "bucket_statuses_from_docs_index": {
    "Prerequisites": "ACTIVE",
    "Installation": "ACTIVE",
    "Configuration": "ACTIVE",
    "Validation": "ACTIVE",
    "Observable Evidence": "ACTIVE",
    "Failure Modes & Recovery": "ACTIVE",
    "Completion & Promotion": "ACTIVE"
  },
  "exported_at": "2026-04-28T05:56:48.644291+00:00",
  "export_rule": "docs/json export generated from real panel/data source plus docs/index.php branch evidence; no authored content invented by export patch",
  "source_payload": {
    "canon_meta": {
      "canon_id": "devon-panel-navigation-spec",
      "version": "1.0.0",
      "status": "ACTIVE",
      "ui_mode": "claude_like_workspace_devon_governed"
    },
    "layout": {
      "topbar": {
        "required_items": [
          "project_selector",
          "server_selector",
          "deployment_stage_selector",
          "global_status_counters",
          "search_box",
          "quick_actions"
        ]
      },
      "left_sidebar": {
        "role": "deployment_navigation",
        "groups": [
          "host_readiness",
          "canon_control_plane",
          "server_registry",
          "foundation_infrastructure",
          "storage_state",
          "memory_control_plane",
          "core_runtime",
          "observability_audit_base",
          "remote_access_orchestration",
          "sandbox_orchestration",
          "cognition_base",
          "engineering_modules",
          "governance_policy",
          "benchmark_learning",
          "operator_panel",
          "promotion_rollback"
        ]
      },
      "center_workspace": {
        "tabs": [
          "preview",
          "artifact",
          "contract",
          "diff",
          "logs",
          "metrics",
          "timeline"
        ]
      },
      "right_drawer_stack": {
        "drawers": [
          "evidence_drawer",
          "dependency_drawer",
          "memory_scope_drawer",
          "validation_drawer",
          "server_scope_drawer"
        ]
      }
    },
    "interaction_rules": {
      "default_open_behavior": {
        "left_sidebar": "open",
        "center_workspace": "preview",
        "right_drawer_stack": "evidence_drawer"
      },
      "click_card_behavior": [
        "open_contract_summary",
        "show_current_status",
        "show_evidence_list",
        "show_dependencies",
        "show_last_validation"
      ],
      "click_subcategory_behavior": [
        "focus_matrix_row",
        "show_pipeline_steps",
        "show_expected_evidence",
        "show_status_rule"
      ],
      "status_colors": {
        "PASS": "canonical_green",
        "FAIL": "canonical_red",
        "MISSING": "canonical_amber"
      },
      "counters_required": [
        "total_cards",
        "pass_count",
        "fail_count",
        "missing_count",
        "by_stage_counts"
      ]
    },
    "button_map": {
      "primary_buttons": [
        "Open Contract",
        "Open Evidence",
        "View Pipeline",
        "View Dependencies",
        "View Timeline"
      ],
      "secondary_buttons": [
        "Filter by Project",
        "Filter by Server",
        "Filter by Status",
        "Filter by Stage",
        "Filter by Memory Scope"
      ]
    },
    "panel_data_sources": {
      "primary_matrix": "08_canonical_matrix_v1.yaml",
      "panel_tree": "02_panel_canonical_tree.yaml",
      "contract_schema": "03_card_contract_minimums.yaml",
      "deployment_order": "01_deployment_order_canonical.yaml"
    },
    "initial_render_policy": {
      "matrix_driven": true,
      "evidence_only_status": true,
      "no_mock_status_allowed": true
    }
  },
  "transition_status": "ACTIVE_DH_MIRROR",
  "hardening_status": "HARDENING_PARTIAL",
  "engine_grade_final": false,
  "validation_mode": "schema_backed_transition",
  "parser_readiness": "medium",
  "hardening_priority": "schema_key_binding",
  "structural_contract": {
    "hardening_status": "HARDENING_PARTIAL",
    "engine_grade_final": false,
    "transition_status": "ACTIVE_DH_MIRROR",
    "doc_id": "panel_navigation_spec",
    "category_id": "architecture_engineering_core",
    "phase_id": "phase-02",
    "hardening_lane": "json_schema_key_binding",
    "patch_type": "bind_schema_key_paths",
    "created_at": "2026-04-28T15:40:28.174408+00:00",
    "authority": {
      "authority_owner": "panel_navigation_spec.json",
      "canonical_role": "panel navigation authority",
      "authority_scope": "defines navigation behavior, category selection, hierarchy traversal and operator movement through canonical docs without changing canonical ownership",
      "panel_navigation_domain": [
        "navigation hierarchy",
        "selection behavior",
        "breadcrumb consistency",
        "category routing"
      ],
      "not_authority_for": [
        "canonical ownership",
        "component schema",
        "runtime status"
      ]
    },
    "required_before": [
      "panel navigation",
      "operator category routing",
      "future panel navigation runtime"
    ],
    "hard_dependencies": [
      "panel_canonical_tree.json",
      "hub_index.json"
    ],
    "feeds_operational_ui": [
      "left_navigation",
      "category_selector",
      "breadcrumb",
      "future_panel_navigation_reader"
    ],
    "bucket_contracts": {
      "Prerequisites": {
        "contract_role": "prove panel_navigation_spec.json is materially present, phase-bound and dependency-bound before downstream consumers use it",
        "required_structural_fields": [
          "authority_owner",
          "canonical_role",
          "required_before",
          "hard_dependencies",
          "panel_navigation_domain"
        ],
        "validation_mode": "schema_backed_transition",
        "parser_readiness": "medium"
      },
      "Installation": {
        "contract_role": "make panel_navigation_spec available as a Documentation Hub mirror with fixed technical identity and branch binding",
        "required_structural_fields": [
          "doc_id",
          "category_id",
          "phase_id",
          "documentation_branch_status",
          "source_path",
          "expected_bindings"
        ],
        "validation_mode": "schema_backed_transition",
        "parser_readiness": "medium"
      },
      "Configuration": {
        "contract_role": "bind panel_navigation_spec authority scope, dependency boundaries and forbidden ownership classes into parseable structure",
        "required_structural_fields": [
          "authority_scope",
          "not_authority_for",
          "panel_navigation_domain",
          "boundary_rules"
        ],
        "validation_mode": "schema_backed_transition",
        "parser_readiness": "medium"
      },
      "Validation": {
        "contract_role": "convert panel_navigation_spec into deterministic PASS, FAIL and MISSING checks for identity, binding, source and authority boundary",
        "required_structural_fields": [
          "validation_checks",
          "pass_criteria",
          "fail_criteria",
          "missing_criteria"
        ],
        "validation_mode": "schema_backed_transition",
        "parser_readiness": "medium"
      },
      "Observable Evidence": {
        "contract_role": "expose file paths, DH branch binding, source payload shape and mirror path proving panel_navigation_spec is observable",
        "required_structural_fields": [
          "evidence_paths",
          "expected_bindings",
          "observable_checks"
        ],
        "validation_mode": "schema_backed_transition",
        "parser_readiness": "medium"
      },
      "Failure Modes & Recovery": {
        "contract_role": "recover missing source, wrong binding, dependency break, authority overreach and false promotion for panel_navigation_spec",
        "required_structural_fields": [
          "failure_modes",
          "recovery_actions",
          "rollback_or_safe_state"
        ],
        "validation_mode": "schema_backed_transition",
        "parser_readiness": "medium"
      },
      "Completion & Promotion": {
        "contract_role": "promote panel_navigation_spec only as hardened DH mirror input, not as final engine-grade contract",
        "required_structural_fields": [
          "done_when",
          "not_done_when",
          "promotion_gate",
          "canonization_gate"
        ],
        "validation_mode": "schema_backed_transition",
        "parser_readiness": "medium"
      }
    },
    "validation_checks": [
      {
        "check_id": "panel_navigation_spec_doc_identity",
        "type": "exact_value",
        "path": "$.doc_id",
        "expected": "panel_navigation_spec",
        "on_fail": "FAIL"
      },
      {
        "check_id": "panel_navigation_spec_category_binding",
        "type": "exact_value",
        "path": "$.category_id",
        "expected": "architecture_engineering_core",
        "on_fail": "FAIL"
      },
      {
        "check_id": "panel_navigation_spec_phase_binding",
        "type": "exact_value",
        "path": "$.phase_id",
        "expected": "phase-02",
        "on_fail": "FAIL"
      },
      {
        "check_id": "panel_navigation_spec_branch_status",
        "type": "exact_value",
        "path": "$.documentation_branch_status",
        "expected": "CUSTOM_BRANCH",
        "on_fail": "FAIL"
      },
      {
        "check_id": "panel_navigation_spec_authority_owner_declared",
        "type": "exact_value",
        "path": "$.structural_contract.authority.authority_owner",
        "expected": "panel_navigation_spec.json",
        "on_fail": "FAIL"
      },
      {
        "check_id": "panel_navigation_spec_not_engine_final",
        "type": "exact_value",
        "path": "$.engine_grade_final",
        "expected": false,
        "on_fail": "FAIL"
      },
      {
        "check_id": "panel_navigation_spec_source_payload_object_present",
        "type": "object_present",
        "path": "$.source_payload",
        "on_missing": "MISSING",
        "on_fail": "FAIL"
      },
      {
        "check_id": "panel_navigation_spec_depends_on_panel_canonical_tree_json",
        "type": "array_contains",
        "path": "$.structural_contract.hard_dependencies",
        "expected": "panel_canonical_tree.json",
        "on_fail": "FAIL"
      },
      {
        "check_id": "panel_navigation_spec_depends_on_hub_index_json",
        "type": "array_contains",
        "path": "$.structural_contract.hard_dependencies",
        "expected": "hub_index.json",
        "on_fail": "FAIL"
      }
    ],
    "evidence_paths": [
      "/home/yeff/public_html/devon/panel/data/panel_navigation_spec.json",
      "/home/yeff/public_html/devon/docs/index.php",
      "/home/yeff/public_html/devon/panel/data/hub_index.json",
      "/home/yeff/public_html/devon/panel/data/master_architecture_index.md",
      "/home/yeff/public_html/devon/docs/json/phase-02/panel_navigation_spec.json",
      "/home/yeff/public_html/devon/docs/json/phase-02/_phase02_hardening_queue.json"
    ],
    "expected_bindings": [
      {
        "binding": "docs_index_custom_branch",
        "expected": "if (doc.id === \"panel_navigation_spec\" && state.categoryId === \"architecture_engineering_core\")"
      },
      {
        "binding": "hub_index_phase",
        "expected_phase_id": "phase-02"
      },
      {
        "binding": "hub_index_category",
        "expected_category_id": "architecture_engineering_core"
      }
    ],
    "failure_modes": [
      {
        "failure_id": "panel_navigation_spec_source_missing",
        "status": "MISSING",
        "meaning": "panel_navigation_spec source cannot be read from declared source path",
        "recovery_action": "restore /home/yeff/public_html/devon/panel/data/panel_navigation_spec.json or the declared mirror source before hardening can continue"
      },
      {
        "failure_id": "panel_navigation_spec_unbound_from_phase02",
        "status": "FAIL",
        "meaning": "panel_navigation_spec is present but not bound to phase-02 / architecture_engineering_core",
        "recovery_action": "restore hub_index and docs/index binding to the canonical Phase 02 category"
      },
      {
        "failure_id": "panel_navigation_spec_dependency_missing",
        "status": "MISSING",
        "meaning": "panel_navigation_spec cannot prove declared hard dependencies",
        "recovery_action": "restore declared dependencies or block promotion until dependency validation passes"
      },
      {
        "failure_id": "panel_navigation_spec_authority_overreach",
        "status": "FAIL",
        "meaning": "panel_navigation_spec claims authority outside its declared scope",
        "recovery_action": "revoke overreaching authority and route the claim to the owning document or contract"
      },
      {
        "failure_id": "panel_navigation_spec_false_engine_promotion",
        "status": "FAIL",
        "meaning": "panel_navigation_spec is promoted as engine-grade final while still in DH mirror transition",
        "recovery_action": "restore ACTIVE_DH_MIRROR / HARDENING_PARTIAL and require deterministic schema validation before final promotion"
      }
    ],
    "promotion_gates": {
      "done_when": [
        "panel_navigation_spec source exists materially",
        "panel_navigation_spec is registered under Phase 02",
        "panel_navigation_spec has a custom Documentation Hub branch",
        "panel_navigation_spec JSON mirror contains structural_contract",
        "panel_navigation_spec exposes authority, dependencies, evidence paths, validation checks and promotion gates as parseable fields"
      ],
      "not_done_when": [
        "source payload is missing",
        "category binding is wrong",
        "declared dependency is absent",
        "authority scope is overreached",
        "engine_grade_final is set true before deterministic schema validation exists"
      ],
      "promotion_gate": "panel_navigation_spec may move to HARDENING_PARTIAL after structural_contract exists and verifies, but must not become engine_grade_final until all decisive checks are schema-backed and deterministic.",
      "canonization_gate": "panel_navigation_spec remains an ACTIVE_DH_MIRROR until authority, dependency, evidence, failure and promotion checks can be consumed without semantic prose interpretation."
    },
    "parser_readiness_after_patch": "medium",
    "blocked_until_engine_grade_final": [
      "all validation checks resolve from JSON key paths",
      "all required dependencies are machine-checkable",
      "all authority boundaries produce deterministic FAIL when violated",
      "future operational panel can consume the contract without reading source prose"
    ],
    "mirror_type": "json_mirror",
    "schema_binding": {
      "required_keys": [
        "source_payload"
      ],
      "source_payload_key_paths": [
        "$.source_payload",
        "$.structural_contract",
        "$.bucket_statuses_from_docs_index"
      ],
      "expected_values": {
        "$.phase_id": "phase-02",
        "$.category_id": "architecture_engineering_core",
        "$.doc_id": "panel_navigation_spec",
        "$.engine_grade_final": false,
        "$.transition_status": "ACTIVE_DH_MIRROR"
      },
      "allowed_statuses": [
        "PASS",
        "FAIL",
        "MISSING",
        "ACTIVE_DH_MIRROR",
        "HARDENING_PARTIAL"
      ],
      "deterministic_fail_modes": [
        "wrong_doc_id",
        "wrong_category_id",
        "wrong_phase_id",
        "missing_source_payload",
        "authority_overreach",
        "false_engine_promotion"
      ],
      "missing_criteria": [
        "source payload absent",
        "declared source file absent",
        "hard dependency absent where required"
      ],
      "schema_backed_validation": true
    },
    "boundary_rules": [
      {
        "rule_id": "navigation_cannot_rewrite_tree",
        "meaning": "navigation may traverse but not redefine canonical tree",
        "fail_state": "FAIL when navigation changes ownership order"
      },
      {
        "rule_id": "selection_requires_technical_ids",
        "meaning": "navigation must use doc/category ids, not visible labels",
        "fail_state": "FAIL when label acts as id"
      }
    ],
    "required_keys": [
      "source_payload"
    ],
    "schema_boundary_rules": [
      {
        "rule_id": "navigation_cannot_rewrite_tree",
        "meaning": "navigation may traverse but not redefine canonical tree",
        "fail_state": "FAIL when navigation changes ownership order"
      },
      {
        "rule_id": "selection_requires_technical_ids",
        "meaning": "navigation must use doc/category ids, not visible labels",
        "fail_state": "FAIL when label acts as id"
      }
    ],
    "source_signal_audit": {
      "source_payload_is_object": true,
      "source_payload_top_keys": [
        "button_map",
        "canon_meta",
        "initial_render_policy",
        "interaction_rules",
        "layout",
        "panel_data_sources"
      ],
      "audit_note": "source_signal_audit records JSON mirror shape only; structural_contract remains governed by schema key binding and Phase 02 queue"
    }
  }
}
