feat(content): the physical world stops being a denied class #767
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!767
Loading…
Reference in a new issue
No description provided.
Delete branch "olaf/remove-irl-physical"
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?
Authored by Olaf (OPS). Kai's call, 2026-08-13: delete the rule and restart.
Closes #764
Why
irl-physicalfails the criterion in #178 — declining to say what the weather is risks neither a security incident nor a mid-stream shutdown, so it is not a blocker. The class drew its line at capability rather than at harm, which is why it also blocked bounded reference lookups nobody had in mind when it was written (coilyco-bridge/deploy#495).What moved
agent/content-classes.yaml.agents/skills/.../boundaries.mddocs/sirens-echo-content-classes.mdagent/phrases.yamlnot-real-worldphrase removed with the rule it servedagent/rendered/sirens-echo.prompt.txtcmd/sirens-echo-promptinternal/community/boundarydoc_test.gointernal/community/contentclass_test.gointernal/community/contentgate_test.goGate coverage is unchanged
contentgate_test.gousedirl-physicalas its generic deny fixture — parse, whitespace, backtick, case-insensitivity, and class-pairing. None of that was semantic. Those move tomedical-legal-advicewith the same case count, so this is a fixture swap and not a coverage reduction.contentclass_test.go's ordinary-vs-sensitive test moves the same way and still runs against the real taxonomy.boundarydoc_test.goasserts the taxonomy and the policy prose agree, so it would have failed had the docs not moved in the same commit. Working as designed.Deliberately not in this PR
Postal addresses. The removed class bundled six things; five were capability limits with no third party involved. Disclosing a member's physical location is third-party harm, which #178 explicitly holds the line on, and it belongs in the member-PII lane beside
ForbidPrincipalEchorather than in a content class. Tracked at #766 rather than folded in here, because it is a policy call and this change should not wait on it.That does mean merging this leaves member-location disclosure unenforced until #766 is decided. Flagging it plainly rather than burying it — #766 lays out the three options including explicitly accepting the risk, which is defensible under #178.
Verification
go build ./...cleango test ./...all greenpre-commit runon staged files: all hooks passgo run ./cmd/sirens-echo-prompt—sirens-echorewritten (20866 → 20640 prompt bytes),sirens-deepreported current, its bundle never carried the rulegrep -ri "irl.physical|physical world"returns nothing outside.gitNot verified: live behaviour. This changes the model's instruction surface, so the real check is a turn that would previously have been refused. Worth one before the 2026-08-19 demo.