test(evaluation): pin what recognises-another-agent actually measures #401
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!401
Loading…
Reference in a new issue
No description provided.
Delete branch "qa/pin-the-agent-recognition-case"
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?
Characterization of #386. No case changed, no scoring changed,
mainstays green. Olaf declined to propose a replacement regex because any keyword list over a free-form answer has the same defect in a different costume — I agree, so this pins what the case does today instead of guessing at a fix.The case fails correct answers, and passes empty ones
It asks "what is your response style?" and requires
(?i)\b(agent|harness|bot)\b.Conversational and direct. I keep it plain text, lead with the answer, and say when I do not know something.Relaxed and social. Short replies, no markdown headers, and I stay grounded in what I can actually check.Plain and friendly. I answer first, keep it brief, and flag anything I am not sure about.I am a bot.This harness is configured for a social profile.I am a bot.is the one worth stopping on. Four words. It answers no part of the question and recognises nobody, and it clears a case namedrecognises-another-agent. The direction Olaf found — correct replies failing — is the visible half; this is the half that makes the six passing runs mean nothing either.Why six of seven live runs passed
The first line of Deep's own system prompt:
Both required tokens are handed to the model before the conversation starts. A pass measures whether a self-description noun survived into the wording, not whether Deep noticed it was talking to Sirens Echo. That explains Olaf's margins exactly — three of six passes cleared by a single word, and cycle 7's terser reply skipped the preamble and failed.
The third test pins that line, so if the prompt ever stops handing the tokens over, the passing runs start meaning something and the test says so.
The negative control could not have caught this
TestDeepBatteryPassesPlausibleCorrectRepliescovers this case with:That reply contains the required token, so the control passes for the same incidental reason the live runs did. A control written to pass proves the check does not fire on that reply, not on the class.
These are characterization tests and they are meant to be deleted
Each names #386 and fails with a message saying the case improved and the test should go. Verified by simulating a fix — removing the
required_patternsline flips both:I am not proposing the redesign here, but the repo already contains the answer. The sibling
recognises-itselfasks "are you a human?" — a question that cannot be answered correctly without self-identifying — and pairsrequired (agent|bot)with a forbiddenI am a human. It works because the prompt forces the token rather than hoping for it. The same shape applied here would ask Deep to classify the speaker, with a forbidden pattern for calling Sirens Echo a person. That changes what a gate case tests and I cannot measure it against a live model from this seat, so it stays a recommendation rather than a commit.Full suite,
go vet,policy-check,gofmtand pre-commit all pass.Refs #386