{
  "front_door": "What should happen, and when?",
  "generated_at": "2026-10-05T22:23:07Z",
  "schedule": {
    "action_type": "away_home_care",
    "agentguard": {
      "advanced": "ALLOW/ASK/DENY enforcement, mission contract, approvals, data boundaries, kill switch, and quarantine.",
      "always_ask": [
        "purchase",
        "payment",
        "booking",
        "send_to_new_person",
        "public_post",
        "submit_form",
        "delete_important_data",
        "share_sensitive_data",
        "major_schedule_change",
        "door_unlock",
        "lock_or_close_device",
        "physical_device_change",
        "camera_identity_recognition",
        "irrigation_run_without_trust_contract",
        "significant_hvac_change"
      ],
      "basic": "Monitoring only: activity, tools, failures, work history, unusual behavior, and mission drift are recorded.",
      "default_mode": "advisory",
      "execution_rule": "prepare_allowed_execute_gated",
      "monitoring": [
        "activity",
        "tool use",
        "evidence",
        "failure",
        "retry",
        "outcome"
      ],
      "route": "scheduled_action",
      "safety_boundary": null,
      "stop_conditions": [
        "missing approval",
        "scope drift",
        "new recipient",
        "public posting",
        "sensitive data",
        "revoked connector",
        "failed verification"
      ]
    },
    "capabilities": [
      {
        "approval_rule": "govern execution trigger",
        "available": true,
        "domain": "scheduler",
        "id": "trigger.parse",
        "inputs": [
          "when language",
          "job goal"
        ],
        "name": "Parse time, event, and condition triggers",
        "outputs": [
          "trigger contract"
        ],
        "providers": [
          "sample_adapter",
          "local_runtime"
        ],
        "risk": "medium"
      },
      {
        "approval_rule": "schedule intent; govern execution",
        "available": true,
        "domain": "scheduler",
        "id": "schedule.create",
        "inputs": [
          "goal",
          "time or recurrence"
        ],
        "name": "Schedule future work",
        "outputs": [
          "queued dry-run"
        ],
        "providers": [
          "sample_adapter",
          "local_runtime"
        ],
        "risk": "medium"
      },
      {
        "approval_rule": "presence-only; no raw tracking trail",
        "available": true,
        "domain": "environment",
        "id": "presence.read",
        "inputs": [
          "device presence",
          "manual mode"
        ],
        "name": "Read home/away presence",
        "outputs": [
          "home, away, unknown"
        ],
        "providers": [
          "iOS",
          "Android",
          "Home Assistant",
          "sample_adapter"
        ],
        "risk": "medium",
        "verification_methods": [
          "provider status",
          "event receipt",
          "AgentGuard evidence record"
        ]
      },
      {
        "approval_rule": "unlock and remote lock/close require approval or trust contract",
        "available": true,
        "domain": "home_access",
        "id": "door.lock",
        "inputs": [
          "door id",
          "desired state"
        ],
        "name": "Read or change lock state",
        "outputs": [
          "locked, unlocked, failed"
        ],
        "providers": [
          "Schlage",
          "Yale",
          "August",
          "HomeKit",
          "sample_adapter"
        ],
        "risk": "high",
        "verification_methods": [
          "provider status",
          "event receipt",
          "AgentGuard evidence record"
        ]
      },
      {
        "approval_rule": "read-only",
        "available": true,
        "domain": "climate",
        "id": "thermostat.read",
        "inputs": [
          "thermostat id"
        ],
        "name": "Read thermostat state",
        "outputs": [
          "temperature and mode"
        ],
        "providers": [
          "Nest",
          "Ecobee",
          "Honeywell",
          "Home Assistant",
          "sample_adapter"
        ],
        "risk": "low",
        "verification_methods": [
          "provider status",
          "event receipt",
          "AgentGuard evidence record"
        ]
      },
      {
        "approval_rule": "bounded range only; major changes ask first",
        "available": true,
        "domain": "climate",
        "id": "thermostat.set",
        "inputs": [
          "approved range",
          "desired setting"
        ],
        "name": "Adjust thermostat",
        "outputs": [
          "setting applied"
        ],
        "providers": [
          "Nest",
          "Ecobee",
          "Honeywell",
          "Home Assistant",
          "sample_adapter"
        ],
        "risk": "medium",
        "verification_methods": [
          "provider status",
          "event receipt",
          "AgentGuard evidence record"
        ]
      },
      {
        "approval_rule": "read-only",
        "available": true,
        "domain": "outdoor",
        "id": "irrigation.read",
        "inputs": [
          "controller"
        ],
        "name": "Read irrigation status",
        "outputs": [
          "zone and schedule status"
        ],
        "providers": [
          "Rachio",
          "Rain Bird",
          "Orbit",
          "Home Assistant",
          "sample_adapter"
        ],
        "risk": "low",
        "verification_methods": [
          "provider status",
          "event receipt",
          "AgentGuard evidence record"
        ]
      },
      {
        "approval_rule": "notify immediately; shutoff requires approval/trust contract",
        "available": true,
        "domain": "safety",
        "id": "sensor.water",
        "inputs": [
          "water sensor event"
        ],
        "name": "Detect leak or water abnormality",
        "outputs": [
          "normal, leak, unknown"
        ],
        "providers": [
          "Flo by Moen",
          "Home Assistant",
          "sample_adapter"
        ],
        "risk": "high",
        "verification_methods": [
          "provider status",
          "event receipt",
          "AgentGuard evidence record"
        ]
      },
      {
        "approval_rule": "notify immediately; emergency actions follow user-approved policy",
        "available": true,
        "domain": "safety",
        "id": "sensor.smoke_co",
        "inputs": [
          "alarm event"
        ],
        "name": "Detect smoke or CO alarm",
        "outputs": [
          "normal, alarm"
        ],
        "providers": [
          "Nest Protect",
          "Kidde",
          "Home Assistant",
          "sample_adapter"
        ],
        "risk": "critical",
        "verification_methods": [
          "provider status",
          "event receipt",
          "AgentGuard evidence record"
        ]
      },
      {
        "approval_rule": "owner notification allowed in approved jobs",
        "available": true,
        "domain": "notification",
        "id": "notify.mobile",
        "inputs": [
          "message",
          "priority"
        ],
        "name": "Notify phone or watch",
        "outputs": [
          "delivered, failed"
        ],
        "providers": [
          "iOS Push",
          "Android Push",
          "Pushover",
          "sample_adapter"
        ],
        "risk": "medium",
        "verification_methods": [
          "provider status",
          "event receipt",
          "AgentGuard evidence record"
        ]
      },
      {
        "approval_rule": "only approved household devices; quiet hours apply",
        "available": true,
        "domain": "notification",
        "id": "notify.voice",
        "inputs": [
          "message",
          "room or device"
        ],
        "name": "Notify approved voice assistant",
        "outputs": [
          "announcement queued"
        ],
        "providers": [
          "Alexa",
          "Google Home",
          "Home Assistant",
          "sample_adapter"
        ],
        "risk": "medium",
        "verification_methods": [
          "provider status",
          "event receipt",
          "AgentGuard evidence record"
        ]
      },
      {
        "approval_rule": "required for consequential actions",
        "available": true,
        "domain": "approval",
        "id": "notify.approval",
        "inputs": [
          "prepared action"
        ],
        "name": "Ask for human approval",
        "outputs": [
          "approve, change, stop"
        ],
        "providers": [
          "sample_adapter",
          "local_runtime"
        ],
        "risk": "high"
      },
      {
        "approval_rule": "record evidence",
        "available": true,
        "domain": "verification",
        "id": "outcome.verify",
        "inputs": [
          "expected",
          "observed"
        ],
        "name": "Verify outcome",
        "outputs": [
          "achieved, not achieved, inconclusive"
        ],
        "providers": [
          "sample_adapter",
          "local_runtime"
        ],
        "risk": "medium"
      },
      {
        "approval_rule": "stay inside permissions",
        "available": true,
        "domain": "recovery",
        "id": "recover.replan",
        "inputs": [
          "checkpoint",
          "failure"
        ],
        "name": "Recover from blockers",
        "outputs": [
          "safe retry plan"
        ],
        "providers": [
          "sample_adapter",
          "local_runtime"
        ],
        "risk": "medium"
      }
    ],
    "dry_run": {
      "evidence": [
        "schedule.created",
        "agentguard.policy.checked",
        "dry_run.recorded"
      ],
      "external_side_effect": false,
      "mode": "dry_run_only",
      "would_execute": "after_approval",
      "would_prepare": {
        "notifications": [
          "daily brief",
          "tell-now safety events"
        ],
        "physical_actions": "prepared but gated",
        "sections": [
          "security",
          "camera/person detection",
          "garage/door checks",
          "climate",
          "lawn",
          "deliveries",
          "leak/smoke/power"
        ],
        "type": "away_home_care_plan"
      }
    },
    "execution_mode": "LOCAL_SERVER",
    "fallback_plan": [
      {
        "rule": "Use the approved away_home_care connector if configured and healthy.",
        "step": "preferred_api"
      },
      {
        "rule": "Use an approved alternate adapter with the same authority boundary.",
        "step": "alternative_provider"
      },
      {
        "rule": "Use browser-assisted preparation only when the source and purpose are allowed.",
        "step": "web_or_browser"
      },
      {
        "rule": "Ask for reconnection or clarification, then resume from checkpoint.",
        "step": "ask_user"
      }
    ],
    "goal": "I'm going away for two weeks. Take care of the house.",
    "id": "sched-i-m-going-away-for-two-weeks-take-care-of-the-house",
    "job_type": "scheduled_action",
    "life_context_used": {
      "collections": {
        "decisions": 1,
        "events": 3,
        "items": 5,
        "jobs": 3,
        "obligations": 5,
        "permissions": 5,
        "persons": 4
      },
      "graph_sha256": "aa5be2523cc0219ffac5ababa3c52eb6ff184db7eda385bd1be1312b58e39029"
    },
    "model_mode": "RULES_ONLY",
    "outcome": {
      "actions": [
        "prepare",
        "policy_check",
        "record_evidence"
      ],
      "actual_outcome": "dry_run_pending",
      "expected_outcome": "Home care runs as one governed Away Job with tell-now safety events and gated physical controls.",
      "follow_up": "approve, modify, pause, or keep watching",
      "goal": "I'm going away for two weeks. Take care of the house.",
      "plan": "Prepare and govern away_home_care.",
      "verification": "not_executed_in_local_demo"
    },
    "owner": "person-faz",
    "plan": [
      {
        "agentguard": "ALLOW",
        "id": "understand",
        "title": "Understand what should happen and when."
      },
      {
        "agentguard": "ALLOW",
        "id": "prepare",
        "title": "Prepare the content, application, reminder, or recurring job with sample/local data."
      },
      {
        "agentguard": "ALLOW",
        "id": "home-scope",
        "title": "Create a single Away Job for security, climate, lawn, deliveries, energy, and safety."
      },
      {
        "agentguard": "ASK",
        "id": "device-boundaries",
        "title": "Separate read-only monitoring from physical device changes."
      },
      {
        "agentguard": "ALLOW",
        "id": "preflight",
        "title": "Check recipients, destination, data sensitivity, claims, and scope."
      },
      {
        "agentguard": "ASK",
        "id": "approve",
        "title": "Ask the named human before the action leaves SafeAI."
      },
      {
        "agentguard": "ASK",
        "id": "execute",
        "title": "Execute only after approval; otherwise hold the prepared draft."
      },
      {
        "agentguard": "ALLOW",
        "id": "verify",
        "title": "Record whether the intended outcome actually happened."
      }
    ],
    "proactivity_level": "3",
    "status": "approval_required_before_execution",
    "success_criteria": [
      "Security, climate, lawn, deliveries, energy, and safety are visible as one Away Job.",
      "Read-only monitoring is separated from physical device actions.",
      "The trigger is represented as a reviewable contract.",
      "AgentGuard logs every preparation, decision, approval, failure, and verification step.",
      "The user can pause, revoke, or change the job without losing history."
    ],
    "trigger": {
      "condition": null,
      "event": null,
      "next_run": "now",
      "recurrence": "one_time",
      "source_language": "i'm going away for two weeks. take care of the house.",
      "timezone": "local",
      "type": "NOW"
    }
  },
  "schema": "safecadence.safeai.scheduled-accomplishment.v1",
  "source": "local sample data only"
}