Skip to content

Only 1 of 21 vote channels is reachable from the pooled runner, and it casts no votes: the full run's Stage D route is NOT ESTABLISHED #618

Description

@WilfordGrimley

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 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:

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

  1. 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.
  2. If route (a): an explicit note that streaming Stage D covers only the 4 printing-identity calculators (Streaming Stage D casts only the 4 printing-identity calculators; evidence-derived tag/artist votes go stale after a re-extraction pass #530), and a decision on whether that is acceptable for the first reading.
  3. If route (b): the sequence and the flags, in the runbook.
  4. 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.

Refs

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingneeds-owner-decisionOwner call required before proceeding

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions