{
  "item_contract_id": "item_contract.provider_api_provisioning_003_verify_master_binding",
  "version": "v1",
  "status": "ACTIVE",
  "item_id": "provider_api_provisioning_003_verify_master_binding",
  "item_type": "validation",
  "source": {
    "source_doc_id": "provider_api_provisioning",
    "source_phase_id": "phase-11",
    "source_category_id": "provider_api_provisioning",
    "source_bucket": "",
    "source_category_contract_path": "/home/yeff/public_html/devon/canon/execution/categories/provider_api_provisioning.contract.json",
    "source_path": "/home/yeff/public_html/devon/docs/json/phase-11/provider_api_provisioning.json",
    "source_hash_sha256": "8e986da32e5286b9bee85aa678d5b54d0a8f30e502ee7f5ee90a3df1ece84362"
  },
  "execution": {
    "order": 3,
    "title": "Verify master binding for provider_api_provisioning",
    "objective": "Confirm that the Master Execution Contract still binds provider_api_provisioning to its phase and category contract path.",
    "command_mode": "manual_copy",
    "command": "python3 - <<'CHECK'\nimport json\nfrom pathlib import Path\np=Path('/home/yeff/public_html/devon/canon/execution/master_execution_contract.json')\ndata=json.loads(p.read_text())\nphase_id='phase-11'\ncategory_id='provider_api_provisioning'\nmatch=[]\nfor phase in data.get('phases',[]):\n    if phase.get('phase_id')==phase_id:\n        for category in phase.get('categories',[]):\n            if category.get('category_id')==category_id:\n                match.append(category)\nprint('PASS' if match and match[0].get('category_contract_status') in ('DRAFT','ACTIVE') else 'FAIL')\nCHECK",
    "script_path": "",
    "environment": "canon",
    "working_directory": "/home/yeff/public_html/devon",
    "expected_change": "No runtime mutation. This contract verifies canonical execution structure.",
    "requires_contract_before_patch": true,
    "next_on_pass": "continue_category_contract_sequence",
    "next_on_fail": "block_category_contract_promotion"
  },
  "dependency": {
    "depends_on": [],
    "dependency_type": "none",
    "unlock_condition": "category contract exists",
    "blocks": []
  },
  "evidence": {
    "evidence_required": true,
    "evidence_type": "json_value",
    "evidence_command": "python3 - <<'CHECK'\nimport json\nfrom pathlib import Path\np=Path('/home/yeff/public_html/devon/canon/execution/master_execution_contract.json')\ndata=json.loads(p.read_text())\nphase_id='phase-11'\ncategory_id='provider_api_provisioning'\nmatch=[]\nfor phase in data.get('phases',[]):\n    if phase.get('phase_id')==phase_id:\n        for category in phase.get('categories',[]):\n            if category.get('category_id')==category_id:\n                match.append(category)\nprint('PASS' if match and match[0].get('category_contract_status') in ('DRAFT','ACTIVE') else 'FAIL')\nCHECK",
    "expected_evidence": "PASS",
    "evidence_path": "/home/yeff/public_html/devon/canon/execution/categories/provider_api_provisioning.contract.json",
    "status_source": "observable_json_and_filesystem_validation",
    "accepted_values": [
      "PASS"
    ]
  },
  "output_capture": {
    "capture_stdout": true,
    "capture_stderr": true,
    "max_output_size_bytes": 20000,
    "redact_secrets": true,
    "store_output_as_evidence": true,
    "stdout_excerpt": "",
    "stderr_excerpt": "",
    "output_hash": ""
  },
  "validation": {
    "validation_command": "python3 -m json.tool /home/yeff/public_html/devon/canon/execution/master_execution_contract.json >/dev/null && echo PASS",
    "expected_result": "PASS",
    "blocking_if_fail": true,
    "validation_timeout_seconds": 30,
    "validation_status": "MISSING"
  },
  "acceptance": {
    "acceptance_criteria": [
      "PASS",
      "result is derived from canonical contract files",
      "result is not derived from visual layout"
    ],
    "done_definition": "Item reaches PASS only when its command and validation command return PASS.",
    "promotion_condition": "contract_progress_status must become PASS after state resolution"
  },
  "monitoring": {
    "scan_enabled": true,
    "scan_interval_seconds": 300,
    "pre_checks": [
      "python3 -m json.tool /home/yeff/public_html/devon/canon/execution/categories/provider_api_provisioning.contract.json >/dev/null && echo PASS"
    ],
    "post_checks": [
      "python3 - <<'CHECK'\nimport json\nfrom pathlib import Path\np=Path('/home/yeff/public_html/devon/canon/execution/master_execution_contract.json')\ndata=json.loads(p.read_text())\nphase_id='phase-11'\ncategory_id='provider_api_provisioning'\nmatch=[]\nfor phase in data.get('phases',[]):\n    if phase.get('phase_id')==phase_id:\n        for category in phase.get('categories',[]):\n            if category.get('category_id')==category_id:\n                match.append(category)\nprint('PASS' if match and match[0].get('category_contract_status') in ('DRAFT','ACTIVE') else 'FAIL')\nCHECK"
    ],
    "watch_services": [],
    "watch_ports": [],
    "watch_containers": [],
    "watch_resources": [
      "canon_execution_contract_integrity"
    ],
    "impact_window_seconds": 0,
    "expected_delta": "No runtime delta. Only contract state should change.",
    "unexpected_delta_blocking": true
  },
  "refresh": {
    "refresh_on_execution": true,
    "refresh_on_validation": true,
    "manual_refresh_allowed": true,
    "impact_refresh_required": true,
    "checks_to_run_after_execution": [
      "python3 - <<'CHECK'\nimport json\nfrom pathlib import Path\np=Path('/home/yeff/public_html/devon/canon/execution/master_execution_contract.json')\ndata=json.loads(p.read_text())\nphase_id='phase-11'\ncategory_id='provider_api_provisioning'\nmatch=[]\nfor phase in data.get('phases',[]):\n    if phase.get('phase_id')==phase_id:\n        for category in phase.get('categories',[]):\n            if category.get('category_id')==category_id:\n                match.append(category)\nprint('PASS' if match and match[0].get('category_contract_status') in ('DRAFT','ACTIVE') else 'FAIL')\nCHECK",
      "python3 -m json.tool /home/yeff/public_html/devon/canon/execution/master_execution_contract.json >/dev/null && echo PASS"
    ],
    "refresh_priority": "high"
  },
  "progress": {
    "progress_mode": "contracted_checks",
    "checkpoints": [
      {
        "percent": 50,
        "condition": "contract file 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": 100,
        "condition": "contracted validation returns PASS",
        "evidence_command": "python3 - <<'CHECK'\nimport json\nfrom pathlib import Path\np=Path('/home/yeff/public_html/devon/canon/execution/master_execution_contract.json')\ndata=json.loads(p.read_text())\nphase_id='phase-11'\ncategory_id='provider_api_provisioning'\nmatch=[]\nfor phase in data.get('phases',[]):\n    if phase.get('phase_id')==phase_id:\n        for category in phase.get('categories',[]):\n            if category.get('category_id')==category_id:\n                match.append(category)\nprint('PASS' if match and match[0].get('category_contract_status') in ('DRAFT','ACTIVE') else 'FAIL')\nCHECK",
        "evidence_type": "json_value"
      }
    ],
    "current_percent": 0,
    "missing_to_100": [
      {
        "missing_id": "provider_api_provisioning_003_verify_master_binding_not_resolved",
        "description": "Item contract exists but has not yet been resolved by a category state scan.",
        "required_evidence": "PASS",
        "blocking": true,
        "next_action": "run_category_state_resolution"
      }
    ]
  },
  "risk": {
    "risk_level": "LOW",
    "can_affect_network": false,
    "can_affect_ssh": false,
    "can_affect_containers": false,
    "can_interrupt_service": false,
    "requires_backup": false,
    "requires_approval": false,
    "safe_to_retry": true
  },
  "recovery": {
    "rollback_available": true,
    "rollback_type": "restore_previous_contract_backup",
    "rollback_command": "restore from _backup snapshot created before this patch",
    "rollback_evidence": "backup path exists under /home/yeff/public_html/devon/_backup",
    "recovery_task_id": "recover_provider_api_provisioning_contract_state",
    "fallback_state": "category contract remains DRAFT or MISSING"
  },
  "artifacts": {
    "created_files": [
      "/home/yeff/public_html/devon/canon/execution/items/provider_api_provisioning_003_verify_master_binding.contract.json"
    ],
    "modified_files": [
      "/home/yeff/public_html/devon/canon/execution/categories/provider_api_provisioning.contract.json",
      "/home/yeff/public_html/devon/canon/execution/master_execution_contract.json"
    ],
    "created_directories": [
      "/home/yeff/public_html/devon/canon/execution/items"
    ],
    "created_services": [],
    "created_containers": [],
    "created_ports": [],
    "created_logs": [],
    "created_backups": [],
    "generated_reports": []
  },
  "schedule": {
    "planned_start": "",
    "planned_finish": "",
    "estimated_duration_minutes": 5,
    "execution_day": 0,
    "execution_batch": "provider_api_provisioning_contract_foundation",
    "milestone_id": "execution_contract_expansion",
    "sprint_id": "",
    "day_plan_id": "",
    "critical_path": true,
    "started_at": "",
    "executed_at": "",
    "validated_at": "",
    "completed_at": "",
    "failed_at": "",
    "blocked_at": "",
    "actual_duration_minutes": 0,
    "delay_reason": "",
    "schedule_status": "MISSING"
  },
  "status_model": {
    "execution_status": "MISSING",
    "observed_status": "MISSING",
    "validation_status": "MISSING",
    "final_status": "MISSING",
    "contract_progress_status": "MISSING"
  }
}
