ledger: re-derived git author census (Extract-lane tables) from HEAD as of 2026-10-23
This commit is contained in:
1 parent
7b33259abb
commit
48b180cb70
4 files changed
+538
No files matched your search
@@ -0,0 +1,79 @@
|
||||
#!/usr/bin/env bash
|
||||
# CHECK — git author census re-derivation verification.
|
||||
#
|
||||
# Re-derives the identity census from live `git log` (current branch HEAD) and
|
||||
# compares it, field-for-field, against the committed
|
||||
# git-author-census-2026-10-23.json. Exits 0 only on exact match.
|
||||
set -u
|
||||
|
||||
REPO=/root/troupe-standup
|
||||
OUT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
JSON="$OUT/git-author-census-2026-10-23.json"
|
||||
|
||||
echo "[CHECK] re-deriving identity census from git log (HEAD) ..."
|
||||
python3 - "$JSON" <<'PY'
|
||||
import json, subprocess, sys
|
||||
from collections import Counter, defaultdict
|
||||
|
||||
json_path = sys.argv[1]
|
||||
repo = "/root/troupe-standup"
|
||||
|
||||
def derive():
|
||||
out = subprocess.run(
|
||||
["git", "-C", repo, "log", "--format=%an%x00%ae%x00%ad", "--date=iso-strict"],
|
||||
capture_output=True, text=True, check=True).stdout
|
||||
by_pair = defaultdict(list)
|
||||
for line in out.splitlines():
|
||||
if not line.strip():
|
||||
continue
|
||||
name, email, date = line.split("\x00")
|
||||
by_pair[(name, email)].append(date)
|
||||
rows = []
|
||||
for (name, email), dates in by_pair.items():
|
||||
rows.append({"name": name, "email": email, "count": len(dates),
|
||||
"first": min(dates), "last": max(dates)})
|
||||
name_counts = Counter(r["name"] for r in rows)
|
||||
email_counts = Counter(r["email"] for r in rows)
|
||||
for r in rows:
|
||||
r["name_collides"] = name_counts[r["name"]] > 1
|
||||
r["email_collides"] = email_counts[r["email"]] > 1
|
||||
rows.sort(key=lambda r: (-r["count"], r["name"], r["email"]))
|
||||
return rows
|
||||
|
||||
expected = derive()
|
||||
committed = json.load(open(json_path))["census"]
|
||||
|
||||
if len(expected) != len(committed):
|
||||
print(" LENGTH MISMATCH: derived %d rows, committed %d rows" %
|
||||
(len(expected), len(committed)), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
for i, (e, c) in enumerate(zip(expected, committed)):
|
||||
for k in ("name", "email", "count", "first", "last", "name_collides", "email_collides"):
|
||||
if e.get(k) != c.get(k):
|
||||
print(" ROW %d FIELD %r MISMATCH: derived=%r committed=%r" %
|
||||
(i, k, e.get(k), c.get(k)), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
print("[CHECK] derived %d identity rows; exact match against %s — PASS" %
|
||||
(len(expected), json_path))
|
||||
PY
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
echo "[CHECK] re-deriving headline totals ..."
|
||||
python3 - <<'PY'
|
||||
import json
|
||||
d = json.load(open("/root/troupe-standup/wizard-work/ledger/git-author-census-2026-10-23.json"))
|
||||
md = open("/root/troupe-standup/wizard-work/ledger/git-author-census-2026-10-23.md").read()
|
||||
for needle in [str(d["total_commits"]), str(d["distinct_identities"]),
|
||||
str(len(set(c["name"] for c in d["census"]))),
|
||||
str(len(set(c["email"] for c in d["census"])))]:
|
||||
if needle not in md:
|
||||
print(" HEADLINE MISMATCH: missing " + needle, file=sys.stderr)
|
||||
sys.exit(1)
|
||||
print("[CHECK] headline totals present in .md — PASS")
|
||||
PY
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
echo "CHECK PASS: git author census re-derives cleanly."
|
||||
exit 0
|
||||
@@ -0,0 +1,40 @@
|
||||
name email count first last name_collides email_collides
|
||||
Timmy timmy@stackchain.ai 425 2026-10-08T13:15:17+00:00 2026-10-23T18:02:18+00:00 1 1
|
||||
timmy timmy@stackchain.ai 156 2026-09-24T10:30:32+00:00 2026-10-10T20:56:45+00:00 1 1
|
||||
Volt volt@agents.invalid 146 2026-10-15T13:16:57+00:00 2026-10-23T13:44:56+00:00 1 0
|
||||
Merlin merlin@agents.invalid 118 2026-10-08T17:19:41+00:00 2026-10-15T19:01:33+00:00 0 0
|
||||
Zephyrus Sparkborn zephyrus-sparkborn@agents.invalid 100 2026-09-24T10:52:32+00:00 2026-10-23T13:11:29+00:00 0 0
|
||||
ledger ledger@agents.invalid 91 2026-10-20T14:52:16+00:00 2026-10-23T18:13:51+00:00 0 0
|
||||
spark spark@agents.invalid 52 2026-10-20T14:42:05+00:00 2026-10-23T18:03:10+00:00 0 0
|
||||
beam beam@agents.invalid 38 2026-10-20T15:52:01+00:00 2026-10-23T19:18:45+00:00 0 0
|
||||
sol sol@agents.invalid 31 2026-10-20T14:43:51+00:00 2026-10-23T20:47:40+00:00 0 0
|
||||
forge forge@agents.invalid 28 2026-10-20T14:51:04+00:00 2026-10-23T18:36:16+00:00 0 0
|
||||
sphinx sphinx@agents.invalid 16 2026-10-20T20:49:01+00:00 2026-10-23T01:32:22+00:00 0 0
|
||||
Mercury mercury@agents.invalid 15 2026-10-10T20:39:30+00:00 2026-10-23T12:02:24+00:00 0 0
|
||||
quill quill@agents.invalid 15 2026-10-22T05:35:26+00:00 2026-10-23T20:42:52+00:00 0 0
|
||||
volt volt@troupe.local 13 2026-10-16T22:55:27+00:00 2026-10-22T14:11:27+00:00 1 1
|
||||
null null@agents.invalid 12 2026-10-20T17:38:12+00:00 2026-10-23T09:24:00+00:00 0 0
|
||||
Timmy timmy@agents.invalid 9 2026-09-30T13:16:41+00:00 2026-10-14T14:04:58+00:00 1 0
|
||||
volt volt@troupe.invalid 9 2026-10-17T13:09:07+00:00 2026-10-21T14:15:49+00:00 1 0
|
||||
Timmy timmy@alexanderwhitestone.com 8 2026-09-26T17:44:15+00:00 2026-10-11T00:35:24+00:00 1 1
|
||||
zephyrus-sparkborn zephyrus-sparkborn@users.noreply.forge.alexanderwhitestone.com 7 2026-10-06T16:53:11-04:00 2026-10-07T22:41:47+00:00 1 0
|
||||
Volt volt@alexanderwhitestone.com 3 2026-10-19T00:09:51+00:00 2026-10-19T02:39:45+00:00 1 1
|
||||
Volt volt@stackchain.ai 3 2026-10-20T04:04:02+00:00 2026-10-22T05:22:27+00:00 1 0
|
||||
zephyrus-sparkborn zephyrus-sparkborn@users.noreply.github.com 3 2026-10-03T12:09:02+00:00 2026-10-06T12:11:42+00:00 1 0
|
||||
Cassian Assayborn cassian@agents.invalid 2 2026-10-06T16:32:49-04:00 2026-10-07T10:03:51-04:00 1 0
|
||||
Timmy timmy@stackchain.invalid 2 2026-10-01T13:21:21+00:00 2026-10-01T13:22:05+00:00 1 0
|
||||
Volt volt@troupe.local 2 2026-10-17T10:50:25+00:00 2026-10-22T14:42:02+00:00 1 1
|
||||
timmy timmy@alexanderwhitestone.com 2 2026-10-06T20:59:25+00:00 2026-10-06T20:59:45+00:00 1 1
|
||||
volt volt@alexanderwhitestone.com 2 2026-10-18T09:42:16+00:00 2026-10-18T10:09:45+00:00 1 1
|
||||
Argus argus@agents.invalid 1 2026-10-14T12:55:09+00:00 2026-10-14T12:55:09+00:00 0 0
|
||||
Cassian Assayborn cassian@forge.local 1 2026-10-07T10:06:33-04:00 2026-10-07T10:06:33-04:00 1 0
|
||||
Timmy timmy@localhost 1 2026-10-01T12:09:42+00:00 2026-10-01T12:09:42+00:00 1 0
|
||||
Timmy timmy@stachain.ai 1 2026-10-13T06:56:57+00:00 2026-10-13T06:56:57+00:00 1 0
|
||||
Timmy timmy@stacktimmy.invalid 1 2026-10-01T13:21:48+00:00 2026-10-01T13:21:48+00:00 1 0
|
||||
Volt timmy@stackchain.ai 1 2026-10-19T07:34:05+00:00 2026-10-19T07:34:05+00:00 1 1
|
||||
Volt volt@stackchain.local 1 2026-10-17T08:01:24+00:00 2026-10-17T08:01:24+00:00 1 0
|
||||
rockachopa alexpaynex@gmail.com 1 2026-09-24T10:30:11+00:00 2026-09-24T10:30:11+00:00 0 0
|
||||
sentinel sentinel@troupe-standup.internal 1 2026-10-17T23:17:14+00:00 2026-10-17T23:17:14+00:00 0 0
|
||||
timmy timmy@hermes 1 2026-10-06T14:19:59+00:00 2026-10-06T14:19:59+00:00 1 0
|
||||
zephyrus-sparkborn zephyrus-sparkborn@noreply.local 1 2026-10-02T12:53:34+00:00 2026-10-02T12:53:34+00:00 1 0
|
||||
zephyrus-sparkborn zephyrus@alexanderwhitestone.com 1 2026-10-19T23:44:47+00:00 2026-10-19T23:44:47+00:00 1 0
|
||||
|
@@ -0,0 +1,360 @@
|
||||
{
|
||||
"generated": "2026-10-23T20:42:52+00:00",
|
||||
"repo": "/root/troupe-standup",
|
||||
"source": "git log --format=%an%00%ae%00%ad --date=iso-strict (current branch HEAD)",
|
||||
"total_commits": 1320,
|
||||
"distinct_identities": 39,
|
||||
"census": [
|
||||
{
|
||||
"name": "Timmy",
|
||||
"email": "timmy@stackchain.ai",
|
||||
"count": 425,
|
||||
"first": "2026-10-08T13:15:17+00:00",
|
||||
"last": "2026-10-23T18:02:18+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"name": "timmy",
|
||||
"email": "timmy@stackchain.ai",
|
||||
"count": 156,
|
||||
"first": "2026-09-24T10:30:32+00:00",
|
||||
"last": "2026-10-10T20:56:45+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"name": "Volt",
|
||||
"email": "volt@agents.invalid",
|
||||
"count": 146,
|
||||
"first": "2026-10-15T13:16:57+00:00",
|
||||
"last": "2026-10-23T13:44:56+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "Merlin",
|
||||
"email": "merlin@agents.invalid",
|
||||
"count": 118,
|
||||
"first": "2026-10-08T17:19:41+00:00",
|
||||
"last": "2026-10-15T19:01:33+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "Zephyrus Sparkborn",
|
||||
"email": "zephyrus-sparkborn@agents.invalid",
|
||||
"count": 100,
|
||||
"first": "2026-09-24T10:52:32+00:00",
|
||||
"last": "2026-10-23T13:11:29+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "ledger",
|
||||
"email": "ledger@agents.invalid",
|
||||
"count": 91,
|
||||
"first": "2026-10-20T14:52:16+00:00",
|
||||
"last": "2026-10-23T18:13:51+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "spark",
|
||||
"email": "spark@agents.invalid",
|
||||
"count": 52,
|
||||
"first": "2026-10-20T14:42:05+00:00",
|
||||
"last": "2026-10-23T18:03:10+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "beam",
|
||||
"email": "beam@agents.invalid",
|
||||
"count": 38,
|
||||
"first": "2026-10-20T15:52:01+00:00",
|
||||
"last": "2026-10-23T19:18:45+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "sol",
|
||||
"email": "sol@agents.invalid",
|
||||
"count": 31,
|
||||
"first": "2026-10-20T14:43:51+00:00",
|
||||
"last": "2026-10-23T20:47:40+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "forge",
|
||||
"email": "forge@agents.invalid",
|
||||
"count": 28,
|
||||
"first": "2026-10-20T14:51:04+00:00",
|
||||
"last": "2026-10-23T18:36:16+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "sphinx",
|
||||
"email": "sphinx@agents.invalid",
|
||||
"count": 16,
|
||||
"first": "2026-10-20T20:49:01+00:00",
|
||||
"last": "2026-10-23T01:32:22+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "Mercury",
|
||||
"email": "mercury@agents.invalid",
|
||||
"count": 15,
|
||||
"first": "2026-10-10T20:39:30+00:00",
|
||||
"last": "2026-10-23T12:02:24+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "quill",
|
||||
"email": "quill@agents.invalid",
|
||||
"count": 15,
|
||||
"first": "2026-10-22T05:35:26+00:00",
|
||||
"last": "2026-10-23T20:42:52+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "volt",
|
||||
"email": "volt@troupe.local",
|
||||
"count": 13,
|
||||
"first": "2026-10-16T22:55:27+00:00",
|
||||
"last": "2026-10-22T14:11:27+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"name": "null",
|
||||
"email": "null@agents.invalid",
|
||||
"count": 12,
|
||||
"first": "2026-10-20T17:38:12+00:00",
|
||||
"last": "2026-10-23T09:24:00+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "Timmy",
|
||||
"email": "timmy@agents.invalid",
|
||||
"count": 9,
|
||||
"first": "2026-09-30T13:16:41+00:00",
|
||||
"last": "2026-10-14T14:04:58+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "volt",
|
||||
"email": "volt@troupe.invalid",
|
||||
"count": 9,
|
||||
"first": "2026-10-17T13:09:07+00:00",
|
||||
"last": "2026-10-21T14:15:49+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "Timmy",
|
||||
"email": "timmy@alexanderwhitestone.com",
|
||||
"count": 8,
|
||||
"first": "2026-09-26T17:44:15+00:00",
|
||||
"last": "2026-10-11T00:35:24+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"name": "zephyrus-sparkborn",
|
||||
"email": "zephyrus-sparkborn@users.noreply.forge.alexanderwhitestone.com",
|
||||
"count": 7,
|
||||
"first": "2026-10-06T16:53:11-04:00",
|
||||
"last": "2026-10-07T22:41:47+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "Volt",
|
||||
"email": "volt@alexanderwhitestone.com",
|
||||
"count": 3,
|
||||
"first": "2026-10-19T00:09:51+00:00",
|
||||
"last": "2026-10-19T02:39:45+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"name": "Volt",
|
||||
"email": "volt@stackchain.ai",
|
||||
"count": 3,
|
||||
"first": "2026-10-20T04:04:02+00:00",
|
||||
"last": "2026-10-22T05:22:27+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "zephyrus-sparkborn",
|
||||
"email": "zephyrus-sparkborn@users.noreply.github.com",
|
||||
"count": 3,
|
||||
"first": "2026-10-03T12:09:02+00:00",
|
||||
"last": "2026-10-06T12:11:42+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "Cassian Assayborn",
|
||||
"email": "cassian@agents.invalid",
|
||||
"count": 2,
|
||||
"first": "2026-10-06T16:32:49-04:00",
|
||||
"last": "2026-10-07T10:03:51-04:00",
|
||||
"name_collides": true,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "Timmy",
|
||||
"email": "timmy@stackchain.invalid",
|
||||
"count": 2,
|
||||
"first": "2026-10-01T13:21:21+00:00",
|
||||
"last": "2026-10-01T13:22:05+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "Volt",
|
||||
"email": "volt@troupe.local",
|
||||
"count": 2,
|
||||
"first": "2026-10-17T10:50:25+00:00",
|
||||
"last": "2026-10-22T14:42:02+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"name": "timmy",
|
||||
"email": "timmy@alexanderwhitestone.com",
|
||||
"count": 2,
|
||||
"first": "2026-10-06T20:59:25+00:00",
|
||||
"last": "2026-10-06T20:59:45+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"name": "volt",
|
||||
"email": "volt@alexanderwhitestone.com",
|
||||
"count": 2,
|
||||
"first": "2026-10-18T09:42:16+00:00",
|
||||
"last": "2026-10-18T10:09:45+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"name": "Argus",
|
||||
"email": "argus@agents.invalid",
|
||||
"count": 1,
|
||||
"first": "2026-10-14T12:55:09+00:00",
|
||||
"last": "2026-10-14T12:55:09+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "Cassian Assayborn",
|
||||
"email": "cassian@forge.local",
|
||||
"count": 1,
|
||||
"first": "2026-10-07T10:06:33-04:00",
|
||||
"last": "2026-10-07T10:06:33-04:00",
|
||||
"name_collides": true,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "Timmy",
|
||||
"email": "timmy@localhost",
|
||||
"count": 1,
|
||||
"first": "2026-10-01T12:09:42+00:00",
|
||||
"last": "2026-10-01T12:09:42+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "Timmy",
|
||||
"email": "timmy@stachain.ai",
|
||||
"count": 1,
|
||||
"first": "2026-10-13T06:56:57+00:00",
|
||||
"last": "2026-10-13T06:56:57+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "Timmy",
|
||||
"email": "timmy@stacktimmy.invalid",
|
||||
"count": 1,
|
||||
"first": "2026-10-01T13:21:48+00:00",
|
||||
"last": "2026-10-01T13:21:48+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "Volt",
|
||||
"email": "timmy@stackchain.ai",
|
||||
"count": 1,
|
||||
"first": "2026-10-19T07:34:05+00:00",
|
||||
"last": "2026-10-19T07:34:05+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"name": "Volt",
|
||||
"email": "volt@stackchain.local",
|
||||
"count": 1,
|
||||
"first": "2026-10-17T08:01:24+00:00",
|
||||
"last": "2026-10-17T08:01:24+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "rockachopa",
|
||||
"email": "alexpaynex@gmail.com",
|
||||
"count": 1,
|
||||
"first": "2026-09-24T10:30:11+00:00",
|
||||
"last": "2026-09-24T10:30:11+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "sentinel",
|
||||
"email": "sentinel@troupe-standup.internal",
|
||||
"count": 1,
|
||||
"first": "2026-10-17T23:17:14+00:00",
|
||||
"last": "2026-10-17T23:17:14+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "timmy",
|
||||
"email": "timmy@hermes",
|
||||
"count": 1,
|
||||
"first": "2026-10-06T14:19:59+00:00",
|
||||
"last": "2026-10-06T14:19:59+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "zephyrus-sparkborn",
|
||||
"email": "zephyrus-sparkborn@noreply.local",
|
||||
"count": 1,
|
||||
"first": "2026-10-02T12:53:34+00:00",
|
||||
"last": "2026-10-02T12:53:34+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "zephyrus-sparkborn",
|
||||
"email": "zephyrus@alexanderwhitestone.com",
|
||||
"count": 1,
|
||||
"first": "2026-10-19T23:44:47+00:00",
|
||||
"last": "2026-10-19T23:44:47+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": false
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
# Git Author Census — troupe-standup repo
|
||||
|
||||
**Documented.** Extracted from live `git log` on HEAD of `/root/troupe-standup` as of 2026-10-23 (UTC). One row per (name, email) identity pair. Total commits: 1320. Distinct identities: 39.
|
||||
|
||||
Source command: `git log --format='%an%00%ae%00%ad' --date=iso-strict` (current branch HEAD).
|
||||
|
||||
| Rank | Name | Email | Commits | First | Last | Name collides | Email collides |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| 1 | Timmy | timmy@stackchain.ai | 425 | 2026-10-08T13:15:17+00:00 | 2026-10-23T18:02:18+00:00 | yes | yes |
|
||||
| 2 | timmy | timmy@stackchain.ai | 156 | 2026-09-24T10:30:32+00:00 | 2026-10-10T20:56:45+00:00 | yes | yes |
|
||||
| 3 | Volt | volt@agents.invalid | 146 | 2026-10-15T13:16:57+00:00 | 2026-10-23T13:44:56+00:00 | yes | no |
|
||||
| 4 | Merlin | merlin@agents.invalid | 118 | 2026-10-08T17:19:41+00:00 | 2026-10-15T19:01:33+00:00 | no | no |
|
||||
| 5 | Zephyrus Sparkborn | zephyrus-sparkborn@agents.invalid | 100 | 2026-09-24T10:52:32+00:00 | 2026-10-23T13:11:29+00:00 | no | no |
|
||||
| 6 | ledger | ledger@agents.invalid | 91 | 2026-10-20T14:52:16+00:00 | 2026-10-23T18:13:51+00:00 | no | no |
|
||||
| 7 | spark | spark@agents.invalid | 52 | 2026-10-20T14:42:05+00:00 | 2026-10-23T18:03:10+00:00 | no | no |
|
||||
| 8 | beam | beam@agents.invalid | 38 | 2026-10-20T15:52:01+00:00 | 2026-10-23T19:18:45+00:00 | no | no |
|
||||
| 9 | sol | sol@agents.invalid | 31 | 2026-10-20T14:43:51+00:00 | 2026-10-23T20:47:40+00:00 | no | no |
|
||||
| 10 | forge | forge@agents.invalid | 28 | 2026-10-20T14:51:04+00:00 | 2026-10-23T18:36:16+00:00 | no | no |
|
||||
| 11 | sphinx | sphinx@agents.invalid | 16 | 2026-10-20T20:49:01+00:00 | 2026-10-23T01:32:22+00:00 | no | no |
|
||||
| 12 | Mercury | mercury@agents.invalid | 15 | 2026-10-10T20:39:30+00:00 | 2026-10-23T12:02:24+00:00 | no | no |
|
||||
| 13 | quill | quill@agents.invalid | 15 | 2026-10-22T05:35:26+00:00 | 2026-10-23T20:42:52+00:00 | no | no |
|
||||
| 14 | volt | volt@troupe.local | 13 | 2026-10-16T22:55:27+00:00 | 2026-10-22T14:11:27+00:00 | yes | yes |
|
||||
| 15 | null | null@agents.invalid | 12 | 2026-10-20T17:38:12+00:00 | 2026-10-23T09:24:00+00:00 | no | no |
|
||||
| 16 | Timmy | timmy@agents.invalid | 9 | 2026-09-30T13:16:41+00:00 | 2026-10-14T14:04:58+00:00 | yes | no |
|
||||
| 17 | volt | volt@troupe.invalid | 9 | 2026-10-17T13:09:07+00:00 | 2026-10-21T14:15:49+00:00 | yes | no |
|
||||
| 18 | Timmy | timmy@alexanderwhitestone.com | 8 | 2026-09-26T17:44:15+00:00 | 2026-10-11T00:35:24+00:00 | yes | yes |
|
||||
| 19 | zephyrus-sparkborn | zephyrus-sparkborn@users.noreply.forge.alexanderwhitestone.com | 7 | 2026-10-06T16:53:11-04:00 | 2026-10-07T22:41:47+00:00 | yes | no |
|
||||
| 20 | Volt | volt@alexanderwhitestone.com | 3 | 2026-10-19T00:09:51+00:00 | 2026-10-19T02:39:45+00:00 | yes | yes |
|
||||
| 21 | Volt | volt@stackchain.ai | 3 | 2026-10-20T04:04:02+00:00 | 2026-10-22T05:22:27+00:00 | yes | no |
|
||||
| 22 | zephyrus-sparkborn | zephyrus-sparkborn@users.noreply.github.com | 3 | 2026-10-03T12:09:02+00:00 | 2026-10-06T12:11:42+00:00 | yes | no |
|
||||
| 23 | Cassian Assayborn | cassian@agents.invalid | 2 | 2026-10-06T16:32:49-04:00 | 2026-10-07T10:03:51-04:00 | yes | no |
|
||||
| 24 | Timmy | timmy@stackchain.invalid | 2 | 2026-10-01T13:21:21+00:00 | 2026-10-01T13:22:05+00:00 | yes | no |
|
||||
| 25 | Volt | volt@troupe.local | 2 | 2026-10-17T10:50:25+00:00 | 2026-10-22T14:42:02+00:00 | yes | yes |
|
||||
| 26 | timmy | timmy@alexanderwhitestone.com | 2 | 2026-10-06T20:59:25+00:00 | 2026-10-06T20:59:45+00:00 | yes | yes |
|
||||
| 27 | volt | volt@alexanderwhitestone.com | 2 | 2026-10-18T09:42:16+00:00 | 2026-10-18T10:09:45+00:00 | yes | yes |
|
||||
| 28 | Argus | argus@agents.invalid | 1 | 2026-10-14T12:55:09+00:00 | 2026-10-14T12:55:09+00:00 | no | no |
|
||||
| 29 | Cassian Assayborn | cassian@forge.local | 1 | 2026-10-07T10:06:33-04:00 | 2026-10-07T10:06:33-04:00 | yes | no |
|
||||
| 30 | Timmy | timmy@localhost | 1 | 2026-10-01T12:09:42+00:00 | 2026-10-01T12:09:42+00:00 | yes | no |
|
||||
| 31 | Timmy | timmy@stachain.ai | 1 | 2026-10-13T06:56:57+00:00 | 2026-10-13T06:56:57+00:00 | yes | no |
|
||||
| 32 | Timmy | timmy@stacktimmy.invalid | 1 | 2026-10-01T13:21:48+00:00 | 2026-10-01T13:21:48+00:00 | yes | no |
|
||||
| 33 | Volt | timmy@stackchain.ai | 1 | 2026-10-19T07:34:05+00:00 | 2026-10-19T07:34:05+00:00 | yes | yes |
|
||||
| 34 | Volt | volt@stackchain.local | 1 | 2026-10-17T08:01:24+00:00 | 2026-10-17T08:01:24+00:00 | yes | no |
|
||||
| 35 | rockachopa | alexpaynex@gmail.com | 1 | 2026-09-24T10:30:11+00:00 | 2026-09-24T10:30:11+00:00 | no | no |
|
||||
| 36 | sentinel | sentinel@troupe-standup.internal | 1 | 2026-10-17T23:17:14+00:00 | 2026-10-17T23:17:14+00:00 | no | no |
|
||||
| 37 | timmy | timmy@hermes | 1 | 2026-10-06T14:19:59+00:00 | 2026-10-06T14:19:59+00:00 | yes | no |
|
||||
| 38 | zephyrus-sparkborn | zephyrus-sparkborn@noreply.local | 1 | 2026-10-02T12:53:34+00:00 | 2026-10-02T12:53:34+00:00 | yes | no |
|
||||
| 39 | zephyrus-sparkborn | zephyrus@alexanderwhitestone.com | 1 | 2026-10-19T23:44:47+00:00 | 2026-10-19T23:44:47+00:00 | yes | no |
|
||||
|
||||
## Data-quality notes (identity aliasing)
|
||||
|
||||
- **Distinct name strings:** 20
|
||||
- **Distinct email strings:** 34
|
||||
- **Names with more than one email:** Cassian Assayborn, Timmy, Volt, timmy, volt, zephyrus-sparkborn
|
||||
- **Emails with more than one name:** timmy@alexanderwhitestone.com, timmy@stackchain.ai, volt@alexanderwhitestone.com, volt@troupe.local
|
||||
|
||||
## Method
|
||||
|
||||
One row per (name, email) pair. name_collides is true where the exact name string appears in more than one row; email_collides where the exact email appears in more than one row. Same persona under different string forms (e.g. `Zephyrus Sparkborn` vs `zephyrus-sparkborn`) is retained as separate rows rather than merged; see the aliasing notes.
|
||||
|
||||
Reference in new issue
Block a user