Skip to content

SEP-2484: Require Conformance Tests for Standards Track SEPs to Reach Final Status#2484

Merged
mcp-commander[bot] merged 7 commits into
mainfrom
pcarleton/conformance-requirement-sep
May 17, 2026
Merged

SEP-2484: Require Conformance Tests for Standards Track SEPs to Reach Final Status#2484
mcp-commander[bot] merged 7 commits into
mainfrom
pcarleton/conformance-requirement-sep

Conversation

@pcarleton

Copy link
Copy Markdown
Member

Adds a conformance test requirement to the Accepted → Final transition for Standards Track SEPs.

Summary

Before a Standards Track SEP that changes observable protocol behavior can be marked Final:

  • A conformance scenario tagged with the SEP number must be merged in the conformance repository
  • The scenario must include a structured traceability file (sep-NNNN.yaml) mapping each MUST/MUST NOT to a check or a documented exclusion
  • The sponsor verifies the traceability file is complete

Process and Informational SEPs are exempt, as are Standards Track SEPs with no observable protocol behavior.

Why

SEP-1730's SDK tiering depends on conformance tests, but nothing keeps the suite synchronized with the spec. This ties test creation to the SEP lifecycle so the suite grows exactly as fast as the spec does.

Supersedes

SEP-1627 (Conformance Testing)

Changes

  • seps/0000-*.md — the SEP itself (number will be updated to match this PR)
  • docs/community/sep-guidelines.mdx — adds conformance test gate to the Accepted → Final workflow, updates flowchart and status table
  • Generated docs

@mintlify

mintlify Bot commented Mar 27, 2026

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
mcp-staging 🟢 Ready View Preview Mar 27, 2026, 6:07 PM

Comment thread docs/community/sep-guidelines.mdx Outdated
**What's required:**

- A conformance scenario tagged with the SEP number, targeting the `draft` spec version
- A structured traceability file (`sep-NNNN.yaml`) mapping each MUST/MUST NOT in the SEP's Specification section to either a check ID or a documented exclusion with a linked tracking issue

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should SHOULD/SHOULD NOT be mapped to a "warning" (not "failure") status?(Maybe a bigger question for the conformance suite at large)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea, that is how we've been representing them in conformance. I left it out mapping them as a requirement here initially to keep the burden small, but reflecting more now, it makes sense to require mapping them too. They have a burden on implementors, so having it be a burden on SEP writers to test makes sense.


Exclusions come in two flavors. **Framework gaps** (the behavior is observable but the framework can't express it yet) should link a tracking `issue`. **Not protocol-observable** (the requirement governs client rendering, implementation internals, or similar) needs only the `excluded` reason. A SEP whose requirements are all the second kind is exempt and doesn't need a scenario at all.

The sponsor verifies the traceability file is complete: every MUST and MUST NOT (and RFC 2119 equivalents: SHALL, REQUIRED) in the SEP's Specification section has a row. SHOULD and MAY requirements do not need rows, although it is recommended to include SHOULD's a WARNING check. The sponsor does not review test code; that is the conformance repository's normal PR review. What counts as a normative requirement is the sponsor's call.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The sponsor verifies the traceability file is complete: every MUST and MUST NOT (and RFC 2119 equivalents: SHALL, REQUIRED) in the SEP's Specification section has a row. SHOULD and MAY requirements do not need rows, although it is recommended to include SHOULD's a WARNING check. The sponsor does not review test code; that is the conformance repository's normal PR review. What counts as a normative requirement is the sponsor's call.
The sponsor verifies the traceability file is complete: every MUST and MUST NOT (and RFC 2119 equivalents: SHALL, REQUIRED) in the SEP's Specification section has a row. SHOULD and MAY requirements do not need rows, although it is recommended to include SHOULDs as a WARNING check. The sponsor does not review test code; that is the conformance repository's normal PR review. What counts as a normative requirement is the sponsor's call.

@nbarbettini nbarbettini Mar 29, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd be in favor of upgrading recommended to include SHOULDs -> required, since many protocol behaviors end up being SHOULDs. But I am OK leaving this up to the discretion of the author or sponsor.

@pcarleton pcarleton changed the title SEP: Require Conformance Tests for Standards Track SEPs to Reach Final Status SEP-2484: Require Conformance Tests for Standards Track SEPs to Reach Final Status Mar 30, 2026
@pcarleton pcarleton marked this pull request as ready for review March 30, 2026 19:02
@pcarleton pcarleton requested review from a team as code owners March 30, 2026 19:02
@pja-ant

pja-ant commented Apr 8, 2026

Copy link
Copy Markdown
Contributor

I'm supportive of this! Will be a great way to systematize the spec and introducing it into the SEP process is the right place to start doing it.

@pcarleton pcarleton added this to the 2026-06-30-RC milestone Apr 13, 2026
@pcarleton pcarleton self-assigned this Apr 15, 2026
@sep-automation-bot sep-automation-bot Bot added draft SEP proposal with a sponsor. and removed proposal SEP proposal without a sponsor. labels Apr 15, 2026
@sep-automation-bot

Copy link
Copy Markdown

State Transition: proposal → draft

This SEP has been transitioned from proposal to draft.

@pcarleton has been assigned as the sponsor for this SEP.


This is an automated message from the SEP lifecycle bot.

@pcarleton pcarleton added in-review SEP proposal ready for review. draft SEP proposal with a sponsor. and removed draft SEP proposal with a sponsor. labels Apr 15, 2026
@dsp-ant dsp-ant added the roadmap/validation Roadmap: Conformance, SDK tiers, reference implementations label Apr 15, 2026
@dsp-ant

dsp-ant commented Apr 15, 2026

Copy link
Copy Markdown
Member

I am in favor of this. My main worry, similar with reference implementations, is tracking that SEPs have it.

@CaitieM20 CaitieM20 moved this to In Review in SEP Review Pipeline Apr 17, 2026

@mikekistler mikekistler left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this would be a great improvement to our spec evolution process.

Comment thread docs/community/sep-guidelines.mdx Outdated

**What's required:**

- A conformance scenario tagged with the SEP number, targeting the `draft` spec version

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There was some discussion about this in the transports-wg last week, and there was some concern about using "draft" as the spec version for this since it will mean different things at different times. The suggestion there was to use something like "2026-06-XX-draft", which more specifically means "the draft that should eventually become "2026-06-XX".


- A conformance scenario tagged with the SEP number, targeting the `draft` spec version
- A structured traceability file (`sep-NNNN.yaml`) mapping each MUST/MUST NOT in the SEP's Specification section to either a check ID or a documented exclusion with a linked tracking issue
- The scenario passes against the SEP's reference implementation

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've recently been trying to adopt this proposal for SEP-2243, and I found that to get this to work fully both the SDK and the conformance tests need to treat "draft" (or whatever we wind up calling the next protocol version) as an official and latest protocol version. This is needed to get the client tests to use this version and thus be subject to the requirements of this protocol version.

@pja-ant pja-ant added accepted SEP accepted by core maintainers, but still requires final wording and reference implementation. and removed draft SEP proposal with a sponsor. in-review SEP proposal ready for review. labels Apr 20, 2026
@pja-ant

pja-ant commented Apr 20, 2026

Copy link
Copy Markdown
Contributor

This was accepted by Core Maintainer vote with 10/10 voting for Accept.

Addresses review feedback: traceability files must now cover
SHOULD/SHOULD NOT (reported as warnings), scenarios target a
YYYY-MM-draft tag rather than a bare draft, and the harness/SDK must
recognize that tag as a negotiable protocol version.
@mcp-commander mcp-commander Bot removed the accepted SEP accepted by core maintainers, but still requires final wording and reference implementation. label Apr 22, 2026
@mcp-commander

mcp-commander Bot commented Apr 22, 2026

Copy link
Copy Markdown

New commits were pushed — removed the accepted label. Re-approve with /lgtm.

…ion wording

- Drop 'co-located' (yamls live in a single conformance directory now)
- YAML example: check: key first on check rows, blank line before excluded
- Replace YYYY-MM-draft references with 'the conformance repository's
  draft spec-version tag' so the conformance repo owns the exact string
- sep-guidelines: tracking issue only required for framework-gap
  exclusions, not all exclusions
Regenerated docs/seps/index.mdx to resolve the conflict from new SEPs
landing on main.

:house: Remote-Dev: homespace
@localden

Copy link
Copy Markdown
Contributor

/lgtm

@mcp-commander mcp-commander Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved on behalf of @localden via /lgtm.

@mcp-commander mcp-commander Bot enabled auto-merge (squash) May 17, 2026 08:26
@mcp-commander mcp-commander Bot merged commit df07dca into main May 17, 2026
10 checks passed
@mcp-commander mcp-commander Bot deleted the pcarleton/conformance-requirement-sep branch May 17, 2026 08:26
@localden localden added final SEP finalized. and removed accepted SEP accepted by core maintainers, but still requires final wording and reference implementation. labels Jun 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

final SEP finalized. roadmap/validation Roadmap: Conformance, SDK tiers, reference implementations SEP

Projects

Status: Accepted

Development

Successfully merging this pull request may close these issues.

7 participants