Home › Use Cases › Summarise one distribution request against the trust instrument provision that governs it
Use caseUC0522
🧪 Use-case kit · runnable

Summarise one distribution request against the trust instrument provision that governs it

A small, forkable project that does one job end to end. Run once for real, and every figure on these pages captured from that run.

The business caseThe problem this solves

A beneficiary asks a bank trust department for a distribution. Before anybody decides anything, somebody has to establish WHICH provision of the trust instrument governs a request of that kind — out of the instrument itself, its amendments, any restatement, and the administrative and purpose articles beside them — and then read that provision: does it oblige the trustee or merely permit; does it state an ascertainable standard, a sole discretion, an implied purpose or no standard at all; does the standard come from the distributive provision or from a purpose clause somewhere else; does it reach this request in the words it uses; and what conditions precedent must be satisfied first. On 36 of the 64 packs in this corpus MORE THAN ONE distributive provision is in force, under generic article labels drawn from one shuffled pool, so nothing printed on the pack names the answer. On 24 more the file memo names a provision that governs nothing. Opening one distribution request pack, working out which documents are in force at the request date, reading every distributive provision in all of them against the source and category asked for and the requester's class, choosing the one that governs, sweeping the administrative and purpose articles for a condition or a standard stated somewhere else, and quoting the operative words back exactly.

Audience

The trust administration desk of a bank trust department preparing ONE discretionary or mandatory distribution request for an officer's review, and the officer who signs the review off. The decision it supports is 'which provision am I reading, and what does it actually require' — never whether the distribution may be made, and never for how much. Every number on these pages came from one real run of this code, not from a vendor page.

The inputThe actual distribution requests

The corpus is 64 distribution requests, 0.15 MB (json 4 · jsonl 1 · md 2 · txt 64). No public corpus of trust distribution requests exists, and one built from real accounts would carry real settlors, real beneficiaries and real money. Every pack here is generated in process from one seed, so the key is DERIVED by the same rulebook the kit applies and the whole set rebuilds byte-identically. The mixture is the measurement: 36 packs where more than one distributive provision is in force under generic article labels, 32 whose purpose clause is written obliquely, 24 carrying a file memo that names a provision governing nothing, 17 where the memo names the right one, 8 where the instrument is silent, 35 sitting within ten weeks of a procedure-revision boundary and 23 carrying a memo line that asks, in a desk's own voice, for one of the eight things TDRS-2026 never does. One provision library supplies the governing provision AND the decoys, so they share modal frames, purpose phrases and condition phrases; every condition clause carries the word shall inside a DISCRETIONARY provision; and the request's words and the provision's words share no vocabulary. Following the file memo scores 26 of 64 — BELOW the rule it is built on.

The corpus

  • The 64 distribution requestsgenerated from a fixed seed, so no real record, person or institution appears in it.
  • Where each came fromdata/SOURCES.md states where every byte came from AND what the generator costs the measurement. Every account, instrument, amendment, provision, beneficiary, record and date is invented, generated from SEED 20265220, and THERE ARE NO PEOPLE IN THIS CORPUS AT ALL - a beneficiary is a code and every file memo speaks for the trust administration, fiduciary records, trust operations or account administration desk. evals/check_labels.py sweeps all 64 packs for a person-shaped name, an honorific and an unattributed memo line on every run and reports 0, re-derives the whole answer from an independent re-implementation of TDRS-2026 and reports 0 disagreements, and fails on any rulebook value no request carries. The best free-code floor is published there too: 29 of 64 whole-item, measured before any call was bought.

Swap this folder for your own material and the kit is pointed at your distribution requests. That is the whole change — there is no database to migrate.

One distribution request, as the model receives itREQ-0001.txt · 1 of 64
TRUST DISTRIBUTION REQUEST  REQ-0001
PACK DATE  2026-01-12   STANDARD  TDRS-2026

ACCOUNT  TRA-26-0400   REQUEST DATE  2026-01-06
REQUESTED BY  BEN-3002   SOURCE  INCOME   CATEGORY  MEDICAL-CARE
DECLARED SCOPE  FILES INSTRUMENT-FILE, ACCOUNT-FILE   OUT OF SCOPE ADVISORY-FILE

[1] THE REQUEST, AS WRITTEN
Trust administration desk: BEN-3002 asks the trustee to distribute income of the trust
towards a course of treatment at a clinic, and put the request in writing on 2026-01-06.

[2] GOVERNING DOCUMENTS
ID          EXECUTED    EFFECTIVE   FILE             KIND          STATUS
INST-40000  2019-06-04  2019-06-04  INSTRUMENT-FILE  INSTRUMENT    EXECUTED

[3] PROVISIONS OF RECORD
ID          DOCUMENT    KIND            ARTICLE
PRV-50000   INST-40000  DISTRIBUTIVE    ARTICLE THIRD (B)
    The trustee may distribute the net income of the trust to the current income beneficiary
    for the beneficiary's health; and no such distribution shall be made except upon the
    beneficiary's written acknowledgement.
PRV-50001   INST-40000  DISTRIBUTIVE    ARTICLE THIRD
    The trustee may distribute the net income of the trust to the remainder beneficiaries for
    the purchase of a motor vehicle for the beneficiary.
PRV-50002   INST-40000  ADMINISTRATIVE  ARTICLE FOURTH (A)
    No distribution of income or principal under any provision of this instrument shall be
    made with the written consent of the trust protector.
PRV-50003   INST-40000  PURPOSE         ARTICLE FIFTH
    The settlor's purpose in creating this trust is to provide for a gift by the beneficiary
    to another.

[4] BENEFICIARIES NAMED BY THE INSTRUMENT
ID        CLASS      NAMED IN
BEN-3000  CURRENT    PRV-50000
BEN-3001  REMAINDER  PRV-50001

[5] ACCOUNT RECORDS

Abridged — the file continues.

The outcomeWhat a good result looks like

One distribution request pack in, one reading out: the provision that governs a request of that kind, whether its words oblige or permit, the kind of standard those words state, where that standard comes from, how far it reaches, the set of conditions precedent with the provision behind each, and the operative words quoted character for character. src/policy.py then derives both verdicts, the requester's class, the lineage, the evidence join and the procedure step from that reading and the printed record. 30 of 64 requests come back whole on all thirteen graded fields at once, against 29 for the floor of record; 718 of 832 graded cells (86.3 pct) are right.

And when it cannot

And what it does when it cannot. 64 of 64 replies parsed, 0 stopped at the output ceiling, 0 were closed by the streaming runaway stop and no call failed. The 34 it gets wrong are named by mechanism in the kit README and on the board, the largest being the 14 of 32 requests whose purpose clause is written in words the request does not use. A reply that cannot be parsed is counted WRONG and stays in the denominator; it is never dropped and never re-fired.

Where it fitsWhat did work

Every line below is a measured result from this kit's own runs, with the figure that supports it. The headline above is not softened by any of them.

  • Your instruments each carry exactly ONE distributive provision in force — the strict domain floor (b000-trust-distribution-domain_strict)
    the gap this page measures lives in the 36 packs where more than one provision competes. Where one does not, a free rule reading the source, the category and the requester's class is already the answer, and the call buys a margin of one request that is not significant.
  • You need the KIND of standard or its SOURCE named correctly — the strict domain floor, or the file-memo rule — they tie at 53 and 51
    the paid call LOSES both cells: 52 against 53 on the kind of standard, 49 against 51 on where it comes from. Paying for a cell a free rule wins is the one thing this page is for.
  • The requester is often NOT a beneficiary the instrument names — the strict domain floor
    it scores 8 of 8 on the instrument-silent family against the paid call's 2 of 8. Supplying a provision where there is none is this arm's worst habit and the free rule does not have it.
  • The purpose clause is written in words the request does not use — the paid call, and expect to lose about half of them
    14 of the 32 oblique packs are missed. That is the largest single failure this kit has and it is still better than the free arms on the whole item — but only by one request in total.
  • You want a defence against a sentence pasted into a file memo — the schema and the phrase list — both, and neither is the reading
    the cap held on 64 of 64 scored requests and 24 of 24 attacked trials, with zero hits in all nine refusal families. The SELECTION did not move on any trial either — but 8 of the 24 trials were already wrong on the clean run, so 'nothing moved' is a weaker statement than it looks.

At a glanceHow the whole thing runs

47%whole item rechecked pct
1,694 msp50, end to end
$2.79per 1,000 distribution requests · the fast tier

Run once, for real, on 2026-09-21. Every figure on these pages was captured from that run — nothing is written from intent.

14 steps, grouped by the question that sends you to them rather than by build order. Each tile carries the one figure that step is about, and opens the page behind it.

Should you use this?What you bring, where it stops, and when not to use it

Before you commit an afternoon to this, these are the answers that decide it. Each one is rendered from the record it lives in — and links the page that holds it in full.

What do I have to bring?Replace data/corpus/*.txt with your own request packs in the same eight-block shape and data/requests.json with your own register, then edit data/policy.json so the verdicts, the standards, the reach values, the conditions precedent and the procedure revisions are YOURS. ⚠︎ WHAT STOPS BEING TRUE THE MOMENT YOU DO. Corpus lens →
When is this the wrong choice?Avoid: Buying a call per request to re-read a single provision you could have matched on. That is the case against the best-fitting scenario (“Your instruments each carry exactly ONE distributive provision in force”). 5 scenarios scored in all, each with its own. Eval lens →
Where does it stop working?A pack with no DOCUMENTS block, or documents with no effective dates. The whole reading turns on which document is in force at the request date; with no dates there is nothing to be in force. 6 recorded failure modes, each from a run rather than a guess. Corpus lens →
What was never verified?NO SECOND SCORED RUN. One was fired, so nothing here separates the margin of one request from run-to-run variance — and at p = 1.0 that is not a caveat, it is the finding. 10 items this kit says it could not check. Eval lens →
Can I run this on a model I control?Yes — any OpenAI-compatible endpoint, including one on your own hardware. The shipped adapter takes its host from BASE_URL and its model from MODEL, so nothing in src/ changes. The published figures come from 1 model on the fast tier, one provider, one key. Prompt lens →
And if it fits — what do I stand up?6 artifacts with a stated home and a stated egress, and 3 decisions each with what you provision past its ceiling — plus what was not measured. That is the next page, not this one. step 14 — Run it in your environment →

Not asked of this kit — 2 questions: clone (a fresh clone of this kit runs with nothing fetched); judge (nothing here is graded by a model).

Last verified 2026-09-21 — r001-trust-distribution. Every figure on these pages was captured from that run.

Run itHow this reaches your data

Every result on this page was produced by pure code over checked-in files, with no API key — which is why you can read the numbers before anyone spends anything.

Run this on your own data

  • The pipeline, its eval harness and the runs behind every numberdeployed inside your environment, on your own model endpoints, against your own documents.
  • The corpus above is the shape, not the limitit is a folder swap, and there is no database to migrate.

Talk to us →

Checked before this shipped — A clean checkout with no key configured renders the whole board, runs the five free arms live in the browser and replays every committed arm. pip install -r requirements.txt installs nothing — the kit is standard library only. The only thing a key buys is the ASK THE MODEL button and a new scored run; without one the button is disabled and says so.

A living map of modern AI — kept current every morning