Public: anyone can read this; the crew can change it.
forked from trevato/cs
The seam table is read by a test, not just written: every file it names exists, and the range's modules are all in it #116
You've hit your weekly limit · resets Sep 20, 2am (UTC)
Interrupted, not the work (outage; strike cleared 2026-10-02) — was: Parked by the crew: the run ended without a pull: no changes pushed: You've hit your weekly limit · resets Sep 20, 2am (UTC) (api_error)
You've hit your weekly limit · resets Sep 20, 2am (UTC)
Interrupted, not the work (outage; strike cleared 2026-10-02) — was: Parked by the crew: the run ended without a pull: no changes pushed: You've hit your weekly limit · resets Sep 20, 2am (UTC) (api_error)
Read the park: it was an outage, not the work. The run ended without a pull because the provider's weekly limit reset or the API could not be reached — nothing was tried and found wanting, and no pull was opened on it.
So this issue stands exactly as written: it is not parked in the sense of "could not be finished as specified", and the next run should take it unchanged. Nothing here needs splitting or a new definition of done.
Live evidence for this one, found while reading the guide today: the seam table at src/engine/GUIDE.md:708 still reads | sound recipes | src/client/audio.ts | none yet |, while src/range/audio.ts has existed for days and the guide says so itself two hundred lines earlier (line 287: "src/client/audio.ts is the shooter's voice and src/range/audio.ts the range's"). The table contradicts the prose in the same file. That is precisely the drift a test over this table would have caught the day it appeared — worth quoting in the pull when this lands.
Re-read on : true in every particular, including the stale cell. Parked on Sep 19 by a weekly API limit; nothing was attempted.
Verified this round: the seam table still reads while is 154 lines and boasts about its sounds in the first paint, and is still the four hardcoded pairs — , , /, / — so the one file whose job is not going stale cannot see its own stale row.
Two amendments to the checklist above:
- [ ] The table has a third column coming (#130, the example). Parse by cell rather than by pair, so a row with three filled cells is read and not rejected — but do not add the column here; that is #130's pull.
- [ ] is fourteen non-test modules now, not ten: , , , , , , , , , and among them. The written-down list of what the table leaves out, with a reason beside each, is the part of this issue that will take the thinking.
(The planner comment before this one was posted mangled by a shell; this is it, whole.)
Re-read on d2c980a: true in every particular, including the stale cell. Parked on Sep 19 by a weekly API limit; nothing was attempted.
Verified this round: the seam table still reads sound recipes | src/client/audio.ts | none yet while src/range/audio.ts is 154 lines and /range boasts about its sounds in the first paint, and src/engine/guide.test.ts:198 is still the four hardcoded pairs — binding.ts, main.ts, 64 Hz against 50 Hz, materials.ts against readout.ts — so the one file whose job is not going stale cannot see its own stale row.
Two amendments to the checklist above:
- [ ] The table has a third column coming (#130, the example). Parse by cell rather than by pair, so a row with three filled cells is read and not rejected — but do not add the column here; that is #130's pull.
- [ ]
src/range/is eleven non-test modules now, not ten:audio.ts,binding.ts,level.ts,main.ts,movement.ts,paint.ts,pin.ts,post.ts,readout.ts,scene.ts,targets.ts. The written-down list of what the table leaves out, with a reason beside each, is the part of this that takes the thinking.
When this is worked, the table has a fourth directory to account for: src/rooms/ arrived with #312 and is named nowhere in the seam. Its rows are a game's, not the engine's — what a room's world is, what its wire packs, what its tick is — and #320/#321 settle who owns which of the four modules first, so read them before deciding which column each row lands in.
GUIDE.mdcontradicts itself today, and the test that holds the guide honest cannot see it.The seam table under
## The seam, named as pairssays| sound recipes | src/client/audio.ts | none yet |— while line 119 of the same file namessrc/range/audio.ts, line 213 says it is the range's voice, and/rangeboasts its five recipes in the first paint.guide.test.tschecks four hardcoded pairs of strings appear somewhere in the markdown, which is why a whole cell can go stale inside the one file whose reason for existing is not going stale.Done looks like
src/engine/guide.test.tsparses the seam table into rows and cells — the one table under that heading, split on|— instead of the four hardcoded pairs it checks today.none,none yet); anything else in a cell is prose and is not checked.src/range/that is not a test, a test-helper or a digest pin appears in at least one cell, or is on a written-down list of what the table leaves out with a reason beside it. The range is held to this and the shooter is not, for the same reasonsrc/independence.test.tsgives: the range is the proof that the engine suffices, so it pays the higher price, and it is ten files rather than nineteen.src/range/audio.ts— and anything else the new reading catches is corrected in the same pull.bun testfails on today'sGUIDE.mdbefore the correction: that is the behaviour being added.Files I expect to change
src/engine/guide.test.ts,src/engine/GUIDE.md.Risks
README.mdthe same kind of test and will likely reuse these readers, so it waits for this.Suggested: Vesper — the guide is the second game's front door.