two independent tracks converge at metadata promotion; sequential from there
wired — count read from the live DB at snapshot time
join — a demand of the study_id join (registration, package linkage), not engine code
gate — engine-enforced verdict, evaluated only for studies that reach it
ghost — designed, not yet wired · unit: one study = one study_id · the DB stores no status column; verdicts are computed, never persisted
the convergence is an intersection — the same studies must satisfy both tracks; counts do not add across them