checkin 2026-10-18 (volt): the check-in contract had two statements and no reader -- 25 of 69 names, 10 days with 2-8 files, and 21 of the 30 files written since the rule existed ignore it
This commit is contained in:
1 parent
c213a5d9a2
commit
8932d06748
1 file changed
+118
@@ -0,0 +1,118 @@
|
||||
# Check-in — Volt, 2026-10-18 (00:16–00:5xZ)
|
||||
|
||||
## Did
|
||||
|
||||
Built and landed the instrument for a contract that had two statements and no
|
||||
reader: **`tools/checkin_check.py`** (`588784d`, `--since` at `edaef63`, the
|
||||
files/days separation at `c213a5d`). 27 selftest cells, rc 0:
|
||||
|
||||
$ python3 tools/checkin_check.py --selftest
|
||||
selftest: 27 cells, 27 passed, 0 failed # rc 0
|
||||
|
||||
**The two sentences, verbatim.** `checkins/README.md`: *"One file per person per
|
||||
day: `YYYY-MM-DD-<handle>.md`."* `WIZARDS-TABLE.md` §"The churn contract", item 1:
|
||||
*"One check-in in `checkins/YYYY-MM-DD-<name>.md` (Did / Blocked / Next / Ask)."*
|
||||
Nothing in `tools/` read either one. Measured at `07441fa` from this host:
|
||||
|
||||
$ python3 tools/checkin_check.py --repo . --gaps
|
||||
== 69 check-in files in /root/troupe-standup/checkins ==
|
||||
roster: 9 handles; today 2026-10-18
|
||||
SKIP README.md (the directory's own README: not a check-in)
|
||||
...
|
||||
checkin_check: 69 files, 35 with a fault (BAD_NAME 25; DUPLICATE groups 10), 57 advisory
|
||||
|
||||
- **25 of 69 filenames** are not `<date>-<handle>.md`: `-01`..`-07` suffixes,
|
||||
`zephyrus-wizards{,-02,-03}`, `cassian-02`, `cassian-q5-census`,
|
||||
`cassian-q5-recount`.
|
||||
- The suffixes are not cosmetic — **10 (date, handle) days carry 2 to 8 files**.
|
||||
Worst: `2026-10-06` for zephyrus, **8 files**.
|
||||
- **57 of 69** do not carry all four of Did / Blocked / Next / Ask; 12 do.
|
||||
- **0** UNKNOWN_HANDLE, BAD_DATE, FUTURE, EMPTY.
|
||||
|
||||
**Cross-checked by shell, not by the tool that reports it** — a scanner's own
|
||||
count is not evidence for the scanner:
|
||||
|
||||
$ ls checkins/*.md | grep -v README | grep -vcE '^checkins/[0-9]{4}-[0-9]{2}-[0-9]{2}-[a-z][a-z0-9]*\.md$'
|
||||
25
|
||||
$ # intersect the four heading greps over checkins/*.md
|
||||
12 # carry all four -> 69 - 12 = 57 lack at least one
|
||||
|
||||
**Which rule is a fault and which is an advisory — measured, not assumed.**
|
||||
The filename rule was in the tree *before the first check-in existed*: README
|
||||
added `5f7f773` 2026-09-24T10:30:32Z, first check-in file added `a3c487e`
|
||||
2026-09-24T10:52:32Z (22 minutes later). The four-heading sentence entered at
|
||||
`aeac3ea` 2026-10-08T17:20:45Z, two weeks into the archive. So F1–F5 grade rc 1
|
||||
and the heading axis is counted and printed but never fails the run — grading
|
||||
history by a rule that postdates it would report the archive faulty for having
|
||||
been written first, and that noise would bury the 25 real name faults.
|
||||
|
||||
**The split that matters for the ruling below:**
|
||||
|
||||
$ python3 tools/checkin_check.py --repo . --since 2026-10-08
|
||||
since 2026-10-08: 30 graded, 39 older file(s) not graded
|
||||
no file violates the filename, date, emptiness or duplicate rule
|
||||
advisory (never rc 1): 21 of 30 files lack a Did/Blocked/Next/Ask heading
|
||||
checkin_check: 30 files, 0 with a fault, 21 advisory
|
||||
|
||||
All 25 name faults predate 2026-10-08 — the `-NN` practice stopped on 2026-10-07
|
||||
at `cassian-q5-recount`. The archive's *live* practice is filename-clean and
|
||||
heading-dirty: **21 of the 30 check-ins written since the churn contract existed
|
||||
ignore it**, this lane's own `2026-10-15`/`16`/`17` files among them (`Did`/
|
||||
`Blocked`/`Next`/`Ask` appear nowhere in them). This file is the first of mine
|
||||
that carries all four.
|
||||
|
||||
**Wired into the gates.** `tools/selftest_sweep.py` gained `checkin_check.py` on
|
||||
the read-refusal axis, and a `{bindir}` fixture: this tool's input is a
|
||||
*directory of UTF-8 files*, so a `{bin}` file probe would only have proven it
|
||||
refuses a non-directory. Sweep at `c213a5d`:
|
||||
|
||||
$ python3 tools/selftest_sweep.py --repo .
|
||||
discovery: git ls-files at c213a5d (12 tracked in tools/)
|
||||
checkin_check.py OK 27 cells 27 cells 27 cells
|
||||
sweep: 12 tools, 12 OK, 0 fatal
|
||||
checkin_check.py missing rc=2 OK cannot read checkins dir .../there-is-no-such-...
|
||||
checkin_check.py not-utf8 rc=2 OK cannot read .../not-utf8-dir/2026-01-01-volt.m...
|
||||
read-refusal: 17 probes, 17 ok, 0 fault # was 15 probes / 4 file readers
|
||||
|
||||
**A number I got wrong and fixed before it landed.** The gap table reported a
|
||||
`files` column that was really *distinct days* — zephyrus read `23 files` when
|
||||
he has **44 files across 23 days** (`c213a5d`; fixture cell `c27` now pins the
|
||||
two columns apart). Called out because the number was in a table I was about to
|
||||
quote in this file, and a mislabelled count is the exact defect this archive
|
||||
keeps grading other lanes for.
|
||||
|
||||
**Deliberately not done.** The tool renames nothing. The 25 historical names are
|
||||
the record; a gate that edited the record to turn its own report green would be
|
||||
worth less than the 25 lines it rewrote. That is why `--since` exists: the gate
|
||||
can be adopted forward (`--since 2026-10-18 --fail` → rc 0 today, 69 files left
|
||||
ungraded and *counted*, not hidden) without a single rename.
|
||||
|
||||
## Blocked
|
||||
|
||||
Nothing. One open question needs a ruling, not a blocker — see Ask.
|
||||
|
||||
## Next
|
||||
|
||||
- Await the ruling on the four-heading sentence; if it binds, run
|
||||
`python3 tools/checkin_check.py --repo . --since 2026-10-18 --fail` in the
|
||||
daily gate and make 21 lanes (this one first) comply.
|
||||
- `doc_census_check.py` full run at `c213a5d` in progress as this file is
|
||||
written — a twelfth tracked tool changes its population, and my last two
|
||||
check-ins were spent on claims that read STALE at a new rev. Verdict to be
|
||||
appended to this file, not asserted here.
|
||||
- Carry the four headings in every check-in from today.
|
||||
|
||||
## Ask
|
||||
|
||||
**One ruling from Alexander: does the churn contract's `(Did / Blocked / Next / Ask)`
|
||||
bind, or should the sentence be amended to what is practised?** Two weeks of
|
||||
evidence says it is not binding: 21 of 30 files written while it existed skip it,
|
||||
including Timmy's own daily replies being a separate channel and Merlin's
|
||||
70–100 KB single-section check-ins. If it binds, it needs a gate that fails and
|
||||
21 files to fix. If it does not, the sentence in `WIZARDS-TABLE.md` is the thing
|
||||
to change — a contract nobody follows is worse than an honest convention,
|
||||
because it teaches readers that stated rules are decoration.
|
||||
|
||||
The filename half needs no ruling: it is already clean since 2026-10-08 and the
|
||||
25 historical names can stay as the record. I recommend (a) leave the history,
|
||||
gate forward with `--since`.
|
||||
Reference in new issue
Block a user