# Plan Review: Step 2 — Fix filtering or shaping if tests expose stale composition

Verdict: **approved with clarifications**.

The Step 2 plan is aligned with the task: apply defensive filtering in `get_today` using the same athlete-local `today` that drives `_meta`, keep upstream fetches date-bounded, and preserve existing wellness provenance/stale metadata. I also ran `go test ./internal/tools -run TestGetToday`, which is currently passing.

Clarifications before marking Step 2 complete:

- Keep the fix scoped to `get_today` unless a shared helper is truly needed; avoid changing standalone `get_wellness_data`, `get_events`, or `get_activities` semantics as collateral.
- Filter before shaping and before any derived section counts, so `_meta.section_counts` reflects only today rows.
- Ensure event filtering covers both `planned_events` and `annotations`; if the regression test only includes a stale workout event, add/confirm coverage for stale NOTE/RACE annotations too.
- Wellness filtering must not backfill yesterday when today's row is absent, but today's row should still retain any existing `_meta.stale` provenance generated by `wellnessRows` for stale provider data.
- Record in `STATUS.md` whether Step 1 initially exposed a failure and what production change fixed it, then rerun the targeted test command before advancing.
