{
  "standardVersion": "0.2.0-draft",
  "status": "proposed configurable defaults",
  "buckets": {
    "ai": [
      {
        "id": "fp_challenge",
        "label": "False-positive challenge",
        "short": "FP challenge",
        "color": "#D9876C",
        "def": "A case that must NOT trigger the task’s positive decision (benign lookalike)."
      },
      {
        "id": "fn_challenge",
        "label": "False-negative challenge",
        "short": "FN challenge",
        "color": "#C47FAE",
        "def": "A case that MUST trigger the positive decision even though it is disguised or subtle."
      },
      {
        "id": "grounding",
        "label": "Hallucination / grounding",
        "short": "Grounding",
        "color": "#6E95D8",
        "def": "Claims checked against supplied evidence, including missing or conflicting evidence."
      },
      {
        "id": "insufficient",
        "label": "Insufficient / conflicting info",
        "short": "Insufficient",
        "color": "#58B1BF",
        "def": "Underspecified, ambiguous or contradictory inputs with a declared acceptable response."
      },
      {
        "id": "negative",
        "label": "Negative / false premise",
        "short": "Negative",
        "color": "#B4566A",
        "def": "Invalid, prohibited or false-premise inputs with an expected rejection or correction."
      },
      {
        "id": "boundary",
        "label": "Boundary",
        "short": "Boundary",
        "color": "#D3AC5E",
        "def": "On, just below and just above meaningful thresholds, limits or transitions."
      },
      {
        "id": "positive",
        "label": "Positive / supported",
        "short": "Positive",
        "color": "#68BC86",
        "def": "Valid, answerable inputs with a verifiable expected answer."
      }
    ],
    "software": [
      {
        "id": "security",
        "label": "Security",
        "short": "Security",
        "color": "#C47FAE",
        "def": "Authentication, authorization, injection, secrets and data-exposure checks."
      },
      {
        "id": "accessibility",
        "label": "Accessibility",
        "short": "A11y",
        "color": "#58B1BF",
        "def": "Keyboard, focus, labels, contrast and assistive-technology behavior."
      },
      {
        "id": "performance",
        "label": "Performance / load",
        "short": "Performance",
        "color": "#6E95D8",
        "def": "Latency, throughput, load, stress and resource limits."
      },
      {
        "id": "negative",
        "label": "Negative / rejected behavior",
        "short": "Negative",
        "color": "#B4566A",
        "def": "Invalid input or disallowed actions that must be rejected correctly."
      },
      {
        "id": "boundary",
        "label": "Boundary / edge cases",
        "short": "Boundary",
        "color": "#D3AC5E",
        "def": "Limits, empty/maximum values, off-by-one and threshold behavior."
      },
      {
        "id": "error_recovery",
        "label": "Error handling & recovery",
        "short": "Errors",
        "color": "#D9876C",
        "def": "Failures, exceptions, outages and graceful recovery."
      },
      {
        "id": "state_transition",
        "label": "State transitions",
        "short": "State",
        "color": "#9A84D2",
        "def": "Lifecycle, workflow and status changes, including invalid transitions."
      },
      {
        "id": "positive",
        "label": "Positive / expected behavior",
        "short": "Positive",
        "color": "#68BC86",
        "def": "The happy path: valid input produces the expected result."
      }
    ]
  },
  "profiles": {
    "ai": [
      {
        "id": "general",
        "name": "General assistant / Q&A",
        "targets": {
          "positive": 30,
          "negative": 15,
          "boundary": 15,
          "insufficient": 15,
          "grounding": 15,
          "fp_challenge": 5,
          "fn_challenge": 5
        },
        "why": "Balanced challenge set: supported answers plus false premises, limits, missing information and grounding."
      },
      {
        "id": "rag",
        "name": "Retrieval / grounded answers",
        "targets": {
          "positive": 25,
          "negative": 10,
          "boundary": 10,
          "insufficient": 15,
          "grounding": 30,
          "fp_challenge": 5,
          "fn_challenge": 5
        },
        "why": "Missing, contradictory, outdated and irrelevant evidence; unsupported answers and unnecessary refusals."
      },
      {
        "id": "agent",
        "name": "Tool use / agent workflows",
        "targets": {
          "positive": 25,
          "negative": 20,
          "boundary": 15,
          "insufficient": 15,
          "grounding": 10,
          "fp_challenge": 8,
          "fn_challenge": 7
        },
        "why": "Authorization, wrong-tool selection, partial failure and irreversible-action boundaries."
      },
      {
        "id": "safety",
        "name": "Safety / moderation / detection",
        "targets": {
          "positive": 20,
          "negative": 15,
          "boundary": 10,
          "insufficient": 10,
          "grounding": 5,
          "fp_challenge": 20,
          "fn_challenge": 20
        },
        "why": "Benign lookalikes vs. dangerous evasions; FP and FN challenges carry the most weight."
      },
      {
        "id": "knowledge",
        "name": "Closed-book knowledge",
        "targets": {
          "positive": 60,
          "negative": 10,
          "boundary": 15,
          "insufficient": 10,
          "grounding": 5,
          "fp_challenge": 0,
          "fn_challenge": 0
        },
        "why": "Preserve answerability; FP/FN only when a binary decision exists."
      }
    ],
    "software": [
      {
        "id": "web-app",
        "name": "Web / UI application",
        "targets": {
          "positive": 30,
          "negative": 20,
          "boundary": 15,
          "error_recovery": 10,
          "state_transition": 10,
          "security": 7,
          "accessibility": 5,
          "performance": 3
        },
        "why": "User flows plus invalid input, limits, failures, state changes, security and accessibility."
      },
      {
        "id": "api-service",
        "name": "API / backend service",
        "targets": {
          "positive": 30,
          "negative": 25,
          "boundary": 15,
          "error_recovery": 15,
          "state_transition": 5,
          "security": 10,
          "accessibility": 0,
          "performance": 0
        },
        "why": "Contracts, validation, error codes, auth and resilience."
      },
      {
        "id": "library",
        "name": "Library / SDK",
        "targets": {
          "positive": 35,
          "negative": 25,
          "boundary": 25,
          "error_recovery": 15,
          "state_transition": 0,
          "security": 0,
          "accessibility": 0,
          "performance": 0
        },
        "why": "Valid and invalid inputs, edge values and error contracts."
      }
    ]
  },
  "reviewTiers": {
    "low": {
      "confidence": 0.95,
      "halfWidth": 0.1
    },
    "moderate": {
      "confidence": 0.95,
      "halfWidth": 0.05
    },
    "high": {
      "confidence": 0.99,
      "halfWidth": 0.05
    },
    "critical": {
      "confidence": 0.99,
      "halfWidth": 0.02
    }
  }
}