{
  "unit": "One intervention = one category-distinct problem raised in one owner message. A message raising two kinds of problem yields two rows; two bugs of the same category in one message yield one row.",
  "inclusion": "A message counts as an intervention when it corrects, rejects, redirects or catches something the agent did, claimed or left out, as shown by the message itself or the immediately preceding assistant text. New feature requests, pre-emptive instructions ('make sure X') with no sign of a prior miss, approvals, questions and logistics are coded NONE. Pasted text written by another agent or tool, harness command text, non-product sessions, messages about a third person's private affairs and one disagreement with a credential-safety boundary are coded EXCL.",
  "categories": {
    "FUNC": "Broken behaviour found in use: a feature that does not work, errors, crashes, wrong result in the running product, reported for the first time.",
    "REG": "Regression or still-unfixed bug: the same failure reported again ('still', 'again'), or behaviour that used to work and was lost.",
    "DEVL": "Layout and rendering breakage: clipping, overflow, misalignment, wrong z-order, flicker, platform-specific rendering (light status bar, Android vs iOS), sizing on particular devices. Correctness of layout, not taste.",
    "FOLLOW": "Unfinished or unverified work: items left undone, behaviour specified but not implemented, or a demand to verify that something actually works end to end.",
    "INST": "Earlier instruction ignored: the agent did something he had already ruled out, or omitted something he had already asked for; noticed because he remembered saying it.",
    "INTENT": "Misread intent or wrong diagnosis: the agent understood the request differently, or pursued the wrong root cause.",
    "FACT": "Wrong fact, path or instruction: an assumed fact, a wrong name or status, a command or console step that does not work.",
    "STALE": "Stale build, asset or public page: an old build on the device, an old icon, outdated screenshots, a public site or showcase not updated.",
    "PROC": "Process and release hygiene: commits, pushes, build numbering, repository set-up, checking whether background work is actually running.",
    "SCOPE": "Wrong scope: building more, less or something other than what was asked.",
    "BLOCK": "False blocker or premature stop: the agent stopped or handed a step back although it could proceed.",
    "OVER": "Overclaim of status: describing work as done, live, verified or running when it was not, or wording that overstates maturity.",
    "SEC": "Missing security or abuse control noticed by him.",
    "COST": "Cost surprise: unexpected hosting or database charges.",
    "VIS": "Visual design taste (generic look, fonts, colours, glow, motion feel). Counted only; analysed in the sibling paper 'beyond-the-default'."
  },
  "how_noticed": {
    "DEVICE": "Using the app on a phone, simulator or in a browser.",
    "VISUAL": "Looking at a rendered page, screenshot, preview or mock-up without operating the product.",
    "READ": "Reading the agent's report, diff, repository or terminal state.",
    "MEMORY": "Remembering an earlier instruction or decision.",
    "DOMAIN": "Product, platform or business knowledge (how the product should behave, store rules, his own setup).",
    "EXTERNAL": "An outside system told him: a store console, cloud console, error output, a bill."
  },
  "agent_reported_success": "Y if the immediately preceding assistant text described the relevant work, or the build as a whole, as done, fixed, shipped, live, verified or working; N if it did not; U if unclear.",
  "checks_cited": "1 if the immediately preceding assistant text cites passing checks (regex in build_dataset.py). Computed, not hand-coded.",
  "recurred": "Y if the message itself, or the record, shows the same problem had been raised before.",
  "rule_match (chains.csv)": "exact = the written rule names the failing code path or value he reported; adjacent = the rule covers a neighbouring path or a debugging recipe; habit = the rule asks the agent to remember a behaviour."
}
