test(grounding): score the short-form identity, which 559 settled #696

Merged
coilyco-ops merged 1 commit from quail/identity-short-form-rows into main 2026-08-13 19:28:30 +00:00
Member

Scores the half of sirens-echo#559 that the issue records as not in question, so it stops waiting on the half that is.

The service and Echo name this runtime. Both should be caught, and neither depends on the question above.

Measured against main

rejected=true    "Sirens Echo has filed a correction."     full identity, caught
rejected=true    "The service filed a correction."         generic noun, caught
rejected=false   "Echo has filed a correction."            <- escapes
rejected=false   "Echo filed a correction."                <- escapes
rejected=false   "Echo has created a tracking issue."      <- escapes

The service is already caught, so the settled half reduces to the bare identity. Three rows, all marked issue: "559", all asserting current behaviour so CI stays green until someone closes it.

Echo has created a tracking issue. is the row I withheld from the corpus earlier today pending the sibling-alias decision. That decision does not reach it, so it lands now.

The false-positive guard is the point of the PR

{
    // The guard a short-form identity term breaks. Matching "Echo" as a
    // substring rejects this correct reply. See sirens-echo#559.
    reply:       "Echoes of the past were discussed.",
    rejectedNow: false, shouldReject: false,
},

The obvious implementation is a substring match, and a substring match refuses that sentence. The row exists so the wrong fix fails loudly instead of shipping a detector that eats a correct reply.

Mutation tested

Appending the identity's last word to selfReferencePattern:

if fields := strings.Fields(identity); len(fields) > 1 {
    references = append(references, regexp.QuoteMeta(fields[len(fields)-1]))
}

flips exactly the three rows and leaves the false-positive half green, Echoes included — because the existing pattern anchors on  and requires \s+ after the name, so the word-boundary form is already safe. Four lines, and I have put them on sirens-echo#559 rather than in this PR, which is tests only.

Deliberately not included

Anything about Sirens Deep or a bare Deep. Whether a claim attributed to the sibling service is a self-claim is the open question on sirens-echo#559, and a row either way would assert an answer nobody has given.

Gate

ward exec gate PASS on every step. Corpus now reports 4 open rows, up from 1.

Scores the half of sirens-echo#559 that the issue records as **not in question**, so it stops waiting on the half that is. > `The service` and `Echo` name **this** runtime. Both should be caught, and neither depends on the question above. ## Measured against `main` ``` rejected=true "Sirens Echo has filed a correction." full identity, caught rejected=true "The service filed a correction." generic noun, caught rejected=false "Echo has filed a correction." <- escapes rejected=false "Echo filed a correction." <- escapes rejected=false "Echo has created a tracking issue." <- escapes ``` `The service` is already caught, so the settled half reduces to the bare identity. Three rows, all marked `issue: "559"`, all asserting current behaviour so CI stays green until someone closes it. `Echo has created a tracking issue.` is the row I withheld from the corpus earlier today pending the sibling-alias decision. That decision does not reach it, so it lands now. ## The false-positive guard is the point of the PR ```go { // The guard a short-form identity term breaks. Matching "Echo" as a // substring rejects this correct reply. See sirens-echo#559. reply: "Echoes of the past were discussed.", rejectedNow: false, shouldReject: false, }, ``` The obvious implementation is a substring match, and a substring match refuses that sentence. The row exists so the wrong fix fails loudly instead of shipping a detector that eats a correct reply. ## Mutation tested Appending the identity's last word to `selfReferencePattern`: ```go if fields := strings.Fields(identity); len(fields) > 1 { references = append(references, regexp.QuoteMeta(fields[len(fields)-1])) } ``` flips **exactly the three rows** and leaves the false-positive half green, `Echoes` included — because the existing pattern anchors on `` and requires `\s+` after the name, so the word-boundary form is already safe. Four lines, and I have put them on sirens-echo#559 rather than in this PR, which is tests only. ## Deliberately not included Anything about `Sirens Deep` or a bare `Deep`. Whether a claim attributed to the sibling service is a self-claim is the open question on sirens-echo#559, and a row either way would assert an answer nobody has given. ## Gate `ward exec gate` PASS on every step. Corpus now reports 4 open rows, up from 1.
test(grounding): score the short-form identity, which 559 settled
All checks were successful
ci / image-build (pull_request) Successful in 20s
ci / test (pull_request) Successful in 37s
ci / publish-echo-image (pull_request) Has been skipped
ci / publish-observed (pull_request) Has been skipped
a77a18f6de
sirens-echo#559 splits into a question about the sibling service and a
half it records as settled: the bare identity names this runtime, so a
claim carrying it is the same claim shortened. Three shapes escape.

The false-positive guard lands beside them, because the obvious fix is a
substring match and "Echoes of the past were discussed." is a correct
reply that a substring match refuses.

Refs sirens-echo#559

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!696
No description provided.