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: |
This branch has not been deployed
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.
What changes
Re-extracts
src/seps/sep-2640.yamlagainst the SEP at Final. The file was extracted ata3e147ca(2026-08-25) while the CM vote was still running, and its own header says to expect one more pass at the CM-stamped head. This is that pass.One normative addition, two rows restated after a section was reworded, twelve quotes re-synced after a copy-editing pass, and the header's counts recomputed. No check ID moves, so no scenario changes.
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 provenance header — it records why the file held at an older revision and what the previous re-extraction changed.Reviewer's guide
A requirements yaml is a set of bookmarks pressed into a document. Each row quotes a sentence and hangs a check ID on it, and the checks are what scenarios emit. Move the sentence and the bookmark still points at a page, so nothing breaks and nothing complains; it just quotes words that are no longer there. That is most of this diff. A copy-editing pass swapped em-dashes for commas and parentheses across the SEP, and twelve rows kept the old punctuation, which makes them silently unquotable against the published text. Nothing in CI compares a row's
text:to the spec, so this drift is invisible until somebody reads both side by side. The part that is not bookkeeping is one new paragraph in Skill Format, which adds a real client obligation that no row covered.Read in this order:
src/seps/sep-2640.yaml, the header — start here. It records what moved betweena3e147caandf56f204f, and which of it was normative.src/seps/sep-2640.yaml, the two new excluded rows under# === Excluded: not observable on the MCP wire ===— the only new requirement. Worth arguing about; see the decision log.src/seps/sep-2640.yaml,sep-2640-capability-declaration-inlineandsep-2640-capability-requires-resources— restated from the reworded Capability Declaration section. Same IDs, same scenarios.Decision log
excluded:rather than declared checks. They condition on the Agent Skills specification shipping a breaking change, which has not happened. Until it does there is nothing for a harness to present and nothing for a client to honor, and a client that would ignore a compatibility mechanism is indistinguishable from one that honors it. Declaring them keeps the requirement tracked rather than lost. If a reviewer would rather see them as untested checks than as excluded rows, that is a reasonable different call and an easy change.src/seps/traceability.json. PerAGENTS.mdit is generated against the reference SDK and refreshed by the traceability workflow. Regenerating it locally against a single suite's results drops every other SEP's tested status, which is exactly what happened on the first attempt here before it was reverted.Risk / blast radius
npm run lint,npm run typecheck, and the three server scenarios run against a second implementation (mcpkitexamples/skills), unchanged at 45 pass / 0 fail / 0 warn / 0 skip. A traceability run reports 48 untested, which is what the recomputed header claims.name:in aSKILL.mdno longer matching its URI's final segment) and the suite went red, then green again on restore.Before / after
Rows quoting text the Final SEP no longer contains, counted by substring match against
seps/2640-skills-extension.mdatf56f204f:Header counts, before and after, against a traceability run:
Suite against mcpkit
examples/skills, before and after this change:And with the fixture deliberately broken, confirming the suite grades the implementation rather than passing by default:
Out of scope
Refs #513.