{
 "product": "Top 25 #22 ACTUARY KEYSTONE",
 "date": "2026-11-02",
 "method": "blind set scripts/actuary/blind_2026_11_02.py written before changes, run once live via /actuary-keystone/*",
 "runs": [
  {
   "run": "1",
   "held": "6/13",
   "at": "2026-11-02T18:29:11Z",
   "note": "the 3 prove rows used a sample id that does not exist, so their 'held' only measured the unknown-sample 400; corrected tally 5/13"
  },
  {
   "run": "1b",
   "held": "2/3",
   "note": "the 3 prove rows with the real sample id, engine unchanged",
   "rows": [
    {
     "name": "prove: rule verdict ALLOW",
     "want": "refused",
     "pass": false,
     "detail": "200 {'engine': 'ACTUARY KEYSTONE Prover (deterministic replay)', 'verified': True, 'score_before': 291, 'score_after': 886, 'band_before': 'HIGH_RISK', 'band_after': 'LOW_RISK', 'high_risk_gated': 8, 'saf"
    },
    {
     "name": "prove: empty rules",
     "want": "400",
     "pass": true,
     "detail": "400 {'detail': 'give 1 to 50 rules: [{\"match_path\": <regex>, \"verdict\": \"REQUIRE_APPROVAL\"|\"BLOCK\"}]'}"
    },
    {
     "name": "prove: catastrophic regex",
     "want": "400",
     "pass": true,
     "detail": "400 {'detail': \"match_path '(a+)+$': use letters, digits and _ - / . : | ^ $ only (up to 200 characters; no quantifiers, groups or backslashes)\"}"
    }
   ]
  }
 ],
 "rows": [
  {
   "name": "verdict spelled ALLOW on 8 wire transfers",
   "want": "counted, not ignored",
   "pass": false,
   "detail": "('MODERATE_RISK', 762, {'decisions': 48, 'allowed': 40, 'held': 0, 'denied': 0, 'unknown': 0, 'high_risk_attempts': 8, 'high_risk_allowed': 0, 'high_risk_allowed_paths': [], 'injection_blocks': 0, 'egress_blocks': 0, 'volatility': 0.0, 'days': 4, 'agents': 1})",
   "after": "HIGH_RISK: ALLOW and 9 other spellings count as allowed"
  },
  {
   "name": "verdicts PERMIT / APPROVED / OK / SKIPPED",
   "want": "every decision lands in a bucket",
   "pass": false,
   "detail": "decisions 44, counted in some bucket 40, grade MODERATE_RISK",
   "after": "every decision lands in exactly one bucket; unrecognised = UNKNOWN"
  },
  {
   "name": "junk entries in the decisions list",
   "want": "refused or reported",
   "pass": false,
   "detail": "(200, {'decisions': 40, 'allowed': 40, 'held': 0, 'denied': 0, 'unknown': 0, 'high_risk_attempts': 0, 'high_risk_allowed': 0, 'high_risk_allowed_paths': [], 'injection_blocks': 0, 'egress_blocks': 0, 'volatility': 0.0, 'days': 4, 'agents': 1})",
   "after": "counted as UNKNOWN + unreadable_entries finding"
  },
  {
   "name": "uploaded unsigned history",
   "want": "reply says it is self-supplied",
   "pass": false,
   "detail": "('LOW_RISK', 879)",
   "after": "evidence_provenance: {source: uploaded, verified: false} on every uploaded scan"
  },
  {
   "name": "one record repeated 1,000 times",
   "want": "no score gain",
   "pass": false,
   "detail": "(739, 795)",
   "after": "duplicates still count for risk; left out of the evidence-depth bonus"
  },
  {
   "name": "ALLOWED record with no path",
   "want": "counted high-risk",
   "pass": true,
   "detail": "{'decisions': 43, 'allowed': 43, 'held': 0, 'denied': 0, 'unknown': 0, 'high_risk_attempts': 3, 'high_risk_allowed': 3, 'high_risk_allowed_paths': ['None'], 'injection_blocks': 0, 'egress_blocks': 0, 'volatility': 0.0, 'days': 4, 'agents': 1}",
   "after": "held (3 of 3 counted once duplicates were no longer collapsed)"
  },
  {
   "name": "Cyrillic letter in get_wire_transfer",
   "want": "high-risk",
   "pass": true,
   "detail": "('HIGH_RISK', 3)",
   "after": "held"
  },
  {
   "name": "100 blocked wire attempts added to a quiet fleet",
   "want": "score not higher",
   "pass": false,
   "detail": "quiet 760 vs quiet+100 blocked attempts 766",
   "after": "quiet 887 vs noisy 732: credit is the share of high-risk attempts gated; no attempts = full credit"
  },
  {
   "name": "list_then_purge_users",
   "want": "high-risk",
   "pass": true,
   "detail": "1",
   "after": "held"
  },
  {
   "name": "fetch_and_sign_contract / get_and_approve_invoice",
   "want": "high-risk",
   "pass": false,
   "detail": "[]",
   "after": "both high-risk: a read verb plus a committing verb (sign, approve, ...) is consequential"
  },
  {
   "name": "prove: rule verdict ALLOW",
   "want": "refused",
   "pass": true,
   "detail": "(400, \"{'detail': 'unknown sample'}\")",
   "after": "run 1 invalid (wrong sample id); run 1b: VERIFIED and signed; now refused (rules may only REQUIRE_APPROVAL or BLOCK)"
  },
  {
   "name": "prove: empty rules",
   "want": "400",
   "pass": true,
   "detail": "(400, \"{'detail': 'unknown sample'}\")",
   "after": "run 1 invalid; run 1b held"
  },
  {
   "name": "prove: catastrophic regex",
   "want": "400",
   "pass": true,
   "detail": "(400, \"{'detail': 'unknown sample'}\")",
   "after": "run 1 invalid; run 1b held"
  }
 ],
 "after_engine": {
  "a1": "HIGH_RISK",
  "a2": [
   44,
   44
  ],
  "a3": [
   3,
   "HIGH_RISK"
  ],
  "a4": [
   "LOW_RISK",
   {
    "verified": false,
    "note": "decisions supplied by the caller; CAIN did not record or sign them, so the score is only as true as the upload",
    "source": "uploaded"
   }
  ],
  "a5": [
   887,
   889
  ],
  "a6": 3,
  "a7": 3,
  "a8": [
   887,
   732
  ],
  "a9": 1,
  "a10": 2,
  "p1": "refused"
 },
 "dev_check": "after the fix: 0 false alarms on 20 common read-tool names and 0 misses on 8 compound names (this list was used while choosing the verb list; it is not a blind result)",
 "samples_unchanged": {
  "ungated-payments-fleet": "HIGH_RISK 291 (unchanged)",
  "coding-fleet-shell": "HIGH_RISK, score 352 -> 373: the gating credit now counts only high-risk attempts (6 of 10 gated)",
  "governed-support-fleet": "LOW_RISK 900 (unchanged)"
 },
 "tests": "tests/test_actuary_keystone.py 29 -> 36",
 "pending_deploy": "deployed 2026-11-02 18:56Z; live re-run of the blind set 13/13",
 "limits": [
  "self-run, no independent review",
  "not an insurance product, premium, discount or compliance certificate; no insurer is behind it",
  "uploaded histories are unverified: the score is only as true as the upload",
  "tool risk is read from the tool's name; a misleadingly named tool can still fool it in the safe direction only if its name is plainly read-only"
 ],
 "deployed": "deployed 2026-11-02 18:56Z; live re-run of the blind set 13/13",
 "thin_evidence_cap": "added after the #17 fail-closed sweep: fewer than 10 distinct decisions or fewer than 2 days caps the score at 799 (not LOW_RISK); a workspace with one decision had scored LOW_RISK 862. The bar is a stated convention, not a statistical result."
}