← ClaudeAtlas

endurance-coach-failure-archaeologylisted

The settled-history record for the Endurance Coach repo (single-athlete AI endurance-coaching app at /Users/maxeskell/dev/personal-training-app). Load this BEFORE re-attempting a fix, re-adding a removed feature, or re-litigating a past decision — when you are about to ask "has this been tried?", "why was X removed/reverted?", "is this a settled question or still open?", "can I re-enable autoupdate / re-add intervals.icu / rebuild the load model / restore change-point detection?", or "why does the code do this weird thing?". Covers every known chronicle entry: the autoupdate launchd job hijacking HEAD back to main mid-work (THE costliest failure — settled, do not repeat), the structured-output 400 from maxItems, dashboard 0.0.0.0-no-auth and HTML/XSS injection, the FDR "double-dip" that turned out to be a false alarm, change-point detector cut for low rigor, non-atomic state writes and JSONL corruption, duplicate archive rows, the power-curve all-time collapse, intervals.icu removal (the $20/mo tier), Mac-fir
maxeskell/personal-training-app · ★ 0 · AI & Automation · score 70
Install: claude install-skill maxeskell/personal-training-app
# Endurance Coach — failure archaeology (the settled-history record) **Use this when** you are about to re-attempt a fix, re-add a removed feature, re-enable a disabled job, or "re-litigate" any past decision — and you want to know whether the battle is already fought and settled. It answers "has this been tried?", "why was X removed?", "is this open or closed?". **Don't use this when** a symptom is happening *right now* and you need to triage it — use **`endurance-coach-debugging-playbook`** (it cross-references back here per trap). For how to run/serve/ship the app, use **`endurance-coach-run-and-operate`**. For the invariants a change must preserve, use **`endurance-coach-architecture-contract`**. ## How to read this record Each entry is: **SYMPTOM → ROOT CAUSE → EVIDENCE → RESOLUTION → STATUS**, with a **severity flag** answering the only question that matters here: *would re-fighting this waste days?* - **STATUS: SETTLED** = resolved and stable. Do not reopen without new evidence. If you think you found a bug in a settled area, re-read the entry first — you are probably about to repeat it. - **STATUS: OPEN** = a known weak point still on the table; safe to work on, but read the note so you do not re-discover what is already documented. - **Severity ⚠️⚠️⚠️** = a genuine time-sink or foot-gun; re-fighting it costs real days. **⚠️⚠️** = costs hours. **⚠️** = a one-line gotcha. **Every SHA below was verified with `git show` on 2026-07-04.** Where a change landed