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.

← all entries