Task: Investigate the configuration document protocol's translation unit

Table of Contents

This page documents a task in the Fix the tenor basis swap convention model and the document TU story. It captures the goal, current status, acceptance, and any notes or results.

1. Goal

The width of the configuration document protocol's translation unit is measured, the failing literal is identified, and the reason the per-entity protocol split does not reach it is stated, so the follow-on split is designed from evidence.

2. Status

Field Value
State DONE
Parent story Fix the tenor basis swap convention model and the document TU
Now Nothing.
Waiting on Nothing.
Next Nothing.
Last touched 2026-10-14

3. Acceptance

  • The translation unit is measured at a named commit: its include count, the reflected types its encode path reaches, and the field count of each reflected literal.
  • The investigation states whether the C1202 is TU-context saturation or a single over-wide literal, using the two modes recorded in the rfl complexity investigation.
  • The investigation states why the per-entity protocol split does not reduce this translation unit, and names the smallest split that would.
  • The findings are recorded as an investigation document under the story, and the durable conclusions are placed on the page that owns them.

4. 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.)

5. Measurements

Every number this task claims about a tree, with the command that produced it and the commit it was measured at. A number without both is not a measurement, because a clean-up record describes a tree and trunk moves under a branch: a consumer count, a gate's component count and a suite's size all change with no code changing, and the reader of a bare number cannot tell which tree it came from. Where the raw output matters, put it in an evidence/ file beside the task and name that file in the Command column.

What Value Command Commit
Failed units in the Windows MSVC debug job 1 gh run view --job 115483009852 --log 5418a8db3
Repository headers in the handler unit 103 python3 evidence/measure_handler_tu.py c5ac470c94
Third-party include sites in the handler unit 371 python3 evidence/measure_handler_tu.py c5ac470c94
Repository headers in the control unit 12 python3 evidence/measure_handler_tu.py c5ac470c94
Element types in conventions_document 25 python3 evidence/measure_handler_tu.py c5ac470c94
Element types in curve_configuration_document 33 python3 evidence/measure_handler_tu.py c5ac470c94

6. Notes

7. Test Scenarios

Manual QA scenarios (scaffolded via compass add test_scenario) 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
     

8. PRs

PR Title
#3282 [doc] Record why the configuration document unit fails C1202

9. Review

Comment summary File Decision Notes
       

10. Result

The C1202 is context accumulation, not one over-wide literal. The windows-msvc-debug-ninja job of run 38451315943 has exactly one failed unit, the handler. The control unit tenor_basis_swap_convention_json_io.cpp reflects the same 24-member struct from 12 repository headers and built at step [974/7099], while the handler reaches 103 repository headers, 58 document element types and failed at [2017/7099].

The per-entity split does not reach the handler because the document model is an operation model that hand-lists 60+ domain includes and re-aggregates what the 149 per-entity protocols separate.

The smallest split is two operation models, one per document family. The findings are on Why the configuration document protocol unit is wide, and the durable rule is on Data-Oriented Design in ORE Studio. The lever and its raw output are in evidence/ beside this task. compass check passed 6/6.

Emacs 29.3 (Org mode 9.6.15)