← Files VeraARCHIVED FILE

modules/open-item-reconciliation/references/workflow-reference.md

10.6 KB · Oct 2, 2026 · 00:29 UTC

↓ Download file

# Assurance Workflow Reference

Load this reference for the mechanical assurance sequence. It deliberately does
not decide source meaning, materiality, evidence sufficiency, or an accounting
conclusion.

## 1. Intake boundary

Inventory the visible regular files in the input folder and capture a full-byte
artifact receipt for each. The source set is exact: a missing, additional, or
changed file makes the prior boundary stale.

For every source, record a `reviewed_source_decisions` entry with exactly:

- `role` and `adapter_family`;
- `reviewer_ref` and `reviewed_on`;
- `perimeter`: `entity_ref`, `party_ref`, `currency`, `unit`,
  `direction_policy`, and `allocation_policy`;
- `money`: `decimal_separator`, `thousands_separator`, `reported_unit`, and
  `reported_increment`, which is currently supported only when it is exactly
  `0.01`;
- `date.order`: exactly `day_first` or `month_first`.

The v2 reviewed decision receipt cites exactly one byte-bound source artifact,
uses its expected decision ID/path/adapter, and has canonical reviewer identity
and ISO review date no later than the sealed `assurance_run_date`. Filename or
text suggestions do not authorize extraction. Each source also requires one
qualification with the reviewed mapping reference before preparation.
Unsupported, unreviewed, or invalid-date sources emit no prepared or
reconciliation rows and cannot produce final artifacts.

Canonical syntax does not authenticate a person: every `reviewer_ref` is an
unsigned, unauthenticated, untrusted label. The seal proves only which label
and review claim were recorded in the replayed bytes.

## 2. Preparation boundary

Parse money with exact `Decimal` arithmetic. Reject binary floats, ambiguous
punctuation, and amounts that are not exact cent multiples. A source declaring
another increment is rejected before any prepared row; no downstream renderer
may round a more precise source value to cents.
Attach the reviewed perimeter to every emitted row.

Immediately before preparation, replay source, decision, and implementation
receipts and the exact qualification set. Bind every prepared record ID and
value to one current source locator. Write `prepared_records.json` atomically,
receipt it, and replay the complete set. A stale or unaddressable source stops
before reconciliation or final promotion.

The implementation boundary is one code-owned, ordered 25-file contract:
3 assets, 1 MCP server, 8 executable workflow scripts (including the
pre-import bootstrap), 5 retained internal source units, and 8 shared assurance
files. Every public Python entrypoint first executes that bootstrap source,
disables local bytecode, and validates the exact implementation tree before
importing plugin or shared modules. The five internal units are deliberately
stored under `scripts/retained_sources/` with a non-`.py` suffix. Ordinary
Python import cannot resolve them; only the bootstrap opens their stable
single-link bytes and loads their internal module names after tree closure.
Direct import of those internals is unsupported. No cache namespace is
ignored. Missing, additional, reordered, changed, linked, or special entries
fail, including regular files and empty directories beneath `__pycache__`; a
run cannot expand the list by editing its own receipts. The MCP server performs
the same tree check before reading its manifest and again before every public
RPC surface.

The launcher descriptors `.codex-plugin/plugin.json`, `.mcp.json`, and
`.app.json` are outside this in-process 25-file boundary. The Codex host reads
them before the validated process starts, so this replay does not attest the
host's initial executable selection. Arbitrary code already executing as the
same operating-system user is likewise outside this in-process boundary.

## Studio client and engagement boundary

The raw-input entrypoint accepts no free output directory. It requires a
digest-valid `vera.client_workflow_context.v2` file emitted by Studio Archive
for one prepared and started `open-item-reconciliation` run. The portable context
resolves the current customer-folder location from the stable client manifest,
then verifies the engagement, run, input manifest, import receipts, immutable
execution copies, and output directory. The entrypoint reads only
`runs/<run-id>/inputs/` and writes only `runs/<run-id>/outputs/` inside that
customer folder.

This rule is deterministic because IDs, path containment, receipt seals,
byte hashes, lifecycle transitions, and output-layout equality are
mechanically verifiable. It does not decide client identity from a folder name
or document meaning, so renaming or moving the customer folder does not change
the recorded identity. The exact context is repeated and sealed in intake,
review, manifest, prepared, canonical, and assurance records so a later
reviewer can detect cross-client, cross-engagement, or cross-run substitution.

## 3. Reconciliation boundary

Match only compatible entity, party, currency, and unit perimeters. A row-level
closure requires row-level evidence. Allocation ledgers declare the reviewed
relationship shape, prevent prohibited reuse, and conserve exact source and
target amounts. Record all allocation and residual values; a material residual
is never rounded or forced to zero.

## 4. Reporting boundary

Write native Excel/Word and JSON outputs, then copy only declared delivery files
into `assurance_final_outputs/`. The expected basenames are closed in a sealed
workflow output contract before the boundary is inspected; current-tree
discovery never expands that contract. `final_output_inventory.json` lists
every regular file and its full-byte receipt. Declared and physical path sets
must be identical, so an injected regular file is a replay failure.

`numeric_evidence_ledger.json` addresses each material amount from a source
artifact through `prepared_records.json` to `reconciliation_results.json` and
every declared workbook/Word/JSON location that contains it. Each locator
replays record identity and value together. A missing or wrong sheet/column
cannot degrade to JSON-only coverage; an output that cannot be addressed is
withheld. Allocation/residual addresses point to the sealed reconciliation
result artifact.

Expected output files must be ordinary single-link regular files. Symlinks,
hardlinks, special files, missing paths, injected paths, and empty injected
directories fail replay. The seal records the exact physical file-and-directory
closure at the run root and final-output boundary. Finalization runs under the
whole-run transaction; a late failure restores the exact prior tree. Browser
save/apply writes use a sibling working copy and promote only a validated
whole-tree result.

## 5. Gates and promotion

`assurance_gates.json` contains six independent gates:

- `source`: every input is current and qualified;
- `preparation`: current implementation and prepared-population receipts pass;
- `reconciliation`: mechanical checks and allocation conservation pass;
- `semantic_review`: required review is complete, all rows are `PASS`, and each
  reviewable record ID appears exactly once, with no unknown/missing/duplicate
  IDs and canonical reviewer identity/ISO date no later than the sealed run
  date;
- `reporting`: all upstream reporting dependencies pass;
- `publication`: always `withheld` until a separate authorized publication.

Use `failed` for a failed control, `withheld` for a required judgment/action not
yet completed, and `blocked` for a downstream gate whose dependency did not
pass. Never describe a pending required review as success.

`assurance_receipts.json` seals the output contract and embedded controls.
Before review/application status can advance, replay that seal, the independent
gate file, source/implementation/prepared receipts, numeric/allocation ledgers,
the exact root/final physical closure, and the exact final-output inventory.
The MCP terminal path invokes this same complete Python replay; it has no
shorter terminal-ready validator. Applying a new review decision is itself new
run state: native outputs and the assurance seal must be regenerated before the
application can become `final_ready`.

The first review application also retains its predecessor transition within
the same copy-on-write candidate. The content-addressed directory
`assurance_transition_history/<predecessor-seal-content-sha256>/` has an exact
nine-entry contract: the prior eight transition files plus
`predecessor_run/`, a complete physical snapshot of the validated predecessor
run. Successor validation runs `validate_assurance_run` against that snapshot,
requires the replayed seal to equal the selected archived seal, and requires
the selected professional review, final reconciliation, and review payload
bytes to equal their snapshot counterparts. This freshly replays the
predecessor run date, prepared assumptions and receipts, material values,
gates, final inventory, and exact run-tree closure before rederiving the
mapping, decision fingerprint, professional-review records, and successor
authority. Missing, changed, expanded, reordered, contradictory, or
path-forged history fails. Capture, retention, replay, and promotion share the
existing whole-tree rollback boundary.

A successor additionally requires
`expected_predecessor_checkpoint`, the prior seal's 64-hex
`content_sha256`, supplied by the caller from a separate review channel. It is
required on the first apply, successor rebuild, and successor validation; it is
never inferred from the candidate output tree, transition history, or current
assumptions. Missing or unequal checkpoints fail before mutation and preserve
the prior tree. The checkpoint makes a fully resealed replacement detectable
even when an attacker consistently replaces amounts, currency, cut-off, run
date, run identity, scope year, or tolerance. The replay also deterministically
reruns predecessor reconciliation rows, allocation ledgers, and core checks
from the retained prepared population. `run_id` is an explicit assurance-seal
field, so changing run identity changes the seal digest.

For isolated replay, use:

```bash
python -I -B scripts/audit_assurance.py \
  --client-engagement <customer-run>/context.json \
  validate-run-json <output-folder> \
  --expected-predecessor-checkpoint <retained-64-hex-sha256>
```

The checkpoint proves byte-digest equality only. Its authority depends on the
separate channel used to retain and supply it; this workflow neither
authenticates that channel nor upgrades `reviewer_ref` beyond an unsigned,
unauthenticated, untrusted label.

## Professional judgment boundary

The controls verify identity, exact arithmetic, conservation, replay, and
declared file sets. A qualified professional remains responsible for source
meaning, accounting perimeter, materiality, evidence sufficiency, review
findings, and the final accounting/audit conclusion.

SHA-256: 7307ea131612bf3d4afbf308640f9488418e6b624cc71a6897240c7d94b269f5