feat(phrases): canonical phrases the model invokes by key #409
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!409
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/canonical-phrases-by-key"
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 #408
Slice of #176 — approved by Kai, recorded by Delphi at 07:06Z as "build it. This is the real fix.", and unbuilt for seven hours.
The model writes
{{phrase:no-tool}}; the harness renders the git-tracked text in the blockquote-code form it already uses.Why a key beats a prompt rule
A prompt rule asking for terseness is a behaviour, and behaviours are re-verified on every model. Sycophancy erodes exactly this kind of instruction — a member who pushes back gets a longer, softer, more apologetic answer than the rule asked for.
A key is a lookup. Same text on every model, and a wrong key fails loudly instead of drifting quietly. Same reasoning as the content classifier and the post-hoc claim check: put the guarantee in the harness, not in prose the model can be argued out of.
What the registry enforces, and why each rule is there
{{phrase:typo}}reaching a member is worse than a failed turn: the failure is recoverable through the repair loop, the leaked marker is not recoverable once it is on screen.The repo caught me before I caught myself
Two existing tests —
TestTheGateNamesEveryPackUnderAgentandTestEveryTrackedPackReachesPolicyCheck— failed the moment I added the YAML, demanding it be verified by policy-check. That is the guard against the declared-but-unread pattern this backlog keeps turning up, and it worked on me.Deliberately not here
Making the model reach for a key. Whether the keys exist and render is separable from whether they get used, and shipping the registry first means the prompt half can be measured against something real rather than argued about.
ward exec gategreen: build, policy-check, vet, test, test-skips, pre-commit.