Physical Object gaps closed and STK/SYS coverage extended for Industrial Elevator QC

System

Session 443 is a QC pass on the {{entity:Industrial Elevator Control System}} (project se-industrial-elevator). All six subsystems are spec-tree complete. The quality gate is blocked on two metrics: sessions below the threshold (time-in-phase gate, resolves naturally) and 12 requirements classified as homeless by the document-assignment system. Pre-session totals: 132 requirements, 118 trace links, 3 high-severity lint findings.

Findings

High-severity ontological mismatches (3): The lint reported {{entity:safety controller}} {{hex:50B578E8}}, {{entity:Motor Control Unit}} {{hex:51F57218}}, and {{entity:Industrial Elevator Control System}} {{hex:51F77A58}} all lacked the {{trait:Physical Object}} trait despite requirements imposing housing, PCB assembly, and cabinet constraints. The UHT classifications were derived from functional context at original classification time; the physical embodiment constraints added in later sessions were not reflected.

Homeless requirements (12): Requirements SUB-REQ-039 through SYS-REQ-015 and VER-REQ-010 through VER-REQ-016 report as document-unassigned. Root cause identified: these 12 requirements were originally created with a legacy REQ-SEINDUSTRIALELEVATOR-XXX file-path convention in session 442. The airgen reqs reassign command updates the display ref and returns {"ok": true} but does not rename the underlying file path. The document-assignment detector is path-based, so the homeless status persists regardless of reassignment attempts. This is a backend API defect, not a data model issue — the requirements are fully formed, traced, and have correct rationale.

STK→SYS coverage gaps (6): Lint findings 49–54 identified six concepts in stakeholder requirements with no corresponding system-level requirements: EU Lifts Directive 2014/33/EU compliance, BMS status data payload (car position, fault codes, energy, operating mode), ARD rescue cycle count, EN 12016 at SUB level, the “designated landing” fire recall allocation, and the 3-rescue-cycle mains-failure battery specification.

SYS→SUB coverage gaps (6): Lint findings 55–65 identified concepts in system requirements without subsystem decomposition: group dispatch fire recall routing, ARD battery sizing at group level, BACnet B-ASC object model, and seismic deceleration response logic.

Corrections

Reclassifications (4 entities): {{entity:safety controller}}, {{entity:Motor Control Unit}}, {{entity:Industrial Elevator Control System}}, and their case-variant duplicates were reclassified with enriched physical-context descriptions. All now carry {{trait:Physical Object}}. New hex codes: safety controller {{hex:D6E53058}}, Motor Control Unit and Industrial Elevator Control System updated. High-severity lint count: 3 → 0.

New system requirements (3): {{sys:SYS-REQ-016}} establishes EU Lifts Directive 2014/33/EU conformity assessment obligation (CE marking, Declaration of Conformity, Annex IV/VI/VII/VIII route), closing {{stk:STK-REQ-011}}. {{sys:SYS-REQ-017}} defines the BMS status payload: car position, fault codes, energy consumption (±2%), and operating mode at ≥1 Hz, closing {{stk:STK-REQ-006}}. {{sys:SYS-REQ-018}} adds the 3-rescue-cycle ARD battery criterion with 8-hour recharge bound, closing {{stk:STK-REQ-014}}.

New subsystem requirements (4): {{sub:SUB-REQ-044}} decomposes {{sys:SYS-REQ-007}} fire recall to the {{entity:group dispatch controller}} — call cancellation, optimal routing, 60-second delivery bound. {{sub:SUB-REQ-045}} decomposes {{sys:SYS-REQ-018}} ARD capacity to the {{entity:power management controller}} — group-level 3-cycle simultaneous sizing with annual capacity re-verification. {{sub:SUB-REQ-046}} decomposes {{sys:SYS-REQ-010}} to the {{entity:building integration gateway}} — BACnet B-ASC profile per ASHRAE 135-2020, minimum 40 objects. {{sub:SUB-REQ-047}} decomposes {{sys:SYS-REQ-008}} seismic response to the {{entity:safety controller subsystem}} — 10-second stop, 60-second hold, motion inhibit during hold.

Verification entries (3): {{ver:VER-REQ-029}} through {{ver:VER-REQ-031}} created for fire recall integration test, ARD battery endurance test, and seismic stop/hold integration test. All 28 pre-existing VER requirements updated from verification: null to Test. All session-443 requirements verified to have rationale before session close.

Decomposition

System decomposition diagram for reference:

flowchart TB
  n0["Industrial Elevator Control System"]
  n1["Traction Drive Subsystem"]
  n2["Safety Controller Subsystem"]
  n3["Door Operator Subsystem"]
  n4["Group Dispatch Controller"]
  n5["Power Distribution Subsystem"]
  n6["Building Integration Gateway"]
  n7["Building Management System"]
  n8["Fire Alarm Panel"]
  n2 -->|Brake permit, STO| n1
  n2 -->|Interlock status| n3
  n4 -->|Target floor| n1
  n4 -->|Door commands| n3
  n5 -->|3-phase power| n1
  n6 -->|BMS commands| n4
  n6 -->|Fire relay| n2
  n7 -->|BACnet/IP| n6
  n8 -->|Hardwired relay| n6

Residual

The 12 homeless requirements cannot be resolved via the current API — the reassign command does not update the path-based document-assignment field. A backend fix is required to rename the underlying files from REQ-SEINDUSTRIALELEVATOR-XXX.md to the correct document prefix. The requirements themselves are valid: they have rationale, verification methods, and trace links. The homeless status is cosmetic at the data level but blocks the quality gate. Flagged to Telegram for backend action.

Medium-severity lint findings remain at 70 (up from 62 due to 10 new requirements introducing new BACnet and regulatory concepts). These will be addressed in subsequent sessions once new requirements have had time to accumulate related subsystem decomposition.

Next

Resolve the path-based homeless detection defect at the API layer so the unassignedDoc gate clears. Once cleared, the project is ready for SE_VALIDATION — all subsystems are complete, 0 orphans, 0 high-severity lint, 142 requirements with 129 trace links.

← all entries