Remove dead links and repoint relocated ones - #548
Merged
wilsonfreitas merged 2 commits intoAug 14, 2026
Conversation
Every URL in the README was checked twice with independent instruments and with live/dead controls on each pass. Entries are removed only when every link on the line returns 404/410 or the domain is parked; when a live replacement exists on the same line, or the vendor/host designates one, the link is repointed instead.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Remove dead links and repoint relocated ones in README
Branch:
fix/remove-dead-links· 1 file changed, 8 insertions, 19 deletionsWhat this does
Three rules, applied mechanically. Nothing here is a judgement about a project's age,
activity or archive status — only about URLs that no longer resolve.
or vendor designates one.
Polymarket Scanner APIis a 404 too, but it is deliberately left alone: #515 alreadyremoves it and is still open.
How it was checked
All 693 markdown URLs in
README.md(674 distinct, on 631 entry lines) were resolved twice,with two independent instruments:
repository(owner:, name:), then RESTGET /repos/{owner}/{repo}, then an anonymousbrowser-UA
GET. A repository is only reported dead when all three say 404.python-requests(OpenSSL) andcurl(Schannel),browser User-Agent, redirects followed, three retries, in separate passes.
Every pass carried controls and was discarded unless all of them behaved:
pymc-devs/pymc3pymc-devs/pymcsourceforge.net(root)cf-mitigated: challengeThe last two controls are the point of the exercise. 6 of the 24 raw non-2xx signals were
not dead links and are untouched here:
statsmodels.sourceforge.net,xlloop.sourceforge.net,papers.ssrn.com/...3335536—403 with
cf-mitigated: challengeand aJust a moment...body, i.e. bot mitigation. Thesame response comes back from
sourceforge.netitself, which is obviously alive.edgarevents.com— HTTP 530, Cloudflare error 1033 (tunnel down). An origin outage, not aremoved page.
keeprule.com— nginx answers301 → /enwith a full CSP and analytics config, then drops theconnection. The server is up; this looks like geo-fencing from the probe's location.
www.systematictrading.org— alive (200); the README link to it is malformed, see the note atthe end.
32 further repositories resolve under a different
nameWithOwner(renamed or transferred, e.g.mrjbq7/ta-lib→TA-Lib/ta-lib-python). Those are benign redirects and are untouched.Conversely, one dead link answers HTTP 200 and would be missed by a status-code check:
parsecfinance.comserveswindow.location="/lander", and/landeris a307toforsale.godaddy.com/forsale/parsecfinance.com?...&utm_medium=parkedpages.Evidence, line by line
Line numbers are as on
mainat200880b. Every code below was reproduced by both instruments.Entry removed — every link on the line is gone
github.com/focus1691/chart-patternsgithub.com/cryptoSUN2049/openFinclawgithub.com/cryptoSUN2049/openFinclawgithub.com/moxiespirit/MyClone/tree/main/volatility_platformmoxiespirit/MyCloneis 404 as wellgithub.com/sdrdis/bsedatagithub.com/pratik-choudhari/nse-insightsgithub.com/alpacahq/marketstoregithub.com/spfunctions/simplefunctions-cligithub.com/YannickKae/Statistical-Learning-based-Portfolio-Optimizationparsecfinance.com/lander→ 307 → forsale.godaddy.com/forsale/parsecfinance.com (parked, for sale)thestockradar.comStockRadar has closed(same onwww.)Dead link removed, entry kept — the entry's own URL is alive
[GitHub](github.com/connerlambden/helium-mcp)heliumtrades.com/mcp-page/→ 200[GitHub](github.com/Scotts-Marketplace/bronto-python)pypi.org/project/bronto-python/→ 200Link repointed — a live replacement exists
swapapi.devgithub.com/swap-api/swap-api{"message":"Application not found"}andx-railway-fallback: true— the deployment is gone. The repo already linked on the same line is 200nikhilxsunder.github.io/edgar-sec/edgar-sec-dev-team.github.io/edgar-sec/edgar-sec-dev-team/edgar-sec, whosehomepageUrlis the new URL (200).nikhilxsunder.github.io/and.../fedfred/are both 200, so this is not a Pages outagegithub.com/borschai/uk-sic-codespypi.org/project/uk-sic-codes/github.com/borschai/uk-company-numberpypi.org/project/uk-company-number/arxiv.org/ftp/arxiv/papers/1601/1601.00991.pdfarxiv.org/abs/1601.00991/ftp/path is 404; the paper is 200 at/abs/agents.systemr.aisystemr.ai/This public agents surface has been retired. Visit https://systemr.ai/ for the System R AI Agentic Trading System.The replacement is the vendor's ownEvery replacement URL above was confirmed 200 by both instruments in the same final pass.
Validation
The change removes 4 pre-existing warnings (the duplicate
OpenFinClawpair among them) andadds none.
One thing left out on purpose
Line 639 links the book as
[Systematic Trading](www.systematictrading.org). With no scheme,GitHub renders it as a relative link, so on the README page it resolves to
github.com/wilsonfreitas/awesome-quant/blob/main/www.systematictrading.org→ 404. It is theonly scheme-less URL in the file, and the site itself is alive (200).
It is not fixed here because it cannot be fixed in isolation:
--diff-fromtreats a touchedline strictly, so the sibling
http://qoppac.blogspot.comon the same line would have to becomehttps://, and that then duplicates the identical URL already on line 246 — which is your call,not a factual one. Happy to send it as a separate one-liner if you tell me which way you want it.
Notes on overlap
Polymarket Scanner API; that line is untouched here.CONFLICTINGagainstmain. Remove 4 abandoned projects from README #329's stated scope (pythalesians, pybacktest, fooltrader, pipeline-live) does notoverlap this change.