← back to Dw Gemini Skip TK11321

verification/e2e-proof-before-TK11314.json

46 lines

{
  "intent": "Use one fail-closed five-field invariant check in every local product activation lane before any ACTIVE mutation.",
  "risk_tier": "R1 isolated code; live Shopify activation is R4 and was intentionally not invoked",
  "environment": "local macOS workspace; zero-network tests",
  "timestamp": "2026-08-29T04:43:00Z",
  "ticket": "TK-10947-unify-five-field-activation-checks-acros",
  "precondition": "rotate-activate.js had the full extra invariant set; cmo-activate.js and mdc-activate.js duplicated only sample/tag checks.",
  "checks": [
    {
      "verdict": "PASS",
      "boundary": "pure validation",
      "command": "node --test test/five-field-extra.test.js",
      "assertions": "7/7 pass: normal pass, missing sample rejection, strict finite-decimal prices, explicit invalid array-shape holds, tag rejection, normalized quote-only exemption boundaries"
    },
    {
      "verdict": "PASS",
      "boundary": "script parse",
      "command": "node --check rotate-activate.js; node --check cmo-activate.js; node --check mdc-activate.js",
      "assertions": "all three activation entry points parse"
    },
    {
      "verdict": "PASS",
      "boundary": "activation mutation ordering",
      "command": "zero-network source assertion over all three entry points",
      "assertions": "shared fiveFieldExtra call precedes a fail-closed continue, which precedes the ACTIVE mutation"
    },
    {
      "verdict": "PASS",
      "boundary": "working-tree hygiene",
      "command": "git diff --check",
      "assertions": "no whitespace errors"
    }
  ],
  "negative_checks": [
    "missing sample",
    "missing, blank, zero, malformed, negative, suffixed, and non-finite sellable price",
    "non-array variants.nodes and tags shapes",
    "string tags cannot trigger count or quote-only exemptions",
    "fewer than two tags",
    "quote-only product without sample"
  ],
  "side_effects": "none; no Shopify/Gmail/network call, no service restart, no deploy, no scheduled-job change",
  "cleanup": "not required; tests create no retained state",
  "verdict": "PASS for the local pre-activation decision boundary"
}