From 48ece948ff20211990b2d21fbc944582a9202e6d Mon Sep 17 00:00:00 2001 From: freetlab Date: Tue, 28 Jul 2026 21:44:05 +0200 Subject: [PATCH] docs(sdd): correct WU3b estimate after WU3a's realized diff --- openspec/changes/rediseno-funcional/tasks.md | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/openspec/changes/rediseno-funcional/tasks.md b/openspec/changes/rediseno-funcional/tasks.md index 0fcb402..7c8c6fe 100644 --- a/openspec/changes/rediseno-funcional/tasks.md +++ b/openspec/changes/rediseno-funcional/tasks.md @@ -38,8 +38,8 @@ |----|--------|-----------|---------------------|-------------|-----------| | 1 | `feat(tokens): add design tokens, type scale, push scaffold, and root nav state` | — | 220-330 | Low | No | | 2 | `test(auto): confirm Android Auto tree matches the redesign, no code changes` | — | 0 | None | No | -| 3a | `refactor(ajustes): split Settings AUDIO/EMISORAS into pushed detail screens` | 1 | **800-1000** | High | **Yes — move-only diff** | -| 3b | `refactor(ajustes): split remaining Settings sections into pushed screens` | 3a | **500-700**\* | Medium-High | **Yes — move-only diff** | +| 3a | `refactor(ajustes): split Settings AUDIO/EMISORAS into pushed detail screens` | 1 | ~~800-1000~~ → **REALIZED: 4,374** (2,760+ / 1,614-, 35 files) | High | **Yes — move-only diff** | +| 3b | `refactor(ajustes): split remaining Settings sections into pushed screens` | 3a | **~2,500-3,200**\* | Medium-High | **Yes — move-only diff** | | 4 | `feat(favoritos): replace stacked group panels with chip-filtered reorderable list` | 1 | 300-400 | Medium | Monitor | | 5 | `feat(escuchar): replace discovery browser with embedded player and favorites grid` | 1, 4 | 350-450 | Medium | Monitor | | 6 | `feat(buscar): add discovery landing state, filter pills, counter, and sort` | 5 | 350-500 | Medium-High | Monitor | @@ -55,8 +55,20 @@ | 17 | `feat(bienvenida): add monetization-free welcome screen` | 1 | 150-200 | Low | No | | 18 | `feat(i18n): add redesign strings and translate Escuchar rename to 11 locales` | all | ~0 eng. / 400-600 data | Medium (data volume, low logic risk) | No | -\* Not an explicit design-stated figure — derived pro-rata from WU3a's verified 800-1000/7-sections ratio, scaled to -WU3b's 5 sections (no new shared widget file needed there, since `fila_ajuste.dart` already exists from WU3a). +\* **Re-derived after WU3a landed.** The original 500-700 figure was scaled pro-rata from WU3a's *estimate*, which +turned out to be wrong by roughly 4x — so the old WU3b number inherited the same error and has been replaced. +WU3a's realized diff was **4,374 changed lines across 35 files** against an 800-1000 estimate. The gap was not +scope creep; the estimate simply never counted (a) the 7 matching new test files strict TDD requires, or (b) the +13 regenerated `lib/l10n/gen/app_localizations*.dart` files that any ARB edit forces. `lib/` alone, excluding +generated l10n, was 1,474+ / 1,214-, and the root shed 1,320 lines — so the "move-only" characterisation held; only +the arithmetic was wrong. +WU3b moves 5 sections rather than 7 and needs no new shared widget (`fila_ajuste.dart` already exists), hence +~2,500-3,200. **Estimating lesson for every remaining work unit: a strict-TDD commit carries its test files, and any +ARB touch drags 13 generated files with it. Estimates that count only `lib/` production code will read ~3-4x low.** + +**Root line count, for reference**: `pantalla_ajustes.dart` went 1,897 → **788** in WU3a. The "under 400 lines" +success criterion is the WU3a+WU3b **combined** end state, not WU3a alone — WU3a owns only 7 of the 12 detail +screens. WU3b must take the remaining ~388 lines out. † Record `size:exception` at apply time only if the realized diff exceeds ~500 lines; justification: "largest single alarm-card + hero + vacation-summary restyle, not divisible without breaking the one-commit-per-work-unit rule." ‡ The proposal already isolates WU10 as "its own PR, never bundled" — splitting further would leave an unintegrated