Most procurement AI tells you what a solicitation says.
The harder question is whether it was allowed to.
H33-GPIS is a governed evidence system that reads federal solicitations and proves which claims the evidence permits — and which it does not.
The problem is not extraction quality
Every tool in this category reads PDFs, and they read them reasonably well. The failures that matter are not the ones where extraction is visibly wrong — they are the ones where the output is clean, confident, complete-looking, and false.
These are measured, from real government documents, on our own corpus.
A 54-page amendment that reads as one page
A signed NASA SF-30 modification, 1,063,076 bytes. The extraction stack
returned Ok. No error, no warning, no anomaly. It had read
1 of 54 pages — and truncating the file to 10% of its
length produced an identical result.
Nothing downstream could have known. Region detection, extraction, provenance closure and coverage accounting all behaved perfectly on the single page they were given, and every one of them reported success.
83 government requirements that were not procurement requirements
An FDA pharmacology guidance produced 83 span-verified requirements. Every individual claim was true — the text exists, the span re-reads, each sentence is obligation-shaped. The product-level statement "we found 83 government requirements" was false, because nothing had established the document was a solicitation at all.
A file named …SIGNED.pdf with no signature
Measured contents: /ByteRange 0 · /Sig 0 · /DocMDP 0. The
filename asserted a cryptographic property the document did not contain. A
system that trusts filenames would have carried that assertion into a compliance
record.
Text no human can see
A scanned document where every character extracted was painted invisible — render mode 3, 1,033 occurrences, exactly paired with the text-showing operations. A reader opening that document sees a scan and not one word of what the system read.
Nine attachments that were not attachments
A standard SF-1449 form declares 9 embedded file objects and zero attached documents. They are fonts and form resources. A wage-determination document declares 1 and has 1 real attachment. Counting embedded objects as attachments gets both wrong, in opposite directions.
None of these produce an error. All of them produce output that looks correct. That is the category of failure this system exists to catch.
What GPIS does
SOURCE → ARTIFACT → OBSERVATION → EVIDENCE → CLAIM → RESPONSE
Each arrow is a governed transition, and no stage may skip one.
Every requirement carries the byte range it came from, and that span is re-read and re-verified against the document text at promotion time. A requirement whose span does not re-read is not promoted — it is refused, with a recorded reason and a class.
Every page terminates in exactly one accounted state. Parsed, unavailable, unresolved, failed, or intentionally non-requirement. There is no silent loss, and no page falls out of the accounting without appearing in the residual.
The denominator is verified independently. A document's own declared page count is checked against what the extractor enumerated. That single control is what caught the NASA loss above, and it is the reason a coverage percentage in this system means something.
Refusals are classified, counted, and permanent. Eight refusal classes, each with an audit trail. One of them — unsafe column stitching — is under a standing instruction never to acquire a handler, because the "fix" would silently merge text across columns and produce fluent, wrong requirements.
What GPIS refuses to do
This section exists because it is the product.
- It will not assert that any capability satisfies any requirement.
- It will not confirm that a cited clause applies to a procurement.
- It will not claim OCR was performed. No OCR has ever run.
- It will not report pages as empty. Absence of text is not absence of content.
- It will not emit a coverage or gap matrix.
- It will not score opportunity fit or recommend pursuit.
- It will not let a model approve anything.
The last two are the ones buyers ask about. A gap matrix asserts satisfaction for every row it does not flag — silence in a coverage report reads as covered, and a matrix with 200 green rows is indistinguishable from a matrix nobody checked. Bid/no-bid scoring is a human judgment we deliberately do not make.
These are not settings. They are enforced in the type system: the objects that
would carry those claims have no field for them, and the predicates that would
assert them return false unconditionally, guarded by tests.
The regression corpus
Most systems in this space ship a model and a demo. We ship the list of ways this class of system fails.
Every entry answers: what was observed, what false conclusion it would have produced, whether anything would have detected it, and what control now prevents it. Of the entries marked detectable — every one is no. None crashed. None raised an error. All produced plausible output, and most were caught only because a second, independent measurement disagreed.
Six were defects in the measuring instruments themselves. Those are in the corpus too.
A team that adopts these invariants and then looks for violations by code review will conclude it has none.
The corpus is exportable. An enterprise buyer's counsel can read the full set without a demo.
Honest status
The evidence layer works. Several things it will eventually need do not exist yet, and we publish which.
Working
- page enumeration and accounting
- independent denominator verification
- span-verified requirement extraction
- provenance closure
- text-layer quality signals
- clause-citation recognition
- refusal taxonomy
- embedded-object observation
Not built
- package completeness
- amendment lineage
- change attribution
- extractor drift detection
- signature validation
- document classification
- acquisition crawling
Known gap
- Artifact digests are supplied by the caller, not computed by the system. Until that is fixed, identity comparisons rest on an unverified input, and we say so rather than shipping a padlock icon.
The middle column is not a roadmap disclaimer. Each item has a scope record naming what evidence it would require and who would own it, and none of them is claimed as working.
Who this is for
Organizations where a wrong statement in a proposal is a legal exposure rather than an embarrassment: federal contractors, capture and proposal teams, and the contracts and compliance functions that sign off on what gets submitted.
The question this system answers is not "can AI write my proposal?"
It is: can you prove the proposal was generated from the correct evidence, and show what the evidence could not support?