{
  "composition": {
    "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",
      "route": "composed_job"
    },
    "capabilities": [
      {
        "approval_rule": "ask before new outreach",
        "available": true,
        "domain": "people",
        "id": "contacts.prepare",
        "inputs": [
          "approved people"
        ],
        "name": "Prepare contact list",
        "outputs": [
          "recipient candidates"
        ],
        "providers": [
          "sample_adapter",
          "local_runtime"
        ],
        "risk": "medium"
      },
      {
        "approval_rule": "ask for private calendars",
        "available": true,
        "domain": "calendar",
        "id": "calendar.check",
        "inputs": [
          "date range",
          "participants"
        ],
        "name": "Check calendar windows",
        "outputs": [
          "availability windows"
        ],
        "providers": [
          "sample_adapter",
          "local_runtime"
        ],
        "risk": "medium"
      },
      {
        "approval_rule": "ask before send",
        "available": true,
        "domain": "communication",
        "id": "invitation.draft",
        "inputs": [
          "event details",
          "guest list"
        ],
        "name": "Draft invitations",
        "outputs": [
          "message drafts"
        ],
        "providers": [
          "sample_adapter",
          "local_runtime"
        ],
        "risk": "medium"
      },
      {
        "approval_rule": "ask before reminders to new people",
        "available": true,
        "domain": "communication",
        "id": "rsvp.track",
        "inputs": [
          "invite list"
        ],
        "name": "Track RSVP status",
        "outputs": [
          "accepted, declined, pending"
        ],
        "providers": [
          "sample_adapter",
          "local_runtime"
        ],
        "risk": "medium"
      },
      {
        "approval_rule": "prepare only",
        "available": true,
        "domain": "shopping",
        "id": "shopping.list",
        "inputs": [
          "plan",
          "preferences"
        ],
        "name": "Create shopping list",
        "outputs": [
          "items",
          "estimated cost"
        ],
        "providers": [
          "sample_adapter",
          "local_runtime"
        ],
        "risk": "low"
      },
      {
        "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"
      }
    ],
    "job": "Birthday Party",
    "life_context_used": {
      "collections": {
        "decisions": 1,
        "events": 3,
        "items": 5,
        "jobs": 3,
        "obligations": 5,
        "permissions": 5,
        "persons": 4
      },
      "graph_sha256": "479965a59734128ff1303a68e7f4e10f52d8c5b214d8bfefc30473ecb4f5cfa9"
    },
    "minimum_questions": [
      "date or preferred weekend",
      "guest count",
      "budget range"
    ],
    "plan": [
      {
        "agentguard": "ALLOW",
        "id": "understand",
        "title": "Understand the requested outcome and define done."
      },
      {
        "agentguard": "ALLOW",
        "id": "context",
        "title": "Use only permitted context from the Life Context Graph."
      },
      {
        "agentguard": "ALLOW",
        "id": "compose",
        "title": "Compose reusable skills into a safe Job plan."
      },
      {
        "agentguard": "ALLOW",
        "id": "prepare",
        "title": "Prepare options, drafts, or reminders without crossing approval boundaries."
      },
      {
        "agentguard": "ASK",
        "id": "approve",
        "title": "Ask before booking, paying, sending, posting, sharing, deleting, or submitting."
      },
      {
        "agentguard": "ALLOW",
        "id": "verify",
        "title": "Observe whether the desired outcome was actually achieved."
      }
    ],
    "request": "Organize my daughter's birthday party",
    "route": "composed_job",
    "success_criteria": [
      "Guest list, date, budget, food, supplies, and unresolved issues are visible.",
      "Invitations are drafted, not sent, until approved.",
      "RSVP and follow-up status can be tracked."
    ],
    "user_visible_status": "I'm organizing the party plan."
  },
  "front_door": "What do you need?",
  "generated_at": "2026-10-05T22:22:51Z",
  "schema": "safecadence.safeai.accomplishment-composer.v1"
}