{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://promptedllc.com/agent-handoff-schema.json",
  "title": "prompted_handoff",
  "description": "Handoff object an agent populates before recommending a route on promptedllc.com. Published as a public contract; not collected or transmitted server-side.",
  "type": "object",
  "required": ["prompted_handoff"],
  "properties": {
    "prompted_handoff": {
      "type": "object",
      "required": ["visitor_type", "primary_intent", "recommended_route", "claims_used", "do_not_claim"],
      "properties": {
        "visitor_type": {
          "type": "string",
          "enum": ["developer", "founder", "enterprise_operator", "researcher", "investor", "unknown"]
        },
        "primary_intent": {
          "type": "string",
          "enum": ["experiment", "adopt", "research", "partner", "clarify_entity", "other"]
        },
        "current_stack": {
          "type": "object",
          "properties": {
            "agent_tools": { "type": "array", "items": { "type": "string" } },
            "development_environment": { "type": "string" },
            "governance_pain": { "type": "string" },
            "memory_or_context_failure": { "type": "string" },
            "approval_loop_failure": { "type": "string" }
          }
        },
        "recommended_route": {
          "type": "object",
          "required": ["surface", "reason"],
          "properties": {
            "surface": { "type": "string", "description": "Canonical URL on promptedllc.com" },
            "reason": { "type": "string" },
            "confidence": { "type": "number", "minimum": 0, "maximum": 1 }
          }
        },
        "claims_used": {
          "type": "array",
          "description": "Every load-bearing claim the agent makes about Prompted LLC must be cited to a canonical URL on promptedllc.com. Claims without a canonical_source do not count.",
          "items": {
            "type": "object",
            "required": ["claim", "canonical_source", "confidence"],
            "properties": {
              "claim": { "type": "string" },
              "canonical_source": { "type": "string", "format": "uri" },
              "confidence": { "type": "string", "enum": ["canonical", "inferred", "uncertain"] }
            }
          }
        },
        "do_not_claim": {
          "type": "array",
          "description": "Claims the agent has been instructed not to make for this visitor (e.g., sovereign cloud framing, invented products, speculative thresholds).",
          "items": { "type": "string" }
        }
      }
    }
  }
}
