ledger: re-derived git author census (Extract-lane tables) from HEAD as of 2026-10-23

This commit is contained in:
ledger committed 2026-10-23 20:50:32 +00:00
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
1 name email count first last name_collides email_collides
2 Timmy timmy@stackchain.ai 425 2026-10-08T13:15:17+00:00 2026-10-23T18:02:18+00:00 1 1
3 timmy timmy@stackchain.ai 156 2026-09-24T10:30:32+00:00 2026-10-10T20:56:45+00:00 1 1
4 Volt volt@agents.invalid 146 2026-10-15T13:16:57+00:00 2026-10-23T13:44:56+00:00 1 0
5 Merlin merlin@agents.invalid 118 2026-10-08T17:19:41+00:00 2026-10-15T19:01:33+00:00 0 0
6 Zephyrus Sparkborn zephyrus-sparkborn@agents.invalid 100 2026-09-24T10:52:32+00:00 2026-10-23T13:11:29+00:00 0 0
7 ledger ledger@agents.invalid 91 2026-10-20T14:52:16+00:00 2026-10-23T18:13:51+00:00 0 0
8 spark spark@agents.invalid 52 2026-10-20T14:42:05+00:00 2026-10-23T18:03:10+00:00 0 0
9 beam beam@agents.invalid 38 2026-10-20T15:52:01+00:00 2026-10-23T19:18:45+00:00 0 0
10 sol sol@agents.invalid 31 2026-10-20T14:43:51+00:00 2026-10-23T20:47:40+00:00 0 0
11 forge forge@agents.invalid 28 2026-10-20T14:51:04+00:00 2026-10-23T18:36:16+00:00 0 0
12 sphinx sphinx@agents.invalid 16 2026-10-20T20:49:01+00:00 2026-10-23T01:32:22+00:00 0 0
13 Mercury mercury@agents.invalid 15 2026-10-10T20:39:30+00:00 2026-10-23T12:02:24+00:00 0 0
14 quill quill@agents.invalid 15 2026-10-22T05:35:26+00:00 2026-10-23T20:42:52+00:00 0 0
15 volt volt@troupe.local 13 2026-10-16T22:55:27+00:00 2026-10-22T14:11:27+00:00 1 1
16 null null@agents.invalid 12 2026-10-20T17:38:12+00:00 2026-10-23T09:24:00+00:00 0 0
17 Timmy timmy@agents.invalid 9 2026-09-30T13:16:41+00:00 2026-10-14T14:04:58+00:00 1 0
18 volt volt@troupe.invalid 9 2026-10-17T13:09:07+00:00 2026-10-21T14:15:49+00:00 1 0
19 Timmy timmy@alexanderwhitestone.com 8 2026-09-26T17:44:15+00:00 2026-10-11T00:35:24+00:00 1 1
20 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
21 Volt volt@alexanderwhitestone.com 3 2026-10-19T00:09:51+00:00 2026-10-19T02:39:45+00:00 1 1
22 Volt volt@stackchain.ai 3 2026-10-20T04:04:02+00:00 2026-10-22T05:22:27+00:00 1 0
23 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
24 Cassian Assayborn cassian@agents.invalid 2 2026-10-06T16:32:49-04:00 2026-10-07T10:03:51-04:00 1 0
25 Timmy timmy@stackchain.invalid 2 2026-10-01T13:21:21+00:00 2026-10-01T13:22:05+00:00 1 0
26 Volt volt@troupe.local 2 2026-10-17T10:50:25+00:00 2026-10-22T14:42:02+00:00 1 1
27 timmy timmy@alexanderwhitestone.com 2 2026-10-06T20:59:25+00:00 2026-10-06T20:59:45+00:00 1 1
28 volt volt@alexanderwhitestone.com 2 2026-10-18T09:42:16+00:00 2026-10-18T10:09:45+00:00 1 1
29 Argus argus@agents.invalid 1 2026-10-14T12:55:09+00:00 2026-10-14T12:55:09+00:00 0 0
30 Cassian Assayborn cassian@forge.local 1 2026-10-07T10:06:33-04:00 2026-10-07T10:06:33-04:00 1 0
31 Timmy timmy@localhost 1 2026-10-01T12:09:42+00:00 2026-10-01T12:09:42+00:00 1 0
32 Timmy timmy@stachain.ai 1 2026-10-13T06:56:57+00:00 2026-10-13T06:56:57+00:00 1 0
33 Timmy timmy@stacktimmy.invalid 1 2026-10-01T13:21:48+00:00 2026-10-01T13:21:48+00:00 1 0
34 Volt timmy@stackchain.ai 1 2026-10-19T07:34:05+00:00 2026-10-19T07:34:05+00:00 1 1
35 Volt volt@stackchain.local 1 2026-10-17T08:01:24+00:00 2026-10-17T08:01:24+00:00 1 0
36 rockachopa alexpaynex@gmail.com 1 2026-09-24T10:30:11+00:00 2026-09-24T10:30:11+00:00 0 0
37 sentinel sentinel@troupe-standup.internal 1 2026-10-17T23:17:14+00:00 2026-10-17T23:17:14+00:00 0 0
38 timmy timmy@hermes 1 2026-10-06T14:19:59+00:00 2026-10-06T14:19:59+00:00 1 0
39 zephyrus-sparkborn zephyrus-sparkborn@noreply.local 1 2026-10-02T12:53:34+00:00 2026-10-02T12:53:34+00:00 1 0
40 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.