2026-05-16: Music sync row restored in iOS Settings view After the backend consolidation on 2026-05-04, the iOS Settings view lost the row that exposed Music sync to users. The sync pipeline itself was intact in the backend; only the toggle had been removed during the cleanup. Restored via 6 lines in App/Views/SettingsView.swift, adding the row back under "Data Sources." TestFlight build 47 ships the restored row. Verified end-to-end by pulling a fresh sync from the device and confirming the delivery UUID 8b4f2a9c-7d15-4e83-9bcd-12fa8e5c61d4 landed in the backend. Decided: restore the row as-is rather than redesign the Settings view (the consolidation rationale doesn't apply to this row). Rejected: moving Music to a dedicated "Media" section. Too much surface area to redesign for one source. Outstanding: wire the new Qwen commit a3f2c8e91 for next week's audio path. commit e74b2c1 CODE_BLOCK: 2026-05-16: Music sync row restored in iOS Settings view After the backend consolidation on 2026-05-04, the iOS Settings view lost the row that exposed Music sync to users. The sync pipeline itself was intact in the backend; only the toggle had been removed during the cleanup. Restored via 6 lines in App/Views/SettingsView.swift, adding the row back under "Data Sources." TestFlight build 47 ships the restored row. Verified end-to-end by pulling a fresh sync from the device and confirming the delivery UUID 8b4f2a9c-7d15-4e83-9bcd-12fa8e5c61d4 landed in the backend. Decided: restore the row as-is rather than redesign the Settings view (the consolidation rationale doesn't apply to this row). Rejected: moving Music to a dedicated "Media" section. Too much surface area to redesign for one source. Outstanding: wire the new Qwen commit a3f2c8e91 for next week's audio path. commit e74b2c1 CODE_BLOCK: 2026-05-16: Music sync row restored in iOS Settings view After the backend consolidation on 2026-05-04, the iOS Settings view lost the row that exposed Music sync to users. The sync pipeline itself was intact in the backend; only the toggle had been removed during the cleanup. Restored via 6 lines in App/Views/SettingsView.swift, adding the row back under "Data Sources." TestFlight build 47 ships the restored row. Verified end-to-end by pulling a fresh sync from the device and confirming the delivery UUID 8b4f2a9c-7d15-4e83-9bcd-12fa8e5c61d4 landed in the backend. Decided: restore the row as-is rather than redesign the Settings view (the consolidation rationale doesn't apply to this row). Rejected: moving Music to a dedicated "Media" section. Too much surface area to redesign for one source. Outstanding: wire the new Qwen commit a3f2c8e91 for next week's audio path. commit e74b2c1
- The three alternatives you considered before picking option C
- The operator pushback that killed your original design
- The verification log that convinced you the fix worked
- The false start at 11pm that explains the weird workaround at line 240
- The dependency you didn't realize existed until something broke
- The Trigger: what made us notice Music sync was dark (a test query returned zero rows from a source that should have been daily)
- The Diff: what the original consolidation actually removed, with the line numbers
- What Almost Happened: the redesign-the-whole-view path I considered before realizing six lines of Swift was the answer
- Verification: the delivery UUID that proved the path was wired back end-to-end
- What's Unblocked: the audio path work that depended on Music being live
- Copy DOCUMENTARY_STYLE_DOCUMENTATION.md into your project's root (e.g. ~/projects/).
- In your top-level CLAUDE.md, add @DOCUMENTARY_STYLE_DOCUMENTATION.md.
- In each project's CLAUDE.md, paste the per-project boilerplate from templates/per-project-boilerplate.md.
- Create an empty CHANGES.md at each project root.
- For the first non-trivial migration or incident, create a narrative doc using the skeleton.
- The output is durable. The other ~88% of Claude's output is ephemeral chat that disappears when the session ends. That ~12% is markdown files that persist, get committed, and become referenceable.
- The agent doesn't remember what it built. Without these docs, the next session has no idea what was rejected, why, or with what verification. Reconstructing reasoning later costs more than recording it now.
- A recent debug story made the case concrete. A few weeks ago an iOS pipeline went dark after a backend consolidation. The CHANGES.md entry from the original consolidation told me exactly which row had been removed from the Settings view and why. Without that record I'd have spent an hour trace-debugging. With it: six lines of Swift to restore.