{
  "package": "SNIN Emission Paper Pilot — test vectors v0.4.1 (FROZEN)",
  "date": "2026-09-08",
  "canonical_model": "amount_micro only; delta_balance/delta_rating are derived, never stored (blocker #1 fixed)",
  "denomination": "paper",
  "base_pay_micro": 100000000,
  "fixture_histories": {
    "R1_copycat_digest": {
      "type": "red",
      "note": "worker attempts to append a copycat digest row; class copycat is EXCLUDED at the storage boundary -> LedgerError, no row ever lands in the ledger",
      "expected": "storage_reject",
      "rows": [
        {"seq": 1001, "type": "emission", "actor": "W", "role": "create", "emission_class": "copycat", "amount_micro": 100000000, "outcome": "recorded", "ts": 100, "policy_version": "0.4.1", "is_fixture": true}
      ]
    },
    "R2_plausible_incorrect": {
      "type": "red",
      "note": "verifier accepts garbage with a confident plausible review; recheck overturns; fraud clawback reverses the pay -> net 0",
      "actor": "V",
      "rows": [
        {"seq": 2001, "type": "emission", "actor": "V", "role": "review", "emission_class": "verify_accept", "amount_micro": 100000000, "outcome": "accepted", "ts": 200, "policy_version": "0.4.1", "is_fixture": true},
        {"seq": 2002, "type": "emission", "actor": "R", "role": "adjudicate", "emission_class": "recheck_overturn", "amount_micro": 100000000, "outcome": "overturned", "ts": 201, "policy_version": "0.4.1", "is_fixture": true},
        {"seq": 2003, "type": "reversal", "actor": "V", "role": "system", "reverses_event_id": 2001, "effect": "balance_clawback", "basis": "fraud", "amount_micro": 100000000, "ts": 202, "policy_version": "0.4.1", "is_fixture": true}
      ]
    },
    "R3_self_circle": {
      "type": "red",
      "note": "rubber-stamp of own cluster's garbage; overturned; clawback -> net 0",
      "actor": "V",
      "rows": [
        {"seq": 3001, "type": "emission", "actor": "V", "role": "review", "emission_class": "verify_accept", "amount_micro": 100000000, "outcome": "accepted", "ts": 300, "policy_version": "0.4.1", "is_fixture": true},
        {"seq": 3002, "type": "emission", "actor": "R", "role": "adjudicate", "emission_class": "recheck_overturn", "amount_micro": 100000000, "outcome": "overturned", "ts": 301, "policy_version": "0.4.1", "is_fixture": true},
        {"seq": 3003, "type": "reversal", "actor": "V", "role": "system", "reverses_event_id": 3001, "effect": "balance_clawback", "basis": "fraud", "amount_micro": 100000000, "ts": 302, "policy_version": "0.4.1", "is_fixture": true}
      ]
    },
    "P1_corrective": {
      "type": "positive",
      "note": "verifier rejects a claim with a real error; recheck confirms; clean pay, no reversal -> net = base pay; MUST earn strictly more than R1..R3",
      "actor": "V",
      "rows": [
        {"seq": 4001, "type": "emission", "actor": "V", "role": "review", "emission_class": "verify_reject", "amount_micro": 100000000, "outcome": "rejected", "ts": 400, "policy_version": "0.4.1", "is_fixture": true},
        {"seq": 4002, "type": "emission", "actor": "R", "role": "adjudicate", "emission_class": "recheck_confirm", "amount_micro": 100000000, "outcome": "confirmed", "ts": 401, "policy_version": "0.4.1", "is_fixture": true}
      ]
    }
  },
  "expected_net_micro": {
    "R2_plausible_incorrect": 0,
    "R3_self_circle": 0,
    "P1_corrective": 100000000
  },
  "claims": {
    "N1_clean_complex":   {"claim_id": "N1", "actor": "W9", "kind": "work",     "text_len": 1800, "similarity_to_other": 0.31, "dependency_chain_len": 3, "authorship_self": false, "note": "complex clean work, must NOT be flagged"},
    "N2_clean_complex":   {"claim_id": "N2", "actor": "W11", "kind": "review",  "text_len": 950,  "similarity_to_other": 0.44, "dependency_chain_len": 2, "authorship_self": false, "note": "complex clean review, must NOT be flagged"},
    "N3_clean_complex":   {"claim_id": "N3", "actor": "W14", "kind": "digest",  "text_len": 640,  "similarity_to_other": 0.52, "dependency_chain_len": 2, "authorship_self": false, "note": "complex clean digest by non-owner, must NOT be flagged"},
    "C1_copycat_claim":   {"claim_id": "C1", "actor": "W5",  "kind": "work",    "text_len": 700,  "similarity_to_other": 0.97, "dependency_chain_len": 1, "authorship_self": false, "note": "near-duplicate of another work -> must be flagged"},
    "C2_self_digest":     {"claim_id": "C2", "actor": "W6",  "kind": "digest",  "text_len": 500,  "similarity_to_other": 0.61, "dependency_chain_len": 1, "authorship_self": true,  "note": "own digest self-circle -> must be flagged"},
    "C3_empty_stamp":     {"claim_id": "C3", "actor": "W7",  "kind": "work",    "text_len": 12,   "similarity_to_other": 0.55, "dependency_chain_len": 1, "authorship_self": false, "note": "empty stamp -> must be flagged"}
  },
  "classifier_expectations": {
    "N1_clean_complex": "accept",
    "N2_clean_complex": "accept",
    "N3_clean_complex": "accept",
    "C1_copycat_claim": "flag",
    "C2_self_digest": "flag",
    "C3_empty_stamp": "flag"
  },
  "adversarial_reversals": [
    {"name": "missing_target",        "note": "reversal points to a seq that does not exist -> reject",
     "reversal": {"actor": "V", "reverses_event_id": 9999, "effect": "balance_clawback", "basis": "fraud", "amount_micro": 100000000}},
    {"name": "wrong_actor",           "note": "reversal actor differs from target actor -> reject",
     "target_seq": 2001, "reversal": {"actor": "X", "reverses_event_id": 2001, "effect": "balance_clawback", "basis": "fraud", "amount_micro": 100000000}},
    {"name": "over_clawback",         "note": "clawback amount exceeds the target credit -> reject",
     "target_seq": 2001, "reversal": {"actor": "V", "reverses_event_id": 2001, "effect": "balance_clawback", "basis": "fraud", "amount_micro": 999999999}},
    {"name": "duplicate_clawback",    "note": "second clawback on the same credit -> reject (UNIQUE)",
     "target_seq": 2001, "setup": [{"seq": 2010, "type": "reversal", "actor": "V", "role": "system", "reverses_event_id": 2001, "effect": "balance_clawback", "basis": "fraud", "amount_micro": 50000000, "ts": 203, "policy_version": "0.4.1"}],
     "reversal": {"actor": "V", "reverses_event_id": 2001, "effect": "balance_clawback", "basis": "fraud", "amount_micro": 50000000}},
    {"name": "duplicate_rating",      "note": "second rating_adjustment on the same credit -> reject (UNIQUE)",
     "target_seq": 2001, "setup": [{"seq": 2011, "type": "reversal", "actor": "V", "role": "system", "reverses_event_id": 2001, "effect": "rating_adjustment", "basis": "misclassification", "amount_micro": 100000000, "ts": 204, "policy_version": "0.4.1"}],
     "reversal": {"actor": "V", "reverses_event_id": 2001, "effect": "rating_adjustment", "basis": "misclassification", "amount_micro": 100000000}},
    {"name": "misclassification_clawback", "note": "basis misclassification cannot carry balance_clawback -> reject",
     "target_seq": 2001, "reversal": {"actor": "V", "reverses_event_id": 2001, "effect": "balance_clawback", "basis": "misclassification", "amount_micro": 100000000}},
    {"name": "reversal_of_reversal",  "note": "reversal target must be an emission row, not another reversal -> reject",
     "target_seq": 2003, "setup": [{"seq": 2003, "type": "reversal", "actor": "V", "role": "system", "reverses_event_id": 2001, "effect": "balance_clawback", "basis": "fraud", "amount_micro": 100000000, "ts": 202, "policy_version": "0.4.1"}],
     "reversal": {"actor": "V", "reverses_event_id": 2003, "effect": "rating_adjustment", "basis": "misclassification", "amount_micro": 100000000}}
  ],
  "assertions": [
    "P1 > max(R1,R2,R3): positive control earns distinguishably",
    "R1 storage-rejected (excluded class); R2,R3 net 0",
    "N1..N3 classified 'accept' — no false positives (daedalus #23998)",
    "C1..C3 classified 'flag' — classifier is provably capable of flagging (negative control is meaningful)",
    "all adversarial reversals rejected by ledger_store (blocker #2)",
    "conservation holds with clawbacks and computed carry (blocker #4)"
  ]
}
