Story: Fix the tenor basis swap convention model and the document TU — the remaining work
Table of Contents
This page documents a story in Sprint 29, carried unfinished from Sprint 28 at close. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
1. Goal
The tenor basis swap convention carries its identity, legs, coupon treatment, market-data annex and change audit as separate field groups, so no reflected literal is wide. The configuration document protocol's translation unit is measured and its width explained, including why the per-entity protocol split does not reach it, and the build is restored on Windows.
2. Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 29 |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-11-08 |
3. Acceptance
The story closes on the tasks it finished:
- Close the four tenor basis swap snags.
- Give each analytic parameter one contract row per version window.
- Lay a grouped part's terms over the convention row in the BFF.
- Mint a credential for long automated work.
- Remodel the tenor basis swap convention onto field groups.
4. Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Remodel the tenor basis swap convention onto field groups | DONE | 2026-10-26 | 2026-10-27 | Split the 24 flat members of tenor_basis_swap_convention into identity, two alternative leg forms, coupon treatment, market-data annex and change audit field groups, so no reflected literal is wide and no row carries the leg form it is not. |
| Lay a grouped part's terms over the convention row in the BFF | DONE | 2026-10-28 | The convention record page reads a family item's part payload and lays its terms over the central row. A part grouped onto field groups nests its columns one level, so the flat link fields the zip skips no longer match and the groups are laid over the row as terms. Flatten the groups and keep the term lookup by column. | |
| Close the four tenor basis swap snags | DONE | 2026-10-27 | 2026-10-28 | The review of the grouped convention left four snags: no uniqueness on a part's convention_id, five long and short leaves with no contract entry or value set, the bundle redesign still owed as its own story, and no browser smoke since the nesting landed. |
| Give each analytic parameter one contract row per version window | DONE | 2026-10-27 | The analytic parameter seed emits the same parameter twice for the same version window, and the DQ publish function assumes exactly one row per name, so ACME provisioning fails at the risk report configuration step with 'more than one row returned by a subquery'. | |
| Mint a credential for long automated work | DONE | 2026-10-27 | 2026-10-28 | A party-selected login mints a five-minute token by overwriting the access lifetime, and provisioning outlives it: the shell is refused with token_expired and gives up watching a run that is still working. Automated work needs its own credential family. |
5. Decisions
- Split from Fix the tenor basis swap convention model and the document TU on 2026-10-24 at sprint 28 close. The acceptance above is copied from that story; its done tasks are recorded there.
- A convention family member may be grouped, decided by the owner on 2026-10-26. The composite family service refused a grouped central row or part because it built flat domain objects from the write record. Rather than leave the family flat, the service now names every column through the member that carries it, so a member of a family can hold field groups like any other entity. The write records and the wire shape stay flat; only the domain struct nests.
- Closed on 2026-11-08 at sprint 29 close with its done tasks. The open tasks and the original acceptance moved to Fix the tenor basis swap convention model and the document TU — the remaining work.