diff --git a/wizard-work/ledger/2026-11-02-workqueue-census/extract_manifest.json b/wizard-work/ledger/2026-11-02-workqueue-census/extract_manifest.json index 864b578..c1e0867 100644 --- a/wizard-work/ledger/2026-11-02-workqueue-census/extract_manifest.json +++ b/wizard-work/ledger/2026-11-02-workqueue-census/extract_manifest.json @@ -1,10 +1,15 @@ { "source": "WORK-QUEUE.md", - "source_sha256": "cea6cd3c7e0f1fbfe55045b5fd2765f076f7adae50f23b26f243e6e5028906eb", + "source_sha256": "ceb6cd3c7e0f1fbfe55045b5fd2765f076f7adae50f23b26f243e6e5028906eb", "rows": 88, - "columns": ["Q", "Title", "Status", "Target"], - "extract_rule": "A Q item is a line matching ^## Q — ; trailing '*(notes)*' stripped; Status = '**Status: ...' line; Target = first backticked recoveries|docs|checkins file in the body. Duplicates emitted as separate rows.", - "extracted_at_utc": "2026-11-02T00:00:00Z", + "columns": [ + "Q", + "Title", + "Status", + "Target" + ], + "extract_rule": "A Q item is a line matching ^## Q<n> \u2014 <title>; trailing '*(notes)*' stripped; Status = '**Status: ...' line; Target = first backticked recoveries|docs|checkins file in the body. Duplicates emitted as separate rows.", "artifact": "workqueue-census.tsv", - "generated_by": "ledger (extract lane)" -} + "generated_by": "ledger (extract lane)", + "extracted_at_utc": "2026-11-02T00:00:00Z" +} \ No newline at end of file diff --git a/wizard-work/ledger/2026-11-02-workqueue-census/extract_workqueue_census.py b/wizard-work/ledger/2026-11-02-workqueue-census/extract_workqueue_census.py index 4ef3445..a44e294 100644 --- a/wizard-work/ledger/2026-11-02-workqueue-census/extract_workqueue_census.py +++ b/wizard-work/ledger/2026-11-02-workqueue-census/extract_workqueue_census.py @@ -78,11 +78,17 @@ def main(): fh.write("Q\tTitle\tStatus\tTarget\n") for q, title, status, target in rows: fh.write(f"{q}\t{title}\t{status}\t{target}\n") + import hashlib + + src_hash = hashlib.sha256(open(SRC, "rb").read()).hexdigest() manifest = { "source": "WORK-QUEUE.md", - "source_sha256": "TODO", + "source_sha256": src_hash, "rows": len(rows), "columns": ["Q", "Title", "Status", "Target"], + "extract_rule": "A Q item is a line matching ^## Q<n> — <title>; trailing '*(notes)*' stripped; Status = '**Status: ...' line; Target = first backticked recoveries|docs|checkins file in the body. Duplicates emitted as separate rows.", + "artifact": "workqueue-census.tsv", + "generated_by": "ledger (extract lane)", "extracted_at_utc": "2026-11-02T00:00:00Z", } with open(os.path.join(OUT_DIR, MANIFEST_NAME), "w", encoding="utf-8") as fh: