Files
msd-core/gsd-core/references/phase-id-convention.md
BeeHiggs 0967358b8b enhance(#3638): render bracket phase IDs on progress, stats, manager and statusline surfaces (epic #612 PR-5) (#4111)
* enhance(#3638): render bracket IDs on display surfaces

Gate progress, stats, manager, and statusline projections on the bracket convention; validate phase_id_convention and single-source the convention card.

Forward note: the uat.cts bracket co-change remains deliberately deferred to its owning slice.

* chore(#3638): point the changeset at PR #4111

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(#3638): close bracket display review gaps

* docs(#3638): register phase display modules

* chore(#3638): re-trigger CI after macOS shard SIGTERM

`full test (macos-latest, 24, shard 3/3)` failed on 20ce98cd1 in
`tests/lint-compiled-artifact-sync.test.cjs` — the spawned
`scripts/lint-compiled-artifact-sync.cjs` was killed at 60024ms
(`exited null (signal SIGTERM)`, stdout and stderr both empty), 24ms past
the test's own `TSC_COMPILE_TIMEOUT_MS`. That is the failure mode the
constant's comment already documents ("under CI shard load that compile
can exceed the budget, dying to a SIGTERM with empty piped stdout").

No content change; this empty commit exists only to re-run the matrix,
since re-running a job needs write access on the upstream repository.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Tom Boucher <trekkie@nomorestars.com>
2026-09-15 04:47:47 -04: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.

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

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.