ENGINE 29

SFS-E29-WRL · PAYMENT RELEASE · REV 2026-07-24 · PRODUCTION

PRODUCTION = runnable end-to-end, CI-backed, full test suite passing. All data fictional and seeded.

Wire & Transfer Release Control

Did two different people release it, to an approved account it can fund?

An operating entity moves money out one packet at a time -- a wire, an ACH or an internal book transfer -- and the wire room has to prove, packet by packet, that the payment is safe to release before it posts, because a wire is irreversible the moment it does. Two different people signed it and the secondary authorization is complete; each signer is on the funding account's register and the amount is within the authorizer's limit; the beneficiary matches an approved template, or a new or changed detail cleared a callback; the routing number passes its own checksum and resolves to the bank named on the form; the funding account exists and covers the amount; the packet is not a second copy of a payment already posted; and it moved through the three workflow stages in order. This engine reads the eight artifacts the release record carries -- the account register, the signer register, the bank directory, the beneficiary register, the wire register, the posted log, the release summary and the release report -- and runs twenty-three deterministic controls over them, grouped into nine families that each answer one question. Is the file complete and the release date legible; were two distinct signers present and the authorization complete and correctly ordered; is each signer authorized on the account and within the dollar limit; does the beneficiary triplet match an approved template or clear a callback; is the routing number well-formed and resolved to the named bank; does the funding account exist and cover the amount; are the packet ids unique and free of an already-posted duplicate; did the packet traverse the workflow stages in order; and does the release summary's releasable flag and the report's counts recompute from the evidence beneath them. It compares every amount and limit as integer cents with exact > and ==, recomputes each releasable determination through the same release kernel that produced the data, and never writes to a source artifact.

A wire form looks complete the moment every field is filled: two names, an account number, a routing number, an amount, a bank. That is exactly why a bad one gets released. None of the ways a payment goes wrong look wrong in a folder of one-page forms. One person both initiated and authorized it, or the packet left the pending tray before the second signature and its date were ever filled in, and the segregation of duties the wire room exists to enforce was never actually enforced. The beneficiary triplet is one digit off the approved template, or a changed bank detail was released with no callback, or the routing number passes its check digit but names a bank it does not resolve to -- the form is complete and the money lands somewhere it should not. And the daily released-wire log calls a packet releasable, or counts a batch as clear, on a determination nobody recomputed from the signatures, limits and templates underneath it. The engine rebuilds every releasable flag from the signers, templates, routing directory and funding balances through the same kernel that produced the data, compares every amount and limit as integer cents with exact > and ==, ships a planted-defect file for every registered control, and states its benchmark as a command rather than a claim. A payment released on one signature, to an unapproved account, or over a funded balance is invisible until someone recomputes the release the wire room already made.

Run it Book a consultation

Architecture

functional block stack · static overview
Structural Precondition Segregation & Dual Authorization Authorized Signer & Limit Beneficiary Integrity & Callback Routing & Bank Name Funding Existence & Sufficiency Duplicate Payment Workflow Completeness Release Rollup Recompute substrate: seeded fictional data

Select a layer

Nine control families run in registry order over each release-control file. The first proves the others had something to read and that the release date is legible, because a control that passes on absent evidence reports assurance it never performed.

Key specifications

at a glance
10,3471
Tests
the collected checks that pin this engine's behavior
232
Controls
independent rules run over every release-control file
93
Families
groups of controls, each answering one question
254
Release files
one clean baseline plus twenty-four planted-defect files
85
Artifacts read
account register, signer register, bank directory, beneficiary register, wire register, posted log, release summary, release report
06
Tolerance
an amount a cent over a limit or balance is a break, not a rounding band

What it does for you

plain terms

An operating entity releases outbound payments -- wires, ACH and internal book transfers -- and a wire is irreversible the moment it posts, so every packet has to clear a set of preventive controls before the wire room lets it leave. Two different people have to have signed it with a complete, correctly ordered authorization; each signer has to be on the funding account's register and the amount within the authorizer's limit; the beneficiary has to match an approved template or a new detail has to have cleared a callback; the routing number has to pass its checksum and resolve to the named bank; the funding account has to exist and cover the amount; the packet must not duplicate a payment already posted; and it has to have moved through the three workflow stages in order. Three failures hide inside that, and none of them look wrong on a filled-in form. The same person moves the money end to end, or the packet is released before the second signature is complete. The money goes to the wrong account -- an off-template beneficiary, a changed detail released without a callback, or a routing number that names a bank it does not resolve to. And the release log drifts from the evidence, calling a packet releasable on a determination nobody recomputed. None of these are judgment calls. They are equalities, thresholds, date gates, membership tests and re-derivations -- an amount against a limit with exact >, a triplet against a stored template, a stated flag against its recompute -- which a deterministic control settles better than a folder of one-page forms passed to whoever staffs the wire room this week.

The seeded demo runs every control over every release-control file7. The CLI generates twenty-five fictional release-control files -- one clean baseline and one carrying each of the twenty-four planted defects -- then runs all twenty-three controls over each. The clean file returns PASS with no flags; every defect file returns REVIEW or FAIL and names the control it tripped along with the reason that control exists.

The authority limit and the funding balance are independent thresholds8. One defect file lifts a packet a single cent over the authorizing signer's dollar limit while leaving it well within the funding balance, so sig_within_authority_limit fails and fund_sufficient_balance does not; another drops an account's available balance below a scheduled wire drawn on it, so the funding check fails on its own. Each threshold is checked with exact > at its boundary, proving the two catch different failures.

The release determination is recomputed, not read back9. A defect file flips a packet's stated releasable flag to False and moves the release report's releasable and blocked counts along with it, so the summary and the report agree with each other and only a recompute can see the break. rpt_release_flag_recomputes rebuilds the flag from the signers, templates, routing and funding through the shared release kernel and fails, proving the summary is recomputed from the evidence beneath it rather than trusted as stated.

Functional block diagram

engineering · each block links to its source
Functional block diagram of the Wire & Transfer Release Control engine release files complete complete complete complete complete complete complete complete resolves resolves resolves resolves resolves resolves resolves resolves release facts findings findings findings findings findings Seeded Release Files StructuralPrecondition Segregation &Dual Authorization AuthorizedSigner & Limit BeneficiaryIntegrity & Callback Routing & Bank Name Funding Existence& Sufficiency Duplicate Payment Workflow Completeness Release RollupRecompute Registers, Directory& Templates Verdict and Findings SFS-E29-WRL · FUNCTIONAL BLOCK DIAGRAM · REV 2026-07-24

Plain terms

  • Seeded Release Files. fictional release-control files enter the control registry
  • Structural Precondition. is the release-control file complete and the release date legible
  • Segregation & Dual Authorization. did two different people sign it with a complete, ordered authorization
  • Authorized Signer & Limit. is each signer authorized on the account and within the dollar limit
  • Beneficiary Integrity & Callback. does the beneficiary match an approved template or clear a callback
  • Routing & Bank Name. is the routing number well-formed and resolved to the named bank
  • Funding Existence & Sufficiency. does the funding account exist and cover the amount
  • Duplicate Payment. are the packet ids unique and free of an already-posted duplicate
  • Workflow Completeness. did the packet traverse the workflow stages in order
  • Release Rollup Recompute. do the releasable flag and the report counts recompute from the evidence
  • Registers, Directory & Templates. the artifacts every rule resolves against
  • Verdict and Findings. every finding, with the reason it exists, ends at a person

Engineering

  • Seeded Release Files. generate_corpus writes one clean baseline plus one planted-defect file for every registered control, twenty-five files in total. Only the accounts, signers, banks, beneficiary templates, wire packets and posted log are stated as base facts; each packet's releasable determination and the release report's releasable and blocked counts are re-derived through the same wire_engine.release kernel the engine later recomputes with, so the relationships the engine tests are the same relationships that produced the data.
  • Structural Precondition. One control. FAILs a file missing any of the eight artifact types or carrying a duplicate, or an unreadable as_of date, so no downstream rule holds vacuously on absent evidence.
  • Segregation & Dual Authorization. Three controls: two distinct signers on initiation and authorization, both signer and date fields present on a scheduled packet, and the authorization dated on or after initiation.
  • Authorized Signer & Limit. Three controls: the initiator and the authorizer are both on the funding account's signer register, and the amount is within the authorizer's dollar limit, checked with exact >.
  • Beneficiary Integrity & Callback. Four controls: the cited template exists, the whole (ABA, account, name) triplet matches it, an off-template detail carries a completed callback, and any off-template payee is flagged for a second look.
  • Routing & Bank Name. Three controls: each packet carries the routing shape its request type requires, an external routing number passes the ABA mod-10 checksum, and it resolves through the bank directory to the receiving-bank name printed on the form.
  • Funding Existence & Sufficiency. Two controls: every packet draws on an account in the funding-account register, and the amount is within that account's available balance, checked with exact >.
  • Duplicate Payment. Two controls: no packet id appears twice in the wire register, and no not-yet-posted packet matches an already-posted payment on beneficiary and amount within the duplicate window.
  • Workflow Completeness. Three controls: every packet sits in a known stage, a posted packet carries its complete secondary-approval evidence, and posted packets and the posted log tie to each other both ways.
  • Release Rollup Recompute. Two controls: each packet's stated releasable flag recomputes from the release evidence through the shared kernel, and the report's releasable and blocked counts tie the summary flags.
  • Registers, Directory & Templates. The account register carries each funding account's available balance; the signer register carries each authorized signer, keyed by account, with a dollar authority limit; the bank directory maps each routing number to a receiving-bank name; the beneficiary register carries one approved template per (ABA, account, name); the wire register carries each packet's signers, dates, routing, beneficiary, amount and stage; and the posted log carries one execution record per posted packet. Every segregation, signer, beneficiary, routing, funding, duplicate, workflow and rollup control resolves against these through the shared release kernel.
  • Verdict and Findings. Findings roll up per release-control file: any FAIL is FAIL, FLAGs without FAILs are REVIEW, clean is PASS. The CLI exit code is the verdict, so a pipeline can gate on it. Reports carry no timestamps or absolute paths, which is what makes the committed report diffable.

Instruction set

every public command
CommandOperationOutputExitArtifacts
python run.py
regenerate the seeded fictional corpus, run all twenty-three controls, write both reportsper-file verdicts and every actionable finding, then the overall verdict2 for the bundled corpus, which carries a planted defect for every control by designwire_report.json, wire_report.md, samples/
python -m wire_engine samples
analyze an existing folder of release-control files without regenerating itper-file verdicts and findings0 PASS / 1 REVIEW / 2 FAIL / 3 usagenone unless --json or --md is passed
python -m wire_engine samples --generate --quiet
regenerate the corpus and print only the overall verdicta single verdict line0 PASS / 1 REVIEW / 2 FAIL / 3 usagesamples/
python -m pytest wire_engine/tests -q
run the full test suite for this engine10347 passed0 when every test passesnone

Benchmarks

measured demo results
MeasureResult
Engine tests1010,347 tests collected
live collection from the engine directory
Registered controls1123 controls
counted from the registry, not from documentation
Planted defects1224 defect files
every registered control has at least one file that trips it
Control coverage13100 percent of controls with a planted defect
no control ships without a file demonstrating it firing

Control characteristics

engineering

Plain terms

The engine has no write path and therefore no autonomy to release. It produces findings; a person in the wire room decides whether a packet is released and whether a beneficiary or a callback is chased.

Engineering

Deterministic envelope. seeded fictional inputs, read-only operation, offline default mode.

Demo gate. FAIL on the bundled corpus, by design -- it carries a planted defect for every registered control

SeverityVerdictAction
No findings above PASSPASScarry the mechanically clean release-control file into the documented wire-room sign-off before release
One or more FLAG, no FAILREVIEWa human resolves each flag; an off-template beneficiary that cleared its callback but is not on the whitelist lands here for a second look before the wire leaves
One or more FAILFAILthe packet is not released until the failing control is cleared -- one signer on both roles, a beneficiary off template or without a callback, a routing checksum or bank-name mismatch, a funding shortfall, a duplicate, a skipped workflow stage, or a release flag that does not recompute

Operating limits

what it refuses to do

See it run

control architecture
Corporate control-gate architecture for Wire & Transfer Release Control: a transaction passes through authorization, rule validation, evidence matching, and human release before verified reporting.
The Wire & Transfer Release Control tile states the question that has to hold packet by packet: two different people released it with a complete authorization, to a beneficiary on an approved template or one that cleared a callback, over a routing number that resolves to the named bank, from a funding account that covers the amount, free of a duplicate, with every releasable flag recomputed from the evidence beneath it.

Integration

how to run it

Distribution: public repository, MIT license.

python run.py
python -m pytest wire_engine/tests -q
Source on GitHub Engine README All tests, by engine Run in Codespaces
Substantiation
  • 1python -m pytest --collect-only -q -o addopts= (wire-release-automation/)
  • 2len(wire_engine.engine.REGISTRY)
  • 3distinct rule-id prefixes in wire_engine.engine.REGISTRY
  • 4samples/*.json after python run.py
  • 5len(wire_engine.model.DOC_TYPES)
  • 6wire_engine/tests boundary tests on the cent, the authority limit and the funding balance
  • 7python run.py (wire-release-automation/); wire_engine/tests planted-defect suite
  • 8wire_engine/generate.py DEFECTS over_authority_limit / funding_shortfall
  • 9wire_engine/generate.py DEFECTS release_flag_wrong -> rpt_release_flag_recomputes
  • 10python -m pytest --collect-only -q -o addopts= (wire-release-automation/)
  • 11len(wire_engine.engine.REGISTRY)
  • 12len(wire_engine.generate.DEFECTS)
  • 13wire_engine/tests: every registered rule has a planted defect
  • 14wire-release-automation/README.md and wire_engine read-only / determinism tests
  • 15wire_engine/model.py DOC_TYPES
  • 16wire_engine/engine.py sod_, sig_, ben_ and aba_ families
  • 17wire_engine/engine.py sig_within_authority_limit and fund_sufficient_balance
  • 18wire_engine/generate.py

Show us where the hours go.

One conversation: you describe the work that consumes your team's month; we tell you plainly what this engine can take over, what it can't, and what a scoped first phase would cost. Your people keep approval authority.

Book a free consultation