Files
msd-core/docs/features/verification-debt-tracking.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

2.7 KiB

id, title, group
id title group
40 Verification Debt Tracking Infrastructure Features

Command: /msd-audit-uat

Purpose: Prevent silent loss of UAT/verification items when projects advance past phases with outstanding tests. Surfaces verification debt across all prior phases so items are never forgotten.

Components:

1. Cross-Phase Health Check (progress.md Step 1.6) Every /msd-progress call scans ALL phases in the current milestone for outstanding items (pending, skipped, blocked, human_needed, gaps_found). Displays a non-blocking warning section with actionable links.

A verification report counts as outstanding under EITHER terminal non-passing status: human_needed contributes its human_verification: entries, and gaps_found contributes both its human_verification: and its gaps: entries, excluding any already closed. What counts as closed is per key: a gaps: entry closes on status: resolved and nothing else — the same rule the ## Gaps markdown reader applies, so one authored entry cannot read closed in one reader and open in the other — while a human_verification: entry also closes on a bare resolution: field, provided no status: contradicts it (#3850).

2. status: partial (verify-work.md, UAT.md) New UAT status that distinguishes between "session ended" and "all tests resolved". Prevents status: complete when tests are still pending, blocked, or skipped without reason.

3. result: blocked with blocked_by tag (verify-work.md, UAT.md) New test result type for tests blocked by external dependencies (server, physical device, release build, third-party services). Categorized separately from skipped tests.

4. HUMAN-UAT.md Persistence (execute-phase.md) When verification returns human_needed, items are persisted as a trackable HUMAN-UAT.md file with status: partial. Feeds into the cross-phase health check and audit systems.

5. Phase Completion Warnings (phase.cjs, transition.md) phase complete CLI returns verification debt warnings in its JSON output. Transition workflow surfaces outstanding items before confirmation.

Requirements:

  • REQ-DEBT-01: System MUST surface outstanding UAT/verification items from ALL prior phases in /msd-progress
  • REQ-DEBT-02: System MUST distinguish incomplete testing (partial) from completed testing (complete)
  • REQ-DEBT-03: System MUST categorize blocked tests with blocked_by tags
  • REQ-DEBT-04: System MUST persist human_needed verification items as trackable UAT files
  • REQ-DEBT-05: System MUST warn (non-blocking) during phase completion and transition when verification debt exists
  • REQ-DEBT-06: /msd-audit-uat MUST scan all phases, categorize items by testability, and produce a human test plan