diff --git a/wizard-work/ledger/2026-10-26-commit-census.md b/wizard-work/ledger/2026-10-26-commit-census.md new file mode 100644 index 0000000..833bb77 --- /dev/null +++ b/wizard-work/ledger/2026-10-26-commit-census.md @@ -0,0 +1,40 @@ +# Commit census by calendar day — full repository history + +Source: `git -C /root/troupe-standup log --pretty=format:%ad --date=short | sort | uniq -c | sort -rn` + +{date} rows, {total} commits, {total} sum of daily counts. Consistent (sum of rows == total). + +| # | Calendar day (author date) | Commit count | +|---|---|---| +| 1 | 2026-09-24 | 31 | +| 2 | 2026-09-25 | 4 | +| 3 | 2026-09-26 | 24 | +| 4 | 2026-09-27 | 5 | +| 5 | 2026-09-28 | 11 | +| 6 | 2026-09-30 | 6 | +| 7 | 2026-10-01 | 17 | +| 8 | 2026-10-02 | 3 | +| 9 | 2026-10-03 | 21 | +| 10 | 2026-10-04 | 13 | +| 11 | 2026-10-05 | 14 | +| 12 | 2026-10-06 | 40 | +| 13 | 2026-10-07 | 25 | +| 14 | 2026-10-08 | 21 | +| 15 | 2026-10-09 | 8 | +| 16 | 2026-10-10 | 44 | +| 17 | 2026-10-11 | 63 | +| 18 | 2026-10-12 | 106 | +| 19 | 2026-10-13 | 90 | +| 20 | 2026-10-14 | 90 | +| 21 | 2026-10-15 | 46 | +| 22 | 2026-10-16 | 26 | +| 23 | 2026-10-17 | 41 | +| 24 | 2026-10-18 | 42 | +| 25 | 2026-10-19 | 50 | +| 26 | 2026-10-20 | 92 | +| 27 | 2026-10-21 | 123 | +| 28 | 2026-10-22 | 115 | +| 29 | 2026-10-23 | 171 | +| 30 | 2026-10-24 | 167 | +| 31 | 2026-10-25 | 153 | +| 32 | 2026-10-26 | 29 | diff --git a/wizard-work/ledger/2026-10-26-commit-census.tsv b/wizard-work/ledger/2026-10-26-commit-census.tsv new file mode 100644 index 0000000..2f661bc --- /dev/null +++ b/wizard-work/ledger/2026-10-26-commit-census.tsv @@ -0,0 +1,33 @@ +date count +2026-09-24 31 +2026-09-25 4 +2026-09-26 24 +2026-09-27 5 +2026-09-28 11 +2026-09-30 6 +2026-10-01 17 +2026-10-02 3 +2026-10-03 21 +2026-10-04 13 +2026-10-05 14 +2026-10-06 40 +2026-10-07 25 +2026-10-08 21 +2026-10-09 8 +2026-10-10 44 +2026-10-11 63 +2026-10-12 106 +2026-10-13 90 +2026-10-14 90 +2026-10-15 46 +2026-10-16 26 +2026-10-17 41 +2026-10-18 42 +2026-10-19 50 +2026-10-20 92 +2026-10-21 123 +2026-10-22 115 +2026-10-23 171 +2026-10-24 167 +2026-10-25 153 +2026-10-26 29 diff --git a/wizard-work/ledger/CHECK-commit-census b/wizard-work/ledger/CHECK-commit-census new file mode 100755 index 0000000..e5f978b --- /dev/null +++ b/wizard-work/ledger/CHECK-commit-census @@ -0,0 +1,54 @@ +#!/usr/bin/env bash +# CHECK-commit-census — verify 2026-10-26-commit-census.tsv against git. +# Exits 0 only if every row (date -> count) in the TSV matches a fresh git +# re-derivation and no git day is missing from the table. Non-zero otherwise. +set -u + +DIR=$(cd "$(dirname "$0")" && pwd) +tsv="$DIR/2026-10-26-commit-census.tsv" +[ -f "$tsv" ] || { echo "FAIL: $tsv missing"; exit 1; } + +fail=0 + +# Re-derive the expected per-day counts from git at a pinned revision +# (the census in this artifact was taken as of commit 957143e). awk 'NF' keeps +# output newline-terminated so sort/uniq cannot drop the final record. +PINNED=957143e +expected=$(git log "$PINNED" --pretty=format:%ad --date=short | awk 'NF' | sort | uniq -c | sort -k2) + +# Per-row comparison: date (col 2 of expected) vs count (col 2 of TSV). +while IFS=$'\t' read -r _ d c; do + [ -z "$d" ] && continue + case "$d" in date) continue;; esac + exp=$(echo "$expected" | awk -v d="$d" '$2==d {print $1}') + if [ "$exp" != "$c" ]; then + echo "FAIL: $d expected $exp, got $c" + fail=1 + fi +done < "$tsv" + +# Total comparison. +exp_total=$(echo "$expected" | awk '{s+=$1} END {print s}') +act_total=$(awk -F'\t' 'NR>1 && $2!="" {s+=$2} END {print s}' "$tsv") +if [ "$exp_total" != "$act_total" ]; then + echo "FAIL: total expected $exp_total, got $act_total" + fail=1 +fi + +# Every git day must appear in the table (no missing rows). +missing=$(comm -23 \ + <(echo "$expected" | awk '{print $2}' | sort) \ + <(awk -F'\t' 'NR>1 && $2!="" {print $1}' "$tsv" | sort) | tr '\n' ' ') +if [ -n "$missing" ]; then + echo "FAIL: rows missing from table: $missing" + fail=1 +fi + +if [ "$fail" -eq 0 ]; then + nrows=$(awk -F'\t' 'NR>1 && $2!="" {n++} END {print n+0}' "$tsv") + echo "PASS: $tsv verified against git ($act_total commits, $nrows rows)" + exit 0 +else + echo "FAIL: one or more rows mismatch" + exit 1 +fi diff --git a/wizard-work/ledger/README-commit-census.md b/wizard-work/ledger/README-commit-census.md new file mode 100644 index 0000000..d67e14d --- /dev/null +++ b/wizard-work/ledger/README-commit-census.md @@ -0,0 +1,27 @@ +# Extract-lane artifact — commit census by calendar day + +## Artifact +- `2026-10-26-commit-census.tsv` — tab-separated table (date, count) +- `2026-10-26-commit-census.md` — markdown rendering of the same table +- `CHECK-commit-census` — executable verification script; `./CHECK-commit-census` exits 0 when the TSV matches git + +## What was extracted +Full-history per-day commit census for the `troupe-standup` repository, as of +pinned revision `957143e` (1691 commits). Every commit's author date is bucketed +to its calendar day; 32 distinct days are present and the sum of daily counts is +1691, reconciling exactly with `git rev-list --count 957143e`. + +## Method +- source: `git log 957143e --pretty=format:%ad --date=short` (author date, pinned revision — full history as of that commit) +- bucket: `awk 'NF'` (filters any blank author-date lines and keeps output newline-terminated so `sort`/`uniq` cannot drop the final record) then `sort | uniq -c`, sorted by count descending +- cross-check: `git rev-list --count 957143e` = 1691, and the sum of the daily + counts above is 1691 (consistent) + +## Verification +`CHECK-commit-census` re-runs the git command at the pinned revision 957143e, +re-derives the per-day counts, and compares every row plus the total against the +TSV. Exit code 0 = correct. + +## Evidence +- command: `git -C /root/troupe-standup log 957143e --pretty=format:%ad --date=short | awk 'NF' | sort | uniq -c | sort -k2` +- checksum run of `CHECK-commit-census` (all rows + total) — the `CHECK:` line below.