Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@
- Treat core snapshot support as operation-specific. Adding a selector requires
an explicit disposition for every selector-sensitive public operation and an
updated exhaustive support-contract test.
- Treat active snapshot retention as an explicit lifecycle decision. Retired
selectors leave current registries, declarations, bundles, and tarballs while
their immutable source and fixtures remain in Git and older package releases.

## Documentation Delineation

Expand Down
3 changes: 2 additions & 1 deletion .github/skills/release-assessment/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ license: Apache-2.0

## Workflow

1. Read `AGENTS.md`, `CHANGELOG.md`, `ROADMAP.md`, and `RELEASING.md`.
1. Read `AGENTS.md`, `CHANGELOG.md`, both package changelogs, `ROADMAP.md`, and
`RELEASING.md`.
2. Fetch tags and the current main branch without changing the worktree:

```bash
Expand Down
3 changes: 3 additions & 0 deletions .github/skills/validator-snapshot-intake/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@ informational.
## Boundaries

- Snapshot approval does not authorize npm publication.
- Treat the source bundle and its `manifest.json` as disposable intake inputs.
Do not copy or retain them under `packages/validator/`; imported runtime and
fixture bytes are protected by `snapshot-integrity.json`.
- Do not require a sibling specification checkout in routine tests or CI.
- Do not overwrite, alias, or silently retarget an existing selector.
- Record AI assistance in the pull request.
11 changes: 8 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,15 @@ validation without creating a second source of normative specification text.
## Starting a work session

- Work from this repository, not from a consumer or specification repository.
- Read `README.md`, `CHANGELOG.md`, and `ROADMAP.md` before selecting work.
- Read `README.md`, `CHANGELOG.md`, the relevant package changelog, and
`ROADMAP.md` before selecting work.
- Inspect the current branch and worktree before editing; do not assume roadmap
items have been approved or started.
- Confirm the next milestone with the maintainer when it requires publication, a
new public operation, a cross-repository integration, or a package-boundary
decision.
- Keep `CHANGELOG.md` and `ROADMAP.md` synchronized with delivered behavior and
approved sequencing.
- Keep the relevant package changelog and `ROADMAP.md` synchronized with
delivered behavior and approved sequencing.

## Ownership boundaries

Expand All @@ -42,6 +43,10 @@ validation without creating a second source of normative specification text.
never require a sibling specification checkout in routine CI.
- Existing directories under `packages/validator/src/snapshots/` and
`packages/validator/test/snapshots/` are immutable. Add sibling selectors.
- Runtime and package support is an explicit lifecycle decision. Retiring a
selector removes it from registries, declarations, generated bundles, and
package contents without deleting or modifying its historical source and
fixtures; consumers can pin the older immutable package release.
- A maintainer may approve an additive tooling-metadata correction to a
published snapshot implementation only when its schema, conformance results,
diagnostics, and frozen fixtures remain unchanged. Record each exception in
Expand Down
194 changes: 7 additions & 187 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,190 +1,10 @@
# Changelog
# Changelogs

All notable changes to this repository are documented here.
The packages in this repository are versioned and released independently. See
the changelog for the package you consume:

## [0.9.0] - 2026-09-07
- [`@mcpdesc/core`](packages/core/CHANGELOG.md)
- [`@mcpdesc/validator`](packages/validator/CHANGELOG.md)

### Added

- Added MCP Description `0.8.0-rc.3` validator support and core support for
projection, merge, declaration selection, component reference resolution, and
migration from 0.7.0.
- Added RC.2 component reference resolution with deterministic terminal-target
provenance.

### Changed

- Snapshot integrity now protects package-owned selector bytes without binding
validation behavior to immutable specification repository documentation or
source commits.

## [0.8.1] - 2026-09-05

### Added

- `migrateMcpDescription07ToRc2`, an exact-target migration from
caller-validated MCP Description 0.7.0 documents with RC.2 result validation
and conversion reports.

### Fixed

- npm publishing workflows use OIDC trusted publishing without token-oriented
registry configuration, and validator tags no longer trigger the core publish
workflow.

## [0.8.0] - 2026-09-04

### Added

- Immutable MCP Description `0.8.0-rc.2` validator and core selector support,
with pinned extension catalogue metadata and manifest-verified provenance.
- `mergeEffectiveProtocolViews` and semantic-equivalence support for validated
protocol views, including pre-standard extension-map round trips.

### Changed

- RC.2 Effective Protocol View projection preserves structurally valid server
extension maps for pre-2026 revisions. Validator handling is compatibly
relaxed from an error to `extensions-not-supported-by-version` warnings;
client requirements remain strict and earlier selectors remain immutable.

## [0.7.0] - 2026-09-03

### Added

- `resolveMcpDescriptionComponentReferences` in the root and CSP-safe
`@mcpdesc/core/components` entry points for validated RC.1 component
resolution, with deterministic authored-to-terminal provenance and typed
component references and registries.

### Changed

- Core now pins `@mcpdesc/validator` `0.8.0` and reaches the snapshot-owned
resolver only through its CSP-safe standalone entry.

## [0.6.1] - 2026-09-02

### Changed

- Core now pins `@mcpdesc/validator` `0.7.1`, whose package documentation and
npm homepage identify the validator's purpose and package directory more
clearly.

## [0.6.0] - 2026-09-02

### Added

- `@mcpdesc/validator` as an independently versioned workspace package,
preserving its immutable snapshots, frozen fixtures, public APIs, and
strict-CSP browser contracts from `0.6.0`.

### Changed

- Core development now consumes the repository-owned validator `0.7.0` workspace
package through the existing standalone entry.

## [0.5.0] - 2026-09-02

### Added

- Optional RC.1 migration protocol defaults with snapshot validation and a
stable `migration-default-protocol-version` warning when applied.
- Deterministic, JSON-compatible conversion reports for successful, warned, and
failed migrations, plus pretty-printed report serialization.

## [0.4.0] - 2026-09-01

### Added

- Immutable MCP Description `0.8.0-rc.1` constants and provenance metadata.
- `migrateMcpDescription07ToRc1`, a dedicated migration that emits and validates
the exact RC.1 schema snapshot.

### Changed

- Effective Protocol View projection and declaration selection now accept exact
Draft 4 or RC.1 selectors while preserving all published Draft 4 behavior.

## [0.3.0] - 2026-09-01

### Added

- CSP-safe `@mcpdesc/core/documents` and `@mcpdesc/core/selection` subpath
exports, with browser checks that keep document parsing validator-free.

### Changed

- Validator-backed operations now use `@mcpdesc/validator/standalone` 0.5.0 to
avoid runtime code generation under strict browser CSP.

## [0.2.0] - 2026-08-31

### Added

- `parseMcpDescriptionSource` and `serializeMcpDescription`, browser-safe pure
operations for source-aware JSON/YAML parsing and deterministic output without
host I/O.
- JSON-compatible YAML enforcement for finite numbers, string mapping keys,
plain values, and acyclic structures.
- Strict JSON enforcement for unique object keys and finite numbers.
- `selectMcpDescriptionDeclarations`, a pure Draft 4 operation for selecting
tools, resources, resource templates, and prompts by their normative
identities while retaining scoped variants and omitting empty collections.
- Source/result validation, structured diagnostics, immutability tests, browser
bundling, tarball checks, and isolated-consumer coverage for declaration
selection.
- `migrateMcpDescription07ToDraft4`, a pure migration for caller-validated 0.7.0
documents with deterministic inline-security extraction, empty collection
normalization, generated-name diagnostics, and Draft 4 result validation.
- A maintainer-controlled release procedure covering tarball review, version and
tag consistency, first-publication bootstrap, trusted npm publishing,
provenance, and post-publication verification.
- A tag-triggered GitHub Actions workflow that runs the full validation suite
and publishes `@mcpdesc/core` with npm provenance support.

### Changed

- Contribution guidance now uses lockfile-exact installation and links to the
release procedure.
- The `Validate` workflow is enabled as a required check for `main`.
- Future npm releases use GitHub Actions trusted publishing without a stored npm
token.

## [0.1.0] - 2026-08-31

Initial experimental package baseline, published manually to npm after local
tarball verification. The corresponding Git tag has not yet been created.

### Added

- `@mcpdesc/core`, a TypeScript ESM package for Node.js 22 or later and browser
bundlers.
- `projectEffectiveProtocolView`, a pure operation that projects an MCP
Description `0.8.0-draft.4` document to one declared MCP protocol revision.
- Projection across transports, capabilities, tools, resources, resource
templates, prompts, and nested elicitation declarations while preserving
document-wide content and reusable components.
- Validator-backed source and result validation with structured, phase-aware,
deduplicated diagnostics.
- Immutable Draft 4 snapshot metadata sourced from `@mcpdesc/validator@0.4.0`,
including the schema URI, snapshot tag, schema digest, and supported protocol
revisions.
- Focused tests for scope inheritance, omission, nested projection,
immutability, idempotence, diagnostics, and snapshot provenance.
- Type checking, formatting, browser bundling, exact package-content checks, and
isolated tarball consumer verification in the local and CI validation
workflow.
- Apache-2.0 licensing, provenance, contribution guidance, and repository
instructions for coding assistants.

[Unreleased]: https://github.com/mcpdesc/core/compare/v0.8.1...HEAD
[0.8.1]: https://github.com/mcpdesc/core/compare/v0.8.0...v0.8.1
[0.8.0]: https://github.com/mcpdesc/core/compare/v0.7.0...v0.8.0
[0.7.0]: https://github.com/mcpdesc/core/compare/v0.6.1...v0.7.0
[0.6.1]: https://github.com/mcpdesc/core/compare/v0.6.0...v0.6.1
[0.6.0]: https://github.com/mcpdesc/core/compare/v0.5.0...v0.6.0
[0.5.0]: https://github.com/mcpdesc/core/compare/v0.4.0...v0.5.0
[0.4.0]: https://github.com/mcpdesc/core/compare/v0.3.0...v0.4.0
[0.3.0]: https://github.com/mcpdesc/core/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/mcpdesc/core/compare/v0.1.0...v0.2.0
[0.1.0]: https://github.com/mcpdesc/core/releases/tag/v0.1.0
Repository-only maintenance that does not affect a published package is tracked
in Git history and pull requests rather than a shared release changelog.
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,18 @@ The repository contains two independently versioned packages:
MCP Description snapshots, including strict-CSP browser entry points.

The package parses and serializes JSON or YAML source text, migrates validated
MCP Description 0.7.0 values to exact Draft 4, RC.1, RC.2, or RC.3 snapshots
with stable conversion reports, projects and merges Effective Protocol Views
through RC.3, and selects declaration subsets by normative identity. Validator
snapshots provide the conformance authority for those operations. Published
package operations perform no network or file access and support browser
bundlers.
MCP Description 0.7.0 values to exact RC.2 or RC.3 snapshots with stable
conversion reports, projects and merges Effective Protocol Views, and selects
declaration subsets by normative identity. RC.2 is deprecated but remains
operational during migration to RC.3. Validator snapshots provide the
conformance authority for those operations. Published package operations perform
no network or file access and support browser bundlers.

APIs remain experimental while MCP Description 0.8 is a community working draft.
npm package versions, MCP Description versions, immutable snapshot selectors,
schema identities, and MCP protocol revisions are separate version axes.

See [CHANGELOG.md](CHANGELOG.md) for delivered behavior and
See the [package changelog index](CHANGELOG.md) for delivered behavior and
[ROADMAP.md](ROADMAP.md) for the staged next steps and deferred decisions. See
[RELEASING.md](RELEASING.md) for the maintainer-controlled release process.

Expand Down
11 changes: 6 additions & 5 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,9 @@ the guarded `release:check` and `release:tag` scripts below.
equivalent SSH URL for that repository.
- Confirm that the package version is unused on npm and matches its intended Git
tag: `v<version>` for core or `validator-v<version>` for validator.
- Record user-visible changes in `CHANGELOG.md` and keep `ROADMAP.md` aligned
with the work actually delivered.
- Record user-visible changes in `packages/core/CHANGELOG.md` or
`packages/validator/CHANGELOG.md` and keep `ROADMAP.md` aligned with the work
actually delivered.

## Prepare and inspect

Expand Down Expand Up @@ -100,6 +101,6 @@ npm audit signatures
```

Confirm the npm provenance links to the expected GitHub repository, workflow,
tag, and commit. Create the corresponding GitHub release from the changelog,
then update `CHANGELOG.md` and `ROADMAP.md` if the published outcome differs
from the release preparation.
tag, and commit. Create the corresponding GitHub release from the package
changelog, then update that changelog and `ROADMAP.md` if the published outcome
differs from the release preparation.
10 changes: 6 additions & 4 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ repository.
- [x] Expose reusable-component resolution as a separate RC.1, RC.2, and RC.3
pure operation with deterministic terminal-target provenance and existing
unresolved-reference diagnostics.
- [x] Narrow current runtime and package support to RC.2 and RC.3, deprecate
RC.2, and retain retired snapshot artifacts as repository history.
- Add normalization or comparison operations only where multiple consumers
demonstrate the same requirement.

Expand All @@ -54,10 +56,10 @@ normative schema applies.

- Adopt shared operations in the editor and Inspector where they replace
duplicated semantic logic.
- Add support for later immutable MCP Description snapshots without silently
changing behavior for existing selectors. Record every selector-sensitive
operation as supported or intentionally unsupported and keep the exhaustive
support-contract test synchronized with that decision.
- Add later immutable MCP Description snapshots through an explicit active
support decision. Record every selector-sensitive operation as supported or
intentionally unsupported, retire selectors from current packages when their
transition window closes, and keep the exhaustive support contract current.
- Revisit package boundaries as concrete parser, serialization, or capture
requirements emerge; keep file and network access out of `@mcpdesc/core`.

Expand Down
6 changes: 3 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading