{
  "feature_id": "F-019",
  "agent": "qa",
  "verdict": "APPROVED",
  "summary": "QA approved. All F-019 acceptance criteria are covered by executable tests and green checks: valid promo discount recalculation, expired/exhausted 422 responses, and ignored client discount fields.",
  "evidence": [
    "promotions.itest.ts covers valid promo code with recalculated discount",
    "promotions.itest.ts covers expired and exhausted promo codes returning HTTP 422",
    "promotions.itest.ts sends client discountCents in cart payload and server ignores it",
    "cd project && npm run lint/typecheck/build/test passed",
    "DB integration promotions/migrations suite passed: 11 files, 44 tests",
    "./scripts/verify.sh passed"
  ],
  "acceptance": [
    { "criterion": "Given valid promo code When applied Then discount recalculated server-side", "status": "PASS", "evidence": "SAVE10 applied to current cart total returns server-calculated discount" },
    { "criterion": "Given expired or exhausted code When applied Then HTTP 422 with reason", "status": "PASS", "evidence": "Expired OLD and exhausted USED both return 422" },
    { "criterion": "Given client-supplied discount amount Then discount ignored", "status": "PASS", "evidence": "Client discountCents is stripped/ignored; cart discount comes from PromotionService" },
    { "criterion": "verify.sh green", "status": "PASS", "evidence": "./scripts/verify.sh PASS" }
  ],
  "timestamp": "2026-08-15T17:44:09Z"
}
