iOS UI-Audit P1 Drift Cleanup — 44 → 14 (Option B Respected, 68% Reduction)
- Version
- v7.8.3
- Date
- 2026-05-12
- Tier
- light
Drift-cleanup follow-up to `ios-ui-audit-p1-burndown` (PRs #292+#294). Respects Option B's locked ceiling — tokenizes ONLY magic dims with frequency >= 2 across the iOS codebase. Result: ui-audit P1 44 → 14 (-68%), DS-MAGIC-FRAME 40 → 12, DS-MAGIC-PADDING 4 → 0. The 14 remaining are true singletons that stay as fix-as-you-touch per the parent feature's locked decision. 10 new AppSize tokens + 4 magic-padding swaps. Single PR, single session.
- •This was a deliberate scope-locked enhancement, not a bulldoze. The user could have asked me to push past Option B's ceiling to 0; I surfaced the contradiction with the parent's locked decision and we agreed to respect it. The frequency-≥-2 rule produced a defensible 68% reduction without violating the parent's "high-frequency tokens only" rationale.
- •The 14 remaining P1s are true singletons. Adding a token for each (50, 76, 88, 60, 58, 320, 30, 280, 220, 150, 140, 14, 0.5) would bloat AppSize without improving design coherence.
How to read this case studyT1/T2/T3 · ledger · kill criterion▾
- T1Instrumented
- Numbers come from a machine-generated ledger or commit. Reproducible. Highest reader trust.
- T2Declared
- Numbers stated by a structured declaration (PRD, plan, frontmatter) but not directly measured.
- T3Narrative
- Estimates and observations from session memory. Useful for context; not citable as evidence.
- Ledger
- Where to verify the claim — a file path, GitHub issue, or backlog entry. Anything labelled
ledger:is the audit trail. - Kill criterion
- The pre-registered threshold under which this work would have been killed mid-flight. Not fired = work shipped without hitting the threshold.
- Deferred
- Items intentionally not closed in this version. Each cites the ledger that tracks remaining work.
Visual aid · key numbers at a glance
Default · no specialised visual declaredTL;DR
Drift cleanup on the iOS make ui-audit P1 surface. The parent feature ios-ui-audit-p1-burndown locked Option B ("high-frequency tokens only; long-tail singletons stay as fix-as-you-touch") and shipped 103 → 44. This follow-up applies the same rule (frequency ≥ 2 only) to push 44 → 14.
What shipped
10 new AppSize tokens in FitTracker/Services/AppTheme.swift:
| Token | Value | Occurrences |
|---|---|---|
indicatorDotTiny | 6 | 7 |
chartHeightTall | 200 | 5 |
progressBarHeightTall | 6 | 3 |
chartHeightCompact | 180 | 2 |
chartMinWidth | 260 | 2 |
iconJumbo | 96 | 2 |
avatarHero | 72 | 2 |
illustrationLarge | 120 | 2 |
illustrationXLarge | 160 | 2 |
controlSmall | 34 | 2 |
4 magic-padding fixes swap off-grid values to nearest AppSpacing token (1-2pt shift, all on the 4pt grid).
What stays deferred
14 true singletons remain. Per Option B, adding a token for each would bloat the design system without improving coherence.
Honest framing
This was a continuation of the parent feature's discipline, not a bulldoze. Option B respected.