{
  "skill_name": "quality-engineering-business-analysis",
  "evals": [
    {
      "id": 1,
      "prompt": "The AC for TICK-1234 says 'User can view order history'. Analyze this requirement and identify all missing logic, actor permissions, and edge cases before we write test cases.",
      "expected_output": "Atomic decomposition of AC into conditions (logged-in vs guest, empty state, pagination), actor matrix (Customer vs Sales Rep vs Admin with different visible orders), platform parity check (Web vs Mobile), edge cases (offline, no orders, expired session), flags undefined states as P0 blockers",
      "assertions": [
        { "type": "contains", "value": "Atomic" },
        { "type": "contains", "value": "Customer" },
        { "type": "contains", "value": "Sales" }
      ]
    },
    {
      "id": 2,
      "prompt": "We have a feature toggle that controls whether the 'Reorder' button is visible. The AC says it shows when the toggle is ON and the order status is Delivered. Map all the logic combinations.",
      "expected_output": "Truth table with toggle ON/OFF × order status (Delivered/Cancelled/Pending/etc) combinations, flag any undefined states, identify platform parity (same on Web and Mobile?), extract all actors who can see the button",
      "assertions": [
        { "type": "contains", "value": "Truth" },
        { "type": "contains", "value": "Mobile" },
        { "type": "contains", "value": "Truth table" }
      ]
    },
    {
      "id": 3,
      "prompt": "The Jira story says 'Only Market VN shows the invoice download button'. What impact analysis should I do before writing test cases?",
      "expected_output": "Variable identification: Market (VN vs others), actor mapping (which roles can download), platform check (Web/Mobile parity), boundary analysis (what happens in MY/SG markets — hidden or error?), flag whether 'other markets' behavior is undefined",
      "assertions": [
        { "type": "contains", "value": "Variable" },
        { "type": "contains", "value": "Market" },
        { "type": "contains", "value": "Mobile" }
      ]
    },
    {
      "id": 4,
      "prompt": "Help me write a user story for the {APP_NAME} tax breakdown feature. When DisplayItemTaxBreakdown is ON, {APP_NAME} users should see Price After Tax, Price Before Tax, and Tax on product cards. The Tender Contract page is out of scope.",
      "expected_output": "Story uses 'As a / I want / so that' structure. Each AC has a Given/When/Then block. ACs are tagged with Toggle: DisplayItemTaxBreakdown = ON/OFF and platform tag [BOTH] or [MOBILE]/[WEB]. Tender Contract page appears in Out of Scope section. No 'to discuss' text.",
      "assertions": [
        { "type": "contains", "value": "As a" },
        { "type": "contains", "value": "Given" },
        { "type": "contains", "value": "Toggle" },
        { "type": "contains", "value": "Out of Scope" }
      ]
    },
    {
      "id": 5,
      "prompt": "Review this user story for me:\n\n'User can see price changes. [MOBILE ONLY] On the offer page, price is highlighted. Translation follows user preference — to discuss.'",
      "expected_output": "Violations: (1) No 'As a / I want / so that' structure. (2) '[MOBILE ONLY]' is buried inline — should be a [MOBILE] platform tag per AC. (3) 'to discuss' on translation must be replaced with a Jira ticket in a Deferred section. (4) AC is bundled — split into individual Given/When/Then blocks.",
      "assertions": [
        { "type": "contains", "value": "As a" },
        { "type": "contains", "value": "platform" },
        { "type": "contains", "value": "Deferred" },
        { "type": "contains", "value": "Jira" }
      ]
    },
    {
      "id": 6,
      "prompt": "The story has a VN-specific AC: 'VN {APP_NAME} users see a Tender Available tag'. How should this be written and what additional ACs are implied?",
      "expected_output": "Mark AC with [Market: VN] prefix. Add implicit ACs: behavior for non-VN markets (tag hidden or not rendered), mandatory tender CTA label change to 'Buy with tender'. Platform tag [BOTH] or specify. Actor must be 'VN {APP_NAME} Customer'.",
      "assertions": [
        { "type": "contains", "value": "Market: VN" },
        { "type": "contains", "value": "non-VN" },
        { "type": "contains", "value": "Actor" }
      ]
    }
  ],
  "should_not_trigger": [
    "Create Zephyr test cases for the checkout flow",
    "Link TICK-5678 test cases back to Jira",
    "Write a Flutter widget test for the order screen",
    "Generate a test plan for the sprint",
    "Set up CI/CD pipeline for the mobile app"
  ]
}
