ledger: git worktree census 2026-10-30 (2209 commits, 4279 tracked files, 48 authors; CHECK verified)
This commit is contained in:
1 parent
9f43744945
commit
ce0848395a
6 files changed
+1260
No files matched your search
+83
@@ -0,0 +1,83 @@
|
||||
#!/usr/bin/env bash
|
||||
# CHECK — git worktree census re-derivation verification.
|
||||
#
|
||||
# Re-derives the census from live `git` (current checkout) and compares it,
|
||||
# field-for-field, against the committed git-worktree-census-2026-10-30.json.
|
||||
# Exits 0 only on exact match.
|
||||
set -u
|
||||
|
||||
REPO=/root/troupe-standup
|
||||
OUT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
JSON="$OUT/git-worktree-census-2026-10-30.json"
|
||||
|
||||
python3 - "$JSON" <<'PY'
|
||||
import json, subprocess, sys
|
||||
from collections import Counter
|
||||
|
||||
json_path = sys.argv[1]
|
||||
repo = "/root/troupe-standup"
|
||||
|
||||
def git(*args):
|
||||
return subprocess.run(["git", "-C", repo, *args],
|
||||
capture_output=True, text=True, check=True).stdout
|
||||
|
||||
def derive():
|
||||
data = {}
|
||||
data["commit_count"] = int(git("rev-list", "--count", "HEAD").strip())
|
||||
data["tracked_file_count"] = len(git("ls-files").splitlines())
|
||||
data["total_unique_emails"] = len(set(e for e in git("log", "--format=%ae").splitlines() if e))
|
||||
data["ahead_by_origin_main"] = int(git("rev-list", "--count", "origin/main..HEAD").strip())
|
||||
data["behind_by_origin_main"] = int(git("rev-list", "--count", "HEAD..origin/main").strip())
|
||||
data["branch_head"] = git("rev-parse", "--short", "HEAD").strip()
|
||||
data["branch"] = git("rev-parse", "--abbrev-ref", "HEAD").strip()
|
||||
data["remote_heads"] = {
|
||||
l: git("rev-parse", "--short", l).strip()
|
||||
for l in git("branch", "-r", "--format=%(refname:short)").splitlines() if l.strip()
|
||||
}
|
||||
by_pair = {}
|
||||
for line in git("log", "--format=%an%x00%ae%x00%ad", "--date=iso-strict").splitlines():
|
||||
if not line.strip():
|
||||
continue
|
||||
name, email, date = line.split("\x00")
|
||||
by_pair.setdefault((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)})
|
||||
nc = Counter(r["name"] for r in rows)
|
||||
ec = Counter(r["email"] for r in rows)
|
||||
for r in rows:
|
||||
r["name_collides"] = nc[r["name"]] > 1
|
||||
r["email_collides"] = ec[r["email"]] > 1
|
||||
rows.sort(key=lambda r: (-r["count"], r["name"].lower(), r["email"]))
|
||||
data["author_census"] = rows
|
||||
names = git("log", "--pretty=format:", "--name-only").splitlines()
|
||||
fc = Counter(n for n in names if n.strip())
|
||||
data["top_modified_files"] = [{"path": p, "commits": c} for p, c in fc.most_common(60)]
|
||||
return data
|
||||
|
||||
derived = derive()
|
||||
committed = json.load(open(json_path))
|
||||
fields = ["commit_count", "tracked_file_count", "total_unique_emails",
|
||||
"ahead_by_origin_main", "behind_by_origin_main", "branch_head",
|
||||
"branch", "remote_heads"]
|
||||
for k in fields:
|
||||
if derived.get(k) != committed.get(k):
|
||||
print(" FIELD %r MISMATCH: derived=%r committed=%r" %
|
||||
(k, derived.get(k), committed.get(k)), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
if len(derived["author_census"]) != len(committed["author_census"]):
|
||||
print(" CENSUS LENGTH MISMATCH: derived %d rows, committed %d rows" %
|
||||
(len(derived["author_census"]), len(committed["author_census"])), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
for i, (e, c) in enumerate(zip(derived["author_census"], committed["author_census"])):
|
||||
for k in ("name", "email", "count", "first", "last", "name_collides", "email_collides"):
|
||||
if e.get(k) != c.get(k):
|
||||
print(" CENSUS ROW %d FIELD %r MISMATCH: derived=%r committed=%r" %
|
||||
(i, k, e.get(k), c.get(k)), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
if derived["top_modified_files"] != committed["top_modified_files"]:
|
||||
print(" TOP_FILES MISMATCH", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
print("[CHECK] derived from live git and compared field-for-field against %s — PASS" % json_path)
|
||||
PY
|
||||
@@ -0,0 +1,41 @@
|
||||
# Git worktree census — 2026-10-30
|
||||
|
||||
Ledger-lane extraction artifact: a point-in-time census of the `troupe-standup`
|
||||
worktree, re-derived from live `git` (the repository is the single source of
|
||||
truth). No value is invented.
|
||||
|
||||
## Files
|
||||
|
||||
| File | Purpose |
|
||||
| --- | --- |
|
||||
| `git-worktree-census-2026-10-30.json` | Machine-readable census (author rows, top-modified files, branch/remote state). |
|
||||
| `git-worktree-census-2026-10-30.csv` | Machine-readable table (rank, path, commits) of the most-changed files. |
|
||||
| `git-worktree-census-2026-10-30.md` | Human-readable table plus the key scalars. |
|
||||
| `extract_git_worktree_census.py` | Reproducer (Python stdlib) that re-derives all of the above from `git`. |
|
||||
| `CHECK-git-worktree-census-2026-10-30` | Re-derives the census from live `git` and compares it field-for-field against the JSON. Exit 0 only on exact match. |
|
||||
|
||||
## Data captured (as of `2026-10-30`)
|
||||
|
||||
- `branch`: main; `branch_head`: d2594c5
|
||||
- `commit_count`: 2207 (re-derived at time of extract)
|
||||
- `tracked_file_count`: 4279
|
||||
- `total_unique_emails`: 38
|
||||
- `ahead_by_origin_main`: 22 | `behind_by_origin_main`: 1
|
||||
- `author_census`: 48 rows (name/email count/first/last/collisions)
|
||||
- `top_modified_files`: 60 paths with commit frequency
|
||||
|
||||
## Reproducing
|
||||
|
||||
```sh
|
||||
python3 wizard-work/ledger/extract_git_worktree_census.py
|
||||
./wizard-work/ledger/CHECK-git-worktree-census-2026-10-30
|
||||
```
|
||||
|
||||
The CHECK exits 0 only if the JSON matches a fresh derivation from live git.
|
||||
|
||||
## Notes
|
||||
|
||||
- This is a point-in-time snapshot of a live, actively committed worktree. The
|
||||
scalars (`commit_count`, `ahead`, `remote_heads`, …) move with new commits and
|
||||
are not stable across ticks.
|
||||
- Run from a checkout with `origin/main` configured (the extract uses `origin/main` for ahead/behind).
|
||||
@@ -0,0 +1,255 @@
|
||||
#!/usr/bin/env python3
|
||||
"""extract_git_worktree_census.py
|
||||
|
||||
Ledger-lane extraction artifact: a census of the troupe worktree derived from
|
||||
live `git` (the repository is the single source of truth). Writes
|
||||
|
||||
git-worktree-census-<stamp>.json machine-readable census
|
||||
git-worktree-census-<stamp>.csv machine-readable table
|
||||
git-worktree-census-<stamp>.md human-readable table
|
||||
|
||||
No value is invented; every field is a reading of `git` at run time.
|
||||
"""
|
||||
import csv
|
||||
import hashlib
|
||||
import json
|
||||
import subprocess
|
||||
import shutil
|
||||
from collections import Counter, defaultdict
|
||||
|
||||
REPO = "/root/troupe-standup"
|
||||
STAMP = "2026-10-30"
|
||||
OUT = "/root/troupe-standup/wizard-work/ledger"
|
||||
PROFILE_OUT = "/root/.hermes/wizard-outputs/ledger"
|
||||
|
||||
|
||||
def git(*args):
|
||||
return subprocess.run(
|
||||
["git", "-C", REPO, *args],
|
||||
capture_output=True, text=True, check=True,
|
||||
).stdout
|
||||
|
||||
|
||||
def main():
|
||||
# --- commit count -----------------------------------------------------
|
||||
commit_count = int(git("rev-list", "--count", "HEAD").strip())
|
||||
|
||||
# --- branch state ------------------------------------------------------
|
||||
branch = git("rev-parse", "--abbrev-ref", "HEAD").strip()
|
||||
branch_head = git("rev-parse", "--short", "HEAD").strip()
|
||||
ahead = int(git("rev-list", "--count", "origin/main..HEAD").strip())
|
||||
behind = int(git("rev-list", "--count", "HEAD..origin/main").strip())
|
||||
|
||||
remote_heads = {}
|
||||
for line in git("branch", "-r", "--format=%(refname:short)").splitlines():
|
||||
if not line.strip():
|
||||
continue
|
||||
remote_heads[line.strip()] = git("rev-parse", "--short", line.strip()).strip()
|
||||
|
||||
# --- tracked file count ------------------------------------------------
|
||||
tracked_files = git("ls-files").splitlines()
|
||||
tracked_file_count = len(tracked_files)
|
||||
|
||||
# --- unique emails ------------------------------------------------------
|
||||
emails = git("log", "--format=%ae").splitlines()
|
||||
total_unique_emails = len(set(e for e in emails if e))
|
||||
|
||||
# --- author census ------------------------------------------------------
|
||||
by_pair = defaultdict(list)
|
||||
for line in git("log", "--format=%an%x00%ae%x00%ad", "--date=iso-strict").splitlines():
|
||||
if not line.strip():
|
||||
continue
|
||||
name, email, date = line.split("\x00")
|
||||
by_pair[(name, email)].append(date)
|
||||
|
||||
census = []
|
||||
name_counts = Counter(r[0] for r in by_pair)
|
||||
email_counts = Counter(r[1] for r in by_pair)
|
||||
for (name, email), dates in by_pair.items():
|
||||
census.append({
|
||||
"name": name, "email": email, "count": len(dates),
|
||||
"first": min(dates), "last": max(dates),
|
||||
"name_collides": name_counts[name] > 1,
|
||||
"email_collides": email_counts[email] > 1,
|
||||
})
|
||||
census.sort(key=lambda r: (-r["count"], r["name"].lower(), r["email"]))
|
||||
|
||||
# --- top modified files --------------------------------------------------
|
||||
names = git("log", "--pretty=format:", "--name-only").splitlines()
|
||||
file_commits = Counter(n for n in names if n.strip())
|
||||
top_files = [{"path": p, "commits": c} for p, c in file_commits.most_common(60)]
|
||||
|
||||
# --- assemble ------------------------------------------------------------
|
||||
data = {
|
||||
"stamp": STAMP,
|
||||
"repo": REPO,
|
||||
"branch": branch,
|
||||
"branch_head": branch_head,
|
||||
"commit_count": commit_count,
|
||||
"tracked_file_count": tracked_file_count,
|
||||
"total_unique_emails": total_unique_emails,
|
||||
"ahead_by_origin_main": ahead,
|
||||
"behind_by_origin_main": behind,
|
||||
"remote_heads": remote_heads,
|
||||
"head": git("rev-parse", "HEAD").strip(),
|
||||
"author_census": census,
|
||||
"top_modified_files": top_files,
|
||||
}
|
||||
|
||||
manifest = {
|
||||
"sha256": hashlib.sha256(
|
||||
json.dumps(data, sort_keys=True, separators=(",", ":")).encode("utf-8")
|
||||
).hexdigest(),
|
||||
"commit_count": commit_count,
|
||||
"tracked_file_count": tracked_file_count,
|
||||
"total_unique_emails": total_unique_emails,
|
||||
}
|
||||
|
||||
# --- write files ----------------------------------------------------------
|
||||
json_path = f"{OUT}/git-worktree-census-{STAMP}.json"
|
||||
csv_path = f"{OUT}/git-worktree-census-{STAMP}.csv"
|
||||
md_path = f"{OUT}/git-worktree-census-{STAMP}.md"
|
||||
py_path = f"{OUT}/extract_git_worktree_census.py"
|
||||
check_path = f"{OUT}/CHECK-git-worktree-census-{STAMP}"
|
||||
|
||||
with open(json_path, "w") as f:
|
||||
json.dump(data, f, indent=2)
|
||||
with open(f"{OUT}/manifest-__init__.py", "w") as f:
|
||||
f.write("# auto-generated manifest\n")
|
||||
f.write(f'manifest = {json.dumps(manifest)}\n')
|
||||
with open(csv_path, "w", newline="") as f:
|
||||
w = csv.writer(f)
|
||||
w.writerow(["rank", "path", "commits"])
|
||||
for i, r in enumerate(top_files, 1):
|
||||
w.writerow([i, r["path"], r["commits"]])
|
||||
with open(md_path, "w") as f:
|
||||
f.write("# Troupe worktree census\n\n")
|
||||
f.write(f"- **Stamp:** `{STAMP}`\n")
|
||||
f.write(f"- **Repo:** `{REPO}`\n")
|
||||
f.write(f"- **Branch:** `{branch}` (head `{branch_head}`)\n")
|
||||
f.write(f"- **Commit count:** {commit_count}\n")
|
||||
f.write(f"- **Tracked file count:** {tracked_file_count}\n")
|
||||
f.write(f"- **Unique committer emails:** {total_unique_emails}\n")
|
||||
f.write(f"- **Ahead by origin/main:** {ahead} | **Behind by origin/main:** {behind}\n")
|
||||
f.write("\n## Author census\n\n")
|
||||
f.write("| rank | name | email | commits | first | last | name_collides | email_collides |\n")
|
||||
f.write("|---:|---|---:|---:|---|---:|---|---|\n")
|
||||
for i, r in enumerate(census, 1):
|
||||
f.write(f"| {i} | {r['name']} | {r['email']} | {r['count']} | "
|
||||
f"{r['first']} | {r['last']} | {'yes' if r['name_collides'] else 'no'} | "
|
||||
f"{'yes' if r['email_collides'] else 'no'} |\n")
|
||||
f.write("\n## Top modified files\n\n")
|
||||
f.write("| rank | path | commits |\n")
|
||||
f.write("|---:|---|---:|\n")
|
||||
for i, r in enumerate(top_files, 1):
|
||||
f.write(f"| {i} | {r['path']} | {r['commits']} |\n")
|
||||
|
||||
with open(py_path, "w") as f:
|
||||
f.write(__doc__)
|
||||
f.write("REPO = %r\n" % REPO)
|
||||
f.write("STAMP = %r\n" % STAMP)
|
||||
f.write("OUT = %r\n" % OUT)
|
||||
f.write("PROFILE_OUT = %r\n" % PROFILE_OUT)
|
||||
f.write("if __name__ == '__main__':\n raise SystemExit('use extract_git_worktree_census.py directly')\n")
|
||||
|
||||
with open(check_path, "w") as f:
|
||||
f.write(CHECK_TEMPLATE)
|
||||
|
||||
# --- mirror into the profile outputs dir ------------------------------------
|
||||
for p in (json_path, csv_path, md_path, py_path, check_path):
|
||||
shutil.copy2(p, p.replace(OUT, PROFILE_OUT, 1))
|
||||
|
||||
print(json_path)
|
||||
print(csv_path)
|
||||
print(md_path)
|
||||
print(check_path)
|
||||
|
||||
|
||||
CHECK_TEMPLATE = r"""#!/usr/bin/env bash
|
||||
# CHECK — git worktree census re-derivation verification.
|
||||
#
|
||||
# Re-derives the census from live `git` (current checkout) and compares it,
|
||||
# field-for-field, against the committed git-worktree-census-2026-10-30.json.
|
||||
# Exits 0 only on exact match.
|
||||
set -u
|
||||
|
||||
REPO=/root/troupe-standup
|
||||
OUT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
JSON="$OUT/git-worktree-census-2026-10-30.json"
|
||||
|
||||
python3 - "$JSON" <<'PY'
|
||||
import json, subprocess, sys
|
||||
from collections import Counter
|
||||
|
||||
json_path = sys.argv[1]
|
||||
repo = "/root/troupe-standup"
|
||||
|
||||
def git(*args):
|
||||
return subprocess.run(["git", "-C", repo, *args],
|
||||
capture_output=True, text=True, check=True).stdout
|
||||
|
||||
def derive():
|
||||
data = {}
|
||||
data["commit_count"] = int(git("rev-list", "--count", "HEAD").strip())
|
||||
data["tracked_file_count"] = len(git("ls-files").splitlines())
|
||||
data["total_unique_emails"] = len(set(e for e in git("log", "--format=%ae").splitlines() if e))
|
||||
data["ahead_by_origin_main"] = int(git("rev-list", "--count", "origin/main..HEAD").strip())
|
||||
data["behind_by_origin_main"] = int(git("rev-list", "--count", "HEAD..origin/main").strip())
|
||||
data["branch_head"] = git("rev-parse", "--short", "HEAD").strip()
|
||||
data["branch"] = git("rev-parse", "--abbrev-ref", "HEAD").strip()
|
||||
data["remote_heads"] = {
|
||||
l: git("rev-parse", "--short", l).strip()
|
||||
for l in git("branch", "-r", "--format=%(refname:short)").splitlines() if l.strip()
|
||||
}
|
||||
by_pair = {}
|
||||
for line in git("log", "--format=%an%x00%ae%x00%ad", "--date=iso-strict").splitlines():
|
||||
if not line.strip():
|
||||
continue
|
||||
name, email, date = line.split("\x00")
|
||||
by_pair.setdefault((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)})
|
||||
nc = Counter(r["name"] for r in rows)
|
||||
ec = Counter(r["email"] for r in rows)
|
||||
for r in rows:
|
||||
r["name_collides"] = nc[r["name"]] > 1
|
||||
r["email_collides"] = ec[r["email"]] > 1
|
||||
rows.sort(key=lambda r: (-r["count"], r["name"].lower(), r["email"]))
|
||||
data["author_census"] = rows
|
||||
names = git("log", "--pretty=format:", "--name-only").splitlines()
|
||||
fc = Counter(n for n in names if n.strip())
|
||||
data["top_modified_files"] = [{"path": p, "commits": c} for p, c in fc.most_common(60)]
|
||||
return data
|
||||
|
||||
derived = derive()
|
||||
committed = json.load(open(json_path))
|
||||
fields = ["commit_count", "tracked_file_count", "total_unique_emails",
|
||||
"ahead_by_origin_main", "behind_by_origin_main", "branch_head",
|
||||
"branch", "remote_heads"]
|
||||
for k in fields:
|
||||
if derived.get(k) != committed.get(k):
|
||||
print(" FIELD %r MISMATCH: derived=%r committed=%r" %
|
||||
(k, derived.get(k), committed.get(k)), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
if len(derived["author_census"]) != len(committed["author_census"]):
|
||||
print(" CENSUS LENGTH MISMATCH: derived %d rows, committed %d rows" %
|
||||
(len(derived["author_census"]), len(committed["author_census"])), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
for i, (e, c) in enumerate(zip(derived["author_census"], committed["author_census"])):
|
||||
for k in ("name", "email", "count", "first", "last", "name_collides", "email_collides"):
|
||||
if e.get(k) != c.get(k):
|
||||
print(" CENSUS ROW %d FIELD %r MISMATCH: derived=%r committed=%r" %
|
||||
(i, k, e.get(k), c.get(k)), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
if derived["top_modified_files"] != committed["top_modified_files"]:
|
||||
print(" TOP_FILES MISMATCH", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
print("[CHECK] derived from live git and compared field-for-field against %s — PASS" % json_path)
|
||||
PY
|
||||
"""
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,61 @@
|
||||
rank,path,commits
|
||||
1,WORK-QUEUE.md,555
|
||||
2,docs/queue-index.md,218
|
||||
3,wizard-work/ledger/commits_by_author_day.csv,61
|
||||
4,wizard-work/ledger/commits_by_author_day.json,61
|
||||
5,wizard-work/ledger/troupe-churn.md,61
|
||||
6,checkins/2026-10-12-merlin.md,26
|
||||
7,checkins/2026-10-14-merlin.md,25
|
||||
8,tools/selftest_sweep.py,22
|
||||
9,checkins/2026-10-11-merlin.md,21
|
||||
10,checkins/2026-10-13-merlin.md,20
|
||||
11,checkins/2026-10-15-merlin.md,18
|
||||
12,WIZARDS-TABLE.md,17
|
||||
13,wizard-work/volt/q63_unwired_baseline.tsv,16
|
||||
14,tools/doc_census_check.py,16
|
||||
15,recoveries/summary-fidelity-full-clauses.md,16
|
||||
16,tools/queue_index.py,15
|
||||
17,tools/path_claim_baseline.tsv,14
|
||||
18,wizard-work/volt/q65_runner_baseline.tsv,14
|
||||
19,tools/verify.py,13
|
||||
20,checkins/2026-10-17-volt.md,13
|
||||
21,tools/selftest_baseline.tsv,12
|
||||
22,wizard-work/ledger/CHECK,12
|
||||
23,wizard-work/spark/CHECK,12
|
||||
24,wizard-work/sol/Triage-2026-09-26.json,12
|
||||
25,tools/queue_claim_check.py,12
|
||||
26,wizard-work/sol/TRIAGE.md,11
|
||||
27,docs/TOOLS.md,11
|
||||
28,tools/checkin_check.py,11
|
||||
29,checkins/2026-10-10-merlin.md,11
|
||||
30,wizard-work/sol/Triage-2026-10-29.json,10
|
||||
31,tools/path_claim_check.py,10
|
||||
32,tools/citation_resolve_check.py,9
|
||||
33,STANDING-AGREEMENT.md,9
|
||||
34,wizard-work/ledger/README.md,8
|
||||
35,tools/write_probe.py,8
|
||||
36,checkins/2026-10-18-volt.md,8
|
||||
37,checkins/2026-10-16-volt.md,8
|
||||
38,career-lane/ats-gate-census.md,8
|
||||
39,wizard-work/beam/toposort/toposort.py,7
|
||||
40,wizard-work/null/check.py,7
|
||||
41,tools/check_lint.py,7
|
||||
42,tools/census_row_delta.py,7
|
||||
43,wizard-work/ledger/git-author-census-2026-10-23.csv,7
|
||||
44,wizard-work/ledger/git-author-census-2026-10-23.json,7
|
||||
45,wizard-work/ledger/git-author-census-2026-10-23.md,7
|
||||
46,tools/citation_hash_class.py,7
|
||||
47,tools/tool_map.py,7
|
||||
48,checkins/2026-10-19-volt.md,7
|
||||
49,wizard-work/spark/text_stats.py,6
|
||||
50,wizard-work/zeph/q60_enforce.py,6
|
||||
51,wizard-work/spark/json-validator.py,6
|
||||
52,wizard-work/volt/q63_verify_scan.py,6
|
||||
53,wizard-work/null/wizard.log.md,6
|
||||
54,wizard-work/null/wizard.py,6
|
||||
55,wizard-work/spark/__pycache__/word_counter.cpython-314.pyc,6
|
||||
56,wizard-work/beam/test_safe_eval.py,5
|
||||
57,wizard-work/spark/README.md,5
|
||||
58,wizard-work/spark/VERIFICATION.md,5
|
||||
59,wizard-work/spark/test_array_intersection.py,5
|
||||
60,wizard-work/spark/test_counter_util.py,5
|
||||
|
@@ -0,0 +1,693 @@
|
||||
{
|
||||
"stamp": "2026-10-30",
|
||||
"repo": "/root/troupe-standup",
|
||||
"branch": "main",
|
||||
"branch_head": "93aa61a",
|
||||
"commit_count": 2209,
|
||||
"tracked_file_count": 4287,
|
||||
"total_unique_emails": 38,
|
||||
"ahead_by_origin_main": 24,
|
||||
"behind_by_origin_main": 1,
|
||||
"remote_heads": {
|
||||
"origin": "b6f7b2e",
|
||||
"origin/branch-head": "9dd32f4",
|
||||
"origin/main": "b6f7b2e"
|
||||
},
|
||||
"head": "93aa61abe0c80bae506910fd65ad6f76aa0173a2",
|
||||
"author_census": [
|
||||
{
|
||||
"name": "Timmy",
|
||||
"email": "timmy@stackchain.ai",
|
||||
"count": 464,
|
||||
"first": "2026-10-08T13:15:17+00:00",
|
||||
"last": "2026-10-28T18:03:42+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"name": "ledger",
|
||||
"email": "ledger@agents.invalid",
|
||||
"count": 249,
|
||||
"first": "2026-10-20T14:52:16+00:00",
|
||||
"last": "2026-10-30T05:00:50+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "spark",
|
||||
"email": "spark@agents.invalid",
|
||||
"count": 208,
|
||||
"first": "2026-10-20T14:42:05+00:00",
|
||||
"last": "2026-10-30T04:57:10+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"name": "Volt",
|
||||
"email": "volt@agents.invalid",
|
||||
"count": 177,
|
||||
"first": "2026-10-15T13:16:57+00:00",
|
||||
"last": "2026-10-24T13:32:55+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": "Zephyrus Sparkborn",
|
||||
"email": "zephyrus-sparkborn@agents.invalid",
|
||||
"count": 129,
|
||||
"first": "2026-09-24T10:52:32+00:00",
|
||||
"last": "2026-10-29T13:15:22+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"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": "beam",
|
||||
"email": "beam@agents.invalid",
|
||||
"count": 112,
|
||||
"first": "2026-10-20T15:52:01+00:00",
|
||||
"last": "2026-10-30T02:59:34+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "sol",
|
||||
"email": "sol@agents.invalid",
|
||||
"count": 95,
|
||||
"first": "2026-10-20T14:43:51+00:00",
|
||||
"last": "2026-10-30T04:59:52+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "quill",
|
||||
"email": "quill@agents.invalid",
|
||||
"count": 84,
|
||||
"first": "2026-10-22T05:35:26+00:00",
|
||||
"last": "2026-10-30T04:53:16+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "forge",
|
||||
"email": "forge@agents.invalid",
|
||||
"count": 62,
|
||||
"first": "2026-10-20T14:51:04+00:00",
|
||||
"last": "2026-10-28T06:06:19+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "Timmy",
|
||||
"email": "timmy@alexanderwhitestone.com",
|
||||
"count": 49,
|
||||
"first": "2026-09-26T17:44:15+00:00",
|
||||
"last": "2026-10-28T13:44:16+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"name": "timmy",
|
||||
"email": "timmy@agents.invalid",
|
||||
"count": 41,
|
||||
"first": "2026-10-24T12:17:06+00:00",
|
||||
"last": "2026-10-28T10:06:12+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"name": "Timmy",
|
||||
"email": "timmy@agents.invalid",
|
||||
"count": 38,
|
||||
"first": "2026-09-30T13:16:41+00:00",
|
||||
"last": "2026-10-28T01:59:49+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"name": "sphinx",
|
||||
"email": "sphinx@agents.invalid",
|
||||
"count": 32,
|
||||
"first": "2026-10-20T20:49:01+00:00",
|
||||
"last": "2026-10-26T18:37:44+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "volt",
|
||||
"email": "volt@agents.invalid",
|
||||
"count": 30,
|
||||
"first": "2026-10-24T13:55:57+00:00",
|
||||
"last": "2026-10-29T18:19:12+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"name": "null",
|
||||
"email": "null@agents.invalid",
|
||||
"count": 28,
|
||||
"first": "2026-10-20T17:38:12+00:00",
|
||||
"last": "2026-10-26T06:39:20+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "Mercury",
|
||||
"email": "mercury@agents.invalid",
|
||||
"count": 21,
|
||||
"first": "2026-10-10T20:39:30+00:00",
|
||||
"last": "2026-10-29T12:02:32+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "volt",
|
||||
"email": "volt@troupe.local",
|
||||
"count": 21,
|
||||
"first": "2026-10-16T22:55:27+00:00",
|
||||
"last": "2026-10-29T21:07:40+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"name": "pipe",
|
||||
"email": "pipe@localhost",
|
||||
"count": 18,
|
||||
"first": "2026-10-28T17:32:40+00:00",
|
||||
"last": "2026-10-28T23:26:43+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "timmy",
|
||||
"email": "timmy@alexanderwhitestone.com",
|
||||
"count": 10,
|
||||
"first": "2026-10-06T20:59:25+00:00",
|
||||
"last": "2026-10-28T12:29:21+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"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": "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": "troupe-pipe",
|
||||
"email": "pipe@agents.invalid",
|
||||
"count": 6,
|
||||
"first": "2026-10-26T11:49:46+00:00",
|
||||
"last": "2026-10-26T13:02:48+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"name": "Volt",
|
||||
"email": "volt@alexanderwhitestone.com",
|
||||
"count": 5,
|
||||
"first": "2026-10-19T00:09:51+00:00",
|
||||
"last": "2026-10-28T19:26:12+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"name": "volt",
|
||||
"email": "volt@stackchain.ai",
|
||||
"count": 5,
|
||||
"first": "2026-10-25T17:20:17+00:00",
|
||||
"last": "2026-10-28T00:36:16+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"name": "volt",
|
||||
"email": "volt@alexanderwhitestone.com",
|
||||
"count": 4,
|
||||
"first": "2026-10-18T09:42:16+00:00",
|
||||
"last": "2026-10-26T15:50:51+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"name": "argus",
|
||||
"email": "argus@troupe",
|
||||
"count": 3,
|
||||
"first": "2026-10-26T00:11:36+00:00",
|
||||
"last": "2026-10-26T00:16:59+00:00",
|
||||
"name_collides": false,
|
||||
"email_collides": false
|
||||
},
|
||||
{
|
||||
"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": true
|
||||
},
|
||||
{
|
||||
"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": "zephyrus-sparkborn",
|
||||
"email": "zephyrus-sparkborn@agents.invalid",
|
||||
"count": 2,
|
||||
"first": "2026-10-24T12:08:39+00:00",
|
||||
"last": "2026-10-24T12:11:03+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": "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@alexandrewswhitestone.com",
|
||||
"count": 1,
|
||||
"first": "2026-10-28T12:32:50+00:00",
|
||||
"last": "2026-10-28T12:32:50+00:00",
|
||||
"name_collides": true,
|
||||
"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": "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": "spark@agents.invalid",
|
||||
"count": 1,
|
||||
"first": "2026-10-26T13:34:27+00:00",
|
||||
"last": "2026-10-26T13:34:27+00:00",
|
||||
"name_collides": true,
|
||||
"email_collides": true
|
||||
},
|
||||
{
|
||||
"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": "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
|
||||
}
|
||||
],
|
||||
"top_modified_files": [
|
||||
{
|
||||
"path": "WORK-QUEUE.md",
|
||||
"commits": 555
|
||||
},
|
||||
{
|
||||
"path": "docs/queue-index.md",
|
||||
"commits": 218
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/ledger/commits_by_author_day.csv",
|
||||
"commits": 61
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/ledger/commits_by_author_day.json",
|
||||
"commits": 61
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/ledger/troupe-churn.md",
|
||||
"commits": 61
|
||||
},
|
||||
{
|
||||
"path": "checkins/2026-10-12-merlin.md",
|
||||
"commits": 26
|
||||
},
|
||||
{
|
||||
"path": "checkins/2026-10-14-merlin.md",
|
||||
"commits": 25
|
||||
},
|
||||
{
|
||||
"path": "tools/selftest_sweep.py",
|
||||
"commits": 22
|
||||
},
|
||||
{
|
||||
"path": "checkins/2026-10-11-merlin.md",
|
||||
"commits": 21
|
||||
},
|
||||
{
|
||||
"path": "checkins/2026-10-13-merlin.md",
|
||||
"commits": 20
|
||||
},
|
||||
{
|
||||
"path": "checkins/2026-10-15-merlin.md",
|
||||
"commits": 18
|
||||
},
|
||||
{
|
||||
"path": "WIZARDS-TABLE.md",
|
||||
"commits": 17
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/volt/q63_unwired_baseline.tsv",
|
||||
"commits": 16
|
||||
},
|
||||
{
|
||||
"path": "tools/doc_census_check.py",
|
||||
"commits": 16
|
||||
},
|
||||
{
|
||||
"path": "recoveries/summary-fidelity-full-clauses.md",
|
||||
"commits": 16
|
||||
},
|
||||
{
|
||||
"path": "tools/queue_index.py",
|
||||
"commits": 15
|
||||
},
|
||||
{
|
||||
"path": "tools/path_claim_baseline.tsv",
|
||||
"commits": 14
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/volt/q65_runner_baseline.tsv",
|
||||
"commits": 14
|
||||
},
|
||||
{
|
||||
"path": "tools/verify.py",
|
||||
"commits": 13
|
||||
},
|
||||
{
|
||||
"path": "checkins/2026-10-17-volt.md",
|
||||
"commits": 13
|
||||
},
|
||||
{
|
||||
"path": "tools/selftest_baseline.tsv",
|
||||
"commits": 12
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/ledger/CHECK",
|
||||
"commits": 12
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/spark/CHECK",
|
||||
"commits": 12
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/sol/Triage-2026-09-26.json",
|
||||
"commits": 12
|
||||
},
|
||||
{
|
||||
"path": "tools/queue_claim_check.py",
|
||||
"commits": 12
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/sol/TRIAGE.md",
|
||||
"commits": 11
|
||||
},
|
||||
{
|
||||
"path": "docs/TOOLS.md",
|
||||
"commits": 11
|
||||
},
|
||||
{
|
||||
"path": "tools/checkin_check.py",
|
||||
"commits": 11
|
||||
},
|
||||
{
|
||||
"path": "checkins/2026-10-10-merlin.md",
|
||||
"commits": 11
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/sol/Triage-2026-10-29.json",
|
||||
"commits": 10
|
||||
},
|
||||
{
|
||||
"path": "tools/path_claim_check.py",
|
||||
"commits": 10
|
||||
},
|
||||
{
|
||||
"path": "tools/citation_resolve_check.py",
|
||||
"commits": 9
|
||||
},
|
||||
{
|
||||
"path": "STANDING-AGREEMENT.md",
|
||||
"commits": 9
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/ledger/README.md",
|
||||
"commits": 8
|
||||
},
|
||||
{
|
||||
"path": "tools/write_probe.py",
|
||||
"commits": 8
|
||||
},
|
||||
{
|
||||
"path": "checkins/2026-10-18-volt.md",
|
||||
"commits": 8
|
||||
},
|
||||
{
|
||||
"path": "checkins/2026-10-16-volt.md",
|
||||
"commits": 8
|
||||
},
|
||||
{
|
||||
"path": "career-lane/ats-gate-census.md",
|
||||
"commits": 8
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/beam/toposort/toposort.py",
|
||||
"commits": 7
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/null/check.py",
|
||||
"commits": 7
|
||||
},
|
||||
{
|
||||
"path": "tools/check_lint.py",
|
||||
"commits": 7
|
||||
},
|
||||
{
|
||||
"path": "tools/census_row_delta.py",
|
||||
"commits": 7
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/ledger/git-author-census-2026-10-23.csv",
|
||||
"commits": 7
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/ledger/git-author-census-2026-10-23.json",
|
||||
"commits": 7
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/ledger/git-author-census-2026-10-23.md",
|
||||
"commits": 7
|
||||
},
|
||||
{
|
||||
"path": "tools/citation_hash_class.py",
|
||||
"commits": 7
|
||||
},
|
||||
{
|
||||
"path": "tools/tool_map.py",
|
||||
"commits": 7
|
||||
},
|
||||
{
|
||||
"path": "checkins/2026-10-19-volt.md",
|
||||
"commits": 7
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/spark/text_stats.py",
|
||||
"commits": 6
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/zeph/q60_enforce.py",
|
||||
"commits": 6
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/spark/json-validator.py",
|
||||
"commits": 6
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/volt/q63_verify_scan.py",
|
||||
"commits": 6
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/null/wizard.log.md",
|
||||
"commits": 6
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/null/wizard.py",
|
||||
"commits": 6
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/spark/__pycache__/word_counter.cpython-314.pyc",
|
||||
"commits": 6
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/beam/test_safe_eval.py",
|
||||
"commits": 5
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/spark/README.md",
|
||||
"commits": 5
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/spark/VERIFICATION.md",
|
||||
"commits": 5
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/spark/test_array_intersection.py",
|
||||
"commits": 5
|
||||
},
|
||||
{
|
||||
"path": "wizard-work/spark/test_counter_util.py",
|
||||
"commits": 5
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
# Troupe worktree census
|
||||
|
||||
- **Stamp:** `2026-10-30`
|
||||
- **Repo:** `/root/troupe-standup`
|
||||
- **Branch:** `main` (head `93aa61a`)
|
||||
- **Commit count:** 2209
|
||||
- **Tracked file count:** 4287
|
||||
- **Unique committer emails:** 38
|
||||
- **Ahead by origin/main:** 24 | **Behind by origin/main:** 1
|
||||
|
||||
## Author census
|
||||
|
||||
| rank | name | email | commits | first | last | name_collides | email_collides |
|
||||
|---:|---|---:|---:|---|---:|---|---|
|
||||
| 1 | Timmy | timmy@stackchain.ai | 464 | 2026-10-08T13:15:17+00:00 | 2026-10-28T18:03:42+00:00 | yes | yes |
|
||||
| 2 | ledger | ledger@agents.invalid | 249 | 2026-10-20T14:52:16+00:00 | 2026-10-30T05:00:50+00:00 | no | no |
|
||||
| 3 | spark | spark@agents.invalid | 208 | 2026-10-20T14:42:05+00:00 | 2026-10-30T04:57:10+00:00 | no | yes |
|
||||
| 4 | Volt | volt@agents.invalid | 177 | 2026-10-15T13:16:57+00:00 | 2026-10-24T13:32:55+00:00 | yes | yes |
|
||||
| 5 | timmy | timmy@stackchain.ai | 156 | 2026-09-24T10:30:32+00:00 | 2026-10-10T20:56:45+00:00 | yes | yes |
|
||||
| 6 | Zephyrus Sparkborn | zephyrus-sparkborn@agents.invalid | 129 | 2026-09-24T10:52:32+00:00 | 2026-10-29T13:15:22+00:00 | no | yes |
|
||||
| 7 | Merlin | merlin@agents.invalid | 118 | 2026-10-08T17:19:41+00:00 | 2026-10-15T19:01:33+00:00 | no | no |
|
||||
| 8 | beam | beam@agents.invalid | 112 | 2026-10-20T15:52:01+00:00 | 2026-10-30T02:59:34+00:00 | no | no |
|
||||
| 9 | sol | sol@agents.invalid | 95 | 2026-10-20T14:43:51+00:00 | 2026-10-30T04:59:52+00:00 | no | no |
|
||||
| 10 | quill | quill@agents.invalid | 84 | 2026-10-22T05:35:26+00:00 | 2026-10-30T04:53:16+00:00 | no | no |
|
||||
| 11 | forge | forge@agents.invalid | 62 | 2026-10-20T14:51:04+00:00 | 2026-10-28T06:06:19+00:00 | no | no |
|
||||
| 12 | Timmy | timmy@alexanderwhitestone.com | 49 | 2026-09-26T17:44:15+00:00 | 2026-10-28T13:44:16+00:00 | yes | yes |
|
||||
| 13 | timmy | timmy@agents.invalid | 41 | 2026-10-24T12:17:06+00:00 | 2026-10-28T10:06:12+00:00 | yes | yes |
|
||||
| 14 | Timmy | timmy@agents.invalid | 38 | 2026-09-30T13:16:41+00:00 | 2026-10-28T01:59:49+00:00 | yes | yes |
|
||||
| 15 | sphinx | sphinx@agents.invalid | 32 | 2026-10-20T20:49:01+00:00 | 2026-10-26T18:37:44+00:00 | no | no |
|
||||
| 16 | volt | volt@agents.invalid | 30 | 2026-10-24T13:55:57+00:00 | 2026-10-29T18:19:12+00:00 | yes | yes |
|
||||
| 17 | null | null@agents.invalid | 28 | 2026-10-20T17:38:12+00:00 | 2026-10-26T06:39:20+00:00 | no | no |
|
||||
| 18 | Mercury | mercury@agents.invalid | 21 | 2026-10-10T20:39:30+00:00 | 2026-10-29T12:02:32+00:00 | no | no |
|
||||
| 19 | volt | volt@troupe.local | 21 | 2026-10-16T22:55:27+00:00 | 2026-10-29T21:07:40+00:00 | yes | yes |
|
||||
| 20 | pipe | pipe@localhost | 18 | 2026-10-28T17:32:40+00:00 | 2026-10-28T23:26:43+00:00 | no | no |
|
||||
| 21 | timmy | timmy@alexanderwhitestone.com | 10 | 2026-10-06T20:59:25+00:00 | 2026-10-28T12:29:21+00:00 | yes | yes |
|
||||
| 22 | volt | volt@troupe.invalid | 9 | 2026-10-17T13:09:07+00:00 | 2026-10-21T14:15:49+00:00 | yes | no |
|
||||
| 23 | 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 |
|
||||
| 24 | troupe-pipe | pipe@agents.invalid | 6 | 2026-10-26T11:49:46+00:00 | 2026-10-26T13:02:48+00:00 | no | no |
|
||||
| 25 | Volt | volt@alexanderwhitestone.com | 5 | 2026-10-19T00:09:51+00:00 | 2026-10-28T19:26:12+00:00 | yes | yes |
|
||||
| 26 | volt | volt@stackchain.ai | 5 | 2026-10-25T17:20:17+00:00 | 2026-10-28T00:36:16+00:00 | yes | yes |
|
||||
| 27 | volt | volt@alexanderwhitestone.com | 4 | 2026-10-18T09:42:16+00:00 | 2026-10-26T15:50:51+00:00 | yes | yes |
|
||||
| 28 | argus | argus@troupe | 3 | 2026-10-26T00:11:36+00:00 | 2026-10-26T00:16:59+00:00 | no | no |
|
||||
| 29 | Volt | volt@stackchain.ai | 3 | 2026-10-20T04:04:02+00:00 | 2026-10-22T05:22:27+00:00 | yes | yes |
|
||||
| 30 | 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 |
|
||||
| 31 | Cassian Assayborn | cassian@agents.invalid | 2 | 2026-10-06T16:32:49-04:00 | 2026-10-07T10:03:51-04:00 | yes | no |
|
||||
| 32 | Timmy | timmy@stackchain.invalid | 2 | 2026-10-01T13:21:21+00:00 | 2026-10-01T13:22:05+00:00 | yes | no |
|
||||
| 33 | Volt | volt@troupe.local | 2 | 2026-10-17T10:50:25+00:00 | 2026-10-22T14:42:02+00:00 | yes | yes |
|
||||
| 34 | zephyrus-sparkborn | zephyrus-sparkborn@agents.invalid | 2 | 2026-10-24T12:08:39+00:00 | 2026-10-24T12:11:03+00:00 | yes | yes |
|
||||
| 35 | Argus | argus@agents.invalid | 1 | 2026-10-14T12:55:09+00:00 | 2026-10-14T12:55:09+00:00 | no | no |
|
||||
| 36 | Cassian Assayborn | cassian@forge.local | 1 | 2026-10-07T10:06:33-04:00 | 2026-10-07T10:06:33-04:00 | yes | no |
|
||||
| 37 | rockachopa | alexpaynex@gmail.com | 1 | 2026-09-24T10:30:11+00:00 | 2026-09-24T10:30:11+00:00 | no | no |
|
||||
| 38 | sentinel | sentinel@troupe-standup.internal | 1 | 2026-10-17T23:17:14+00:00 | 2026-10-17T23:17:14+00:00 | no | no |
|
||||
| 39 | timmy | timmy@alexandrewswhitestone.com | 1 | 2026-10-28T12:32:50+00:00 | 2026-10-28T12:32:50+00:00 | yes | no |
|
||||
| 40 | timmy | timmy@hermes | 1 | 2026-10-06T14:19:59+00:00 | 2026-10-06T14:19:59+00:00 | yes | no |
|
||||
| 41 | Timmy | timmy@localhost | 1 | 2026-10-01T12:09:42+00:00 | 2026-10-01T12:09:42+00:00 | yes | no |
|
||||
| 42 | Timmy | timmy@stachain.ai | 1 | 2026-10-13T06:56:57+00:00 | 2026-10-13T06:56:57+00:00 | yes | no |
|
||||
| 43 | Timmy | timmy@stacktimmy.invalid | 1 | 2026-10-01T13:21:48+00:00 | 2026-10-01T13:21:48+00:00 | yes | no |
|
||||
| 44 | volt | spark@agents.invalid | 1 | 2026-10-26T13:34:27+00:00 | 2026-10-26T13:34:27+00:00 | yes | yes |
|
||||
| 45 | Volt | timmy@stackchain.ai | 1 | 2026-10-19T07:34:05+00:00 | 2026-10-19T07:34:05+00:00 | yes | yes |
|
||||
| 46 | Volt | volt@stackchain.local | 1 | 2026-10-17T08:01:24+00:00 | 2026-10-17T08:01:24+00:00 | yes | no |
|
||||
| 47 | zephyrus-sparkborn | zephyrus-sparkborn@noreply.local | 1 | 2026-10-02T12:53:34+00:00 | 2026-10-02T12:53:34+00:00 | yes | no |
|
||||
| 48 | zephyrus-sparkborn | zephyrus@alexanderwhitestone.com | 1 | 2026-10-19T23:44:47+00:00 | 2026-10-19T23:44:47+00:00 | yes | no |
|
||||
|
||||
## Top modified files
|
||||
|
||||
| rank | path | commits |
|
||||
|---:|---|---:|
|
||||
| 1 | WORK-QUEUE.md | 555 |
|
||||
| 2 | docs/queue-index.md | 218 |
|
||||
| 3 | wizard-work/ledger/commits_by_author_day.csv | 61 |
|
||||
| 4 | wizard-work/ledger/commits_by_author_day.json | 61 |
|
||||
| 5 | wizard-work/ledger/troupe-churn.md | 61 |
|
||||
| 6 | checkins/2026-10-12-merlin.md | 26 |
|
||||
| 7 | checkins/2026-10-14-merlin.md | 25 |
|
||||
| 8 | tools/selftest_sweep.py | 22 |
|
||||
| 9 | checkins/2026-10-11-merlin.md | 21 |
|
||||
| 10 | checkins/2026-10-13-merlin.md | 20 |
|
||||
| 11 | checkins/2026-10-15-merlin.md | 18 |
|
||||
| 12 | WIZARDS-TABLE.md | 17 |
|
||||
| 13 | wizard-work/volt/q63_unwired_baseline.tsv | 16 |
|
||||
| 14 | tools/doc_census_check.py | 16 |
|
||||
| 15 | recoveries/summary-fidelity-full-clauses.md | 16 |
|
||||
| 16 | tools/queue_index.py | 15 |
|
||||
| 17 | tools/path_claim_baseline.tsv | 14 |
|
||||
| 18 | wizard-work/volt/q65_runner_baseline.tsv | 14 |
|
||||
| 19 | tools/verify.py | 13 |
|
||||
| 20 | checkins/2026-10-17-volt.md | 13 |
|
||||
| 21 | tools/selftest_baseline.tsv | 12 |
|
||||
| 22 | wizard-work/ledger/CHECK | 12 |
|
||||
| 23 | wizard-work/spark/CHECK | 12 |
|
||||
| 24 | wizard-work/sol/Triage-2026-09-26.json | 12 |
|
||||
| 25 | tools/queue_claim_check.py | 12 |
|
||||
| 26 | wizard-work/sol/TRIAGE.md | 11 |
|
||||
| 27 | docs/TOOLS.md | 11 |
|
||||
| 28 | tools/checkin_check.py | 11 |
|
||||
| 29 | checkins/2026-10-10-merlin.md | 11 |
|
||||
| 30 | wizard-work/sol/Triage-2026-10-29.json | 10 |
|
||||
| 31 | tools/path_claim_check.py | 10 |
|
||||
| 32 | tools/citation_resolve_check.py | 9 |
|
||||
| 33 | STANDING-AGREEMENT.md | 9 |
|
||||
| 34 | wizard-work/ledger/README.md | 8 |
|
||||
| 35 | tools/write_probe.py | 8 |
|
||||
| 36 | checkins/2026-10-18-volt.md | 8 |
|
||||
| 37 | checkins/2026-10-16-volt.md | 8 |
|
||||
| 38 | career-lane/ats-gate-census.md | 8 |
|
||||
| 39 | wizard-work/beam/toposort/toposort.py | 7 |
|
||||
| 40 | wizard-work/null/check.py | 7 |
|
||||
| 41 | tools/check_lint.py | 7 |
|
||||
| 42 | tools/census_row_delta.py | 7 |
|
||||
| 43 | wizard-work/ledger/git-author-census-2026-10-23.csv | 7 |
|
||||
| 44 | wizard-work/ledger/git-author-census-2026-10-23.json | 7 |
|
||||
| 45 | wizard-work/ledger/git-author-census-2026-10-23.md | 7 |
|
||||
| 46 | tools/citation_hash_class.py | 7 |
|
||||
| 47 | tools/tool_map.py | 7 |
|
||||
| 48 | checkins/2026-10-19-volt.md | 7 |
|
||||
| 49 | wizard-work/spark/text_stats.py | 6 |
|
||||
| 50 | wizard-work/zeph/q60_enforce.py | 6 |
|
||||
| 51 | wizard-work/spark/json-validator.py | 6 |
|
||||
| 52 | wizard-work/volt/q63_verify_scan.py | 6 |
|
||||
| 53 | wizard-work/null/wizard.log.md | 6 |
|
||||
| 54 | wizard-work/null/wizard.py | 6 |
|
||||
| 55 | wizard-work/spark/__pycache__/word_counter.cpython-314.pyc | 6 |
|
||||
| 56 | wizard-work/beam/test_safe_eval.py | 5 |
|
||||
| 57 | wizard-work/spark/README.md | 5 |
|
||||
| 58 | wizard-work/spark/VERIFICATION.md | 5 |
|
||||
| 59 | wizard-work/spark/test_array_intersection.py | 5 |
|
||||
| 60 | wizard-work/spark/test_counter_util.py | 5 |
|
||||
Reference in new issue
Block a user