{
  "skill_id": "gf-po-kv-binding-checks",
  "name": "KV Binding Checks",
  "evaluation": "free",
  "quality": "agent-decision-grade",
  "functional": true,
  "price_usd": 5.49,
  "category": "Coding",
  "tier": "standard",
  "kind": "good",
  "tags": [
    "x402",
    "quality-factory",
    "good",
    "decision-grade",
    "functional",
    "sealed-runtime",
    "gf-complete"
  ],
  "summary": "Cloudflare KV and binding parity checks for Workers and Pages Functions across preview, staging, and production.",
  "when_to_use": [
    "Preview deploys succeed while production Functions throw because a KV binding name drifted between wrangler.toml and the dashboard.",
    "You promote Pages Functions with catalog or rate-limit state in KV and need a binding presence check in CI.",
    "Multiple environments share similar names and you need a matrix that proves each binding points at the intended namespace."
  ],
  "outline": [
    "Enumerate required bindings per environment: KV namespaces, R2, D1, Queues, and secrets presence flags without dumping secret values.",
    "Build a parity matrix comparing wrangler config, dashboard bindings, and CI deploy vars for name, namespace ID, and read/write intent.",
    "Add smoke assertions: put/get a canary key, verify TTL behavior, and confirm isolation between preview and production namespaces.",
    "Flag dangerous patterns: shared prod namespace in preview, missing binding on only one branch, and silent fallbacks that mask failures.",
    "Ship a pre-promote gate script checklist operators run before Pages or Workers cutover with fail-closed criteria."
  ],
  "capabilities": [
    "Environment binding inventory template for KV, R2, D1, and Queues",
    "Config-vs-dashboard parity matrix that highlights name and ID drift",
    "Canary put/get smoke patterns that prove namespace isolation",
    "Dangerous-pattern detector notes for shared-prod and silent fallbacks",
    "Pre-promote fail-closed gate checklist for Functions cutovers"
  ],
  "artifact_outputs": [
    "kv-binding-parity-matrix.csv",
    "binding-smoke-assertions.md",
    "pre-promote-binding-gate.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-po-kv-binding-checks",
  "sample": "https://lvlltd.com/skills/gf-po-kv-binding-checks/sample.md",
  "pack_meta": "https://lvlltd.com/api/packs?skill=gf-po-kv-binding-checks",
  "teaser": "https://lvlltd.com/sealed/gf-po-kv-binding-checks/",
  "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: Coding. Kind: good.",
    "Claim scrub: no guaranteed ROI, no fake testimonials.",
    "If outline 404s on production, redeploy public/skills after completion pass."
  ]
}