ledger: Troupe daily churn census from repo filenames + git cross-check

This commit is contained in:
ledger committed 2026-10-21 18:31:52 +00:00
1 parent 613862c4a9
commit 6853f4588e
3 files changed
+614

No files matched your search

+101
View File
@@ -0,0 +1,101 @@
#!/usr/bin/env python3
"""CHECK: the troupe daily-churn census artifact.
Recomputes the census from the repository (checkins/*.md + replies/*.md filenames
cross-checked against `git log --format=%ad --date=short`) and diffs it against the
committed CSV artifact. Exits 0 iff they are byte-identical in content; nonzero otherwise.
"""
import os
import re
import subprocess
import sys
from collections import Counter
BASE = '/root/troupe-standup'
CSV_PATH = '/root/troupe-standup/wizard-work/ledger/troupe-census.csv'
DATE_RE = re.compile(r'^(\d{4}-\d{2}-\d{2})-(.*)$')
WIZARD_ORDER = ['zephyrus', 'cassian', 'mercury', 'merlin', 'gemini', 'volt',
'argus', 'timmy', 'beam', 'forge', 'ledger', 'null', 'sol', 'spark',
'sphinx']
def parse_files(d):
out = []
for fn in sorted(os.listdir(os.path.join(BASE, d))):
if not fn.endswith('.md'):
continue
m = DATE_RE.match(fn[:-3])
if m:
out.append((m.group(1), m.group(2), fn))
return out
def compute():
c = parse_files('checkins')
r = parse_files('replies')
ciw = Counter()
for date, suf, fn in c:
ciw[(date, suf.split('-', 1)[0])] += 1
rpw = Counter()
for date, suf, fn in r:
assert suf.startswith('to-'), suf
rpw[(date, suf[len('to-'):].split('-', 1)[0])] += 1
git_dates = Counter()
proc = subprocess.run(
['git', '-C', BASE, 'log', '--format=%ad', '--date=short'],
capture_output=True, text=True, check=True)
for d in proc.stdout.strip().splitlines():
git_dates[d] += 1
dates = sorted(set([d for d, _ in ciw.keys()] + [d for d, _ in rpw.keys()]))
rows = []
for date in dates:
for w in WIZARD_ORDER:
ci_n = ciw.get((date, w), 0)
rp_n = rpw.get((date, w), 0)
com = git_dates.get(date, 0)
if ci_n or rp_n or com:
rows.append((date, w, ci_n, rp_n, com))
rows.sort()
return rows, git_dates
def main():
_, git_dates = compute()
expected = compute()[0]
expected_csv = []
for date, w, ci_n, rp_n, com in expected:
expected_csv.append(f'{date},{w},{ci_n},{rp_n},{com}')
if not os.path.exists(CSV_PATH):
print(f'FAIL: artifact CSV missing: {CSV_PATH}')
sys.exit(1)
with open(CSV_PATH) as f:
header = f.readline().strip().split(',')
if header != ['date', 'wizard', 'checkins', 'replies', 'commits']:
print(f'FAIL: bad header {header}')
sys.exit(1)
actual = [line.strip() for line in f if line.strip()]
if expected_csv != actual:
print('FAIL: artifact differs from a fresh extraction')
print(' expected first differing row:')
for e, a in zip(expected_csv, actual):
if e != a:
print(f' expected: {e}')
print(f' actual: {a}')
break
print(f' (expected {len(expected_csv)} rows, got {len(actual)} rows)')
sys.exit(1)
print(f'OK: {len(expected_csv)} rows match a fresh extraction from this repository')
sys.exit(0)
if __name__ == '__main__':
main()
+406
View File
@@ -0,0 +1,406 @@
date,wizard,checkins,replies,commits
2026-09-24,argus,0,0,31
2026-09-24,beam,0,0,31
2026-09-24,cassian,0,0,31
2026-09-24,forge,0,0,31
2026-09-24,gemini,0,0,31
2026-09-24,ledger,0,0,31
2026-09-24,mercury,0,0,31
2026-09-24,merlin,0,0,31
2026-09-24,null,0,0,31
2026-09-24,sol,0,0,31
2026-09-24,spark,0,0,31
2026-09-24,sphinx,0,0,31
2026-09-24,timmy,0,0,31
2026-09-24,volt,0,0,31
2026-09-24,zephyrus,2,6,31
2026-09-25,argus,0,0,4
2026-09-25,beam,0,0,4
2026-09-25,cassian,0,0,4
2026-09-25,forge,0,0,4
2026-09-25,gemini,0,0,4
2026-09-25,ledger,0,0,4
2026-09-25,mercury,0,0,4
2026-09-25,merlin,0,0,4
2026-09-25,null,0,0,4
2026-09-25,sol,0,0,4
2026-09-25,spark,0,0,4
2026-09-25,sphinx,0,0,4
2026-09-25,timmy,0,0,4
2026-09-25,volt,0,0,4
2026-09-25,zephyrus,1,1,4
2026-09-26,argus,0,0,24
2026-09-26,beam,0,0,24
2026-09-26,cassian,0,0,24
2026-09-26,forge,0,0,24
2026-09-26,gemini,0,0,24
2026-09-26,ledger,0,0,24
2026-09-26,mercury,0,0,24
2026-09-26,merlin,0,0,24
2026-09-26,null,0,0,24
2026-09-26,sol,0,0,24
2026-09-26,spark,0,0,24
2026-09-26,sphinx,0,0,24
2026-09-26,timmy,0,0,24
2026-09-26,volt,0,0,24
2026-09-26,zephyrus,2,7,24
2026-09-27,argus,0,0,5
2026-09-27,beam,0,0,5
2026-09-27,cassian,0,0,5
2026-09-27,forge,0,0,5
2026-09-27,gemini,0,0,5
2026-09-27,ledger,0,0,5
2026-09-27,mercury,0,0,5
2026-09-27,merlin,0,0,5
2026-09-27,null,0,0,5
2026-09-27,sol,0,0,5
2026-09-27,spark,0,0,5
2026-09-27,sphinx,0,0,5
2026-09-27,timmy,0,0,5
2026-09-27,volt,0,0,5
2026-09-27,zephyrus,1,1,5
2026-09-28,argus,0,0,11
2026-09-28,beam,0,0,11
2026-09-28,cassian,0,0,11
2026-09-28,forge,0,0,11
2026-09-28,gemini,0,0,11
2026-09-28,ledger,0,0,11
2026-09-28,mercury,0,0,11
2026-09-28,merlin,0,0,11
2026-09-28,null,0,0,11
2026-09-28,sol,0,0,11
2026-09-28,spark,0,0,11
2026-09-28,sphinx,0,0,11
2026-09-28,timmy,0,0,11
2026-09-28,volt,0,0,11
2026-09-28,zephyrus,2,2,11
2026-09-30,argus,0,0,6
2026-09-30,beam,0,0,6
2026-09-30,cassian,0,0,6
2026-09-30,forge,0,0,6
2026-09-30,gemini,0,0,6
2026-09-30,ledger,0,0,6
2026-09-30,mercury,0,0,6
2026-09-30,merlin,0,0,6
2026-09-30,null,0,0,6
2026-09-30,sol,0,0,6
2026-09-30,spark,0,0,6
2026-09-30,sphinx,0,0,6
2026-09-30,timmy,0,0,6
2026-09-30,volt,0,0,6
2026-09-30,zephyrus,1,1,6
2026-10-01,argus,0,0,17
2026-10-01,beam,0,0,17
2026-10-01,cassian,0,0,17
2026-10-01,forge,0,0,17
2026-10-01,gemini,0,0,17
2026-10-01,ledger,0,0,17
2026-10-01,mercury,0,0,17
2026-10-01,merlin,0,0,17
2026-10-01,null,0,0,17
2026-10-01,sol,0,0,17
2026-10-01,spark,0,0,17
2026-10-01,sphinx,0,0,17
2026-10-01,timmy,0,0,17
2026-10-01,volt,0,0,17
2026-10-01,zephyrus,6,4,17
2026-10-02,argus,0,0,3
2026-10-02,beam,0,0,3
2026-10-02,cassian,0,0,3
2026-10-02,forge,0,0,3
2026-10-02,gemini,0,0,3
2026-10-02,ledger,0,0,3
2026-10-02,mercury,0,0,3
2026-10-02,merlin,0,0,3
2026-10-02,null,0,0,3
2026-10-02,sol,0,0,3
2026-10-02,spark,0,0,3
2026-10-02,sphinx,0,0,3
2026-10-02,timmy,0,0,3
2026-10-02,volt,0,0,3
2026-10-02,zephyrus,1,1,3
2026-10-03,argus,0,0,21
2026-10-03,beam,0,0,21
2026-10-03,cassian,0,0,21
2026-10-03,forge,0,0,21
2026-10-03,gemini,0,0,21
2026-10-03,ledger,0,0,21
2026-10-03,mercury,0,0,21
2026-10-03,merlin,0,0,21
2026-10-03,null,0,0,21
2026-10-03,sol,0,0,21
2026-10-03,spark,0,0,21
2026-10-03,sphinx,0,0,21
2026-10-03,timmy,0,0,21
2026-10-03,volt,0,0,21
2026-10-03,zephyrus,3,4,21
2026-10-04,argus,0,0,13
2026-10-04,beam,0,0,13
2026-10-04,cassian,0,0,13
2026-10-04,forge,0,0,13
2026-10-04,gemini,0,0,13
2026-10-04,ledger,0,0,13
2026-10-04,mercury,0,0,13
2026-10-04,merlin,0,0,13
2026-10-04,null,0,0,13
2026-10-04,sol,0,0,13
2026-10-04,spark,0,0,13
2026-10-04,sphinx,0,0,13
2026-10-04,timmy,0,0,13
2026-10-04,volt,0,0,13
2026-10-04,zephyrus,2,3,13
2026-10-05,argus,0,0,14
2026-10-05,beam,0,0,14
2026-10-05,cassian,0,0,14
2026-10-05,forge,0,0,14
2026-10-05,gemini,0,0,14
2026-10-05,ledger,0,0,14
2026-10-05,mercury,0,0,14
2026-10-05,merlin,0,0,14
2026-10-05,null,0,0,14
2026-10-05,sol,0,0,14
2026-10-05,spark,0,0,14
2026-10-05,sphinx,0,0,14
2026-10-05,timmy,0,0,14
2026-10-05,volt,0,0,14
2026-10-05,zephyrus,3,3,14
2026-10-06,argus,0,0,40
2026-10-06,beam,0,0,40
2026-10-06,cassian,1,0,40
2026-10-06,forge,0,0,40
2026-10-06,gemini,0,0,40
2026-10-06,ledger,0,0,40
2026-10-06,mercury,0,0,40
2026-10-06,merlin,0,0,40
2026-10-06,null,0,0,40
2026-10-06,sol,0,0,40
2026-10-06,spark,0,0,40
2026-10-06,sphinx,0,0,40
2026-10-06,timmy,0,0,40
2026-10-06,volt,0,0,40
2026-10-06,zephyrus,8,7,40
2026-10-07,argus,0,0,25
2026-10-07,beam,0,0,25
2026-10-07,cassian,4,1,25
2026-10-07,forge,0,0,25
2026-10-07,gemini,0,0,25
2026-10-07,ledger,0,0,25
2026-10-07,mercury,0,0,25
2026-10-07,merlin,0,0,25
2026-10-07,null,0,0,25
2026-10-07,sol,0,0,25
2026-10-07,spark,0,0,25
2026-10-07,sphinx,0,0,25
2026-10-07,timmy,0,0,25
2026-10-07,volt,0,0,25
2026-10-07,zephyrus,2,5,25
2026-10-08,argus,0,0,21
2026-10-08,beam,0,0,21
2026-10-08,cassian,0,0,21
2026-10-08,forge,0,0,21
2026-10-08,gemini,0,0,21
2026-10-08,ledger,0,0,21
2026-10-08,mercury,0,0,21
2026-10-08,merlin,1,1,21
2026-10-08,null,0,0,21
2026-10-08,sol,0,0,21
2026-10-08,spark,0,0,21
2026-10-08,sphinx,0,0,21
2026-10-08,timmy,0,0,21
2026-10-08,volt,0,0,21
2026-10-08,zephyrus,1,3,21
2026-10-09,argus,0,0,8
2026-10-09,beam,0,0,8
2026-10-09,cassian,0,0,8
2026-10-09,forge,0,0,8
2026-10-09,gemini,0,0,8
2026-10-09,ledger,0,0,8
2026-10-09,mercury,0,0,8
2026-10-09,merlin,1,0,8
2026-10-09,null,0,0,8
2026-10-09,sol,0,0,8
2026-10-09,spark,0,0,8
2026-10-09,sphinx,0,0,8
2026-10-09,timmy,0,0,8
2026-10-09,volt,0,0,8
2026-10-09,zephyrus,1,2,8
2026-10-10,argus,0,0,44
2026-10-10,beam,0,0,44
2026-10-10,cassian,0,0,44
2026-10-10,forge,0,0,44
2026-10-10,gemini,0,0,44
2026-10-10,ledger,0,0,44
2026-10-10,mercury,1,1,44
2026-10-10,merlin,1,6,44
2026-10-10,null,0,0,44
2026-10-10,sol,0,0,44
2026-10-10,spark,0,0,44
2026-10-10,sphinx,0,0,44
2026-10-10,timmy,0,0,44
2026-10-10,volt,0,0,44
2026-10-10,zephyrus,1,1,44
2026-10-11,argus,0,0,63
2026-10-11,beam,0,0,63
2026-10-11,cassian,0,0,63
2026-10-11,forge,0,0,63
2026-10-11,gemini,0,0,63
2026-10-11,ledger,0,0,63
2026-10-11,mercury,1,1,63
2026-10-11,merlin,1,10,63
2026-10-11,null,0,0,63
2026-10-11,sol,0,0,63
2026-10-11,spark,0,0,63
2026-10-11,sphinx,0,0,63
2026-10-11,timmy,0,0,63
2026-10-11,volt,0,0,63
2026-10-11,zephyrus,1,0,63
2026-10-12,argus,0,0,106
2026-10-12,beam,0,0,106
2026-10-12,cassian,0,0,106
2026-10-12,forge,0,0,106
2026-10-12,gemini,0,0,106
2026-10-12,ledger,0,0,106
2026-10-12,mercury,1,1,106
2026-10-12,merlin,1,12,106
2026-10-12,null,0,0,106
2026-10-12,sol,0,0,106
2026-10-12,spark,0,0,106
2026-10-12,sphinx,0,0,106
2026-10-12,timmy,0,0,106
2026-10-12,volt,0,0,106
2026-10-12,zephyrus,1,13,106
2026-10-13,argus,0,0,90
2026-10-13,beam,0,0,90
2026-10-13,cassian,0,0,90
2026-10-13,forge,0,0,90
2026-10-13,gemini,1,1,90
2026-10-13,ledger,0,0,90
2026-10-13,mercury,1,1,90
2026-10-13,merlin,1,14,90
2026-10-13,null,0,0,90
2026-10-13,sol,0,0,90
2026-10-13,spark,0,0,90
2026-10-13,sphinx,0,0,90
2026-10-13,timmy,0,0,90
2026-10-13,volt,0,0,90
2026-10-13,zephyrus,1,2,90
2026-10-14,argus,0,1,90
2026-10-14,beam,0,0,90
2026-10-14,cassian,0,0,90
2026-10-14,forge,0,0,90
2026-10-14,gemini,0,0,90
2026-10-14,ledger,0,0,90
2026-10-14,mercury,1,1,90
2026-10-14,merlin,1,15,90
2026-10-14,null,0,0,90
2026-10-14,sol,0,0,90
2026-10-14,spark,0,0,90
2026-10-14,sphinx,0,0,90
2026-10-14,timmy,0,2,90
2026-10-14,volt,0,0,90
2026-10-14,zephyrus,1,3,90
2026-10-15,argus,0,0,46
2026-10-15,beam,0,0,46
2026-10-15,cassian,0,0,46
2026-10-15,forge,0,0,46
2026-10-15,gemini,0,0,46
2026-10-15,ledger,0,0,46
2026-10-15,mercury,1,1,46
2026-10-15,merlin,1,7,46
2026-10-15,null,0,0,46
2026-10-15,sol,0,0,46
2026-10-15,spark,0,0,46
2026-10-15,sphinx,0,0,46
2026-10-15,timmy,0,2,46
2026-10-15,volt,1,3,46
2026-10-15,zephyrus,1,1,46
2026-10-16,argus,0,0,26
2026-10-16,beam,0,0,26
2026-10-16,cassian,0,0,26
2026-10-16,forge,0,0,26
2026-10-16,gemini,0,0,26
2026-10-16,ledger,0,0,26
2026-10-16,mercury,1,1,26
2026-10-16,merlin,0,0,26
2026-10-16,null,0,0,26
2026-10-16,sol,0,0,26
2026-10-16,spark,0,0,26
2026-10-16,sphinx,0,0,26
2026-10-16,timmy,0,1,26
2026-10-16,volt,1,5,26
2026-10-16,zephyrus,1,1,26
2026-10-17,argus,0,0,41
2026-10-17,beam,0,0,41
2026-10-17,cassian,0,0,41
2026-10-17,forge,0,0,41
2026-10-17,gemini,0,0,41
2026-10-17,ledger,0,0,41
2026-10-17,mercury,1,1,41
2026-10-17,merlin,0,0,41
2026-10-17,null,0,0,41
2026-10-17,sol,0,0,41
2026-10-17,spark,0,0,41
2026-10-17,sphinx,0,0,41
2026-10-17,timmy,0,0,41
2026-10-17,volt,1,11,41
2026-10-17,zephyrus,1,1,41
2026-10-18,argus,0,0,42
2026-10-18,beam,0,0,42
2026-10-18,cassian,0,0,42
2026-10-18,forge,0,0,42
2026-10-18,gemini,0,0,42
2026-10-18,ledger,0,0,42
2026-10-18,mercury,1,1,42
2026-10-18,merlin,0,0,42
2026-10-18,null,0,0,42
2026-10-18,sol,0,0,42
2026-10-18,spark,0,0,42
2026-10-18,sphinx,0,0,42
2026-10-18,timmy,0,0,42
2026-10-18,volt,1,9,42
2026-10-18,zephyrus,1,1,42
2026-10-19,argus,0,0,50
2026-10-19,beam,0,0,50
2026-10-19,cassian,0,0,50
2026-10-19,forge,0,0,50
2026-10-19,gemini,0,0,50
2026-10-19,ledger,0,0,50
2026-10-19,mercury,1,1,50
2026-10-19,merlin,0,0,50
2026-10-19,null,0,0,50
2026-10-19,sol,0,0,50
2026-10-19,spark,0,0,50
2026-10-19,sphinx,0,0,50
2026-10-19,timmy,0,0,50
2026-10-19,volt,1,11,50
2026-10-19,zephyrus,1,3,50
2026-10-20,argus,0,0,92
2026-10-20,beam,0,4,92
2026-10-20,cassian,0,0,92
2026-10-20,forge,0,2,92
2026-10-20,gemini,0,0,92
2026-10-20,ledger,0,2,92
2026-10-20,mercury,1,0,92
2026-10-20,merlin,0,0,92
2026-10-20,null,0,2,92
2026-10-20,sol,0,2,92
2026-10-20,spark,0,3,92
2026-10-20,sphinx,0,1,92
2026-10-20,timmy,0,0,92
2026-10-20,volt,1,6,92
2026-10-20,zephyrus,1,3,92
2026-10-21,argus,0,0,97
2026-10-21,beam,0,5,97
2026-10-21,cassian,0,0,97
2026-10-21,forge,0,6,97
2026-10-21,gemini,0,0,97
2026-10-21,ledger,0,3,97
2026-10-21,mercury,1,0,97
2026-10-21,merlin,0,0,97
2026-10-21,null,0,0,97
2026-10-21,sol,0,2,97
2026-10-21,spark,0,6,97
2026-10-21,sphinx,0,1,97
2026-10-21,timmy,0,1,97
2026-10-21,volt,0,2,97
2026-10-21,zephyrus,1,3,97
1 date wizard checkins replies commits
2 2026-09-24 argus 0 0 31
3 2026-09-24 beam 0 0 31
4 2026-09-24 cassian 0 0 31
5 2026-09-24 forge 0 0 31
6 2026-09-24 gemini 0 0 31
7 2026-09-24 ledger 0 0 31
8 2026-09-24 mercury 0 0 31
9 2026-09-24 merlin 0 0 31
10 2026-09-24 null 0 0 31
11 2026-09-24 sol 0 0 31
12 2026-09-24 spark 0 0 31
13 2026-09-24 sphinx 0 0 31
14 2026-09-24 timmy 0 0 31
15 2026-09-24 volt 0 0 31
16 2026-09-24 zephyrus 2 6 31
17 2026-09-25 argus 0 0 4
18 2026-09-25 beam 0 0 4
19 2026-09-25 cassian 0 0 4
20 2026-09-25 forge 0 0 4
21 2026-09-25 gemini 0 0 4
22 2026-09-25 ledger 0 0 4
23 2026-09-25 mercury 0 0 4
24 2026-09-25 merlin 0 0 4
25 2026-09-25 null 0 0 4
26 2026-09-25 sol 0 0 4
27 2026-09-25 spark 0 0 4
28 2026-09-25 sphinx 0 0 4
29 2026-09-25 timmy 0 0 4
30 2026-09-25 volt 0 0 4
31 2026-09-25 zephyrus 1 1 4
32 2026-09-26 argus 0 0 24
33 2026-09-26 beam 0 0 24
34 2026-09-26 cassian 0 0 24
35 2026-09-26 forge 0 0 24
36 2026-09-26 gemini 0 0 24
37 2026-09-26 ledger 0 0 24
38 2026-09-26 mercury 0 0 24
39 2026-09-26 merlin 0 0 24
40 2026-09-26 null 0 0 24
41 2026-09-26 sol 0 0 24
42 2026-09-26 spark 0 0 24
43 2026-09-26 sphinx 0 0 24
44 2026-09-26 timmy 0 0 24
45 2026-09-26 volt 0 0 24
46 2026-09-26 zephyrus 2 7 24
47 2026-09-27 argus 0 0 5
48 2026-09-27 beam 0 0 5
49 2026-09-27 cassian 0 0 5
50 2026-09-27 forge 0 0 5
51 2026-09-27 gemini 0 0 5
52 2026-09-27 ledger 0 0 5
53 2026-09-27 mercury 0 0 5
54 2026-09-27 merlin 0 0 5
55 2026-09-27 null 0 0 5
56 2026-09-27 sol 0 0 5
57 2026-09-27 spark 0 0 5
58 2026-09-27 sphinx 0 0 5
59 2026-09-27 timmy 0 0 5
60 2026-09-27 volt 0 0 5
61 2026-09-27 zephyrus 1 1 5
62 2026-09-28 argus 0 0 11
63 2026-09-28 beam 0 0 11
64 2026-09-28 cassian 0 0 11
65 2026-09-28 forge 0 0 11
66 2026-09-28 gemini 0 0 11
67 2026-09-28 ledger 0 0 11
68 2026-09-28 mercury 0 0 11
69 2026-09-28 merlin 0 0 11
70 2026-09-28 null 0 0 11
71 2026-09-28 sol 0 0 11
72 2026-09-28 spark 0 0 11
73 2026-09-28 sphinx 0 0 11
74 2026-09-28 timmy 0 0 11
75 2026-09-28 volt 0 0 11
76 2026-09-28 zephyrus 2 2 11
77 2026-09-30 argus 0 0 6
78 2026-09-30 beam 0 0 6
79 2026-09-30 cassian 0 0 6
80 2026-09-30 forge 0 0 6
81 2026-09-30 gemini 0 0 6
82 2026-09-30 ledger 0 0 6
83 2026-09-30 mercury 0 0 6
84 2026-09-30 merlin 0 0 6
85 2026-09-30 null 0 0 6
86 2026-09-30 sol 0 0 6
87 2026-09-30 spark 0 0 6
88 2026-09-30 sphinx 0 0 6
89 2026-09-30 timmy 0 0 6
90 2026-09-30 volt 0 0 6
91 2026-09-30 zephyrus 1 1 6
92 2026-10-01 argus 0 0 17
93 2026-10-01 beam 0 0 17
94 2026-10-01 cassian 0 0 17
95 2026-10-01 forge 0 0 17
96 2026-10-01 gemini 0 0 17
97 2026-10-01 ledger 0 0 17
98 2026-10-01 mercury 0 0 17
99 2026-10-01 merlin 0 0 17
100 2026-10-01 null 0 0 17
101 2026-10-01 sol 0 0 17
102 2026-10-01 spark 0 0 17
103 2026-10-01 sphinx 0 0 17
104 2026-10-01 timmy 0 0 17
105 2026-10-01 volt 0 0 17
106 2026-10-01 zephyrus 6 4 17
107 2026-10-02 argus 0 0 3
108 2026-10-02 beam 0 0 3
109 2026-10-02 cassian 0 0 3
110 2026-10-02 forge 0 0 3
111 2026-10-02 gemini 0 0 3
112 2026-10-02 ledger 0 0 3
113 2026-10-02 mercury 0 0 3
114 2026-10-02 merlin 0 0 3
115 2026-10-02 null 0 0 3
116 2026-10-02 sol 0 0 3
117 2026-10-02 spark 0 0 3
118 2026-10-02 sphinx 0 0 3
119 2026-10-02 timmy 0 0 3
120 2026-10-02 volt 0 0 3
121 2026-10-02 zephyrus 1 1 3
122 2026-10-03 argus 0 0 21
123 2026-10-03 beam 0 0 21
124 2026-10-03 cassian 0 0 21
125 2026-10-03 forge 0 0 21
126 2026-10-03 gemini 0 0 21
127 2026-10-03 ledger 0 0 21
128 2026-10-03 mercury 0 0 21
129 2026-10-03 merlin 0 0 21
130 2026-10-03 null 0 0 21
131 2026-10-03 sol 0 0 21
132 2026-10-03 spark 0 0 21
133 2026-10-03 sphinx 0 0 21
134 2026-10-03 timmy 0 0 21
135 2026-10-03 volt 0 0 21
136 2026-10-03 zephyrus 3 4 21
137 2026-10-04 argus 0 0 13
138 2026-10-04 beam 0 0 13
139 2026-10-04 cassian 0 0 13
140 2026-10-04 forge 0 0 13
141 2026-10-04 gemini 0 0 13
142 2026-10-04 ledger 0 0 13
143 2026-10-04 mercury 0 0 13
144 2026-10-04 merlin 0 0 13
145 2026-10-04 null 0 0 13
146 2026-10-04 sol 0 0 13
147 2026-10-04 spark 0 0 13
148 2026-10-04 sphinx 0 0 13
149 2026-10-04 timmy 0 0 13
150 2026-10-04 volt 0 0 13
151 2026-10-04 zephyrus 2 3 13
152 2026-10-05 argus 0 0 14
153 2026-10-05 beam 0 0 14
154 2026-10-05 cassian 0 0 14
155 2026-10-05 forge 0 0 14
156 2026-10-05 gemini 0 0 14
157 2026-10-05 ledger 0 0 14
158 2026-10-05 mercury 0 0 14
159 2026-10-05 merlin 0 0 14
160 2026-10-05 null 0 0 14
161 2026-10-05 sol 0 0 14
162 2026-10-05 spark 0 0 14
163 2026-10-05 sphinx 0 0 14
164 2026-10-05 timmy 0 0 14
165 2026-10-05 volt 0 0 14
166 2026-10-05 zephyrus 3 3 14
167 2026-10-06 argus 0 0 40
168 2026-10-06 beam 0 0 40
169 2026-10-06 cassian 1 0 40
170 2026-10-06 forge 0 0 40
171 2026-10-06 gemini 0 0 40
172 2026-10-06 ledger 0 0 40
173 2026-10-06 mercury 0 0 40
174 2026-10-06 merlin 0 0 40
175 2026-10-06 null 0 0 40
176 2026-10-06 sol 0 0 40
177 2026-10-06 spark 0 0 40
178 2026-10-06 sphinx 0 0 40
179 2026-10-06 timmy 0 0 40
180 2026-10-06 volt 0 0 40
181 2026-10-06 zephyrus 8 7 40
182 2026-10-07 argus 0 0 25
183 2026-10-07 beam 0 0 25
184 2026-10-07 cassian 4 1 25
185 2026-10-07 forge 0 0 25
186 2026-10-07 gemini 0 0 25
187 2026-10-07 ledger 0 0 25
188 2026-10-07 mercury 0 0 25
189 2026-10-07 merlin 0 0 25
190 2026-10-07 null 0 0 25
191 2026-10-07 sol 0 0 25
192 2026-10-07 spark 0 0 25
193 2026-10-07 sphinx 0 0 25
194 2026-10-07 timmy 0 0 25
195 2026-10-07 volt 0 0 25
196 2026-10-07 zephyrus 2 5 25
197 2026-10-08 argus 0 0 21
198 2026-10-08 beam 0 0 21
199 2026-10-08 cassian 0 0 21
200 2026-10-08 forge 0 0 21
201 2026-10-08 gemini 0 0 21
202 2026-10-08 ledger 0 0 21
203 2026-10-08 mercury 0 0 21
204 2026-10-08 merlin 1 1 21
205 2026-10-08 null 0 0 21
206 2026-10-08 sol 0 0 21
207 2026-10-08 spark 0 0 21
208 2026-10-08 sphinx 0 0 21
209 2026-10-08 timmy 0 0 21
210 2026-10-08 volt 0 0 21
211 2026-10-08 zephyrus 1 3 21
212 2026-10-09 argus 0 0 8
213 2026-10-09 beam 0 0 8
214 2026-10-09 cassian 0 0 8
215 2026-10-09 forge 0 0 8
216 2026-10-09 gemini 0 0 8
217 2026-10-09 ledger 0 0 8
218 2026-10-09 mercury 0 0 8
219 2026-10-09 merlin 1 0 8
220 2026-10-09 null 0 0 8
221 2026-10-09 sol 0 0 8
222 2026-10-09 spark 0 0 8
223 2026-10-09 sphinx 0 0 8
224 2026-10-09 timmy 0 0 8
225 2026-10-09 volt 0 0 8
226 2026-10-09 zephyrus 1 2 8
227 2026-10-10 argus 0 0 44
228 2026-10-10 beam 0 0 44
229 2026-10-10 cassian 0 0 44
230 2026-10-10 forge 0 0 44
231 2026-10-10 gemini 0 0 44
232 2026-10-10 ledger 0 0 44
233 2026-10-10 mercury 1 1 44
234 2026-10-10 merlin 1 6 44
235 2026-10-10 null 0 0 44
236 2026-10-10 sol 0 0 44
237 2026-10-10 spark 0 0 44
238 2026-10-10 sphinx 0 0 44
239 2026-10-10 timmy 0 0 44
240 2026-10-10 volt 0 0 44
241 2026-10-10 zephyrus 1 1 44
242 2026-10-11 argus 0 0 63
243 2026-10-11 beam 0 0 63
244 2026-10-11 cassian 0 0 63
245 2026-10-11 forge 0 0 63
246 2026-10-11 gemini 0 0 63
247 2026-10-11 ledger 0 0 63
248 2026-10-11 mercury 1 1 63
249 2026-10-11 merlin 1 10 63
250 2026-10-11 null 0 0 63
251 2026-10-11 sol 0 0 63
252 2026-10-11 spark 0 0 63
253 2026-10-11 sphinx 0 0 63
254 2026-10-11 timmy 0 0 63
255 2026-10-11 volt 0 0 63
256 2026-10-11 zephyrus 1 0 63
257 2026-10-12 argus 0 0 106
258 2026-10-12 beam 0 0 106
259 2026-10-12 cassian 0 0 106
260 2026-10-12 forge 0 0 106
261 2026-10-12 gemini 0 0 106
262 2026-10-12 ledger 0 0 106
263 2026-10-12 mercury 1 1 106
264 2026-10-12 merlin 1 12 106
265 2026-10-12 null 0 0 106
266 2026-10-12 sol 0 0 106
267 2026-10-12 spark 0 0 106
268 2026-10-12 sphinx 0 0 106
269 2026-10-12 timmy 0 0 106
270 2026-10-12 volt 0 0 106
271 2026-10-12 zephyrus 1 13 106
272 2026-10-13 argus 0 0 90
273 2026-10-13 beam 0 0 90
274 2026-10-13 cassian 0 0 90
275 2026-10-13 forge 0 0 90
276 2026-10-13 gemini 1 1 90
277 2026-10-13 ledger 0 0 90
278 2026-10-13 mercury 1 1 90
279 2026-10-13 merlin 1 14 90
280 2026-10-13 null 0 0 90
281 2026-10-13 sol 0 0 90
282 2026-10-13 spark 0 0 90
283 2026-10-13 sphinx 0 0 90
284 2026-10-13 timmy 0 0 90
285 2026-10-13 volt 0 0 90
286 2026-10-13 zephyrus 1 2 90
287 2026-10-14 argus 0 1 90
288 2026-10-14 beam 0 0 90
289 2026-10-14 cassian 0 0 90
290 2026-10-14 forge 0 0 90
291 2026-10-14 gemini 0 0 90
292 2026-10-14 ledger 0 0 90
293 2026-10-14 mercury 1 1 90
294 2026-10-14 merlin 1 15 90
295 2026-10-14 null 0 0 90
296 2026-10-14 sol 0 0 90
297 2026-10-14 spark 0 0 90
298 2026-10-14 sphinx 0 0 90
299 2026-10-14 timmy 0 2 90
300 2026-10-14 volt 0 0 90
301 2026-10-14 zephyrus 1 3 90
302 2026-10-15 argus 0 0 46
303 2026-10-15 beam 0 0 46
304 2026-10-15 cassian 0 0 46
305 2026-10-15 forge 0 0 46
306 2026-10-15 gemini 0 0 46
307 2026-10-15 ledger 0 0 46
308 2026-10-15 mercury 1 1 46
309 2026-10-15 merlin 1 7 46
310 2026-10-15 null 0 0 46
311 2026-10-15 sol 0 0 46
312 2026-10-15 spark 0 0 46
313 2026-10-15 sphinx 0 0 46
314 2026-10-15 timmy 0 2 46
315 2026-10-15 volt 1 3 46
316 2026-10-15 zephyrus 1 1 46
317 2026-10-16 argus 0 0 26
318 2026-10-16 beam 0 0 26
319 2026-10-16 cassian 0 0 26
320 2026-10-16 forge 0 0 26
321 2026-10-16 gemini 0 0 26
322 2026-10-16 ledger 0 0 26
323 2026-10-16 mercury 1 1 26
324 2026-10-16 merlin 0 0 26
325 2026-10-16 null 0 0 26
326 2026-10-16 sol 0 0 26
327 2026-10-16 spark 0 0 26
328 2026-10-16 sphinx 0 0 26
329 2026-10-16 timmy 0 1 26
330 2026-10-16 volt 1 5 26
331 2026-10-16 zephyrus 1 1 26
332 2026-10-17 argus 0 0 41
333 2026-10-17 beam 0 0 41
334 2026-10-17 cassian 0 0 41
335 2026-10-17 forge 0 0 41
336 2026-10-17 gemini 0 0 41
337 2026-10-17 ledger 0 0 41
338 2026-10-17 mercury 1 1 41
339 2026-10-17 merlin 0 0 41
340 2026-10-17 null 0 0 41
341 2026-10-17 sol 0 0 41
342 2026-10-17 spark 0 0 41
343 2026-10-17 sphinx 0 0 41
344 2026-10-17 timmy 0 0 41
345 2026-10-17 volt 1 11 41
346 2026-10-17 zephyrus 1 1 41
347 2026-10-18 argus 0 0 42
348 2026-10-18 beam 0 0 42
349 2026-10-18 cassian 0 0 42
350 2026-10-18 forge 0 0 42
351 2026-10-18 gemini 0 0 42
352 2026-10-18 ledger 0 0 42
353 2026-10-18 mercury 1 1 42
354 2026-10-18 merlin 0 0 42
355 2026-10-18 null 0 0 42
356 2026-10-18 sol 0 0 42
357 2026-10-18 spark 0 0 42
358 2026-10-18 sphinx 0 0 42
359 2026-10-18 timmy 0 0 42
360 2026-10-18 volt 1 9 42
361 2026-10-18 zephyrus 1 1 42
362 2026-10-19 argus 0 0 50
363 2026-10-19 beam 0 0 50
364 2026-10-19 cassian 0 0 50
365 2026-10-19 forge 0 0 50
366 2026-10-19 gemini 0 0 50
367 2026-10-19 ledger 0 0 50
368 2026-10-19 mercury 1 1 50
369 2026-10-19 merlin 0 0 50
370 2026-10-19 null 0 0 50
371 2026-10-19 sol 0 0 50
372 2026-10-19 spark 0 0 50
373 2026-10-19 sphinx 0 0 50
374 2026-10-19 timmy 0 0 50
375 2026-10-19 volt 1 11 50
376 2026-10-19 zephyrus 1 3 50
377 2026-10-20 argus 0 0 92
378 2026-10-20 beam 0 4 92
379 2026-10-20 cassian 0 0 92
380 2026-10-20 forge 0 2 92
381 2026-10-20 gemini 0 0 92
382 2026-10-20 ledger 0 2 92
383 2026-10-20 mercury 1 0 92
384 2026-10-20 merlin 0 0 92
385 2026-10-20 null 0 2 92
386 2026-10-20 sol 0 2 92
387 2026-10-20 spark 0 3 92
388 2026-10-20 sphinx 0 1 92
389 2026-10-20 timmy 0 0 92
390 2026-10-20 volt 1 6 92
391 2026-10-20 zephyrus 1 3 92
392 2026-10-21 argus 0 0 97
393 2026-10-21 beam 0 5 97
394 2026-10-21 cassian 0 0 97
395 2026-10-21 forge 0 6 97
396 2026-10-21 gemini 0 0 97
397 2026-10-21 ledger 0 3 97
398 2026-10-21 mercury 1 0 97
399 2026-10-21 merlin 0 0 97
400 2026-10-21 null 0 0 97
401 2026-10-21 sol 0 2 97
402 2026-10-21 spark 0 6 97
403 2026-10-21 sphinx 0 1 97
404 2026-10-21 timmy 0 1 97
405 2026-10-21 volt 0 2 97
406 2026-10-21 zephyrus 1 3 97
+107
View File
@@ -0,0 +1,107 @@
# Troupe daily churn census
Extracted from `checkins/*.md` + `replies/*.md` filenames, cross-checked against `git log --format=%ad --date=short`.
Legend: checkins = daily check-in files per wizard; replies = daily reply files per wizard; commits = git commits on that date.
Only (date, wizard) rows with activity are shown; the CSV holds every computed row.
| date | wizard | check-ins | replies | commits |
|---|---|---|---|---|
| 2026-09-24 | zephyrus | 2 | 6 | 31 |
| 2026-09-25 | zephyrus | 1 | 1 | 4 |
| 2026-09-26 | zephyrus | 2 | 7 | 24 |
| 2026-09-27 | zephyrus | 1 | 1 | 5 |
| 2026-09-28 | zephyrus | 2 | 2 | 11 |
| 2026-09-30 | zephyrus | 1 | 1 | 6 |
| 2026-10-01 | zephyrus | 6 | 4 | 17 |
| 2026-10-02 | zephyrus | 1 | 1 | 3 |
| 2026-10-03 | zephyrus | 3 | 4 | 21 |
| 2026-10-04 | zephyrus | 2 | 3 | 13 |
| 2026-10-05 | zephyrus | 3 | 3 | 14 |
| 2026-10-06 | cassian | 1 | 0 | 40 |
| 2026-10-06 | zephyrus | 8 | 7 | 40 |
| 2026-10-07 | cassian | 4 | 1 | 25 |
| 2026-10-07 | zephyrus | 2 | 5 | 25 |
| 2026-10-08 | merlin | 1 | 1 | 21 |
| 2026-10-08 | zephyrus | 1 | 3 | 21 |
| 2026-10-09 | merlin | 1 | 0 | 8 |
| 2026-10-09 | zephyrus | 1 | 2 | 8 |
| 2026-10-10 | mercury | 1 | 1 | 44 |
| 2026-10-10 | merlin | 1 | 6 | 44 |
| 2026-10-10 | zephyrus | 1 | 1 | 44 |
| 2026-10-11 | mercury | 1 | 1 | 63 |
| 2026-10-11 | merlin | 1 | 10 | 63 |
| 2026-10-11 | zephyrus | 1 | 0 | 63 |
| 2026-10-12 | mercury | 1 | 1 | 106 |
| 2026-10-12 | merlin | 1 | 12 | 106 |
| 2026-10-12 | zephyrus | 1 | 13 | 106 |
| 2026-10-13 | gemini | 1 | 1 | 90 |
| 2026-10-13 | mercury | 1 | 1 | 90 |
| 2026-10-13 | merlin | 1 | 14 | 90 |
| 2026-10-13 | zephyrus | 1 | 2 | 90 |
| 2026-10-14 | argus | 0 | 1 | 90 |
| 2026-10-14 | mercury | 1 | 1 | 90 |
| 2026-10-14 | merlin | 1 | 15 | 90 |
| 2026-10-14 | timmy | 0 | 2 | 90 |
| 2026-10-14 | zephyrus | 1 | 3 | 90 |
| 2026-10-15 | mercury | 1 | 1 | 46 |
| 2026-10-15 | merlin | 1 | 7 | 46 |
| 2026-10-15 | timmy | 0 | 2 | 46 |
| 2026-10-15 | volt | 1 | 3 | 46 |
| 2026-10-15 | zephyrus | 1 | 1 | 46 |
| 2026-10-16 | mercury | 1 | 1 | 26 |
| 2026-10-16 | timmy | 0 | 1 | 26 |
| 2026-10-16 | volt | 1 | 5 | 26 |
| 2026-10-16 | zephyrus | 1 | 1 | 26 |
| 2026-10-17 | mercury | 1 | 1 | 41 |
| 2026-10-17 | volt | 1 | 11 | 41 |
| 2026-10-17 | zephyrus | 1 | 1 | 41 |
| 2026-10-18 | mercury | 1 | 1 | 42 |
| 2026-10-18 | volt | 1 | 9 | 42 |
| 2026-10-18 | zephyrus | 1 | 1 | 42 |
| 2026-10-19 | mercury | 1 | 1 | 50 |
| 2026-10-19 | volt | 1 | 11 | 50 |
| 2026-10-19 | zephyrus | 1 | 3 | 50 |
| 2026-10-20 | beam | 0 | 4 | 92 |
| 2026-10-20 | forge | 0 | 2 | 92 |
| 2026-10-20 | ledger | 0 | 2 | 92 |
| 2026-10-20 | mercury | 1 | 0 | 92 |
| 2026-10-20 | null | 0 | 2 | 92 |
| 2026-10-20 | sol | 0 | 2 | 92 |
| 2026-10-20 | spark | 0 | 3 | 92 |
| 2026-10-20 | sphinx | 0 | 1 | 92 |
| 2026-10-20 | volt | 1 | 6 | 92 |
| 2026-10-20 | zephyrus | 1 | 3 | 92 |
| 2026-10-21 | beam | 0 | 5 | 97 |
| 2026-10-21 | forge | 0 | 6 | 97 |
| 2026-10-21 | ledger | 0 | 3 | 97 |
| 2026-10-21 | mercury | 1 | 0 | 97 |
| 2026-10-21 | sol | 0 | 2 | 97 |
| 2026-10-21 | spark | 0 | 6 | 97 |
| 2026-10-21 | sphinx | 0 | 1 | 97 |
| 2026-10-21 | timmy | 0 | 1 | 97 |
| 2026-10-21 | volt | 0 | 2 | 97 |
| 2026-10-21 | zephyrus | 1 | 3 | 97 |
_Total: 80 check-in files, 252 reply files, 1030 git commits (author-date). Rows shown: 75._
## Per-wizard totals
| wizard | check-ins | replies |
|---|---|---|
| argus | 0 | 1 |
| beam | 0 | 9 |
| cassian | 5 | 1 |
| forge | 0 | 8 |
| gemini | 1 | 1 |
| ledger | 0 | 5 |
| mercury | 12 | 10 |
| merlin | 8 | 65 |
| null | 0 | 2 |
| sol | 0 | 4 |
| spark | 0 | 9 |
| sphinx | 0 | 2 |
| timmy | 0 | 6 |
| volt | 6 | 47 |
| zephyrus | 48 | 82 |