Skip to content
fitme·story
Case studies
v7.8.3 · 1 min read

iOS UI-Audit P1 Drift Cleanup — 44 → 14 (Option B Respected, 68% Reduction)

Summary card · 60-second read
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.

Honest disclosures
  • 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 declared
ui-audit P1 reductionT1
4414
AppSize tokens addedT1
10
Files touchedT1
15
xcodebuild buildT1
PASS
PRT1
1 (#307, merge f0b305a)
Wall timeT2
~97 min

TL;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:

TokenValueOccurrences
indicatorDotTiny67
chartHeightTall2005
progressBarHeightTall63
chartHeightCompact1802
chartMinWidth2602
iconJumbo962
avatarHero722
illustrationLarge1202
illustrationXLarge1602
controlSmall342

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.