Skip to content

Coach claims "you haven't done any rides recently" when the record holds rides (PMC=0 conflated with no-activity) #129

@bepcyc

Description

@bepcyc

Found during the manual onboarding run on merged main cc3882c3a (epic #121 completion).

Repro (self-host, SQLite): upload 10 forged rides → all import done (#115 ✅), activities present in GET /v1/activities (has_power/has_cadence/has_gps all true). Set FTP via PUT /v1/athlete/signature {ftp_w:250} + current_sport=cycling. Then ask the coach.

Two findings:

  1. Per-ride tss/intensity_factor/normalized_power_w stay null and PMC fitness/fatigue/form stay 0.0 even with FTP set and current_sport=cycling, both when FTP is set after AND before ingest (forge_ride power present, has_power=true). The New self-hoster sees an all-zero fitness chart: FTP prerequisite is never surfaced #116 tester reported TSS≈21 populating after FTP — here it does not in the self-host flow. Root unclear (recompute trigger? power-stream not surfaced to NP? test vs runtime difference) — needs triage. NOT one of the merged Import job status is stuck at "queued" forever — done/failed never reached #115–120 fixes; surfaced by the end-to-end run.
  2. The coach states a false qualitative claim: asked "how many rides recently and how is my form?", it answered "You haven't done any rides recently — your fitness, fatigue, and freshness are all at zero" while the record holds 10 rides. grounding.grounded=true because the cited NUMBERS (fitness/fatigue/freshness=0.0) are real — but the prose "you haven't done any rides" is NOT grounded in the record (which has rides) and contradicts it. This is exactly the false-confidence the honesty promise targets: the grounder verifies numeric citations but not the qualitative causal claim derived from PMC=0. A second prompt ("exactly how many rides?") correctly admitted it has no count tool — but still implied "no accumulated work the past couple of weeks."

Expected: the coach must not assert "no rides" from PMC=0; it should distinguish "zero computed training load (e.g. FTP not set → no TSS)" from "no activities," consistent with #116's intent (surface the FTP prerequisite rather than present a confusing/ misleading zero). Likely a VOICE/GROUND guard: a PMC=0 with activities present must not be phrased as absence of activity.

Severity: medium (honesty-premise regression at the coach layer).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions