Summary
Refactor the output-path architecture in lint.rs to consolidate the ResultSink trait — the pattern that makes --quiet structurally unbypassable and replaces 13 ad-hoc stdin-label sites.
This work unblocks five previously fixed defects (complexity-01, complexity-02, and three earlier wave fixes) and eliminates the prose contracts that complexity-12 tried to document.
Deferred Issues
From review [wave-v0.4.0-wave1/2026-08-19_1216]:
| Finding |
File:Line |
Reason |
| complexity-04 |
crates/mds-cli/src/lint.rs |
B1 ResultSink refactor — rewrites every output path at a release gate. |
| complexity-12 |
crates/mds-cli/src/lint.rs:18 |
Prose PF-004 contract obsoleted by complexity-04. |
| performance-02 |
crates/mds-cli/src/lint.rs:1309 |
Touching sort key + display path together risks the just-declared ordering contract. |
| architecture-03 |
crates/mds-cli/src/lint.rs:770 |
Stdin-label funnel touches 5 files across every CLI output path. |
Acceptance Criteria
Related
For v0.5.0
Summary
Refactor the output-path architecture in
lint.rsto consolidate theResultSinktrait — the pattern that makes--quietstructurally unbypassable and replaces 13 ad-hoc stdin-label sites.This work unblocks five previously fixed defects (complexity-01, complexity-02, and three earlier wave fixes) and eliminates the prose contracts that complexity-12 tried to document.
Deferred Issues
From review [wave-v0.4.0-wave1/2026-08-19_1216]:
Acceptance Criteria
Related
For v0.5.0