ledger: Troupe daily churn census from repo filenames + git cross-check
This commit is contained in:
1 parent
613862c4a9
commit
6853f4588e
3 files changed
+614
No files matched your search
@@ -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()
|
||||
@@ -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
|
||||
|
@@ -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 |
|
||||
Reference in new issue
Block a user