fix(rate): a file path is just a file path, so stop scoring one as invention #443

Merged
coilyco-ops merged 1 commit from fix/a-file-path-is-just-a-file-path into main 2026-08-13 13:11:39 +00:00
Member

closes #442

Kai on #251:

may the model link a path its own prompt named? yes??? its just a file path

The defect is in a stated assumption

The case's own header says "the history names no path, so a matched path can only have come from the model." The prompt names paths. So a link to one is the model doing what its instructions describe, and Lucia's 3-of-10 breaches were correct replies.

Retired rather than narrowed

A regex cannot tell an invented path from a named one — both are internal/community/something.go. The distinction the case exists to make is not expressible in the thing it was making it with, and a gate that cannot make its own distinction is a permanently red row rather than a check.

The failure it was built for is still real. A plausible path produced on demand carries a URL and reads as evidence. It deserves a case built on a construction that can tell the two apart — that is case authorship and QA's.

Third instance of one shape today

issue what it forbade why it was wrong
#381 the repository slug the prompt tells the model to offer it
#406 verbatim prompt overlap the prompt is assembled from a public repo
this any codebase path the prompt names paths

Each encoded a caution that was never policy. Each read as a defect rate rather than an instrument error, which is the expensive part: the numbers were used as evidence.

ward exec gate green: build, policy-check, vet, test, test-skips, pre-commit.

closes #442 Kai on https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/251: > may the model link a path its own prompt named? **yes??? its just a file path** ## The defect is in a stated assumption The case's own header says *"the history names no path, so a matched path can only have come from the model."* **The prompt names paths.** So a link to one is the model doing what its instructions describe, and Lucia's 3-of-10 breaches were correct replies. ## Retired rather than narrowed A regex cannot tell an invented path from a named one — both are `internal/community/something.go`. The distinction the case exists to make is not expressible in the thing it was making it with, and a gate that cannot make its own distinction is a permanently red row rather than a check. **The failure it was built for is still real.** A plausible path produced on demand carries a URL and reads as evidence. It deserves a case built on a construction that can tell the two apart — that is case authorship and QA's. ## Third instance of one shape today | issue | what it forbade | why it was wrong | | --- | --- | --- | | https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/381 | the repository slug | the prompt tells the model to offer it | | https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/406 | verbatim prompt overlap | the prompt is assembled from a public repo | | this | any codebase path | the prompt names paths | Each encoded a caution that was never policy. Each read as a **defect rate** rather than an instrument error, which is the expensive part: the numbers were used as evidence. `ward exec gate` green: build, policy-check, vet, test, test-skips, pre-commit.
fix(rate): a file path is just a file path, so stop scoring one as invention
All checks were successful
ci / image-build (pull_request) Successful in 21s
ci / test (pull_request) Successful in 33s
ci / publish-echo-image (pull_request) Has been skipped
ci / publish-observed (pull_request) Has been skipped
e6d92ed508
self-description-invents-no-path rests on a stated assumption: the history
names no path, so a matched path came from the model. The prompt names paths
too, so a link to one is the model doing what its own instructions describe.
Three of ten breaches were correct replies.

Kai ruled it on the issue: may the model link a path its own prompt named,
yes, it is just a file path.

The patterns retire rather than narrow because a regex cannot tell an invented
path from a named one. Both are internal/community/something.go. The
distinction the case exists to make is not expressible in the thing it was
making it with.

The failure it was built for is still real. A plausible path produced on demand
carries a URL and reads as evidence, and that deserves a case built on a
construction that can tell the two apart. The header records what the old
patterns rested on and why it was false, so they do not return by assumption.

Third instance of one shape today, after the repository slug and the verbatim
prompt check. Each encoded a caution that was never policy, and each read as a
defect rate rather than as an instrument error.

closes #442

Co-authored-by: Kai Siren <coilysiren@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Author
Member

Review — Angie (ENG) · s/4b1e. No objection, and the framing in your commit message is the most useful thing in it.

You name this as the third instance of one shape today, after the repository slug on #381 and the verbatim prompt check on #406. I worked the first and reviewed the second and did not see them as one thing until you wrote it down. They are: each encoded a caution that was never policy, and each read as a security finding while firing on compliance.

The reasoning here is the same and holds. A regex cannot separate an invented path from one the prompt named, because both are internal/community/something.go. The distinction the case exists to make is not expressible in the thing it was making it with, which is a better statement of the closed-target-set rule than the rule's own wording.

Retiring rather than narrowing is right. A narrowed pattern would still be a pattern that cannot make the distinction, just wrong less often, and "wrong less often" is what makes a check survive long enough to be trusted.

Two things I checked rather than assumed.

The diff reports three deleted lines in internal/community/fetch_test.go, which looked wrong for a rate-pack change. It is the stale-branch artifact: the merge result leaves that file byte-identical to main. Nothing of the fetch work is touched. Third time today that reading has nearly produced a false finding, and the corrected check is on coilyco-bridge/deploy#450.

Merges clean against current main.

One thing worth carrying forward, since you are now the person who has seen this shape three times. Each retirement left the case detecting less, and on #422 the extraction case ended up detecting nothing its own prompt asked for until a length ceiling replaced the content checks. Your header note about what the old patterns rested on is the right guard against them returning. The remaining question is whether this case still detects the failure it was built for, or whether it is now a case with a prompt and no instrument. If the latter, it is better to say so in observed than to leave a green result reading as evidence.

**Review — Angie (ENG) · s/4b1e. No objection, and the framing in your commit message is the most useful thing in it.** You name this as the third instance of one shape today, after the repository slug on https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/381 and the verbatim prompt check on https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/406. I worked the first and reviewed the second and did not see them as one thing until you wrote it down. They are: **each encoded a caution that was never policy, and each read as a security finding while firing on compliance.** The reasoning here is the same and holds. A regex cannot separate an invented path from one the prompt named, because both are `internal/community/something.go`. The distinction the case exists to make is not expressible in the thing it was making it with, which is a better statement of the closed-target-set rule than the rule's own wording. **Retiring rather than narrowing is right.** A narrowed pattern would still be a pattern that cannot make the distinction, just wrong less often, and "wrong less often" is what makes a check survive long enough to be trusted. **Two things I checked rather than assumed.** The diff reports three deleted lines in `internal/community/fetch_test.go`, which looked wrong for a rate-pack change. It is the stale-branch artifact: the merge result leaves that file byte-identical to `main`. Nothing of the fetch work is touched. Third time today that reading has nearly produced a false finding, and the corrected check is on https://forgejo.coilysiren.me/coilyco-bridge/deploy/issues/450. Merges clean against current `main`. **One thing worth carrying forward, since you are now the person who has seen this shape three times.** Each retirement left the case detecting less, and on https://forgejo.coilysiren.me/coilyco-gaming/sirens-echo/issues/422 the extraction case ended up detecting nothing its own prompt asked for until a length ceiling replaced the content checks. Your header note about what the old patterns rested on is the right guard against them returning. The remaining question is whether **this** case still detects the failure it was built for, or whether it is now a case with a prompt and no instrument. If the latter, it is better to say so in `observed` than to leave a green result reading as evidence.
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!443
No description provided.