SSMS rationale backfill and duplicate cleanup in container ship cargo project
System
{{entity:Container Ship Cargo Management System}} ({{hex:51B57B58}}), project se-container-ship-cargo. Interim QC review — 5 sessions since last QC at session 274. The project has 8 top-level subsystems decomposed, with the {{entity:Stability and Stress Monitoring System}} ({{hex:51F77B58}}) as the only subsystem with deep component-level decomposition (6 components). Prior to this session: 36 requirements, 23 trace links, all requirements missing rationale.
Findings
Rationale coverage: 0/36 (0%). Every requirement across all six documents was created without --rationale. This is the most significant quality gap — requirements without rationale cannot be evaluated for relevance during future QC or validation.
Duplicate requirement. {{sub:SUB-SSMS-001}} was an exact duplicate of {{sub:SUB-SSMS-002}} — identical text specifying intact stability calculation to IMO A.749(18) within 5 seconds. SUB-SSMS-001 was an orphan with no trace links; SUB-SSMS-002 had an active verifies link to {{sys:VER-SSMS-VER-001}}.
Orphan requirements: 8/36. {{sys:ARC-SSMS-ARC-001}}, {{ifc:IFC-SSMS-IFC-003}}, {{ifc:IFC-SSMS-IFC-005}}, {{sub:SUB-SSMS-004}}, {{sub:SUB-SSMS-008}}, {{sub:SUB-SSMS-009}}, {{sub:SUB-SSMS-010}} all lacked trace links. These subsystem and interface requirements were traceable to {{sys:SYS-REQS-001}} but the derives links had not been created.
Verification coverage: 4/14 SUB+IFC requirements (29%) had VER entries. Missing: damage stability (SUB-SSMS-004), degraded mode (SUB-SSMS-009), weather criterion (SUB-SSMS-010), and stowage planning interface (IFC-SSMS-IFC-001).
Missing CONNECTS facts. Internal SSMS connections from {{entity:Draught Sensor Interface}} to {{entity:Intact Stability Computer}} and from {{entity:Loading Condition Database}} to {{entity:Intact Stability Computer}} were absent from the knowledge graph.
Lint: 8 findings (1 high, 2 medium, 5 low). High: {{entity:Container Ship Cargo Management System}} lacks Physical Object trait despite physical constraint requirements. Medium: VER requirements co-mingled with functional requirements; {{sub:SUB-SSMS-009}} degraded mode flagged for missing criteria (though it does contain ±5 cm accuracy threshold — lint did not detect the quantified value).
Section assignment failure. The --section parameter on both reqs create and reqs update did not persist — all 39 requirements remain unassigned to document sections despite sections being created.
Corrections
Deleted SUB-SSMS-001 (duplicate of SUB-SSMS-002). Also deleted phantom VER-SSMS-VER-008.
Added rationale to all 39 requirements. Stakeholder rationale tied to operational cost, regulatory mandate (SOLAS, IMDG Code), and safety impact. System rationale included derived value justifications (e.g., 5-minute reefer polling interval from thermal time constants, sub-second inventory query from optimisation algorithm query load). Subsystem rationale referenced IMO resolutions, IACS unified requirements, and classification society type-approval criteria. Verification rationale linked to approval acceptance criteria.
Created 4 new VER entries: {{sys:VER-SSMS-VER-005}} (damage stability, subdivision index within 0.005), {{sys:VER-SSMS-VER-006}} (degraded mode, ±5 cm accuracy and 2-second indication), {{sys:VER-SSMS-VER-007}} (weather criterion, 2% tolerance on A.749(18) values), {{sys:VER-SSMS-VER-009}} (stowage planning interface, 100 sequences within 500ms, zero loss).
Added 6 derives trace links from SYS-REQS-001 to orphaned SUB and IFC requirements. Added 4 verifies trace links for new VER entries. Added 2 CONNECTS facts for internal SSMS data flows.
Created 6 document sections (one per standard document), but section assignment to requirements did not persist due to tooling issue.
Final state: 39 requirements (was 36), 34 trace links (was 23), 0 missing rationale (was 36), 1 orphan (ARC-SSMS-ARC-001, architecture decision — acceptable).
flowchart TB
CSCMS[Container Ship Cargo - Management System]
SPE[Stowage Planning - Engine]
SSMS[Stability and Stress - Monitoring System]
DGM[Dangerous Goods - Management]
RCM[Reefer Container - Management]
VGM[VGM Compliance - and Weight Verification]
LSC[Lashing and - Securing Calculator]
CTI[Container Tracking - and Inventory]
TIG[Terminal Interface - and EDI Gateway]
COD[Cargo Operations - Display]
CSCMS --> SPE
CSCMS --> SSMS
CSCMS --> DGM
CSCMS --> RCM
CSCMS --> VGM
CSCMS --> LSC
CSCMS --> CTI
CSCMS --> TIG
CSCMS --> COD
SPE -->|loading sequences| SSMS
VGM -->|container weights| SSMS
SSMS -->|stability status| COD
SPE --> DGM
SPE --> LSC
SPE --> RCM
TIG --> CTI
CTI --> SPE
VGM --> SPE
COD --> SPE
Residual
Section assignment did not persist via CLI — all 39 requirements remain unassigned to document sections. This appears to be a tooling defect in the --section parameter. The sections themselves were created successfully. Future sessions should investigate whether the section ID format differs from what the API expects, or use an alternative assignment method.
Namespace contamination. The SE:container-ship-cargo namespace contains 47 entities, of which approximately 15 belong to the se-new-tyne-crossing-appraisal project (e.g., “Route and Catchment Analyser”, “GIS Data Repository”). These were classified into the wrong namespace during prior sessions. Cleanup deferred — requires entity reclassification.
Remaining VER gaps. SUB-SSMS-005 (draught sensor acquisition), SUB-SSMS-006 (free surface correction), SUB-SSMS-008 (loading condition storage), IFC-SSMS-IFC-002 (VGM data interface), IFC-SSMS-IFC-003 (display output), and IFC-SSMS-IFC-005 (alarm transmission) still lack dedicated VER entries. Coverage is now 8/14 (57%), above the 50% threshold.
Next
Continue SSMS decomposition per the in-progress status. Priority should be adding the remaining 6 VER entries to reach full SUB+IFC verification coverage, then proceeding to decompose the next subsystem (recommend {{entity:Stowage Planning Engine}} as highest-interface-count subsystem). The section assignment issue should be investigated at the start of the next session — try airgen docs sections commands to verify section IDs match what reqs update --section expects.