diff --git a/wizard-work/ledger/CHECK-github-repo-census-2026-11-02.sh b/wizard-work/ledger/CHECK-github-repo-census-2026-11-02.sh new file mode 100644 index 0000000..7b1556c --- /dev/null +++ b/wizard-work/ledger/CHECK-github-repo-census-2026-11-02.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash +# CHECK -- github repo census 2026-11-02 (extract lane). +# Exit 0 iff the committed TSV re-derives from the committed raw.json. +cd "$(dirname "${BASH_SOURCE[0]}")" || exit 2 +exec python3 verify_github_repo_census.py diff --git a/wizard-work/ledger/CHECK-wizardwork-census b/wizard-work/ledger/CHECK-wizardwork-census new file mode 100644 index 0000000..7783d5e --- /dev/null +++ b/wizard-work/ledger/CHECK-wizardwork-census @@ -0,0 +1,66 @@ +#!/bin/bash +# CHECK-wizardwork-census -- verify the wizard-work census TSVs round-trip from the tree. +# +# Q75 (ledger lane): both TSVs must regenerate from the tree through committed code +# and round-trip -- every line has the declared field count, every path exists on +# disk, no duplicates. This verifier is red on a line whose path is absent from disk +# and on a line with the wrong field count (the two negative cells: the injected +# beam/CHECK body, and a deleted row), and green once both tables are clean. +# +# Usage: CHECK-wizardwork-census [tsv1] [tsv2] +# defaults: wizardwork-file-manifest.tsv wizardwork-census.tsv (in this directory) +# +# Exit codes (repo tools/ contract): 0 clean, 1 graded a fault, 2 could not grade. +set -euo pipefail +cd "$(dirname "$(readlink -f "$0")")" + +ROOT="$(pwd)/.." # wizard-work dir, parent of ledger/ +TSV1="${1:-wizardwork-file-manifest.tsv}" +TSV2="${2:-wizardwork-census.tsv}" + +python3 - "$ROOT" "$TSV1" "$TSV2" <<'PY' +import os, sys +from pathlib import Path +root = Path(sys.argv[1]).resolve() +if not root.is_dir(): + print(f'CHECK-wizardwork-census: cannot grade -- wizard-work root {root} missing') + sys.exit(2) +fails = [] +tables = 0 +for tsv in sys.argv[2:]: + p = Path(tsv) + if not p.is_absolute(): + p = Path.cwd() / p + if not p.is_file(): + print(f'CHECK-wizardwork-census: cannot grade -- {p} missing') + sys.exit(2) + tables += 1 + seen = set() + n4 = nbad = 0 + with open(p) as f: + for ln, line in enumerate(f, 1): + line = line.rstrip('\n') + if not line: + continue + parts = line.split('\t') + if len(parts) != 4: + nbad += 1 + fails.append(f'{p.name}:{ln}: wrong field count {len(parts)}') + continue + n4 += 1 + rel, size, fn, top = parts + if rel in seen: + fails.append(f'{p.name}:{ln}: duplicate path {rel}') + seen.add(rel) + if not (root / rel).exists(): + fails.append(f'{p.name}:{ln}: absent path {rel}') + print(f'{p.name}: {n4} well-formed rows, {nbad} malformed lines, {len(seen)} distinct paths') +print(f'CHECK-wizardwork-census: checked {tables} tables against {root}') +if fails: + print('CHECK-wizardwork-census: FAIL') + for f in fails[:25]: + print(' ', f) + sys.exit(1) +print('CHECK-wizardwork-census: OK -- every line 4 fields, every path on disk, no duplicates') +sys.exit(0) +PY diff --git a/wizard-work/ledger/extract_2026_11_02_wizard_handle_census.py b/wizard-work/ledger/extract_2026_11_02_wizard_handle_census.py index 91be900..33b23fa 100644 --- a/wizard-work/ledger/extract_2026_11_02_wizard_handle_census.py +++ b/wizard-work/ledger/extract_2026_11_02_wizard_handle_census.py @@ -1,7 +1,6 @@ -import subprocess, collections, json, sys -REPO = "/root/troupe-standup" -HEAD = subprocess.run(["git","-C",REPO,"rev-parse","HEAD"],check=True,capture_output=True,text=True).stdout.strip() -out = subprocess.run(["git","-C",REPO,"log","--format=%an%x00%ae"],check=True,capture_output=True,text=True).stdout +import subprocess, collections, json +REPO="/root/troupe-standup" +HEAD=subprocess.run(["git","-C",REPO,"rev-parse","HEAD"],check=True,capture_output=True,text=True).stdout.strip() def canon(name): n=(name or "").strip().lower() if "timmy" in n: return "timmy" @@ -9,16 +8,18 @@ def canon(name): if "cassian" in n: return "cassian-assayborn" if "volt" in n: return "volt" return n -cnt=collections.Counter() -for line in out.split("\n"): - if not line: continue - n,e=line.split("\x00"); cnt[canon(n)]+=1 -rows=sorted(cnt.items(), key=lambda kv:(-kv[1],kv[0])) -print("HEAD", HEAD, "distinct handles:", len(cnt)) +def derive(rev): + out=subprocess.run(["git","-C",REPO,"log","--format=%an",rev],check=True,capture_output=True,text=True).stdout + cnt=collections.Counter() + for line in out.split("\n"): + if not line: continue + cnt[canon(line)]+=1 + return sorted(cnt.items(), key=lambda kv:(-kv[1],kv[0])) +rows=derive(HEAD) +with open("wizard-work/ledger/2026-11-02-wizard-handle-census.csv","w") as f: + f.write("handle,commit_count\n"+ "".join(f"{h},{c}\n" for h,c in rows)) +meta={"pin_rev":HEAD,"row_count":len(rows),"schema":{"handle":"str","commit_count":"int"},"derived_from":"git log --format=%an "} +with open("wizard-work/ledger/2026-11-02-wizard-handle-census.manifest.json","w") as f: + json.dump(meta,f,indent=2) +print("pin",HEAD,"rows",len(rows)) for h,c in rows: print(f"{c:6d} {h}") -# rebuild CSV (replaces artifact at current HEAD) -with open("/root/troupe-standup/wizard-work/ledger/2026-11-02-wizard-handle-census.csv","w") as f: - f.write("handle,commit_count\n" + "".join(f"{h},{c}\n" for h,c in rows)) -with open("/root/troupe-standup/wizard-work/ledger/2026-11-02-wizard-handle-census.manifest.json","w") as f: - json.dump({"pin_rev":HEAD,"row_count":len(rows),"schema":{"handle":"str","commit_count":"int"},"derived_from":"git log --format=%an%x00%ae across whole history"},f,indent=2) -print("rebuilt csv/manifest at rev", HEAD) diff --git a/wizard-work/ledger/extract_github_repo_census.py b/wizard-work/ledger/extract_github_repo_census.py new file mode 100644 index 0000000..2961f39 --- /dev/null +++ b/wizard-work/ledger/extract_github_repo_census.py @@ -0,0 +1,84 @@ +#!/usr/bin/env python3 +"""extract_github_repo_census.py + +Extract the 15 most-starred GitHub repositories (>=10000 stars) into a TSV +table. Single live API query (unauthenticated search), one call. + +Source: + https://api.github.com/search/repositories?q=stars:>=10000&per_page=15&sort=stars&order=desc + +Outputs (same dir as this script): + github-repo-census-2026-11-02.tsv ranked table (rank, repo, owner, description, + stars, forks, language, url) + github-repo-census-2026-11-02.raw.json raw API reply + github-repo-census-2026-11-02.manifest.json extract manifest +""" +import csv +import json +import urllib.request +from datetime import datetime, timezone +from pathlib import Path + +OUT = Path(__file__).resolve().parent +TSV = OUT / "github-repo-census-2026-11-02.tsv" +RAW = OUT / "github-repo-census-2026-11-02.raw.json" +MAN = OUT / "github-repo-census-2026-11-02.manifest.json" + +SOURCE = ("https://api.github.com/search/repositories" + "?q=stars:>=10000&per_page=15&sort=stars&order=desc") +HEADERS = {"User-Agent": "ledger-wizard/1.0", + "Accept": "application/vnd.github+json"} + + +def fetch(): + req = urllib.request.Request(SOURCE, headers=HEADERS) + with urllib.request.urlopen(req, timeout=30) as r: + return json.loads(r.read(4 * 1024 * 1024)) + + +def main(): + api = fetch() + items = sorted(api.get("items", []), + key=lambda i: i.get("stargazers_count", 0), reverse=True)[:15] + rows = [] + for i, it in enumerate(items, 1): + rows.append({ + "rank": i, + "repo": it.get("name", ""), + "owner": (it.get("owner") or {}).get("login", ""), + "description": (it.get("description") or "").strip(), + "stars": it.get("stargazers_count", 0), + "forks": it.get("forks_count", 0), + "language": (it.get("language") or "").strip(), + "url": it.get("html_url", ""), + }) + with TSV.open("w", encoding="utf-8", newline="") as f: + w = csv.DictWriter(f, + fieldnames=["rank", "repo", "owner", "description", + "stars", "forks", "language", "url"], + delimiter="\t", lineterminator="\n") + w.writeheader() + w.writerows(rows) + RAW.write_text(json.dumps(api, indent=1, ensure_ascii=False), encoding="utf-8") + manifest = { + "schema": "github-repo-census-v1", + "source": SOURCE, + "extracted_at_utc": datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ"), + "generated_by": "extract_github_repo_census.py (urllib -> api.github.com)", + "rows": len(rows), + "columns": ["rank", "repo", "owner", "description", "stars", "forks", + "language", "url"], + "verification": ("CHECK github-repo-census-2026-11-02.sh " + "(independent re-derivation from raw.json; exit 0 iff equal)"), + "total_count": api.get("total_count"), + } + MAN.write_text(json.dumps(manifest, indent=2, ensure_ascii=False), encoding="utf-8") + print("API total_count:", api.get("total_count")) + print("rows written:", len(rows)) + for r in rows[:3]: + print(r["repo"], r["stars"], r["owner"], "|", r["language"]) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/wizard-work/ledger/github-repo-census-2026-11-02.manifest.json b/wizard-work/ledger/github-repo-census-2026-11-02.manifest.json new file mode 100644 index 0000000..8c000d7 --- /dev/null +++ b/wizard-work/ledger/github-repo-census-2026-11-02.manifest.json @@ -0,0 +1,19 @@ +{ + "schema": "github-repo-census-v1", + "source": "https://api.github.com/search/repositories?q=stars:>=10000&per_page=15&sort=stars&order=desc", + "extracted_at_utc": "2026-11-02T16:35:31Z", + "generated_by": "extract_github_repo_census.py (urllib -> api.github.com)", + "rows": 15, + "columns": [ + "rank", + "repo", + "owner", + "description", + "stars", + "forks", + "language", + "url" + ], + "verification": "CHECK github-repo-census-2026-11-02.sh (independent re-derivation from raw.json; exit 0 iff equal)", + "total_count": 5718 +} \ No newline at end of file diff --git a/wizard-work/ledger/github-repo-census-2026-11-02.raw.json b/wizard-work/ledger/github-repo-census-2026-11-02.raw.json new file mode 100644 index 0000000..bc501f6 --- /dev/null +++ b/wizard-work/ledger/github-repo-census-2026-11-02.raw.json @@ -0,0 +1,1808 @@ +{ + "total_count": 5718, + "incomplete_results": false, + "items": [ + { + "id": 132750724, + "node_id": "MDEwOlJlcG9zaXRvcnkxMzI3NTA3MjQ=", + "name": "build-your-own-x", + "full_name": "codecrafters-io/build-your-own-x", + "private": false, + "owner": { + "login": "codecrafters-io", + "id": 58904235, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjU4OTA0MjM1", + "avatar_url": "https://avatars.githubusercontent.com/u/58904235?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/codecrafters-io", + "html_url": "https://github.com/codecrafters-io", + "followers_url": "https://api.github.com/users/codecrafters-io/followers", + "following_url": "https://api.github.com/users/codecrafters-io/following{/other_user}", + "gists_url": "https://api.github.com/users/codecrafters-io/gists{/gist_id}", + "starred_url": "https://api.github.com/users/codecrafters-io/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/codecrafters-io/subscriptions", + "organizations_url": "https://api.github.com/users/codecrafters-io/orgs", + "repos_url": "https://api.github.com/users/codecrafters-io/repos", + "events_url": "https://api.github.com/users/codecrafters-io/events{/privacy}", + "received_events_url": "https://api.github.com/users/codecrafters-io/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/codecrafters-io/build-your-own-x", + "description": "Master programming by recreating your favorite technologies from scratch.", + "fork": false, + "url": "https://api.github.com/repos/codecrafters-io/build-your-own-x", + "forks_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/forks", + "keys_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/teams", + "hooks_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/hooks", + "issue_events_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/issues/events{/number}", + "events_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/events", + "assignees_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/assignees{/user}", + "branches_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/branches{/branch}", + "tags_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/tags", + "blobs_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/statuses/{sha}", + "languages_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/languages", + "stargazers_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/stargazers", + "contributors_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/contributors", + "subscribers_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/subscribers", + "subscription_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/subscription", + "commits_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/contents/{+path}", + "compare_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/merges", + "archive_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/downloads", + "issues_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/issues{/number}", + "pulls_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/pulls{/number}", + "milestones_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/milestones{/number}", + "notifications_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/labels{/name}", + "releases_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/releases{/id}", + "deployments_url": "https://api.github.com/repos/codecrafters-io/build-your-own-x/deployments", + "created_at": "2018-05-09T12:03:18Z", + "updated_at": "2026-11-02T16:34:14Z", + "pushed_at": "2026-07-14T19:25:58Z", + "git_url": "git://github.com/codecrafters-io/build-your-own-x.git", + "ssh_url": "git@github.com:codecrafters-io/build-your-own-x.git", + "clone_url": "https://github.com/codecrafters-io/build-your-own-x.git", + "svn_url": "https://github.com/codecrafters-io/build-your-own-x", + "homepage": "https://codecrafters.io", + "size": 1086, + "stargazers_count": 558771, + "watchers_count": 558771, + "language": "Markdown", + "has_issues": true, + "has_projects": false, + "has_downloads": false, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 52283, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 689, + "license": null, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "awesome-list", + "free", + "programming", + "tutorial-code", + "tutorial-exercises", + "tutorials" + ], + "visibility": "public", + "forks": 52283, + "open_issues": 689, + "watchers": 558771, + "default_branch": "master", + "score": 1.0 + }, + { + "id": 21737465, + "node_id": "MDEwOlJlcG9zaXRvcnkyMTczNzQ2NQ==", + "name": "awesome", + "full_name": "sindresorhus/awesome", + "private": false, + "owner": { + "login": "sindresorhus", + "id": 170270, + "node_id": "MDQ6VXNlcjE3MDI3MA==", + "avatar_url": "https://avatars.githubusercontent.com/u/170270?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/sindresorhus", + "html_url": "https://github.com/sindresorhus", + "followers_url": "https://api.github.com/users/sindresorhus/followers", + "following_url": "https://api.github.com/users/sindresorhus/following{/other_user}", + "gists_url": "https://api.github.com/users/sindresorhus/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sindresorhus/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sindresorhus/subscriptions", + "organizations_url": "https://api.github.com/users/sindresorhus/orgs", + "repos_url": "https://api.github.com/users/sindresorhus/repos", + "events_url": "https://api.github.com/users/sindresorhus/events{/privacy}", + "received_events_url": "https://api.github.com/users/sindresorhus/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/sindresorhus/awesome", + "description": "😎 Awesome lists about all kinds of interesting topics [NOTE: Pull requests are temporarily disabled until I have a chance to catch up with the existing ones]", + "fork": false, + "url": "https://api.github.com/repos/sindresorhus/awesome", + "forks_url": "https://api.github.com/repos/sindresorhus/awesome/forks", + "keys_url": "https://api.github.com/repos/sindresorhus/awesome/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/sindresorhus/awesome/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/sindresorhus/awesome/teams", + "hooks_url": "https://api.github.com/repos/sindresorhus/awesome/hooks", + "issue_events_url": "https://api.github.com/repos/sindresorhus/awesome/issues/events{/number}", + "events_url": "https://api.github.com/repos/sindresorhus/awesome/events", + "assignees_url": "https://api.github.com/repos/sindresorhus/awesome/assignees{/user}", + "branches_url": "https://api.github.com/repos/sindresorhus/awesome/branches{/branch}", + "tags_url": "https://api.github.com/repos/sindresorhus/awesome/tags", + "blobs_url": "https://api.github.com/repos/sindresorhus/awesome/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/sindresorhus/awesome/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/sindresorhus/awesome/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/sindresorhus/awesome/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/sindresorhus/awesome/statuses/{sha}", + "languages_url": "https://api.github.com/repos/sindresorhus/awesome/languages", + "stargazers_url": "https://api.github.com/repos/sindresorhus/awesome/stargazers", + "contributors_url": "https://api.github.com/repos/sindresorhus/awesome/contributors", + "subscribers_url": "https://api.github.com/repos/sindresorhus/awesome/subscribers", + "subscription_url": "https://api.github.com/repos/sindresorhus/awesome/subscription", + "commits_url": "https://api.github.com/repos/sindresorhus/awesome/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/sindresorhus/awesome/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/sindresorhus/awesome/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/sindresorhus/awesome/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/sindresorhus/awesome/contents/{+path}", + "compare_url": "https://api.github.com/repos/sindresorhus/awesome/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/sindresorhus/awesome/merges", + "archive_url": "https://api.github.com/repos/sindresorhus/awesome/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/sindresorhus/awesome/downloads", + "issues_url": "https://api.github.com/repos/sindresorhus/awesome/issues{/number}", + "pulls_url": "https://api.github.com/repos/sindresorhus/awesome/pulls{/number}", + "milestones_url": "https://api.github.com/repos/sindresorhus/awesome/milestones{/number}", + "notifications_url": "https://api.github.com/repos/sindresorhus/awesome/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/sindresorhus/awesome/labels{/name}", + "releases_url": "https://api.github.com/repos/sindresorhus/awesome/releases{/id}", + "deployments_url": "https://api.github.com/repos/sindresorhus/awesome/deployments", + "created_at": "2014-07-11T13:42:37Z", + "updated_at": "2026-11-02T16:32:41Z", + "pushed_at": "2026-09-02T02:10:47Z", + "git_url": "git://github.com/sindresorhus/awesome.git", + "ssh_url": "git@github.com:sindresorhus/awesome.git", + "clone_url": "https://github.com/sindresorhus/awesome.git", + "svn_url": "https://github.com/sindresorhus/awesome", + "homepage": "", + "size": 1566, + "stargazers_count": 529455, + "watchers_count": 529455, + "language": null, + "has_issues": true, + "has_projects": false, + "has_downloads": false, + "has_wiki": false, + "has_pages": true, + "has_discussions": false, + "forks_count": 37998, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 104, + "license": { + "key": "cc0-1.0", + "name": "Creative Commons Zero v1.0 Universal", + "spdx_id": "CC0-1.0", + "url": "https://api.github.com/licenses/cc0-1.0", + "node_id": "MDc6TGljZW5zZTY=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "collaborators_only", + "topics": [ + "awesome", + "awesome-list", + "lists", + "resources", + "unicorns" + ], + "visibility": "public", + "forks": 37998, + "open_issues": 104, + "watchers": 529455, + "default_branch": "main", + "score": 1.0 + }, + { + "id": 54346799, + "node_id": "MDEwOlJlcG9zaXRvcnk1NDM0Njc5OQ==", + "name": "public-apis", + "full_name": "public-apis/public-apis", + "private": false, + "owner": { + "login": "public-apis", + "id": 51121562, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUxMTIxNTYy", + "avatar_url": "https://avatars.githubusercontent.com/u/51121562?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/public-apis", + "html_url": "https://github.com/public-apis", + "followers_url": "https://api.github.com/users/public-apis/followers", + "following_url": "https://api.github.com/users/public-apis/following{/other_user}", + "gists_url": "https://api.github.com/users/public-apis/gists{/gist_id}", + "starred_url": "https://api.github.com/users/public-apis/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/public-apis/subscriptions", + "organizations_url": "https://api.github.com/users/public-apis/orgs", + "repos_url": "https://api.github.com/users/public-apis/repos", + "events_url": "https://api.github.com/users/public-apis/events{/privacy}", + "received_events_url": "https://api.github.com/users/public-apis/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/public-apis/public-apis", + "description": "A collective list of free APIs", + "fork": false, + "url": "https://api.github.com/repos/public-apis/public-apis", + "forks_url": "https://api.github.com/repos/public-apis/public-apis/forks", + "keys_url": "https://api.github.com/repos/public-apis/public-apis/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/public-apis/public-apis/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/public-apis/public-apis/teams", + "hooks_url": "https://api.github.com/repos/public-apis/public-apis/hooks", + "issue_events_url": "https://api.github.com/repos/public-apis/public-apis/issues/events{/number}", + "events_url": "https://api.github.com/repos/public-apis/public-apis/events", + "assignees_url": "https://api.github.com/repos/public-apis/public-apis/assignees{/user}", + "branches_url": "https://api.github.com/repos/public-apis/public-apis/branches{/branch}", + "tags_url": "https://api.github.com/repos/public-apis/public-apis/tags", + "blobs_url": "https://api.github.com/repos/public-apis/public-apis/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/public-apis/public-apis/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/public-apis/public-apis/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/public-apis/public-apis/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/public-apis/public-apis/statuses/{sha}", + "languages_url": "https://api.github.com/repos/public-apis/public-apis/languages", + "stargazers_url": "https://api.github.com/repos/public-apis/public-apis/stargazers", + "contributors_url": "https://api.github.com/repos/public-apis/public-apis/contributors", + "subscribers_url": "https://api.github.com/repos/public-apis/public-apis/subscribers", + "subscription_url": "https://api.github.com/repos/public-apis/public-apis/subscription", + "commits_url": "https://api.github.com/repos/public-apis/public-apis/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/public-apis/public-apis/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/public-apis/public-apis/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/public-apis/public-apis/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/public-apis/public-apis/contents/{+path}", + "compare_url": "https://api.github.com/repos/public-apis/public-apis/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/public-apis/public-apis/merges", + "archive_url": "https://api.github.com/repos/public-apis/public-apis/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/public-apis/public-apis/downloads", + "issues_url": "https://api.github.com/repos/public-apis/public-apis/issues{/number}", + "pulls_url": "https://api.github.com/repos/public-apis/public-apis/pulls{/number}", + "milestones_url": "https://api.github.com/repos/public-apis/public-apis/milestones{/number}", + "notifications_url": "https://api.github.com/repos/public-apis/public-apis/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/public-apis/public-apis/labels{/name}", + "releases_url": "https://api.github.com/repos/public-apis/public-apis/releases{/id}", + "deployments_url": "https://api.github.com/repos/public-apis/public-apis/deployments", + "created_at": "2016-03-20T23:49:42Z", + "updated_at": "2026-11-02T16:29:03Z", + "pushed_at": "2026-11-01T18:22:08Z", + "git_url": "git://github.com/public-apis/public-apis.git", + "ssh_url": "git@github.com:public-apis/public-apis.git", + "clone_url": "https://github.com/public-apis/public-apis.git", + "svn_url": "https://github.com/public-apis/public-apis", + "homepage": "https://APILayer.com/?utm_source=Github&utm_medium=Referral&utm_campaign=Public-apis-repo", + "size": 14443, + "stargazers_count": 495400, + "watchers_count": 495400, + "language": "Python", + "has_issues": true, + "has_projects": false, + "has_downloads": false, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 55284, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 2529, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "api", + "apis", + "dataset", + "development", + "free", + "list", + "lists", + "open-source", + "public", + "public-api", + "public-apis", + "resources", + "software" + ], + "visibility": "public", + "forks": 55284, + "open_issues": 2529, + "watchers": 495400, + "default_branch": "master", + "score": 1.0 + }, + { + "id": 28457823, + "node_id": "MDEwOlJlcG9zaXRvcnkyODQ1NzgyMw==", + "name": "freeCodeCamp", + "full_name": "freeCodeCamp/freeCodeCamp", + "private": false, + "owner": { + "login": "freeCodeCamp", + "id": 9892522, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjk4OTI1MjI=", + "avatar_url": "https://avatars.githubusercontent.com/u/9892522?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/freeCodeCamp", + "html_url": "https://github.com/freeCodeCamp", + "followers_url": "https://api.github.com/users/freeCodeCamp/followers", + "following_url": "https://api.github.com/users/freeCodeCamp/following{/other_user}", + "gists_url": "https://api.github.com/users/freeCodeCamp/gists{/gist_id}", + "starred_url": "https://api.github.com/users/freeCodeCamp/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/freeCodeCamp/subscriptions", + "organizations_url": "https://api.github.com/users/freeCodeCamp/orgs", + "repos_url": "https://api.github.com/users/freeCodeCamp/repos", + "events_url": "https://api.github.com/users/freeCodeCamp/events{/privacy}", + "received_events_url": "https://api.github.com/users/freeCodeCamp/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/freeCodeCamp/freeCodeCamp", + "description": "freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.", + "fork": false, + "url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp", + "forks_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/forks", + "keys_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/teams", + "hooks_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/hooks", + "issue_events_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/issues/events{/number}", + "events_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/events", + "assignees_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/assignees{/user}", + "branches_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/branches{/branch}", + "tags_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/tags", + "blobs_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/statuses/{sha}", + "languages_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/languages", + "stargazers_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/stargazers", + "contributors_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/contributors", + "subscribers_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/subscribers", + "subscription_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/subscription", + "commits_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/contents/{+path}", + "compare_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/merges", + "archive_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/downloads", + "issues_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/issues{/number}", + "pulls_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/pulls{/number}", + "milestones_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/milestones{/number}", + "notifications_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/labels{/name}", + "releases_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/releases{/id}", + "deployments_url": "https://api.github.com/repos/freeCodeCamp/freeCodeCamp/deployments", + "created_at": "2014-12-24T17:49:19Z", + "updated_at": "2026-11-02T16:34:57Z", + "pushed_at": "2026-11-02T16:05:01Z", + "git_url": "git://github.com/freeCodeCamp/freeCodeCamp.git", + "ssh_url": "git@github.com:freeCodeCamp/freeCodeCamp.git", + "clone_url": "https://github.com/freeCodeCamp/freeCodeCamp.git", + "svn_url": "https://github.com/freeCodeCamp/freeCodeCamp", + "homepage": "https://contribute.freecodecamp.org", + "size": 584450, + "stargazers_count": 458437, + "watchers_count": 458437, + "language": "TypeScript", + "has_issues": true, + "has_projects": true, + "has_downloads": false, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 48188, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 183, + "license": { + "key": "bsd-3-clause", + "name": "BSD 3-Clause \"New\" or \"Revised\" License", + "spdx_id": "BSD-3-Clause", + "url": "https://api.github.com/licenses/bsd-3-clause", + "node_id": "MDc6TGljZW5zZTU=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": true, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "careers", + "certification", + "community", + "curriculum", + "d3", + "education", + "freecodecamp", + "javascript", + "learn-to-code", + "math", + "nodejs", + "nonprofits", + "programming", + "react", + "teachers" + ], + "visibility": "public", + "forks": 48188, + "open_issues": 183, + "watchers": 458437, + "default_branch": "main", + "score": 1.0 + }, + { + "id": 1209966933, + "node_id": "R_kgDOSB6hVQ", + "name": "rea", + "full_name": "morluto/rea", + "private": false, + "owner": { + "login": "morluto", + "id": 76467478, + "node_id": "MDQ6VXNlcjc2NDY3NDc4", + "avatar_url": "https://avatars.githubusercontent.com/u/76467478?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/morluto", + "html_url": "https://github.com/morluto", + "followers_url": "https://api.github.com/users/morluto/followers", + "following_url": "https://api.github.com/users/morluto/following{/other_user}", + "gists_url": "https://api.github.com/users/morluto/gists{/gist_id}", + "starred_url": "https://api.github.com/users/morluto/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/morluto/subscriptions", + "organizations_url": "https://api.github.com/users/morluto/orgs", + "repos_url": "https://api.github.com/users/morluto/repos", + "events_url": "https://api.github.com/users/morluto/events{/privacy}", + "received_events_url": "https://api.github.com/users/morluto/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/morluto/rea", + "description": "Reverse engineer anything with agents, from app behavior down to native binaries.", + "fork": false, + "url": "https://api.github.com/repos/morluto/rea", + "forks_url": "https://api.github.com/repos/morluto/rea/forks", + "keys_url": "https://api.github.com/repos/morluto/rea/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/morluto/rea/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/morluto/rea/teams", + "hooks_url": "https://api.github.com/repos/morluto/rea/hooks", + "issue_events_url": "https://api.github.com/repos/morluto/rea/issues/events{/number}", + "events_url": "https://api.github.com/repos/morluto/rea/events", + "assignees_url": "https://api.github.com/repos/morluto/rea/assignees{/user}", + "branches_url": "https://api.github.com/repos/morluto/rea/branches{/branch}", + "tags_url": "https://api.github.com/repos/morluto/rea/tags", + "blobs_url": "https://api.github.com/repos/morluto/rea/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/morluto/rea/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/morluto/rea/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/morluto/rea/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/morluto/rea/statuses/{sha}", + "languages_url": "https://api.github.com/repos/morluto/rea/languages", + "stargazers_url": "https://api.github.com/repos/morluto/rea/stargazers", + "contributors_url": "https://api.github.com/repos/morluto/rea/contributors", + "subscribers_url": "https://api.github.com/repos/morluto/rea/subscribers", + "subscription_url": "https://api.github.com/repos/morluto/rea/subscription", + "commits_url": "https://api.github.com/repos/morluto/rea/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/morluto/rea/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/morluto/rea/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/morluto/rea/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/morluto/rea/contents/{+path}", + "compare_url": "https://api.github.com/repos/morluto/rea/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/morluto/rea/merges", + "archive_url": "https://api.github.com/repos/morluto/rea/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/morluto/rea/downloads", + "issues_url": "https://api.github.com/repos/morluto/rea/issues{/number}", + "pulls_url": "https://api.github.com/repos/morluto/rea/pulls{/number}", + "milestones_url": "https://api.github.com/repos/morluto/rea/milestones{/number}", + "notifications_url": "https://api.github.com/repos/morluto/rea/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/morluto/rea/labels{/name}", + "releases_url": "https://api.github.com/repos/morluto/rea/releases{/id}", + "deployments_url": "https://api.github.com/repos/morluto/rea/deployments", + "created_at": "2026-04-14T00:51:32Z", + "updated_at": "2026-11-02T16:35:29Z", + "pushed_at": "2026-11-02T16:29:19Z", + "git_url": "git://github.com/morluto/rea.git", + "ssh_url": "git@github.com:morluto/rea.git", + "clone_url": "https://github.com/morluto/rea.git", + "svn_url": "https://github.com/morluto/rea", + "homepage": "https://rea.tools", + "size": 137834, + "stargazers_count": 421817, + "watchers_count": 421817, + "language": "TypeScript", + "has_issues": true, + "has_projects": true, + "has_downloads": false, + "has_wiki": false, + "has_pages": true, + "has_discussions": true, + "forks_count": 105236, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 1637, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "agent-skills", + "ai", + "android", + "claude-code", + "cli", + "cpp", + "dsh-plugin", + "html", + "java", + "javascript", + "linux", + "mcp", + "nodejs", + "python", + "rea", + "react", + "rust", + "security", + "touhou", + "typescript" + ], + "visibility": "public", + "forks": 105236, + "open_issues": 1637, + "watchers": 421817, + "default_branch": "main", + "score": 1.0 + }, + { + "id": 13491895, + "node_id": "MDEwOlJlcG9zaXRvcnkxMzQ5MTg5NQ==", + "name": "free-programming-books", + "full_name": "EbookFoundation/free-programming-books", + "private": false, + "owner": { + "login": "EbookFoundation", + "id": 14127308, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE0MTI3MzA4", + "avatar_url": "https://avatars.githubusercontent.com/u/14127308?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/EbookFoundation", + "html_url": "https://github.com/EbookFoundation", + "followers_url": "https://api.github.com/users/EbookFoundation/followers", + "following_url": "https://api.github.com/users/EbookFoundation/following{/other_user}", + "gists_url": "https://api.github.com/users/EbookFoundation/gists{/gist_id}", + "starred_url": "https://api.github.com/users/EbookFoundation/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/EbookFoundation/subscriptions", + "organizations_url": "https://api.github.com/users/EbookFoundation/orgs", + "repos_url": "https://api.github.com/users/EbookFoundation/repos", + "events_url": "https://api.github.com/users/EbookFoundation/events{/privacy}", + "received_events_url": "https://api.github.com/users/EbookFoundation/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/EbookFoundation/free-programming-books", + "description": ":books: Freely available programming books", + "fork": false, + "url": "https://api.github.com/repos/EbookFoundation/free-programming-books", + "forks_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/forks", + "keys_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/teams", + "hooks_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/hooks", + "issue_events_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/issues/events{/number}", + "events_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/events", + "assignees_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/assignees{/user}", + "branches_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/branches{/branch}", + "tags_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/tags", + "blobs_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/statuses/{sha}", + "languages_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/languages", + "stargazers_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/stargazers", + "contributors_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/contributors", + "subscribers_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/subscribers", + "subscription_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/subscription", + "commits_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/contents/{+path}", + "compare_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/merges", + "archive_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/downloads", + "issues_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/issues{/number}", + "pulls_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/pulls{/number}", + "milestones_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/milestones{/number}", + "notifications_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/labels{/name}", + "releases_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/releases{/id}", + "deployments_url": "https://api.github.com/repos/EbookFoundation/free-programming-books/deployments", + "created_at": "2013-10-11T06:50:37Z", + "updated_at": "2026-11-02T16:29:19Z", + "pushed_at": "2026-11-01T02:48:06Z", + "git_url": "git://github.com/EbookFoundation/free-programming-books.git", + "ssh_url": "git@github.com:EbookFoundation/free-programming-books.git", + "clone_url": "https://github.com/EbookFoundation/free-programming-books.git", + "svn_url": "https://github.com/EbookFoundation/free-programming-books", + "homepage": "https://ebookfoundation.github.io/free-programming-books/", + "size": 22221, + "stargazers_count": 400738, + "watchers_count": 400738, + "language": "Python", + "has_issues": true, + "has_projects": false, + "has_downloads": false, + "has_wiki": false, + "has_pages": true, + "has_discussions": false, + "forks_count": 67064, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 94, + "license": { + "key": "cc-by-4.0", + "name": "Creative Commons Attribution 4.0 International", + "spdx_id": "CC-BY-4.0", + "url": "https://api.github.com/licenses/cc-by-4.0", + "node_id": "MDc6TGljZW5zZTI1" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "books", + "education", + "hacktoberfest", + "list", + "resource" + ], + "visibility": "public", + "forks": 67064, + "open_issues": 94, + "watchers": 400738, + "default_branch": "main", + "score": 1.0 + }, + { + "id": 1103012935, + "node_id": "R_kgDOQb6kRw", + "name": "openclaw", + "full_name": "openclaw/openclaw", + "private": false, + "owner": { + "login": "openclaw", + "id": 252820863, + "node_id": "O_kgDODxG9fw", + "avatar_url": "https://avatars.githubusercontent.com/u/252820863?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/openclaw", + "html_url": "https://github.com/openclaw", + "followers_url": "https://api.github.com/users/openclaw/followers", + "following_url": "https://api.github.com/users/openclaw/following{/other_user}", + "gists_url": "https://api.github.com/users/openclaw/gists{/gist_id}", + "starred_url": "https://api.github.com/users/openclaw/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/openclaw/subscriptions", + "organizations_url": "https://api.github.com/users/openclaw/orgs", + "repos_url": "https://api.github.com/users/openclaw/repos", + "events_url": "https://api.github.com/users/openclaw/events{/privacy}", + "received_events_url": "https://api.github.com/users/openclaw/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/openclaw/openclaw", + "description": "The AI that really does things. Any OS. Any Platform. The lobster way. 🦞 ", + "fork": false, + "url": "https://api.github.com/repos/openclaw/openclaw", + "forks_url": "https://api.github.com/repos/openclaw/openclaw/forks", + "keys_url": "https://api.github.com/repos/openclaw/openclaw/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/openclaw/openclaw/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/openclaw/openclaw/teams", + "hooks_url": "https://api.github.com/repos/openclaw/openclaw/hooks", + "issue_events_url": "https://api.github.com/repos/openclaw/openclaw/issues/events{/number}", + "events_url": "https://api.github.com/repos/openclaw/openclaw/events", + "assignees_url": "https://api.github.com/repos/openclaw/openclaw/assignees{/user}", + "branches_url": "https://api.github.com/repos/openclaw/openclaw/branches{/branch}", + "tags_url": "https://api.github.com/repos/openclaw/openclaw/tags", + "blobs_url": "https://api.github.com/repos/openclaw/openclaw/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/openclaw/openclaw/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/openclaw/openclaw/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/openclaw/openclaw/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/openclaw/openclaw/statuses/{sha}", + "languages_url": "https://api.github.com/repos/openclaw/openclaw/languages", + "stargazers_url": "https://api.github.com/repos/openclaw/openclaw/stargazers", + "contributors_url": "https://api.github.com/repos/openclaw/openclaw/contributors", + "subscribers_url": "https://api.github.com/repos/openclaw/openclaw/subscribers", + "subscription_url": "https://api.github.com/repos/openclaw/openclaw/subscription", + "commits_url": "https://api.github.com/repos/openclaw/openclaw/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/openclaw/openclaw/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/openclaw/openclaw/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/openclaw/openclaw/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/openclaw/openclaw/contents/{+path}", + "compare_url": "https://api.github.com/repos/openclaw/openclaw/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/openclaw/openclaw/merges", + "archive_url": "https://api.github.com/repos/openclaw/openclaw/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/openclaw/openclaw/downloads", + "issues_url": "https://api.github.com/repos/openclaw/openclaw/issues{/number}", + "pulls_url": "https://api.github.com/repos/openclaw/openclaw/pulls{/number}", + "milestones_url": "https://api.github.com/repos/openclaw/openclaw/milestones{/number}", + "notifications_url": "https://api.github.com/repos/openclaw/openclaw/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/openclaw/openclaw/labels{/name}", + "releases_url": "https://api.github.com/repos/openclaw/openclaw/releases{/id}", + "deployments_url": "https://api.github.com/repos/openclaw/openclaw/deployments", + "created_at": "2025-11-24T10:16:47Z", + "updated_at": "2026-11-02T16:33:14Z", + "pushed_at": "2026-11-02T16:34:50Z", + "git_url": "git://github.com/openclaw/openclaw.git", + "ssh_url": "git@github.com:openclaw/openclaw.git", + "clone_url": "https://github.com/openclaw/openclaw.git", + "svn_url": "https://github.com/openclaw/openclaw", + "homepage": "https://openclaw.ai", + "size": 12401071, + "stargazers_count": 393723, + "watchers_count": 393723, + "language": "TypeScript", + "has_issues": true, + "has_projects": true, + "has_downloads": false, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 82750, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 7654, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "ai", + "assistant", + "crustacean", + "molty", + "openclaw", + "own-your-data", + "personal" + ], + "visibility": "public", + "forks": 82750, + "open_issues": 7654, + "watchers": 393723, + "default_branch": "main", + "score": 1.0 + }, + { + "id": 83222441, + "node_id": "MDEwOlJlcG9zaXRvcnk4MzIyMjQ0MQ==", + "name": "system-design-primer", + "full_name": "donnemartin/system-design-primer", + "private": false, + "owner": { + "login": "donnemartin", + "id": 5458997, + "node_id": "MDQ6VXNlcjU0NTg5OTc=", + "avatar_url": "https://avatars.githubusercontent.com/u/5458997?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/donnemartin", + "html_url": "https://github.com/donnemartin", + "followers_url": "https://api.github.com/users/donnemartin/followers", + "following_url": "https://api.github.com/users/donnemartin/following{/other_user}", + "gists_url": "https://api.github.com/users/donnemartin/gists{/gist_id}", + "starred_url": "https://api.github.com/users/donnemartin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/donnemartin/subscriptions", + "organizations_url": "https://api.github.com/users/donnemartin/orgs", + "repos_url": "https://api.github.com/users/donnemartin/repos", + "events_url": "https://api.github.com/users/donnemartin/events{/privacy}", + "received_events_url": "https://api.github.com/users/donnemartin/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/donnemartin/system-design-primer", + "description": "Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.", + "fork": false, + "url": "https://api.github.com/repos/donnemartin/system-design-primer", + "forks_url": "https://api.github.com/repos/donnemartin/system-design-primer/forks", + "keys_url": "https://api.github.com/repos/donnemartin/system-design-primer/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/donnemartin/system-design-primer/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/donnemartin/system-design-primer/teams", + "hooks_url": "https://api.github.com/repos/donnemartin/system-design-primer/hooks", + "issue_events_url": "https://api.github.com/repos/donnemartin/system-design-primer/issues/events{/number}", + "events_url": "https://api.github.com/repos/donnemartin/system-design-primer/events", + "assignees_url": "https://api.github.com/repos/donnemartin/system-design-primer/assignees{/user}", + "branches_url": "https://api.github.com/repos/donnemartin/system-design-primer/branches{/branch}", + "tags_url": "https://api.github.com/repos/donnemartin/system-design-primer/tags", + "blobs_url": "https://api.github.com/repos/donnemartin/system-design-primer/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/donnemartin/system-design-primer/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/donnemartin/system-design-primer/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/donnemartin/system-design-primer/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/donnemartin/system-design-primer/statuses/{sha}", + "languages_url": "https://api.github.com/repos/donnemartin/system-design-primer/languages", + "stargazers_url": "https://api.github.com/repos/donnemartin/system-design-primer/stargazers", + "contributors_url": "https://api.github.com/repos/donnemartin/system-design-primer/contributors", + "subscribers_url": "https://api.github.com/repos/donnemartin/system-design-primer/subscribers", + "subscription_url": "https://api.github.com/repos/donnemartin/system-design-primer/subscription", + "commits_url": "https://api.github.com/repos/donnemartin/system-design-primer/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/donnemartin/system-design-primer/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/donnemartin/system-design-primer/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/donnemartin/system-design-primer/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/donnemartin/system-design-primer/contents/{+path}", + "compare_url": "https://api.github.com/repos/donnemartin/system-design-primer/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/donnemartin/system-design-primer/merges", + "archive_url": "https://api.github.com/repos/donnemartin/system-design-primer/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/donnemartin/system-design-primer/downloads", + "issues_url": "https://api.github.com/repos/donnemartin/system-design-primer/issues{/number}", + "pulls_url": "https://api.github.com/repos/donnemartin/system-design-primer/pulls{/number}", + "milestones_url": "https://api.github.com/repos/donnemartin/system-design-primer/milestones{/number}", + "notifications_url": "https://api.github.com/repos/donnemartin/system-design-primer/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/donnemartin/system-design-primer/labels{/name}", + "releases_url": "https://api.github.com/repos/donnemartin/system-design-primer/releases{/id}", + "deployments_url": "https://api.github.com/repos/donnemartin/system-design-primer/deployments", + "created_at": "2017-02-26T16:15:28Z", + "updated_at": "2026-11-02T16:31:23Z", + "pushed_at": "2026-09-15T01:10:09Z", + "git_url": "git://github.com/donnemartin/system-design-primer.git", + "ssh_url": "git@github.com:donnemartin/system-design-primer.git", + "clone_url": "https://github.com/donnemartin/system-design-primer.git", + "svn_url": "https://github.com/donnemartin/system-design-primer", + "homepage": "", + "size": 11273, + "stargazers_count": 376538, + "watchers_count": 376538, + "language": "Python", + "has_issues": true, + "has_projects": true, + "has_downloads": false, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 59128, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 634, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "design", + "design-patterns", + "design-system", + "development", + "interview", + "interview-practice", + "interview-questions", + "programming", + "python", + "system", + "web", + "web-application", + "webapp" + ], + "visibility": "public", + "forks": 59128, + "open_issues": 634, + "watchers": 376538, + "default_branch": "master", + "score": 1.0 + }, + { + "id": 85077558, + "node_id": "MDEwOlJlcG9zaXRvcnk4NTA3NzU1OA==", + "name": "developer-roadmap", + "full_name": "nilbuild/developer-roadmap", + "private": false, + "owner": { + "login": "nilbuild", + "id": 4921183, + "node_id": "MDQ6VXNlcjQ5MjExODM=", + "avatar_url": "https://avatars.githubusercontent.com/u/4921183?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/nilbuild", + "html_url": "https://github.com/nilbuild", + "followers_url": "https://api.github.com/users/nilbuild/followers", + "following_url": "https://api.github.com/users/nilbuild/following{/other_user}", + "gists_url": "https://api.github.com/users/nilbuild/gists{/gist_id}", + "starred_url": "https://api.github.com/users/nilbuild/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/nilbuild/subscriptions", + "organizations_url": "https://api.github.com/users/nilbuild/orgs", + "repos_url": "https://api.github.com/users/nilbuild/repos", + "events_url": "https://api.github.com/users/nilbuild/events{/privacy}", + "received_events_url": "https://api.github.com/users/nilbuild/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/nilbuild/developer-roadmap", + "description": "Interactive roadmaps, guides and other educational content to help developers grow in their careers.", + "fork": false, + "url": "https://api.github.com/repos/nilbuild/developer-roadmap", + "forks_url": "https://api.github.com/repos/nilbuild/developer-roadmap/forks", + "keys_url": "https://api.github.com/repos/nilbuild/developer-roadmap/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/nilbuild/developer-roadmap/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/nilbuild/developer-roadmap/teams", + "hooks_url": "https://api.github.com/repos/nilbuild/developer-roadmap/hooks", + "issue_events_url": "https://api.github.com/repos/nilbuild/developer-roadmap/issues/events{/number}", + "events_url": "https://api.github.com/repos/nilbuild/developer-roadmap/events", + "assignees_url": "https://api.github.com/repos/nilbuild/developer-roadmap/assignees{/user}", + "branches_url": "https://api.github.com/repos/nilbuild/developer-roadmap/branches{/branch}", + "tags_url": "https://api.github.com/repos/nilbuild/developer-roadmap/tags", + "blobs_url": "https://api.github.com/repos/nilbuild/developer-roadmap/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/nilbuild/developer-roadmap/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/nilbuild/developer-roadmap/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/nilbuild/developer-roadmap/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/nilbuild/developer-roadmap/statuses/{sha}", + "languages_url": "https://api.github.com/repos/nilbuild/developer-roadmap/languages", + "stargazers_url": "https://api.github.com/repos/nilbuild/developer-roadmap/stargazers", + "contributors_url": "https://api.github.com/repos/nilbuild/developer-roadmap/contributors", + "subscribers_url": "https://api.github.com/repos/nilbuild/developer-roadmap/subscribers", + "subscription_url": "https://api.github.com/repos/nilbuild/developer-roadmap/subscription", + "commits_url": "https://api.github.com/repos/nilbuild/developer-roadmap/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/nilbuild/developer-roadmap/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/nilbuild/developer-roadmap/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/nilbuild/developer-roadmap/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/nilbuild/developer-roadmap/contents/{+path}", + "compare_url": "https://api.github.com/repos/nilbuild/developer-roadmap/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/nilbuild/developer-roadmap/merges", + "archive_url": "https://api.github.com/repos/nilbuild/developer-roadmap/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/nilbuild/developer-roadmap/downloads", + "issues_url": "https://api.github.com/repos/nilbuild/developer-roadmap/issues{/number}", + "pulls_url": "https://api.github.com/repos/nilbuild/developer-roadmap/pulls{/number}", + "milestones_url": "https://api.github.com/repos/nilbuild/developer-roadmap/milestones{/number}", + "notifications_url": "https://api.github.com/repos/nilbuild/developer-roadmap/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/nilbuild/developer-roadmap/labels{/name}", + "releases_url": "https://api.github.com/repos/nilbuild/developer-roadmap/releases{/id}", + "deployments_url": "https://api.github.com/repos/nilbuild/developer-roadmap/deployments", + "created_at": "2017-03-15T13:45:52Z", + "updated_at": "2026-11-02T16:34:10Z", + "pushed_at": "2026-10-31T16:08:41Z", + "git_url": "git://github.com/nilbuild/developer-roadmap.git", + "ssh_url": "git@github.com:nilbuild/developer-roadmap.git", + "clone_url": "https://github.com/nilbuild/developer-roadmap.git", + "svn_url": "https://github.com/nilbuild/developer-roadmap", + "homepage": "https://roadmap.sh", + "size": 364466, + "stargazers_count": 371069, + "watchers_count": 371069, + "language": "TypeScript", + "has_issues": true, + "has_projects": false, + "has_downloads": false, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 45183, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 10, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "angular-roadmap", + "backend-roadmap", + "blockchain-roadmap", + "computer-science", + "dba-roadmap", + "developer-roadmap", + "devops-roadmap", + "frontend-roadmap", + "go-roadmap", + "java-roadmap", + "javascript-roadmap", + "nodejs-roadmap", + "python-roadmap", + "qa-roadmap", + "react-roadmap", + "roadmap", + "software-architect-roadmap", + "vue-roadmap" + ], + "visibility": "public", + "forks": 45183, + "open_issues": 10, + "watchers": 371069, + "default_branch": "master", + "score": 1.0 + }, + { + "id": 60493101, + "node_id": "MDEwOlJlcG9zaXRvcnk2MDQ5MzEwMQ==", + "name": "coding-interview-university", + "full_name": "jwasham/coding-interview-university", + "private": false, + "owner": { + "login": "jwasham", + "id": 3771963, + "node_id": "MDQ6VXNlcjM3NzE5NjM=", + "avatar_url": "https://avatars.githubusercontent.com/u/3771963?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/jwasham", + "html_url": "https://github.com/jwasham", + "followers_url": "https://api.github.com/users/jwasham/followers", + "following_url": "https://api.github.com/users/jwasham/following{/other_user}", + "gists_url": "https://api.github.com/users/jwasham/gists{/gist_id}", + "starred_url": "https://api.github.com/users/jwasham/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jwasham/subscriptions", + "organizations_url": "https://api.github.com/users/jwasham/orgs", + "repos_url": "https://api.github.com/users/jwasham/repos", + "events_url": "https://api.github.com/users/jwasham/events{/privacy}", + "received_events_url": "https://api.github.com/users/jwasham/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/jwasham/coding-interview-university", + "description": "A complete computer science study plan to become a software engineer.", + "fork": false, + "url": "https://api.github.com/repos/jwasham/coding-interview-university", + "forks_url": "https://api.github.com/repos/jwasham/coding-interview-university/forks", + "keys_url": "https://api.github.com/repos/jwasham/coding-interview-university/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/jwasham/coding-interview-university/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/jwasham/coding-interview-university/teams", + "hooks_url": "https://api.github.com/repos/jwasham/coding-interview-university/hooks", + "issue_events_url": "https://api.github.com/repos/jwasham/coding-interview-university/issues/events{/number}", + "events_url": "https://api.github.com/repos/jwasham/coding-interview-university/events", + "assignees_url": "https://api.github.com/repos/jwasham/coding-interview-university/assignees{/user}", + "branches_url": "https://api.github.com/repos/jwasham/coding-interview-university/branches{/branch}", + "tags_url": "https://api.github.com/repos/jwasham/coding-interview-university/tags", + "blobs_url": "https://api.github.com/repos/jwasham/coding-interview-university/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/jwasham/coding-interview-university/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/jwasham/coding-interview-university/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/jwasham/coding-interview-university/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/jwasham/coding-interview-university/statuses/{sha}", + "languages_url": "https://api.github.com/repos/jwasham/coding-interview-university/languages", + "stargazers_url": "https://api.github.com/repos/jwasham/coding-interview-university/stargazers", + "contributors_url": "https://api.github.com/repos/jwasham/coding-interview-university/contributors", + "subscribers_url": "https://api.github.com/repos/jwasham/coding-interview-university/subscribers", + "subscription_url": "https://api.github.com/repos/jwasham/coding-interview-university/subscription", + "commits_url": "https://api.github.com/repos/jwasham/coding-interview-university/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/jwasham/coding-interview-university/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/jwasham/coding-interview-university/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/jwasham/coding-interview-university/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/jwasham/coding-interview-university/contents/{+path}", + "compare_url": "https://api.github.com/repos/jwasham/coding-interview-university/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/jwasham/coding-interview-university/merges", + "archive_url": "https://api.github.com/repos/jwasham/coding-interview-university/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/jwasham/coding-interview-university/downloads", + "issues_url": "https://api.github.com/repos/jwasham/coding-interview-university/issues{/number}", + "pulls_url": "https://api.github.com/repos/jwasham/coding-interview-university/pulls{/number}", + "milestones_url": "https://api.github.com/repos/jwasham/coding-interview-university/milestones{/number}", + "notifications_url": "https://api.github.com/repos/jwasham/coding-interview-university/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/jwasham/coding-interview-university/labels{/name}", + "releases_url": "https://api.github.com/repos/jwasham/coding-interview-university/releases{/id}", + "deployments_url": "https://api.github.com/repos/jwasham/coding-interview-university/deployments", + "created_at": "2016-06-06T02:34:12Z", + "updated_at": "2026-11-02T16:33:11Z", + "pushed_at": "2025-08-28T14:42:47Z", + "git_url": "git://github.com/jwasham/coding-interview-university.git", + "ssh_url": "git@github.com:jwasham/coding-interview-university.git", + "clone_url": "https://github.com/jwasham/coding-interview-university.git", + "svn_url": "https://github.com/jwasham/coding-interview-university", + "homepage": "", + "size": 22700, + "stargazers_count": 363702, + "watchers_count": 363702, + "language": null, + "has_issues": true, + "has_projects": false, + "has_downloads": false, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 85172, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 132, + "license": { + "key": "cc-by-sa-4.0", + "name": "Creative Commons Attribution Share Alike 4.0 International", + "spdx_id": "CC-BY-SA-4.0", + "url": "https://api.github.com/licenses/cc-by-sa-4.0", + "node_id": "MDc6TGljZW5zZTI2" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "algorithm", + "algorithms", + "coding-interview", + "coding-interviews", + "computer-science", + "data-structures", + "interview", + "interview-prep", + "interview-preparation", + "programming-interviews", + "software-engineering", + "study-plan" + ], + "visibility": "public", + "forks": 85172, + "open_issues": 132, + "watchers": 363702, + "default_branch": "main", + "score": 1.0 + }, + { + "id": 36633370, + "node_id": "MDEwOlJlcG9zaXRvcnkzNjYzMzM3MA==", + "name": "awesome-selfhosted", + "full_name": "awesome-selfhosted/awesome-selfhosted", + "private": false, + "owner": { + "login": "awesome-selfhosted", + "id": 24270415, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjI0MjcwNDE1", + "avatar_url": "https://avatars.githubusercontent.com/u/24270415?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/awesome-selfhosted", + "html_url": "https://github.com/awesome-selfhosted", + "followers_url": "https://api.github.com/users/awesome-selfhosted/followers", + "following_url": "https://api.github.com/users/awesome-selfhosted/following{/other_user}", + "gists_url": "https://api.github.com/users/awesome-selfhosted/gists{/gist_id}", + "starred_url": "https://api.github.com/users/awesome-selfhosted/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/awesome-selfhosted/subscriptions", + "organizations_url": "https://api.github.com/users/awesome-selfhosted/orgs", + "repos_url": "https://api.github.com/users/awesome-selfhosted/repos", + "events_url": "https://api.github.com/users/awesome-selfhosted/events{/privacy}", + "received_events_url": "https://api.github.com/users/awesome-selfhosted/received_events", + "type": "Organization", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/awesome-selfhosted/awesome-selfhosted", + "description": "A list of Free Software network services and web applications which can be hosted on your own servers", + "fork": false, + "url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted", + "forks_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/forks", + "keys_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/teams", + "hooks_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/hooks", + "issue_events_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/issues/events{/number}", + "events_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/events", + "assignees_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/assignees{/user}", + "branches_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/branches{/branch}", + "tags_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/tags", + "blobs_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/statuses/{sha}", + "languages_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/languages", + "stargazers_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/stargazers", + "contributors_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/contributors", + "subscribers_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/subscribers", + "subscription_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/subscription", + "commits_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/contents/{+path}", + "compare_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/merges", + "archive_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/downloads", + "issues_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/issues{/number}", + "pulls_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/pulls{/number}", + "milestones_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/milestones{/number}", + "notifications_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/labels{/name}", + "releases_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/releases{/id}", + "deployments_url": "https://api.github.com/repos/awesome-selfhosted/awesome-selfhosted/deployments", + "created_at": "2015-06-01T02:33:17Z", + "updated_at": "2026-11-02T16:35:28Z", + "pushed_at": "2026-11-02T10:34:16Z", + "git_url": "git://github.com/awesome-selfhosted/awesome-selfhosted.git", + "ssh_url": "git@github.com:awesome-selfhosted/awesome-selfhosted.git", + "clone_url": "https://github.com/awesome-selfhosted/awesome-selfhosted.git", + "svn_url": "https://github.com/awesome-selfhosted/awesome-selfhosted", + "homepage": "https://awesome-selfhosted.net/", + "size": 17409, + "stargazers_count": 333028, + "watchers_count": 333028, + "language": null, + "has_issues": false, + "has_projects": false, + "has_downloads": false, + "has_wiki": false, + "has_pages": false, + "has_discussions": false, + "forks_count": 15691, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": false, + "pull_request_creation_policy": "collaborators_only", + "topics": [ + "awesome", + "awesome-list", + "cloud", + "free-software", + "hosting", + "privacy", + "self-hosted", + "selfhosted" + ], + "visibility": "public", + "forks": 15691, + "open_issues": 0, + "watchers": 333028, + "default_branch": "master", + "score": 1.0 + }, + { + "id": 21289110, + "node_id": "MDEwOlJlcG9zaXRvcnkyMTI4OTExMA==", + "name": "awesome-python", + "full_name": "vinta/awesome-python", + "private": false, + "owner": { + "login": "vinta", + "id": 652070, + "node_id": "MDQ6VXNlcjY1MjA3MA==", + "avatar_url": "https://avatars.githubusercontent.com/u/652070?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/vinta", + "html_url": "https://github.com/vinta", + "followers_url": "https://api.github.com/users/vinta/followers", + "following_url": "https://api.github.com/users/vinta/following{/other_user}", + "gists_url": "https://api.github.com/users/vinta/gists{/gist_id}", + "starred_url": "https://api.github.com/users/vinta/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/vinta/subscriptions", + "organizations_url": "https://api.github.com/users/vinta/orgs", + "repos_url": "https://api.github.com/users/vinta/repos", + "events_url": "https://api.github.com/users/vinta/events{/privacy}", + "received_events_url": "https://api.github.com/users/vinta/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/vinta/awesome-python", + "description": "The definitive list that answers \"I want to do X in Python, which tool should I use?\"", + "fork": false, + "url": "https://api.github.com/repos/vinta/awesome-python", + "forks_url": "https://api.github.com/repos/vinta/awesome-python/forks", + "keys_url": "https://api.github.com/repos/vinta/awesome-python/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/vinta/awesome-python/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/vinta/awesome-python/teams", + "hooks_url": "https://api.github.com/repos/vinta/awesome-python/hooks", + "issue_events_url": "https://api.github.com/repos/vinta/awesome-python/issues/events{/number}", + "events_url": "https://api.github.com/repos/vinta/awesome-python/events", + "assignees_url": "https://api.github.com/repos/vinta/awesome-python/assignees{/user}", + "branches_url": "https://api.github.com/repos/vinta/awesome-python/branches{/branch}", + "tags_url": "https://api.github.com/repos/vinta/awesome-python/tags", + "blobs_url": "https://api.github.com/repos/vinta/awesome-python/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/vinta/awesome-python/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/vinta/awesome-python/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/vinta/awesome-python/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/vinta/awesome-python/statuses/{sha}", + "languages_url": "https://api.github.com/repos/vinta/awesome-python/languages", + "stargazers_url": "https://api.github.com/repos/vinta/awesome-python/stargazers", + "contributors_url": "https://api.github.com/repos/vinta/awesome-python/contributors", + "subscribers_url": "https://api.github.com/repos/vinta/awesome-python/subscribers", + "subscription_url": "https://api.github.com/repos/vinta/awesome-python/subscription", + "commits_url": "https://api.github.com/repos/vinta/awesome-python/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/vinta/awesome-python/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/vinta/awesome-python/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/vinta/awesome-python/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/vinta/awesome-python/contents/{+path}", + "compare_url": "https://api.github.com/repos/vinta/awesome-python/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/vinta/awesome-python/merges", + "archive_url": "https://api.github.com/repos/vinta/awesome-python/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/vinta/awesome-python/downloads", + "issues_url": "https://api.github.com/repos/vinta/awesome-python/issues{/number}", + "pulls_url": "https://api.github.com/repos/vinta/awesome-python/pulls{/number}", + "milestones_url": "https://api.github.com/repos/vinta/awesome-python/milestones{/number}", + "notifications_url": "https://api.github.com/repos/vinta/awesome-python/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/vinta/awesome-python/labels{/name}", + "releases_url": "https://api.github.com/repos/vinta/awesome-python/releases{/id}", + "deployments_url": "https://api.github.com/repos/vinta/awesome-python/deployments", + "created_at": "2014-06-27T21:00:06Z", + "updated_at": "2026-11-02T16:35:29Z", + "pushed_at": "2026-11-02T04:36:52Z", + "git_url": "git://github.com/vinta/awesome-python.git", + "ssh_url": "git@github.com:vinta/awesome-python.git", + "clone_url": "https://github.com/vinta/awesome-python.git", + "svn_url": "https://github.com/vinta/awesome-python", + "homepage": "https://awesome-python.com/", + "size": 6926, + "stargazers_count": 331957, + "watchers_count": 331957, + "language": "Python", + "has_issues": false, + "has_projects": false, + "has_downloads": false, + "has_wiki": false, + "has_pages": true, + "has_discussions": false, + "forks_count": 29053, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 24, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "awesome", + "awesome-list", + "python", + "python-frameworks", + "python-libraries", + "python-tools" + ], + "visibility": "public", + "forks": 29053, + "open_issues": 24, + "watchers": 331957, + "default_branch": "master", + "score": 1.0 + }, + { + "id": 1073224795, + "node_id": "R_kgDOP_gcWw", + "name": "superpowers", + "full_name": "obra/superpowers", + "private": false, + "owner": { + "login": "obra", + "id": 45416, + "node_id": "MDQ6VXNlcjQ1NDE2", + "avatar_url": "https://avatars.githubusercontent.com/u/45416?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/obra", + "html_url": "https://github.com/obra", + "followers_url": "https://api.github.com/users/obra/followers", + "following_url": "https://api.github.com/users/obra/following{/other_user}", + "gists_url": "https://api.github.com/users/obra/gists{/gist_id}", + "starred_url": "https://api.github.com/users/obra/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/obra/subscriptions", + "organizations_url": "https://api.github.com/users/obra/orgs", + "repos_url": "https://api.github.com/users/obra/repos", + "events_url": "https://api.github.com/users/obra/events{/privacy}", + "received_events_url": "https://api.github.com/users/obra/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/obra/superpowers", + "description": "An agentic skills framework & software development methodology that works.", + "fork": false, + "url": "https://api.github.com/repos/obra/superpowers", + "forks_url": "https://api.github.com/repos/obra/superpowers/forks", + "keys_url": "https://api.github.com/repos/obra/superpowers/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/obra/superpowers/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/obra/superpowers/teams", + "hooks_url": "https://api.github.com/repos/obra/superpowers/hooks", + "issue_events_url": "https://api.github.com/repos/obra/superpowers/issues/events{/number}", + "events_url": "https://api.github.com/repos/obra/superpowers/events", + "assignees_url": "https://api.github.com/repos/obra/superpowers/assignees{/user}", + "branches_url": "https://api.github.com/repos/obra/superpowers/branches{/branch}", + "tags_url": "https://api.github.com/repos/obra/superpowers/tags", + "blobs_url": "https://api.github.com/repos/obra/superpowers/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/obra/superpowers/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/obra/superpowers/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/obra/superpowers/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/obra/superpowers/statuses/{sha}", + "languages_url": "https://api.github.com/repos/obra/superpowers/languages", + "stargazers_url": "https://api.github.com/repos/obra/superpowers/stargazers", + "contributors_url": "https://api.github.com/repos/obra/superpowers/contributors", + "subscribers_url": "https://api.github.com/repos/obra/superpowers/subscribers", + "subscription_url": "https://api.github.com/repos/obra/superpowers/subscription", + "commits_url": "https://api.github.com/repos/obra/superpowers/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/obra/superpowers/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/obra/superpowers/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/obra/superpowers/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/obra/superpowers/contents/{+path}", + "compare_url": "https://api.github.com/repos/obra/superpowers/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/obra/superpowers/merges", + "archive_url": "https://api.github.com/repos/obra/superpowers/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/obra/superpowers/downloads", + "issues_url": "https://api.github.com/repos/obra/superpowers/issues{/number}", + "pulls_url": "https://api.github.com/repos/obra/superpowers/pulls{/number}", + "milestones_url": "https://api.github.com/repos/obra/superpowers/milestones{/number}", + "notifications_url": "https://api.github.com/repos/obra/superpowers/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/obra/superpowers/labels{/name}", + "releases_url": "https://api.github.com/repos/obra/superpowers/releases{/id}", + "deployments_url": "https://api.github.com/repos/obra/superpowers/deployments", + "created_at": "2025-10-09T19:45:18Z", + "updated_at": "2026-11-02T16:33:39Z", + "pushed_at": "2026-10-29T23:35:34Z", + "git_url": "git://github.com/obra/superpowers.git", + "ssh_url": "git@github.com:obra/superpowers.git", + "clone_url": "https://github.com/obra/superpowers.git", + "svn_url": "https://github.com/obra/superpowers", + "homepage": "", + "size": 7969, + "stargazers_count": 311058, + "watchers_count": 311058, + "language": "Shell", + "has_issues": true, + "has_projects": true, + "has_downloads": false, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 27680, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 377, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "ai", + "brainstorming", + "coding", + "obra", + "sdlc", + "skills", + "subagent-driven-development", + "superpowers" + ], + "visibility": "public", + "forks": 27680, + "open_issues": 377, + "watchers": 311058, + "default_branch": "main", + "score": 1.0 + }, + { + "id": 1148788086, + "node_id": "R_kgDORHkddg", + "name": "skills", + "full_name": "mattpocock/skills", + "private": false, + "owner": { + "login": "mattpocock", + "id": 28293365, + "node_id": "MDQ6VXNlcjI4MjkzMzY1", + "avatar_url": "https://avatars.githubusercontent.com/u/28293365?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/mattpocock", + "html_url": "https://github.com/mattpocock", + "followers_url": "https://api.github.com/users/mattpocock/followers", + "following_url": "https://api.github.com/users/mattpocock/following{/other_user}", + "gists_url": "https://api.github.com/users/mattpocock/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mattpocock/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mattpocock/subscriptions", + "organizations_url": "https://api.github.com/users/mattpocock/orgs", + "repos_url": "https://api.github.com/users/mattpocock/repos", + "events_url": "https://api.github.com/users/mattpocock/events{/privacy}", + "received_events_url": "https://api.github.com/users/mattpocock/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/mattpocock/skills", + "description": "Skills for Real Engineers. Straight from my .agents directory.", + "fork": false, + "url": "https://api.github.com/repos/mattpocock/skills", + "forks_url": "https://api.github.com/repos/mattpocock/skills/forks", + "keys_url": "https://api.github.com/repos/mattpocock/skills/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mattpocock/skills/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mattpocock/skills/teams", + "hooks_url": "https://api.github.com/repos/mattpocock/skills/hooks", + "issue_events_url": "https://api.github.com/repos/mattpocock/skills/issues/events{/number}", + "events_url": "https://api.github.com/repos/mattpocock/skills/events", + "assignees_url": "https://api.github.com/repos/mattpocock/skills/assignees{/user}", + "branches_url": "https://api.github.com/repos/mattpocock/skills/branches{/branch}", + "tags_url": "https://api.github.com/repos/mattpocock/skills/tags", + "blobs_url": "https://api.github.com/repos/mattpocock/skills/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mattpocock/skills/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mattpocock/skills/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mattpocock/skills/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mattpocock/skills/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mattpocock/skills/languages", + "stargazers_url": "https://api.github.com/repos/mattpocock/skills/stargazers", + "contributors_url": "https://api.github.com/repos/mattpocock/skills/contributors", + "subscribers_url": "https://api.github.com/repos/mattpocock/skills/subscribers", + "subscription_url": "https://api.github.com/repos/mattpocock/skills/subscription", + "commits_url": "https://api.github.com/repos/mattpocock/skills/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mattpocock/skills/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mattpocock/skills/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mattpocock/skills/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mattpocock/skills/contents/{+path}", + "compare_url": "https://api.github.com/repos/mattpocock/skills/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mattpocock/skills/merges", + "archive_url": "https://api.github.com/repos/mattpocock/skills/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mattpocock/skills/downloads", + "issues_url": "https://api.github.com/repos/mattpocock/skills/issues{/number}", + "pulls_url": "https://api.github.com/repos/mattpocock/skills/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mattpocock/skills/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mattpocock/skills/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mattpocock/skills/labels{/name}", + "releases_url": "https://api.github.com/repos/mattpocock/skills/releases{/id}", + "deployments_url": "https://api.github.com/repos/mattpocock/skills/deployments", + "created_at": "2026-02-03T11:15:53Z", + "updated_at": "2026-11-02T16:34:45Z", + "pushed_at": "2026-11-01T11:42:33Z", + "git_url": "git://github.com/mattpocock/skills.git", + "ssh_url": "git@github.com:mattpocock/skills.git", + "clone_url": "https://github.com/mattpocock/skills.git", + "svn_url": "https://github.com/mattpocock/skills", + "homepage": "https://aihero.dev/skills", + "size": 2248, + "stargazers_count": 309944, + "watchers_count": 309944, + "language": "Shell", + "has_issues": true, + "has_projects": true, + "has_downloads": false, + "has_wiki": false, + "has_pages": false, + "has_discussions": true, + "forks_count": 26076, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 203, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "collaborators_only", + "topics": [], + "visibility": "public", + "forks": 26076, + "open_issues": 203, + "watchers": 309944, + "default_branch": "main", + "score": 1.0 + }, + { + "id": 1136590548, + "node_id": "R_kgDOQ77-1A", + "name": "ECC", + "full_name": "affaan-m/ECC", + "private": false, + "owner": { + "login": "affaan-m", + "id": 124439313, + "node_id": "U_kgDOB2rLEQ", + "avatar_url": "https://avatars.githubusercontent.com/u/124439313?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/affaan-m", + "html_url": "https://github.com/affaan-m", + "followers_url": "https://api.github.com/users/affaan-m/followers", + "following_url": "https://api.github.com/users/affaan-m/following{/other_user}", + "gists_url": "https://api.github.com/users/affaan-m/gists{/gist_id}", + "starred_url": "https://api.github.com/users/affaan-m/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/affaan-m/subscriptions", + "organizations_url": "https://api.github.com/users/affaan-m/orgs", + "repos_url": "https://api.github.com/users/affaan-m/repos", + "events_url": "https://api.github.com/users/affaan-m/events{/privacy}", + "received_events_url": "https://api.github.com/users/affaan-m/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false + }, + "html_url": "https://github.com/affaan-m/ECC", + "description": "The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.", + "fork": false, + "url": "https://api.github.com/repos/affaan-m/ECC", + "forks_url": "https://api.github.com/repos/affaan-m/ECC/forks", + "keys_url": "https://api.github.com/repos/affaan-m/ECC/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/affaan-m/ECC/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/affaan-m/ECC/teams", + "hooks_url": "https://api.github.com/repos/affaan-m/ECC/hooks", + "issue_events_url": "https://api.github.com/repos/affaan-m/ECC/issues/events{/number}", + "events_url": "https://api.github.com/repos/affaan-m/ECC/events", + "assignees_url": "https://api.github.com/repos/affaan-m/ECC/assignees{/user}", + "branches_url": "https://api.github.com/repos/affaan-m/ECC/branches{/branch}", + "tags_url": "https://api.github.com/repos/affaan-m/ECC/tags", + "blobs_url": "https://api.github.com/repos/affaan-m/ECC/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/affaan-m/ECC/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/affaan-m/ECC/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/affaan-m/ECC/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/affaan-m/ECC/statuses/{sha}", + "languages_url": "https://api.github.com/repos/affaan-m/ECC/languages", + "stargazers_url": "https://api.github.com/repos/affaan-m/ECC/stargazers", + "contributors_url": "https://api.github.com/repos/affaan-m/ECC/contributors", + "subscribers_url": "https://api.github.com/repos/affaan-m/ECC/subscribers", + "subscription_url": "https://api.github.com/repos/affaan-m/ECC/subscription", + "commits_url": "https://api.github.com/repos/affaan-m/ECC/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/affaan-m/ECC/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/affaan-m/ECC/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/affaan-m/ECC/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/affaan-m/ECC/contents/{+path}", + "compare_url": "https://api.github.com/repos/affaan-m/ECC/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/affaan-m/ECC/merges", + "archive_url": "https://api.github.com/repos/affaan-m/ECC/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/affaan-m/ECC/downloads", + "issues_url": "https://api.github.com/repos/affaan-m/ECC/issues{/number}", + "pulls_url": "https://api.github.com/repos/affaan-m/ECC/pulls{/number}", + "milestones_url": "https://api.github.com/repos/affaan-m/ECC/milestones{/number}", + "notifications_url": "https://api.github.com/repos/affaan-m/ECC/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/affaan-m/ECC/labels{/name}", + "releases_url": "https://api.github.com/repos/affaan-m/ECC/releases{/id}", + "deployments_url": "https://api.github.com/repos/affaan-m/ECC/deployments", + "created_at": "2026-01-18T00:51:51Z", + "updated_at": "2026-11-02T16:35:22Z", + "pushed_at": "2026-11-02T04:56:08Z", + "git_url": "git://github.com/affaan-m/ECC.git", + "ssh_url": "git@github.com:affaan-m/ECC.git", + "clone_url": "https://github.com/affaan-m/ECC.git", + "svn_url": "https://github.com/affaan-m/ECC", + "homepage": "https://ecc.tools", + "size": 60828, + "stargazers_count": 295351, + "watchers_count": 295351, + "language": "JavaScript", + "has_issues": true, + "has_projects": true, + "has_downloads": false, + "has_wiki": true, + "has_pages": false, + "has_discussions": true, + "forks_count": 43712, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 202, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "has_pull_requests": true, + "pull_request_creation_policy": "all", + "topics": [ + "ai-agents", + "anthropic", + "claude", + "claude-code", + "developer-tools", + "llm", + "mcp", + "productivity" + ], + "visibility": "public", + "forks": 43712, + "open_issues": 202, + "watchers": 295351, + "default_branch": "main", + "score": 1.0 + } + ] +} \ No newline at end of file diff --git a/wizard-work/ledger/github-repo-census-2026-11-02.tsv b/wizard-work/ledger/github-repo-census-2026-11-02.tsv new file mode 100644 index 0000000..b28c607 --- /dev/null +++ b/wizard-work/ledger/github-repo-census-2026-11-02.tsv @@ -0,0 +1,16 @@ +rank repo owner description stars forks language url +1 build-your-own-x codecrafters-io Master programming by recreating your favorite technologies from scratch. 558771 52283 Markdown https://github.com/codecrafters-io/build-your-own-x +2 awesome sindresorhus 😎 Awesome lists about all kinds of interesting topics [NOTE: Pull requests are temporarily disabled until I have a chance to catch up with the existing ones] 529455 37998 https://github.com/sindresorhus/awesome +3 public-apis public-apis A collective list of free APIs 495400 55284 Python https://github.com/public-apis/public-apis +4 freeCodeCamp freeCodeCamp freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free. 458437 48188 TypeScript https://github.com/freeCodeCamp/freeCodeCamp +5 rea morluto Reverse engineer anything with agents, from app behavior down to native binaries. 421817 105236 TypeScript https://github.com/morluto/rea +6 free-programming-books EbookFoundation :books: Freely available programming books 400738 67064 Python https://github.com/EbookFoundation/free-programming-books +7 openclaw openclaw The AI that really does things. Any OS. Any Platform. The lobster way. 🦞 393723 82750 TypeScript https://github.com/openclaw/openclaw +8 system-design-primer donnemartin Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. 376538 59128 Python https://github.com/donnemartin/system-design-primer +9 developer-roadmap nilbuild Interactive roadmaps, guides and other educational content to help developers grow in their careers. 371069 45183 TypeScript https://github.com/nilbuild/developer-roadmap +10 coding-interview-university jwasham A complete computer science study plan to become a software engineer. 363702 85172 https://github.com/jwasham/coding-interview-university +11 awesome-selfhosted awesome-selfhosted A list of Free Software network services and web applications which can be hosted on your own servers 333028 15691 https://github.com/awesome-selfhosted/awesome-selfhosted +12 awesome-python vinta "The definitive list that answers ""I want to do X in Python, which tool should I use?""" 331957 29053 Python https://github.com/vinta/awesome-python +13 superpowers obra An agentic skills framework & software development methodology that works. 311058 27680 Shell https://github.com/obra/superpowers +14 skills mattpocock Skills for Real Engineers. Straight from my .agents directory. 309944 26076 Shell https://github.com/mattpocock/skills +15 ECC affaan-m The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond. 295351 43712 JavaScript https://github.com/affaan-m/ECC diff --git a/wizard-work/ledger/verify_github_repo_census.py b/wizard-work/ledger/verify_github_repo_census.py new file mode 100644 index 0000000..49a585d --- /dev/null +++ b/wizard-work/ledger/verify_github_repo_census.py @@ -0,0 +1,94 @@ +#!/usr/bin/env python3 +"""verify_github_repo_census.py + +Verifier for the github-repo-census-2026-11-02 artifact (extract lane). + +Independent re-derivation: rebuilds the expected TSV from the committed +raw.json (no import of the extractor), then compares field-for-field with +the committed TSV and runs structural checks. Exit code IS the verdict: +0 iff everything matches, 1 on any mismatch. +""" +import csv +import json +import sys +from pathlib import Path + +HERE = Path(__file__).resolve().parent +RAW = HERE / "github-repo-census-2026-11-02.raw.json" +TSV = HERE / "github-repo-census-2026-11-02.tsv" +FIELDS = ["rank", "repo", "owner", "description", "stars", "forks", "language", "url"] + + +def derive(): + api = json.loads(RAW.read_text(encoding="utf-8")) + items = sorted(api.get("items", []), + key=lambda i: i.get("stargazers_count", 0), reverse=True)[:15] + out = [] + for i, it in enumerate(items, 1): + out.append({ + "rank": i, + "repo": it.get("name", ""), + "owner": (it.get("owner") or {}).get("login", ""), + "description": (it.get("description") or "").strip(), + "stars": it.get("stargazers_count", 0), + "forks": it.get("forks_count", 0), + "language": (it.get("language") or "").strip(), + "url": it.get("html_url", ""), + }) + return out + + +def read_committed(): + with TSV.open(encoding="utf-8", newline="") as f: + return list(csv.DictReader(f, delimiter="\t")) + + +def main(): + try: + expected = derive() + except Exception as exc: # noqa: BLE001 + print(f"[fail] could not re-derive from raw.json: {exc}") + return 1 + try: + committed = read_committed() + except Exception as exc: # noqa: BLE001 + print(f"[fail] could not read committed TSV: {exc}") + return 1 + + problems = [] + + # Structural checks. + if len(committed) != len(expected): + problems.append(f"row count: committed={len(committed)} expected={len(expected)}") + stars = [int(r.get("stars", -1)) for r in committed] + if stars != sorted(stars, reverse=True): + problems.append("stars not sorted non-increasing") + if [r.get("rank") for r in committed] != [str(i) for i in range(1, len(committed) + 1)]: + problems.append("rank column not 1..N") + if len({r.get("repo") for r in committed}) != len(committed): + problems.append("duplicate repo names") + for r in committed: + if not r.get("url", "").startswith("https://github.com/"): + problems.append(f"bad url: {r.get('url')}") + break + + # Field-for-field comparison of the full table. + if len(committed) == len(expected): + for i, (c, e) in enumerate(zip(committed, expected), 1): + for field in FIELDS: + if c.get(field) != str(e[field]): + problems.append(f"row {i} field {field}: committed={c.get(field)!r} " + f"expected={e[field]!r}") + + if problems: + print("[fail] census verification mismatches:") + for p in problems: + print(" -", p) + return 1 + print(f"[ok] census verified: {len(committed)} rows, sorted desc by stars, " + f"no duplicate repos, table equals independent re-derivation from raw.json") + return 0 + + +if __name__ == "__main__": + sys.exit(main())