The role whose artifact a gate's packet waits on, and the artifact it lands.
The record layer's half of the engine's GATE_PRODUCER
(orchestrator/src/derive.ts), and profile-aware where that table is not:
patch G1 has no producer at all — the human authored the brief and the work
item, so there is no one out and nothing to supersede — and patch G2 ends
at the reviewer, since a patch run has no verifier (DESIGN.md §4.1).
It lives here rather than in the view model because two readings need it and
they must not drift: the gate card withholds itself while the producer is out
(#159) and planDecision refuses the approval for the same reason (#351).
The role whose artifact a gate's packet waits on, and the artifact it lands.
The record layer's half of the engine's
GATE_PRODUCER(orchestrator/src/derive.ts), and profile-aware where that table is not:patchG1 has no producer at all — the human authored the brief and the work item, so there is no one out and nothing to supersede — andpatchG2 ends at the reviewer, since a patch run has no verifier (DESIGN.md §4.1).It lives here rather than in the view model because two readings need it and they must not drift: the gate card withholds itself while the producer is out (#159) and
planDecisionrefuses the approval for the same reason (#351).