{
  "canon_meta": {
    "canon_id": "devon-project-progress-canonical",
    "version": "1.0.0",
    "status": "ACTIVE",
    "contract_mode": "sovereign_global_progress_definition"
  },
  "project_progress_canonical": {
    "objective": "Define the only valid canonical model for global Project Progress in the Devon Operator Panel.",
    "source_of_truth_policy": {
      "authority": "devon_control_plane",
      "forbidden": [
        "derive_from_ui_only",
        "derive_from_status_initial_only",
        "derive_from_single_selected_stage",
        "derive_from_runtime_snapshot_without_canonical_rule"
      ]
    },
    "allowed_sources": [
      "/opt/devon/runtime/runtime_status.json",
      "/home/yeff/public_html/devon/canon/execution/state/dh_sources/canonical_matrix_v1.json",
      "/home/yeff/public_html/devon/canon/execution/state/dh_sources/panel_content_index.json"
    ],
    "required_model_fields": [
      "global_status",
      "progress_pct",
      "calculation_mode",
      "eligible_stages",
      "included_stage_count",
      "excluded_stage_count",
      "observed_stage_count",
      "observed_coverage_weight_pct",
      "contributing_stages",
      "reason_if_missing",
      "observed_at_utc"
    ],
    "calculation_policy": {
      "mode": "weighted_sum_of_observed_eligible_stage_progress",
      "why": "global progress must reflect only canonically eligible stages with observable stage progress and must publish coverage explicitly",
      "current_expected_ui_state": "NON_MISSING_when_at_least_one_eligible_stage_has_observable_progress",
      "formula": "global_pct = sum((stage_progress_pct * weight_pct)/100 for contributing_stages)",
      "coverage_formula": "observed_coverage_weight_pct = sum(weight_pct for contributing_stages)"
    },
    "status_rules": {
      "PASS": "global project progress artifact exists, matches the sovereign canonical model, and publishes observed contributors plus coverage",
      "FAIL": "global project progress artifact exists but violates the sovereign canonical model",
      "MISSING": "no valid observable global progress runtime exists yet"
    }
  }
}
