Stability and the road to 1.0

DSDS 0.13.0 is a pre-1.0 draft. This page is the contract around that status: what can change and how you will be told, what will never change, the complete list of known breaking changes still to come, and the conditions under which 1.0 is declared. The goal is that an adopter can read this page and price the risk of adopting now.

What never changes

Published schema URLs are immutable. Every released version is served under its own path (https://designsystemdocspec.org/v0.13.0/…), and a released path is never edited or removed. A document that pins its $schema to a released URL will validate against exactly that schema forever. Adopting DSDS at any version is therefore safe in the narrow sense: your documents cannot be broken retroactively — only left behind.

Version semantics
ChangeVersion bumpYour documents
Documentation-only editsnoneUnaffected
Additions and loosenings (new optional fields, new union members, relaxed constraints)patchRemain valid unchanged
Tightenings and behavior changes (new constraints, new required fields, moved fields)minorMay need edits; a changelog entry lists every affected position
Renames and removalsmajor (post-1.0) / batched minor pre-1.0Migration script provided

Pre-1.0, minors carry tightenings without a deprecation window — that is what pre-1.0 means here. Post-1.0 this table hardens into the contract described below.

Deprecation policy

From 0.13.0 onward, a form scheduled for removal is: (1) marked deprecated: true in the schema where JSON Schema supports it, (2) flagged by a lint rule (warning, never blocking), (3) documented with its replacement in the schema description, and (4) kept validating for at least one further minor release. Removals happen only in the release that executes the breaking backlog below, and each removal ships with a migration script (scripts/migrate-to-*.js — the mechanism used for every past migration).

Currently deprecated: link's inter-entity reference form (identifier/role/required — use relationships; lint rule DSDS-010), and chunk's top-level guidelines/useCases shorthand (use documentBlocks).

The breaking backlog — everything 1.0 will change

This is the complete list of known breaking changes, drawn from the recorded naming exceptions and deprecation notices. They will be executed together in one breaking window (0.14.0) rather than dripped across releases, each with a migration script.

#ChangeTodayAt 0.14.0
1Block-kind casinguseCasesuse-cases
2Procedural entry namingstepEntry.title (string)label (richText), matching checklistItem
3Scale step namingscaleStep.labelname, matching sibling entries
4System info namingsystemName / systemVersionname / version
5Status prose propertydescription on status object formsnote, matching lastUpdated/lastReviewed/docOrigin
6Event payload namingapiEvent.returnspayload
7Remove link's deprecated inter-entity surfacevalidates with DSDS-010 warningremoved; relationships only
8Remove chunk's top-level guidelines/useCasesvalidates, marked deprecatedremoved; documentBlocks only
9Graduate draft metadata fieldsgovernance / docOrigin marked "initial draft"shapes frozen

Nothing else is planned to break. A breaking change not on this list would itself be treated as a defect in this contract.

Criteria for declaring 1.0

1.0 is declared when all of the following hold, and not before:

  1. The breaking backlog is executed — the 0.14.0 window has shipped with its migration scripts, and at least one subsequent minor has passed without new entries being added to the backlog.
  2. The draft fields have survived contactgovernance and docOrigin have been exercised by real documentation for a full review cycle without shape changes.
  3. A second independent consumer exists — at least one tool not maintained by the spec author reads or writes DSDS documents in earnest, so the spec's assumptions have been tested from outside.
  4. The conformance surface is complete — the Conformance page's classes, the normative-statements index, and the negative-fixture suite are published as the versioned conformance kit for independent validators.
The post-1.0 contract

After 1.0: the 1.x line is additive only — new optional fields, new union members, new block kinds; nothing existing tightens, renames, or disappears. Anything breaking waits for 2.0, arrives deprecation-first (lint warning through at least two minors before removal), and ships with a migration script. The immutability guarantee above continues to apply to every released version.

Design System Documentation Spec (DSDS) 0.13.0 — Draft Specification

GitHub