type: rule
status: active
timestamp: 2026-06-26
tags: [feedback, agent-preferences, forks, github, housekeeping]
status: active
timestamp: 2026-06-26
tags: [feedback, agent-preferences, forks, github, housekeeping]
Spare forks with downstream forkers
Bulk-deleting forks: spare forks others forked. Downstream fork = real user chose your fork as upstream
When deleting forks in bulk (cleanup, scope-cut, profile housekeeping), the spare-list is keyed on downstream forks, not stars:
- stars — cheap signal. Someone clicked once. Delete is fine.
- downstream forks — someone forked YOUR fork. They picked your fork specifically as their upstream. Deleting breaks their parent link.
Applied 2026-06-26 during the chirag127 fork cleanup. 48 forks audited ? 43 deleted, 5 spared because they had =1 downstream forker. Spared list: Terabox-DL (10 downstream), Book-For-Programmers (2), SOCKS-Proxy-Checker, goggles-quickstart, human-eval.
How to check before bulk-deleting:
gh repo list <user> --fork --limit 500 --json name,stargazerCount,forkCount \
--jq '[.[] | select(.forkCount > 0)] | .[].name'
The output is your spare-list. Everything else is fair game.
Why not also spare by stars:
- Stars cost nothing — they accumulate from passive browsing.
- A 5-star fork with 0 downstream forks: nobody is depending on it.
- A 0-star fork with 1 downstream fork: somebody IS depending on it.
The asymmetry is the whole point. Downstream forks are commitments, not approvals.
Related:
fork-features-also-as-upstream-issues— for forks we DO keep, file upstream issues for our patches.fs-own-frk-split—repos/frk/<slug>/is where forks we ARE keeping live.knowledge-deletion-not-supersession— same delete-don’t-mark-as-stale instinct.