{
  "version": "2026-09-10-phase12b",
  "site": "https://review.pawpulse.pet",
  "purpose": "Machine-readable action contracts for PawPulse decision support and future agent integrations.",
  "execution_model": "Static deterministic resolver. Provider matching uses only Phase 12A verified provider fields and Phase 12B capability/geography rules. No live availability, price, ranking, booking or treatment suitability is inferred.",
  "actions": [
    {
      "action_id": "open_guide",
      "name": "Open PawPulse Guide",
      "description": "Open the canonical PawPulse guide attached to a Decision Object.",
      "action_type": "navigation",
      "method": "GET",
      "endpoint": "/agent-actions/resolve/?action=open_guide&decision_id={decision_id}",
      "requires": [
        "decision_id"
      ],
      "returns": [
        "decision_id",
        "canonical_url",
        "title",
        "evidence_status"
      ],
      "safety_class": "informational",
      "can_execute_transaction": false
    },
    {
      "action_id": "run_pet_cost_calculator",
      "name": "Run Pet Care Cost Calculator",
      "description": "Route a cost-oriented decision to the dedicated Pet Care Cost Calculator.",
      "action_type": "external_tool",
      "method": "GET",
      "endpoint": "/agent-actions/resolve/?action=run_pet_cost_calculator&decision_id={decision_id}",
      "requires": [
        "decision_id"
      ],
      "returns": [
        "calculator_url",
        "decision_context"
      ],
      "safety_class": "planning",
      "can_execute_transaction": false
    },
    {
      "action_id": "compare_estimate_scope",
      "name": "Check Estimate Completeness",
      "description": "Open PawPulse's estimate-completeness planning calculator.",
      "action_type": "internal_tool",
      "method": "GET",
      "endpoint": "/agent-actions/resolve/?action=compare_estimate_scope&decision_id={decision_id}",
      "requires": [
        "decision_id"
      ],
      "returns": [
        "calculator_url",
        "care_components",
        "questions_to_ask"
      ],
      "safety_class": "planning",
      "can_execute_transaction": false
    },
    {
      "action_id": "plan_visit_burden",
      "name": "Plan Visit Burden",
      "description": "Open the repeat-visit travel/time burden planner for location-relevant decisions.",
      "action_type": "internal_tool",
      "method": "GET",
      "endpoint": "/agent-actions/resolve/?action=plan_visit_burden&decision_id={decision_id}",
      "requires": [
        "decision_id"
      ],
      "returns": [
        "planner_url",
        "location",
        "decision_context"
      ],
      "safety_class": "planning",
      "can_execute_transaction": false
    },
    {
      "action_id": "open_emergency_guide",
      "name": "Open Emergency Guidance",
      "description": "Route immediately to PawPulse emergency-care guidance when an emergency-warning condition is selected.",
      "action_type": "safety_navigation",
      "method": "GET",
      "endpoint": "/agent-actions/resolve/?action=open_emergency_guide&decision_id={decision_id}",
      "requires": [
        "decision_id"
      ],
      "returns": [
        "emergency_url",
        "emergency_message"
      ],
      "safety_class": "urgent",
      "can_execute_transaction": false
    },
    {
      "action_id": "generate_question_checklist",
      "name": "Generate Vet Question Checklist",
      "description": "Return the existing high-priority PawPulse questions linked to the selected Decision Object.",
      "action_type": "structured_output",
      "method": "GET",
      "endpoint": "/agent-actions/resolve/?action=generate_question_checklist&decision_id={decision_id}",
      "requires": [
        "decision_id"
      ],
      "returns": [
        "decision_id",
        "questions_to_ask",
        "care_components"
      ],
      "safety_class": "informational",
      "can_execute_transaction": false
    },
    {
      "action_id": "open_comparisons",
      "name": "Open Comparison Guides",
      "description": "Route to PawPulse treatment/provider comparison guidance.",
      "action_type": "navigation",
      "method": "GET",
      "endpoint": "/agent-actions/resolve/?action=open_comparisons&decision_id={decision_id}",
      "requires": [
        "decision_id"
      ],
      "returns": [
        "comparison_url",
        "decision_context"
      ],
      "safety_class": "informational",
      "can_execute_transaction": false
    },
    {
      "action_id": "find_verified_provider_candidates",
      "name": "Find Verified Provider Candidates",
      "description": "Resolve a Decision Object to providers whose source-supported capabilities and verified market coverage satisfy the matching rules.",
      "action_type": "structured_navigation",
      "method": "GET",
      "endpoint": "/provider-match/?decision_id={decision_id}",
      "requires": [
        "decision_id"
      ],
      "returns": [
        "decision_id",
        "provider_requirement",
        "provider_candidates",
        "verification_status",
        "source_urls"
      ],
      "safety_class": "provider_discovery",
      "can_execute_transaction": false
    }
  ]
}