Repository navigation
chore(sep-2640): repoint the requirements at the Skills beta page - #511
Conversation
The header said to expect one more pass at the CM-stamped head. This is it. SEP-2640 was marked Accepted on 2026-09-03 (d6b31a03) and Final on 2026-09-11 (8075db4a), and the source moved off the sep/skills-extension branch to main. Four commits touched the text after this file's extraction point, one of them normative. The Skill Format section gained a paragraph binding clients to the Agent Skills specification's own backward-compatibility mechanisms; it is declared here as two excluded rows, since both halves condition on a breaking revision of an external spec that does not yet exist, so there is nothing for a harness to present and nothing for a client to honor. The Capability Declaration section was reworded to locate the declaration in the `extensions` field of the server's capabilities rather than loosely in the `initialize` response, and now states the `resources`-capability requirement outright instead of leaving it to be derived from Dependencies. Both rows are restated from the Final text; neither check ID moves, so no scenario changes. A copy-editing pass (582d814a) swapped em-dashes for commas, colons and parentheses throughout, which left twelve rows quoting sentences the SEP no longer contains. Those quotes are re-synced. No requirement changed meaning. The header's own counts were wrong before this pass and are recomputed: 90 checks and 10 excluded rows, of which the three server scenarios emit 42, confirmed against a traceability run rather than asserted. Suite unchanged at 45 pass / 0 fail / 0 warn / 0 skip.
commit: |
|
Checked the yaml against Nine rows still quote wording that is not in the Final text. For example,
while the Final reads:
The others:
The drift check from #513 only flags rows that were exact quotes of the old revision, and these were already trimmed there, so it skips them.
It quotes "ttlMs and cacheScope are REQUIRED" from the ext-skills stable page (modelcontextprotocol/ext-skills#139). The Final SEP says this "is left open", and the header names the SEP as the only source. Minor: the resources-capability MUST is new text in fd72d3f1, not derived from Dependencies, so the header undercounts the normative changes. |
…nst the Final text Addresses the review on modelcontextprotocol#511 (2026-10-08). - Nine rows trimmed in the first pass still carried pre-copy-edit wording (em-dash asides the Final text turned into commas, colons and parentheses). modelcontextprotocol#513's drift check only catches whole-sentence quotes, so it could not see them. All nine now quote f56f204f verbatim. - A sentence-by-sentence check against f56f204f found four more rows that paraphrased rather than quoted: host-origin-tag-visible, host-cache-write-isolation, host-cache-excluded-from-discovery and host-ignore-allowed-tools. The last had also dropped the "unless the user has explicitly approved that grant" exception, which changed its meaning. - capability-declaration-inline and host-frontmatter-comparison now quote the Final sentence instead of a gloss on it. - skills-get-cache-attributes quotes the ext-skills stable page, because the SEP leaves that question open. The header now names that second source, and the row's url points at the stable page. - The header now counts fd72d3f1 as normative: it added the resources-capability MUST as new text, not as a restatement of Dependencies. mcpkit examples/skills: 45 pass / 0 fail on this branch.
|
Thanks @dfedoryshchev, good catch. |
|
@panyam are you planning on repointing this at the beta text rather than SEP before merging? Should we wait for that before review, or did you want a review before that change? |
SEP-3392 classified Skills as Beta, and ext-skills#161 moved the page to specification/beta/. The WG maintains that page now, and the old stable URL returns 404. Every row quotes skills.mdx at 649f7aee. Most rows are re-quotes. The page splits the SEP's compound sentences into bullets. Check IDs do not change, so no scenario logic changes. The three scenario spec references now point at the beta page. The page has no Implementation Guidelines section, so four rows that quoted it are removed. No scenario emitted any of them. Three rows are new: cache attributes on the directory read result, and two from Error Handling. One excluded row is new, for surfacing name collisions.
|
@poita Yep - repointed at the beta page now. Most of the diff is just requoting, the page splits a lot of the SEP's compound sentences into bullets and 59 of the 100 rows no longer were matching. Ready for review now. |
|
Looks good! |
What changes
Repoints
src/seps/sep-2640.yamlat the Skills extension's beta page,specification/beta/skills.mdxat649f7aee. Every row now quotes that page instead of the SEP.SEP-3392 classified Skills as Beta, and ext-skills#161 moved the page from
specification/stable/tospecification/beta/. The WG maintains that page. The SEP is frozen at Final and no longer tracks it. The old stable URL returns 404, and one row pointed there.No check ID changes, so no scenario logic changes. The three skills scenarios now point their spec reference at the beta page.
This PR started as a re-extraction against the Final SEP. That pass is still in the history (
eb5735c,4b6ff1a), and the beta pass (7065737) replaces its quotes.Prerequisite knowledge
AGENTS.md§ Traceability manifest: what acheck:row is for, and whytraceability.jsonis generated rather than edited.src/seps/sep-2640.yaml's own header. Its "beta pass" section lists what moved.Reviewer's guide
Each row quotes a sentence and hangs a check ID on it, and scenarios emit the check IDs. The beta page splits many of the SEP's compound sentences into bullets, so 59 of the 100 rows quoted text the page no longer contains. Most of the diff re-quotes them. A few changes carry meaning.
Read in this order:
src/seps/sep-2640.yaml, the header's "beta pass" section. It lists every substantive change.sep-2640-directory-read-cache-attributesunder Reading Directories, thensep-2640-error-standard-codesandsep-2640-error-informative-messagesunder Error Handling.host-registry-no-fetch,host-virtual-mount-lazy,host-surface-directory-readandsdk-convenience-wrappers. They quoted the SEP's Implementation Guidelines, and the beta page has no such section.sep-2640-host-verify-digestnow verifiessizeas well asdigest.sep-2640-capability-declaration-inlinenow namesserver/discover.src/scenarios/server/skills/helpers.ts,src/scenarios/client/skills/verification.tsandno-prefetch.ts: URL changes only.url:pointing at its section of the beta page.Decision log
sep: 2640and thesep-2640-check prefix. Renaming would move every check ID and every baseline that names one.sep-1932.yamlalready pointsspec_urlat an ext-auth spec file, so a SEP-numbered yaml quoting an extension page has precedent.sep-2640-host-no-prefetch) covers whathost-registry-no-fetchandhost-virtual-mount-lazyrequired.sep-2640-skills-get-cache-attributesused to quote the stable page because the SEP leftskills/getcaching open. The beta page is now the only source.resultTypeor request_meta. The page saysresultTypeMUST be"complete"on each of its three results, and every request MUST carry request metadata. Both are base-protocol rules restated for the page's own types, and declaring them here would double-count them. The header records this.src/seps/traceability.json. The traceability workflow regenerates it against the reference SDK.Risk / blast radius
npm run typecheck, prettier, and the skills and traceability vitest files (36 tests). The three server scenarios run against a second implementation (mcpkitexamples/skills) at 45 pass / 0 fail / 0 warn / 0 skip, unchanged.text:againstskills.mdxat649f7aee, with markdown emphasis and link syntax stripped. All 100 match, except the two Limits rows, which render rows of the page's table.Before / after
Rows quoting text absent from the beta page:
Rows and coverage, from a traceability run plus the client scenarios:
Out of scope
Refs #513.