Story: Audit the FX instrument family against the data-oriented design guidelines

Table of Contents

This page documents a story in Sprint 28. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

1. Goal

Establish, with evidence, whether the FX instrument family's persisted data model meets the data-oriented design guidelines, and record the findings so the remediations can be planned.

Bonds were reviewed this way first and were the method's pilot. FX was never reworked to the method, so the question here is different: not whether the tree still holds up, but whether it was ever built to the rules.

2. Status

Field Value
State DONE
Parent sprint Sprint 28
Now Nothing.
Waiting on Nothing.
Next Nothing.
Last touched 2026-10-24

3. Acceptance

  • Every Regime 2 decision check is walked over the family's seven entity models, with the evidence for each result.
  • The invariant checks are spot-checked once, with what was read stated.
  • Each finding is mapped to a criterion and carries file-and-line evidence.
  • The review separates a defect from a recorded decision.
  • The review states what it did not check.

4. Tasks

Task State Start End Description
Review the FX family's data model DONE 2026-10-16 2026-10-16 Walk the Regime 2 checklist over the seven FX instrument models, their generated tables and C++, and the ORE import and export seam, and record the findings as Investigation: FX family data model review.

5. Decisions

  • The review is read-only. Filing the remediations is a separate decision, taken through the backlog once the findings are agreed.
  • The remediations are staged as seven units under Rework the FX instruments to the instrument table rule, which the review narrowed to the deviations it found.

6. Out of scope

  • The FX reference data: currency_pair, currency_pair_convention, fx_option_convention and fx_volatility_config. The family's links to them are reviewed, the entities themselves are not.
  • The ORE binding generator. The review records that the FX bindings lack the lexical form; changing the generator is a different work item.
  • The ten FX trade-type codes that route to no instrument table.

Emacs 29.3 (Org mode 9.6.15)