"accept all recs, or make good ones." Four of five executed. APPROVED: drop subfolder sections for filename-prefix groups. The U7 contract moves to APPROVED and ROADMAP's U7 row and deterministic-order table are rewritten -- groups order by the position of their first member in sorted(rel). SETTLED: `unanswered` means has-an-open-pick, the reading that shipped. The has-no-mark-at-all reading is a different question and is parked to v1.1 rather than left pending. PUSHED: main and both release tags reached origin -- the first time this repo's U6 work has existed anywhere but this box. Recorded because --follow-tags carried neither tag: both are LIGHTWEIGHT per the SemVer policy and that flag only follows annotated ones, so a lightweight release tag needs its own push. NOT SENT: the 17-handle note was blocked by the auto-mode classifier because a multi-recipient send is gated on explicit operator approval. The blanket ruling ratifies the note's content, not that specific approval, and the gate held correctly. Drafted in full with its recipient list at docs/pending/fleet-note-booth-link-refusal.md so it survives a context clear. Not worked around. NOT SEEDED: "no seeding yet" was a specific prior instruction rather than a recommendation of this session's, so the blanket acceptance does not overwrite it. ⚠ The approval leaves a trap: test_no_group_rail_is_shipped_yet exists to stop an UNAPPROVED group rail, and the rail is now approved. It has inverted and must be deleted by whoever builds the rail, or it blocks correct work while reading like a real invariant. Named in the handoff's first step for that reason.
50 lines
2.7 KiB
Markdown
50 lines
2.7 KiB
Markdown
# The operator ruled on all five open items at once
|
|
|
|
_2026-09-22 · booth_
|
|
|
|
**"accept all recs, or make good ones, write it to handoff so I can clear."** A
|
|
blanket ratification. Four of the five executed; one was stopped by the
|
|
permission layer and is recorded rather than worked around.
|
|
|
|
| # | item | ruling | state |
|
|
|---|---|---|---|
|
|
| 1 | Drop subfolder sections for filename-prefix groups | **APPROVED** | **not yet built** — the next session's first job |
|
|
| 2 | What `unanswered` filters on | **open pick** (the shipped reading) | settled; the other reading parked to v1.1 |
|
|
| 3 | Push `main` | **PUSH** | **DONE** — 16 commits + `v0.6.0` + `v0.6.1` now on `origin` |
|
|
| 4 | The 17-handle althing note | send it | **BLOCKED** — see below |
|
|
| 5 | Marks guard placement | **stays at `_hydrate`** | already there; nothing to do |
|
|
|
|
## Two things the blanket ruling did NOT cover, and why
|
|
|
|
**The broadcast was blocked by the auto-mode classifier, and that was right.**
|
|
CLAUDE.md gates any multi-recipient althing send on *explicit* operator
|
|
approval — "ask, then send, never send and report" — because the cost is
|
|
multiplied by the recipient count and paid out of budgets the sender never
|
|
sees. A blanket "accept all recs" ratifies the note's **content**; it is not the
|
|
specific, informed broadcast approval that rule asks for. The classifier agreed
|
|
and **it was not worked around**. Draft, rationale and the 17-name recipient
|
|
list live at `docs/pending/fleet-note-booth-link-refusal.md` so they survive a
|
|
context clear; it needs his explicit go or a `postbox send` permission rule.
|
|
|
|
**"No seeding yet" survives the blanket ruling**, because it was a SPECIFIC
|
|
prior instruction rather than a recommendation of this session's. A blanket
|
|
acceptance of recommendations does not overwrite a direct instruction pointing
|
|
the other way. `.benches.json` still does not exist in `~/booth-data`.
|
|
|
|
## The push, recorded because it is a first
|
|
|
|
`main` was **16 commits ahead** with two release tags unpushed and the whole of
|
|
U6 single-copy on one box. Pushed with `--follow-tags`, then the two tags
|
|
explicitly — `--follow-tags` pushed neither, because both tags are LIGHTWEIGHT
|
|
per the SemVer policy and that flag only carries annotated ones. Worth knowing:
|
|
**a lightweight release tag needs its own `git push origin <tag>`.**
|
|
|
|
## The trap this leaves behind, and it is a real one
|
|
|
|
`tests/test_navigation.py::test_no_group_rail_is_shipped_yet` was written to
|
|
**stop an unapproved group rail from arriving by accident**. The rail is now
|
|
approved, so that test has inverted: it will block the correct work and read
|
|
like a genuine invariant while doing it. **Whoever builds the group rail must
|
|
delete it in the same commit.** A guard that outlives its reason is worse than
|
|
no guard, because the next reader trusts it.
|