Design Log DEC 094 connector ownership reassignment for reused chain templates - thepinkmile/Enigma-NG GitHub Wiki

DEC-094 - Connector Ownership Reassignment for Reused Chain Templates (Amends DEC-018)

Field Value
Decision ID DEC-094
Status Decided
Date 2026-09-02
Author Izzyonstage & GitHub Copilot
Amends DEC-018 (Connector Pinout Ownership Model) โ€” extends the Ownership Register for the current Cypher-family board set; does not change the underlying single-owner/cross-reference rule

Context

DEC-018 established that every multi-board connector interface must have a single Definition Owner board holding the authoritative pin table, with every other board carrying only a short cross-reference note โ€” never a duplicated table. In practice, for the connectors introduced by the Cypher-Stack architecture (DEC-084 onward), this rule was not being followed correctly:

  • Cypher's Board_Layout.md held the full pin tables for J3 (IC-STA-CHAIN) and J4 (IC-REF-CHAIN), with Stack-Input and Stack-Output cross-referencing back to Cypher.
  • When Cypher's side was updated (DEC-090 through DEC-093), Stack-Output's own documentation went stale โ€” it still read "pending... see merge-cypher-board-j3j6-pinouts" for a todo that had already been closed, and its J6 interposer cross-reference still said "TBD โ€” board not yet created" for a board that already exists.

The user identified the root cause: J3/J4 are not simple two-board point-to-point links (the case DEC-018's original register was designed around) โ€” they are templates reused identically at every junction along a variable-length chain (Cypher โ†’ Stack-Input/Stack-Output โ†’ next mini-stack โ†’ ... โ†’ Stack-Blanking Board). Ownership should sit with the board that is the repeatedly-instantiated element of the chain, not the singular endpoint (Cypher), since that is the board whose own connectors (front and rear) must already stay internally consistent with each other.

Decision

The DEC-018 Ownership Register is extended with the following entries for the Cypher-family board set:

Interface Connector(s) Definition Owner Authoritative Section
IC-STA-CHAIN Cypher J3 โ†” every Stack-Input J1/J2 โ†” Stack-Blanking Board (QSS/QTS-025, 50-pin) Stack-Input Stack-Input/Board_Layout.md ยง1
IC-REF-CHAIN Cypher J4 โ†” every Stack-Output J1/J2 โ†” Stack-Blanking Board (QSS/QTS-025, 50-pin) Stack-Output Stack-Output/Board_Layout.md ยง1
IC-ROT-JTAG Rotor J1/J4 โ†” Stack-Input J3 โ†” Stack-Output J3 (ERM8/ERF8-005, 10-pin) Rotor (unchanged โ€” already correct per DEC-018) Rotor/Design_Spec.md ยง3.4
IC-ROT-ENC Rotor J3/J6 โ†” Stack-Input J5 โ†” Stack-Output J5 (ERM8/ERF8-010, 20-pin) Rotor (unchanged) Rotor/Design_Spec.md ยง3.4
IC-ROT-PWR Rotor J2/J5 โ†” Stack-Input J4 โ†” Stack-Output J4 (ERM8/ERF8-005, 10-pin) Rotor (unchanged) Rotor/Design_Spec.md ยง3.4
IC-INTERPOSER Stack-Input J6 โ†” Stack-Interposer J2; Stack-Output J6 โ†” Stack-Interposer J1 (SQT-115/TMMH-115/2BHR-30-VUA, 30-pin) Stack-Interposer (confirmed โ€” corrects a stale "TBD, board not yet created" cross-reference) Stack-Interposer/Board_Layout.md ยง1/ยง2
IC-HID Cypher J5/J6 โ†” Cypher-Input/Cypher-Output (QSS/QTS-025, 50-pin) Cypher (unchanged โ€” already correct per existing practice) Cypher/Board_Layout.md ยง4

The underlying DEC-018 rule (single owner, no duplicated tables, short cross-reference elsewhere) is unchanged โ€” this decision only reassigns which board is the owner for IC-STA-CHAIN and IC-REF-CHAIN, and confirms/corrects the existing entries for the other four interfaces.

Rationale

  • Repeatedly-instantiated board owns the template. Stack-Input's own J1 and J2 must already be mutually consistent (same template, I/O inverted) independent of Cypher โ€” Cypher is just one of several boards that mate with this template (the others being every subsequent Stack-Input in the chain). The same logic already existed in DEC-018 for the Rotor Interface ("the Rotor defines its own physical interface... Stator/Extension/Reflector must comply with the Rotor's mechanical interface, not the other way round") โ€” this decision applies that same reasoning consistently to IC-STA-CHAIN/IC-REF-CHAIN.
  • No new central document. A single shared "Connector Interface Contracts" document was considered and rejected, consistent with DEC-018's own prior rejection of a central Interfaces.md โ€” keeping each canonical table on the board that owns it (not in a separate document) keeps definitions next to the schematic/layout work that depends on them.
  • Correcting the drift found in this pass (stale Stack-Output references) is a direct consequence of putting the tables in the correct place rather than the wrong one โ€” the previous ownership direction actively made it easy to forget to update the "downstream" boards.

Impact

  • Cypher/Board_Layout.md ยง2/ยง3 โ€” J3/J4 sections reduced to a cross-reference + Cypher's own local wiring notes only; full pin tables removed (moved to the new owners).
  • Stack-Input/Board_Layout.md ยง1 โ€” now holds the canonical IC-STA-CHAIN pin table (moved from Cypher), plus this board's own wiring notes for J1/J2.
  • Stack-Output/Board_Layout.md ยง1, Design_Spec.md โ€” now holds the canonical IC-REF-CHAIN pin table (moved from Cypher); stale "pending merge-cypher-board-j3j6-pinouts" and "TBD โ€” board not yet created" references corrected. ACTUATE_REQUEST_REF_IN_N/REF_OUT_N internal wiring on this board is explicitly flagged as not yet defined (tracked in merge-actuate-request-routing).
  • No pin position, signal name, or electrical change of any kind โ€” this is a documentation ownership/location correction only.