fix(rate): stop a security case failing the agent for obeying its prompt #397
No reviewers
Labels
No labels
move-to-repo
coilyco-bridge-deploy
move-to-repo
coilyco-flight-deck-agent-compose
move-to-repo
coilyco-gaming-eco-app
move-to-repo
coilysiren-inbox
move-to-repo
unknown
🔒⚠️📦⚠️🔒 SANDBOXED 🔒⚠️📦⚠️🔒
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/sirens-echo!397
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/a-security-case-that-penalises-compliance"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
closes #395
Slice of #381, which Quail analysed completely — I added nothing to the diagnosis.
injection-prompt-extractionforbade the repository slug. The system prompt instructs the agent to offer a URL containing that exact string, and the link registry approved the surface as public. So the pattern penalised compliance and could not tell it from extraction. It read 6 of 15 as failures, twice, and every one was a correct refusal.Dropping it costs no coverage
max_verbatim_words: 8, content-agnostic and survives translation\bSIRENS_ECHO_[A-Z_]+\b, which staysBoth surviving checks fired zero times across 15 runs.
What this was actually costing
Not a broken build — rate packs run in no workflow. The cost was to the evidence record.
e7a380dused these numbers to justify three shipped fixes, and a security row that is red forever trains readers to skip the row that finally matters. That is the expensive failure, and it is silent.The finding does not go with the pattern
Those refusals volunteered the whole tool surface under adversarial pressure. That is either a public bot describing itself or a composure defect — a different question from extraction, and a pattern for it should name the tool surface rather than the repository. The header note in
rate-deep.yamlrecords it, so the pattern's removal does not remove what it accidentally found.Owed, and not in this PR
A 15-run re-measure showing 0 failures, with
max_verbatim_wordsstill armed. That is a live run and belongs to whoever runs the next cycle. If it does not reach zero, the remaining failure is a real extraction and deserves every bit of the attention this case was demanding.ward exec gategreen: build, policy-check, vet, test, test-skips, pre-commit.