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.
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
/**
|
|
* Canonical bracket convention card (#3638 / ADR-612 PR-5).
|
|
*
|
|
* This module is the sole editable source of the compact grammar diagram.
|
|
* Render sites import phaseIdCard(); generated documentation is held to the
|
|
* same bytes by tests/phase-id-card.test.cjs. PR-6 can therefore inject the
|
|
* card broadly without inventing another copy.
|
|
*/
|
|
|
|
const PHASE_ID_CARD = [
|
|
'[MSD.02] 05.03-01',
|
|
' │ │ │ │ │',
|
|
' │ │ │ │ └── plan 01',
|
|
' │ │ │ └────── subphase 03',
|
|
' │ │ └───────── phase 05',
|
|
' │ └───────────── milestone 02',
|
|
' └───────────────── project MSD',
|
|
].join('\n');
|
|
|
|
const PHASE_ID_LEGEND =
|
|
"milestone = bracket integer; dots = phase-levels; one hyphen = plan; "
|
|
+ "no 'Phase' word, no vX.Y";
|
|
|
|
function phaseIdCard(options: { title?: string } = {}): string {
|
|
const parts: string[] = [];
|
|
if (options.title) parts.push(options.title, '');
|
|
parts.push(PHASE_ID_CARD, '', PHASE_ID_LEGEND);
|
|
return parts.join('\n');
|
|
}
|
|
|
|
export = {
|
|
phaseIdCard,
|
|
PHASE_ID_CARD,
|
|
PHASE_ID_LEGEND,
|
|
};
|