Tasks: YU16-cdm-instruments
- T-CDM01; Author the combined pack: spec folding the two source packs with ids remapped,
the
/stocksinversion declared by source id, the four requirement families (compatibility, contract supersession, integration, non-regression), traceability table, ADR-057/058/059. - T-CDM02; Register the state: pipeline hook + render scripts, catalog entry, runtime harness + CI-assets installer cases, start/stop/status/test wrappers; clean generation exits 0.
- T-CDM03; reference-data: instruments module (model, controller, service, loader with CDM
assertions and classification map),
instruments.csvseed with FIGI/securityType and the ten new rows, supplemental FIGIs,/instruments/control-snapshotbeside the retained stocks module; all based on the YU04-operative copies. - T-CDM04; price-publisher:
treasury-pricing.js, snapshot seeds,main.jshooks (shared roll, maturity suppression,UST-404, fixed clock), fraction-of-par emission at 6-dp tick precision; based on the YU15-operative copies; publisher tests. - T-CDM05; Schema:
database-init-configmap.yamlat this layer from the YU15-operative copy;Rejectedstate, rejection columns,DECIMAL(18,6)price widening, account-17017 seeds with fraction prices. - T-CDM06; Post-trade merge: trade-processor (
InstrumentMetadata, metadata client,TradeState.Rejected, rejection fields, face-weighted average cost onto the YU05-operativeTradeService,RuntimeConfig), position-service (Trade,TradeRepository), trade-service controller validation onto the YU02-operative copy; suites green. - T-CDM07; Gateway:
UST-face validation (β₯100, Γ100, exact messages) on the YU13-operativeClusterGatewayMain, rejecting before submission; plus the ADR-060 derived bond book grid on the YU13-operativeMatchingEngineand YU15-operativeMatchingEngineClusteredService(registration +T_SYMBOLrestore), after the 0.001 grid rejected every six-decimal bond limit as off-grid. Gates green. - T-CDM08; Frontend: asset-class filter, grouped selectors, Treasury labels/validation, clean-value estimation, coupon/maturity/YTM, percent display off the stored fraction, rejected-trade display; rebased onto the operative frontend copies (YU03/014).
- T-CDM09; Extract: static-join classification (
TREASURY), coupon/maturity columns, CSV schema 2,risk.extract.readyschema field, consumer guide updated; bond position math proven end to end through the engine inRiskExtractTest(fraction survival, restore identity with a bond book, face Γ fraction valuation). - T-CDM10; Proofs:
yu04-live-delta+yu04-offline-catchupmigrated to the general snapshot route (the suite readiness gate deliberately stays on/stocks); the Treasury pricing and bond position-math proofs written and passing on the standing rig; the image rolled with PVCs and epoch intact andSNAPSHOT_FORMATstill 4. The first suite run caught the additive-payload bug; a typedpricing.*consumer was dropping every Treasury tick; which is now fixed and guarded by the pricing proof's step 6. - T-CDM11; implementation-status.md written with verification evidence; state docs synced (root CLAUDE.md worktree map, specs/README.md, catalog, HANDOFF-FOR-TEAMMATE.md).