{
  "skill_id": "gf-pc-escrow-handoff-protocol",
  "name": "Escrow Handoff Protocol",
  "evaluation": "free",
  "quality": "agent-decision-grade",
  "functional": true,
  "price_usd": 7.99,
  "category": "Commerce",
  "tier": "standard",
  "kind": "service",
  "tags": [
    "x402",
    "quality-factory",
    "service",
    "decision-grade",
    "functional",
    "sealed-runtime",
    "gf-complete"
  ],
  "summary": "State machine, role cards, and message templates for agent-mediated escrow release, dispute hold, and dual-approval handoffs on digital goods.",
  "when_to_use": [
    "Sealed goods or services need funds held until delivery confirm from both sides",
    "Agents must coordinate release, hold, and timeout without ad hoc chat-only agreements",
    "You want dual-approval and single-approver paths documented before wiring automation"
  ],
  "outline": [
    "Define escrow states—funded, delivery_pending, dual_review, released, held, timed_out, canceled—and allowed transitions only",
    "Write role cards for buyer, seller, agent broker, and ops reviewer with what each may confirm or reject at each state",
    "Specify release condition checklists tied to delivery artifact hashes or unlock proofs rather than vague done language",
    "Draft hold and timeout messages with next checkpoint times and evidence requests that avoid pressure or outcome promises",
    "Package event payload examples so integrators can emit state changes into logs without embedding personal identity fields"
  ],
  "capabilities": [
    "Escrow state machine with allowed transitions",
    "Buyer/seller/agent/ops role cards",
    "Delivery-proof-linked release checklists",
    "Hold and timeout message templates",
    "PII-light event payload examples"
  ],
  "artifact_outputs": [
    "escrow-state-machine.md",
    "escrow-role-cards.md",
    "release-condition-checklists.json",
    "escrow-event-payloads.json"
  ],
  "decision_criteria": [
    "Outline steps are specific to this skill (not generic templates)",
    "Sealed pack exposes createSkill().run with outline-driven steps",
    "Artifacts are named concrete deliverables",
    "No revenue guarantees or banned claims",
    "Free eval path works without payment"
  ],
  "sealed_after_pay": [
    "Full src/index.js runtime (createSkill, run, plan)",
    "src/runbook.js with skill-specific steps",
    "src/tools.js registry for agent ToolRegistry",
    "WORKBOOK.md operator procedure",
    "templates/ checklist and artifact shells",
    "schemas/output.schema.json"
  ],
  "runtime": {
    "entry": "src/index.js",
    "export": "createSkill",
    "install": "node scripts/install-unlocked-pack.mjs unlock.json ./skills"
  },
  "challenge": "https://lvlltd.com/api/pay?skill=gf-pc-escrow-handoff-protocol",
  "sample": "https://lvlltd.com/skills/gf-pc-escrow-handoff-protocol/sample.md",
  "pack_meta": "https://lvlltd.com/api/packs?skill=gf-pc-escrow-handoff-protocol",
  "teaser": "https://lvlltd.com/sealed/gf-pc-escrow-handoff-protocol/",
  "proof": "https://lvlltd.com/api/proof",
  "standards": [
    "x402",
    "ERC-7857"
  ],
  "operator_notes": [
    "Confirm pay path with GET /api/pay before purchasing.",
    "Dry-run createSkill().run({ goal, dry_run: true }) after unlock.",
    "Persist payment.txHash with skill_id for re-redeem.",
    "Never commit private keys or OPS_SECRET into pack usage.",
    "Category focus: Commerce. Kind: service.",
    "Claim scrub: no guaranteed ROI, no fake testimonials.",
    "If outline 404s on production, redeploy public/skills after completion pass."
  ]
}