Home / Replicate / The Northstar refund twin: allowed is not right, in a vault

A vault

The Northstar refund twin: allowed is not right, in a vault

Thirteen refunds, four designs, every decision replayable, in a vault you can open.

Northstar: allowed is not right

Ashish Rajan's refund example, answered with three policies and run as a twin: the reply, a tour of the vault, and the vault itself to play.

1 · The replyAllowed is not rightHis four questions mapped to behaviour, decision and workflow policies, and what the twin showed.
2 · The tourInside the Northstar twinThirteen refunds, four designs, case by case: what each control catches, misses and costs.
you are here
3 · The twinThe Northstar refund twinPlay every decision step by step, replay it, compare the designs, or build your own.Play itOpen the vault ↗His article ↗
Everything in this vault is synthetic. Northstar is the fictional retailer in Ashish Rajan's article, What Does It Take to Build AI Systems We Can Actually Trust? (16 October 2026). Every order, person and amount here is invented for this twin. No model is called: the agent's mistakes are scripted per case, so every run replays exactly. The reply makes the argument; the tour walks through the cases.
Open it yourself. The key is the whole credential.
Read key: sgit_public_read_a46933632c85705c16c5298ff8e1a4e8725153a890bb9f43e2246248c3625e1c:n89dyusm
In the official UI: open it read-only in a new tab · From the CLI: sgit clone sgit_public_read_a46933632c85705c16c5298ff8e1a4e8725153a890bb9f43e2246248c3625e1c:n89dyusm
Published deliberately under the sgit_public_read_ prefix, and derived one-way from a vault key that is not in this repository. Read back with this key before it was published: 45 files, the same app.

Open the twin, full screen → or play it here, below

Opens in the vault's own app, read-only, with the published key: the case, play and replay, the comparison, the three policies, the casebook and the four questions.

Play it here

Pick a design, pick a case, press Play. Step back and forward, show every step, or run the whole day. Under the designs, tick any controls to build your own.

The four designs, on the same thirteen cases

OverpaidOwedRightMin
A$458$341.601 of 130
B$54$222.604 of 133
C$0$012 of 1357
D$0$013 of 1318

"Owed" is what customers were still owed at the end of the day. "Right" means the right amount, to the right order, decided by the right decider. Min is minutes of a person's time on escalations: 6 minutes a case, 3 an approval. All numbers are from the twin's own engine, on synthetic cases.

What is in it

PathWhat
index.htmlThe app: the case, play and replay, the comparison, the three policies, the casebook, the four questions; the data and the engine inlined.
content.jsonCustomers, orders, the thirteen cases, Northstar's refund rules, people's decisions, the ten controls, the four designs and the three policies.
engine.jsThe deterministic engine: NorthstarTwin.make(content).run(controls) runs the cases in order and returns every step and outcome.
policies/The behaviour, decision and workflow policies on their own.
cases/, orders/One file per refund request and per order.
runs/Every step of every case under each design, as the engine produced them.
tools/The scripts that build all of it. Change the cases, the rules or the controls, and rebuild.

A tour

The case: the scenario from the article, the thirteen requests, and the four designs side by side: overpaid, short or still owed, right, and the minutes people spent.
The case: the scenario from the article, the thirteen requests, and the four designs side by side: overpaid, short or still owed, right, and the minutes people spent.
Play and replay: N-1001, the $150 refund, in design A. Every step is tagged with its pillar and its policy; on the right, what the agent did against what the records say, the ledger, and the trace.
Play and replay: N-1001, the $150 refund, in design A. Every step is tagged with its pillar and its policy; on the right, what the agent did against what the records say, the ledger, and the trace.
N-1008 in design D: the right amount, $261, proposed as three refunds under the limit. The decision policy routes anything over $200 to a team lead, and the workflow pays one decided amount.
N-1008 in design D: the right amount, $261, proposed as three refunds under the limit. The decision policy routes anything over $200 to a team lead, and the workflow pays one decided amount.
Compare the designs: every case under A, B, C and D, with the totals: $458 overpaid in A, $0 in C and D; 57 person-minutes in C, 18 in D.
Compare the designs: every case under A, B, C and D, with the totals: $458 overpaid in A, $0 in C and D; 57 person-minutes in C, 18 in D.
The three policies: the behaviour policy's rows, the decision table for who decides the amount, and the workflow's eight steps with the controls at each.
The three policies: the behaviour policy's rows, the decision table for who decides the amount, and the workflow's eight steps with the controls at each.
The casebook: N-1010 goes to a person and becomes precedent P-1; N-1011 follows it; N-1012 is distinguished and goes to a person again.
The casebook: N-1010 goes to a person and becomes precedent P-1; N-1011 follows it; N-1012 is distinguished and goes to a person again.

For an agent