{
  "skill_id": "gf-invoice-to-usdc-bridge-spec",
  "name": "Invoice-to-USDC Bridge Spec",
  "evaluation": "free",
  "quality": "agent-decision-grade",
  "functional": true,
  "price_usd": 2.49,
  "category": "Finance",
  "tier": "standard",
  "kind": "good",
  "tags": [
    "x402",
    "goods-factory",
    "good",
    "functional",
    "sealed-runtime",
    "gf-complete"
  ],
  "summary": "Field map and workflow notes to turn traditional invoices into Base USDC settlement packets for agents.",
  "when_to_use": [
    "You accept both fiat invoices and Base USDC and need a single field mapping",
    "Agents must present a USDC settle packet derived from an existing invoice number",
    "You need mismatch checks when invoice total and on-chain amount diverge"
  ],
  "outline": [
    "Map invoice header and line-item fields to a USDC settlement packet schema (amount, asset, chain, memo, invoice_id)",
    "Document rounding, minor-unit, and FX-placeholder rules so displayed totals stay auditable",
    "Define receipt and confirmation fields an agent returns after x402 or wallet settle",
    "Build mismatch and exception checks for underpay, overpay, and stale invoice versions",
    "Produce a buyer-facing settlement summary template that cites invoice_id without exposing private counterparty data"
  ],
  "capabilities": [
    "Invoice-to-USDC field mapping schema",
    "Rounding and minor-unit handling notes",
    "Post-settle receipt field definitions for agents",
    "Underpay/overpay/stale-invoice exception checks"
  ],
  "artifact_outputs": [
    "invoice-usdc-field-map.json",
    "settlement-mismatch-checks.md",
    "buyer-settlement-summary.md"
  ],
  "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-invoice-to-usdc-bridge-spec",
  "sample": "https://lvlltd.com/skills/gf-invoice-to-usdc-bridge-spec/sample.md",
  "pack_meta": "https://lvlltd.com/api/packs?skill=gf-invoice-to-usdc-bridge-spec",
  "teaser": "https://lvlltd.com/sealed/gf-invoice-to-usdc-bridge-spec/",
  "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: Finance. Kind: good.",
    "Claim scrub: no guaranteed ROI, no fake testimonials.",
    "If outline 404s on production, redeploy public/skills after completion pass."
  ]
}