{
  "schema": "ai-01-critique-v1",
  "candidate": "candidates/answer-first.md",
  "provenance": "synthetic critique of a synthetic candidate",
  "findings": [
    {
      "claim": "a conventional reviver preserves the source integer",
      "result": "rejected",
      "evidence": ["NUM-02", "REV-01"],
      "reason": "the two-argument callback receives the already rounded Number"
    },
    {
      "claim": "reviver conversion is always too late",
      "result": "revised",
      "evidence": ["REV-02", "SRC-JSON-PARSE"],
      "reason": "the pinned runtime exposes context.source for a primitive, but that remains a client compatibility requirement"
    },
    {
      "claim": "BigInt solves the wire representation",
      "result": "rejected",
      "evidence": ["BIG-01", "SRC-BIGINT-JSON"],
      "reason": "in-memory precision does not supply ordinary JSON serialization"
    },
    {
      "claim": "decimal strings require no further policy",
      "result": "rejected",
      "evidence": ["VAL-01", "VAL-11", "A1"],
      "reason": "the contract still needs canonical grammar and explicit refusal"
    }
  ]
}
