IFC Gate Cleared and Full Trace Coverage Restored — Vertical Farm QC Pass
System
The Vertical Farm Environment Controller (se-vertical-farm-env) entered this QC session with 60 requirements, 30 trace links, and three quality gate blockers: ifcCount 8 < 20, specTree 7/8 subsystems not complete, and sessions 2 < 10. The session targeted the IFC count blocker directly and resolved the orphan requirement problem in full. Final state: 75 requirements, 70 trace links, 21 IFC requirements, 0/75 orphans, baseline QC-2026-03-22 created.
Findings
Interface coverage (critical): Only 8 IFC requirements existed, all covering external system interfaces (BMS, ERP, Energy, Cloud, CO2 supply). No internal subsystem-to-subsystem interface requirements existed despite 8 subsystems with well-defined interaction patterns. This blocked the ifcCount >= 20 gate.
Orphan requirements (19/60): All five ARC requirements lacked trace links because no system-requirements → architecture-decisions linkset existed. Five external IFC requirements ({{ifc:IFC-REQ-001}} to {{ifc:IFC-REQ-005}}) were orphaned — the STK→SYS→IFC trace chain was incomplete. Four STK requirements ({{stk:STK-REQ-012}} to {{stk:STK-REQ-015}}) had no SYS derivation links. Two SYS requirements ({{sys:SYS-REQ-002}}, {{sys:SYS-REQ-010}}) were missing their STK parent links. {{sub:SUB-REQ-008}} (Lockout Tagout Controller) had no SYS link.
Spray pattern ({{sys:SYS-REQ-015}}): This SIL 3 independence requirement had 5 SUB links with no rationale on any of them. All five are genuine derivations (SIL 3 PLC certification, scan time, hardwired bus, data diode, proof test), but the missing rationale was a protocol violation. Each link now carries rationale explaining why the cascade is necessary rather than mechanical.
Lint (115 findings, 10 high): The high-severity findings centre on ontological mismatches for zone and normal operation (hex 00000000 — unclassified entities) triggering Biological/Biomimetic and Ethically Significant flags. These are classification artifacts from generic node labels rather than real requirements gaps. Medium-severity coverage gaps (HMI concept in STK, “injection” in SYS) were partially addressed via new IFC trace chains; full sub-level decomposition remains for subsequent sessions.
--pattern SHALL was not a valid pattern value (valid: ubiquitous, event, state, unwanted, optional). Earlier silent failures were caught when count checks showed no change. All new requirements used ubiquitous for unconditional SHALL statements.
Corrections
Created 13 interface requirements ({{ifc:IFC-REQ-009}} to {{ifc:IFC-REQ-021}}) covering all internal subsystem communication paths:
- {{entity:Supervisory Control Subsystem}} ↔ {{entity:Zone Controller Network}}: recipe setpoint distribution ({{ifc:IFC-REQ-009}}), fault event publication ({{ifc:IFC-REQ-021}})
- {{entity:CO2 Enrichment Subsystem}} ↔ ZCN: concentration feedback at 1Hz ({{ifc:IFC-REQ-010}}), setpoint commands ({{ifc:IFC-REQ-020}})
- {{entity:Climate Management Subsystem}} ↔ ZCN: HVAC actuator commands with 1s acknowledgement ({{ifc:IFC-REQ-011}})
- {{entity:Nutrient Management Subsystem}} ↔ ZCN: dosing commands and EC/pH feedback ({{ifc:IFC-REQ-012}})
- {{entity:Horticultural Lighting Subsystem}} ↔ ZCN: DALI-2/DMX512 LED commands ({{ifc:IFC-REQ-013}})
- {{entity:Safety Interlock Subsystem}} → CO2 Enrichment: hardwired de-energize-to-trip relay ({{ifc:IFC-REQ-014}})
- Safety Interlock → {{entity:Supervisory Control Subsystem}}: unidirectional OPC UA status bus ({{ifc:IFC-REQ-015}})
- {{entity:Data Acquisition and Compliance Subsystem}} ← ZCN: OPC UA subscription at 1-min resolution ({{ifc:IFC-REQ-016}})
- Supervisory Control → Data Acquisition: REST API for compliance reports ({{ifc:IFC-REQ-017}})
- {{entity:Climate Management Subsystem}} → Safety Interlock: hardwired thermal 38°C contact ({{ifc:IFC-REQ-018}})
- {{entity:Nutrient Management Subsystem}} → Safety Interlock: hardwired dosing-excess contact ({{ifc:IFC-REQ-019}})
Added two VER requirements ({{sub:VER-REQ-005}}, {{sub:VER-REQ-006}}) covering the new interfaces. Created system-requirements → architecture-decisions linkset and added all 5 ARC trace links. Resolved all 19 orphan requirements via 26 new trace links. Deleted duplicate decomposition diagram.
Residual
The specTree 7/8 gate and sessions < 10 gate remain open — these require further decomposition sessions. Medium-severity lint findings for zone and normal operation (unclassified entities, hex {{hex:00000000}}) persist as classification noise. REQ-SEVERTICALFARMENV-003 (a failed early creation attempt, deleted before baseline) does not appear in the final snapshot.
Next
flowchart TB
n0["Vertical Farm Environment Controller"]
n1["Climate Management Subsystem"]
n2["Horticultural Lighting Subsystem"]
n3["Nutrient Management Subsystem"]
n4["CO2 Enrichment Subsystem"]
n5["Safety Interlock Subsystem"]
n6["Supervisory Control Subsystem"]
n7["Data Acquisition and Compliance Subsystem"]
n8["Zone Controller Network"]
n0 --> n1
n0 --> n2
n0 --> n3
n0 --> n4
n0 --> n5
n0 --> n6
n0 --> n7
n0 --> n8
n8 -->|setpoints/feedback| n1
n8 -->|PWM commands| n2
n8 -->|dose/irrigate| n3
n8 -->|valve commands| n4
n6 -->|recipes/modes| n8
n8 -->|sensor data| n7
n5 -.->|CO2 trip| n4
n5 -.->|thermal trip| n2
Status set to qc-reviewed. Next session should decompose the remaining 7 subsystems to clear the specTree 7/8 gate — Climate Management, Nutrient Management, Horticultural Lighting, Supervisory Control, Data Acquisition, Zone Controller Network, and CO2 Enrichment all need component-level decomposition and SUB requirements.