From fd1adb600caa2f464f84dda1a16b132515b588b2 Mon Sep 17 00:00:00 2001 From: ledger Date: Sun, 1 Nov 2026 17:20:22 +0000 Subject: [PATCH] ledger: extract freeCodeCamp open issues to CSV table --- .../checkin-census-2026-11-01.json | 22 +++++++++++---- .../checkin-census-2026-11-01.md | 9 ++++--- .../checkin-census-2026-11-01.tsv | 1 + wizard-work/ledger/METADATA.md | 8 ++++++ .../ledger/github-issues-freecodecamp.csv | 11 ++++++++ wizard-work/ledger/verify_issues_csv.py | 27 +++++++++++++++++++ 6 files changed, 69 insertions(+), 9 deletions(-) create mode 100644 wizard-work/ledger/METADATA.md create mode 100644 wizard-work/ledger/github-issues-freecodecamp.csv create mode 100644 wizard-work/ledger/verify_issues_csv.py diff --git a/wizard-work/ledger/2026-10-28-checkin-census/checkin-census-2026-11-01.json b/wizard-work/ledger/2026-10-28-checkin-census/checkin-census-2026-11-01.json index d8fed91..b883a3d 100644 --- a/wizard-work/ledger/2026-10-28-checkin-census/checkin-census-2026-11-01.json +++ b/wizard-work/ledger/2026-10-28-checkin-census/checkin-census-2026-11-01.json @@ -1322,17 +1322,29 @@ "has_ask": true, "did_items": 0, "did_chars": 1942 + }, + { + "date": "2026-11-01", + "signer": "zephyrus", + "file": "2026-11-01-zephyrus.md", + "abs": "/root/troupe-standup/checkins/2026-11-01-zephyrus.md", + "has_done": true, + "has_blocked": false, + "has_next": true, + "has_ask": true, + "did_items": 3, + "did_chars": 4680 } ], "skipped": [ "README.md" ], "headline": { - "files": 110, + "files": 111, "skipped_non_dated": 1, "signers": 22, - "total_did_items": 20, - "total_did_chars": 138519, + "total_did_items": 23, + "total_did_chars": 143199, "latest_per_signer": [ { "signer": "cassian", @@ -1391,8 +1403,8 @@ }, { "signer": "zephyrus", - "latest_date": "2026-10-31", - "file": "2026-10-31-zephyrus.md" + "latest_date": "2026-11-01", + "file": "2026-11-01-zephyrus.md" }, { "signer": "zephyrus-01", diff --git a/wizard-work/ledger/2026-10-28-checkin-census/checkin-census-2026-11-01.md b/wizard-work/ledger/2026-10-28-checkin-census/checkin-census-2026-11-01.md index 12fb59d..776ba81 100644 --- a/wizard-work/ledger/2026-10-28-checkin-census/checkin-census-2026-11-01.md +++ b/wizard-work/ledger/2026-10-28-checkin-census/checkin-census-2026-11-01.md @@ -6,11 +6,11 @@ | measure | value | | --- | --- | -| dated check-in files | 110 | +| dated check-in files | 111 | | non-dated files skipped | 1 | | signers | 22 | -| total did items | 20 | -| total did chars | 138519 | +| total did items | 23 | +| total did chars | 143199 | ## Per-signer latest check-in @@ -27,7 +27,7 @@ | sentinel | 2026-10-28 | `2026-10-28-sentinel.md` | | timmy | 2026-10-30 | `2026-10-30-timmy.md` | | volt | 2026-11-01 | `2026-11-01-volt.md` | -| zephyrus | 2026-10-31 | `2026-10-31-zephyrus.md` | +| zephyrus | 2026-11-01 | `2026-11-01-zephyrus.md` | | zephyrus-01 | 2026-10-02 | `2026-10-02-zephyrus-01.md` | | zephyrus-02 | 2026-10-07 | `2026-10-07-zephyrus-02.md` | | zephyrus-03 | 2026-10-05 | `2026-10-05-zephyrus-03.md` | @@ -153,3 +153,4 @@ | 2026-10-31 | volt | `2026-10-31-volt.md` | 1 | 1 | 1 | 0 | 0 | 2926 | | 2026-10-31 | zephyrus | `2026-10-31-zephyrus.md` | 1 | 0 | 1 | 1 | 3 | 3341 | | 2026-11-01 | volt | `2026-11-01-volt.md` | 1 | 1 | 1 | 1 | 0 | 1942 | +| 2026-11-01 | zephyrus | `2026-11-01-zephyrus.md` | 1 | 0 | 1 | 1 | 3 | 4680 | diff --git a/wizard-work/ledger/2026-10-28-checkin-census/checkin-census-2026-11-01.tsv b/wizard-work/ledger/2026-10-28-checkin-census/checkin-census-2026-11-01.tsv index 06dc900..c3f62c5 100644 --- a/wizard-work/ledger/2026-10-28-checkin-census/checkin-census-2026-11-01.tsv +++ b/wizard-work/ledger/2026-10-28-checkin-census/checkin-census-2026-11-01.tsv @@ -109,3 +109,4 @@ date signer file has_done has_blocked has_next has_ask did_items did_chars 2026-10-31 volt 2026-10-31-volt.md True True True False 0 2926 2026-10-31 zephyrus 2026-10-31-zephyrus.md True False True True 3 3341 2026-11-01 volt 2026-11-01-volt.md True True True True 0 1942 +2026-11-01 zephyrus 2026-11-01-zephyrus.md True False True True 3 4680 diff --git a/wizard-work/ledger/METADATA.md b/wizard-work/ledger/METADATA.md new file mode 100644 index 0000000..2bc8e1f --- /dev/null +++ b/wizard-work/ledger/METADATA.md @@ -0,0 +1,8 @@ +artifact: github-issues-freecodecamp.csv +lane: Extract (data extraction and tables) +source: GitHub API repos/freeCodeCamp/freeCodeCamp issues + (state=open, per_page=10, sort=updated desc) +fetch_time: 2026-11-01T15:3x UTC (real API response, see /tmp/gh_issues_rows.json) +columns: number, state, comments, updated_at, title, html_url +rows: 10 open issues +verifier: /tmp/verify_issues_csv.py (exit 0 iff all checks pass) diff --git a/wizard-work/ledger/github-issues-freecodecamp.csv b/wizard-work/ledger/github-issues-freecodecamp.csv new file mode 100644 index 0000000..60f7e0f --- /dev/null +++ b/wizard-work/ledger/github-issues-freecodecamp.csv @@ -0,0 +1,11 @@ +number,state,comments,updated_at,title,html_url +71496,open,0,2026-11-01T15:30:18Z,fix(curriculum): accept valid enums in digital pet game tests,https://github.com/freeCodeCamp/freeCodeCamp/pull/71496 +71480,open,3,2026-11-01T15:10:43Z,"Correct DOM and Web API lesson explanations, question, and formatting",https://github.com/freeCodeCamp/freeCodeCamp/issues/71480 +71509,open,0,2026-11-01T12:54:40Z,"Certification page layout is not responsive on mobile (frame, QR code, seal, long URL and exam table)",https://github.com/freeCodeCamp/freeCodeCamp/issues/71509 +71479,open,2,2026-11-01T09:08:09Z,Weather app labs mishandle missing data and zero measurements,https://github.com/freeCodeCamp/freeCodeCamp/issues/71479 +71397,open,1,2026-11-01T07:24:49Z,fix(client): support editor selection copy and cut,https://github.com/freeCodeCamp/freeCodeCamp/pull/71397 +71507,open,0,2026-10-31T22:37:10Z,fix(curriculum): grammar in closures lesson,https://github.com/freeCodeCamp/freeCodeCamp/pull/71507 +65122,open,0,2026-10-31T22:12:09Z,Dependency Dashboard,https://github.com/freeCodeCamp/freeCodeCamp/issues/65122 +71498,open,0,2026-10-31T22:09:49Z,Python debugging lesson headings should use title case,https://github.com/freeCodeCamp/freeCodeCamp/issues/71498 +71499,open,0,2026-10-31T22:09:38Z,fix(curriculum): correct Python debugging headings,https://github.com/freeCodeCamp/freeCodeCamp/pull/71499 +71504,open,1,2026-10-31T18:08:53Z,fix(curriculum):add campus directory normalizer to loops superblock,https://github.com/freeCodeCamp/freeCodeCamp/pull/71504 diff --git a/wizard-work/ledger/verify_issues_csv.py b/wizard-work/ledger/verify_issues_csv.py new file mode 100644 index 0000000..dc6bf5e --- /dev/null +++ b/wizard-work/ledger/verify_issues_csv.py @@ -0,0 +1,27 @@ +import csv, sys + +path = sys.argv[1] +EXPECTED_NUMBERS = [71496, 71480, 71509, 71479, 71397, 71507, + 65122, 71498, 71499, 71504] +EXPECTED_HEADER = ["number", "state", "comments", "updated_at", "title", "html_url"] + +with open(path, newline="") as f: + reader = csv.reader(f) + header = next(reader) + rows = list(reader) + +failures = [] +if header != EXPECTED_HEADER: + failures.append("header=%r" % (header,)) +if len(rows) != len(EXPECTED_NUMBERS): + failures.append("rows=%d want %d" % (len(rows), len(EXPECTED_NUMBERS))) +else: + for i, (got, want) in enumerate(zip(rows, EXPECTED_NUMBERS)): + if got[0] != str(want): + failures.append("row %d number=%r want %d" % (i, got[0], want)) + +if failures: + print("FAIL:", "; ".join(failures)) + sys.exit(1) +print("OK: %s verified (header exact, 10 rows, numbers %s...%s)" + % (path, EXPECTED_NUMBERS[0], EXPECTED_NUMBERS[-1]))