← Files VeraARCHIVED FILE
modules/aml-review/references/record-contract.md
4 KB · Oct 5, 2026 · 18:29 UTC
# Review record contract (version 1)
Codex writes `review_input.json` in the exact running archive output folder.
Narrative fields follow the user's language. Source paths are relative to the
run's hydrated `inputs` directory and must identify exact imported files.
Set `language` to `it`, `en`, `fr`, `de` or `es` to match the narrative and memo headings. If omitted, the memo headings default to Italian. This selects presentation only. Set jurisdiction independently to IT or CH-GE.
Required fields:
```json
{
"schema_version": 1,
"jurisdiction": "IT",
"as_of": "2026-09-05",
"scope": "Client, engagement and review question, with actual boundaries",
"sources": [{"id": "S1", "path": "receipt/document.txt", "title": "Actual source title", "sha256": "actual file SHA-256"}],
"legal_basis": [{"title": "Verified source title", "url": "https://official-source.example", "locator": "Article or page", "checked_at": "2026-09-05", "applicability": "Reason this source governs the question"}],
"findings": [{"id": "F1", "observation": "Sourced fact or contradiction", "interpretation": "Proposed significance, with uncertainty", "alternatives": "Plausible explanation and supporting or contrary evidence", "follow_up": "Targeted question, document or reason no action is proposed", "citations": [{"source_id": "S1", "locator": "Page/row/clause"}]}],
"assessment": "Case-specific proposed conclusion, including mitigating evidence",
"assessment_citations": [{"source_id": "S1", "locator": "Page/row/clause"}],
"limitations": "Actual evidence, screening and review limitations"
}
```
`findings` may be empty when no issue is supported; explain the reviewed evidence
in `assessment`. Never populate example values as case facts. No deterministic
check establishes the correctness of a citation, a legal basis or an assessment.
Optional `calculation_source_id` references an imported complete, valid New Client
input JSON. The helper calls its existing `validate_new_client_input` and
`calculate_aml` functions; it does not invent missing scores. The returned audit
retains proposed inputs and blocking status, and does not become approval.
Optional `previous` is `{"source_id": "S_previous", "record_sha256": "..."}`;
include the imported record in `sources` and add `changes_since_previous` describing
the substantive comparison, including unchanged or unavailable facts. The helper
checks integrity and same client/engagement; it does not infer changes by keywords.
Records use content-addressed filenames and never overwrite earlier versions.
After the professional explicitly reviews the proposal, add `professional_decision`:
```json
{
"proposal_sha256": "proposal_sha256 from the draft record",
"reviewer_ref": "Actual professional reference, not an authenticated signature",
"reviewed_at": "2026-09-05",
"conclusion": "The professional's actual decision, not the model's approval",
"finding_dispositions": {"F1": "Actual disposition and reason; unresolved is permitted"},
"next_review_date": null,
"review_date_reason": "Why a date was selected or left unset"
}
```
Do not change proposal fields while attaching a decision; otherwise first create
a fresh draft and obtain review of its digest. A later evidence review is a new
proposal linked through `previous`. Model-data reports and archive declarations
are separate run-level artifacts and must still be generated by Vera.
## Geneva adaptation
For CH-GE, provide `jurisdiction_basis` explaining the entity, mandate, federal and cantonal scope. Populate `legal_basis` with current applicable Swiss sources and locators; Italian sources and French law are not defaults. Language is independent of jurisdiction. Prior reviews must have the same jurisdiction.
Also supply `mandate_applicability` with `status` (`in_scope`, `out_of_scope` or `unresolved`), `basis`, and nonempty source `citations`. Assess the actual activity, supervisory or self-regulatory framework and engagement before proposing obligations. The Italian New Client calculator is prohibited for CH-GE. No score is substituted.
SHA-256: 174cfef54fa211c50b1318dc1b6aa08810e118216410bb3b50bebb2652aaece3