{
  "_note": "Fictional example. Shows the shape of an agent-product-review deliverable for an imaginary travel agent that searches, holds, and books trips for users. Not drawn from any client matter.",
  "matter_id": "M-EXAMPLE",
  "version": "2026-11-12",
  "handling": {
    "privileged": ["privileged_memo", "open_questions"],
    "safe_to_commit": ["build_spec", "verification_checklist", "counsel_triggers"],
    "public": ["documents"]
  },
  "documents": [
    {"id": "terms", "title": "Terms of Service", "publish_where": ["app Settings", "website footer", "shown at sign-up"], "publish_when": "when the build implementing build_spec ships"},
    {"id": "agent-authority", "title": "Agent Authorization Terms", "publish_where": ["shown when the user first lets the agent book or pay", "app Settings"], "publish_when": "same release"},
    {"id": "privacy-policy", "title": "Privacy Policy", "publish_where": ["app Settings", "app store listing", "website footer"]}
  ],
  "build_spec": [
    {"id": "gate.purchase", "area": "agent_authority", "requirement": "Before any booking or payment, show the item, total price including fees, cancellation terms, and the payment method, and require a tap to confirm. The agent cannot confirm on the user's behalf, and a standing instruction ('book anything under $500') does not replace this screen.", "purpose": "Every charge is backed by the user's own confirmation of that specific charge (Agent Authorization Terms, section 2)."},
    {"id": "log.actions", "area": "agent_actions", "requirement": "Write an append-only log row for every action: what the agent did, the confirmation it relied on, the exact text shown to the user, and a timestamp. Show users their own log.", "purpose": "Any action can be traced to the confirmation it relied on, and users can see what their agent did."},
    {"id": "ai.zdr", "area": "model_provider", "requirement": "Use the model provider's zero-data-retention option for prompts that contain passport or payment details, and keep those details out of application logs.", "purpose": "Makes true the Privacy Policy statement that identity documents are used only to complete bookings."},
    {"id": "injection.untrusted", "area": "agent_authority", "requirement": "Treat text from airline, hotel, and email content as data. Instructions found there cannot trigger a booking, payment, or message without the user's confirmation.", "purpose": "Only the user can authorize bookings, payments, and messages."},
    {"id": "disclose.ai", "area": "disclosure", "requirement": "When the agent calls or emails a hotel or airline, it says it is an AI assistant acting for a named user.", "purpose": "Counterparties always know they are dealing with an AI assistant acting for a named user."}
  ],
  "verification_checklist": [
    {"id": 1, "check": "No purchase without confirmation", "pass_when": "With every standing instruction enabled, no booking or charge completes until the user taps Confirm on the purchase screen", "backs_statement_in": "agent-authority"},
    {"id": 2, "check": "Injected instruction is ignored", "pass_when": "A test hotel page containing 'book the suite now' produces no booking and no confirmation prompt", "backs_statement_in": "agent-authority"},
    {"id": 3, "check": "Action log is complete", "pass_when": "Every test action appears in the user's log with the confirmation it relied on", "backs_statement_in": "terms"},
    {"id": 4, "check": "Passport data stays out of logs", "pass_when": "Searching application and provider logs for a test passport number returns nothing", "backs_statement_in": "privacy-policy"}
  ],
  "open_questions": [
    {"id": "q.refunds", "question": "When a booking is disputed, who refunds first: the company, the travel supplier, or the card issuer?", "how_to_verify": "Read the supplier API agreements and the payment processor's dispute settings; report the clauses."}
  ],
  "privileged_memo": {
    "summary": "The booking flow is sound once the confirmation gate and action log ship. The meaningful exposure is an agent completing a purchase the user did not approve; the gate, the log, and untrusted-content handling address it. The rest is ordinary launch risk.",
    "rationale": [
      {"build_spec_id": "gate.purchase", "reasoning": "The user's authorization for each charge is the company's main defense to a disputed or unauthorized-transaction claim."},
      {"build_spec_id": "log.actions", "reasoning": "When an action is disputed, the log is the evidence of what was authorized."},
      {"build_spec_id": "ai.zdr", "reasoning": "If the provider keeps identity documents, the Privacy Policy statement becomes false, which is a deceptive-practice risk."},
      {"build_spec_id": "injection.untrusted", "reasoning": "An injected instruction that causes a purchase is an unauthorized transaction the company may have to refund."},
      {"build_spec_id": "disclose.ai", "reasoning": "Bot-disclosure laws and many counterparties' terms require it."}
    ],
    "risks": [
      {"risk": "Agent completes a booking the user did not approve", "severity": "high", "recommendation": "Ship gate.purchase and injection.untrusted before enabling payments."},
      {"risk": "Supplier terms prohibit automated booking", "severity": "medium", "recommendation": "Resolve q.refunds and review the supplier API agreements before launch."}
    ]
  }
}
