Skip to content

Class: a gate that answers empty or degenerate input with PASS (or a traceback) instead of a named refusal #2876

Closed as not planned
6 of 6 issues completed

Description

@noahgift

Mechanism. An arm, validator or gate is handed an input that carries nothing to judge — an empty band set, a zero comparator median, a profiler with zero bricks, a method string with no vocabulary, a workload label bound to nothing, a proof count with a 12× margin — and answers PASS (or a Python traceback) because the loop body never runs, the predicate is vacuously true, or the check tests presence rather than value. The opposite polarity is often armed (a missing denominator FAILS loudly), which is what makes each instance a gap rather than a design.

The one structural fix. Every gate declares, per arm, the input shape it needs and REFUSES by name when the shape is absent — SKIP (precondition: …) or FAIL, never a silent pass; a validator refuses a non-positive or empty statistic on either side with the same sentence; self-tests carry an empty-input row for every arm (PP-066 §9: 'poka-yoke — refusal table derived, never authored'). PP-066 C0 names the first instance (#2830) as a release criterion; the class is what C0's polarity rule generalises.

Instances (one line each):

Rows. C0 (required check readable/strict; #2830's polarity), C4 (post-publish parity block on four hosts), master row 7 (JOIN), master row 15 (gx10 shakedown).

Members (parented here): #2730, #2732, #2735, #2756, #2816, #2830

PP-066 triage 2026-09-05 (issue #2873); ledger docs/audits/pp-066-triage-2026-09-05.md.

Folded sub-tickets (TRIAGE-100, 2026-10-14)

These open sub-tickets were folded here as checklist rows and closed as not planned so the open count stays at or under 100. Reopen one when its work resumes; an open PR for it reopens it.

Merged in (TRIAGE-100, 2026-10-14)

From #5307 — Gate honesty: checks that pass with nothing measured or judge the wrong commit

Folded P0 and operator-worded rows (TRIAGE-100, 2026-10-14)

These tickets were folded here by the cop ruling of 2026-10-14 (sub-rows of this master). Each keeps its priority and its owner. The operator text each carried is quoted below exactly as written; if an owner objects, the ticket is reopened.

Activity

  1. added this to the 0.68.0 milestone on Sep 10, 2026
  2. added
    automationBot-maintained dashboard, not a defect — skip in triage
    P0Critical priority
    on Sep 11, 2026
  3. modified the milestones: 0.68.0, 0.69.0, 0.72.0 on Sep 16, 2026
  4. 37 remaining items

  5. modified the milestones: 0.72.0, backlog on Oct 14, 2026
  6. noahgift commented on Oct 14, 2026

    @noahgift
    ContributorAuthor

    Folded into the checklist of its epic #3863 (full original text kept there, verbatim). Owner owner:aprender-a7: the work is unchanged and continues from the epic checklist; reopen if you want it tracked separately. Refs #3863.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium priorityautomationBot-maintained dashboard, not a defect — skip in triageowner:aprender-a7owner sessionsize:MK̂ 3-4 h

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions