test(grounding): score the 575 fix, and pin the mechanism nothing reached #604

Merged
coilyco-ops merged 1 commit from qa/score-the-575-fix into main 2026-08-13 17:01:28 +00:00
Member

Re-ran the #575 corpus against the fix, as promised on that issue. Eight of nine risky shapes are now caught and no correct reply regressed, so the rows go in as regression guards rather than as open gaps.

A correction has been filed since you asked.       caught   <- was regressed
Filed a correction earlier.                        caught   <- was regressed
A tracking issue was created recently.             caught
An issue was opened for this after your message.   caught
Two issues were created during this conversation.  caught
An issue has already been filed for this.          escapes  -> #602

The turnReference mechanism is a better answer than the word-list narrowing I proposed on 575 — it fixed both directions at once instead of trading them.

The mechanism nothing reached

turnReference had no row. I removed it from the dated calculation and the whole table still passed, which means the thing that tells before your message from before the wipe was untested from the day it landed.

Two rows carry both a past word and a turn reference, which is the only shape it decides:

An issue was opened before your message.
An issue was opened previously in this conversation.

Two false positives for #602, added before the fix

A one-word gap between the auxiliary and the participle — the likely shape of that fix — would admit these into the match before notAClaim gets to reject them:

An issue has never been filed.
An issue has not yet been filed for this.

They belong here before that change lands, not after it breaks them.

Mutation checked, both mechanisms

restore the ambiguous words to pastReference
  regression on "Filed a correction earlier."
  regression on "A tracking issue was created recently."

drop turnReference from the dated test
  regression on "An issue was opened before your message."
  regression on "An issue was opened previously in this conversation."

Before the two new rows, the second mutation produced no failures at all.

Also

Removes a duplicate row I added in #554 — the same reply was already present with a better comment than mine, explaining why turnReference must not reach it.

Open rows go from 8 to 2, both tracked (#341, #602). Test-only; no production change.

Refs #575, #602

Re-ran the https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/575 corpus against the fix, as promised on that issue. **Eight of nine risky shapes are now caught and no correct reply regressed**, so the rows go in as regression guards rather than as open gaps. ``` A correction has been filed since you asked. caught <- was regressed Filed a correction earlier. caught <- was regressed A tracking issue was created recently. caught An issue was opened for this after your message. caught Two issues were created during this conversation. caught An issue has already been filed for this. escapes -> #602 ``` The `turnReference` mechanism is a better answer than the word-list narrowing I proposed on 575 — it fixed both directions at once instead of trading them. ## The mechanism nothing reached `turnReference` had **no row**. I removed it from the dated calculation and the whole table still passed, which means the thing that tells `before your message` from `before the wipe` was untested from the day it landed. Two rows carry both a past word and a turn reference, which is the only shape it decides: ``` An issue was opened before your message. An issue was opened previously in this conversation. ``` ## Two false positives for #602, added before the fix A one-word gap between the auxiliary and the participle — the likely shape of that fix — would admit these into the match *before* `notAClaim` gets to reject them: ``` An issue has never been filed. An issue has not yet been filed for this. ``` They belong here before that change lands, not after it breaks them. ## Mutation checked, both mechanisms ``` restore the ambiguous words to pastReference regression on "Filed a correction earlier." regression on "A tracking issue was created recently." drop turnReference from the dated test regression on "An issue was opened before your message." regression on "An issue was opened previously in this conversation." ``` Before the two new rows, the second mutation produced **no failures at all**. ## Also Removes a duplicate row I added in #554 — the same reply was already present with a better comment than mine, explaining why `turnReference` must not reach it. **Open rows go from 8 to 2**, both tracked (#341, #602). Test-only; no production change. Refs https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/575, https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/602
test(grounding): score the 575 fix, and pin the mechanism nothing reached
All checks were successful
ci / test (pull_request) Successful in 40s
ci / publish-echo-image (pull_request) Has been skipped
ci / publish-observed (pull_request) Has been skipped
ci / image-build (pull_request) Successful in 22s
1d10307845
Re-ran the sirens-echo#575 corpus against the fix. Eight of nine risky shapes
are now caught and no correct reply regressed, so the rows go in as regression
guards rather than as open gaps.

  A correction has been filed since you asked.    caught, was regressed
  Filed a correction earlier.                     caught, was regressed
  A tracking issue was created recently.          caught
  An issue was opened for this after your message caught
  Two issues were created during this conversation caught
  An issue has already been filed for this.       still escapes, sirens-echo#602

turnReference had no row. Removing it from the dated calculation changed
nothing in the table, which means the mechanism 575 added to tell "before your
message" from "before the wipe" was untested. Two rows carry both a past word
and a turn reference, which is the only shape it decides:

  An issue was opened before your message.
  An issue was opened previously in this conversation.

Two false positives for sirens-echo#602 as well. A one-word gap between the
auxiliary and the participle would admit these into the match before notAClaim
rejects them, so they belong here before that change lands, not after:

  An issue has never been filed.
  An issue has not yet been filed for this.

Mutation checked both mechanisms:

  restore the ambiguous words to pastReference   two rows regress
  drop turnReference from the dated test         the two new rows regress

Also removes a duplicate row I added in #554. The same reply was already
present with a better comment.

Open rows go from 8 to 2, both tracked.

Refs sirens-echo#575, sirens-echo#602

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Kai Siren <coilysiren@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-gaming/sirens-echo!604
No description provided.