Skip to content

docs(adr): let checked-in matches report without an operator - #322

Merged
patrick-hermann-sva merged 1 commit into
mainfrom
docs/adr-checkin-without-operator
Oct 13, 2026
Merged

patrick-hermann-sva merged 1 commit into
mainfrom
docs/adr-checkin-without-operator

Conversation

@patrick-hermann-sva

Copy link
Copy Markdown
Contributor

Players are going to check in at their half of the table, by phone (NFC sticker/QR) or with a key fob at the zaehlwerk hub (#321, stuttgart-things/zaehlwerk#92, stuttgart-things/zaehlwerk-firmware#63). Once both have checked in, nobody else needs to stand at the table, but ADR-0015 still requires an operator for every zaehlwerk result. The maintainer decided that checked-in matches go without one. This writes that decision down before any code, as CLAUDE.md asks of anything that contradicts an ADR.

Changes

  • ADR-0024 (German, like every ADR):
    • The two check-ins are the proof. Every check-in is created in Schmetterpause, never asserted by zaehlwerk.
    • POST /api/results sends both check-in ids instead of operator_id. Schmetterpause accepts the result only if both check-ins exist, belong to exactly home_id/away_id on different halves, have not carried a result yet, and have not expired. Each check-in carries exactly one result.
    • New entered_via = 'checkin'.
    • reported_by may be null, but only for checkin: check (reported_by is not null or entered_via = 'checkin').
    • The result stays pending, as ADR-0015 says for the test phase.
    • The Definition of Done shows these rows in their own column, as it does for scoreboard.
    • Rejected alternatives: the home player as reporter, a "Zählwerk" observer account, a bare checked_in: true flag, dropping the operator for all zaehlwerk matches.
  • ADR-0015 status: "Der Operator ist Pflicht" is superseded for checked-in matches only. The kiosk (ADR-0014) is untouched.
  • docs/adr/index.md regenerated with scripts/adr_index.sh, and the ADR added to the nav in mkdocs.yml.

Verified

  • sh scripts/docs_test.sh → "ADR index and nav are current".
  • Docs only, no Go touched, so go test was not run.
  • The MkDocs site was not built locally.

Left open, deliberately

Refs #321

🤖 Generated with Claude Code

https://claude.ai/code/session_01BPzjRwDRcLSv7QBeECfkyS


Generated by Claude Code

ADR-0024: when both players checked in at the table, by phone or by fob,
POST /api/results takes the two check-ins as proof instead of an
operator. Supersedes ADR-0015 on that one point.

Refs #321

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BPzjRwDRcLSv7QBeECfkyS

This branch was successfully deployed

1 active deployment
linting — 33ae9db4 Deployed Oct 13, 2026 by patrick-hermann-sva via terraform-validate / Terraform-Lint #577
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants