Repository navigation
conformance: agent discovery scenarios for agents-wg#22 - #1545
Merged
Merged
Conversation
#1393 asked for conformance-style scenarios for agents-wg#22, run against mcpkit and later against the Python reference. They live on the fork branch feat/agents-conformance-suite (two scenarios, 31 graded rows, 18 declared but excluded), and make testconf-agents grades the example against them at testall stage 8k, INFO. The example gains --conformance-agents, off by default, per examples/CONVENTIONS.md § Conformance fixtures. It serves anonymously, pages one agent at a time, adds an agent naming a missing tool, and registers two controls: agents_conformance_fixture reports which agent is hidden from the caller and which is broken, and agents_conformance_add_agent changes the roster so list_changed fires. Check IDs use the placeholder sep-9998, since the SEP lives in the Agents WG repository and has no spec PR number. The runner needs --force because the extension is not on the spec timeline. Measured 28/28 and 4/4. Breaking the fixture four ways (hidden agent made visible, list_changed unsent, wrong agent_not_found reason, ttlMs omitted) turns the matching rows red, so the suite grades mcpkit rather than passing on its own. Closes #1393.
This was referenced Oct 15, 2026
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.
Closes #1393, the last of three PRs (#1540 for step-up and the example, #1541 for the identifier). This one doesn't serve the active mission (#1508, events). It's the agents-completeness work we picked on purpose.
What changes
feat/agents-conformance-suite:sep-9998-agents-discoveryandsep-9998-agents-list-changed;9b16840e, checked by script, of which 31 are graded and 18 are declared but excluded with a reason;make testconf-agentsgradesexamples/agents/discoveryagainst them, at testall stage 8k,INFO.--conformance-agents, off by default. It serves anonymously, pages one agent at a time, adds an agent naming a missing tool, and registers two controls the scenarios drive.Minimal example:
Before / after
Before (
mainat6fbc642e), there was nothing to run:After:
A green suite doesn't prove it graded mcpkit (CLAUDE.md, § Conformance), so we broke the fixture four ways and re-ran it:
list_changednever sentagent_not_foundreasonttlMsomittedPrerequisite knowledge
9b16840eis the text every row quotes.conformance/NOTES.md§ Adding a testconf-* target lists the six places a new suite touches and the two CI gates. § Agent discovery suite (new) covers the placeholder number,--force, and what one credential can't grade.examples/CONVENTIONS.md§ Conformance fixtures has the rules the--conformance-agentsflag follows.Reviewer's guide
Read in this order:
billing-agent, already gated onbilling:read, so nothing new is invented for it.--force.Skim: conformance/scripts/conf-agents-setup.sh, the four Makefile/justfile mirrors, scripts/testall.sh, generated
path-defaults.*and CONFORMANCE.md, conformance/NOTES.md, README, CHANGELOG.The scenarios themselves are on the fork and will go upstream as a draft PR. Start with
src/seps/sep-9998.yamlthere, thensrc/scenarios/server/agents/discovery.ts.Decision log
sep-9998. The SEP is in the Agents WG repository, so it has nomodelcontextprotocol/modelcontextprotocolPR number, and the traceability gates drop non-numeric ids silently. Events carriedsep-9999for the same reason (conformance: retarget the events suites (#521, #541) at SEP-3415 #1502 renamed it). A scripted rename follows when a number exists.ttlMsgraded as required. Both results areCacheableResult, and the draft schema makesttlMsa required number. The fixture sets it. An mcpkit server that leavesConfig.TTLMsnil fails those two rows, and so do mcpkit's core list methods by default. That gets its own issue rather than a workaround here.Risk / blast radius
TestConformanceFixtureandTestConformanceControlsOffByDefaultin the example.check-local-suites-stale,check-conformance-stale,check-conf-fixture-guards,check-recipe-complexity,check-examples-build,check-snippetsandmake testall pass.local-suites.yamlis hand-recorded at fork4661c43. Re-run before trusting it after the fork moves.INFO, so a regression won't fail CI (CLAUDE.md, "A regression in an INFO suite is invisible"). Run it by hand after touching the agents extension.Out of scope
AGENTS.mdasks for is opened, after the Agents WG vote on 2026-10-16.ttlMson the 2026-07-28 wire, for core lists and agents, filed as ttlMs is omitted by default where the 2026-07-28 draft makes it required #1546.