docs(phase-q): settle Q-10 (audit-report home) and Q-11 (pitch-remediation depth)

This commit is contained in:
2026-07-27 14:36:57 -04:00
parent bbfb033819
commit 25c77a5de3
3 changed files with 62 additions and 30 deletions
+32 -20
View File
@@ -16,8 +16,9 @@ reference, and the numbered fork decisions.
**Status:** framed by product-designer (2026-07-26); gate reconciled + naming dimension added
(2026-07-27); **pre-restructure functional + DSP audit wave (Q-W0) added 2026-07-27** (Daniel's ask —
§2c, forks Q-10/Q-11). Forks Q-1 … Q-11 below are the decision record; **Q-1 (namespace letter) is
settled by this doc**; the remaining forks carry a leading recommendation and are Daniel's to call.
§2c, forks Q-10/Q-11). Forks Q-1 … Q-11 below are the decision record; **Q-1 (namespace letter),
Q-10 (audit-report home), and Q-11 (pitch-remediation depth) are SETTLED (Daniel, 2026-07-27)**; the
remaining forks (Q-2…Q-9) carry a leading recommendation and are Daniel's to call.
Three audits ground the phase: the two structural, grep-verified ones — a **SOLID audit** (§2) and a
**naming/symbol-consistency audit** (§2b) — plus the **functional + DSP audit** defined as Q-W0 (§2c),
which runs *first* and is *executed* in-phase (this doc scopes it, staff-engineer performs it).
@@ -361,7 +362,8 @@ audits.
### 2c.2 Deliverable, triage, and the sub-gate
- **Deliverable:** a **written findings report** over the surfaces above.
- **Deliverable:** a **written findings report** over the surfaces above — a committed doc,
`docs/product/code-quality-audit.md` (Q-10, settled §2c.3), beside this framing.
- **Triage:** every finding is classified **eliminate-before-restructure** (fix-now) or
**document-and-defer** (with a one-line rationale, so a deferral is a recorded decision, never a
silent omission).
@@ -375,24 +377,34 @@ audits.
- **The sub-gate:** Q-W1 does not begin until Q-W0's **triage is complete and Daniel has signed off**
on every finding's disposition. This is the entry gate to the whole structural reorg.
### 2c.3 Fork — Q-10: where does the findings report live? (Daniel's call)
### 2c.3 Q-10 where the findings report lives. SETTLED (Daniel, 2026-07-27): a committed doc.
- **Recommendation:** a **committed doc under `docs/product/`** (e.g. `code-quality-audit.md`),
beside the SOLID/naming audit this doc already holds. Reasons: it travels with the tree, each
finding's disposition is reviewable in one place, and it matches the precedent set by §2/§2b living
as committed framing.
- **Alternative:** a tracked **issue list** (one issue per finding). Better if Daniel wants each
finding to carry independent lifecycle state (assignee, open/closed) and to drive work item by item.
Reasonable; rejected as the lead only because the audit is a one-shot pre-reorg sweep, not an ongoing
backlog, and a single reviewable doc reads better against the "stand to look at" bar.
- **Fork — Q-11: how deep does pitch remediation go, if the audit finds the OLA shifter wanting?**
Three shapes, Daniel's call at triage time: **(a) document-and-defer** — record the artifacts/limits
as a known trade-off, change nothing now (lowest risk; keeps Phase Q a reorg); **(b) bounded fix** —
tune window/overlap/edge handling within the existing OLA approach (medium; no new dependency, no
new module shape); **(c) replace the technique** — swap in a stronger method (phase-vocoder / WSOLA),
a real DSP change that reshapes `pitch_shift` and likely spills a downstream Q-wave point. The
recommendation is to **defer this decision to the audit's findings** rather than pre-commit: pick (a)
unless the audit shows audible artifacts that matter for the tool's use, then weigh (b) before (c).
The Q-W0 findings report is a **committed doc under `docs/product/`** `code-quality-audit.md`,
beside the SOLID/naming audit this doc already holds. It travels with the tree, each finding's
disposition is reviewable in one place, and it matches the precedent set by §2/§2b living as
committed framing. The Q-W0 "Triage + report" step writes *this* file — the report's home is
explicit, not a placeholder.
- **Considered and set aside:** a tracked **issue list** (one issue per finding). Would fit if each
finding needed independent lifecycle state (assignee, open/closed) driving work item by item. Set
aside because the audit is a one-shot pre-reorg sweep, not an ongoing backlog, and a single
reviewable doc reads better against the "stand to look at" bar.
### 2c.4 Q-11 — how deep pitch remediation goes. SETTLED (Daniel, 2026-07-27): defer to findings.
The remediation depth is **not pre-committed** — it is decided by what the Q-W0 audit actually
finds in the OLA pitch-preserve engine (`src/vst/pitch_shift`). The settled rule:
- **Default: document-and-defer.** Absent findings that matter, record the artifacts/limits as a
known, documented trade-off and change nothing now — this keeps Phase Q a reorg.
- **Escalation, in order, only if the audit surfaces artifacts that matter for the tool's use:**
weigh a **bounded fix** (tune window/overlap/edge handling within the existing OLA approach — no
new dependency, no new module shape) **before** a **technique replacement**.
- **Technique replacement is a Daniel decision at triage time, not an automatic Q-W0 action.**
Swapping in a stronger method (phase-vocoder / WSOLA) is a real DSP change that reshapes
`pitch_shift` and would **spill a downstream Q-wave point** — so if the audit's findings point that
way, Q-W0 surfaces the recommendation and Daniel makes the call; Q-W0 does not perform a technique
replacement on its own authority.
---