{
  "source": "transcript-en.json",
  "scoring": "An item counts as found when every string in allOf and at least one string in anyOf appears in the model output for that field, case-insensitively. Decisions are matched against their text only: matching against the timestamp made a decision at t=196s look like a decision about the 19th. Any returned item that matches no expected rule is counted as extra and has to be read by a human.",
  "participants": {
    "expectedCount": 3,
    "expected": [
      {
        "id": "alex",
        "allOf": [
          "alex"
        ]
      },
      {
        "id": "maya",
        "allOf": [
          "maya"
        ]
      },
      {
        "id": "tom",
        "allOf": [
          "tom"
        ]
      }
    ],
    "forbidden": [
      {
        "id": "daniel",
        "allOf": [
          "daniel"
        ],
        "why": "named in the transcript but never speaks"
      }
    ]
  },
  "decisions": {
    "expected": [
      {
        "id": "postgres",
        "allOf": [
          "postgres"
        ],
        "why": "events table moves to Postgres"
      },
      {
        "id": "beta-26th",
        "anyOf": [
          "26",
          "twenty six",
          "twenty-six"
        ],
        "why": "beta ships on the 26th"
      },
      {
        "id": "no-sso",
        "allOf": [
          "sso"
        ],
        "why": "no SSO for launch"
      },
      {
        "id": "keep-old-table",
        "allOf": [
          "two weeks"
        ],
        "why": "old table stays read only for two weeks, then is dropped"
      }
    ],
    "forbidden": [
      {
        "id": "beta-19th",
        "anyOf": [
          "19",
          "nineteen"
        ],
        "why": "superseded later in the same meeting; reporting it as a decision is wrong"
      }
    ]
  },
  "actionItems": {
    "expected": [
      {
        "id": "migration",
        "allOf": [
          "migration"
        ],
        "owner": "maya",
        "why": "write the migration by Friday"
      },
      {
        "id": "load-test",
        "allOf": [
          "load test"
        ],
        "owner": "tom",
        "why": "run the load test, number by end of next week"
      },
      {
        "id": "rollback",
        "allOf": [
          "rollback"
        ],
        "owner": "tom",
        "why": "rollback plan before the 26th"
      },
      {
        "id": "roadmap",
        "allOf": [
          "roadmap"
        ],
        "owner": "maya",
        "why": "update the roadmap with the new date"
      }
    ],
    "forbidden": [
      {
        "id": "vendor-email",
        "allOf": [
          "vendor"
        ],
        "why": "assigned and then explicitly withdrawn in the same meeting"
      }
    ]
  },
  "numberTrap": {
    "correct": [
      "2400",
      "2,400",
      "two thousand four hundred"
    ],
    "wrong": [
      "3400",
      "3,400",
      "three thousand four hundred"
    ],
    "why": "the speaker corrects himself; quoting the first figure means the model kept a retracted number"
  },
  "dueDates": {
    "rule": "The transcript contains no absolute date, only Friday, the 19th and the 26th. Any due value shaped like a full ISO date is invented by the model."
  }
}
