Files
msd-core/gsd-core/references/mvp-concepts.md
Tom Boucher 647365faf1 fix(#4011): key the TDD runtime gate on TDD_MODE alone (#4180)
* test(#4011): TDD gate keys on TDD_MODE alone, not the MVP intersection

Contract updates: no shipped line may conjoin MVP_MODE with TDD_MODE as
a gate condition, the end-of-phase escalation must not require MVP, the
executor agent's gate section triggers on TDD_MODE alone, and the gate
semantics reference loads without MVP_MODE.

* fix(#4011): key the TDD runtime gate on TDD_MODE alone

The RED-commit gate shipped as #76's MVP slice kept the paired
invocation's conjunct, so workflow.tdd_mode=true was silently inert on
every non-MVP phase, contradicting references/tdd.md's own contract.
Drops the MVP conjunct from the per-task gate and the end-of-phase
review escalation; rescopes execute-mvp-tdd.md's load condition,
gsd-executor's gate section, and mvp-concepts' intersection claim.
MVP remains free to imply TDD; the file is not renamed (stated
assumption in the PR body).

* test(#4011): scope no-conjunct detector to shell conditions; clean stale MVP+TDD phrasing

Review follow-ups: the detector now only inspects if/[ condition lines
so explanatory prose mentioning both flags cannot trip it; remaining
'under/outside MVP+TDD' phrases in execute-phase.md, the gate
reference, and docs/INVENTORY.md now describe TDD-mode semantics.

Emitted-Drift-Ack-Growth: execute-phase.md — TDD-gate decoupling comment + escalation rescoping (#4011)
Emitted-Drift-Ack-Growth: gsd-executor.md — gate section trigger rescoped to TDD_MODE alone (#4011)

* chore(#4011): backfill changeset pr number

---------

Co-authored-by: sim <sim@local>
2026-09-02 04:24:52 -04:00

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. 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 TDD_MODE=true (#4011)
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.md Step 1 (CLI flag → roadmap → config → false). Mirrored in execute-phase.md and verify-work.md.
  • **Mode:** mvp parser — 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 by gsd-verifier (the user-story-format guard) and gsd-mvp-phase (interactive validation).
  • Behavior-Adding Task predicate — gsd-core/references/execute-mvp-tdd.md (the canonical three-check definition). Applied at runtime by gsd-executor.
  • Walking Skeleton gate condition — workflows/plan-phase.md (Phase 1 + new project + --mvp + no prior summaries → emit SKELETON.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:** mvp to 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

  • --mvp and --prd <file> together on Phase 1. Both paths converge at the planner spawn. The PRD express path creates CONTEXT.md from 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 both WALKING_SKELETON=true and PRD-derived context. This is intentional: the PRD informs what the skeleton should prove.
  • MVP_MODE is 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_MODE is independent of MVP_MODE. TDD can be on without MVP, MVP can be on without TDD. The TDD runtime gate activates on TDD_MODE alone (#4011); MVP mode remains free to imply TDD without being required by it.
  • The gsd-roadmapper agent makes the MVP/standard decision once at project init based on PROJECT_MODE. Per-phase opt-in/out happens later via /gsd:mvp-phase or /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 chain
  • planner-mvp-mode.test.cjs — gsd-planner agent MVP section
  • mvp-phase-command.test.cjs, mvp-phase-integration.test.cjs, mvp-phase-spidr.test.cjs — /gsd:mvp-phase
  • execute-mvp-tdd-gate.test.cjs, executor-mvp-tdd-section.test.cjs — MVP+TDD Gate
  • verifier-mvp-section.test.cjs, verify-mvp-uat.test.cjs — verifier UAT framing
  • new-project-mvp-prompt.test.cjs — mode prompt at init
  • progress-mvp-display.test.cjs, stats-mvp-display.test.cjs, graphify-mvp-viz.test.cjs — discovery surfaces