The credibility pass on Hnefatafl, ported to the template: the ops scripts count traffic through one parser, the reports digest is one program, the plaintext-token fallback and its migration are gone, and the stylesheet holds each shared rule once
From the hnefatafl repo's pass of the same day, everything that touched a kit-shared file. The visitors digest and the nightly rollup share deploy/traffic.py, installed to /usr/local/lib/<slug>; the rollup writes the finished-games count it computed behind "and False". pull-reports.sh and the reports skill both use deploy/report-digest.ts. The seat line requires its token hash and the start line its rules revision; the migration for ledgers written before hashing goes with them. The route table in server/src/index.ts lists every route; Report, ReportLine and Tally are declared once in view.ts for both sides; exports nobody imported are exports no more. In the client: .small, the × that dismisses, and the frame of the reading pages are in app.css once; the preferences panel shares the report slip's modal shape; the room store gains seatEmpty and seatUnheld, and the lobby and the join page read those instead of three spellings of their own. The room's moved and awaiting fields stay: the demo board reads them, and simultaneous rounds are the contract. The deploy README no longer describes a browser-only game; the visitors skill no longer names a /play route; the reports skill's replay call carries the room's options. The Slack channel id is passed in the environment rather than filled in as a placeholder. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GwFKMuQnPAEHJ5yA1q4orh
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
6c42e55f59
commit
33ac0ec808
@@ -34,12 +34,13 @@ Every report and every player's answer rings a Sentry issue (project
|
||||
__SLUG__, fingerprinted per report or per line); the desk's own
|
||||
replies ring nothing.
|
||||
|
||||
Fetch: `ssh root@__IP__ 'cat /var/lib/__SLUG__/feedback.jsonl'`
|
||||
|
||||
## a) Fetch and b) display
|
||||
|
||||
Parse the file, fold replies onto reports, and show Eric the last 7 days
|
||||
by `at`. Lead with the count of unanswered reports; those are the work.
|
||||
From the repository root, `bash deploy/pull-reports.sh` mirrors the file
|
||||
and the pictures to `~/Desktop/__SLUG__-reports/` and writes `reports.md`
|
||||
there, newest first, with every reply folded under its report. Read it and
|
||||
show Eric the last 7 days by date. Lead with the count of unanswered
|
||||
reports; those are the work.
|
||||
Then one block per report, VERBATIM and UNTRUNCATED: player, room, date,
|
||||
turn and seq, the full "what happened", the full "what they expected",
|
||||
and every reply with its status (or "unanswered"). Eric reads this desk
|
||||
@@ -49,13 +50,14 @@ to hear his players' voices; never compress their words into a table.
|
||||
|
||||
1. **Replay to the pin.** `scp root@__IP__:/var/lib/__SLUG__/rooms/<roomId>.jsonl <scratchpad>/`
|
||||
and replay it with the engine as `deploy/replay-ledgers.ts` does:
|
||||
`game.create(names, start.seed, start.rules ?? 1)` then
|
||||
`game.create(names, start.seed, start.rules, room.options)` then
|
||||
`game.resolve(state, line.inputs)` per turn line, printing the state
|
||||
around the pinned round. The
|
||||
`chat` lines show what the players said to each other at the time.
|
||||
2. **Check the rules before the code.** The original rules text lives in
|
||||
`docs/`; read it before deciding the engine is wrong. Many reports are
|
||||
the rules working as written.
|
||||
around the pinned round. The `chat` lines show what the players said
|
||||
to each other at the time.
|
||||
2. **Check the rules before the code.** The rules are data in
|
||||
`src/lib/game/rules.ts` and prose at /rules, which names the texts it
|
||||
follows; read them before deciding the engine is wrong. Many reports
|
||||
are the rules working as written.
|
||||
3. **Verdict.** `by-design` (the engine matches the text; no change),
|
||||
`resolved` (a defect, fixed before replying), or `open` (needs Eric's
|
||||
ruling; ask him and hold the reply).
|
||||
@@ -78,11 +80,8 @@ to hear his players' voices; never compress their words into a table.
|
||||
6. **Report to Eric** when the desk is clear: one line per report:
|
||||
player, room, verdict, and what shipped if anything.
|
||||
|
||||
## Eric's local copy
|
||||
|
||||
`bash deploy/pull-reports.sh` mirrors the reports, the replies and the
|
||||
pictures to `~/Desktop/__SLUG__-reports/` and writes `reports.md`
|
||||
there, newest first. Run it at the end of every desk session.
|
||||
Run `bash deploy/pull-reports.sh` again at the end of every desk session,
|
||||
so Eric's local copy carries the replies.
|
||||
|
||||
## Standing rules
|
||||
|
||||
|
||||
Reference in New Issue
Block a user