The engine and the bot no longer import each other: geometry, movement
and captures live in src/lib/game/board.ts and both use it. The escape
test, the four directions, the king's neighbours and the enumeration of
a side's moves each exist once; the tally counts by the named end
sentences rather than by regex over them; exports nobody imports are
exports no more. The tests pin the bot's opening move and the three-
beside-the-throne capture they named but never exercised.
In the client: .small, the word-as-button, the × that dismisses, the
visually-hidden rule and the frame of the reading pages are in app.css
once; the preferences panel and the report slip share one modal shape;
the room store drops the simultaneous-round fields this game never read
and gains seatEmpty and seatUnheld, which the lobby and the join page
read instead of three spellings of their own. The wire shapes for
reports and the tally are declared in view.ts for both sides. The
artwork component is re-indented for the top level it lives at.
On the server and in deploy: the plaintext-token fallback and its
migration script guarded ledgers this game never wrote; the seat line
now requires the hash and the start line the rules revision. The route
table lists every route. The visitors digest and the nightly rollup
count Caddy's log through deploy/traffic.py, and the rollup writes the
finished-games count it had been computing behind "and False". The
reports digest is one program, deploy/report-digest.ts, that
pull-reports.sh and the desk skill both use. The deploy README, the
visitors skill and the reports skill no longer describe a browser-only
game, a /play route or a rules text in docs/; conventions.md carries
the kit's Preferences and tally sections.
Kit-shared files touched, to port back: server/src/{index,rooms,store,
tally,reports}.ts, deploy/{deploy.sh,replay-ledgers.ts,pull-reports.sh,
traffic.py,report-digest.ts,*-rollup.sh,*-visitors.sh,*-pulse.sh},
src/lib/net/{client.ts,room.svelte.ts,view.ts}, Preferences.svelte,
ReportSlip.svelte, TableTalk.svelte.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GwFKMuQnPAEHJ5yA1q4orh
38 lines
1.7 KiB
Markdown
38 lines
1.7 KiB
Markdown
---
|
|
name: hnefatafl-visitors
|
|
description: The Hnefatafl visitors report — who is at the table right now, who came today and how far each game got, and today's traffic. Use when Eric asks who has been playing, about new players or visitors, "anyone playing?", or wants a traffic report.
|
|
---
|
|
|
|
# Hnefatafl visitors
|
|
|
|
One command, one screen, printed by the droplet. Read it for Eric like a
|
|
host glancing over the hall.
|
|
|
|
## Gather
|
|
|
|
ssh root@209.97.148.244 hnefatafl-visitors.sh [YYYY-MM-DD]
|
|
|
|
Default is today, UTC; Eric is in US Eastern, so an evening at his desk
|
|
spills into the next UTC day. Run yesterday too when the hour is early.
|
|
|
|
- **as of / live sockets / rooms touched in the last hour**: the "right
|
|
now" line. One socket at a quiet hour is Eric.
|
|
- **traffic**: Caddy's access log for the day, bots split out by user
|
|
agent, page requests by page (hall, rules, guide) and room links opened,
|
|
referrers and campaign tags.
|
|
- **players today / NEW today**: names seated in rooms created today;
|
|
NEW means the name's first room ever is today.
|
|
- **rooms today**: one line each: time, code, humans vs bots, empty
|
|
seats, state (lobby only / started, no turns / in play), turn count,
|
|
span, the last turn's time, and how many lines of table talk were said.
|
|
Talk is a sign people came together; a bot game has none.
|
|
|
|
## Read it
|
|
|
|
Lead with new names and whether anyone is at the table now. Then, for
|
|
each stranger, say how far they got: a room that is "lobby only" never
|
|
filled its seats; "started, no turns" means they sat and left; a span of
|
|
a few minutes with a handful of turns is a game tried; many turns is a
|
|
game played. Eric's own names appear too (he plays as whatever he last
|
|
typed); do not count him as a visitor.
|