Lane: babysit, observed on #592.
babysit-readiness-gate.sh matches classification tokens with grep -wE 'VALID|INCORRECT|UNCERTAIN' (case-sensitive, exact-case only). A worker's classification-table reply that writes a natural-language disposition like "Valid (defer)" instead of the mandated all-caps VALID scores as unclassified — the gate then reports BLOCKED reason=under-decomposed even though the finding genuinely was classified, just not in the exact casing the regex expects.
This compounds with the already-tracked #465 (over-counting) in the opposite direction: #465 makes BLOCKED verdicts too pessimistic by inflating the finding count; this makes them too pessimistic by deflating the classified count when a reply's wording drifts even slightly from the mandated token casing.
Category: bug. Expected: either case-insensitive matching (grep -wiE ...), or the gate's own error output should name the exact token casing it expects when a classification-shaped reply doesn't match, so an operator/worker can immediately see why a reply "didn't count."
Work-class: C3 (bug-fix-shaped) — attended triage 2026-07-23, operator-ratified. 🤖
Lane: babysit, observed on #592.
babysit-readiness-gate.shmatches classification tokens withgrep -wE 'VALID|INCORRECT|UNCERTAIN'(case-sensitive, exact-case only). A worker's classification-table reply that writes a natural-language disposition like "Valid (defer)" instead of the mandated all-capsVALIDscores as unclassified — the gate then reportsBLOCKED reason=under-decomposedeven though the finding genuinely was classified, just not in the exact casing the regex expects.This compounds with the already-tracked #465 (over-counting) in the opposite direction: #465 makes BLOCKED verdicts too pessimistic by inflating the finding count; this makes them too pessimistic by deflating the classified count when a reply's wording drifts even slightly from the mandated token casing.
Category: bug. Expected: either case-insensitive matching (
grep -wiE ...), or the gate's own error output should name the exact token casing it expects when a classification-shaped reply doesn't match, so an operator/worker can immediately see why a reply "didn't count."Work-class: C3 (bug-fix-shaped) — attended triage 2026-07-23, operator-ratified. 🤖