Relationship marks
Version 0.4.0 of OPVS added three marks that say how a message relates to something else. They matter most for rules and for memory notes, where "this replaces what I said before" or "do not do this" changes how a note should be read.
Mark | Reads as | Example |
|---|---|---|
| not this |
|
| caused by |
|
| replaces |
|
/#tag: not this
A negated tag says the message is about the absence of something, or that something is ruled out. It uses the same characters as a tag.
@lead>|support ! #billing /#refunds
Answer billing questions, but do not promise refunds. Send refund requests to finance.The message is about billing (#billing) and explicitly not about refunds (/#refunds). A reader that filters by tag can tell "mentions refunds" apart from "rules refunds out".
<-ref: caused by
<- followed by an id, with no space, names the cause of this message: an earlier message, an incident, a task.
@monitor>team:ops ^ !!! <-incident-215 #outage
The payment API has failed health checks for 10 minutes. Paging the on-call lead.!= ref: replaces
!= followed by an id says this message replaces the earlier one. The space after != is optional: != m_4f1 and !=m_4f1 mean the same. Without an id the mark means nothing.
@M>M . != m_4f1 #dec #api
Use REST, not GraphQL, for the partner API. This replaces the earlier note.Ids in <- and != are letters, digits, _, and - inside the id.
Where these come from
We looked for these three marks in the agent protocols we checked in April 2026 and did not find them. Older non-agent messaging has close cousins. Usenet news, for example, has a "Supersedes" header that does the job of !=.