ledger: commit census of troupe-standup main branch

This commit is contained in:
ledger committed 2026-11-03 07:24:41 +00:00
1 parent 33e8ffb828
commit 9488c57eb5
4 files changed
+2669

No files matched your search

@@ -0,0 +1,25 @@
author email commits
Timmy timmy@stackchain.ai 558
ledger ledger@agents.invalid 351
spark spark@agents.invalid 240
timmy timmy@alexandrewswhitestone.com 209
Volt volt@troupe.local 195
beam beam@agents.invalid 164
sol sol@agents.invalid 148
Zephyrus Sparkborn zephyrus-sparkborn@agents.invalid 142
quill quill@agents.invalid 128
volt volt@troupe.local 120
Merlin merlin@agents.invalid 118
forge forge@agents.invalid 62
sphinx sphinx@agents.invalid 32
null null@agents.invalid 28
Mercury mercury@agents.invalid 22
pipe pipe@localhost 18
zephyrus-sparkborn zephyrus-sparkborn@agents.invalid 14
Cassian Assayborn cassian@agents.invalid 7
troupe-pipe pipe@agents.invalid 6
argus argus@troupe 3
Sentinel sentinel@troupe.local 1
sentinel sentinel@troupe-standup.internal 1
Argus argus@agents.invalid 1
rockachopa alexpaynex@gmail.com 1
1 author email commits
2 Timmy timmy@stackchain.ai 558
3 ledger ledger@agents.invalid 351
4 spark spark@agents.invalid 240
5 timmy timmy@alexandrewswhitestone.com 209
6 Volt volt@troupe.local 195
7 beam beam@agents.invalid 164
8 sol sol@agents.invalid 148
9 Zephyrus Sparkborn zephyrus-sparkborn@agents.invalid 142
10 quill quill@agents.invalid 128
11 volt volt@troupe.local 120
12 Merlin merlin@agents.invalid 118
13 forge forge@agents.invalid 62
14 sphinx sphinx@agents.invalid 32
15 null null@agents.invalid 28
16 Mercury mercury@agents.invalid 22
17 pipe pipe@localhost 18
18 zephyrus-sparkborn zephyrus-sparkborn@agents.invalid 14
19 Cassian Assayborn cassian@agents.invalid 7
20 troupe-pipe pipe@agents.invalid 6
21 argus argus@troupe 3
22 Sentinel sentinel@troupe.local 1
23 sentinel sentinel@troupe-standup.internal 1
24 Argus argus@agents.invalid 1
25 rockachopa alexpaynex@gmail.com 1
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,18 @@
{
"task": "git-commit-census-main",
"source_repo": "troupe-standup.git",
"source_branch": "main",
"commit_count": 2569,
"rows": 2569,
"columns": [
"hash",
"short",
"author",
"email",
"date",
"subject"
],
"generated_at": "2026-11-03T00:00:00Z",
"method": "git rev-list + git log --pretty=format (NUL-separated records)",
"source_path": "/root/troupe-standup"
}
+56
View File
@@ -0,0 +1,56 @@
#!/usr/bin/env python3
"""Independent verification for the troupe-standup commit census artifact.
Exit 0 only if the artifact matches an independent recomputation from git.
"""
import subprocess
import sys
import os
from collections import Counter
OUT = "/root/.hermes/wizard-outputs/ledger"
REPO = "/root/troupe-standup"
def git(*args):
r = subprocess.run(["git", "-C", REPO] + list(args), capture_output=True, text=True, check=True)
return r.stdout
def fail(msg):
print("FAIL:", msg)
sys.exit(1)
# Independent recomputation of per-author counts straight from git.
names = [x for x in git("log", "--pretty=tformat:%an", "main").split("\n") if x]
expected_n = len(names)
expected = Counter(names)
if not os.path.exists(os.path.join(OUT, "commits-by-author.tsv")):
fail("missing commits-by-author.tsv")
actual = {}
with open(os.path.join(OUT, "commits-by-author.tsv")) as f:
header = f.readline().rstrip("\n")
if header != "author\temail\tcommits":
fail("bad header: %r" % header)
for line in f:
line = line.rstrip("\n")
if not line:
continue
parts = line.split("\t")
if len(parts) != 3:
fail("bad row: %r" % line)
name, email, c = parts[0], parts[1], int(parts[2])
actual[name] = (email, c)
if len(actual) != len(expected):
fail("author count differs: artifact=%d recomputed=%d" % (len(actual), len(expected)))
total_actual = sum(v[1] for v in actual.values())
if total_actual != expected_n:
fail("total commits differs: artifact=%d recomputed=%d" % (total_actual, expected_n))
for name, (email, c) in actual.items():
exp_c = expected.get(name, 0)
if exp_c != c:
fail("count mismatch for author %r: artifact=%d recomputed=%d" % (name, c, exp_c))
print("OK: authors=%d total_commits=%d" % (len(actual), total_actual))