No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Robert Butzhammer 4dac5d65cf Carry ranking membership as data in the broadcast contract
Fixing the Masters error properly meant changing the contract, not the
sentence. The athlete object now separates ageClass, classElection,
rankingMemberships and recordClasses where it previously had one vague
categories list, and the overlay is forbidden from computing membership:
it renders the list the feed supplies. Two athletes born a year apart can
sit in completely different rankings with nothing visible to distinguish
them.

record.alert separates recordClass from athleteRankedIn, because CMAS
1.1.3.4 keeps a Masters record in the band even while the athlete
competes as Senior. A graphic assuming one implies the other would either
suppress a real record or attribute it to the wrong class.

The combined case is now a graphics state rather than a footnote: a
national title and a record in another class from the same attempt, which
is what Heike Schwerdtner did in 2025 for the host club.

Also files Q-81: how the class election reaches us at all, and what the
default is when it is absent.

Claude-Session: https://claude.ai/code/session_01CzxYoQF5kZjwE72qzfvbCJ
2026-09-02 15:01:38 +02:00
.claude/agents Move project files to the repository root 2026-09-02 08:23:27 +02:00
docs Carry ranking membership as data in the broadcast contract 2026-09-02 15:01:38 +02:00
Vorlagen Move project files to the repository root 2026-09-02 08:23:27 +02:00
.gitignore Move the stack to C#/.NET and rework the ADRs for the paper-first flow 2026-09-02 14:59:13 +02:00
CLAUDE.md Record Robert's answers: dates, championships, network, paper flow 2026-09-02 14:51:21 +02:00
README.md Record Robert's answers: dates, championships, network, paper flow 2026-09-02 14:51:21 +02:00

divetiming

Live timing, scoring and broadcast-data application for the VDST German Freediving (Apnoe) Championships, hosted by Tauchclub Ratisbona e.V. (TCReV) on 67 March 2027.

Two jobs:

  1. Scoring — capture and process athlete and attempt data to produce the official results.
  2. Broadcast — feed the livestream with everything a viewer needs to follow and understand the competition as it happens.

Built to CMAS Freediving Pool Rules 2025/01 and VDST Wettkampfordnung Apnoe v1.7 (2026). Maximum automation, minimum operator input, works with the internet unplugged.

Status: analysis and design. No production code yet — see the phase gate in docs/06-workflow.md.

Start here

Code, docs and commits are in English. The application is localized German + English.