Task: Bind ores.trading entities to profiles; verify zero-diff regen

Table of Contents

This page documents a task in the Entity classification and drift baseline: ores.trading story. It captures the goal, current status, acceptance, and any notes or results.

Goal

Survey every ores.trading entity (projects/ores.trading/modeling) against the profile catalogue, rebind matches, regenerate, and require zero additional diff against the pre-rebind checked-in output.

Status

Field Value
State BACKLOG
Parent story Entity classification and drift baseline: ores.trading
Now Not yet started.
Waiting on Nothing.
Next Begin implementation.
Last touched 2026-08-04

Acceptance

  • Every entity discovered under projects/ores.trading/modeling is surveyed against all Variability Profiles.
  • Every matching entity is rebound and regenerated with zero additional diff versus its pre-rebind checked-in output.
  • No-match entities are recorded with their actual feature values, not silently dropped.
  • The known service_pagination/service_batch_get and per-model flag gaps on the 21 instrument/lookup entities are resolved as part of reaching zero drift.
  • The documented trade_service and fra_instrument_service exclusions are restored correctly, verified rather than assumed.
  • Full local build and ctest green after regeneration.

Plan

(Implementation strategy. Written when work starts; key decisions are distilled into the parent story's * Decisions at close, but the plan itself stays — it is the historical record of what we did.)

Notes

Fuller worklist carried over from the superseded ad hoc task (task_apply_safe_drift_trading.org), for reference when profile-binding each group — the profile catalogue should express these where a pattern recurs, rather than each being set as a one-off per-entity flag:

Model group Flags
14 lookup services (activity_type, business_day_convention_type, day_count_fraction_type, floating_index_type, fpml_event_type, leg_type, lifecycle_event, party_role_type, payment_frequency_type, trade_identifier, trade_id_type, trade_party_role, trade_type, trade) service_find_prefix
14 instrument services + trade service_pagination
21 instrument services service_batch_get
10 models missing has_batch_read has_batch_read
balance_guaranteed_swap_instrument fix entity_singular_short/entity_plural_short to full names (not bgs_*)

Exclusions to verify (not assume) survive rebind + regen:

  • ores.trading.core service/trade_service.{hpp,cpp} (fsm_transition_map, optional<uuid> node filters)
  • ores.trading.core service/fra_instrument_service.{hpp,cpp} (get_swap_legs / get_swap_legs_batch via swap_leg_repository)

Test Scenarios

Manual QA scenarios (scaffolded via compass add test_scenario, run through the QA Validation Runner panel) that verify this task. Link new ones here as they're created; the scenario doc itself links back via its "Verifies task" field.

Scenario State Notes
     

PRs

PR Title
   

Review

Comment summary File Decision Notes
       

Result

Emacs 29.3 (Org mode 9.6.15)