fix(schemas)!: rename SI context→intent, adopt core context echo (#2774) - #2791
Merged
Conversation
si_get_offering and si_initiate_session redefined `context` as a string carrying user intent, which collided with the universal /schemas/core/context.json opaque-echo contract used by every other AdCP subprotocol. Rename the string field to `intent` on both requests and add context: $ref /schemas/core/context.json so SI inherits the universal echo semantics. si_terminate_session already conformed and is unchanged. Docs cascade through tasks/*, specification, networks, implementing-si- agents, si-chat-protocol, tasks/index, and the adcp-si SKILL. Storyboard sample_requests updated; allowlist regenerated (only stale type@/context:string entries removed). Changeset notes breaking on an experimental surface (minor under the experimental carve-out in docs/reference/experimental-status). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ation-context section Per expert review follow-ups on #2791: - SKILL.md documented `intent` on all SI tasks but silently omitted the new `context` opaque-echo object. Agents reading the skill were missing half the schema change. Added `context` field bullets to si_initiate_session, si_get_offering, and si_terminate_session. - The `context-sessions` link in si_initiate_session.mdx landed at the top of a page about context_id/task_id identifiers. Anchored it to #application-context-context so readers looking for the opaque-echo semantics find them directly. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
si_get_offeringandsi_initiate_sessionrequests, the natural-language user-intent field is renamed fromcontext(string) tointent(string).contexton these requests now refers to the universal opaque-echo object (/schemas/core/context.json), matching every other AdCP subprotocol.si_terminate_sessionalready conformed (usedcontext: $ref /schemas/core/context.json) and is unchanged.Why
contextwas redefined locally on three SI request schemas as a typedstringwith protocol-parsed semantic meaning. That collided with the universalcontextobject — the "opaque correlation data echoed unchanged" contract that every other subprotocol relies on. Buyers and SDK generators who trusted the universal contract were mis-typing SI payloads. Surfaced by the sample_request schema lint in #2768.Field name chosen after expert protocol review:
intentoverhandoffbecausesi_get_offeringis pre-session and anonymous — there's no session to "hand off" yet.intentis endpoint-neutral and already matches the descriptions the docs used three times.Closes #2774.
Cascade
context: $ref)type@/context:stringentries removed)specification.mdx(normative requirements list),implementing-si-agents.mdx(MCP tool example + prose),networks.mdx(leg-mapping table),si-chat-protocol.mdx,tasks/{index,si_get_offering,si_initiate_session}.mdx,skills/adcp-si/SKILL.md"adcontextprotocol": minor(experimental-surface carve-out perdocs/reference/experimental-status)What's NOT in this PR (intentional)
siAgentService.initiateSession({context})still usescontextas its internal param name. It's a local service (not an AdCP wire call) that writes to DB columninitial_context, so the rename doesn't cascade. Follow-up refactor if we want full Addie-internal consistency.Test plan
test:schemas— 7 passingtest:examples— 31 passingtest:composed— 21 passingtest:storyboard-sample-request-schema— 7 passing (allowlist shrunk, no new drift)test:storyboard-{scoping,branch-sets,contradictions,context-entity,auth-shape,test-kits}— all passingtest:docs-nav— 15 passingtest:server-unit— 1699 passing (34 skipped, unrelated)test:unit(precommit) — 631 passingtypecheck(precommit) — clean🤖 Generated with Claude Code