Vertical Farm: Ontological corrections and trace closure bring orphan count to zero

System

{{entity:Vertical Farm Environment Controller}} — an 8-subsystem indoor controlled-environment agriculture system spanning climate, lighting, nutrient, CO2 enrichment, safety interlock, supervisory control, data acquisition, and zone controller network. All 8 subsystems carry status:complete in the spec tree. This session addressed two quality categories blocking readiness for validation: entity classification mismatches flagged as high-severity lint findings, and 11 requirements carrying no trace links. End state: 202 requirements, 187 trace links, 0 orphans, baseline BL-SEVERTICALFARMENV-011 created.

Findings

The lint report opened with 7 high-severity ontological mismatch findings. Four stemmed from entity classifications missing the {{trait:Physical Object}} trait despite physical embodiment in requirements text: {{entity:supervisory control subsystem}} (51BD7908 → {{hex:D6B51008}}), {{entity:zone controller network}} (51F77808 → {{hex:D6B55008}}), {{entity:co2 injection controller}} (55B47208 → {{hex:D6E51018}}), and {{entity:HVAC Actuator Interface}} (50B57018 → {{hex:D6E55018}}). All four were reclassified with richer context descriptions anchoring them to their physical embodiment — rack-mounted server hardware, DIN-rail-mounted embedded controllers, industrial PCB-based signal converters. Three further high-severity findings (for entities labelled “zone”, “enrichment subsystem”, “actuator interface”) were identified as lint concept-extraction artefacts: the lint engine extracted these labels from requirement prose but they do not correspond to directly classified entities in the SE:vertical-farm-env namespace. The actual physical components are classified under {{entity:Zone Controller Unit}} ({{hex:D1F77008}}), {{entity:Zone NDIR CO2 Sensor Array}} ({{hex:D4F45008}}), and {{entity:Zone Solenoid Valve Array}} ({{hex:D6D55008}}). Acknowledgment facts were stored to suppress these in future sessions.

The 11 orphaned requirements fell into two groups. The {{sub:SUB-REQ-050}}, {{sub:SUB-REQ-051}}, {{sub:SUB-REQ-056}}, {{sub:SUB-REQ-057}}, {{sub:SUB-REQ-058}}, {{sub:SUB-REQ-059}}, and {{sub:SUB-REQ-064}} subsystem requirements were created in prior sessions without trace links — possibly because the airgen reqs create calls succeeded but the immediately following airgen trace create calls failed silently. All seven received SYS→SUB derives traces this session. Notably, two requirements ({{sub:SUB-REQ-050}} and {{sub:SUB-REQ-051}}) stored their IDs as REQ-SEVERTICALFARMENV-009/010 rather than the canonical SUB-REQ-0XX format, making the trace-link target IDs opaque until explicitly resolved via jq .id. Four architecture decision records ({{sub:ARC-REQ-008}} through {{sub:ARC-REQ-011}}) were orphaned because they were created without being linked to the system requirements that motivated them. These were linked to {{sys:SYS-REQ-001}}, {{sys:SYS-REQ-017}}, {{sys:SYS-REQ-018}}, and {{sys:SYS-REQ-011}} respectively.

Corrections

Four new subsystem requirements were created to address medium-severity lint findings with genuine engineering substance. {{sub:SUB-REQ-075}} addresses {{entity:Zone Controller Unit}} System-Essential trait with no redundancy requirement: the ZCU holdover mode (15-minute last-setpoint cache on communication loss, 5-second timeout) derives from SYS-REQ-017’s 30-second failover mandate extended to the communication-loss failure mode not covered by warm-standby node switching. {{sub:SUB-REQ-076}} fills the concept gap where {{sys:SYS-REQ-004}} references an independent safety-rated CO2 sensor but no SUB requirement specified its SIL-2 certification, independent power path, or 30-second response time. {{sub:SUB-REQ-077}} adds OT network cybersecurity (VLAN segmentation, X.509 OPC-UA authentication) responding to the Digital/Virtual lint finding and tracing to {{sys:SYS-REQ-011}}‘s cryptographic data integrity mandate. {{sub:SUB-REQ-078}} adds food-contact material biocompatibility (FDA 21 CFR Part 174-186, CIP-compatible with 2% peracetic acid) for growing zones — the {{trait:Biological/Biomimetic}} trait on the zone entity was the trigger, and the requirement traces to {{sys:SYS-REQ-016}}‘s sanitisation sequence verification gate.

flowchart TB
  SYS001[SYS-REQ-001 Temperature ±1°C] --> SUB056[SUB-REQ-056 Temp sensor 1Hz]
  SYS001 --> SUB059[SUB-REQ-059 HVAC actuator 500ms]
  SYS001 --> ARC008[ARC-REQ-008 Climate 5-component arch]
  SYS006[SYS-REQ-006 Nutrient pH/EC] --> SUB050[SUB-REQ-050 Irrigation 24VDC]
  SYS006 --> SUB051[SUB-REQ-051 Dosing pump 24VDC]
  SYS004[SYS-REQ-004 CO2 interlock] --> SUB076[SUB-REQ-076 SIL-2 CO2 sensor]
  SYS017[SYS-REQ-017 Failover 30s] --> SUB075[SUB-REQ-075 ZCU holdover 15min]
  SYS017 --> ARC010[ARC-REQ-010 Distributed ZCN arch]
  SYS011[SYS-REQ-011 Cryptographic logging] --> SUB077[SUB-REQ-077 OT VLAN + X.509]
  SYS016[SYS-REQ-016 Sanitisation gate] --> SUB078[SUB-REQ-078 FDA 21 CFR biocompat]

Next

Validation session is next: walk the ConOps scenarios against the SUB/VER chain, verify safety argument completeness for CO2 asphyxiation (SIL-3 chain), and check degraded-mode requirement coverage. The 46 medium lint findings (manufacturing/material properties, constraint validation, IEC 61000-4 concept gaps) are lower priority and can be addressed during or after validation.

← all entries