Skip to content

feat(core)!: release v2 of every family with one vocabulary, and retire v1 - #197

Merged
justinmerrell merged 7 commits into
mainfrom
feat/final-v1
Oct 24, 2026
Merged

justinmerrell merged 7 commits into
mainfrom
feat/final-v1

Conversation

@justinmerrell

Copy link
Copy Markdown
Contributor

What changes

This PR releases v2 of every family (core, component, blueprint and listing) as 2.0.0 and retires v1.

  • One vocabulary. Every concept now has one name and every name one meaning. The names come from a
    terminology-science pass: ISO 704 / 1087 criteria, prior art in about 25 ecosystems, and the platform glossary,
    Pelorus and engineering-conventions vocabularies.
  • Machine-checked term records. docs/terminology.yaml holds the records. It is enforced by task check:terms
    and a generated Vale style (task check:prose), and generates the docs/terminology.md glossary.
  • Connections for any protocol. POSTGRES, REDIS and S3 join the two LLM protocols.
  • Source and build recipe. Uploads, a build context and build secrets are added, and builds are pinned
    through a sources and a build resolution stage.
  • Every narrowing that v2 could otherwise never make is made now. Each "Not supported in v2" row closes by
    relaxation.

v1's tags, immutable releases, ledger entries and pinned URLs are untouched; its directories leave main.

Why

The headline renames:

Area v1 v2
Deployment installation, installer, deployment.installer.*, installationSnapshot deployment, deployer, deployment.creator.*, deploymentSnapshot
Blueprint graph spec.components spec.nodes
${{ }} reference placeholder
Validation phases capability; resolution used but never declared admission and resolution
Scope and profiles two profile lattices one validation scope lattice: parser ⊂ structural ⊂ document ⊂ publication ⊂ deployment
Exposure access AUTHENTICATED RESTRICTED
Exemptions accessExemptions on component and on blueprint component exemptibleRequests (the offer); blueprint accessExemptions (the grant)
Listing Markdown description, sourceRepoURL overview, sourceRepositoryURL, plus gettingStarted
Values origin, supplier, supply and source origin; "source" is only a workload source
Releases edition, line core release, major version

Each spec ends its scope section with a complete Migration from v1 table, and
docs/downstream-v2-adoption.md lists what each consumer changes.

Decisions you asked to see

  • Listing categories (final v2 set):
    • The set: AGENTS AUTOMATION COMMUNICATION DATABASES DEVELOPER_TOOLS INFRASTRUCTURE MEDIA MODELS NETWORKING OBSERVABILITY PRODUCTIVITY SECURITY STORAGE.
    • Dropped: AI_ML, which maps to AGENTS or MODELS, and GAMING, which maps to MEDIA.
    • Added: MODELS, DATABASES and OBSERVABILITY, now, because adding them after 2.0.0 would carve subsets out of
      existing shelves.
  • Media bounds:
    • Size, checked in the semantic phase: icon at most 1 MiB, screenshot at most 5 MiB.
    • Dimensions, checked at admission from image headers only: icon square and at least 256 px, screenshot at most
      4096 px per side.
  • SPDX membership is checked at admission against the SPDX list the platform pins.
  • Kept on purpose:
    • specVersion stays REQUIRED.
    • EXTERNAL stays, not CONNECTOR.
    • blueprint stays, despite Render's Blueprints.
    • connection and binding stay as two concepts; their v1 leftovers are removed.

Independent review

A cold review of the drafted v2 found 2 critical and about 20 major defects, all fixed here:

  • Build secrets. The build stage now runs after values resolve, so a build can read its secrets.
  • Connection members. Members can be optional with defaults, so a protocol can grow by relaxation, and the
    connection url is derived instead of stored.
  • Sources. Upload extraction is specified, git URLs and commits are tightened, and every resolution diagnostic
    names its stage.
  • Rules. Every rule a document can violate has an ID, a phase, a code and a path.

Compatibility

  • Breaking: a new major of every family, declared in ADR 0038 and in each spec's Migration from v1 section.

release-please proposes exactly 2.0.0 for each family: v2 packages with initial-version: 2.0.0 and a 0.0.0
manifest (see docs/publication.md). Release order: core, then component, then
blueprint and listing.

Also in this PR

Closes #176, closes #177, closes #184, closes #185, closes #190, closes #191, closes #192, closes #193, closes #194.

#149 (repository name) stays open: its REPO-08 waiver runs to 2027-03-27.

Downstream, after release:

  • catalog: migrate 78 documents, keep one component per component item, and check that n8n's SUL-1.0 is on the
    pinned SPDX list;
  • platform-api;
  • Pelorus: Installer becomes Creator, and the connection-edge definition retires;
  • host-agent: probe forwarding headers;
  • musher-cli;
  • the SDKs.

Checklist

  • task check passes locally
  • Schemas edited under schemas/src/ only
  • Conformance fixtures added for every behavioural change, each citing a clause (654 cases)
  • Normative prose updated in each affected spec.md
  • Conventional, scoped commit messages
  • Commits are DCO signed off

🤖 Generated with Claude Code

dependabot Bot and others added 7 commits October 23, 2026 23:59
Bumps ghcr.io/devcontainers/features/common-utils from 2.7.0 to 2.7.1.

---
updated-dependencies:
- dependency-name: ghcr.io/devcontainers/features/common-utils
  dependency-version: 2.7.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit 00dc9dd)
Signed-off-by: Justin Merrell <merrelljustin@gmail.com>
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 7.0.1 to 7.0.2.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@043fb46...cf430e0)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 7.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit 30f4fa8)
Signed-off-by: Justin Merrell <merrelljustin@gmail.com>
Bumps [actions/create-github-app-token](https://github.com/actions/create-github-app-token) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/actions/create-github-app-token/releases)
- [Changelog](https://github.com/actions/create-github-app-token/blob/main/CHANGELOG.md)
- [Commits](actions/create-github-app-token@bcd2ba4...64ab729)

---
updated-dependencies:
- dependency-name: actions/create-github-app-token
  dependency-version: 3.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit 95b36e5)
Signed-off-by: Justin Merrell <merrelljustin@gmail.com>
Bumps [wrangler](https://github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler) from 4.141.0 to 4.151.0.
- [Release notes](https://github.com/cloudflare/workers-sdk/releases)
- [Commits](https://github.com/cloudflare/workers-sdk/commits/wrangler@4.151.0/packages/wrangler)

---
updated-dependencies:
- dependency-name: wrangler
  dependency-version: 4.151.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit e71616d)
Signed-off-by: Justin Merrell <merrelljustin@gmail.com>
Bumps [jdx/mise-action](https://github.com/jdx/mise-action) from 4.3.0 to 5.1.2.
- [Release notes](https://github.com/jdx/mise-action/releases)
- [Changelog](https://github.com/jdx/mise-action/blob/main/CHANGELOG.md)
- [Commits](jdx/mise-action@c2a8761...08ae2a0)

---
updated-dependencies:
- dependency-name: jdx/mise-action
  dependency-version: 5.1.2
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit cac5f63)
Signed-off-by: Justin Merrell <merrelljustin@gmail.com>
…ates

Bumps the tooling group with 4 updates in the /tools directory: [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome), [@sourcemeta/jsonschema](https://github.com/sourcemeta/jsonschema), [@types/bun](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/bun) and [cspell](https://github.com/streetsidesoftware/cspell/tree/HEAD/packages/cspell).

Updates `@biomejs/biome` from 2.5.14 to 2.5.15
- [Release notes](https://github.com/biomejs/biome/releases)
- [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md)
- [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.5.15/packages/@biomejs/biome)

Updates `@sourcemeta/jsonschema` from 17.0.0 to 17.2.1
- [Release notes](https://github.com/sourcemeta/jsonschema/releases)
- [Commits](sourcemeta/jsonschema@v17.0.0...v17.2.1)

Updates `@types/bun` from 1.4.2 to 1.4.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/bun)

Updates `cspell` from 10.3.4 to 10.4.0
- [Release notes](https://github.com/streetsidesoftware/cspell/releases)
- [Changelog](https://github.com/streetsidesoftware/cspell/blob/main/packages/cspell/CHANGELOG.md)
- [Commits](https://github.com/streetsidesoftware/cspell/commits/v10.4.0/packages/cspell)

---
updated-dependencies:
- dependency-name: "@biomejs/biome"
  dependency-version: 2.5.15
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: tooling
- dependency-name: "@sourcemeta/jsonschema"
  dependency-version: 17.2.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: tooling
- dependency-name: "@types/bun"
  dependency-version: 1.4.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: tooling
- dependency-name: cspell
  dependency-version: 10.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: tooling
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit f681407)
Signed-off-by: Justin Merrell <merrelljustin@gmail.com>
…re v1

v2 of core, component, blueprint and listing: one name per concept and one
meaning per name, held by term records in docs/terminology.yaml and checked
by check:terms and a generated Vale style. Connections cover any protocol
(POSTGRES, REDIS, S3 beside the language-model ones), a workload source is
separate from its build recipe, and the narrowings v2 could never make later
are made now. v1 is a retired major: its directories leave main and its
released bytes stay at their pinned URLs. Also adopts engineering-conventions
0.9.1. ADRs 0038 to 0041.

BREAKING CHANGE: every family moves to v2; documents declare specVersion: v2,
and each spec's Migration from v1 section maps every renamed field, value,
code and requirement ID.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Justin Merrell <merrelljustin@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment