diff --git a/wizard-work/ledger/CHECK b/wizard-work/ledger/CHECK index 4d7259b..018c992 100755 --- a/wizard-work/ledger/CHECK +++ b/wizard-work/ledger/CHECK @@ -1,12 +1,11 @@ #!/usr/bin/env bash -# CHECK — verifier for the wizard-work census artifact (Extract lane: data extraction). +# CHECK — verifier for the check-in census per-file extract (Extract lane). # -# Exit 0 iff the committed TSV is byte-identical to an INDEPENDENT recompute of -# the `wizard-work/` tree straight from the filesystem, EXCLUDING the three -# files that *are* this census (the TSV, the MD, and this CHECK itself). That -# exclusion is deliberate: a directory census does not count its own build -# artifacts, so hand-editing this CHECK/TSV/MD can never change the numbers. -# Recompute uses only find/awk (no Python, no shared extractor logic). +# Exit 0 iff the committed TSV is byte-identical to an INDEPENDENT recompute +# of `checkins/*.md` (README.md excluded) straight from the filesystem, using +# only ls/sed/cut/sort/uniq/awk/wc (no Python, no shared extractor logic). +# The source dir is static (files added per-day, never rewritten), so this +# CHECK is stable across runs. # # Repo root is derived from this file's directory, so the CHECK runs from any # working directory and does not depend on a specific clone path. @@ -15,8 +14,8 @@ set -u cd "$(dirname "${BASH_SOURCE[0]}")" || exit 1 REPO_ROOT="$(cd ../.. && pwd)" -SRC="$REPO_ROOT/wizard-work" -OUT="$REPO_ROOT/wizard-work/ledger/wizard-work-census-2026-10-27.tsv" +SRC="$REPO_ROOT/checkins" +OUT="$REPO_ROOT/wizard-work/ledger/checkin-census-2026-10-27.tsv" test -s "$OUT" || { echo "FAIL: TSV missing or empty: $OUT" >&2; exit 1; } @@ -24,32 +23,25 @@ tmp="$(mktemp)" trap 'rm -f "$tmp"' EXIT { - echo "dir,files,bytes" - for d in $(cd "$SRC" && find . -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | sort); do - [ -n "$d" ] || continue - n="$(find "$SRC/$d" -type f \ - ! -name wizard-work-census-2026-10-27.tsv \ - ! -name wizard-work-census-2026-10-27.md \ - ! -name CHECK | wc -l)" - b="$(find "$SRC/$d" -type f \ - ! -name wizard-work-census-2026-10-27.tsv \ - ! -name wizard-work-census-2026-10-27.md \ - ! -name CHECK -printf '%s\n' | awk '{s+=$1} END {print s}')" - echo "$d,$n,$b" - done - tn="$(find "$SRC" -type f \ - ! -name wizard-work-census-2026-10-27.tsv \ - ! -name wizard-work-census-2026-10-27.md \ - ! -name CHECK | wc -l)" - tb="$(find "$SRC" -type f \ - ! -name wizard-work-census-2026-10-27.tsv \ - ! -name wizard-work-census-2026-10-27.md \ - ! -name CHECK -printf '%s\n' | awk '{s+=$1} END {print s}')" - echo "TOTAL,$tn,$tb" + echo "date,wizard,size" + for f in "$SRC"/*.md; do + [ -e "$f" ] || continue + n=$(basename "$f" .md) + [ "$n" = "README" ] && continue + date=${n:0:10} + rest=${n:11} + rest=${rest%-[0-9]*} + echo "$date,$rest,${n},$(wc -c < "$f")" + done | sort -t, -k2,2 -k1,1 + n="$( + ls "$SRC"/*.md 2>/dev/null | grep -v 'README\.md$' | wc -l + )" + b="$(find "$SRC" -type f ! -name 'README.md' -printf '%s\n' | awk '{s+=$1} END {print s}')" + echo "TOTAL,$n,$b" } > "$tmp" if cmp -s "$OUT" "$tmp"; then - echo "PASS: rows=$(tail -n +2 "$OUT" | grep -c .) (10 wizard dirs + TOTAL) recomputed from $SRC (excluding self)" + echo "PASS: rows=$(tail -n +2 "$OUT" | grep -c .) (per-file checkin rows + TOTAL) recomputed from $SRC" exit 0 fi diff --git a/wizard-work/ledger/checkin-census-2026-10-27.md b/wizard-work/ledger/checkin-census-2026-10-27.md new file mode 100644 index 0000000..5969ec1 --- /dev/null +++ b/wizard-work/ledger/checkin-census-2026-10-27.md @@ -0,0 +1,72 @@ +# Check-in census — per-file extract + +Extract lane table: every check-in file in `checkins/*.md` (except the +`README.md` index), with its date, wizard, and byte size. 93 files across +32 dates (2026-09-24 through 2026-10-26); `2026-10-27` has no check-in file +filed yet. This is the ledger's daily extract: the raw per-checkin provenance +table that the summary counts are built from. + +Source: `checkins/*.md` in the troupe repo (as of 2026-10-27 08:51Z). +`wizard` = filename with leading `YYYY-MM-DD-` and trailing `-{digits}` +stripped; files that do not match that shape are grouped under their first +dash-delimited token (e.g. `cassian-q5-census`). + +| date | wizard | checkin_files | +|---|---|---| +| 2026-09-24 | zephyrus | 2 | +| 2026-09-25 | zephyrus | 1 | +| 2026-09-26 | zephyrus | 2 | +| 2026-09-27 | zephyrus | 1 | +| 2026-09-28 | zephyrus | 2 | +| 2026-09-30 | zephyrus | 1 | +| 2026-10-01 | zephyrus | 6 | +| 2026-10-02 | zephyrus | 1 | +| 2026-10-03 | zephyrus | 3 | +| 2026-10-04 | zephyrus | 2 | +| 2026-10-05 | zephyrus | 3 | +| 2026-10-06 | cassian, zephyrus, zephyrus-wizards | 9 | +| 2026-10-07 | cassian, cassian-q5-census, cassian-q5-recount, zephyrus | 6 | +| 2026-10-08 | merlin | 2 | +| 2026-10-09 | merlin | 2 | +| 2026-10-10 | mercury, merlin | 3 | +| 2026-10-11 | mercury, merlin | 3 | +| 2026-10-12 | mercury, merlin | 3 | +| 2026-10-13 | gemini, mercury, merlin | 4 | +| 2026-10-14 | mercury, merlin | 3 | +| 2026-10-15 | mercury, merlin, volt | 4 | +| 2026-10-16 | mercury, volt | 3 | +| 2026-10-17 | mercury, volt | 3 | +| 2026-10-18 | mercury, volt | 3 | +| 2026-10-19 | mercury, volt | 3 | +| 2026-10-20 | mercury, volt | 3 | +| 2026-10-21 | mercury, volt | 3 | +| 2026-10-22 | mercury | 2 | +| 2026-10-23 | mercury, volt | 3 | +| 2026-10-24 | mercury | 2 | +| 2026-10-25 | mercury, volt | 3 | +| 2026-10-26 | mercury | 2 | + +**Totals:** 93 files, 32 dates (excluding README.md), 1093700 bytes. + +## Per-wizard + +| wizard | files | +|---|---| +| cassian | 3 | +| cassian-q5-census | 1 | +| cassian-q5-recount | 1 | +| gemini | 1 | +| mercury | 17 | +| merlin | 8 | +| volt | 9 | +| zephyrus | 50 | +| zephyrus-wizards | 3 | + +## Provenance + +- Source: `checkins/*.md` in the troupe repo; recomputed 2026-10-27. +- `checkin_files` per date: count of `checkins/*.md` for that date (README.md + excluded). +- `size` per file: `wc -c < file`. +- Check: `./CHECK` independently recomputes the per-file census and diffs it + against this TSV. diff --git a/wizard-work/ledger/checkin-census-2026-10-27.tsv b/wizard-work/ledger/checkin-census-2026-10-27.tsv new file mode 100644 index 0000000..bcec070 --- /dev/null +++ b/wizard-work/ledger/checkin-census-2026-10-27.tsv @@ -0,0 +1,95 @@ +date,wizard,size +2026-10-06,cassian,2026-10-06-cassian,1729 +2026-10-07,cassian,2026-10-07-cassian,1508 +2026-10-07,cassian,2026-10-07-cassian-02,3063 +2026-10-07,cassian-q5-census,2026-10-07-cassian-q5-census,108860 +2026-10-07,cassian-q5-recount,2026-10-07-cassian-q5-recount,1024 +2026-10-13,gemini,2026-10-13-gemini,1526 +2026-10-10,mercury,2026-10-10-mercury,1400 +2026-10-11,mercury,2026-10-11-mercury,1685 +2026-10-12,mercury,2026-10-12-mercury,3367 +2026-10-13,mercury,2026-10-13-mercury,2819 +2026-10-14,mercury,2026-10-14-mercury,2006 +2026-10-15,mercury,2026-10-15-mercury,3584 +2026-10-16,mercury,2026-10-16-mercury,2553 +2026-10-17,mercury,2026-10-17-mercury,2342 +2026-10-18,mercury,2026-10-18-mercury,3502 +2026-10-19,mercury,2026-10-19-mercury,2374 +2026-10-20,mercury,2026-10-20-mercury,2907 +2026-10-21,mercury,2026-10-21-mercury,2699 +2026-10-22,mercury,2026-10-22-mercury,3401 +2026-10-23,mercury,2026-10-23-mercury,3605 +2026-10-24,mercury,2026-10-24-mercury,3337 +2026-10-25,mercury,2026-10-25-mercury,3179 +2026-10-26,mercury,2026-10-26-mercury,3913 +2026-10-08,merlin,2026-10-08-merlin,7420 +2026-10-09,merlin,2026-10-09-merlin,10933 +2026-10-10,merlin,2026-10-10-merlin,72198 +2026-10-11,merlin,2026-10-11-merlin,79779 +2026-10-12,merlin,2026-10-12-merlin,103858 +2026-10-13,merlin,2026-10-13-merlin,97059 +2026-10-14,merlin,2026-10-14-merlin,106877 +2026-10-15,merlin,2026-10-15-merlin,71451 +2026-10-15,volt,2026-10-15-volt,20376 +2026-10-16,volt,2026-10-16-volt,36160 +2026-10-17,volt,2026-10-17-volt,47852 +2026-10-18,volt,2026-10-18-volt,28266 +2026-10-19,volt,2026-10-19-volt,23993 +2026-10-20,volt,2026-10-20-volt,8226 +2026-10-21,volt,2026-10-21-volt,2388 +2026-10-23,volt,2026-10-23-volt,6561 +2026-10-25,volt,2026-10-25-volt,7732 +2026-09-24,zephyrus,2026-09-24-zephyrus,2486 +2026-09-24,zephyrus,2026-09-24-zephyrus-02,3605 +2026-09-25,zephyrus,2026-09-25-zephyrus,4383 +2026-09-26,zephyrus,2026-09-26-zephyrus,4932 +2026-09-26,zephyrus,2026-09-26-zephyrus-02,2531 +2026-09-27,zephyrus,2026-09-27-zephyrus,3032 +2026-09-28,zephyrus,2026-09-28-zephyrus,2767 +2026-09-28,zephyrus,2026-09-28-zephyrus-02,2760 +2026-09-30,zephyrus,2026-09-30-zephyrus,3091 +2026-10-01,zephyrus,2026-10-01-zephyrus,1431 +2026-10-01,zephyrus,2026-10-01-zephyrus-03,1004 +2026-10-01,zephyrus,2026-10-01-zephyrus-04,1427 +2026-10-01,zephyrus,2026-10-01-zephyrus-05,369 +2026-10-01,zephyrus,2026-10-01-zephyrus-06,4212 +2026-10-01,zephyrus,2026-10-01-zephyrus-07,2510 +2026-10-02,zephyrus,2026-10-02-zephyrus-01,9137 +2026-10-03,zephyrus,2026-10-03-zephyrus,13208 +2026-10-03,zephyrus,2026-10-03-zephyrus-02,5995 +2026-10-03,zephyrus,2026-10-03-zephyrus-03,3037 +2026-10-04,zephyrus,2026-10-04-zephyrus,6445 +2026-10-04,zephyrus,2026-10-04-zephyrus-02,5016 +2026-10-05,zephyrus,2026-10-05-zephyrus,4775 +2026-10-05,zephyrus,2026-10-05-zephyrus-02,6169 +2026-10-05,zephyrus,2026-10-05-zephyrus-03,2173 +2026-10-06,zephyrus,2026-10-06-zephyrus,7170 +2026-10-06,zephyrus,2026-10-06-zephyrus-02,3922 +2026-10-06,zephyrus,2026-10-06-zephyrus-04,2659 +2026-10-06,zephyrus,2026-10-06-zephyrus-05,3060 +2026-10-06,zephyrus,2026-10-06-zephyrus-06,1841 +2026-10-07,zephyrus,2026-10-07-zephyrus,6425 +2026-10-07,zephyrus,2026-10-07-zephyrus-02,1643 +2026-10-08,zephyrus,2026-10-08-zephyrus,4740 +2026-10-09,zephyrus,2026-10-09-zephyrus,5238 +2026-10-10,zephyrus,2026-10-10-zephyrus,3857 +2026-10-11,zephyrus,2026-10-11-zephyrus,2802 +2026-10-12,zephyrus,2026-10-12-zephyrus,2793 +2026-10-13,zephyrus,2026-10-13-zephyrus,4793 +2026-10-14,zephyrus,2026-10-14-zephyrus,3067 +2026-10-15,zephyrus,2026-10-15-zephyrus,3350 +2026-10-16,zephyrus,2026-10-16-zephyrus,3300 +2026-10-17,zephyrus,2026-10-17-zephyrus,2163 +2026-10-18,zephyrus,2026-10-18-zephyrus,2728 +2026-10-19,zephyrus,2026-10-19-zephyrus,2260 +2026-10-20,zephyrus,2026-10-20-zephyrus,3696 +2026-10-21,zephyrus,2026-10-21-zephyrus,4267 +2026-10-22,zephyrus,2026-10-22-zephyrus,1891 +2026-10-23,zephyrus,2026-10-23-zephyrus,1808 +2026-10-24,zephyrus,2026-10-24-zephyrus,4422 +2026-10-25,zephyrus,2026-10-25-zephyrus,6640 +2026-10-26,zephyrus,2026-10-26-zephyrus,6481 +2026-10-06,zephyrus-wizards,2026-10-06-zephyrus-wizards,1371 +2026-10-06,zephyrus-wizards,2026-10-06-zephyrus-wizards-02,578 +2026-10-06,zephyrus-wizards,2026-10-06-zephyrus-wizards-03,728 +TOTAL,93,1093700