Skip to content

Validate complete round sets and local round invariants #18

Description

@komaksym

Parent

What to build

Validate round observations as one complete set per stable fight rather than independently surviving rows. Establish structural and local round quality before comparing the set with fight totals.

Acceptance criteria

  • A certified round set is evaluated at the complete-fight grain and requires stable fight_id; individual surviving rows cannot bypass set-level validation.
  • Expected observed keys are exactly 1..finish_round when finish-round evidence is valid; missing tables produce unavailable, and missing expected rows produce incomplete.
  • Conflicting (fight_id, round_number) observations, malformed/impossible values, and other local hard failures produce invalid and quarantine the entire round set while preserving every raw observation.
  • Local arithmetic checks enforce integer landed/attempted pairs, 0 <= landed <= attempted, significant-strike target/position decompositions, integer control seconds, and percentage recomputation from counts.
  • Schedule-derived checks run only when schedule metadata is interpretable; otherwise the relevant check is warning-level not_checked with a reason.
  • A local round defect leaves an independently valid fight total usable as warning; it does not trigger cross-grain mismatch quarantine.
  • Fixture tests cover unavailable, incomplete, invalid, duplicate-key, zero-activity, malformed, early-finish, three-round, and five-round sets.

Blocked by

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentunplannedValid work, but not scheduled — author is currently time-limited

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions