* test(#3576): gate shipped reference citations on the canonical resolvable form Failing-first gate for #3576: a backticked bare references/<name>.md cite resolves from no install location (agents, workflows, and references all install where a bare relative references/ path is dead). The gate walks the runtime-loaded trees the issue prescribes, strips @~/ include tokens PER-TOKEN (a line-skip guard would miss a bare cite sharing a line with an include — the issue-named trap), pins the genuinely relative ../ href and canonical forms as non-offenders, and checks canonical cite targets exist. 43 offenders today across 19 files. * fix(#3576): repair all 43 dead references/ cites to the canonical resolvable form Every backticked bare references/<name>.md cite across the 19 shipped files rewritten to gsd-core/references/<name>.md — the form every required_reading block and @~/ include already uses, and the only form that resolves from any install location. All 20 cited targets verified to exist; the one genuinely relative href (plan-phase.md's ../references/mvp-concepts.md) is untouched (the repair is backtick-anchored). Growth acks: new fragment for the three first-time paths, #3206-pattern appends to the five fragments already naming the other grown files (two ack sources may never name the same path). execute-phase.md lands at 93,391/93,400 and gsd-executor.md at 49,150/49,152 — exactly the issue's projections; every repair fits. * fix(#3576): drop stale default.md growth ack (nested modes file is hash-attributed, not growth-ratcheted) Review finding: the emitted-attribution ratchet covers only top-level workflows/ + agents/ files; discuss-phase/modes/default.md's delta is source-attributed, so acknowledging its growth is a stale entry the differential lane fails on. * chore(#3576): add changeset fragment * chore(#3576): backfill changeset pr number --------- Co-authored-by: sim <sim@local>
4.8 KiB
4.8 KiB
MVP Concepts — index
Cross-reference for the six MVP-related reference files. Each file has a single, narrow purpose. This index exists so future readers (and agents resolving @-refs) can find the right file without grepping the directory.
Canonical domain terms for the concepts named below live in CONTEXT.md under "Domain terms" — start there if you need a precise definition.
File map
| File | Purpose | Loaded by |
|---|---|---|
gsd-core/references/planner-mvp-mode.md |
Rules. Vertical-slice planning rules, slice ordering, Walking Skeleton constraints. | gsd-planner agent when MVP_MODE=true |
gsd-core/references/skeleton-template.md |
Template. Shape of SKELETON.md for new-project Phase 1 under --mvp. |
gsd-planner agent when the Walking Skeleton gate fires |
gsd-core/references/user-story-template.md |
Template. Format and slot definitions for As a / I want to / So that. |
gsd-mvp-phase workflow during interactive prompting; gsd-planner when emitting the ## Phase Goal header |
gsd-core/references/spidr-splitting.md |
Splitting discipline. Five-axis decomposition (Spike, Paths, Interfaces, Data, Rules) for stories too large for one phase. | gsd-mvp-phase workflow when the user story exceeds size threshold |
gsd-core/references/execute-mvp-tdd.md |
Gate. MVP+TDD runtime gate semantics: when it fires, what it checks, halt-and-report protocol, end-of-phase blocking escalation, Behavior-Adding Task definition. | gsd-executor agent when MVP_MODE=true && TDD_MODE=true |
gsd-core/references/verify-mvp-mode.md |
UAT framing. Three-section UAT structure (user-flow → technical → coverage), anti-patterns, User Flow Coverage section in VERIFICATION.md. |
gsd-verifier agent when the phase under verification has mode: mvp |
Concept-to-file map
If you're looking for the canonical statement of a concept, this is where to find it:
- MVP Mode resolution chain —
workflows/plan-phase.mdStep 1 (CLI flag → roadmap → config → false). Mirrored inexecute-phase.mdandverify-work.md. **Mode:** mvpparser —gsd-core/bin/lib/roadmap.cjs(searchPhaseInContent+cmdRoadmapAnalyze). Workflows compare against the parser output, never re-parse.- User Story regex —
/^As a .+, I want to .+, so that .+\.$/— applied at runtime bygsd-verifier(the user-story-format guard) andgsd-mvp-phase(interactive validation). - Behavior-Adding Task predicate —
gsd-core/references/execute-mvp-tdd.md(the canonical three-check definition). Applied at runtime bygsd-executor. - Walking Skeleton gate condition —
workflows/plan-phase.md(Phase 1 + new project +--mvp+ no prior summaries → emitSKELETON.md). - MVP+TDD Gate (RED→GREEN enforcement) —
gsd-core/references/execute-mvp-tdd.md. - MVP-mode UAT framing (user-flow first, technical deferred) —
gsd-core/references/verify-mvp-mode.md. - Per-phase mode authoring —
workflows/mvp-phase.md(writes**Mode:** mvpto ROADMAP.md after collecting the user story). - Project-wide mode prompt at init —
workflows/new-project.md(Vertical MVP vs Horizontal Layers question).
Interactions worth knowing
--mvpand--prd <file>together on Phase 1. Both paths converge at the planner spawn. The PRD express path createsCONTEXT.mdfrom the PRD file and continues to the research step; the Walking Skeleton gate fires independently when Phase 1 + new project +--mvp. The planner therefore receives bothWALKING_SKELETON=trueand PRD-derived context. This is intentional: the PRD informs what the skeleton should prove.MVP_MODEis all-or-nothing per phase, not per task. A phase is either MVP-mode or standard. Mixed-mode phases are not supported (PRD #2826 Q1).TDD_MODEis independent ofMVP_MODE. TDD can be on without MVP, MVP can be on without TDD. Only the intersection (both true) activates the MVP+TDD Gate.- The
gsd-roadmapperagent makes the MVP/standard decision once at project init based onPROJECT_MODE. Per-phase opt-in/out happens later via/gsd:mvp-phaseor/gsd-edit-phase.
Tests
Structural contract tests for each integration site live under tests/:
plan-phase-mvp-flag.test.cjs— plan-phase MVP_MODE resolution chainplanner-mvp-mode.test.cjs— gsd-planner agent MVP sectionmvp-phase-command.test.cjs,mvp-phase-integration.test.cjs,mvp-phase-spidr.test.cjs—/gsd:mvp-phaseexecute-mvp-tdd-gate.test.cjs,executor-mvp-tdd-section.test.cjs— MVP+TDD Gateverifier-mvp-section.test.cjs,verify-mvp-uat.test.cjs— verifier UAT framingnew-project-mvp-prompt.test.cjs— mode prompt at initprogress-mvp-display.test.cjs,stats-mvp-display.test.cjs,graphify-mvp-viz.test.cjs— discovery surfaces