criterion.parent_id — a score commits at any criterion with NO WEIGHTED
CHILDREN. Derived from the rubric, never configured, and neither corpus
document is special-cased: Tarrant's five flat criteria are all leaves;
Friendship's 'Method of Approach' 30 is not scoreable while its 15/10/5
children are. A criterion whose sub-items carry no points stays scoreable
at its own level, because those are requirements mapped through
criterion_requirement rather than children.
requirement.determinable_from_response — false where satisfaction cannot be
established from the response document at all. Gate evaluation excludes
these rather than failing them; treating Friendship's 'two bid copies' as
not_answered disqualifies two of three bidders over a packaging detail.
The scoring rule is mirrored in corpus/validate-truth.py so the corpus and
the code cannot silently disagree. Against Friendship it yields 10 scoreable
criteria of 12, summing to exactly 100.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Covers all nine stress cases from #25, #15 and #16. The lowest bid is
disqualified on two missing health documents and the highest bid is
strongest on the SFA's own geographic-preference criterion, so a ranking
that cannot represent absence gets the field exactly backwards.
Deliberate traps: a planted $400 arithmetic error in a stated total, an
unverifiable total whose unit price lives only in the external Excel, an
unlabelled exception, a non-priceable exception that is really a conditional
withdrawal, and an answered-but-negative response.
Second schema finding, surfaced by the validator: R-B6C is a mandatory gate
that no response document can establish. Coverage over it is unknowable
rather than absent.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
31 requirements (13 mandatory gates, 5 certification forms, 11 narrative,
1 pricing, 1 compliance schedule), 12 criteria across two levels, and three
labelled known-misses.
The known-misses are drawn from the document rather than invented:
KM-1 Schedule C holds no prices; content is in an external Excel file,
and pricing is 40 of 100 points
KM-2 a mandatory submission stated only inside a parenthetical within a
scored criterion's description in Section K
KM-3 'Response to values statement' carries no obligation verb and is
mandatory only by virtue of the checklist eleven pages earlier
validate-truth.py checks reference integrity and weight sums; these files
are hand-authored, so nothing else checks them.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
52pp, clean text layer, no OCR needed. Rubric matches #22's record and is
nested three deep, with sub-items that are weighted under two parents and
unweighted guidance under two others.
Schedule C (the price sheet) contains only 'Separate attachment to be
completed in Excel' — a ready-made labelled known-miss where pricing is 40%
of the available score.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Seven public-sector solicitations and rubric samples read by #22 from live
URLs and never saved. #22's ninth hazard was that these 403 without warning,
so archival is the irreversible-if-lost part of #30.
All seven retrieved. Two corrections to #22's record: SLC Airport is 142pp
not 55pp, and Tarrant County is an award tabulation rather than a
solicitation — it validates ranking arithmetic but cannot be authored against.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>