Files
msd-core/.changeset/lively-bears-click.md

1.1 KiB

type, pr
type pr
Fixed 3535

A file belonging to another phase no longer blocks the phase you are in — sixteen scans (plus the single-pick fallback inside resolveVerificationFile) collected verification and UAT artifacts from a phase directory without checking they belonged to that phase, so a stray or copied file such as 04-VERIFICATION.md sitting in phase 03's directory contributed its status to phase 03. The worst case was not cosmetic: a stray file carrying gaps_found or human_needed pushed a blocker that flipped the UAT-passed predicate to false, and transition gates on that — so a leftover file could refuse to let a phase advance. Some scans could also claim the opposite, reporting verification passed on the strength of a file the phase does not own. All of them now check phase membership. Where a directory's own phase cannot be determined from its name, every file is still included, so no scan silently loses a phase's real blockers; where it can, a phase holding only another phase's report now correctly reports having none of its own rather than adopting it. (#3511)