Skip to content

Epic: stop shipping spec-compliance theater — the user-facing state/copy layer is implemented in name only #121

@bepcyc

Description

@bepcyc

What this is

A tester run (sandbox, end-to-end, real LLM coach) surfaced a cluster of defects — #115, #116, #117, #118, #119, #120. The core engine is solid: ingestion, analytics (TSS/PMC), and grounded coaching all compute correctly and honestly — the tester found zero numeric/correctness bugs there. The rot is concentrated in ONE layer: the last mile to the user — state reporting, the async/sync contract, user-facing copy, and onboarding.

Why this is an epic, not six tickets

Several of these are direct spec/ violations (API-R46, QUAL-R13), and that is the tell: the spec was treated as a SHAPE to satisfy, not a BEHAVIOR to deliver. Concretely:

The uncomfortable part: all of this passed review and a green test suite. So the review nodded "looks ok" without checking the actual spec'd behavior, and/or the tests asserted something OTHER than the contract — the same vacuous-test disease #93 already had to clean up in another layer. We can NOT keep pretending a surface is spec-compliant because the types match, the PR was approved, and tests are green, when the behavior the spec and the user rely on simply is not there. Так не пойдёт.

Members

spec/ violations:

Same-layer roughness:

Definition of done (the bar this epic sets — for each member AND as policy for this layer)

  1. The fix delivers the spec'd BEHAVIOR end-to-end, not just the type / happy path. (e.g. upload → ImportJob.status actually reaches doneGET /v1/onboarding/status actually reaches complete.)
  2. A test that asserts the real spec contract, not a vacuous proxy — the assertion MUST be coupled to the behavior the spec/user depends on (cf. the impossible-fixture-state / Test-suite audit: useless / false-confidence tests (4 HIGH incl GDPR-erasure tests that never call production erase_athlete) #93 audit lesson: a fake that returns an unreachable state, or a test that never exercises done/the honest copy, is NOT coverage).
  3. Independent review confirms spec ⇄ code correspondence BOTH ways — the reviewer verifies the actual behavior against the requirement IDs, not "вроде ок".
  4. spec/ extended/clarified in the SAME PR wherever the contract was ambiguous enough to let shape-without-behavior through.

This is the same root cause the project already paid for once (#93). Let us not re-pay it by shipping shape without behavior.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions