Files
msd-core/msd-core/references/phase-id-convention.md
Jakub Zych a9a7a328e6 refactor: hard-fork GSD -> MSD (Make Software Done)
Mechanical rename produced by scripts/msd-rename.cjs: gsd/Gsd/GSD -> msd/Msd/MSD
across contents and paths, upstream package/repo coordinates -> @golem15/msd-core
and golem15com/msd-core. Deep links into upstream history, sibling upstream
packages, the GSD-2 import feature, CHANGELOG.md and .changeset/ are kept as-is.

Hand edits on top: MSD block-letter banner and logos, LICENSE copyright line,
package/plugin identity, regenerated lockfile, install-tree fixtures, derived
registries and benchmark baseline; migration checksum baseline re-locked
(MSD keeps its own install state, so no install had applied the old sums);
sort-order and regex-escaped expectations in tests adjusted.
2026-10-06 01:47:40 +02:00

1.2 KiB

Bracket phase-ID convention

The bracket convention is opt-in through phase_id_convention: "bracket". Its compact grammar card below is generated from src/phase-id-card.cts; edit that module, not this block.

[MSD.02] 05.03-01
 │   │   │  │   │
 │   │   │  │   └── plan        01
 │   │   │  └────── subphase    03
 │   │   └───────── phase       05
 │   └───────────── milestone   02
 └───────────────── project     MSD

milestone = bracket integer; dots = phase-levels; one hyphen = plan; no 'Phase' word, no vX.Y

The display form is [PROJECT.MM] PP[.SS][-LL]: the bracket carries the project and milestone, dots join phase levels, and the single hyphen introduces the optional plan. A phase directory encodes the same identity without brackets: PROJECT.MM-PP[.SS]-slug/.

Human-facing bracket surfaces omit both the literal Phase label and the legacy vX.Y milestone marker. Repositories using the unset, sequential, or milestone-prefixed conventions retain their existing display forms.