The open schema

A relay is one JSON document, relay.context-package.v1. It carries what you’re sharing, why, with whom, and the rules for how their agent may speak for you. The product is Relay’s; the format is open, so anyone can see exactly what is shared and how it may be used.

Your words stay yours

Your intent is quoted, never paraphrased. The model’s reading sits in its own block, and you confirm it.

Every value says where it came from

Stated by you, inferred by a model, or taken from a named source. Nothing unmarked.

Rules travel with the context

The recipient’s agent loads the mandate before the content: what it may say, what it must ask you, what it must never do.

Who is it for, and why?

The owner, the one audience it’s written for, and what the owner wants to happen, in their own words.

owner

The person whose context this is. Only they can approve it.

  • namerequired
  • id
  • contact

    How the audience reaches the human, not the agent.

audience

One named recipient (a person, a team or an app), with what they already know and what they care about, so their agent pitches it right.

  • namerequired
  • kind

    Who receives it. An app (an integration) receives through its own agent, under the same grant, mandate, and receipts as a person.

    personteamapp
  • email

    Confirmed by the owner before sharing. Grants are issued to this identity.

  • relationshiprequired

    e.g. co-founder, investor, hiring manager, client

  • role
  • organization
  • knowsAlready[ ]

    Shared ground the agent can assume. Prevents over-explaining and wrong framing.

  • caresAbout[ ]

    The owner's model of what matters to them.

  • likelyQuestions[ ]
  • register

    Tone and level, e.g. 'direct, technical, skip the pitch'

  • access

    named (default) = only the person at audience.email can accept. anyone = anyone with the link can read after signing in; each reader gets their own access, and every read has their name. audience.email is not used.

    namedanyone

intent

What the owner wants to happen. statement is kept verbatim; the outcome, the ask and the priorities sit next to it.

  • statementrequired

    The owner's own words, unedited.

  • outcomerequired
    3 fields inside
    • textrequired
    • provenancerequired

      stated = the owner's words. confirmed = drafted by an agent, accepted unchanged by the owner. corrected = drafted by an agent, changed by the owner. inferred = the agent's reading, not reviewed. sourced = taken from a named source. derived = computed by the system.

      statedconfirmedcorrectedinferredsourcedderived
    • agentReading

      When corrected: what the agent first proposed. Kept so drift between model and owner is visible.

  • successLooksLike[ ]
    3 fields inside
    • textrequired
    • provenancerequired

      stated = the owner's words. confirmed = drafted by an agent, accepted unchanged by the owner. corrected = drafted by an agent, changed by the owner. inferred = the agent's reading, not reviewed. sourced = taken from a named source. derived = computed by the system.

      statedconfirmedcorrectedinferredsourcedderived
    • agentReading

      When corrected: what the agent first proposed. Kept so drift between model and owner is visible.

  • askrequired
    3 fields inside
    • typerequired
      decideagreereviewevaluateadviseexploreactinform
    • detailrequired
    • byWhen
  • whyNow
    3 fields inside
    • textrequired
    • provenancerequired

      stated = the owner's words. confirmed = drafted by an agent, accepted unchanged by the owner. corrected = drafted by an agent, changed by the owner. inferred = the agent's reading, not reviewed. sourced = taken from a named source. derived = computed by the system.

      statedconfirmedcorrectedinferredsourcedderived
    • agentReading

      When corrected: what the agent first proposed. Kept so drift between model and owner is visible.

  • whyThisAudience
    3 fields inside
    • textrequired
    • provenancerequired

      stated = the owner's words. confirmed = drafted by an agent, accepted unchanged by the owner. corrected = drafted by an agent, changed by the owner. inferred = the agent's reading, not reviewed. sourced = taken from a named source. derived = computed by the system.

      statedconfirmedcorrectedinferredsourcedderived
    • agentReading

      When corrected: what the agent first proposed. Kept so drift between model and owner is visible.

  • interests[ ]

    What the owner actually needs underneath the ask (interests, not positions). This is what lets their agent find options the owner did not list.

    3 fields inside
    • textrequired
    • provenancerequired

      stated = the owner's words. confirmed = drafted by an agent, accepted unchanged by the owner. corrected = drafted by an agent, changed by the owner. inferred = the agent's reading, not reviewed. sourced = taken from a named source. derived = computed by the system.

      statedconfirmedcorrectedinferredsourcedderived
    • agentReading

      When corrected: what the agent first proposed. Kept so drift between model and owner is visible.

  • priorities[ ]

    Ordered. The first one wins a conflict.

    3 fields inside
    • textrequired
    • provenancerequired

      stated = the owner's words. confirmed = drafted by an agent, accepted unchanged by the owner. corrected = drafted by an agent, changed by the owner. inferred = the agent's reading, not reviewed. sourced = taken from a named source. derived = computed by the system.

      statedconfirmedcorrectedinferredsourcedderived
    • agentReading

      When corrected: what the agent first proposed. Kept so drift between model and owner is visible.

  • nonGoals[ ]

    What this is explicitly not about. Stops scope creep in the conversation.

    3 fields inside
    • textrequired
    • provenancerequired

      stated = the owner's words. confirmed = drafted by an agent, accepted unchanged by the owner. corrected = drafted by an agent, changed by the owner. inferred = the agent's reading, not reviewed. sourced = taken from a named source. derived = computed by the system.

      statedconfirmedcorrectedinferredsourcedderived
    • agentReading

      When corrected: what the agent first proposed. Kept so drift between model and owner is visible.

What did the agent read into it?

The model’s interpretation, kept apart from what the owner said, and reviewed by the owner before anything is shared.

interpretation

The restatement the owner confirms or corrects, each inference with its basis and the owner’s verdict, and the ambiguities the owner chose to leave open.

  • restatementrequired

    'Here is what I think you want', written by the agent and shown to the owner before anything else.

  • restatementVerdict
    confirmedcorrectedrejectedunreviewed
  • inferences[ ]required
    6 fields inside
    • idrequired
    • readingrequired

      What the agent concluded.

    • basisrequired

      Why: which words, sources, or patterns.

    • confidence
      highmediumlow
    • verdictrequired
      confirmedcorrectedrejectedunreviewed
    • correction

      The owner's version, when the verdict is corrected.

  • clarifications[ ]

    Questions the agent asked the owner while drafting, with the owner's answers.

    2 fields inside
    • questionrequired
    • answerrequired
  • openAmbiguities[ ]

    What the owner chose to leave open. The recipient agent must not resolve these on its own.

  • reviewedIn

    Where the owner confirmed the restatement and inferences: in the conversation with their own agent, or on Relay's review page. When 'chat', the review page doesn't ask again; approving is still the owner's click.

    chatreview

What is being shared?

The context itself, and, at deeper levels, how the owner thinks about it.

context

Sections of readable prose, each broken into claims an agent can cite. Only topics the owner named as off-limits are listed as excluded.

  • subjectrequired

    The subject in the owner's context store. Sections are stored once and shared by reference.

  • sections[ ]required
    8 fields inside
    • idrequired

      Store item id. The same id across every relay that includes it.

    • titlerequired
    • purpose

      Why this section is in this relay: how it serves the intent.

    • bodyrequired

      Readable prose for humans.

    • claims[ ]

      The atomic statements in the prose, so agents can cite and check them.

    • versionrequired
    • updatedAt
    • visibility

      shareable = the recipient may pass it on. recipient-only = for them alone.

      shareablerecipient-only
  • excluded[ ]

    Only topics the owner explicitly named as off-limits, so their agent knows a gap is intentional. Agents never populate this on their own or list what they left out.

    2 fields inside
    • topicrequired
    • reasonrequired

reasoning

optional

Decisions and what would reopen them, variables and how far they can move, assumptions, evidence, risks, the strongest case against, and unknowns.

  • decisions[ ]
    12 fields inside
    • idrequired
    • questionrequired
    • statusrequired
      decidedleaningopendelegateddeferred
    • decider
      owneraudiencejointother
    • byWhen
    • options[ ]
    • choice
    • rationale
    • criteria[ ]
    • tradeoffsAccepted[ ]
    • reversibility
      reversiblecostlyirreversible
    • whatWouldChangeIt[ ]

      New facts that would reopen the decision. The most useful thing to give a recipient agent.

  • variables[ ]

    The parameters in play and how much they can move.

    7 fields inside
    • namerequired
    • value
    • acceptable

      Range or condition the owner can live with.

    • gaterequired

      hard = non-negotiable; elastic = can move with a reason or a trade; soft = a preference.

      hardelasticsoft
    • tradesAgainst[ ]
    • provenance

      stated = the owner's words. confirmed = drafted by an agent, accepted unchanged by the owner. corrected = drafted by an agent, changed by the owner. inferred = the agent's reading, not reviewed. sourced = taken from a named source. derived = computed by the system.

      statedconfirmedcorrectedinferredsourcedderived
    • visibility

      shareable = the recipient may pass it on. recipient-only = for them alone.

      shareablerecipient-only
  • assumptions[ ]
    6 fields inside
    • statementrequired
    • confidencerequired
      highmediumlow
    • basis
    • ifWrong
    • howToTest
    • provenance

      stated = the owner's words. confirmed = drafted by an agent, accepted unchanged by the owner. corrected = drafted by an agent, changed by the owner. inferred = the agent's reading, not reviewed. sourced = taken from a named source. derived = computed by the system.

      statedconfirmedcorrectedinferredsourcedderived
  • evidence[ ]
    4 fields inside
    • supportsrequired

      Claim or decision id.

    • kindrequired
      documentdataexperiencethird-partyobservationconversation
    • pointer
    • strengthrequired
      strongmoderateweak
  • risks[ ]
    4 fields inside
    • riskrequired
    • likelihood
      lowmediumhigh
    • impact
      lowmediumhigh
    • mitigation
  • counterarguments[ ]

    The strongest case against the owner's position, with the owner's response. Lets the recipient agent engage critically without inventing the owner's reply.

    2 fields inside
    • argumentrequired
    • ownerResponse
  • unknowns[ ]
    3 fields inside
    • questionrequired
    • whyItMatters
    • whoCanAnswer

judgement

optional

The owner’s own principles, preferences and red lines, so their agent can reason the way the owner would.

  • principles[ ]
    2 fields inside
    • principlerequired
    • example
  • preferences[ ]
    3 fields inside
    • preferrequired
    • overrequired
    • when
  • redLines[ ]
  • confidence

    How sure the owner is overall, in their words.

process

optional

How the package was produced, which sources were consulted with consent, who decides from here, and next steps.

  • howProduced[ ]
    2 fields inside
    • steprequired
    • byrequired
      owneragentaudience
  • sourcesConsulted[ ]
    4 fields inside
    • namerequired
    • kindrequired
      conversationdocumentconnectormemoryweb
    • consent
      grantednot-needed
    • scope
  • decisionProcess

    From here on: who decides what, by when, and how disagreement is resolved.

  • nextSteps[ ]
    3 fields inside
    • steprequired
    • owner
    • due

How may their agent speak for you?

The mandate the recipient’s agent loads first: its role, how it opens, what it must never do, and where unanswered questions go.

representation

The rules. Read before the content, every time.

  • rolerequired

    explain = answer from the package; explore = also help the recipient think it through; advise-recipient = may give the recipient its own view, labelled; negotiate-within-bounds = may agree to changes inside elastic and soft variables only.

    explainexploreadvise-recipientnegotiate-within-bounds
  • opening

    How the recipient's agent starts. It takes the package in silently (no summary, no echo) and opens with this greeting and these starting points, then follows the recipient's lead.

    2 fields inside
    • greetingrequired

      One or two sentences: whose context this is, what it's about, what it's for.

    • starters[ ]required

      Starting points drawn from the ask. Always offered alongside 'or something else'.

  • speaksAs

    e.g. 'I'm answering from the context Saurabh shared with you, version 3.'

  • fidelityrequired
    4 fields inside
    • quoteStatedIntentrequired

      Quote intent.statement verbatim instead of paraphrasing it.

    • labelInterpretationsrequired

      Say 'the owner's agent read this as…' for anything with provenance inferred.

    • citeSectionsrequired
    • extrapolationrequired

      Whether the agent may reason past the package using judgement.principles, and if so, whether it must say so.

      neverlabelledfree
  • may[ ]
  • mustAskOwner[ ]required

    Topics that are routed back to the owner as a question, never answered.

  • mustNot[ ]required
  • whenUnknownrequired

    say-unspecified-and-route = tell the recipient and send the question to the owner through the return channel.

    say-unspecified-and-routesay-unspecified
  • passOn

    What the recipient may forward. Shareable items only; recipient-only items stay with them.

  • fidelityChecks[ ]

    Questions the audience is likely to ask, with the answer the owner approved during review. The recipient agent uses them as calibration examples, and they double as a regression test for faithful representation.

    3 fields inside
    • questionrequired
    • approvedAnswerrequired
    • ownerEdited

interaction

Whether the recipient can only read, suggest changes, or rewrite sections, and where their questions go.

  • permissionrequired
    readsuggestedit
  • returnChannel

    Where questions and proposals go. Each targets a section id.

  • expectedResponse

    What the owner hopes to get back, and by when.

lifecycle

Live (they see each approved update) or snapshot (frozen at what they accepted), plus expiry and revocation.

  • moderequired
    livesnapshot
  • expiresAt
  • refresh
    manual24h7d30d
  • staleSections[ ]
  • grantId
  • revocationUrl

Ideas that run through every block

Provenance

Every value carries one of six labels. The recipient’s agent quotes what’s stated, and says “their agent read this as…” for anything inferred. Highlighted: the labels that mean the owner saw it.

stated
the owner's words
confirmed
drafted by an agent, accepted unchanged by the owner
corrected
drafted by an agent, changed by the owner
inferred
the agent's reading, not reviewed
sourced
taken from a named source
derived
computed by the system

Depth

How much was captured. Each level adds to the one before.

  1. briefIntent and context
  2. workingAdds decisions, variables and assumptions
  3. fullAdds judgement, counterarguments, process and rehearsed answers

Gates on variables

How far each parameter can move in a conversation.

hard
non-negotiable
elastic
can move with a reason or a trade
soft
a preference

Their agent’s role

From answering only, to agreeing to changes inside the bounds you set.

explain
answer from the package
explore
also help the recipient think it through
advise-recipient
may give the recipient its own view, labelled
negotiate-within-bounds
may agree to changes inside elastic and soft variables only

Visibility

Per section or claim.

shareable
the recipient may pass it on
recipient-only
for them alone