diff --git a/docs/qfd.md b/docs/qfd.md index 4d8187d..966a2d8 100644 --- a/docs/qfd.md +++ b/docs/qfd.md @@ -66,7 +66,6 @@ shows what "better" looks like (↑ higher, ↓ lower, → fixed). | H11 | Stack budget across all tasks | ↓ | ≤ 80 KB (sum) | same | | H12 | Wi-Fi reconnect on transient outage | ↓ | ≤ 30 s | ≤ 10 s | | H13 | Idle / typing / push current draw | ↓ | measured only | sized for >2 days | -| H14 | Module count / public-API surface (refactor proxy) | → | ≤ 8 modules | same | | H15 | Build time (clean, release) | ↓ | ≤ 7 min | ≤ 5 min | --- @@ -160,7 +159,7 @@ the design are called out below. - **H6 push success ↔ H12 Wi-Fi reconnect** (reinforcing). Both come from the same network stack; investing in reconnect backoff helps both. - **H10 binary ↔ H15 build time** (strong). std builds are slow. Accepted - in [ADR-001] — refactor leverage (H14) is the long-term payoff, not the + in [ADR-001] — refactor leverage is the long-term payoff, not the per-build seconds. - **H4 boot ↔ H10 binary** (mild). Larger binary = slower flash load. Affordable at our size class but worth watching as features land. @@ -169,8 +168,6 @@ the design are called out below. parked. W14's portability outcome raises the value of that policy from "battery hygiene" to "the thing that lets the device leave the desk." -- **H14 modularity ↔ H15 build time** (mild). More small crates = more - link work. Boring vs valuable; we lean toward modularity. - **W13 typography ↔ H9 heap + H10 binary** (mild, future). Achieving a writing-tool tone needs room for glyph caches and font assets. Not load-bearing in v0.1 (one mono font), but the v1.0 tone goal is why H9 @@ -225,7 +222,6 @@ Function-to-component matrix (9 strong / 3 medium / 1 weak): | H11 stk | | | 9 | | | | | | 3 | | | 3 | | | | | | H12 wifi | 3 | 9 | | | | | | | | | | | 3 | | | | | H13 mA | 9 | | 1 | | 9 | | | | 3 | 3 | | | | | | 9 | -| H14 mod | | 3 | 3 | | | 3 | 9 | 3 | | | | 9 | | | | | | H15 build | | 9 | | | | | | | | | | 9 | 3 | | | | ### Read across, not down @@ -233,7 +229,7 @@ Function-to-component matrix (9 strong / 3 medium / 1 weak): - **C5/C6/C7** (panel + graphics + widget) are the single most leveraged cluster — they own H1, H2, H3 (the top of the priority list). [ADR-002] and [ADR-003] are the ADRs to keep most honest as v0.x progresses. -- **C12** (`gitoxide`) is overloaded: H6, H7, H9, H10, H11, H14, H15 all +- **C12** (`gitoxide`) is overloaded: H6, H7, H9, H10, H11, H15 all touch it. That's why [ADR-004] includes a kill-switch (fall back to `libgit2-sys` if spike 7 fails). It's also why H9 sits in the top three priorities — `gitoxide`'s memory profile is the unknown. @@ -393,6 +389,21 @@ These are the live tensions we are watching, not deciding harder: "W13 reframed, W14 removed" bullet above); the slot is now repurposed. §6's "(b) narrow voter base" override for H8 no longer applies and has been retired in the §6 preamble. +- **H14 retired — not a function.** §2 frames HOWs as "engineering + functions" but H14 ("Module count / public-API surface (refactor + proxy)") is a static property of source-code organisation, not a + runtime function nor an artifact characteristic like H10 binary or + H15 build time. The refactor-leverage idea survives in §5's + component structure and the ADRs that decide architectural + discipline; it does not need a HoQ matrix slot. Removed from §2, + the §5 matrix row, the C12 overloaded-list mention, and the §4 + H14↔H15 conflict bullet. W9's matrix vote shrinks from + `H10 W + H11 W + H14 S + H15 M` to `H10 W + H11 W + H15 M` — an + honest reading that "codebase absorbs the planned roadmap" is + delivered by ADRs, not by a measurable function. ID "H14" left as + a gap (cross-doc HOW references survive without renumbering H15). + Total basement Σ drops 1674 → 1557, so rel% recomputed in + [`quality-house.md`](quality-house.md). The minor variance between README's "~12 lines" and product/[ADR-003]'s "~11 lines" of edit area is within rounding for a 14 px glyph in a 240 px diff --git a/docs/quality-house.md b/docs/quality-house.md index 0b24c43..d006e9d 100644 --- a/docs/quality-house.md +++ b/docs/quality-house.md @@ -1,6 +1,6 @@ # Quality House -The 14 WHATs × 15 HOWs House of Quality. The roof carries function-vs- +The 14 WHATs × 14 HOWs House of Quality. The roof carries function-vs- function correlations; the basement carries v0.1 targets (mirrored from [`qfd.md`](qfd.md) §2) plus the weighted-vote sums (`Σ = Σ(W weight × cell strength)`) and rounded relative weights. The @@ -247,7 +247,7 @@ market"), not as a fair head-to-head buyer's guide. % --- Dimensions tuned for the typewriter QFD (14 W x 15 H) --- \def\qfdNW{14} -\def\qfdNH{15} +\def\qfdNH{14} \def\qfdWhatW{4.6} \def\qfdImpW{0.7} \def\qfdHdrH{5.0} @@ -338,8 +338,7 @@ market"), not as a fair head-to-head buyer's guide. 11/{H11 Total stack budget}, 12/{H12 Wi-Fi reconnect time}, 13/{H13 Idle / typing / push current}, - 14/{H14 Module / API surface count}, - 15/{H15 Clean release build time}% + 14/{H15 Clean release build time}% } \node[rotate=90, anchor=west, font=\scriptsize] at ({\c - 0.5}, 0.15) {\t}; @@ -362,10 +361,9 @@ market"), not as a fair head-to-head buyer's guide. % W3 row 3: H8S \node[qfdrel/S] at ({8 - 0.5}, {-3 + 0.5}) {}; - % W4 row 4: H6M H12M H14W + % W4 row 4: H6M H12M \node[qfdrel/M] at ({6 - 0.5}, {-4 + 0.5}) {}; \node[qfdrel/M] at ({12 - 0.5}, {-4 + 0.5}) {}; - \node[qfdrel/W] at ({14 - 0.5}, {-4 + 0.5}) {}; % W5 row 5: H4S H10M \node[qfdrel/S] at ({4 - 0.5}, {-5 + 0.5}) {}; @@ -381,37 +379,33 @@ market"), not as a fair head-to-head buyer's guide. \node[qfdrel/M] at ({11 - 0.5}, {-6 + 0.5}) {}; \node[qfdrel/M] at ({12 - 0.5}, {-6 + 0.5}) {}; - % W7 row 7: H1M H2M H3M H13M H14W + % W7 row 7: H1M H2M H3M H13M \node[qfdrel/M] at ({1 - 0.5}, {-7 + 0.5}) {}; \node[qfdrel/M] at ({2 - 0.5}, {-7 + 0.5}) {}; \node[qfdrel/M] at ({3 - 0.5}, {-7 + 0.5}) {}; \node[qfdrel/M] at ({13 - 0.5}, {-7 + 0.5}) {}; - \node[qfdrel/W] at ({14 - 0.5}, {-7 + 0.5}) {}; % W8 row 8: H1W H2S H3S \node[qfdrel/W] at ({1 - 0.5}, {-8 + 0.5}) {}; \node[qfdrel/S] at ({2 - 0.5}, {-8 + 0.5}) {}; \node[qfdrel/S] at ({3 - 0.5}, {-8 + 0.5}) {}; - % W9 row 9: H10W H11W H14S H15M + % W9 row 9: H10W H11W H15M \node[qfdrel/W] at ({10 - 0.5}, {-9 + 0.5}) {}; \node[qfdrel/W] at ({11 - 0.5}, {-9 + 0.5}) {}; - \node[qfdrel/S] at ({14 - 0.5}, {-9 + 0.5}) {}; - \node[qfdrel/M] at ({15 - 0.5}, {-9 + 0.5}) {}; + \node[qfdrel/M] at ({14 - 0.5}, {-9 + 0.5}) {}; - % W10 row 10: H10M H13W H14M H15W + % W10 row 10: H10M H13W H15W \node[qfdrel/M] at ({10 - 0.5}, {-10 + 0.5}) {}; \node[qfdrel/W] at ({13 - 0.5}, {-10 + 0.5}) {}; - \node[qfdrel/M] at ({14 - 0.5}, {-10 + 0.5}) {}; - \node[qfdrel/W] at ({15 - 0.5}, {-10 + 0.5}) {}; + \node[qfdrel/W] at ({14 - 0.5}, {-10 + 0.5}) {}; % W11 row 11: H13S \node[qfdrel/S] at ({13 - 0.5}, {-11 + 0.5}) {}; - % W12 row 12: H6W H8M H14M + % W12 row 12: H6W H8M \node[qfdrel/W] at ({6 - 0.5}, {-12 + 0.5}) {}; \node[qfdrel/M] at ({8 - 0.5}, {-12 + 0.5}) {}; - \node[qfdrel/M] at ({14 - 0.5}, {-12 + 0.5}) {}; % W13 row 13: H9M \node[qfdrel/M] at ({9 - 0.5}, {-13 + 0.5}) {}; @@ -442,25 +436,23 @@ market"), not as a fair head-to-head buyer's guide. \node[font=\scriptsize] at (C-9-10) {$-\!-$}; % H9-H10 heap vs binary \node[font=\scriptsize] at (C-10-15) {$-\!-$}; % H10-H15 binary vs build \node[font=\scriptsize] at (C-11-13) {$-$}; % H11-H13 - \node[font=\scriptsize] at (C-14-15) {$-$}; % H14-H15 modularity vs build % ---------- Basement: target / abs weight / rel weight % ---------- \foreach \c/\tgt/\abs/\rel in {% - 1/{$\leq$200\,ms}/148/9, + 1/{$\leq$200\,ms}/148/10, 2/{$\leq$1 line}/177/11, 3/{1 : 20}/144/9, 4/{$\leq$5\,s}/62/4, 5/{$\geq$1\,h}/111/7, - 6/{$\geq$95\,\%}/134/8, + 6/{$\geq$95\,\%}/134/9, 7/{$\leq$30\,s}/27/2, - 8/{100\,\%}/156/9, + 8/{100\,\%}/156/10, 9/{$\geq$1\,MB}/193/12, - 10/{$\leq$2\,MB}/41/2, + 10/{$\leq$2\,MB}/41/3, 11/{$\leq$80\,KB}/45/3, - 12/{$\leq$30\,s}/153/9, - 13/{obs.}/137/8, - 14/{$\leq$8}/117/7, - 15/{$\leq$7\,min}/29/2% + 12/{$\leq$30\,s}/153/10, + 13/{obs.}/137/9, + 14/{$\leq$7\,min}/29/2% } { \node[font=\scriptsize] at ({\c - 0.5}, {-\qfdNW - 0.5}) {\tgt}; \node[font=\scriptsize] at ({\c - 0.5}, {-\qfdNW - 1.5}) {\abs}; @@ -648,7 +640,7 @@ picture. `++` strong reinforcement (`◎`), `+` mild reinforcement (`○`), `−` mild conflict (`×`), `−−` strong conflict (`⊗`). - **Basement rows** are: v0.1 target → §3 column sum (`Σ` of - `weight × strength`) → relative weight as integer % of total (1674). + `weight × strength`) → relative weight as integer % of total (1557). Relative weights round to 100. - **H7, H10, H15** (push time, binary size, build time) sit at the bottom of the basement — knowingly-paid costs per `qfd.md` §7, not signals to