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.coreservice/trade_service.{hpp,cpp}(fsm_transition_map, optional<uuid> node filters)ores.trading.coreservice/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 |
|---|---|---|---|