Build the synthesized response corpus #30

Closed
opened 2026-08-02 05:17:48 +00:00 by christian · 5 comments
Owner

Task

Real completed vendor responses proved unobtainable, and v1 is now a demoable POC whose schema is
designed against synthesized responses. This is that corpus.

Write responses to solicitations actually collected in the artifacts research — constrained by
their real requirement lists, real scoring rubrics, and real submission instructions. Not invented
on both sides.

Lightweight but with teeth. The corpus exists to stress the schema, not flatter it, so it must
include:

  • a response restating requirements in a tabbed compliance matrix (easy end of the binding
    gradient) and one answering in free prose with no structural anchor (hard end)
  • pricing as a rate function — tiered, volume-banded, unit-times-quantity — never a scalar
  • at least one partially non-responsive response omitting a mandatory requirement, so coverage
    has to represent absence
  • exceptions and qualifications taken against the retailer's terms, which exception is
    first-class for
  • at least one case that should land as indeterminate rather than answered or
    not_answered, to exercise the three-state coverage model

Deliverable: the corpus committed to this repo, plus a short note on any place the schema failed to
represent something the corpus needed — those are the schema's real findings.

Recorded limitation from the parent ticket: a synthesized corpus reflects the schema author's
assumptions back at them and cannot falsify the design, only exercise it.


Parent: #1

## Task Real completed vendor responses proved unobtainable, and v1 is now a demoable POC whose schema is designed against synthesized responses. This is that corpus. Write responses **to solicitations actually collected** in the artifacts research — constrained by their real requirement lists, real scoring rubrics, and real submission instructions. Not invented on both sides. Lightweight but with teeth. The corpus exists to **stress the schema, not flatter it**, so it must include: - a response restating requirements in a **tabbed compliance matrix** (easy end of the binding gradient) and one answering in **free prose with no structural anchor** (hard end) - **pricing as a rate function** — tiered, volume-banded, unit-times-quantity — never a scalar - at least one **partially non-responsive** response omitting a mandatory requirement, so coverage has to represent absence - **exceptions and qualifications** taken against the retailer's terms, which `exception` is first-class for - at least one case that should land as **`indeterminate`** rather than `answered` or `not_answered`, to exercise the three-state coverage model Deliverable: the corpus committed to this repo, plus a short note on any place the schema failed to represent something the corpus needed — those are the schema's real findings. Recorded limitation from the parent ticket: a synthesized corpus reflects the schema author's assumptions back at them and **cannot falsify the design**, only exercise it. --- Parent: #1
christian added the
wayfinder:ticket
wayfinder:task
labels 2026-08-02 05:17:48 +00:00
christian added a new dependency 2026-08-03 20:52:59 +00:00
Author
Owner

Starting plan

Form settled by author direction: real documents paired with ground-truth label files. The
corpus serves two masters that want different artifacts - #37 needs renderable content, and #16's
completeness sweep needs labelled known-misses or its recall is unmeasurable. Only this form
satisfies both, and the truth files double as test fixtures.

corpus/
  tarrant-county/
    rfp.pdf                archived original
    rfp.truth.json         requirements, kinds, provenance spans,
                           scale anchors, and KNOWN MISSES
    responses/
      acme.docx            tabbed compliance matrix (easy binding)
      valdez.docx          free prose, omits a mandatory requirement
      sun-valley.docx      exceptions with attached price deltas
      *.truth.json         answers, coverage, expected quotes

Step zero, and it is decaying

We hold none of the seven source documents. #22 read them from live URLs; nothing was
archived. #25's POC framing rests on writing responses to solicitations we genuinely hold, so
without them the corpus has no foundation.

#22's ninth hazard applies directly: live procurement PDFs returned 403 or bot-challenge HTML six
times during that session, and public-sector URLs rot without notice. Archival is the only
irreversible-if-lost part of this ticket and it contains no decisions.
It should happen before
anything else.

Retrieval must also detect "this is not actually a PDF" before storing - a saved challenge page
looks like success until someone tries to parse it.

Anchor order

  1. Tarrant County #2021-137 - the only one of the seven with a real published score
    tabulation
    (winner 71.81, runner-up 70.89, three vendors). It is therefore the only document
    where our ranking arithmetic can be checked against a real outcome rather than against itself.
    Everything else is synthesis validating its own assumptions.
  2. Friendship PCS Grocery - grocery, nested rubric, closest to the retail domain, and its price
    sheet lives in a separate Excel attachment, which exercises #22's second extraction hazard.
  3. SLC Airport - richest binding structure (paragraph headings A-M restated verbatim), plus a
    shortlist-for-interviews stage that exercises the finalist release level from #12.

Required stress cases, gathered from three resolutions

Scattered across #25, #16 and #15, collected here so none is missed:

  • a tabbed compliance-matrix response - the reliable end of the binding gradient
  • a free-prose response with no structural anchor - the hard end
  • rate-function pricing - tiered, volume-banded, or unit x frequency x quantity, never a
    scalar. Must be computable: #15 bars any model fallback, so a shape the code cannot evaluate
    has nowhere to go
  • a partially non-responsive response omitting a mandatory requirement, so gate failure and
    absence are both represented
  • exceptions and qualifications against the retailer's terms, each with a price delta
  • a buried obligation a naive extractor misses, labelled as a known miss - without this the
    completeness sweep ships unexercised
  • at least one miskinded-as-informational obligation, to exercise the sweep's second job

What this will do to the schema

The corpus exists to stress the schema, not flatter it. #25 recorded the accepted risk that a
synthesized corpus reflects its author's assumptions back at them and cannot falsify the design.
Expect the pressure to land on rate structures (#29) and free-prose binding, which #22 flagged as
the two highest-variance areas.

Findings that contradict the schema should be raised as amendments to the relevant closed ticket,
not absorbed silently into the corpus.

## Starting plan **Form settled by author direction: real documents paired with ground-truth label files.** The corpus serves two masters that want different artifacts - https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/37 needs renderable content, and https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/16's completeness sweep needs labelled known-misses or its recall is unmeasurable. Only this form satisfies both, and the truth files double as test fixtures. ``` corpus/ tarrant-county/ rfp.pdf archived original rfp.truth.json requirements, kinds, provenance spans, scale anchors, and KNOWN MISSES responses/ acme.docx tabbed compliance matrix (easy binding) valdez.docx free prose, omits a mandatory requirement sun-valley.docx exceptions with attached price deltas *.truth.json answers, coverage, expected quotes ``` ### Step zero, and it is decaying **We hold none of the seven source documents.** https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/22 read them from live URLs; nothing was archived. #25's POC framing rests on writing responses *to solicitations we genuinely hold*, so without them the corpus has no foundation. https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/22's ninth hazard applies directly: live procurement PDFs returned 403 or bot-challenge HTML six times during that session, and public-sector URLs rot without notice. **Archival is the only irreversible-if-lost part of this ticket and it contains no decisions.** It should happen before anything else. Retrieval must also detect "this is not actually a PDF" before storing - a saved challenge page looks like success until someone tries to parse it. ### Anchor order 1. **Tarrant County #2021-137** - the only one of the seven with a **real published score tabulation** (winner 71.81, runner-up 70.89, three vendors). It is therefore the only document where our ranking arithmetic can be checked against a real outcome rather than against itself. Everything else is synthesis validating its own assumptions. 2. **Friendship PCS Grocery** - grocery, nested rubric, closest to the retail domain, and its price sheet lives in a separate Excel attachment, which exercises https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/22's second extraction hazard. 3. **SLC Airport** - richest binding structure (paragraph headings A-M restated verbatim), plus a shortlist-for-interviews stage that exercises the `finalist` release level from https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/12. ### Required stress cases, gathered from three resolutions Scattered across #25, https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/16 and https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/15, collected here so none is missed: - [ ] a **tabbed compliance-matrix** response - the reliable end of the binding gradient - [ ] a **free-prose** response with no structural anchor - the hard end - [ ] **rate-function pricing** - tiered, volume-banded, or unit x frequency x quantity, never a scalar. Must be computable: https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/15 bars any model fallback, so a shape the code cannot evaluate has nowhere to go - [ ] a **partially non-responsive** response omitting a mandatory requirement, so gate failure and absence are both represented - [ ] **exceptions and qualifications** against the retailer's terms, each with a price delta - [ ] a **buried obligation** a naive extractor misses, labelled as a known miss - without this the completeness sweep ships unexercised - [ ] at least one **miskinded-as-informational** obligation, to exercise the sweep's second job ### What this will do to the schema The corpus exists to **stress the schema, not flatter it**. #25 recorded the accepted risk that a synthesized corpus reflects its author's assumptions back at them and cannot falsify the design. Expect the pressure to land on rate structures (https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/29) and free-prose binding, which https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/22 flagged as the two highest-variance areas. Findings that contradict the schema should be raised as amendments to the relevant closed ticket, not absorbed silently into the corpus.
Author
Owner

Step zero done: all seven source documents archived

Committed as e7d68aa under corpus/ with a
README. 3.8 MB. All seven retrieved; none of the 403s #22 hit
recurred
- but that was luck rather than durability, and the reason to have done it now.

Correction: Tarrant County cannot anchor the corpus

It is a one-page award tabulation, not a solicitation. My starting plan called it the anchor on
the strength of its real score data; that was wrong on the specific point that matters - it carries
no requirements, so nothing can be written against it.

What it actually holds:

Evaluation Criteria           Max   Five Star  Selrico  Trinity
Management & Support Staff     25     15.84     15.00    16.36
Meal and Service Plan          25     15.20     16.30    17.30
Financial Stability            20     12.00     12.00    12.00
Meal Price                     25     25.00     24.52    22.23
References                      5      3.77      3.07     2.73
Total Score                   100     71.81     70.89    70.62
                                     PRIMARY  SECONDARY ALTERNATE

Three vendors inside 1.19 points, tighter than #22 recorded - it noted the top two and there
is a third at 70.62. This remains uniquely valuable, just in a different role: it is the only place
in the corpus where our ranking arithmetic can be wrong in a detectable way rather than
self-consistent. It is also hard evidence for #15's fractional-score decision, since rounding
erases this result completely.

Revised roles

Document Pages Role
friendship-pcs/rfp.pdf 52 Authoring anchor. Grocery, nested rubric, closest domain. Price sheet is a separate Excel attachment - exercises #22's second extraction hazard.
slc-airport/rfp.pdf 142 Second anchor. Tabbed A-M binding; its shortlist-for-interviews stage exercises the finalist release level from #12.
tarrant-county/rfp.pdf 1 Validation only. Ranking arithmetic checked against a real outcome.
reference/*.pdf 3/1/27/4 Rubric and pricing shapes. Not authored against.

Two further corrections to #22's record

  • SLC Airport is 142pp, not 55pp. Meaningfully different: it is now the largest artifact in the
    set by a wide margin, and a 142-page solicitation is a harder extraction target than the research
    implied when it informed #10 and #16.
  • Maryland MBE forms are 27pp, not 20pp.

Next, and a tooling note

Authoring starts on Friendship PCS: three response documents, each deliberately broken in a
specific way, plus truth files. Worth completing that one set as a template before touching SLC, so
the format proves itself once rather than three times.

A real PDF text extractor is needed first. Ad-hoc stream decompression recovers title pages and
little else - it reported zero instances of "shall" across a 52-page solicitation, which is an
artefact of the method rather than the document. Anything measuring extraction against these needs
a proper library, and that choice belongs to whoever opens the extraction seam.

## Step zero done: all seven source documents archived Committed as `e7d68aa` under [`corpus/`](https://gitea.stephenmann.io/christian/helmdocs-proposal-system/src/branch/master/corpus) with a [README](https://gitea.stephenmann.io/christian/helmdocs-proposal-system/src/branch/master/corpus/README.md). 3.8 MB. **All seven retrieved; none of the 403s https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/22 hit recurred** - but that was luck rather than durability, and the reason to have done it now. ### Correction: Tarrant County cannot anchor the corpus **It is a one-page award tabulation, not a solicitation.** My starting plan called it the anchor on the strength of its real score data; that was wrong on the specific point that matters - it carries no requirements, so nothing can be written against it. What it actually holds: ``` Evaluation Criteria Max Five Star Selrico Trinity Management & Support Staff 25 15.84 15.00 16.36 Meal and Service Plan 25 15.20 16.30 17.30 Financial Stability 20 12.00 12.00 12.00 Meal Price 25 25.00 24.52 22.23 References 5 3.77 3.07 2.73 Total Score 100 71.81 70.89 70.62 PRIMARY SECONDARY ALTERNATE ``` **Three vendors inside 1.19 points**, tighter than https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/22 recorded - it noted the top two and there is a third at 70.62. This remains uniquely valuable, just in a different role: it is the only place in the corpus where our ranking arithmetic can be **wrong in a detectable way** rather than self-consistent. It is also hard evidence for https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/15's fractional-score decision, since rounding erases this result completely. ### Revised roles | Document | Pages | Role | |---|---|---| | `friendship-pcs/rfp.pdf` | 52 | **Authoring anchor.** Grocery, nested rubric, closest domain. Price sheet is a separate Excel attachment - exercises https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/22's second extraction hazard. | | `slc-airport/rfp.pdf` | 142 | Second anchor. Tabbed A-M binding; its shortlist-for-interviews stage exercises the `finalist` release level from https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/12. | | `tarrant-county/rfp.pdf` | 1 | **Validation only.** Ranking arithmetic checked against a real outcome. | | `reference/*.pdf` | 3/1/27/4 | Rubric and pricing shapes. Not authored against. | ### Two further corrections to https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/22's record - **SLC Airport is 142pp, not 55pp.** Meaningfully different: it is now the largest artifact in the set by a wide margin, and a 142-page solicitation is a harder extraction target than the research implied when it informed https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/10 and https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/16. - Maryland MBE forms are 27pp, not 20pp. ### Next, and a tooling note Authoring starts on **Friendship PCS**: three response documents, each deliberately broken in a specific way, plus truth files. Worth completing that one set as a template before touching SLC, so the format proves itself once rather than three times. **A real PDF text extractor is needed first.** Ad-hoc stream decompression recovers title pages and little else - it reported zero instances of "shall" across a 52-page solicitation, which is an artefact of the method rather than the document. Anything measuring extraction against these needs a proper library, and that choice belongs to whoever opens the extraction seam.
Author
Owner

Progress: Friendship PCS extracted, two hazards confirmed

Committed. corpus/friendship-pcs/extracted/ plus
NOTES.md.

52pp, 105,154 chars, no page needed OCR - the text layer is clean throughout, so this document
never exercises the OCR ladder. 149 x "shall" and 64 x "must".

The rubric matches #22 exactly and is nested three deep. It also produced a schema finding
raised against #10: criterion has no parent, and Tarrant County and Friendship PCS disagree about
which level carries the score.

Two hazards confirmed in the wild

The rubric never uses "criteria" as a heading. It sits under "SECTION K: Evaluation Factors" ->
"K.2 Technical Rating Scale", with weights as bullet suffixes. Searching for "evaluation criteria"
or "scoring" returns nothing - direct evidence that #16's sweep cannot lean on headings.

Schedule C is the price sheet and contains no prices. Its entire body:

SCHEDULE C: PRICING SHEET
*Separate attachment to be completed in Excel.

Pricing is 40 of 100 points on this solicitation and a PDF-only extractor recovers none of it.
This is a ready-made labelled known-miss: the obligation is present, the content is not, and no
better PDF parsing recovers it. First entry for the truth file.

Tooling note, resolved

The earlier "we need a real PDF extractor" note is closed - see the reframe on #19. For authoring,
plain pdfjs is enough and free; for anything measured, the Document AI path is the one that
produces spans.

## Progress: Friendship PCS extracted, two hazards confirmed Committed. `corpus/friendship-pcs/extracted/` plus [NOTES.md](https://gitea.stephenmann.io/christian/helmdocs-proposal-system/src/branch/master/corpus/friendship-pcs/NOTES.md). **52pp, 105,154 chars, no page needed OCR** - the text layer is clean throughout, so this document never exercises the OCR ladder. 149 x "shall" and 64 x "must". **The rubric matches https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/22 exactly** and is nested three deep. It also produced a schema finding raised against https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/10: `criterion` has no parent, and Tarrant County and Friendship PCS disagree about which level carries the score. ### Two hazards confirmed in the wild **The rubric never uses "criteria" as a heading.** It sits under "SECTION K: Evaluation Factors" -> "K.2 Technical Rating Scale", with weights as bullet suffixes. Searching for "evaluation criteria" or "scoring" returns nothing - direct evidence that https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/16's sweep cannot lean on headings. **Schedule C is the price sheet and contains no prices.** Its entire body: > SCHEDULE C: PRICING SHEET > *Separate attachment to be completed in Excel. Pricing is **40 of 100 points** on this solicitation and a PDF-only extractor recovers none of it. This is a **ready-made labelled known-miss**: the obligation is present, the content is not, and no better PDF parsing recovers it. First entry for the truth file. ### Tooling note, resolved The earlier "we need a real PDF extractor" note is closed - see the reframe on https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/19. For authoring, plain pdfjs is enough and free; for anything *measured*, the Document AI path is the one that produces spans.
Author
Owner

Friendship PCS response set complete

Committed 19e7ffe. Three responses in responses/source/
with paired truth files, plus validate-responses.py.

ANACOSTIA   named_section_with_partial_enumeration  answered=27 indet=1 absent=3  exc=3 (3 labelled)  PASS
CHESAPEAKE  free_prose                              answered=19 indet=4 absent=8  exc=1 (0 labelled)  FAIL
POTOMAC     tabbed_restatement                      answered=28 indet=1 absent=2  exc=0               PASS

All nine stress cases from #25, #15 and #16 are covered and the validator asserts it, so the
checklist cannot rot silently.

The field has a real outcome

Vendor Price Gates Distinguishing
Chesapeake $541,280 (lowest) FAIL - two missing health documents free prose, no anchors
Potomac $589,970 PASS complete; volume-banded; 18% local
Anacostia $624,315 (highest) PASS 61% local; three exceptions; seasonal pricing

The lowest bid is disqualified and the highest is strongest on the criterion the SFA wrote into
its own rubric.
Deliberate: a ranking that cannot represent absence puts Chesapeake first, and a
cost comparison that ignores the school calendar flatters Anacostia. Both failure modes are now
detectable rather than theoretical.

Traps planted, each aimed at a specific decision

  • A $400 arithmetic error in Potomac's stated total. Band price x scenario volume gives
    $589,570; the document says $589,970. #15 decision 2 put price arithmetic in code so a stated
    total is never trusted over a computed one - this is the case that catches an extractor lifting
    the vendor's figure.
  • An unverifiable total (Chesapeake): the unit price exists only in the external Excel, so no
    computed total is possible at all. The KM-1 shape reaching the response side.
  • An unlabelled exception (Chesapeake) phrased as politeness, against three explicitly labelled
    ones with deltas (Anacostia) as the control.
  • A non-priceable exception (Anacostia EX-3): if declined the vendor cannot bid produce at all.
    A conditional withdrawal wearing an exception's clothes - a price_delta field cannot hold it,
    which is a constraint on #29.
  • Answered-but-negative (Anacostia on USDA Foods): "we are not currently an approved processor"
    squarely answers the requirement and discloses inability. Coverage and quality are orthogonal.
  • Three certifications in one sentence (Chesapeake): one span must be split three ways.

Second schema finding raised

R-B6C is a mandatory gate no response document can establish. Raised against #10.

Next

SLC Airport - 142pp, tabbed A-M binding, and the document that exercises the OCR ladder Friendship
never touches. Its shortlist-for-interviews stage is also the only artifact that reaches the
finalist release level.

## Friendship PCS response set complete Committed `19e7ffe`. Three responses in [`responses/source/`](https://gitea.stephenmann.io/christian/helmdocs-proposal-system/src/branch/master/corpus/friendship-pcs/responses) with paired truth files, plus `validate-responses.py`. ``` ANACOSTIA named_section_with_partial_enumeration answered=27 indet=1 absent=3 exc=3 (3 labelled) PASS CHESAPEAKE free_prose answered=19 indet=4 absent=8 exc=1 (0 labelled) FAIL POTOMAC tabbed_restatement answered=28 indet=1 absent=2 exc=0 PASS ``` **All nine stress cases from #25, https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/15 and https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/16 are covered** and the validator asserts it, so the checklist cannot rot silently. ### The field has a real outcome | Vendor | Price | Gates | Distinguishing | |---|---|---|---| | Chesapeake | **$541,280** (lowest) | **FAIL** - two missing health documents | free prose, no anchors | | Potomac | $589,970 | PASS | complete; volume-banded; 18% local | | Anacostia | **$624,315** (highest) | PASS | 61% local; three exceptions; seasonal pricing | **The lowest bid is disqualified and the highest is strongest on the criterion the SFA wrote into its own rubric.** Deliberate: a ranking that cannot represent absence puts Chesapeake first, and a cost comparison that ignores the school calendar flatters Anacostia. Both failure modes are now detectable rather than theoretical. ### Traps planted, each aimed at a specific decision - **A $400 arithmetic error** in Potomac's stated total. Band price x scenario volume gives $589,570; the document says $589,970. https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/15 decision 2 put price arithmetic in code so a stated total is never trusted over a computed one - this is the case that catches an extractor lifting the vendor's figure. - **An unverifiable total** (Chesapeake): the unit price exists only in the external Excel, so no computed total is possible at all. The KM-1 shape reaching the response side. - **An unlabelled exception** (Chesapeake) phrased as politeness, against three explicitly labelled ones with deltas (Anacostia) as the control. - **A non-priceable exception** (Anacostia EX-3): if declined the vendor cannot bid produce at all. A conditional withdrawal wearing an exception's clothes - a `price_delta` field cannot hold it, which is a constraint on https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/29. - **Answered-but-negative** (Anacostia on USDA Foods): "we are not currently an approved processor" squarely answers the requirement and discloses inability. Coverage and quality are orthogonal. - **Three certifications in one sentence** (Chesapeake): one span must be split three ways. ### Second schema finding raised `R-B6C` is a mandatory gate no response document can establish. Raised against https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/10. ### Next SLC Airport - 142pp, tabbed A-M binding, and the document that exercises the OCR ladder Friendship never touches. Its shortlist-for-interviews stage is also the only artifact that reaches the `finalist` release level.
Author
Owner

Resolution

Demo-sufficient, and closed on that basis rather than on exhausting the plan.

The corpus set for Friendship PCS is complete: the archived
solicitation, hand-authored ground truth, three synthesized responses with paired truth files, and
two validators. Committed across e7d68aa, 0b64eda, e81da40, 19e7ffe, 126e94a.

ANACOSTIA   named_section + enumeration  answered=27 indet=1 absent=3  exc=3 (3 labelled)  PASS
CHESAPEAKE  free_prose                   answered=19 indet=4 absent=8  exc=1 (0 labelled)  FAIL
POTOMAC     tabbed_restatement           answered=28 indet=1 absent=2  exc=0               PASS

All nine stress cases from #25, #15 and #16 are covered, and validate-responses.py asserts the
checklist
so it cannot rot silently.

It did the job it existed to do

#25 accepted the risk that a synthesized corpus "reflects the schema author's assumptions back at
them and cannot falsify the design." That was the right caution and it was too pessimistic. The
set produced two schema changes, both now applied to the layout:

  1. criterion could not represent a nested rubric. Friendship's weighted children sum exactly
    to their parents while two other criteria carry unweighted guidance - both shapes in one
    document. Forced the scoring-level rule.
  2. A mandatory gate no response document can satisfy. Surfaced by the validator rather than by
    design, which is the argument for having written one.

Neither was predictable from reading the RFP research. Both came from the friction of authoring
against a real artifact.

What is deliberately not here

SLC Airport, Tarrant responses, and any OCR exercise. Friendship's text layer is clean
throughout, so the corpus never touches the OCR ladder, and Tarrant is an award tabulation with no
requirements to answer.

That is a real gap and it belongs to whoever opens the extraction seam, not to the demo:

  • 142pp with tabbed A-M binding - the reliable end of the binding gradient is currently
    represented only by a synthesized matrix, not a real one
  • The OCR ladder - untested by this corpus
  • The finalist release level - SLC's shortlist-for-interviews stage is the only artifact that
    reaches it
  • Percentage-rent pricing - MAX(1/12 x minimum guarantee, % of gross receipts), a shape none
    of the three synthesized rate structures cover

Recorded in Not yet specified rather than left implicit.

## Resolution **Demo-sufficient, and closed on that basis rather than on exhausting the plan.** The corpus set for [Friendship PCS](https://gitea.stephenmann.io/christian/helmdocs-proposal-system/src/branch/master/corpus/friendship-pcs) is complete: the archived solicitation, hand-authored ground truth, three synthesized responses with paired truth files, and two validators. Committed across `e7d68aa`, `0b64eda`, `e81da40`, `19e7ffe`, `126e94a`. ``` ANACOSTIA named_section + enumeration answered=27 indet=1 absent=3 exc=3 (3 labelled) PASS CHESAPEAKE free_prose answered=19 indet=4 absent=8 exc=1 (0 labelled) FAIL POTOMAC tabbed_restatement answered=28 indet=1 absent=2 exc=0 PASS ``` **All nine stress cases from #25, https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/15 and https://gitea.stephenmann.io/christian/helmdocs-proposal-system/issues/16 are covered, and `validate-responses.py` asserts the checklist** so it cannot rot silently. ### It did the job it existed to do #25 accepted the risk that a synthesized corpus "reflects the schema author's assumptions back at them and cannot falsify the design." That was the right caution and it was **too pessimistic**. The set produced two schema changes, both now applied to the layout: 1. **`criterion` could not represent a nested rubric.** Friendship's weighted children sum exactly to their parents while two other criteria carry unweighted guidance - both shapes in one document. Forced the scoring-level rule. 2. **A mandatory gate no response document can satisfy.** Surfaced by the validator rather than by design, which is the argument for having written one. Neither was predictable from reading the RFP research. Both came from the friction of authoring against a real artifact. ### What is deliberately not here **SLC Airport, Tarrant responses, and any OCR exercise.** Friendship's text layer is clean throughout, so the corpus never touches the OCR ladder, and Tarrant is an award tabulation with no requirements to answer. That is a real gap and it belongs to whoever opens the extraction seam, not to the demo: - **142pp with tabbed A-M binding** - the reliable end of the binding gradient is currently represented only by a synthesized matrix, not a real one - **The OCR ladder** - untested by this corpus - **The `finalist` release level** - SLC's shortlist-for-interviews stage is the only artifact that reaches it - **Percentage-rent pricing** - `MAX(1/12 x minimum guarantee, % of gross receipts)`, a shape none of the three synthesized rate structures cover Recorded in *Not yet specified* rather than left implicit.
Sign in to join this conversation.
No description provided.