The decisions
What was decided, and what it cost
Every entry names the alternative that was rejected. A decision log that only records winners is a press release.
The user is the broker, the client is the subject
0001, acceptedBuild for the broker operating on behalf of a client. Own coverage describes whose risk is analyzed, not who operates the tool.
Rejected A self serve tool for the insured, which one reading of the specification supports.
Cost An insured facing product would need consumer grade explanation everywhere. The liability argument decided it: a wrong answer should reach a licensed professional who was shown the scope, not a party with no way to evaluate it.
A document is not a policy
settled in the schemaDocuments resolve into policies before policies resolve into a program. A policy is a packet that arrives split across files or several to a file.
Rejected One file equals one policy, which is the assumption the brief implies.
Cost A whole resolution layer that the brief did not ask for. It is also the layer that makes every corpus program assemble correctly, because not one of them fits the one file assumption.
The schedule of underlying insurance is the join key
settled in the schemaExcess and umbrella policies are joined to what sits beneath them by the schedule each one prints: carrier, policy number, limits, term.
Rejected Joining by insured name or by adjacency in the upload.
Cost Schedules are typed at a different carrier and punctuation drifts, so near matches must be surfaced for confirmation rather than joined. The gain is that a missing document becomes provable by name.
Routing is by policy number only, never by name
settled in the pipelineTwo policy numbers that differ only in punctuation are surfaced for a person to confirm, not joined automatically and not reported missing.
Rejected Fuzzy matching on names, which joins more programs automatically.
Cost More confirmations reach a person. A wrong tower is wrong; a wrong merge between two insureds is not recoverable.
Pause before extraction
0002, acceptedA document that cannot be placed is re-read once, narrowly. If the second reading agrees it cannot be placed, the run stops and asks a person a specific question. Answers and exclusions are logged.
Rejected Proceeding on the best guess and letting the person correct the finished review.
Cost Some runs stop and wait. Triage costs pennies and extraction costs dollars, and a review built on a guessed identity is already compromised before it renders.
Three answer states
settled in the question engineA question answers pass, fail, or cannot determine. Answerability is checked before the predicate runs, so a missing field is never reported as a failure.
Rejected Two states with a confidence score attached.
Cost Cannot determine is a less satisfying answer than a number. It is also the honest one, and dressing uncertainty as a verdict is the failure mode this build treats as disqualifying.
No unqualified clean result exists
settled in the schemaA review cannot be constructed without a scope declaring what was read, what should exist, and what was assumed.
Rejected A clean bill of health when no problems were found.
Cost Every result carries qualifications a reader must scroll past. A clean result over an incomplete program is the most expensive lie this system could tell.
Validate the reading in code, not at the decoder
0003, acceptedThe schema travels in the prompt, the response returns as text, and validation runs in code with one correction pass before raising.
Rejected Grammar constrained decoding, which makes malformed output impossible.
Cost Malformed output becomes unlikely instead of impossible. The compiled grammar could not hold a fully cited schema after three reductions, and what remained to cut was citations and fields, which are the product.
Stop for a person when a named document is missing
decided 08/14/26, build in progressWhen assembly finds a policy named by a schedule but absent from the file, and the absence touches the tower or a question, the run stops and asks: proceed without it, or stop here. The decision is logged into the record with who made it.
Rejected Proceeding automatically and marking dependent findings, which is what the build did before this decision.
Cost A halt state, a resume path, and a decision surface that did not exist. Not every absence is equal, so the stop is gated by what the absence touches, and the record shows what was missing and what the person chose.