Skip to content

Score handover quality, and never store a blank handover - #2

Open
Laolex wants to merge 2 commits into
mainfrom
fix/week1-debt
Open

Score handover quality, and never store a blank handover#2
Laolex wants to merge 2 commits into
mainfrom
fix/week1-debt

Conversation

@Laolex

@Laolex Laolex commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Two week-one debt items, plus the eval harness that makes the first one measurable.

Never store a blank handover

A cautious model is allowed to return empty fields, and it does. A handover whose "What happened" is empty is not a handover. The server now carries the family's own words across instead of storing a blank one — and records that it did, as an empty-field-fallback provider, so the eval still sees the model's failure rather than a repaired result masking it.

Typed notes never reach the model (deterministic-note), so the voice path is what needed covering.

Stop 404s naming a server path

A missing static file returned an error mentioning a real filesystem path. It now 404s without disclosing one.

Handover quality eval

npm run eval scores generated handovers against the sources they came from. This exists because "the model got better" was previously an unfalsifiable claim about the core of the product.

Verification

npm test — 20/20 pass.

Not merged yet, by request.

Laolex added 2 commits July 28, 2026 18:53
A cautious model is allowed to return empty fields, but a handover with an
empty "What happened" is not a handover. The human edit paths already reject
one; the model path did not, so 3 of the 8 drafts a live model has produced
were stored blank. A blank draft now carries the family own words across from
the source, and records `repaired` so the failure stays visible rather than
being papered over.

The error handler logged a full stack for every client-caused 404 — scanners
probing for WordPress plugin paths — and returned error.message to the caller,
which handed out the absolute server path. 4xx now logs one line, and errors
marked `expose: false` return a generic message.
Memreda claim is that a family can trust what they read, which is testable.
`npm run eval` opens the database read-only and scores every handover a live
model drafted: whether it left "What happened" blank, whether it asserts words
absent from the family own source, whether it dropped a follow-up the source
asked for, and whether it reads as medical advice.

Every check is deterministic string logic. No model grades another model, so a
run is reproducible, costs nothing, and works while the providers are down —
the same standard the product holds itself to. It exits non-zero on any
failure so it can gate a build.

Against the live database, across the 8 handovers a live model actually
drafted: nothing invented and nothing that reads as advice, and 3 blank
"What happened". Eight cases is too few to be stable and most are short test
recordings, so the README says so rather than quoting the rates as fact.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant