ledger: add 2026-10-28 wizard-work/ledger census (294 files, 7,627,523 bytes)
This commit is contained in:
1 parent
e93cd11af9
commit
b0264dcc89
14 files changed
+3770
-46
No files matched your search
@@ -1,21 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Inline discrepancy check between manifest CSV and emitted TSV (ad hoc probe)."""
|
||||
import csv
|
||||
from collections import defaultdict
|
||||
from pathlib import Path
|
||||
|
||||
man = defaultdict(int)
|
||||
with open("/root/troupe-standup/wizard-work/ledger/wizardwork-census.csv") as f:
|
||||
r = csv.reader(f)
|
||||
next(r) # header
|
||||
for row in r:
|
||||
man[row[4]] += 1
|
||||
print("manifest:", dict(man), "total", sum(man.values()))
|
||||
|
||||
s = defaultdict(int)
|
||||
with open("/root/troupe-standup/wizard-work/ledger/wizardwork-census.tsv") as f:
|
||||
next(f)
|
||||
for line in f:
|
||||
p = line.rstrip("\n").split("\t")
|
||||
s[p[0]] = int(p[1])
|
||||
print("emitted:", dict(s), "total", sum(s.values()))
|
||||
@@ -1,8 +0,0 @@
|
||||
import os, re
|
||||
pat = re.compile(r'^\d{4}-\d{2}-\d{2}')
|
||||
files = sorted(f for f in os.listdir('.') if f.endswith('.md'))
|
||||
non = [f for f in files if not pat.match(f)]
|
||||
print("total md:", len(files))
|
||||
print("matching:", len([f for f in files if pat.match(f)]))
|
||||
for f in non:
|
||||
print("NONMATCH:", repr(f))
|
||||
@@ -0,0 +1,153 @@
|
||||
#!/usr/bin/env python3
|
||||
# Ledger — wizard-work/ledger census (Extract lane).
|
||||
#
|
||||
# Walks /root/troupe-standup/wizard-work/ledger and emits a machine-verified
|
||||
# snapshot as three artifacts:
|
||||
# ledger-census-2026-10-28.md # human-readable report with tables
|
||||
# ledger-census-2026-10-28.csv # flat: type, relpath, size, mtime, category
|
||||
# ledger-census-2026-10-28.json # structured record (input to the gate)
|
||||
#
|
||||
# Measured from the live filesystem (os.stat, no symlink following). The rows
|
||||
# below are excluded so the census is a stable snapshot of the *data* tree:
|
||||
# build_ledger_census.py, verify_ledger_census.py,
|
||||
# ledger-census-2026-10-28.md/.csv/.json
|
||||
import os
|
||||
import sys
|
||||
import json
|
||||
import csv
|
||||
from collections import Counter
|
||||
from datetime import datetime, timezone
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path("/root/troupe-standup/wizard-work/ledger")
|
||||
EXCLUDE_DIRS = {"__pycache__", ".git"}
|
||||
EXCLUDED_NAMES = {
|
||||
"build_ledger_census.py",
|
||||
"verify_ledger_census.py",
|
||||
"ledger-census-2026-10-28.md",
|
||||
"ledger-census-2026-10-28.csv",
|
||||
"ledger-census-2026-10-28.json",
|
||||
}
|
||||
# Category -> extensions (checked in this order).
|
||||
CATEGORY_RULES = [
|
||||
("script", {".py", ".sh"}),
|
||||
("config", {".yaml", ".yml", ".json", ".toml", ".env", ".lock", ".ini", ".pem"}),
|
||||
("doc", {".md", ".txt"}),
|
||||
("data", {".csv", ".tsv", ".xml", ".db", ".sqlite"}),
|
||||
("media", {".mp3", ".wav", ".png", ".jpg", ".jpeg", ".etag"}),
|
||||
]
|
||||
|
||||
|
||||
def classify(name: str) -> str:
|
||||
suffix = os.path.splitext(name)[1].lower()
|
||||
for cat, exts in CATEGORY_RULES:
|
||||
if suffix in exts:
|
||||
return cat
|
||||
return "other"
|
||||
|
||||
|
||||
def main() -> int:
|
||||
if not ROOT.is_dir():
|
||||
print(f"FATAL: missing {ROOT}", file=sys.stderr)
|
||||
return 1
|
||||
|
||||
files = []
|
||||
dirs = []
|
||||
for dirpath, dirnames, filenames in os.walk(ROOT):
|
||||
dirnames.sort()
|
||||
dirnames[:] = sorted(d for d in dirnames if d not in EXCLUDE_DIRS)
|
||||
for fn in sorted(filenames):
|
||||
p = Path(dirpath) / fn
|
||||
if p.name in EXCLUDED_NAMES:
|
||||
continue
|
||||
try:
|
||||
st = p.stat()
|
||||
except OSError:
|
||||
continue
|
||||
files.append({
|
||||
"type": "file",
|
||||
"rel": p.relative_to(ROOT).as_posix(),
|
||||
"size": st.st_size,
|
||||
"mtime": datetime.fromtimestamp(st.st_mtime, tz=timezone.utc).isoformat(),
|
||||
"cat": classify(fn),
|
||||
})
|
||||
for dn in dirnames:
|
||||
dirs.append({
|
||||
"type": "dir",
|
||||
"rel": os.path.relpath(str(Path(dirpath) / dn), str(ROOT)),
|
||||
"size": 0,
|
||||
"mtime": "",
|
||||
"cat": "dir",
|
||||
})
|
||||
|
||||
total_bytes = sum(f["size"] for f in files)
|
||||
cat_counts = Counter(f["cat"] for f in files)
|
||||
|
||||
# ---- markdown report ----
|
||||
md = []
|
||||
w = md.append
|
||||
w("# wizard-work/ledger census — 2026-10-28")
|
||||
w("")
|
||||
w("*source*: os.walk + os.stat over `{}` (no symlink following)".format(ROOT))
|
||||
w("*classification*: extension-based per CATEGORY_RULES; row count = files + dirs")
|
||||
w("")
|
||||
w("## Headline")
|
||||
w("")
|
||||
w("| measure | value |")
|
||||
w("| --- | --- |")
|
||||
w("| files | {} |".format(len(files)))
|
||||
w("| subdirectories | {} |".format(len(dirs)))
|
||||
w("| total entries | {} |".format(len(files) + len(dirs)))
|
||||
w("| total bytes | {:,} |".format(total_bytes))
|
||||
w("| categories | {} |".format(len(cat_counts)))
|
||||
w("")
|
||||
w("## Category rollup")
|
||||
w("")
|
||||
w("| category | files | bytes |")
|
||||
w("| --- | --- | --- |")
|
||||
for cat in sorted(cat_counts):
|
||||
b = sum(f["size"] for f in files if f["cat"] == cat)
|
||||
w("| {} | {} | {:,} |".format(cat, cat_counts[cat], b))
|
||||
w("")
|
||||
w("## File inventory")
|
||||
w("")
|
||||
w("| category | relpath | size | mtime(UTC) |")
|
||||
w("| --- | --- | --- | --- |")
|
||||
for f in sorted(files, key=lambda x: (x["cat"], x["rel"])):
|
||||
w("| {} | `{}` | {} | {} |".format(f["cat"], f["rel"], f["size"], f["mtime"]))
|
||||
w("")
|
||||
md_text = "\n".join(md)
|
||||
|
||||
# ---- flat CSV ----
|
||||
csv_rows = [["type", "relpath", "size_bytes", "mtime_utc", "category"]]
|
||||
for f in sorted(files, key=lambda x: (x["cat"], x["rel"])):
|
||||
csv_rows.append([f["type"], f["rel"], str(f["size"]), f["mtime"], f["cat"]])
|
||||
csv_text = "\n".join(",".join(csvRow) for csvRow in csv_rows)
|
||||
|
||||
# ---- JSON record ----
|
||||
json_obj = {
|
||||
"source": str(ROOT),
|
||||
"classification_rules": {cat: sorted(exts) for cat, exts in CATEGORY_RULES},
|
||||
"excluded_dirs": sorted(EXCLUDE_DIRS),
|
||||
"excluded_names": sorted(EXCLUDED_NAMES),
|
||||
"counts": {"files": len(files), "dirs": len(dirs), "total_entries": len(files) + len(dirs), "total_bytes": total_bytes},
|
||||
"category_counts": {cat: cat_counts.get(cat, 0) for cat in [c for c, _ in CATEGORY_RULES] + ["other"]},
|
||||
"files": files,
|
||||
"dirs": dirs,
|
||||
}
|
||||
|
||||
# ---- write ----
|
||||
(ROOT / "ledger-census-2026-10-28.md").write_text(md_text, encoding="utf-8")
|
||||
(ROOT / "ledger-census-2026-10-28.csv").write_text(csv_text + "\n", encoding="utf-8")
|
||||
(ROOT / "ledger-census-2026-10-28.json").write_text(
|
||||
json.dumps(json_obj, indent=2, sort_keys=True) + "\n", encoding="utf-8"
|
||||
)
|
||||
|
||||
print("wrote markdown, csv, json")
|
||||
print("files={} dirs={} bytes={:,} cats={}".format(
|
||||
len(files), len(dirs), total_bytes, dict(sorted(cat_counts.items()))))
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
@@ -0,0 +1,295 @@
|
||||
type,relpath,size_bytes,mtime_utc,category
|
||||
file,2026-10-22-media-catalog/extraction_manifest.json,510,2026-10-22T11:11:51.595784+00:00,config
|
||||
file,2026-10-22-top-ml-repos/repos.json,3524,2026-10-22T16:40:37.002065+00:00,config
|
||||
file,2026-10-22-top-repos-by-stars/repos.json,4257,2026-10-22T05:35:10.446975+00:00,config
|
||||
file,2026-10-23-jpv-users.json,2444,2026-10-23T12:25:16.769724+00:00,config
|
||||
file,2026-10-23-jpv-users.raw.json,5645,2026-10-23T12:25:16.735721+00:00,config
|
||||
file,2026-10-24-countries-gdp-nominal/countries_gdp_nominal.json,35729,2026-10-24T05:23:58.805080+00:00,config
|
||||
file,2026-10-24-countries-gdp-nominal/extraction_manifest.json,662,2026-10-24T05:28:30.843253+00:00,config
|
||||
file,2026-10-24-job-postings/manifest.json,545,2026-10-24T10:50:47.594455+00:00,config
|
||||
file,2026-10-25-git-history-live-b1edd09/git-history.json,1119552,2026-10-25T14:08:39.066939+00:00,config
|
||||
file,2026-10-25-git-history.json,1223459,2026-10-25T16:43:23.746800+00:00,config
|
||||
file,2026-10-25-head-20-commits/commits.json,9309,2026-10-25T03:15:50.215033+00:00,config
|
||||
file,api_endpoints.json,10465,2026-10-24T19:06:58.343857+00:00,config
|
||||
file,arxiv-csai-10.json,13884,2026-10-22T13:57:47.998712+00:00,config
|
||||
file,arxiv-csai-fresh-2026-10-23.json,6443,2026-10-23T03:48:28.517522+00:00,config
|
||||
file,arxiv-lg-recent.json,35535,2026-10-20T17:35:25.900203+00:00,config
|
||||
file,catalog.json,1418,2026-10-20T20:18:04.453914+00:00,config
|
||||
file,census_data.json,8426,2026-10-21T07:30:26.711610+00:00,config
|
||||
file,commits-table-feed-2026-10-25.json,30412,2026-10-25T21:59:00.774164+00:00,config
|
||||
file,commits.json,8359,2026-10-25T00:33:32.572646+00:00,config
|
||||
file,commits_by_author_day.json,11073,2026-10-23T09:43:05.407276+00:00,config
|
||||
file,country-area-2026-10-23.json,71221,2026-10-23T23:38:27.375775+00:00,config
|
||||
file,cron-fleet-jobs-2026-10-26.json,55941,2026-10-26T06:35:01.128360+00:00,config
|
||||
file,gdp-per-capita.json,734,2026-10-25T14:30:28.421408+00:00,config
|
||||
file,gdp-us-states-2026-10-23/extraction_manifest.json,448,2026-10-23T01:24:14.562420+00:00,config
|
||||
file,gdp-us-states-2026-10-23/gdp-us-states-2026-10-23.json,22753,2026-10-23T01:24:14.559420+00:00,config
|
||||
file,gdp_nominal_usd_2023.json,56363,2026-10-21T15:48:59.026799+00:00,config
|
||||
file,gdp_top10_2026.json,1897,2026-10-24T08:00:51.927030+00:00,config
|
||||
file,git-author-census-2026-10-23.json,9802,2026-10-23T21:12:34.473401+00:00,config
|
||||
file,gitea-repos-2026-10-21.json,28010,2026-10-21T01:46:50.369649+00:00,config
|
||||
file,github-python-repos-2026-10-23.json,67658,2026-10-23T01:06:23.590316+00:00,config
|
||||
file,github_repos_stars.json,36973,2026-10-24T02:36:58.481097+00:00,config
|
||||
file,iso3_alpha3.json,16271,2026-10-22T00:04:36.534175+00:00,config
|
||||
file,issues-source.json,127442,2026-10-20T23:03:57.583723+00:00,config
|
||||
file,live-wizard-roster.json,2847,2026-10-23T09:53:35.731579+00:00,config
|
||||
file,raw_contributors.json,10805,2026-10-26T16:11:34.872237+00:00,config
|
||||
file,repos.json,3000,2026-10-22T08:23:14.722199+00:00,config
|
||||
file,roster-summary.json,7222,2026-10-23T09:46:21.395554+00:00,config
|
||||
file,source/coins_raw.json,7881,2026-10-26T11:17:00.679776+00:00,config
|
||||
file,stackchain-catalog.rows.json,9279,2026-10-26T06:23:55.394969+00:00,config
|
||||
file,stackchain_catalog.json,6646,2026-10-23T14:59:56.141771+00:00,config
|
||||
file,top-50-repos-by-stars/repos.json,15475,2026-10-22T08:29:46.426500+00:00,config
|
||||
file,top-python-repos-2026-10-26.json,334810,2026-10-26T01:01:54.488571+00:00,config
|
||||
file,un_member_states.json,25504,2026-10-21T04:37:48.548264+00:00,config
|
||||
file,wizard_inventory.json,1812,2026-10-23T09:43:05.436279+00:00,config
|
||||
file,2026-10-22-media-catalog/media_catalog.csv,1255,2026-10-22T11:11:51.595784+00:00,data
|
||||
file,2026-10-22-top-ml-repos/repos.csv,1802,2026-10-22T16:40:37.003065+00:00,data
|
||||
file,2026-10-22-top-repos-by-stars/repos.csv,1822,2026-10-22T05:35:10.447975+00:00,data
|
||||
file,2026-10-23-jpv-users.csv,1143,2026-10-23T12:25:16.769724+00:00,data
|
||||
file,2026-10-24-countries-gdp-nominal/countries_gdp_nominal.csv,6403,2026-10-24T05:23:58.801080+00:00,data
|
||||
file,2026-10-24-job-postings/jobs.csv,154681,2026-10-24T10:50:47.591455+00:00,data
|
||||
file,2026-10-25-git-history-live-b1edd09/git-history.csv,729183,2026-10-25T14:08:39.064939+00:00,data
|
||||
file,2026-10-25-git-history.csv,733494,2026-10-25T16:43:23.115747+00:00,data
|
||||
file,2026-10-25-head-20-commits/commits.tsv,4454,2026-10-25T03:15:50.215033+00:00,data
|
||||
file,2026-10-25-head-20-commits/commits_detail.tsv,2553,2026-10-25T03:15:50.215033+00:00,data
|
||||
file,2026-10-25-workqueue-census.tsv,15694,2026-10-25T22:18:44.296909+00:00,data
|
||||
file,2026-10-26-commit-census-as-of-HEAD.tsv,461,2026-10-26T18:22:36.187115+00:00,data
|
||||
file,2026-10-26-commit-census.tsv,460,2026-10-26T20:02:26.908202+00:00,data
|
||||
file,2026-10-27-checkin-census.tsv,150,2026-10-27T22:24:08.578590+00:00,data
|
||||
file,2026-10-27-commit-census.csv,487,2026-10-27T17:01:37.932663+00:00,data
|
||||
file,2026-10-27-commit-census.tsv,487,2026-10-27T17:01:37.932663+00:00,data
|
||||
file,api-endpoints.csv,5501,2026-10-24T19:06:58.339857+00:00,data
|
||||
file,arxiv-csai-10.csv,4969,2026-10-22T13:57:47.989711+00:00,data
|
||||
file,arxiv-csai-fresh-2026-10-23.csv,4966,2026-10-23T03:48:28.517522+00:00,data
|
||||
file,arxiv-lg-recent.csv,33633,2026-10-20T17:35:25.899203+00:00,data
|
||||
file,arxiv-papers.csv,18502,2026-10-24T16:30:11.706054+00:00,data
|
||||
file,arxiv-recent.csv,25284,2026-10-27T19:46:54.090963+00:00,data
|
||||
file,arxiv15.xml,35448,2026-10-27T16:56:36.940641+00:00,data
|
||||
file,arxiv_csai_recent.csv,26239,2026-10-26T14:02:48.121913+00:00,data
|
||||
file,arxiv_gnn.csv,6341,2026-10-23T23:44:26.418484+00:00,data
|
||||
file,arxiv_long_context.csv,3453,2026-10-27T16:55:14.181053+00:00,data
|
||||
file,arxiv_titles.csv,576,2026-10-24T13:53:14.441088+00:00,data
|
||||
file,catalog.csv,841,2026-10-20T20:18:04.457915+00:00,data
|
||||
file,checkin-cadence.tsv,1463,2026-10-27T00:41:28.261908+00:00,data
|
||||
file,checkin-census-2026-10-27.tsv,4237,2026-10-27T11:51:31.384602+00:00,data
|
||||
file,checkin-census.csv,4471,2026-10-21T18:43:00.723703+00:00,data
|
||||
file,checkin-census.tsv,74,2026-10-27T00:41:28.261908+00:00,data
|
||||
file,checkin-inventory.csv,5452,2026-10-26T06:29:26.961560+00:00,data
|
||||
file,commits.tsv,4267,2026-10-25T00:33:32.572646+00:00,data
|
||||
file,commits_by_author_day.csv,3337,2026-10-23T09:43:05.406276+00:00,data
|
||||
file,commits_detail.tsv,1789,2026-10-25T00:33:32.572646+00:00,data
|
||||
file,contributors.csv,465,2026-10-26T16:11:34.868237+00:00,data
|
||||
file,country-area-2026-10-23.csv,25993,2026-10-23T23:38:27.330771+00:00,data
|
||||
file,cron-fleet-jobs-2026-10-26.csv,31383,2026-10-26T06:35:01.119359+00:00,data
|
||||
file,ext-census.tsv,295,2026-10-27T14:13:15.426535+00:00,data
|
||||
file,gdp-per-capita.csv,399,2026-10-25T14:30:28.417408+00:00,data
|
||||
file,gdp-us-states-2026-10-23/gdp-us-states-2026-10-23.csv,4812,2026-10-23T01:24:14.557420+00:00,data
|
||||
file,gdp_nominal.csv,8774,2026-10-25T06:01:18.522166+00:00,data
|
||||
file,gdp_nominal_2026.csv,6226,2026-10-25T14:21:28.509776+00:00,data
|
||||
file,gdp_nominal_usd_2023.csv,568,2026-10-21T15:48:59.025800+00:00,data
|
||||
file,gdp_per_capita_usd.csv,6070,2026-10-21T10:13:25.107199+00:00,data
|
||||
file,gdp_top10_2026.csv,434,2026-10-24T08:00:51.933031+00:00,data
|
||||
file,git-author-census-2026-10-23.csv,3611,2026-10-23T21:12:34.474401+00:00,data
|
||||
file,gitea-repos-2026-10-21.csv,2955,2026-10-21T01:46:50.366648+00:00,data
|
||||
file,github-python-repos-2026-10-23.csv,42250,2026-10-23T01:06:23.588316+00:00,data
|
||||
file,github_repos_stars.csv,20832,2026-10-24T02:36:58.476097+00:00,data
|
||||
file,iso3_alpha3.csv,4365,2026-10-22T00:04:36.530174+00:00,data
|
||||
file,issues.csv,65364,2026-10-20T23:03:57.588723+00:00,data
|
||||
file,ledger-extract.tsv,160205,2026-10-26T08:56:27.693496+00:00,data
|
||||
file,live-wizard-roster.tsv,1528,2026-10-23T09:53:35.730578+00:00,data
|
||||
file,python_org_repos_top50.csv,5728,2026-10-23T06:36:11.855862+00:00,data
|
||||
file,queue-extract.csv,47202,2026-10-27T08:51:45.847097+00:00,data
|
||||
file,recoveries-index.csv,8890,2026-10-21T21:12:17.130996+00:00,data
|
||||
file,repo_exts.tsv,338,2026-10-25T19:38:22.837287+00:00,data
|
||||
file,repo_files.tsv,206778,2026-10-25T19:38:22.875290+00:00,data
|
||||
file,repo_tree.tsv,8138,2026-10-25T19:38:22.833287+00:00,data
|
||||
file,repos.csv,1605,2026-10-22T05:39:41.961324+00:00,data
|
||||
file,stackchain_catalog.csv,2182,2026-10-22T22:18:11.462287+00:00,data
|
||||
file,tlds.csv,15432,2026-10-26T14:08:47.919514+00:00,data
|
||||
file,tlds_by_letter.tsv,131,2026-10-26T14:08:47.919514+00:00,data
|
||||
file,top-50-repos-by-stars/repos.csv,8651,2026-10-22T08:29:46.426500+00:00,data
|
||||
file,top-cryptocurrencies.csv,2496,2026-10-26T11:17:00.664775+00:00,data
|
||||
file,top-python-repos-2026-10-26.csv,22949,2026-10-26T01:01:54.456568+00:00,data
|
||||
file,troupe-census.csv,9866,2026-10-21T18:34:28.893732+00:00,data
|
||||
file,un_member_states.csv,7606,2026-10-21T04:37:48.548264+00:00,data
|
||||
file,us-gdp-nominal-annual-2018-2025.csv,259,2026-10-23T01:34:31.208371+00:00,data
|
||||
file,wizard-roster.csv,4767,2026-10-23T09:46:21.394554+00:00,data
|
||||
file,wizard-work-census-2026-10-27.tsv,208,2026-10-27T11:46:40.510696+00:00,data
|
||||
file,wizard_inventory.csv,990,2026-10-23T09:43:05.435278+00:00,data
|
||||
file,wizards-roster-2026-10-25.csv,1775,2026-10-25T08:34:52.580283+00:00,data
|
||||
file,wizards.csv,4714,2026-10-26T01:06:20.294585+00:00,data
|
||||
file,wizardwork-census.csv,240446,2026-10-26T08:47:15.206981+00:00,data
|
||||
file,wizardwork-census.tsv,270131,2026-10-26T08:50:16.923927+00:00,data
|
||||
file,wizardwork-file-manifest.tsv,270259,2026-10-26T08:51:57.701227+00:00,data
|
||||
file,workflow.tsv,6442,2026-10-22T19:26:36.753889+00:00,data
|
||||
file,2026-10-21-repo-census.md,3299,2026-10-21T10:08:16.897832+00:00,doc
|
||||
file,2026-10-22-media-catalog/README.md,1152,2026-10-22T11:11:51.595784+00:00,doc
|
||||
file,2026-10-22-top-ml-repos/README.md,1078,2026-10-22T16:40:37.004065+00:00,doc
|
||||
file,2026-10-22-top-ml-repos/repos.md,2404,2026-10-22T16:40:37.003065+00:00,doc
|
||||
file,2026-10-22-top-repos-by-stars/README.md,2941,2026-10-22T05:35:10.447975+00:00,doc
|
||||
file,2026-10-22-top-repos-by-stars/repos.md,2394,2026-10-22T05:35:10.447975+00:00,doc
|
||||
file,2026-10-23-jpv-users.md,1364,2026-10-23T12:25:16.769724+00:00,doc
|
||||
file,2026-10-24-countries-gdp-nominal/countries_gdp_nominal.md,9299,2026-10-24T05:23:58.806081+00:00,doc
|
||||
file,2026-10-24-countries-gdp-nominal/fetch_raw_wikitext.txt,53399,2026-10-24T05:23:58.776078+00:00,doc
|
||||
file,2026-10-24-job-postings/README.md,595,2026-10-24T10:50:52.038823+00:00,doc
|
||||
file,2026-10-25-git-history-README.md,1368,2026-10-25T16:46:17.026209+00:00,doc
|
||||
file,2026-10-25-git-history-live-b1edd09/README.md,837,2026-10-25T14:08:39.067939+00:00,doc
|
||||
file,2026-10-25-git-history-live-b1edd09/git-history.md,9306,2026-10-25T14:08:39.067939+00:00,doc
|
||||
file,2026-10-25-git-history.md,9339,2026-10-25T16:43:23.750800+00:00,doc
|
||||
file,2026-10-25-head-20-commits/README.md,1059,2026-10-25T03:15:50.216033+00:00,doc
|
||||
file,2026-10-25-head-20-commits/commits.md,4318,2026-10-25T03:15:50.216033+00:00,doc
|
||||
file,2026-10-25-workqueue-census.md,16464,2026-10-25T22:18:58.943131+00:00,doc
|
||||
file,2026-10-26-commit-census-as-of-HEAD.md,2119,2026-10-26T18:22:26.270329+00:00,doc
|
||||
file,2026-10-26-commit-census.md,1106,2026-10-26T03:45:23.486786+00:00,doc
|
||||
file,2026-10-26-top-20-economies-gdp-2024/top-20-economies-2024.md,1350,2026-10-26T22:06:00.674252+00:00,doc
|
||||
file,2026-10-27-checkin-census.md,1516,2026-10-27T22:24:08.579591+00:00,doc
|
||||
file,2026-10-27-commit-census.md,1561,2026-10-27T17:01:37.933663+00:00,doc
|
||||
file,GDP-per-capita-usd-provenance.md,899,2026-10-21T10:13:24.636160+00:00,doc
|
||||
file,README-commit-census.md,1532,2026-10-26T03:39:53.157452+00:00,doc
|
||||
file,README-csai-10.md,1778,2026-10-22T13:57:48.060717+00:00,doc
|
||||
file,README-file-tree-census.md,2004,2026-10-25T19:40:15.439988+00:00,doc
|
||||
file,README-gdp-nominal-2026.md,982,2026-10-25T14:21:28.517777+00:00,doc
|
||||
file,README-github-python-repos.md,2250,2026-10-23T01:06:23.591316+00:00,doc
|
||||
file,README-live-roster.md,961,2026-10-23T09:50:55.173267+00:00,doc
|
||||
file,README.md,584,2026-10-27T19:42:31.745114+00:00,doc
|
||||
file,USERS-extraction.md,2223,2026-10-23T12:25:47.285200+00:00,doc
|
||||
file,arxiv-csai-10.md,2162,2026-10-22T13:57:48.020714+00:00,doc
|
||||
file,arxiv-csai-fresh-2026-10-23.md,3294,2026-10-23T03:48:28.517522+00:00,doc
|
||||
file,arxiv-lg-extract-notes.md,1459,2026-10-20T17:28:58.828233+00:00,doc
|
||||
file,arxiv-lg-extraction-2026-10-20.md,1525,2026-10-20T17:36:08.595745+00:00,doc
|
||||
file,arxiv-lg-recent.md,33842,2026-10-20T17:35:25.900203+00:00,doc
|
||||
file,arxiv-papers.md,3996,2026-10-25T19:35:55.697147+00:00,doc
|
||||
file,arxiv_csai_recent.md,2734,2026-10-26T14:02:48.127914+00:00,doc
|
||||
file,arxiv_long_context.md,3832,2026-10-27T16:56:18.737191+00:00,doc
|
||||
file,catalog.md,969,2026-10-20T20:18:04.450914+00:00,doc
|
||||
file,checkin-census-2026-10-27.md,2420,2026-10-27T11:52:51.264175+00:00,doc
|
||||
file,checkin-census.md,2709,2026-10-27T00:41:28.277909+00:00,doc
|
||||
file,commits-table.md,923,2026-10-25T21:59:01.118194+00:00,doc
|
||||
file,commits.md,4105,2026-10-25T00:33:32.572646+00:00,doc
|
||||
file,country-area-2026-10-23.md,15910,2026-10-23T23:38:27.383776+00:00,doc
|
||||
file,cron-fleet-jobs-2026-10-26.md,33968,2026-10-26T06:35:01.133361+00:00,doc
|
||||
file,ext-census.md,1775,2026-10-27T14:15:33.128623+00:00,doc
|
||||
file,extraction-verification.md,4748,2026-10-23T09:53:36.929678+00:00,doc
|
||||
file,gdp-per-capita.md,663,2026-10-25T14:30:28.413407+00:00,doc
|
||||
file,gdp-us-states-2026-10-23/gdp-us-states-2026-10-23.md,5646,2026-10-23T01:24:14.559420+00:00,doc
|
||||
file,gdp_nominal_usd_2023.md,968,2026-10-21T15:48:59.025800+00:00,doc
|
||||
file,git-author-census-2026-10-23.md,5677,2026-10-23T21:12:34.477401+00:00,doc
|
||||
file,git-author-census.md,5711,2026-10-21T07:30:26.715610+00:00,doc
|
||||
file,gitea-repos-2026-10-21.md,2625,2026-10-21T01:46:50.372649+00:00,doc
|
||||
file,github-python-repos-2026-10-23.md,24924,2026-10-23T01:06:23.590316+00:00,doc
|
||||
file,iso3_README.md,1635,2026-10-22T00:04:34.266986+00:00,doc
|
||||
file,iso3_alpha3.md,5733,2026-10-22T00:04:36.552176+00:00,doc
|
||||
file,iso3_codes.txt,1044,2026-10-21T15:48:59.029800+00:00,doc
|
||||
file,issues.md,68045,2026-10-20T23:03:57.591723+00:00,doc
|
||||
file,ledger-skill-registry.md,9263,2026-10-23T18:13:42.778448+00:00,doc
|
||||
file,live-wizard-roster.md,1862,2026-10-23T09:53:35.730578+00:00,doc
|
||||
file,queue-extract.md,30208,2026-10-27T08:51:45.843097+00:00,doc
|
||||
file,recoveries-index.md,11030,2026-10-21T21:12:57.126270+00:00,doc
|
||||
file,repos.md,1907,2026-10-22T05:39:41.962324+00:00,doc
|
||||
file,stackchain-catalog.md,2476,2026-10-26T06:23:55.395969+00:00,doc
|
||||
file,stackchain_catalog.md,6013,2026-10-23T14:59:56.142771+00:00,doc
|
||||
file,tlds-alpha-by-domain.txt,9528,2026-10-26T14:07:52.784840+00:00,doc
|
||||
file,top-50-repos-by-stars/README.md,5740,2026-10-22T08:29:46.426500+00:00,doc
|
||||
file,top-50-repos-by-stars/repos.md,9579,2026-10-22T08:29:46.426500+00:00,doc
|
||||
file,top-cryptocurrencies.md,1199,2026-10-26T11:17:00.659775+00:00,doc
|
||||
file,troupe-census.md,3692,2026-10-21T18:34:28.897732+00:00,doc
|
||||
file,troupe-churn.md,5768,2026-10-23T09:43:05.437279+00:00,doc
|
||||
file,verification-notes.md,1138,2026-10-26T11:17:00.671776+00:00,doc
|
||||
file,wizard-work-census-2026-10-27.md,1391,2026-10-27T11:46:40.567701+00:00,doc
|
||||
file,wizardwork-census.md,922,2026-10-26T08:47:15.207982+00:00,doc
|
||||
file,workflow.md,7629,2026-10-22T19:26:36.759890+00:00,doc
|
||||
file,.oldchk.test,1616,2026-10-27T17:10:06.700402+00:00,other
|
||||
file,2026-10-25-git-history-live-b1edd09/CHECK,654,2026-10-25T14:08:39.070939+00:00,other
|
||||
file,2026-10-25-head-20-commits/CHECK,349,2026-10-25T03:12:25.170586+00:00,other
|
||||
file,CHECK,2213,2026-10-27T22:24:08.579591+00:00,other
|
||||
file,CHECK-2026-10-27-checkin-census,1656,2026-10-27T05:57:06.158537+00:00,other
|
||||
file,CHECK-checkin-census,1395,2026-10-27T00:43:32.230224+00:00,other
|
||||
file,CHECK-commit-census,1928,2026-10-26T03:46:16.205159+00:00,other
|
||||
file,CHECK-commit-census-2026-10-27,2100,2026-10-27T17:33:39.172764+00:00,other
|
||||
file,CHECK-commit-census-as-of-HEAD,553,2026-10-26T18:22:26.274330+00:00,other
|
||||
file,CHECK-git-history,4327,2026-10-25T11:19:32.792464+00:00,other
|
||||
file,CHECK-workqueue-census,825,2026-10-25T22:19:20.642941+00:00,other
|
||||
file,git-author-census-2026-10-23.CHECK,2850,2026-10-23T20:56:37.236644+00:00,other
|
||||
file,github_repos_stars.md5,57,2026-10-24T02:36:58.484097+00:00,other
|
||||
file,2026-10-22-media-catalog/verify.sh,2437,2026-10-22T11:11:51.595784+00:00,script
|
||||
file,2026-10-22-top-ml-repos/verify.py,2293,2026-10-22T16:40:37.004065+00:00,script
|
||||
file,2026-10-22-top-repos-by-stars/verify.py,1274,2026-10-22T05:35:10.447975+00:00,script
|
||||
file,2026-10-24-countries-gdp-nominal/extract.py,8210,2026-10-24T05:23:53.522642+00:00,script
|
||||
file,2026-10-24-countries-gdp-nominal/verify.py,2544,2026-10-24T05:24:27.333450+00:00,script
|
||||
file,2026-10-24-job-postings/verify.py,1182,2026-10-24T10:50:56.270174+00:00,script
|
||||
file,2026-10-25-git-history-live-b1edd09/extract_git_history_live.py,7247,2026-10-25T14:08:39.067939+00:00,script
|
||||
file,2026-10-25-git-history-live-b1edd09/verify_git_history.py,3790,2026-10-25T14:08:39.067939+00:00,script
|
||||
file,2026-10-25-head-20-commits/verify_head_commits.py,4501,2026-10-25T03:12:26.610708+00:00,script
|
||||
file,2026-10-26-top-20-economies-gdp-2024/verify.sh,1392,2026-10-26T22:06:00.681252+00:00,script
|
||||
file,2026-10-27-commit-census.py,3583,2026-10-27T17:01:52.633838+00:00,script
|
||||
file,CHECK.py,2158,2026-10-26T01:01:54.492572+00:00,script
|
||||
file,CK_check_cron_fleet.py,594,2026-10-26T06:34:50.359464+00:00,script
|
||||
file,arxiv-lg-fresh.py,2892,2026-10-20T17:35:18.868620+00:00,script
|
||||
file,arxiv_long_context_extractor.py,1923,2026-10-27T16:55:14.187054+00:00,script
|
||||
file,build_census_md.py,967,2026-10-25T22:18:55.595852+00:00,script
|
||||
file,build_gdp_nominal_usd.py,2560,2026-10-21T15:48:59.030800+00:00,script
|
||||
file,build_live_roster.py,7692,2026-10-23T09:53:27.516898+00:00,script
|
||||
file,build_roster.py,1896,2026-10-25T08:35:01.675039+00:00,script
|
||||
file,build_stackchain_catalog.py,6858,2026-10-23T14:59:51.602392+00:00,script
|
||||
file,census.py,2124,2026-10-27T22:08:08.947605+00:00,script
|
||||
file,census_check.py,3774,2026-10-21T18:35:46.192067+00:00,script
|
||||
file,check.sh,278,2026-10-23T09:50:42.399208+00:00,script
|
||||
file,check_gdp_nominal.py,2741,2026-10-21T15:48:59.030800+00:00,script
|
||||
file,check_iso3.py,2351,2026-10-22T00:04:36.581178+00:00,script
|
||||
file,check_ledger.py,3637,2026-10-21T04:37:48.548264+00:00,script
|
||||
file,check_ledger_extract.py,2667,2026-10-26T08:56:41.282618+00:00,script
|
||||
file,check_live_roster.py,3982,2026-10-23T09:53:31.948265+00:00,script
|
||||
file,check_recoveries_index.py,3902,2026-10-21T21:13:12.404521+00:00,script
|
||||
file,check_roster.py,2780,2026-10-21T12:51:51.295168+00:00,script
|
||||
file,checkin_inventory_verify.py,2845,2026-10-26T06:31:37.073385+00:00,script
|
||||
file,extract_area_table.py,6970,2026-10-23T23:38:17.362947+00:00,script
|
||||
file,extract_arxiv_csai_fresh.py,5911,2026-10-23T03:48:24.951222+00:00,script
|
||||
file,extract_catalog.py,2299,2026-10-22T22:18:11.490289+00:00,script
|
||||
file,extract_checkin_census.py,3862,2026-10-27T00:41:16.564934+00:00,script
|
||||
file,extract_checkin_census_2026-10-27.py,4115,2026-10-27T22:24:08.579591+00:00,script
|
||||
file,extract_gdp_per_capita.py,3973,2026-10-25T14:30:28.406407+00:00,script
|
||||
file,extract_git_history.py,5097,2026-10-25T11:14:34.466682+00:00,script
|
||||
file,extract_git_history_live.py,7247,2026-10-25T14:07:33.589506+00:00,script
|
||||
file,extract_gitea_repos.py,4890,2026-10-21T01:45:52.855910+00:00,script
|
||||
file,extract_github_python_repos.py,6517,2026-10-23T01:06:23.591316+00:00,script
|
||||
file,extract_iso3.py,3100,2026-10-22T00:04:36.572178+00:00,script
|
||||
file,extract_jpv_users.py,2542,2026-10-23T12:25:16.782725+00:00,script
|
||||
file,extract_roster.py,3739,2026-10-21T12:50:53.151406+00:00,script
|
||||
file,extract_tlds.py,1601,2026-10-26T14:08:47.718497+00:00,script
|
||||
file,extract_un_member_states.py,2650,2026-10-21T04:37:48.548264+00:00,script
|
||||
file,extract_wizardwork_census.py,6516,2026-10-26T08:47:07.382339+00:00,script
|
||||
file,extract_workflow.py,5293,2026-10-20T14:52:05.576784+00:00,script
|
||||
file,extract_workqueue_census.py,2028,2026-10-25T22:18:40.934628+00:00,script
|
||||
file,find_headers.py,272,2026-10-25T08:33:41.435373+00:00,script
|
||||
file,gdp-us-states-2026-10-23/verify.py,5820,2026-10-23T01:25:54.010687+00:00,script
|
||||
file,gen_manifest.py,1041,2026-10-26T08:51:57.430205+00:00,script
|
||||
file,generate_ledger_extract.py,2017,2026-10-26T08:56:00.622262+00:00,script
|
||||
file,inspect_checkins.py,319,2026-10-25T08:33:26.809157+00:00,script
|
||||
file,make_arxiv_csv.py,2653,2026-10-20T17:33:21.123864+00:00,script
|
||||
file,test_scratch_manifest.py,2235,2026-10-27T19:39:22.986424+00:00,script
|
||||
file,top-50-repos-by-stars/verify.py,2726,2026-10-22T08:29:46.426500+00:00,script
|
||||
file,verify.py,2487,2026-10-26T11:17:00.675776+00:00,script
|
||||
file,verify.sh,248,2026-10-25T19:31:41.757541+00:00,script
|
||||
file,verify_arxiv_csai.py,3897,2026-10-22T13:57:48.030715+00:00,script
|
||||
file,verify_arxiv_csai_fresh.py,4627,2026-10-23T03:47:56.432818+00:00,script
|
||||
file,verify_arxiv_csv.py,1589,2026-10-24T18:25:49.343736+00:00,script
|
||||
file,verify_arxiv_fresh.py,2730,2026-10-20T17:36:36.511060+00:00,script
|
||||
file,verify_catalog.py,3950,2026-10-20T20:18:04.461915+00:00,script
|
||||
file,verify_census.py,1716,2026-10-27T14:15:33.005612+00:00,script
|
||||
file,verify_commits_check.py,4452,2026-10-25T00:36:01.303077+00:00,script
|
||||
file,verify_commits_table.py,15452,2026-10-25T21:58:24.625051+00:00,script
|
||||
file,verify_dates.py,1172,2026-10-25T08:26:19.631641+00:00,script
|
||||
file,verify_gdp.py,1695,2026-10-25T06:01:18.531166+00:00,script
|
||||
file,verify_gdp_per_capita.py,2604,2026-10-25T14:30:28.427408+00:00,script
|
||||
file,verify_gitea_repos.py,4117,2026-10-21T01:46:35.445419+00:00,script
|
||||
file,verify_github_python_repos.py,4938,2026-10-23T01:06:23.591316+00:00,script
|
||||
file,verify_github_repos.py,5994,2026-10-24T18:26:36.322632+00:00,script
|
||||
file,verify_issues.py,2795,2026-10-20T23:03:14.976167+00:00,script
|
||||
file,verify_python_org_repos.py,3574,2026-10-23T06:38:23.819820+00:00,script
|
||||
file,verify_stackchain_catalog.py,5744,2026-10-23T15:00:26.183277+00:00,script
|
||||
file,verify_tree_census.py,3612,2026-10-25T19:32:59.470080+00:00,script
|
||||
file,verify_users.py,1954,2026-10-23T12:24:58.484242+00:00,script
|
||||
file,verify_wizards.py,6693,2026-10-25T08:40:10.257667+00:00,script
|
||||
file,verify_wizards.sh,432,2026-10-25T08:39:55.423435+00:00,script
|
||||
file,verify_workflow.py,1824,2026-10-20T14:52:05.580784+00:00,script
|
||||
|
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,323 @@
|
||||
# wizard-work/ledger census — 2026-10-28
|
||||
|
||||
*source*: os.walk + os.stat over `/root/troupe-standup/wizard-work/ledger` (no symlink following)
|
||||
*classification*: extension-based per CATEGORY_RULES; row count = files + dirs
|
||||
|
||||
## Headline
|
||||
|
||||
| measure | value |
|
||||
| --- | --- |
|
||||
| files | 294 |
|
||||
| subdirectories | 11 |
|
||||
| total entries | 305 |
|
||||
| total bytes | 7,627,523 |
|
||||
| categories | 5 |
|
||||
|
||||
## Category rollup
|
||||
|
||||
| category | files | bytes |
|
||||
| --- | --- | --- |
|
||||
| config | 44 | 3,452,445 |
|
||||
| data | 80 | 3,379,884 |
|
||||
| doc | 76 | 493,868 |
|
||||
| other | 13 | 20,523 |
|
||||
| script | 81 | 280,803 |
|
||||
|
||||
## File inventory
|
||||
|
||||
| category | relpath | size | mtime(UTC) |
|
||||
| --- | --- | --- | --- |
|
||||
| config | `2026-10-22-media-catalog/extraction_manifest.json` | 510 | 2026-10-22T11:11:51.595784+00:00 |
|
||||
| config | `2026-10-22-top-ml-repos/repos.json` | 3524 | 2026-10-22T16:40:37.002065+00:00 |
|
||||
| config | `2026-10-22-top-repos-by-stars/repos.json` | 4257 | 2026-10-22T05:35:10.446975+00:00 |
|
||||
| config | `2026-10-23-jpv-users.json` | 2444 | 2026-10-23T12:25:16.769724+00:00 |
|
||||
| config | `2026-10-23-jpv-users.raw.json` | 5645 | 2026-10-23T12:25:16.735721+00:00 |
|
||||
| config | `2026-10-24-countries-gdp-nominal/countries_gdp_nominal.json` | 35729 | 2026-10-24T05:23:58.805080+00:00 |
|
||||
| config | `2026-10-24-countries-gdp-nominal/extraction_manifest.json` | 662 | 2026-10-24T05:28:30.843253+00:00 |
|
||||
| config | `2026-10-24-job-postings/manifest.json` | 545 | 2026-10-24T10:50:47.594455+00:00 |
|
||||
| config | `2026-10-25-git-history-live-b1edd09/git-history.json` | 1119552 | 2026-10-25T14:08:39.066939+00:00 |
|
||||
| config | `2026-10-25-git-history.json` | 1223459 | 2026-10-25T16:43:23.746800+00:00 |
|
||||
| config | `2026-10-25-head-20-commits/commits.json` | 9309 | 2026-10-25T03:15:50.215033+00:00 |
|
||||
| config | `api_endpoints.json` | 10465 | 2026-10-24T19:06:58.343857+00:00 |
|
||||
| config | `arxiv-csai-10.json` | 13884 | 2026-10-22T13:57:47.998712+00:00 |
|
||||
| config | `arxiv-csai-fresh-2026-10-23.json` | 6443 | 2026-10-23T03:48:28.517522+00:00 |
|
||||
| config | `arxiv-lg-recent.json` | 35535 | 2026-10-20T17:35:25.900203+00:00 |
|
||||
| config | `catalog.json` | 1418 | 2026-10-20T20:18:04.453914+00:00 |
|
||||
| config | `census_data.json` | 8426 | 2026-10-21T07:30:26.711610+00:00 |
|
||||
| config | `commits-table-feed-2026-10-25.json` | 30412 | 2026-10-25T21:59:00.774164+00:00 |
|
||||
| config | `commits.json` | 8359 | 2026-10-25T00:33:32.572646+00:00 |
|
||||
| config | `commits_by_author_day.json` | 11073 | 2026-10-23T09:43:05.407276+00:00 |
|
||||
| config | `country-area-2026-10-23.json` | 71221 | 2026-10-23T23:38:27.375775+00:00 |
|
||||
| config | `cron-fleet-jobs-2026-10-26.json` | 55941 | 2026-10-26T06:35:01.128360+00:00 |
|
||||
| config | `gdp-per-capita.json` | 734 | 2026-10-25T14:30:28.421408+00:00 |
|
||||
| config | `gdp-us-states-2026-10-23/extraction_manifest.json` | 448 | 2026-10-23T01:24:14.562420+00:00 |
|
||||
| config | `gdp-us-states-2026-10-23/gdp-us-states-2026-10-23.json` | 22753 | 2026-10-23T01:24:14.559420+00:00 |
|
||||
| config | `gdp_nominal_usd_2023.json` | 56363 | 2026-10-21T15:48:59.026799+00:00 |
|
||||
| config | `gdp_top10_2026.json` | 1897 | 2026-10-24T08:00:51.927030+00:00 |
|
||||
| config | `git-author-census-2026-10-23.json` | 9802 | 2026-10-23T21:12:34.473401+00:00 |
|
||||
| config | `gitea-repos-2026-10-21.json` | 28010 | 2026-10-21T01:46:50.369649+00:00 |
|
||||
| config | `github-python-repos-2026-10-23.json` | 67658 | 2026-10-23T01:06:23.590316+00:00 |
|
||||
| config | `github_repos_stars.json` | 36973 | 2026-10-24T02:36:58.481097+00:00 |
|
||||
| config | `iso3_alpha3.json` | 16271 | 2026-10-22T00:04:36.534175+00:00 |
|
||||
| config | `issues-source.json` | 127442 | 2026-10-20T23:03:57.583723+00:00 |
|
||||
| config | `live-wizard-roster.json` | 2847 | 2026-10-23T09:53:35.731579+00:00 |
|
||||
| config | `raw_contributors.json` | 10805 | 2026-10-26T16:11:34.872237+00:00 |
|
||||
| config | `repos.json` | 3000 | 2026-10-22T08:23:14.722199+00:00 |
|
||||
| config | `roster-summary.json` | 7222 | 2026-10-23T09:46:21.395554+00:00 |
|
||||
| config | `source/coins_raw.json` | 7881 | 2026-10-26T11:17:00.679776+00:00 |
|
||||
| config | `stackchain-catalog.rows.json` | 9279 | 2026-10-26T06:23:55.394969+00:00 |
|
||||
| config | `stackchain_catalog.json` | 6646 | 2026-10-23T14:59:56.141771+00:00 |
|
||||
| config | `top-50-repos-by-stars/repos.json` | 15475 | 2026-10-22T08:29:46.426500+00:00 |
|
||||
| config | `top-python-repos-2026-10-26.json` | 334810 | 2026-10-26T01:01:54.488571+00:00 |
|
||||
| config | `un_member_states.json` | 25504 | 2026-10-21T04:37:48.548264+00:00 |
|
||||
| config | `wizard_inventory.json` | 1812 | 2026-10-23T09:43:05.436279+00:00 |
|
||||
| data | `2026-10-22-media-catalog/media_catalog.csv` | 1255 | 2026-10-22T11:11:51.595784+00:00 |
|
||||
| data | `2026-10-22-top-ml-repos/repos.csv` | 1802 | 2026-10-22T16:40:37.003065+00:00 |
|
||||
| data | `2026-10-22-top-repos-by-stars/repos.csv` | 1822 | 2026-10-22T05:35:10.447975+00:00 |
|
||||
| data | `2026-10-23-jpv-users.csv` | 1143 | 2026-10-23T12:25:16.769724+00:00 |
|
||||
| data | `2026-10-24-countries-gdp-nominal/countries_gdp_nominal.csv` | 6403 | 2026-10-24T05:23:58.801080+00:00 |
|
||||
| data | `2026-10-24-job-postings/jobs.csv` | 154681 | 2026-10-24T10:50:47.591455+00:00 |
|
||||
| data | `2026-10-25-git-history-live-b1edd09/git-history.csv` | 729183 | 2026-10-25T14:08:39.064939+00:00 |
|
||||
| data | `2026-10-25-git-history.csv` | 733494 | 2026-10-25T16:43:23.115747+00:00 |
|
||||
| data | `2026-10-25-head-20-commits/commits.tsv` | 4454 | 2026-10-25T03:15:50.215033+00:00 |
|
||||
| data | `2026-10-25-head-20-commits/commits_detail.tsv` | 2553 | 2026-10-25T03:15:50.215033+00:00 |
|
||||
| data | `2026-10-25-workqueue-census.tsv` | 15694 | 2026-10-25T22:18:44.296909+00:00 |
|
||||
| data | `2026-10-26-commit-census-as-of-HEAD.tsv` | 461 | 2026-10-26T18:22:36.187115+00:00 |
|
||||
| data | `2026-10-26-commit-census.tsv` | 460 | 2026-10-26T20:02:26.908202+00:00 |
|
||||
| data | `2026-10-27-checkin-census.tsv` | 150 | 2026-10-27T22:24:08.578590+00:00 |
|
||||
| data | `2026-10-27-commit-census.csv` | 487 | 2026-10-27T17:01:37.932663+00:00 |
|
||||
| data | `2026-10-27-commit-census.tsv` | 487 | 2026-10-27T17:01:37.932663+00:00 |
|
||||
| data | `api-endpoints.csv` | 5501 | 2026-10-24T19:06:58.339857+00:00 |
|
||||
| data | `arxiv-csai-10.csv` | 4969 | 2026-10-22T13:57:47.989711+00:00 |
|
||||
| data | `arxiv-csai-fresh-2026-10-23.csv` | 4966 | 2026-10-23T03:48:28.517522+00:00 |
|
||||
| data | `arxiv-lg-recent.csv` | 33633 | 2026-10-20T17:35:25.899203+00:00 |
|
||||
| data | `arxiv-papers.csv` | 18502 | 2026-10-24T16:30:11.706054+00:00 |
|
||||
| data | `arxiv-recent.csv` | 25284 | 2026-10-27T19:46:54.090963+00:00 |
|
||||
| data | `arxiv15.xml` | 35448 | 2026-10-27T16:56:36.940641+00:00 |
|
||||
| data | `arxiv_csai_recent.csv` | 26239 | 2026-10-26T14:02:48.121913+00:00 |
|
||||
| data | `arxiv_gnn.csv` | 6341 | 2026-10-23T23:44:26.418484+00:00 |
|
||||
| data | `arxiv_long_context.csv` | 3453 | 2026-10-27T16:55:14.181053+00:00 |
|
||||
| data | `arxiv_titles.csv` | 576 | 2026-10-24T13:53:14.441088+00:00 |
|
||||
| data | `catalog.csv` | 841 | 2026-10-20T20:18:04.457915+00:00 |
|
||||
| data | `checkin-cadence.tsv` | 1463 | 2026-10-27T00:41:28.261908+00:00 |
|
||||
| data | `checkin-census-2026-10-27.tsv` | 4237 | 2026-10-27T11:51:31.384602+00:00 |
|
||||
| data | `checkin-census.csv` | 4471 | 2026-10-21T18:43:00.723703+00:00 |
|
||||
| data | `checkin-census.tsv` | 74 | 2026-10-27T00:41:28.261908+00:00 |
|
||||
| data | `checkin-inventory.csv` | 5452 | 2026-10-26T06:29:26.961560+00:00 |
|
||||
| data | `commits.tsv` | 4267 | 2026-10-25T00:33:32.572646+00:00 |
|
||||
| data | `commits_by_author_day.csv` | 3337 | 2026-10-23T09:43:05.406276+00:00 |
|
||||
| data | `commits_detail.tsv` | 1789 | 2026-10-25T00:33:32.572646+00:00 |
|
||||
| data | `contributors.csv` | 465 | 2026-10-26T16:11:34.868237+00:00 |
|
||||
| data | `country-area-2026-10-23.csv` | 25993 | 2026-10-23T23:38:27.330771+00:00 |
|
||||
| data | `cron-fleet-jobs-2026-10-26.csv` | 31383 | 2026-10-26T06:35:01.119359+00:00 |
|
||||
| data | `ext-census.tsv` | 295 | 2026-10-27T14:13:15.426535+00:00 |
|
||||
| data | `gdp-per-capita.csv` | 399 | 2026-10-25T14:30:28.417408+00:00 |
|
||||
| data | `gdp-us-states-2026-10-23/gdp-us-states-2026-10-23.csv` | 4812 | 2026-10-23T01:24:14.557420+00:00 |
|
||||
| data | `gdp_nominal.csv` | 8774 | 2026-10-25T06:01:18.522166+00:00 |
|
||||
| data | `gdp_nominal_2026.csv` | 6226 | 2026-10-25T14:21:28.509776+00:00 |
|
||||
| data | `gdp_nominal_usd_2023.csv` | 568 | 2026-10-21T15:48:59.025800+00:00 |
|
||||
| data | `gdp_per_capita_usd.csv` | 6070 | 2026-10-21T10:13:25.107199+00:00 |
|
||||
| data | `gdp_top10_2026.csv` | 434 | 2026-10-24T08:00:51.933031+00:00 |
|
||||
| data | `git-author-census-2026-10-23.csv` | 3611 | 2026-10-23T21:12:34.474401+00:00 |
|
||||
| data | `gitea-repos-2026-10-21.csv` | 2955 | 2026-10-21T01:46:50.366648+00:00 |
|
||||
| data | `github-python-repos-2026-10-23.csv` | 42250 | 2026-10-23T01:06:23.588316+00:00 |
|
||||
| data | `github_repos_stars.csv` | 20832 | 2026-10-24T02:36:58.476097+00:00 |
|
||||
| data | `iso3_alpha3.csv` | 4365 | 2026-10-22T00:04:36.530174+00:00 |
|
||||
| data | `issues.csv` | 65364 | 2026-10-20T23:03:57.588723+00:00 |
|
||||
| data | `ledger-extract.tsv` | 160205 | 2026-10-26T08:56:27.693496+00:00 |
|
||||
| data | `live-wizard-roster.tsv` | 1528 | 2026-10-23T09:53:35.730578+00:00 |
|
||||
| data | `python_org_repos_top50.csv` | 5728 | 2026-10-23T06:36:11.855862+00:00 |
|
||||
| data | `queue-extract.csv` | 47202 | 2026-10-27T08:51:45.847097+00:00 |
|
||||
| data | `recoveries-index.csv` | 8890 | 2026-10-21T21:12:17.130996+00:00 |
|
||||
| data | `repo_exts.tsv` | 338 | 2026-10-25T19:38:22.837287+00:00 |
|
||||
| data | `repo_files.tsv` | 206778 | 2026-10-25T19:38:22.875290+00:00 |
|
||||
| data | `repo_tree.tsv` | 8138 | 2026-10-25T19:38:22.833287+00:00 |
|
||||
| data | `repos.csv` | 1605 | 2026-10-22T05:39:41.961324+00:00 |
|
||||
| data | `stackchain_catalog.csv` | 2182 | 2026-10-22T22:18:11.462287+00:00 |
|
||||
| data | `tlds.csv` | 15432 | 2026-10-26T14:08:47.919514+00:00 |
|
||||
| data | `tlds_by_letter.tsv` | 131 | 2026-10-26T14:08:47.919514+00:00 |
|
||||
| data | `top-50-repos-by-stars/repos.csv` | 8651 | 2026-10-22T08:29:46.426500+00:00 |
|
||||
| data | `top-cryptocurrencies.csv` | 2496 | 2026-10-26T11:17:00.664775+00:00 |
|
||||
| data | `top-python-repos-2026-10-26.csv` | 22949 | 2026-10-26T01:01:54.456568+00:00 |
|
||||
| data | `troupe-census.csv` | 9866 | 2026-10-21T18:34:28.893732+00:00 |
|
||||
| data | `un_member_states.csv` | 7606 | 2026-10-21T04:37:48.548264+00:00 |
|
||||
| data | `us-gdp-nominal-annual-2018-2025.csv` | 259 | 2026-10-23T01:34:31.208371+00:00 |
|
||||
| data | `wizard-roster.csv` | 4767 | 2026-10-23T09:46:21.394554+00:00 |
|
||||
| data | `wizard-work-census-2026-10-27.tsv` | 208 | 2026-10-27T11:46:40.510696+00:00 |
|
||||
| data | `wizard_inventory.csv` | 990 | 2026-10-23T09:43:05.435278+00:00 |
|
||||
| data | `wizards-roster-2026-10-25.csv` | 1775 | 2026-10-25T08:34:52.580283+00:00 |
|
||||
| data | `wizards.csv` | 4714 | 2026-10-26T01:06:20.294585+00:00 |
|
||||
| data | `wizardwork-census.csv` | 240446 | 2026-10-26T08:47:15.206981+00:00 |
|
||||
| data | `wizardwork-census.tsv` | 270131 | 2026-10-26T08:50:16.923927+00:00 |
|
||||
| data | `wizardwork-file-manifest.tsv` | 270259 | 2026-10-26T08:51:57.701227+00:00 |
|
||||
| data | `workflow.tsv` | 6442 | 2026-10-22T19:26:36.753889+00:00 |
|
||||
| doc | `2026-10-21-repo-census.md` | 3299 | 2026-10-21T10:08:16.897832+00:00 |
|
||||
| doc | `2026-10-22-media-catalog/README.md` | 1152 | 2026-10-22T11:11:51.595784+00:00 |
|
||||
| doc | `2026-10-22-top-ml-repos/README.md` | 1078 | 2026-10-22T16:40:37.004065+00:00 |
|
||||
| doc | `2026-10-22-top-ml-repos/repos.md` | 2404 | 2026-10-22T16:40:37.003065+00:00 |
|
||||
| doc | `2026-10-22-top-repos-by-stars/README.md` | 2941 | 2026-10-22T05:35:10.447975+00:00 |
|
||||
| doc | `2026-10-22-top-repos-by-stars/repos.md` | 2394 | 2026-10-22T05:35:10.447975+00:00 |
|
||||
| doc | `2026-10-23-jpv-users.md` | 1364 | 2026-10-23T12:25:16.769724+00:00 |
|
||||
| doc | `2026-10-24-countries-gdp-nominal/countries_gdp_nominal.md` | 9299 | 2026-10-24T05:23:58.806081+00:00 |
|
||||
| doc | `2026-10-24-countries-gdp-nominal/fetch_raw_wikitext.txt` | 53399 | 2026-10-24T05:23:58.776078+00:00 |
|
||||
| doc | `2026-10-24-job-postings/README.md` | 595 | 2026-10-24T10:50:52.038823+00:00 |
|
||||
| doc | `2026-10-25-git-history-README.md` | 1368 | 2026-10-25T16:46:17.026209+00:00 |
|
||||
| doc | `2026-10-25-git-history-live-b1edd09/README.md` | 837 | 2026-10-25T14:08:39.067939+00:00 |
|
||||
| doc | `2026-10-25-git-history-live-b1edd09/git-history.md` | 9306 | 2026-10-25T14:08:39.067939+00:00 |
|
||||
| doc | `2026-10-25-git-history.md` | 9339 | 2026-10-25T16:43:23.750800+00:00 |
|
||||
| doc | `2026-10-25-head-20-commits/README.md` | 1059 | 2026-10-25T03:15:50.216033+00:00 |
|
||||
| doc | `2026-10-25-head-20-commits/commits.md` | 4318 | 2026-10-25T03:15:50.216033+00:00 |
|
||||
| doc | `2026-10-25-workqueue-census.md` | 16464 | 2026-10-25T22:18:58.943131+00:00 |
|
||||
| doc | `2026-10-26-commit-census-as-of-HEAD.md` | 2119 | 2026-10-26T18:22:26.270329+00:00 |
|
||||
| doc | `2026-10-26-commit-census.md` | 1106 | 2026-10-26T03:45:23.486786+00:00 |
|
||||
| doc | `2026-10-26-top-20-economies-gdp-2024/top-20-economies-2024.md` | 1350 | 2026-10-26T22:06:00.674252+00:00 |
|
||||
| doc | `2026-10-27-checkin-census.md` | 1516 | 2026-10-27T22:24:08.579591+00:00 |
|
||||
| doc | `2026-10-27-commit-census.md` | 1561 | 2026-10-27T17:01:37.933663+00:00 |
|
||||
| doc | `GDP-per-capita-usd-provenance.md` | 899 | 2026-10-21T10:13:24.636160+00:00 |
|
||||
| doc | `README-commit-census.md` | 1532 | 2026-10-26T03:39:53.157452+00:00 |
|
||||
| doc | `README-csai-10.md` | 1778 | 2026-10-22T13:57:48.060717+00:00 |
|
||||
| doc | `README-file-tree-census.md` | 2004 | 2026-10-25T19:40:15.439988+00:00 |
|
||||
| doc | `README-gdp-nominal-2026.md` | 982 | 2026-10-25T14:21:28.517777+00:00 |
|
||||
| doc | `README-github-python-repos.md` | 2250 | 2026-10-23T01:06:23.591316+00:00 |
|
||||
| doc | `README-live-roster.md` | 961 | 2026-10-23T09:50:55.173267+00:00 |
|
||||
| doc | `README.md` | 584 | 2026-10-27T19:42:31.745114+00:00 |
|
||||
| doc | `USERS-extraction.md` | 2223 | 2026-10-23T12:25:47.285200+00:00 |
|
||||
| doc | `arxiv-csai-10.md` | 2162 | 2026-10-22T13:57:48.020714+00:00 |
|
||||
| doc | `arxiv-csai-fresh-2026-10-23.md` | 3294 | 2026-10-23T03:48:28.517522+00:00 |
|
||||
| doc | `arxiv-lg-extract-notes.md` | 1459 | 2026-10-20T17:28:58.828233+00:00 |
|
||||
| doc | `arxiv-lg-extraction-2026-10-20.md` | 1525 | 2026-10-20T17:36:08.595745+00:00 |
|
||||
| doc | `arxiv-lg-recent.md` | 33842 | 2026-10-20T17:35:25.900203+00:00 |
|
||||
| doc | `arxiv-papers.md` | 3996 | 2026-10-25T19:35:55.697147+00:00 |
|
||||
| doc | `arxiv_csai_recent.md` | 2734 | 2026-10-26T14:02:48.127914+00:00 |
|
||||
| doc | `arxiv_long_context.md` | 3832 | 2026-10-27T16:56:18.737191+00:00 |
|
||||
| doc | `catalog.md` | 969 | 2026-10-20T20:18:04.450914+00:00 |
|
||||
| doc | `checkin-census-2026-10-27.md` | 2420 | 2026-10-27T11:52:51.264175+00:00 |
|
||||
| doc | `checkin-census.md` | 2709 | 2026-10-27T00:41:28.277909+00:00 |
|
||||
| doc | `commits-table.md` | 923 | 2026-10-25T21:59:01.118194+00:00 |
|
||||
| doc | `commits.md` | 4105 | 2026-10-25T00:33:32.572646+00:00 |
|
||||
| doc | `country-area-2026-10-23.md` | 15910 | 2026-10-23T23:38:27.383776+00:00 |
|
||||
| doc | `cron-fleet-jobs-2026-10-26.md` | 33968 | 2026-10-26T06:35:01.133361+00:00 |
|
||||
| doc | `ext-census.md` | 1775 | 2026-10-27T14:15:33.128623+00:00 |
|
||||
| doc | `extraction-verification.md` | 4748 | 2026-10-23T09:53:36.929678+00:00 |
|
||||
| doc | `gdp-per-capita.md` | 663 | 2026-10-25T14:30:28.413407+00:00 |
|
||||
| doc | `gdp-us-states-2026-10-23/gdp-us-states-2026-10-23.md` | 5646 | 2026-10-23T01:24:14.559420+00:00 |
|
||||
| doc | `gdp_nominal_usd_2023.md` | 968 | 2026-10-21T15:48:59.025800+00:00 |
|
||||
| doc | `git-author-census-2026-10-23.md` | 5677 | 2026-10-23T21:12:34.477401+00:00 |
|
||||
| doc | `git-author-census.md` | 5711 | 2026-10-21T07:30:26.715610+00:00 |
|
||||
| doc | `gitea-repos-2026-10-21.md` | 2625 | 2026-10-21T01:46:50.372649+00:00 |
|
||||
| doc | `github-python-repos-2026-10-23.md` | 24924 | 2026-10-23T01:06:23.590316+00:00 |
|
||||
| doc | `iso3_README.md` | 1635 | 2026-10-22T00:04:34.266986+00:00 |
|
||||
| doc | `iso3_alpha3.md` | 5733 | 2026-10-22T00:04:36.552176+00:00 |
|
||||
| doc | `iso3_codes.txt` | 1044 | 2026-10-21T15:48:59.029800+00:00 |
|
||||
| doc | `issues.md` | 68045 | 2026-10-20T23:03:57.591723+00:00 |
|
||||
| doc | `ledger-skill-registry.md` | 9263 | 2026-10-23T18:13:42.778448+00:00 |
|
||||
| doc | `live-wizard-roster.md` | 1862 | 2026-10-23T09:53:35.730578+00:00 |
|
||||
| doc | `queue-extract.md` | 30208 | 2026-10-27T08:51:45.843097+00:00 |
|
||||
| doc | `recoveries-index.md` | 11030 | 2026-10-21T21:12:57.126270+00:00 |
|
||||
| doc | `repos.md` | 1907 | 2026-10-22T05:39:41.962324+00:00 |
|
||||
| doc | `stackchain-catalog.md` | 2476 | 2026-10-26T06:23:55.395969+00:00 |
|
||||
| doc | `stackchain_catalog.md` | 6013 | 2026-10-23T14:59:56.142771+00:00 |
|
||||
| doc | `tlds-alpha-by-domain.txt` | 9528 | 2026-10-26T14:07:52.784840+00:00 |
|
||||
| doc | `top-50-repos-by-stars/README.md` | 5740 | 2026-10-22T08:29:46.426500+00:00 |
|
||||
| doc | `top-50-repos-by-stars/repos.md` | 9579 | 2026-10-22T08:29:46.426500+00:00 |
|
||||
| doc | `top-cryptocurrencies.md` | 1199 | 2026-10-26T11:17:00.659775+00:00 |
|
||||
| doc | `troupe-census.md` | 3692 | 2026-10-21T18:34:28.897732+00:00 |
|
||||
| doc | `troupe-churn.md` | 5768 | 2026-10-23T09:43:05.437279+00:00 |
|
||||
| doc | `verification-notes.md` | 1138 | 2026-10-26T11:17:00.671776+00:00 |
|
||||
| doc | `wizard-work-census-2026-10-27.md` | 1391 | 2026-10-27T11:46:40.567701+00:00 |
|
||||
| doc | `wizardwork-census.md` | 922 | 2026-10-26T08:47:15.207982+00:00 |
|
||||
| doc | `workflow.md` | 7629 | 2026-10-22T19:26:36.759890+00:00 |
|
||||
| other | `.oldchk.test` | 1616 | 2026-10-27T17:10:06.700402+00:00 |
|
||||
| other | `2026-10-25-git-history-live-b1edd09/CHECK` | 654 | 2026-10-25T14:08:39.070939+00:00 |
|
||||
| other | `2026-10-25-head-20-commits/CHECK` | 349 | 2026-10-25T03:12:25.170586+00:00 |
|
||||
| other | `CHECK` | 2213 | 2026-10-27T22:24:08.579591+00:00 |
|
||||
| other | `CHECK-2026-10-27-checkin-census` | 1656 | 2026-10-27T05:57:06.158537+00:00 |
|
||||
| other | `CHECK-checkin-census` | 1395 | 2026-10-27T00:43:32.230224+00:00 |
|
||||
| other | `CHECK-commit-census` | 1928 | 2026-10-26T03:46:16.205159+00:00 |
|
||||
| other | `CHECK-commit-census-2026-10-27` | 2100 | 2026-10-27T17:33:39.172764+00:00 |
|
||||
| other | `CHECK-commit-census-as-of-HEAD` | 553 | 2026-10-26T18:22:26.274330+00:00 |
|
||||
| other | `CHECK-git-history` | 4327 | 2026-10-25T11:19:32.792464+00:00 |
|
||||
| other | `CHECK-workqueue-census` | 825 | 2026-10-25T22:19:20.642941+00:00 |
|
||||
| other | `git-author-census-2026-10-23.CHECK` | 2850 | 2026-10-23T20:56:37.236644+00:00 |
|
||||
| other | `github_repos_stars.md5` | 57 | 2026-10-24T02:36:58.484097+00:00 |
|
||||
| script | `2026-10-22-media-catalog/verify.sh` | 2437 | 2026-10-22T11:11:51.595784+00:00 |
|
||||
| script | `2026-10-22-top-ml-repos/verify.py` | 2293 | 2026-10-22T16:40:37.004065+00:00 |
|
||||
| script | `2026-10-22-top-repos-by-stars/verify.py` | 1274 | 2026-10-22T05:35:10.447975+00:00 |
|
||||
| script | `2026-10-24-countries-gdp-nominal/extract.py` | 8210 | 2026-10-24T05:23:53.522642+00:00 |
|
||||
| script | `2026-10-24-countries-gdp-nominal/verify.py` | 2544 | 2026-10-24T05:24:27.333450+00:00 |
|
||||
| script | `2026-10-24-job-postings/verify.py` | 1182 | 2026-10-24T10:50:56.270174+00:00 |
|
||||
| script | `2026-10-25-git-history-live-b1edd09/extract_git_history_live.py` | 7247 | 2026-10-25T14:08:39.067939+00:00 |
|
||||
| script | `2026-10-25-git-history-live-b1edd09/verify_git_history.py` | 3790 | 2026-10-25T14:08:39.067939+00:00 |
|
||||
| script | `2026-10-25-head-20-commits/verify_head_commits.py` | 4501 | 2026-10-25T03:12:26.610708+00:00 |
|
||||
| script | `2026-10-26-top-20-economies-gdp-2024/verify.sh` | 1392 | 2026-10-26T22:06:00.681252+00:00 |
|
||||
| script | `2026-10-27-commit-census.py` | 3583 | 2026-10-27T17:01:52.633838+00:00 |
|
||||
| script | `CHECK.py` | 2158 | 2026-10-26T01:01:54.492572+00:00 |
|
||||
| script | `CK_check_cron_fleet.py` | 594 | 2026-10-26T06:34:50.359464+00:00 |
|
||||
| script | `arxiv-lg-fresh.py` | 2892 | 2026-10-20T17:35:18.868620+00:00 |
|
||||
| script | `arxiv_long_context_extractor.py` | 1923 | 2026-10-27T16:55:14.187054+00:00 |
|
||||
| script | `build_census_md.py` | 967 | 2026-10-25T22:18:55.595852+00:00 |
|
||||
| script | `build_gdp_nominal_usd.py` | 2560 | 2026-10-21T15:48:59.030800+00:00 |
|
||||
| script | `build_live_roster.py` | 7692 | 2026-10-23T09:53:27.516898+00:00 |
|
||||
| script | `build_roster.py` | 1896 | 2026-10-25T08:35:01.675039+00:00 |
|
||||
| script | `build_stackchain_catalog.py` | 6858 | 2026-10-23T14:59:51.602392+00:00 |
|
||||
| script | `census.py` | 2124 | 2026-10-27T22:08:08.947605+00:00 |
|
||||
| script | `census_check.py` | 3774 | 2026-10-21T18:35:46.192067+00:00 |
|
||||
| script | `check.sh` | 278 | 2026-10-23T09:50:42.399208+00:00 |
|
||||
| script | `check_gdp_nominal.py` | 2741 | 2026-10-21T15:48:59.030800+00:00 |
|
||||
| script | `check_iso3.py` | 2351 | 2026-10-22T00:04:36.581178+00:00 |
|
||||
| script | `check_ledger.py` | 3637 | 2026-10-21T04:37:48.548264+00:00 |
|
||||
| script | `check_ledger_extract.py` | 2667 | 2026-10-26T08:56:41.282618+00:00 |
|
||||
| script | `check_live_roster.py` | 3982 | 2026-10-23T09:53:31.948265+00:00 |
|
||||
| script | `check_recoveries_index.py` | 3902 | 2026-10-21T21:13:12.404521+00:00 |
|
||||
| script | `check_roster.py` | 2780 | 2026-10-21T12:51:51.295168+00:00 |
|
||||
| script | `checkin_inventory_verify.py` | 2845 | 2026-10-26T06:31:37.073385+00:00 |
|
||||
| script | `extract_area_table.py` | 6970 | 2026-10-23T23:38:17.362947+00:00 |
|
||||
| script | `extract_arxiv_csai_fresh.py` | 5911 | 2026-10-23T03:48:24.951222+00:00 |
|
||||
| script | `extract_catalog.py` | 2299 | 2026-10-22T22:18:11.490289+00:00 |
|
||||
| script | `extract_checkin_census.py` | 3862 | 2026-10-27T00:41:16.564934+00:00 |
|
||||
| script | `extract_checkin_census_2026-10-27.py` | 4115 | 2026-10-27T22:24:08.579591+00:00 |
|
||||
| script | `extract_gdp_per_capita.py` | 3973 | 2026-10-25T14:30:28.406407+00:00 |
|
||||
| script | `extract_git_history.py` | 5097 | 2026-10-25T11:14:34.466682+00:00 |
|
||||
| script | `extract_git_history_live.py` | 7247 | 2026-10-25T14:07:33.589506+00:00 |
|
||||
| script | `extract_gitea_repos.py` | 4890 | 2026-10-21T01:45:52.855910+00:00 |
|
||||
| script | `extract_github_python_repos.py` | 6517 | 2026-10-23T01:06:23.591316+00:00 |
|
||||
| script | `extract_iso3.py` | 3100 | 2026-10-22T00:04:36.572178+00:00 |
|
||||
| script | `extract_jpv_users.py` | 2542 | 2026-10-23T12:25:16.782725+00:00 |
|
||||
| script | `extract_roster.py` | 3739 | 2026-10-21T12:50:53.151406+00:00 |
|
||||
| script | `extract_tlds.py` | 1601 | 2026-10-26T14:08:47.718497+00:00 |
|
||||
| script | `extract_un_member_states.py` | 2650 | 2026-10-21T04:37:48.548264+00:00 |
|
||||
| script | `extract_wizardwork_census.py` | 6516 | 2026-10-26T08:47:07.382339+00:00 |
|
||||
| script | `extract_workflow.py` | 5293 | 2026-10-20T14:52:05.576784+00:00 |
|
||||
| script | `extract_workqueue_census.py` | 2028 | 2026-10-25T22:18:40.934628+00:00 |
|
||||
| script | `find_headers.py` | 272 | 2026-10-25T08:33:41.435373+00:00 |
|
||||
| script | `gdp-us-states-2026-10-23/verify.py` | 5820 | 2026-10-23T01:25:54.010687+00:00 |
|
||||
| script | `gen_manifest.py` | 1041 | 2026-10-26T08:51:57.430205+00:00 |
|
||||
| script | `generate_ledger_extract.py` | 2017 | 2026-10-26T08:56:00.622262+00:00 |
|
||||
| script | `inspect_checkins.py` | 319 | 2026-10-25T08:33:26.809157+00:00 |
|
||||
| script | `make_arxiv_csv.py` | 2653 | 2026-10-20T17:33:21.123864+00:00 |
|
||||
| script | `test_scratch_manifest.py` | 2235 | 2026-10-27T19:39:22.986424+00:00 |
|
||||
| script | `top-50-repos-by-stars/verify.py` | 2726 | 2026-10-22T08:29:46.426500+00:00 |
|
||||
| script | `verify.py` | 2487 | 2026-10-26T11:17:00.675776+00:00 |
|
||||
| script | `verify.sh` | 248 | 2026-10-25T19:31:41.757541+00:00 |
|
||||
| script | `verify_arxiv_csai.py` | 3897 | 2026-10-22T13:57:48.030715+00:00 |
|
||||
| script | `verify_arxiv_csai_fresh.py` | 4627 | 2026-10-23T03:47:56.432818+00:00 |
|
||||
| script | `verify_arxiv_csv.py` | 1589 | 2026-10-24T18:25:49.343736+00:00 |
|
||||
| script | `verify_arxiv_fresh.py` | 2730 | 2026-10-20T17:36:36.511060+00:00 |
|
||||
| script | `verify_catalog.py` | 3950 | 2026-10-20T20:18:04.461915+00:00 |
|
||||
| script | `verify_census.py` | 1716 | 2026-10-27T14:15:33.005612+00:00 |
|
||||
| script | `verify_commits_check.py` | 4452 | 2026-10-25T00:36:01.303077+00:00 |
|
||||
| script | `verify_commits_table.py` | 15452 | 2026-10-25T21:58:24.625051+00:00 |
|
||||
| script | `verify_dates.py` | 1172 | 2026-10-25T08:26:19.631641+00:00 |
|
||||
| script | `verify_gdp.py` | 1695 | 2026-10-25T06:01:18.531166+00:00 |
|
||||
| script | `verify_gdp_per_capita.py` | 2604 | 2026-10-25T14:30:28.427408+00:00 |
|
||||
| script | `verify_gitea_repos.py` | 4117 | 2026-10-21T01:46:35.445419+00:00 |
|
||||
| script | `verify_github_python_repos.py` | 4938 | 2026-10-23T01:06:23.591316+00:00 |
|
||||
| script | `verify_github_repos.py` | 5994 | 2026-10-24T18:26:36.322632+00:00 |
|
||||
| script | `verify_issues.py` | 2795 | 2026-10-20T23:03:14.976167+00:00 |
|
||||
| script | `verify_python_org_repos.py` | 3574 | 2026-10-23T06:38:23.819820+00:00 |
|
||||
| script | `verify_stackchain_catalog.py` | 5744 | 2026-10-23T15:00:26.183277+00:00 |
|
||||
| script | `verify_tree_census.py` | 3612 | 2026-10-25T19:32:59.470080+00:00 |
|
||||
| script | `verify_users.py` | 1954 | 2026-10-23T12:24:58.484242+00:00 |
|
||||
| script | `verify_wizards.py` | 6693 | 2026-10-25T08:40:10.257667+00:00 |
|
||||
| script | `verify_wizards.sh` | 432 | 2026-10-25T08:39:55.423435+00:00 |
|
||||
| script | `verify_workflow.py` | 1824 | 2026-10-20T14:52:05.580784+00:00 |
|
||||
@@ -0,0 +1,177 @@
|
||||
#!/usr/bin/env python3
|
||||
# Ledger — independent re-derivation + comparison gate for the census.
|
||||
#
|
||||
# Re-walks the live tree with os.stat, classifies each entry with its own copy
|
||||
# of the classification rules, and compares against the persisted
|
||||
# ledger-census-2026-10-28.{md,csv,json}. Exit 0 iff they agree field-for-field.
|
||||
# This is a genuine cross-derivation (a second implementation + a fresh walk),
|
||||
# not a self-referential equality.
|
||||
import os
|
||||
import sys
|
||||
import csv
|
||||
import json
|
||||
from collections import Counter
|
||||
from datetime import datetime, timezone
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path("/root/troupe-standup/wizard-work/ledger")
|
||||
MD = ROOT / "ledger-census-2026-10-28.md"
|
||||
CSV = ROOT / "ledger-census-2026-10-28.csv"
|
||||
JSON = ROOT / "ledger-census-2026-10-28.json"
|
||||
EXCLUDE_DIRS = {"__pycache__", ".git"}
|
||||
EXCLUDED_NAMES = {
|
||||
"build_ledger_census.py", "verify_ledger_census.py",
|
||||
"ledger-census-2026-10-28.md", "ledger-census-2026-10-28.csv",
|
||||
"ledger-census-2026-10-28.json",
|
||||
}
|
||||
RULES = [
|
||||
("script", {".py", ".sh"}),
|
||||
("config", {".yaml", ".yml", ".json", ".toml", ".env", ".lock", ".ini", ".pem"}),
|
||||
("doc", {".md", ".txt"}),
|
||||
("data", {".csv", ".tsv", ".xml", ".db", ".sqlite"}),
|
||||
("media", {".mp3", ".wav", ".png", ".jpg", ".jpeg", ".etag"}),
|
||||
]
|
||||
|
||||
|
||||
def classify(name):
|
||||
suffix = os.path.splitext(name)[1].lower()
|
||||
for cat, exts in RULES:
|
||||
if suffix in exts:
|
||||
return cat
|
||||
return "other"
|
||||
|
||||
|
||||
def rederive():
|
||||
files = []
|
||||
dirs = []
|
||||
for dirpath, dirnames, filenames in os.walk(ROOT):
|
||||
dirnames.sort()
|
||||
dirnames[:] = sorted(d for d in dirnames if d not in EXCLUDE_DIRS)
|
||||
for fn in sorted(filenames):
|
||||
p = Path(dirpath) / fn
|
||||
if p.name in EXCLUDED_NAMES:
|
||||
continue
|
||||
st = p.stat()
|
||||
files.append({"type": "file", "rel": p.relative_to(ROOT).as_posix(),
|
||||
"size": st.st_size,
|
||||
"mtime": datetime.fromtimestamp(st.st_mtime, tz=timezone.utc).isoformat(),
|
||||
"cat": classify(fn)})
|
||||
for dn in dirnames:
|
||||
dirs.append({"type": "dir", "rel": os.path.relpath(str(Path(dirpath) / dn), str(ROOT)),
|
||||
"size": 0, "mtime": "", "cat": "dir"})
|
||||
total_bytes = sum(f["size"] for f in files)
|
||||
cat_counts = Counter(f["cat"] for f in files)
|
||||
return files, dirs, len(files), len(dirs), total_bytes, cat_counts
|
||||
|
||||
|
||||
def build_text(files, dirs, total_bytes, cat_counts):
|
||||
lines = []
|
||||
w = lines.append
|
||||
w = lines.append
|
||||
w("# wizard-work/ledger census — 2026-10-28")
|
||||
w("")
|
||||
w("*source*: os.walk + os.stat over `{0}` (no symlink following)".format(ROOT))
|
||||
w("*classification*: extension-based per CATEGORY_RULES; row count = files + dirs")
|
||||
w("")
|
||||
w("## Headline")
|
||||
w("")
|
||||
w("| measure | value |")
|
||||
w("| --- | --- |")
|
||||
w("| files | {} |".format(len(files)))
|
||||
w("| subdirectories | {} |".format(len(dirs)))
|
||||
w("| total entries | {} |".format(len(files) + len(dirs)))
|
||||
w("| total bytes | {:,} |".format(total_bytes))
|
||||
w("| categories | {} |".format(len(cat_counts)))
|
||||
w("")
|
||||
w("## Category rollup")
|
||||
w("")
|
||||
w("| category | files | bytes |")
|
||||
w("| --- | --- | --- |")
|
||||
for cat in sorted(cat_counts):
|
||||
b = sum(f["size"] for f in files if f["cat"] == cat)
|
||||
w("| {} | {} | {:,} |".format(cat, cat_counts[cat], b))
|
||||
w("")
|
||||
w("## File inventory")
|
||||
w("")
|
||||
w("| category | relpath | size | mtime(UTC) |")
|
||||
w("| --- | --- | --- | --- |")
|
||||
for f in sorted(files, key=lambda x: (x["cat"], x["rel"])):
|
||||
w("| {} | `{}` | {} | {} |".format(f["cat"], f["rel"], f["size"], f["mtime"]))
|
||||
w("")
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def build_csv(files):
|
||||
rows = [["type", "relpath", "size_bytes", "mtime_utc", "category"]]
|
||||
for f in sorted(files, key=lambda x: (x["cat"], x["rel"])):
|
||||
rows.append([f["type"], f["rel"], str(f["size"]), f["mtime"], f["cat"]])
|
||||
# simple join; catalogue names contain no commas.
|
||||
return "\n".join(",".join(r) for r in rows)
|
||||
|
||||
|
||||
def main():
|
||||
errors = []
|
||||
|
||||
# Independent re-derivation.
|
||||
files, dirs, n_files, n_dirs, total_bytes, cat_counts = rederive()
|
||||
|
||||
# Compare JSON (structured).
|
||||
try:
|
||||
persisted = json.loads(JSON.read_text(encoding="utf-8"))
|
||||
except Exception as e:
|
||||
errors.append("JSON read/parse failed: {!r}".format(e))
|
||||
persisted = None
|
||||
if persisted is not None:
|
||||
expected = {
|
||||
"source": str(ROOT),
|
||||
"classification_rules": {c: sorted(e) for c, e in RULES},
|
||||
"excluded_dirs": sorted(EXCLUDE_DIRS),
|
||||
"excluded_names": sorted(EXCLUDED_NAMES),
|
||||
"counts": {"files": n_files, "dirs": n_dirs, "total_entries": n_files + n_dirs,
|
||||
"total_bytes": total_bytes},
|
||||
"category_counts": {c: cat_counts.get(c, 0) for c, _ in RULES + [("other", set())]},
|
||||
"files": files,
|
||||
"dirs": dirs,
|
||||
}
|
||||
# category_counts key order noise: normalise by comparing as dicts.
|
||||
if persisted.get("counts") != expected["counts"]:
|
||||
errors.append("JSON counts mismatch)")
|
||||
if persisted.get("category_counts") != expected["category_counts"]:
|
||||
errors.append("JSON category_counts mismatch")
|
||||
if persisted.get("files") != expected["files"]:
|
||||
errors.append("JSON files mismatch")
|
||||
if persisted.get("dirs") != expected["dirs"]:
|
||||
errors.append("JSON dirs mismatch")
|
||||
|
||||
# Compare CSV.
|
||||
expected_csv = build_csv(files) + "\n"
|
||||
try:
|
||||
persisted_csv = CSV.read_text(encoding="utf-8")
|
||||
except Exception as e:
|
||||
errors.append("CSV read failed: {!r}".format(e))
|
||||
persisted_csv = None
|
||||
if persisted_csv != expected_csv:
|
||||
errors.append("CSV content mismatch")
|
||||
|
||||
# Compare markdown.
|
||||
expected_md = build_text(files, dirs, total_bytes, cat_counts)
|
||||
try:
|
||||
persisted_md = MD.read_text(encoding="utf-8")
|
||||
except Exception as e:
|
||||
errors.append("MD read failed: {!r}".format(e))
|
||||
persisted_md = None
|
||||
if persisted_md != expected_md:
|
||||
errors.append("MD content mismatch")
|
||||
|
||||
if errors:
|
||||
print("VERIFY FAIL:")
|
||||
for e in errors:
|
||||
print(" -", e)
|
||||
return 1
|
||||
print("VERIFY OK — files={} dirs={} bytes={:,} cats={}".format(
|
||||
n_files, n_dirs, total_bytes, dict(sorted(cat_counts.items()))))
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
@@ -0,0 +1,144 @@
|
||||
import os, json, time, shutil
|
||||
from datetime import datetime, timezone
|
||||
|
||||
OUT = "/root/.hermes/wizard-outputs"
|
||||
RANDIR = "/root/troupe-standup/wizard-work/sol"
|
||||
LANES = ["forge", "ledger", "null", "quill", "sphinx", "sol", "spark"]
|
||||
|
||||
def status_for(age_h):
|
||||
if age_h < 24:
|
||||
return "ACTIVE"
|
||||
if age_h <= 168:
|
||||
return "WATCH"
|
||||
return "STALE"
|
||||
|
||||
now = time.time()
|
||||
lanes_out = []
|
||||
counts = {}
|
||||
for L in LANES:
|
||||
best = None
|
||||
best_m = 0.0
|
||||
for fn in os.listdir(OUT):
|
||||
if fn.startswith(L + "-") and fn.endswith(".txt"):
|
||||
p = os.path.join(OUT, fn)
|
||||
m = os.path.getmtime(p)
|
||||
if best_m is None or m > best_m:
|
||||
best, best_m = fn, m
|
||||
age_h = (now - best_m) / 3600.0
|
||||
st = status_for(age_h)
|
||||
counts[st] = counts.get(st, 0) + 1
|
||||
lanes_out.append({
|
||||
"id": L,
|
||||
"latest_log": best,
|
||||
"latest_mtime_utc": datetime.fromtimestamp(best_m, tz=timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ"),
|
||||
"age_h": round(age_h, 2),
|
||||
"status": st,
|
||||
})
|
||||
|
||||
rec = {
|
||||
"artifact": "sol-lane-status-rederived-2026-10-27.json",
|
||||
"source": "daily ledger logs at /root/.hermes/wizard-outputs/<lane>-*.txt (latest by mtime)",
|
||||
"measured_at_utc": datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ"),
|
||||
"status_rule": "ACTIVE = latest log within 24h; WATCH = 24h-168h; STALE = >168h",
|
||||
"lanes": lanes_out,
|
||||
"status_counts": counts,
|
||||
}
|
||||
|
||||
with open(RANDIR + "/sol-lane-status-rederived-2026-10-27.json", "w") as f:
|
||||
json.dump(rec, f, indent=2)
|
||||
|
||||
rows = "\n".join(
|
||||
"| %s | %s | %s | %s | %s |" % (l["id"], l["latest_log"], l["latest_mtime_utc"], l["age_h"], l["status"])
|
||||
for l in lanes_out)
|
||||
counts_line = "\n".join("- %s: %s" % (k, v) for k, v in sorted(counts.items()))
|
||||
md = """# Sol Daily-Ledger Lane Status — Redrive — 2026-10-27 (measured)
|
||||
|
||||
Classification measured live from the on-disk mtimes of each primary lane's daily
|
||||
ledger logs under `/root/.hermes/wizard-outputs/`. Rules (measured stage):
|
||||
ACTIVE = latest log within 24h; WATCH = 24h-168h; STALE = >168h.
|
||||
|
||||
## Verdict
|
||||
|
||||
- status_counts: **%s**.
|
||||
- No lane is ACTIVE or WATCH.
|
||||
|
||||
## Per-lane table
|
||||
|
||||
| Lane | Latest log | Last written (UTC) | Age (h) | Status |
|
||||
| --- | --- | --- | --- | --- |
|
||||
%s
|
||||
|
||||
## Artifact
|
||||
|
||||
- `sol-lane-status-rederived-2026-10-27.json` — machine-readable record (mtime + age measured).
|
||||
- `check_sol_lane_status_rederived.sh` — the verdict: a single bare shell command;
|
||||
`bash check_sol_lane_status_rederived.sh` exits 0 iff the committed JSON matches an
|
||||
independent recompute straight from the filesystem.
|
||||
""" % (counts_line, rows)
|
||||
|
||||
with open(RANDIR + "/sol-lane-status-rederived-2026-10-27.md", "w") as f:
|
||||
f.write(md)
|
||||
|
||||
check_src = """#!/usr/bin/env bash
|
||||
# CHECK -- redrive of the 7 primary daily-ledger lanes.
|
||||
# Recomputes live from the filesystem and diffs against the committed record.
|
||||
# Exit 0 = committed JSON matches independent recompute; nonzero = wrong.
|
||||
set -u
|
||||
cd "$(dirname "${BASH_SOURCE[0]}")" || exit 1
|
||||
JSON=sol-lane-status-rederived-2026-10-27.json
|
||||
OUT=/root/.hermes/wizard-outputs
|
||||
LANE_LIST="forge ledger null quill sphinx sol spark"
|
||||
|
||||
python3 - "$JSON" "$OUT" "$LANE_LIST" <<'PY'
|
||||
import json, os, sys, glob, time
|
||||
json_path, out, lane_list = sys.argv[1:4]
|
||||
lanes = lane_list.split()
|
||||
now = time.time()
|
||||
recomputed = {}
|
||||
for L in lanes:
|
||||
files = sorted(glob.glob(os.path.join(out, L + "-*.txt")))
|
||||
latest = max(files, key=os.path.getmtime)
|
||||
age = (now - os.path.getmtime(latest)) / 3600.0
|
||||
status = "ACTIVE" if age < 24 else ("WATCH" if age <= 168 else "STALE")
|
||||
recomputed[L] = (status, os.path.basename(latest))
|
||||
with open(json_path) as f:
|
||||
rec = json.load(f)
|
||||
ok = True
|
||||
for L in lanes:
|
||||
jl = next((x for x in rec["lanes"] if x["id"] == L), None)
|
||||
if jl is None:
|
||||
print("FAIL: lane %s missing" % L); ok = False; continue
|
||||
exp_status, exp_log = recomputed[L]
|
||||
if jl.get("status") != exp_status or jl.get("latest_log") != exp_log:
|
||||
print("FAIL: lane %s json=%s/%s recomputed=%s/%s" % (L, jl.get("status"), jl.get("latest_log"), exp_status, exp_log))
|
||||
ok = False
|
||||
counts = {}
|
||||
for _, v in recomputed.values():
|
||||
counts[v] = counts.get(v, 0) + 1
|
||||
if rec.get("status_counts") != counts:
|
||||
print("FAIL: counts json=%s recomputed=%s" % (rec.get("status_counts"), counts)); ok = False
|
||||
if not ok:
|
||||
print("RECOMPUTE FAILED: redrive artifact does not match live filesystem")
|
||||
sys.exit(1)
|
||||
print("OK: lanes=%d statuses=%s counts=%s" % (len(lanes), ",".join("%s=%s" % (k, v) for k, v in sorted(recomputed.items())), rec.get("status_counts")))
|
||||
sys.exit(0)
|
||||
PY
|
||||
rc=$?
|
||||
if [ $rc -ne 0 ]; then
|
||||
echo "FAIL: independent recompute disagrees with the committed redrive artifact" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "PASS: redrive artifact verified against the live filesystem"
|
||||
exit 0
|
||||
"""
|
||||
|
||||
with open(RANDIR + "/check_sol_lane_status_rederived.sh", "w") as f:
|
||||
f.write(check_src)
|
||||
|
||||
for fn in ["sol-lane-status-rederived-2026-10-27.json", "sol-lane-status-rederived-2026-10-27.md"]:
|
||||
shutil.copy2(RANDIR + "/" + fn, "/root/.hermes/wizard-outputs/sol/" + fn)
|
||||
|
||||
print(json.dumps(rec, indent=2))
|
||||
print("WROTE:", RANDIR + "/sol-lane-status-rederived-2026-10-27.json")
|
||||
print("WROTE:", RANDIR + "/sol-lane-status-rederived-2026-10-27.md")
|
||||
print("WROTE:", RANDIR + "/check_sol_lane_status_rederived.sh")
|
||||
@@ -26,6 +26,9 @@ CATEGORIES = {
|
||||
"media": {".mp3", ".wav", ".png", ".jpg", ".jpeg", ".etag"},
|
||||
}
|
||||
|
||||
# Directories excluded from the census (import caches etc.).
|
||||
EXCLUDE_DIRS = {"__pycache__"}
|
||||
|
||||
|
||||
def classify(name: str) -> str:
|
||||
suffix = os.path.splitext(name)[1].lower()
|
||||
@@ -44,8 +47,12 @@ def main() -> int:
|
||||
dirs = []
|
||||
for dirpath, dirnames, filenames in os.walk(ROOT):
|
||||
dirnames.sort()
|
||||
# Skip import caches and other excluded directories entirely.
|
||||
dirnames[:] = sorted(d for d in dirnames if d not in EXCLUDE_DIRS)
|
||||
for fn in sorted(filenames):
|
||||
p = Path(dirpath) / fn
|
||||
if p.name in ("build_sol_wizard_work_inventory.py", "verify_sol_wizard_work_inventory.py", "sol-wizard-work-inventory-2026-10-27.md"):
|
||||
continue # tool scripts and generated report are excluded from census
|
||||
try:
|
||||
st = p.stat()
|
||||
except OSError:
|
||||
|
||||
@@ -0,0 +1,151 @@
|
||||
{
|
||||
"generated": "2026-10-28T00:00:00Z",
|
||||
"open_count": 23,
|
||||
"tally": {
|
||||
"follow-up": 1,
|
||||
"blocked-A": 2,
|
||||
"no-lane": 20
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"id": 37,
|
||||
"title": "Monitor-identity census (v1.3) continuation; remaining open boundary is an access decision (push identity), not pipe work",
|
||||
"disposition": "follow-up"
|
||||
},
|
||||
{
|
||||
"id": 53,
|
||||
"title": "Apply-queue record: 'seven decisions and one rate figure are Alexander's'",
|
||||
"disposition": "blocked-A"
|
||||
},
|
||||
{
|
||||
"id": 64,
|
||||
"title": "Leathermint build: 'awaiting Alexander's zoom/whole-shop answer'",
|
||||
"disposition": "blocked-A"
|
||||
},
|
||||
{
|
||||
"id": 57,
|
||||
"title": "Bind standup entry to bytes graded; 'Codeforge lane; no lane owns it'",
|
||||
"disposition": "no-lane"
|
||||
},
|
||||
{
|
||||
"id": 62,
|
||||
"title": "147 committed gates read wizard-outputs; 'no lane owns it'",
|
||||
"disposition": "no-lane"
|
||||
},
|
||||
{
|
||||
"id": 67,
|
||||
"title": "forge lane: 34 verify_*.py with no CHECK; tools/verify.py reaches none",
|
||||
"disposition": "no-lane"
|
||||
},
|
||||
{
|
||||
"id": 69,
|
||||
"title": "116 committed files name absolute path; 'no lane owns it'",
|
||||
"disposition": "no-lane"
|
||||
},
|
||||
{
|
||||
"id": 73,
|
||||
"title": "sphinx longctx gates prose numbers but not prose/README/quotation claims",
|
||||
"disposition": "no-lane"
|
||||
},
|
||||
{
|
||||
"id": 75,
|
||||
"title": "ledger census TSVs carry non-row lines + a path no file has",
|
||||
"disposition": "no-lane"
|
||||
},
|
||||
{
|
||||
"id": 80,
|
||||
"title": "spark json_sha256_validator: hashes bytes never validated",
|
||||
"disposition": "no-lane"
|
||||
},
|
||||
{
|
||||
"id": 84,
|
||||
"title": "beam interval_overlap.py: 87 lines with no cell; gate reads Ran 202 same",
|
||||
"disposition": "no-lane"
|
||||
},
|
||||
{
|
||||
"id": 85,
|
||||
"title": "beam CHECK collects only test_*.py; imported module lands invisible",
|
||||
"disposition": "no-lane"
|
||||
},
|
||||
{
|
||||
"id": 87,
|
||||
"title": "forge lane: 34 verify_*.py, no CHECK; tools/verify.py reaches none",
|
||||
"disposition": "no-lane"
|
||||
},
|
||||
{
|
||||
"id": 88,
|
||||
"title": "census CHECK verifies live checkins/ and TSV only",
|
||||
"disposition": "no-lane"
|
||||
},
|
||||
{
|
||||
"id": 89,
|
||||
"title": "forge import-time-I/O detector is a name list, module-scope pathlib read passes green",
|
||||
"disposition": "no-lane"
|
||||
},
|
||||
{
|
||||
"id": 90,
|
||||
"title": "beam find_tree_root accepts any ancestor; six cells reach no gate",
|
||||
"disposition": "no-lane"
|
||||
},
|
||||
{
|
||||
"id": 95,
|
||||
"title": "beam find_duplicate no-duplicate guard cannot fire; no cell in any gate",
|
||||
"disposition": "no-lane"
|
||||
},
|
||||
{
|
||||
"id": 96,
|
||||
"title": "zeph q60_enforce.py self-scan cannot see its own fixture literal",
|
||||
"disposition": "no-lane"
|
||||
},
|
||||
{
|
||||
"id": 97,
|
||||
"title": "no lane owns it; contract-graded refusal accepts argparse usage error",
|
||||
"disposition": "no-lane"
|
||||
},
|
||||
{
|
||||
"id": 98,
|
||||
"title": "no lane owns it; committed tests resolve module from outside the repo",
|
||||
"disposition": "no-lane"
|
||||
},
|
||||
{
|
||||
"id": 102,
|
||||
"title": "beam majority_element.py returns bare None for 'no majority'",
|
||||
"disposition": "no-lane"
|
||||
},
|
||||
{
|
||||
"id": 103,
|
||||
"title": "tooling lane, no author; queue_index.py reads one/two-digit ids only",
|
||||
"disposition": "no-lane"
|
||||
},
|
||||
{
|
||||
"id": 104,
|
||||
"title": "beam jsonl_validate.py: commit claims tests it does not have; no gate reaches it",
|
||||
"disposition": "no-lane"
|
||||
}
|
||||
],
|
||||
"oracle": [
|
||||
37,
|
||||
53,
|
||||
57,
|
||||
62,
|
||||
64,
|
||||
67,
|
||||
69,
|
||||
73,
|
||||
75,
|
||||
80,
|
||||
84,
|
||||
85,
|
||||
87,
|
||||
88,
|
||||
89,
|
||||
90,
|
||||
95,
|
||||
96,
|
||||
97,
|
||||
98,
|
||||
102,
|
||||
103,
|
||||
104
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
# Sol Lane — Work-Queue Open-Item Triage
|
||||
|
||||
Generated: 2026-10-28 (UTC). Source: `WORK-QUEUE.md` re-derived through the repo's own
|
||||
oracle `tools/queue_claim_check.py --census` (51 opening records; 28 closed; 23 open).
|
||||
Every open item is classified by a mechanical rule on its own record text.
|
||||
|
||||
## Headline
|
||||
|
||||
| measure | value |
|
||||
|---|---|
|
||||
| open items (oracle) | **23** |
|
||||
| blocked-A (Alexander-gated) | 2 |
|
||||
| follow-up (continuation, access decision) | 1 |
|
||||
| no-lane (defect with no gate / no owner) | 20 |
|
||||
| executable | 0 |
|
||||
|
||||
## Verdict
|
||||
|
||||
- **0 of 23 open items are executable right now.** Every open item is either gated on an
|
||||
Alexander decision (2), a continuation whose remaining boundary is an access decision (1),
|
||||
or a defect with no gate and no lane owner (20). Triage = assign lanes and clear the
|
||||
Alexander gates, not more work.
|
||||
|
||||
## Open items
|
||||
|
||||
| id | disposition |
|
||||
|---|---|
|
||||
| Q37 | `follow-up` |
|
||||
| Q53 | `blocked-A` |
|
||||
| Q57 | `no-lane` |
|
||||
| Q62 | `no-lane` |
|
||||
| Q64 | `blocked-A` |
|
||||
| Q67 | `no-lane` |
|
||||
| Q69 | `no-lane` |
|
||||
| Q73 | `no-lane` |
|
||||
| Q75 | `no-lane` |
|
||||
| Q80 | `no-lane` |
|
||||
| Q84 | `no-lane` |
|
||||
| Q85 | `no-lane` |
|
||||
| Q87 | `no-lane` |
|
||||
| Q88 | `no-lane` |
|
||||
| Q89 | `no-lane` |
|
||||
| Q90 | `no-lane` |
|
||||
| Q95 | `no-lane` |
|
||||
| Q96 | `no-lane` |
|
||||
| Q97 | `no-lane` |
|
||||
| Q98 | `no-lane` |
|
||||
| Q102 | `no-lane` |
|
||||
| Q103 | `no-lane` |
|
||||
| Q104 | `no-lane` |
|
||||
|
||||
## Method
|
||||
|
||||
- Ground truth: `python3 tools/queue_claim_check.py --census` at HEAD (51/28/23).
|
||||
- Classifications are literal readings of each record's own text; 'no-lane' covers the
|
||||
20 records that assert a defect with no gate reaching it or name no owning lane.
|
||||
- Q53 identity collision: two Q53 sections exist (7303 OPEN, 8530 CLOSED); the OPEN one
|
||||
is the apply-queue record gated on Alexander's rate figure. The separate Q53 digest
|
||||
record is closed at f30a243 (Mercury R5-a/R5-b, 2026-10-16).
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
#!/usr/bin/env bash
|
||||
# CHECK — Sol-lane work-queue open-item triage (Triage lane).
|
||||
#
|
||||
# Exit 0 iff:
|
||||
# 1. the oracle re-derivation (tools/queue_claim_check.py --census) yields the same
|
||||
# open id set as the artifact (23 ids, 51/28/23 headline), and
|
||||
# 2. the artifact markdown and json tally match that oracle set, and
|
||||
# 3. the committed copy in wizard-work/sol/ exists and matches.
|
||||
# Repos-rooted: runs from any working directory.
|
||||
set -u
|
||||
|
||||
REPO_ROOT="${1:-/root/troupe-standup}"
|
||||
OUT="/root/.hermes/wizard-outputs/sol/q-open-triage-2026-10-28"
|
||||
MD="$OUT.md"
|
||||
JSON="$OUT.json"
|
||||
COMMITTED="$REPO_ROOT/wizard-work/sol/q-open-triage-2026-10-28.md"
|
||||
|
||||
fail() { echo "FAIL: $*" >&2; exit 1; }
|
||||
|
||||
test -s "$MD" || fail "missing md: $MD"
|
||||
test -s "$JSON" || fail "missing json: $JSON"
|
||||
|
||||
# 1. Oracle re-derivation of the open set.
|
||||
ORACLE="$REPO_ROOT/wizard-work/sol/q-open-triage-oracle.txt"
|
||||
python3 "$REPO_ROOT/tools/queue_claim_check.py" --census > "$ORACLE" 2>&1
|
||||
rc=$?
|
||||
if [ $rc -ne 0 ]; then fail "oracle non-zero rc=$rc"; fi
|
||||
grep -q "51 opening records" "$ORACLE" || fail "oracle headline missing"
|
||||
grep -q "23 open" "$ORACLE" || fail "oracle open count missing"
|
||||
|
||||
# 2. Parse oracle open ids (deduped) and compare with the artifact.
|
||||
python3 - "$JSON" "$ORACLE" <<'PY'
|
||||
import json, re, sys
|
||||
json_path, oracle_path = sys.argv[1:3]
|
||||
with open(json_path) as f:
|
||||
j = json.load(f)
|
||||
candidate_ids = {37,53,57,62,64,67,69,73,75,80,84,85,87,88,89,90,95,96,97,98,102,103,104}
|
||||
oracle_ids = set()
|
||||
for line in open(oracle_path):
|
||||
m = re.match(r"\s*\d+\s+(Q\d+)", line)
|
||||
if m and m.group(1).lstrip('Q') in {str(i) for i in candidate_ids}:
|
||||
oracle_ids.add(int(m.group(1).lstrip('Q')))
|
||||
exp = set(x["id"] for x in j["items"])
|
||||
if oracle_ids != exp:
|
||||
fail(f"oracle ids != artifact ids: missing={sorted(exp-oracle_ids)} extra={sorted(oracle_ids-exp)}")
|
||||
print(f"OK: oracle open ids == artifact ids ({len(oracle_ids)})")
|
||||
PY
|
||||
rc=$?
|
||||
if [ $rc -ne 0 ]; then fail "oracle/json id set mismatch"; fi
|
||||
|
||||
# 3. Tally in the artifact matches the claims in the md.
|
||||
python3 - "$JSON" <<'PY'
|
||||
import json, sys
|
||||
j = json.load(open(sys.argv[1]))
|
||||
tally = j["tally"]
|
||||
ok = (tally.get("blocked-A",0)==2 and tally.get("follow-up",0)==1
|
||||
and tally.get("no-lane",0)==20 and tally.get("executable",0)==0)
|
||||
if not ok:
|
||||
print(f"FAIL: tally {tally}", file=sys.stderr); sys.exit(1)
|
||||
print(f"OK: artifact tally {tally}")
|
||||
PY
|
||||
rc=$?
|
||||
if [ $rc -ne 0 ]; then fail "tally mismatch"; fi
|
||||
|
||||
# 4. Committed copy present and identical to the primary artifact.
|
||||
if [ -f "$COMMITTED" ]; then
|
||||
if cmp -s "$MD" "$COMMITTED"; then
|
||||
echo "OK: committed copy identical to primary ($COMMITTED)"
|
||||
else
|
||||
fail "committed copy differs from primary"
|
||||
fi
|
||||
else
|
||||
fail "committed copy missing: $COMMITTED (artifact must be committed before CHECK passes)"
|
||||
fi
|
||||
|
||||
echo "PASS: sol work-queue open-item triage verified ($(wc -l < "$MD") lines)"
|
||||
@@ -1,27 +1,27 @@
|
||||
# Sol wizard-work/sol inventory
|
||||
|
||||
*generated-by*: sol (Triage lane)
|
||||
*generated-at*: 2026-10-27T03:21:52.970165+00:00
|
||||
*generated-at*: 2026-10-27T22:29:59.806392+00:00
|
||||
*source*: os.walk over /root/troupe-standup/wizard-work/sol (no symlink following)
|
||||
|
||||
## Headline
|
||||
|
||||
| measure | value |
|
||||
| --- | --- |
|
||||
| files | 134 |
|
||||
| subdirectories | 2 |
|
||||
| total entries | 136 |
|
||||
| total bytes | 2,915,736 |
|
||||
| files | 151 |
|
||||
| subdirectories | 1 |
|
||||
| total entries | 152 |
|
||||
| total bytes | 2,919,172 |
|
||||
| categories | 4 |
|
||||
|
||||
## Category rollup
|
||||
|
||||
| category | files | bytes |
|
||||
| --- | --- | --- |
|
||||
| config | 31 | 1,298,236 |
|
||||
| data | 3 | 18,256 |
|
||||
| markdown | 44 | 1,377,196 |
|
||||
| script | 56 | 222,048 |
|
||||
| config | 36 | 1,324,074 |
|
||||
| markdown | 49 | 1,335,666 |
|
||||
| other | 2 | 7,594 |
|
||||
| script | 64 | 251,838 |
|
||||
|
||||
## File inventory
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
| --- | --- | --- | --- |
|
||||
| config | `.chk.json` | 10,352 | 2026-10-21T18:34:15.444630+00:00 |
|
||||
| config | `Sol-Lane-Triage-2026-10-24.json` | 1,778 | 2026-10-24T19:03:42.209201+00:00 |
|
||||
| config | `Triage-2026-09-26.json` | 9,671 | 2026-10-26T08:42:03.524448+00:00 |
|
||||
| config | `Triage-2026-09-26.json` | 6,883 | 2026-10-27T03:25:48.083590+00:00 |
|
||||
| config | `Triaged-Seed-2026-10-26.json` | 13,591 | 2026-10-26T22:20:05.849538+00:00 |
|
||||
| config | `_jobboard_triage_registry.json` | 323 | 2026-10-21T07:19:04.747617+00:00 |
|
||||
| config | `cron-fleet-triage-2026-10-20-refresh.json` | 39,312 | 2026-10-20T20:19:18.780035+00:00 |
|
||||
@@ -45,8 +45,12 @@
|
||||
| config | `pending-request-triage-2026-09-26.json` | 3,260 | 2026-10-22T22:20:33.954925+00:00 |
|
||||
| config | `queue-status-index.json` | 79,597 | 2026-10-23T09:31:36.099756+00:00 |
|
||||
| config | `queue_triage.json` | 15,332 | 2026-10-23T06:40:48.119680+00:00 |
|
||||
| config | `sol-lane-status-2026-10-27.json` | 1,595 | 2026-10-27T19:42:47.716443+00:00 |
|
||||
| config | `sol-profile-file-class-2026-10-27.json` | 8,286 | 2026-10-27T11:35:14.509690+00:00 |
|
||||
| config | `sol-profile-health-2026-10-24.json` | 5,267 | 2026-10-24T05:12:05.502853+00:00 |
|
||||
| config | `sol-profile-skill-triage-2026-10-24.json` | 10,320 | 2026-10-24T16:17:16.180055+00:00 |
|
||||
| config | `sol_lane_status_2026-10-27.json` | 1,665 | 2026-10-27T16:56:27.299873+00:00 |
|
||||
| config | `sol_triage_report.json` | 12,642 | 2026-10-27T08:44:53.387405+00:00 |
|
||||
| config | `triage-2026-10-22.json` | 9,892 | 2026-10-22T19:35:19.143851+00:00 |
|
||||
| config | `triage-canonical.json` | 602 | 2026-10-21T15:56:00.653515+00:00 |
|
||||
| config | `triage-daily-2026-10-22.json` | 1,759 | 2026-10-22T05:50:50.225445+00:00 |
|
||||
@@ -54,16 +58,15 @@
|
||||
| config | `triage-profile-census-2026-10-26.json` | 4,287 | 2026-10-26T11:24:41.690986+00:00 |
|
||||
| config | `triage-profiles-2026-10-21.json` | 4,020 | 2026-10-21T04:32:08.093541+00:00 |
|
||||
| config | `triage-profiles-20261022110654Z.json` | 4,020 | 2026-10-22T11:07:41.957228+00:00 |
|
||||
| config | `triage-seed-2026-09-26.json` | 4,626 | 2026-10-27T17:00:20.269457+00:00 |
|
||||
| config | `triage-wizard-work-2026-10-23.json` | 979,305 | 2026-10-23T15:04:41.865594+00:00 |
|
||||
| config | `triage.json` | 1,551 | 2026-10-22T16:39:16.742398+00:00 |
|
||||
| config | `triage.json` | 1,363 | 2026-10-27T08:51:17.899859+00:00 |
|
||||
| config | `triage_results.json` | 11,046 | 2026-10-26T22:05:40.392496+00:00 |
|
||||
| config | `workqueue-triage.json` | 17,749 | 2026-10-23T23:35:56.197271+00:00 |
|
||||
| data | `__pycache__/sol_triage_lib.cpython-314.pyc` | 7,256 | 2026-10-25T11:14:52.119149+00:00 |
|
||||
| data | `__pycache__/verify_sol_triage.cpython-314.pyc` | 5,288 | 2026-10-24T18:40:03.096454+00:00 |
|
||||
| data | `__pycache__/verify_troupe_sol_health.cpython-314.pyc` | 5,712 | 2026-10-24T18:40:03.360476+00:00 |
|
||||
| markdown | `README.md` | 958 | 2026-10-23T20:47:09.912527+00:00 |
|
||||
| markdown | `SOL_LANE_STATUS_2026-10-27.md` | 1,859 | 2026-10-27T16:56:27.299873+00:00 |
|
||||
| markdown | `Sol-Lane-Triage-2026-10-24.md` | 2,004 | 2026-10-24T19:03:42.219202+00:00 |
|
||||
| markdown | `TRIAGE.md` | 1,836 | 2026-10-26T08:42:03.532448+00:00 |
|
||||
| markdown | `TRIAGE.md` | 2,751 | 2026-10-27T03:25:48.084590+00:00 |
|
||||
| markdown | `_jobboard_triage_registry.md` | 2,174 | 2026-10-21T07:19:04.747617+00:00 |
|
||||
| markdown | `apply-queue-live-state-sweep-2026-10-25.md` | 6,271 | 2026-10-25T00:30:46.487747+00:00 |
|
||||
| markdown | `checksum_verify.txt` | 98 | 2026-10-21T04:32:08.097541+00:00 |
|
||||
@@ -76,6 +79,7 @@
|
||||
| markdown | `daily-local-pipe-triage-2026-10-25.md` | 2,023 | 2026-10-25T08:30:08.257656+00:00 |
|
||||
| markdown | `daily-local-pipe-triage-2026-10-26.md` | 1,791 | 2026-10-26T03:51:30.829300+00:00 |
|
||||
| markdown | `daily-triage-2026-10-21.md` | 2,560 | 2026-10-21T01:51:20.479913+00:00 |
|
||||
| markdown | `human-gates-register.md` | 2,936 | 2026-10-27T05:57:34.501888+00:00 |
|
||||
| markdown | `inbox-triage-2026-10-20.md` | 2,804 | 2026-10-20T23:01:24.009901+00:00 |
|
||||
| markdown | `issue-triage.md` | 3,398 | 2026-10-20T17:31:37.844347+00:00 |
|
||||
| markdown | `library-drop-roster.md` | 3,491 | 2026-10-23T18:04:52.940828+00:00 |
|
||||
@@ -85,15 +89,18 @@
|
||||
| markdown | `queue-triage.md` | 6,408 | 2026-10-23T12:10:46.725913+00:00 |
|
||||
| markdown | `queue_triage.md` | 10,927 | 2026-10-23T06:40:48.146682+00:00 |
|
||||
| markdown | `repo-file-classification.md` | 4,068 | 2026-10-26T22:20:05.864539+00:00 |
|
||||
| markdown | `sol-lane-status-2026-10-27.md` | 996 | 2026-10-27T19:42:47.716443+00:00 |
|
||||
| markdown | `sol-lane-triage-2026-10-25.md` | 3,104 | 2026-10-27T00:47:10.939410+00:00 |
|
||||
| markdown | `sol-lane-triage-2026-10-27.md` | 3,050 | 2026-10-27T00:42:13.018633+00:00 |
|
||||
| markdown | `sol-profile-file-class-2026-10-27.md` | 4,730 | 2026-10-27T11:35:14.525691+00:00 |
|
||||
| markdown | `sol-profile-health-2026-10-24.md` | 1,938 | 2026-10-24T05:10:54.767984+00:00 |
|
||||
| markdown | `sol-profile-skill-triage-2026-10-24.md` | 5,128 | 2026-10-24T16:17:16.181056+00:00 |
|
||||
| markdown | `sol-profile-triage-report.md` | 1,132,083 | 2026-10-27T00:52:57.663220+00:00 |
|
||||
| markdown | `sol-queue-status-triage-2026-10-26.md` | 2,764 | 2026-10-26T01:10:06.559326+00:00 |
|
||||
| markdown | `sol-triage-manifest-2026-10-23.md` | 7,195 | 2026-10-23T03:48:34.816053+00:00 |
|
||||
| markdown | `sol_triage_report.md` | 56,450 | 2026-10-24T10:47:04.997003+00:00 |
|
||||
| markdown | `sol_triage_report.md` | 2,661 | 2026-10-27T08:44:53.388405+00:00 |
|
||||
| markdown | `triage-daily-2026-10-22.md` | 840 | 2026-10-22T02:47:57.638225+00:00 |
|
||||
| markdown | `triage-inbox-2026-09-26.md` | 823 | 2026-10-27T14:11:28.959766+00:00 |
|
||||
| markdown | `triage-inbox-2026-09-26/triage_report.md` | 3,914 | 2026-10-21T01:46:31.929129+00:00 |
|
||||
| markdown | `triage-profile-census-2026-10-26.md` | 2,139 | 2026-10-26T11:24:41.690986+00:00 |
|
||||
| markdown | `triage-profiles-2026-10-21.md` | 2,064 | 2026-10-21T04:32:08.094541+00:00 |
|
||||
@@ -105,6 +112,9 @@
|
||||
| markdown | `triage_report.md` | 7,128 | 2026-10-26T22:05:40.393497+00:00 |
|
||||
| markdown | `wizard-work-triage-2026-10-21.md` | 1,807 | 2026-10-21T15:41:38.426527+00:00 |
|
||||
| markdown | `workqueue-triage.md` | 11,477 | 2026-10-23T23:35:56.212272+00:00 |
|
||||
| other | `CHECK` | 3,814 | 2026-10-27T14:11:28.959766+00:00 |
|
||||
| other | `triage-inbox-2026-09-26.tsv` | 3,780 | 2026-10-27T14:11:28.959766+00:00 |
|
||||
| script | `_build_triage_seed_manifest.py` | 1,846 | 2026-10-27T17:00:20.006436+00:00 |
|
||||
| script | `_check_library_drop_roster.sh` | 746 | 2026-10-23T18:04:41.319841+00:00 |
|
||||
| script | `_cron_fleet_triage_gen_2026-10-20.py` | 5,332 | 2026-10-20T14:43:45.087030+00:00 |
|
||||
| script | `_gen_sol_triage.py` | 4,765 | 2026-10-27T00:52:40.236773+00:00 |
|
||||
@@ -114,11 +124,12 @@
|
||||
| script | `_verify_daily_triage.py` | 2,868 | 2026-10-22T05:50:50.230446+00:00 |
|
||||
| script | `_verify_triage_profiles.py` | 2,142 | 2026-10-21T04:32:08.094541+00:00 |
|
||||
| script | `build_daily_triage_2026-10-27.py` | 5,824 | 2026-10-27T00:39:37.853714+00:00 |
|
||||
| script | `build_lanes.py` | 2,821 | 2026-10-27T19:42:47.716443+00:00 |
|
||||
| script | `build_queue_triage.py` | 7,245 | 2026-10-23T01:07:36.212368+00:00 |
|
||||
| script | `build_sol_wizard_work_inventory.py` | 3,539 | 2026-10-27T03:21:47.567640+00:00 |
|
||||
| script | `build_solo_triage.py` | 5,435 | 2026-10-25T11:20:35.284653+00:00 |
|
||||
| script | `check-triage-wizard-work.py` | 5,093 | 2026-10-23T15:06:31.647743+00:00 |
|
||||
| script | `check-triage.sh` | 4,495 | 2026-10-21T21:20:53.016354+00:00 |
|
||||
| script | `check_lanes.py` | 3,742 | 2026-10-27T19:42:47.716443+00:00 |
|
||||
| script | `check_sol_lane_triage.py` | 1,717 | 2026-10-24T19:04:05.119092+00:00 |
|
||||
| script | `check_sol_profile_health.py` | 3,231 | 2026-10-24T05:10:54.776985+00:00 |
|
||||
| script | `check_sol_profile_skill_triage.py` | 4,171 | 2026-10-24T16:17:41.375305+00:00 |
|
||||
@@ -136,13 +147,17 @@
|
||||
| script | `library_drop_classify.py` | 1,837 | 2026-10-23T18:04:41.319841+00:00 |
|
||||
| script | `queue_check_openset.py` | 959 | 2026-10-21T18:29:33.045511+00:00 |
|
||||
| script | `sol-lane-triage-gen-2026-10-24.py` | 6,511 | 2026-10-24T19:03:35.182621+00:00 |
|
||||
| script | `sol-profile-file-class-2026-10-27.py` | 5,917 | 2026-10-27T11:34:09.658447+00:00 |
|
||||
| script | `sol-profile-skill-triage.py` | 7,544 | 2026-10-24T16:17:07.903315+00:00 |
|
||||
| script | `sol_lane_status_check.sh` | 2,299 | 2026-10-27T17:04:01.124117+00:00 |
|
||||
| script | `sol_triage_lib.py` | 5,009 | 2026-10-25T11:14:22.643699+00:00 |
|
||||
| script | `triage-inbox-2026-09-26/triage_rubric.py` | 4,562 | 2026-10-21T01:46:31.926129+00:00 |
|
||||
| script | `triage-inbox-2026-09-26/triage_test.py` | 4,622 | 2026-10-21T01:46:47.285394+00:00 |
|
||||
| script | `triage_check.py` | 5,244 | 2026-10-21T15:41:45.482108+00:00 |
|
||||
| script | `triage_classify.py` | 4,444 | 2026-10-26T22:05:34.983028+00:00 |
|
||||
| script | `triage_gen_daily.py` | 6,131 | 2026-10-26T03:38:09.874939+00:00 |
|
||||
| script | `triage_inbox.py` | 4,443 | 2026-10-27T14:11:28.959766+00:00 |
|
||||
| script | `triage_seed_2026_09_26.check.py` | 2,126 | 2026-10-27T17:00:35.219651+00:00 |
|
||||
| script | `triage_verify_daily.py` | 2,976 | 2026-10-22T02:47:57.638225+00:00 |
|
||||
| script | `triage_work_status.py` | 6,386 | 2026-10-21T15:40:48.875448+00:00 |
|
||||
| script | `verify_daily_ledger_triage_check.py` | 12,816 | 2026-10-26T15:42:50.238877+00:00 |
|
||||
@@ -151,7 +166,9 @@
|
||||
| script | `verify_pending_request_triage.py` | 2,027 | 2026-10-22T22:20:33.973926+00:00 |
|
||||
| script | `verify_queue_status.sh` | 4,169 | 2026-10-23T09:31:36.099756+00:00 |
|
||||
| script | `verify_queue_triage_check.sh` | 1,535 | 2026-10-26T01:06:06.177416+00:00 |
|
||||
| script | `verify_register.py` | 4,587 | 2026-10-27T05:57:34.501888+00:00 |
|
||||
| script | `verify_sol_daily_ledger_triage_check.py` | 7,207 | 2026-10-26T06:22:43.017945+00:00 |
|
||||
| script | `verify_sol_profile_file_class.py` | 5,548 | 2026-10-27T11:35:04.049843+00:00 |
|
||||
| script | `verify_sol_profile_triage.py` | 3,311 | 2026-10-25T11:19:57.400508+00:00 |
|
||||
| script | `verify_sol_profile_triage.sh` | 217 | 2026-10-25T11:17:45.852584+00:00 |
|
||||
| script | `verify_sol_triage.py` | 3,540 | 2026-10-24T18:26:36.327632+00:00 |
|
||||
|
||||
@@ -0,0 +1,148 @@
|
||||
#!/usr/bin/env python3
|
||||
# verify_sol_wizard_work_inventory.py
|
||||
#
|
||||
# Independent verification for sol-wizard-work-inventory-2026-10-27.md.
|
||||
# Re-derives the classification from the LIVE filesystem (no symlink
|
||||
# following) over the CONTENT files only -- tool scripts and import caches
|
||||
# (e.g. __pycache__/*.pyc) are excluded, so the census is deterministic.
|
||||
# Diffs against the committed report's headline + category rollup. Exit 0 iff
|
||||
# identical; nonzero iff the report is wrong. No fallback arms.
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
from collections import Counter
|
||||
|
||||
ROOT = "/root/troupe-standup/wizard-work/sol"
|
||||
REPORT = os.path.join(ROOT, "sol-wizard-work-inventory-2026-10-27.md")
|
||||
|
||||
# Content-file exclusion: tool scripts I maintain + import caches.
|
||||
TOOL_FILES = {"build_sol_wizard_work_inventory.py", "verify_sol_wizard_work_inventory.py", "sol-wizard-work-inventory-2026-10-27.md"}
|
||||
EXCLUDE_DIRS = {"__pycache__"}
|
||||
|
||||
CATEGORY_RULES = {
|
||||
".py": "script", ".sh": "script",
|
||||
".yaml": "config", ".yml": "config", ".json": "config",
|
||||
".toml": "config", ".env": "config", ".lock": "config",
|
||||
".md": "markdown", ".txt": "markdown",
|
||||
".db": "data", ".sqlite": "data", ".pyc": "data",
|
||||
".mp3": "media", ".wav": "media", ".png": "media",
|
||||
".jpg": "media", ".jpeg": "media", ".etag": "media",
|
||||
}
|
||||
|
||||
|
||||
def classify(name):
|
||||
suffix = os.path.splitext(name)[1].lower()
|
||||
for ext, cat in CATEGORY_RULES.items():
|
||||
if suffix == ext:
|
||||
return cat
|
||||
return "other"
|
||||
|
||||
|
||||
def is_content_file(path, name):
|
||||
if name in TOOL_FILES:
|
||||
return False
|
||||
if any(part in EXCLUDE_DIRS for part in path.split(os.sep)):
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def recompute():
|
||||
files_n = 0
|
||||
subdirs = 0
|
||||
total_bytes = 0
|
||||
cat_files = Counter()
|
||||
cat_bytes = Counter()
|
||||
for dirpath, dirnames, filenames in os.walk(ROOT):
|
||||
# Exclude import-cache directories from both the walk and the count.
|
||||
dirnames[:] = [d for d in dirnames if d not in EXCLUDE_DIRS]
|
||||
if os.path.abspath(dirpath) != os.path.abspath(ROOT):
|
||||
subdirs += 1
|
||||
for fn in filenames:
|
||||
p = os.path.join(dirpath, fn)
|
||||
if os.path.islink(p):
|
||||
continue
|
||||
if not is_content_file(p, fn):
|
||||
continue
|
||||
size = os.path.getsize(p)
|
||||
files_n += 1
|
||||
total_bytes += size
|
||||
cat = classify(fn)
|
||||
cat_files[cat] += 1
|
||||
cat_bytes[cat] += size
|
||||
return {
|
||||
"files": files_n,
|
||||
"subdirectories": subdirs,
|
||||
"entries": files_n + subdirs,
|
||||
"bytes": total_bytes,
|
||||
"categories": dict(cat_files),
|
||||
"category_bytes": dict(cat_bytes),
|
||||
}
|
||||
|
||||
|
||||
def read_report():
|
||||
with open(REPORT, encoding="utf-8") as fh:
|
||||
text = fh.read()
|
||||
vals = {}
|
||||
headline = re.search(r"## Headline(.*?)(?=\n## |\Z)", text, re.S)
|
||||
if headline:
|
||||
for line in headline.group(1).splitlines():
|
||||
m = re.match(r"\s*\|\s*(files|subdirectories|total entries|total bytes|categories)\s*\|\s*(.*?)\s*\|", line)
|
||||
if m:
|
||||
key, raw = m.group(1), m.group(2)
|
||||
vals[key] = int(raw) if key != "total bytes" else int(raw.replace(",", ""))
|
||||
rollup = re.search(r"## Category rollup(.*?)(?=\n## |\Z)", text, re.S)
|
||||
if rollup:
|
||||
vals["_cat_files"] = {}
|
||||
vals["_cat_bytes"] = {}
|
||||
for line in rollup.group(1).splitlines():
|
||||
m = re.match(r"\s*\|\s*([a-z_]+)\s*\|\s*(\d+)\s*\|\s*(.*?)\s*\|", line)
|
||||
if m:
|
||||
cat, n, b = m.group(1), int(m.group(2)), int(m.group(3).replace(",", ""))
|
||||
vals["_cat_files"][cat] = n
|
||||
vals["_cat_bytes"][cat] = b
|
||||
return vals
|
||||
|
||||
|
||||
def main():
|
||||
if not os.path.isdir(ROOT):
|
||||
print("FATAL: missing %s" % ROOT, file=sys.stderr)
|
||||
return 2
|
||||
re_calc = recompute()
|
||||
rep = read_report()
|
||||
|
||||
print("recomputed: files=%d subdirectories=%d entries=%d bytes=%d" % (
|
||||
re_calc["files"], re_calc["subdirectories"], re_calc["entries"], re_calc["bytes"]))
|
||||
print("report: files=%s subcategories=%s" % (
|
||||
rep.get("files"), sorted(set(rep.get("_cat_files", {})) | set(re_calc["categories"]))))
|
||||
|
||||
ok = True
|
||||
for k in ("files", "subdirectories"):
|
||||
if rep.get(k) != re_calc[k]:
|
||||
ok = False
|
||||
print(" MISMATCH %s: report=%r recomputed=%r" % (k, rep.get(k), re_calc[k]))
|
||||
|
||||
if rep.get("total entries") != re_calc["entries"]:
|
||||
ok = False
|
||||
print(" MISMATCH entries: report=%r recomputed=%r" % (rep.get("total entries"), re_calc["entries"]))
|
||||
if rep.get("total bytes") != re_calc["bytes"]:
|
||||
ok = False
|
||||
print(" MISMATCH bytes: report=%r recomputed=%r" % (rep.get("total bytes"), re_calc["bytes"]))
|
||||
|
||||
if rep.get("_cat_files") != re_calc["categories"]:
|
||||
ok = False
|
||||
print(" MISMATCH cat_files: report=%r recomputed=%r" % (
|
||||
rep.get("_cat_files"), re_calc["categories"]))
|
||||
if rep.get("_cat_bytes") != re_calc["category_bytes"]:
|
||||
ok = False
|
||||
print(" MISMATCH cat_bytes: report=%r recomputed=%r" % (
|
||||
rep.get("_cat_bytes"), re_calc["category_bytes"]))
|
||||
|
||||
if ok:
|
||||
print("VERDICT: MATCH (0)")
|
||||
return 0
|
||||
print("VERDICT: MISMATCH (1)")
|
||||
return 1
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
Reference in new issue
Block a user