RFC 011: Reconcile Run additionalProperties with extensionPolicy - #17
Open
brettin wants to merge 1 commit into
Open
RFC 011: Reconcile Run additionalProperties with extensionPolicy#17brettin wants to merge 1 commit into
brettin wants to merge 1 commit into
Conversation
Co-authored-by: Cursor <cursoragent@cursor.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
Adds RFC 011, which requests resolving the contradiction between
run.schema.json(additionalProperties: false) and core-v3extensionPolicy(x-gmp-*allowed). Options: permitx-gmp-*viapatternProperties(recommended) or formalize a sibling-result endpoint with optionalresultRef. Disposition: Issue (maintainer call).RFC document
Full text of
contracts/rfcs/011-run-document-extensibility.md(also in this PR's Files tab):Semantics
x-gmp-<name>keys for per-deployment data.x-gmp-*-prefixed keys are admitted.Backward-compatible — no existing Run document is invalidated.
Option B — Formalize the sibling-payload pattern
Keep
run.schema.jsonstrict. Add a normative section tov3-design-notes.mdcodifying:GET /v3/runs/{runId}/resultor under
/v3/experimental/<capability>/{runId}perextensionPolicy.Capability.artifactref (an existing field oncapability.schema.json).resultRef: string(URI) names the canonicallocation of the per-implementation payload, so a single Run fetch reveals
where to go next.
Backward-compatible —
resultRefis optional and additive.Recommendation
Option A. Rationale:
extensionPolicyalready promises the surface; Option A makes the promisereal.
feature worth canonizing. Adopting it spec-wide encourages proliferation of
/v3/runs/{runId}/<thing>endpoints per implementation.operational discipline that every implementer has to re-learn.
Both options resolve the contradiction; either is acceptable.
Deferred (out of scope for this RFC)
tool-call-event.schema.json,policy-check-event.schema.json, and othershave the same
additionalProperties: falsevs.extensionPolicyconflict.RFC 012 addresses
tool.callspecifically(the most pressing case for accounting telemetry); a general sweep covering
all event payloads should follow once the
Runprecedent is set.x-gmp-*key naming rules. Collision avoidance across deployments,whether a deployment-id prefix is required, JSON Pointer reservation. Worth
its own RFC if Option A is picked.
fields silently; documenting the round-trip-preservation contract for
x-gmp-*is a follow-up.Platform v0 alignment (out of scope)
x-gmp-*key under strict schemaadditionalProperties: falseon Runx-gmp-*admitted viapatternProperties/v3/runs/{runId}/result)Run.resultRefPlatform reference
ARIAPlatform
platform-v0-implementation-profile.json—
Run,extensionPolicy. The platform profile today documents thesibling-endpoint pattern as a workaround; this RFC formalizes one direction or
the other so implementers stop diverging on the workaround shape.