You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The pipeline coverage composition audit (PR #616, docs-only) established that only 1 of the 21 vote channels is reachable from the pooled cohort runner, and that one channel casts no votes.
run_image_evidence_cohort — the runner the monolith is being built on — is Stage-C-only. It extracts evidence. It does not invoke any calculator. The other 20 channels are reachable only from local_calculate_verdicts (Stage D), from local_identify_printing_tags.run_pilot, or from the Stage E streaming conveyor (stage_e_dispatch).
Why it matters
The stated plan is: measurability first, then stand up the monolith (Stage 0 + pilot's relevant features + Stage C + D + E + fidelity gates), see what falls out. If the monolith's spine is the pooled runner, then on a full run Stage D reaches the catalog by one of two routes and it has not been established which one the planned run uses:
(b) An explicit local_calculate_verdicts invocation as a second phase of the run.
These two produce materially different vote coverage for the same input cohort. The difference is not a performance detail; it decides which of the 21 channels produce rows.
THIS MUST BE ANSWERED BEFORE ANY FULL RUN
A run executed without knowing which route Stage D takes produces a reading that cannot be interpreted: a zero-row channel afterwards would be indistinguishable between "the channel is broken" and "the run never invoked it". That destroys the value of the first monolith reading, which is the entire point of the sequence.
Note the standing ruling: a zero-row channel is evidence we never ran it, not evidence it is unnecessary. Nothing is culled without a positive reason. This issue exists so the run's own topology is known in advance, not reconstructed from the wreckage.
What would close it
A written statement — in docs/identification-pipeline.md or the monolith's run doc — of the exact Stage D invocation route the full run uses, with the file/line of the call.
If route (b): the sequence and the flags, in the runbook.
Ideally, the per-channel measurability harness (priority-1 work item, filed separately) reports the invocation route per run so this is self-evidencing rather than documented-once.
LIVE vs LATENT
LIVE as a planning defect — it blocks the next full run. It is not a production bug: production is currently ~14 merges behind master and no full run has been executed.
What
The pipeline coverage composition audit (PR #616, docs-only) established that only 1 of the 21 vote channels is reachable from the pooled cohort runner, and that one channel casts no votes.
run_image_evidence_cohort— the runner the monolith is being built on — is Stage-C-only. It extracts evidence. It does not invoke any calculator. The other 20 channels are reachable only fromlocal_calculate_verdicts(Stage D), fromlocal_identify_printing_tags.run_pilot, or from the Stage E streaming conveyor (stage_e_dispatch).Why it matters
The stated plan is: measurability first, then stand up the monolith (Stage 0 + pilot's relevant features + Stage C + D + E + fidelity gates), see what falls out. If the monolith's spine is the pooled runner, then on a full run Stage D reaches the catalog by one of two routes and it has not been established which one the planned run uses:
post_saveecho. Production hasSTAGE_E_STREAMING_ENABLED = True(master's default isFalse). If Stage D arrives only via that echo, the run's calculator coverage is whatever the streaming conveyor casts — and per Streaming Stage D casts only the 4 printing-identity calculators; evidence-derived tag/artist votes go stale after a re-extraction pass #530 the streaming Stage D casts only the 4 printing-identity calculators, so evidence-derived tag and artist votes would not be recast at all.local_calculate_verdictsinvocation as a second phase of the run.These two produce materially different vote coverage for the same input cohort. The difference is not a performance detail; it decides which of the 21 channels produce rows.
THIS MUST BE ANSWERED BEFORE ANY FULL RUN
A run executed without knowing which route Stage D takes produces a reading that cannot be interpreted: a zero-row channel afterwards would be indistinguishable between "the channel is broken" and "the run never invoked it". That destroys the value of the first monolith reading, which is the entire point of the sequence.
Note the standing ruling: a zero-row channel is evidence we never ran it, not evidence it is unnecessary. Nothing is culled without a positive reason. This issue exists so the run's own topology is known in advance, not reconstructed from the wreckage.
What would close it
docs/identification-pipeline.mdor the monolith's run doc — of the exact Stage D invocation route the full run uses, with the file/line of the call.LIVE vs LATENT
LIVE as a planning defect — it blocks the next full run. It is not a production bug: production is currently ~14 merges behind master and no full run has been executed.
Refs