Files
karti-ai 2dfa96939e
ci / web (push) Successful in 2m43s
ci / python (push) Successful in 2m36s
Alert Triage: environment #2, built end to end by the pipeline
The first environment shipped through .claude/workflows/new-environment.js:
specification, three adversarial reviews (all 'fixable', none fatal), the
Python environment, the TypeScript port, captured rollouts, and the demo page.
Eleven agents, no errors.

The proof that the platform scales is one line long. Alert Triage has a
completely different shape from Word Five — JSON actions, priced lookups, an
analyst screen instead of a grid — and the only change under
src/components/demo/ is a comment edit, because the isolation lint refused the
word "wordle" there. Zero shell code changed. 415 contract checks now pass
against two demos, up from 206 against one.

The environment is honest by construction. Every alert is synthetic, generated
from the seed, and the banner saying so sits inside the board surface. Two of
the eleven scenario templates are hidden-suspicious: generated by the same code
as their benign twin with the signal overlaid only in lookup data, so the free
screen is identically distributed and a screen-only policy STRUCTURALLY cannot
tell them apart. The probe ladder measures it: `fast` catches 0.0 of hidden
seeds. That is the counterweight made real rather than asserted.

Twelve policies, thirteen ladder assertions, a genuine three-way trade:

  fast      0.846   wins hours (0.85), misses every hidden case
  targeted  0.894   wins the shipped total
  thorough  0.820   wins evidence (1.00), spends 2.9 hours

None dominates. 92 Python tests, 35 TypeScript tests, 65 fixtures replaying at
delta 0, and conformance gated on world + scorer + protocol so the browser shows
the same alert for ?seed= that Python generated.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019mt6sHQHEnEYrJZvoMCJSB
2026-08-28 19:48:36 -07:00

88 lines
4.5 KiB
JSON

[
{
"seed": 0,
"note": "well-formed lookups, a fenced disposition after a bare brace, brace inside a string",
"replies": [
"{\"action\":\"lookup\",\"what\":\"documents\"}",
"I will check priors first. {\"action\":\"lookup\",\"what\":\"prior_alerts\"} and then decide.",
"{\"action\":\"lookup\",\"what\":\"history\",\"month\":\"BADMONTH\"}",
"Let me look at CP-1 {not json} ```json\n{\"action\":\"lookup\",\"what\":\"counterparty\",\"id\":\"CP-1\"}\n```",
"{\"action\":\"close\",\"reason\":\"CONSISTENT_WITH_PROFILE\",\"cites\":[\"kyc.customer_type\",\"kyc.customer_type\",\"kyc.country\"],\"note\":\"braces {inside} a string \\\" and an escaped quote\"}"
]
},
{
"seed": 1,
"note": "invalid first span then valid: rejected, no further scanning; lowercase enums; non-string cites",
"replies": [
"{\"action\":\"lookup\",\"what\":\"documents\",} {\"action\":\"lookup\",\"what\":\"documents\"}",
"{\"action\":\"close\",\"reason\":\"consistent_with_profile\",\"cites\":[\"kyc.country\"]}",
"{\"action\":\"Lookup\",\"what\":\"documents\"}",
"{\"action\":\"close\",\"reason\":\"CONSISTENT_WITH_PROFILE\",\"cites\":[1,2]}",
"{\"action\":\"close\",\"reason\":\"CONSISTENT_WITH_PROFILE\",\"cites\":\"kyc.country\"}",
"{\"action\":\"escalate\",\"typology\":\"structuring\",\"cites\":[\"kyc.country\"]}",
"{\"action\":\"escalate\",\"typology\":\"STRUCTURING\",\"cites\":[],\"narrative\":\"x\"}",
"{\"action\":\"escalate\",\"typology\":\"STRUCTURING\",\"cites\":[\"kyc.country\"],\"narrative\":42}"
]
},
{
"seed": 2,
"note": "repeat lookups, nonexistent and unseen counterparties, out-of-window months, an unseen cite",
"replies": [
"{\"action\":\"lookup\",\"what\":\"prior_alerts\"}",
"{\"action\":\"lookup\",\"what\":\"prior_alerts\"}",
"{\"action\":\"lookup\",\"what\":\"counterparty\",\"id\":\"CP-99\"}",
"{\"action\":\"lookup\",\"what\":\"counterparty\",\"id\":\"cp-1\"}",
"{\"action\":\"lookup\",\"what\":\"history\",\"month\":\"2024-01\"}",
"{\"action\":\"lookup\",\"what\":\"history\",\"month\":\"2026-1\"}",
"{\"action\":\"close\",\"reason\":\"DOCUMENTED_SOURCE_OF_FUNDS\",\"cites\":[\"doc.probate_letter\"]}",
"{\"action\":\"close\",\"reason\":\"PREVIOUSLY_REVIEWED\",\"cites\":[\"kyc.prior_alerts\"]}"
]
},
{
"seed": 3,
"note": "prose only, empty, null, NaN, a fenced array, nested objects, unbalanced braces; runs out the budget -> aborted",
"replies": [
"I would like to think about this alert a little longer before acting.",
"",
null,
"{\"action\":\"lookup\",\"what\":\"documents\",\"weight\":NaN}",
"```json\n[{\"action\":\"lookup\",\"what\":\"documents\"}]\n```",
"{\"outer\":{\"action\":\"lookup\",\"what\":\"documents\"}}",
"{\"action\":\"lookup\",\"what\":\"documents\"",
"{\"what\":\"documents\"}"
]
},
{
"seed": 4,
"note": "a full investigation that itemises the two most recent months and escalates on the last turn",
"replies": [
"{\"action\":\"lookup\",\"what\":\"documents\"}",
"{\"action\":\"lookup\",\"what\":\"prior_alerts\"}",
"{\"action\":\"lookup\",\"what\":\"counterparty\",\"id\":\"CP-2\"}",
"{\"action\":\"lookup\",\"what\":\"counterparty\",\"id\":\"CP-3\"}",
"{\"action\":\"lookup\",\"what\":\"history\",\"month\":\"2026-03\"}",
"{\"action\":\"lookup\",\"what\":\"history\",\"month\":\"2026-04\"}",
"{\"action\":\"lookup\",\"what\":\"history\",\"month\":\"2026-05\"}",
"{\"action\":\"escalate\",\"typology\":\"UNKNOWN\",\"cites\":[\"kyc.country\",\"kyc.pep\"],\"narrative\":\"eighth turn\"}"
]
},
{
"seed": 5,
"note": "a disposition citing every shown KYC field; extra keys ignored; the episode ends and later replies are not counted",
"replies": [
"```json\n{\"action\": \"close\", \"reason\": \"RULE_ARTEFACT\", \"cites\": [\"kyc.customer_type\", \"kyc.country\", \"kyc.pep\", \"kyc.prior_alerts\", \"kyc.prior_sars\", \"kyc.stated_income\", \"kyc.expected_monthly_cash\", \"kyc.expected_activity\", \"kyc.account_opened\", \"kyc.kyc_refreshed\", \"kyc.remittance_declared\"], \"note\": \"\", \"confidence\": 0.9}\n```",
"{\"action\":\"lookup\",\"what\":\"documents\"}"
]
},
{
"seed": 6,
"note": "stops after three turns with no disposition: truncated, not aborted; an unknown lookup kind",
"replies": [
"{\"action\":\"lookup\",\"what\":\"documents\"}",
"thinking",
"{\"action\":\"lookup\",\"what\":\"prior_alerts\"}",
"{\"action\":\"lookup\",\"what\":\"emails\"}",
"[{\"action\":\"lookup\",\"what\":\"counterparty\",\"id\":\"CP-1\"}] as a bare array: the inner object is the first balanced span"
]
}
]