{
  "progress_rule_contract_id": "progress_rule_contract.panel_canonical_tree_category_readiness",
  "version": "v1",
  "status": "ACTIVE",
  "item_id": "panel_canonical_tree_category_readiness",
  "progress_mode": "contracted_checks",
  "fake_progress_forbidden": true,
  "checkpoints": [
    {
      "percent": 25,
      "condition": "master execution contract exists and is JSON-valid",
      "evidence_command": "python3 -m json.tool /home/yeff/public_html/devon/canon/execution/master_execution_contract.json >/dev/null && echo PASS",
      "evidence_type": "json_value"
    },
    {
      "percent": 50,
      "condition": "panel_canonical_tree category contract exists and is JSON-valid",
      "evidence_command": "python3 -m json.tool /home/yeff/public_html/devon/canon/execution/categories/panel_canonical_tree.contract.json >/dev/null && echo PASS",
      "evidence_type": "json_value"
    },
    {
      "percent": 75,
      "condition": "item contracts for tree binding are present",
      "evidence_command": "test -f /home/yeff/public_html/devon/canon/execution/items/panel_canonical_tree_001_verify_master_binding.contract.json && test -f /home/yeff/public_html/devon/canon/execution/items/panel_canonical_tree_002_verify_category_contract.contract.json && echo PASS || echo FAIL",
      "evidence_type": "file_exists"
    },
    {
      "percent": 100,
      "condition": "legacy active panel directory is absent and category scan contract exists",
      "evidence_command": "ROOT=\"/home/yeff/public_html/devon\"; LEGACY=\"$ROOT/panel\"; test ! -d \"$LEGACY\" && test -f \"$ROOT/canon/execution/scans/panel_canonical_tree_category_scan.contract.json\" && echo PASS || echo FAIL",
      "evidence_type": "file_exists"
    }
  ],
  "current_percent": 0,
  "missing_to_100": [
    {
      "missing_id": "panel_canonical_tree_scan_not_executed",
      "description": "Progress rule exists but has not been resolved by the state resolver or scan output yet.",
      "required_evidence": "scan result for panel_canonical_tree_category_scan",
      "blocking": true,
      "next_action": "run_scan_and_update_progress"
    }
  ]
}
