Public: anyone can read this; the crew can change it.
Credit, decided before it is coded: what a round pays for, and to whom #72
Check · Review · Land · Live done — Landed and live in production.
`docs/wake.md` gains a **Credit** section that decides, before #12 codes it, what a round pays for: the purse is the bloom's gate-ward progress at one point per unit, split by whose shares of the current actually carried the bloom — a three-rule ledger (what you add is yours net of the current you were a passenger on; only the bloom pays, read at the top of the tick before `rim()` answers; the blo…
shipped production is serving it deploy feb7d92
Sign in to join this conversation.
docs/wake.mdgains a Credit section that decides, before #12 codes it, what a round pays for: the purse is the bloom's gate-ward progress at one point per unit, split by whose shares of the current actually carried the bloom — a three-rule ledger (what you add is yours net of the current you were a passenger on; only the bloom pays, read at the top of the tick beforerim()answers; the bloom's own wake is nobody's, and the clamped own-wake excess comes out of that share first and then the players' forward parts in proportion) — and what it never pays for: proximity, thrusting at the bloom, riding someone else's lane. The three ways it gets gamed are answered in a sentence each, and invariant 8 is added: signed credit summed over a round equals the bloom's gate-ward progress within 10 points, and a round in which the bloom never moves pays nobody.The long version of the tolerance argument, which the rewritten issue asked be kept out of the record: ten points is 2% of the largest purse the arena can hand out (
ARENA_RADIUS= 500 points, since the bloom starts at the middle and reaching the gate's mouth on the rim ends the round), so a percentage clause could never be the binding one, and a percentage is undefined for the negative-progress round the record deliberately allows. Four things make the ledger miss: the field's cap and floor are not linear (driving the record's own braid — invariant 4, seed 11, gate at 0 — a cell sits atFIELD_MAXon about half the ticks, but it is the cell under a swimmer, not the lane the bloom rides, where the forward current averages 67 units, a ninth of the cap); the own-wake subtraction is a fitted curve clamped at the whole forward current, and for a mass-50 body that clamp binds on 1152 of that round's 1440 forward ticks, which makes it the largest source and #24's to end; the gate-ward direction is read once per 50 ms against a curving path; and the rim answers after the pull is read. The last two are geometry and measurable today — summing the bloom's own gate-ward pull gives 427.2 against 426.6 actually closed on the scoring braid, and 241.4 against 241.3 on a round pinned off-gate for 3243 ticks; reading on the far side ofrim()gives 426.8 and 241.6, so the side is worth well under a point on a whole round and is chosen for its reason, not its number. Ten points is a third of a field cell, while forgetting the passenger split or crediting gross deposits moves the sum by tens of percent, so no wrong rule fits inside the band.Scope, as the issue rewrote it: only
docs/wake.md,src/concept.ts,src/concept.test.tsand the one word inAGENTS.mdthat stopped being true. The earlier pull's README edits andsrc/world.test.tsmeasurements are reverted tomain's — #36 owns those lines, and the measurement belongs with the ledger that will be tested.src/concept.tscarries onlyCREDIT_RULE, the one sentence a player reads, plus the invariant;CREDIT_POINTS_PER_UNIT,CREDIT_TOLERANCE_POINTSandGUEST_CREDITare dropped, since no door renders a rate or a tolerance and the guest sentence belongs next to the score #12 puts it beside — the record owns both numbers in its table and the tests now read them from there, so they and invariant 8 still cannot drift apart. The check that parked this wasmain's, fixed by #61:bunx tsc --noEmitexits 0 andbun testis 119 pass on this branch. Worth a look: the "Only the bloom pays" bullet, which decides the rim side, and the tolerance section, whose argument is now three sentences instead of a page.🤖 Generated with Claude Code
Closes #38