Skip to content

Remove dead links and repoint relocated ones - #548

Merged
wilsonfreitas merged 2 commits into
wilsonfreitas:mainfrom
pacocartones:fix/remove-dead-links
Aug 14, 2026
Merged

Remove dead links and repoint relocated ones#548
wilsonfreitas merged 2 commits into
wilsonfreitas:mainfrom
pacocartones:fix/remove-dead-links

Conversation

@pacocartones

Copy link
Copy Markdown
Contributor

Remove dead links and repoint relocated ones in README

Branch: fix/remove-dead-links · 1 file changed, 8 insertions, 19 deletions

What 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.

  1. Remove the entry when every URL on the line is gone and there is no replacement.
  2. Remove only the dead link when the entry's own URL is still alive.
  3. Repoint the link when a live replacement is already on the same line, or the host
    or vendor designates one.

Polymarket Scanner API is a 404 too, but it is deliberately left alone: #515 already
removes 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:

  • GitHub repositories (534 URLs / 517 distinct repos) — authenticated GraphQL
    repository(owner:, name:), then REST GET /repos/{owner}/{repo}, then an anonymous
    browser-UA GET. A repository is only reported dead when all three say 404.
  • Everything else (159 URLs)python-requests (OpenSSL) and curl (Schannel),
    browser User-Agent, redirects followed, three retries, in separate passes.

Every pass carried controls and was discarded unless all of them behaved:

Control Purpose Result
python.org, quantlib.org, cran.r-project.org, pypi.org, github.com/pandas-dev/pandas must be alive 200
a non-existent repo, a non-existent domain must be dead 404 / NXDOMAIN
pymc-devs/pymc3 a rename must not read as dead resolves to pymc-devs/pymc
sourceforge.net (root) a live site that answers 403 403 + cf-mitigated: challenge

The 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: challenge and a Just a moment... body, i.e. bot mitigation. The
    same response comes back from sourceforge.net itself, which is obviously alive.
  • edgarevents.com — HTTP 530, Cloudflare error 1033 (tunnel down). An origin outage, not a
    removed page.
  • keeprule.com — nginx answers 301 → /en with a full CSP and analytics config, then drops the
    connection. 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 at
    the end.

32 further repositories resolve under a different nameWithOwner (renamed or transferred, e.g.
mrjbq7/ta-libTA-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.com serves window.location="/lander", and /lander is a 307 to
forsale.godaddy.com/forsale/parsecfinance.com?...&utm_medium=parkedpages.

Evidence, line by line

Line numbers are as on main at 200880b. Every code below was reproduced by both instruments.

Entry removed — every link on the line is gone

Line Entry Dead URL Evidence
162 chart-patterns github.com/focus1691/chart-patterns 404 (GraphQL null / REST 404 / anon 404)
240 OpenFinClaw github.com/cryptoSUN2049/openFinclaw 404 (GraphQL null / REST 404 / anon 404) — also a duplicate of line 299
299 OpenFinClaw github.com/cryptoSUN2049/openFinclaw same URL, second occurrence
337 curistat github.com/moxiespirit/MyClone/tree/main/volatility_platform 404; the parent repo moxiespirit/MyClone is 404 as well
432 bsedata github.com/sdrdis/bsedata 404 (GraphQL null / REST 404 / anon 404)
433 nse-insights-api github.com/pratik-choudhari/nse-insights 404 (GraphQL null / REST 404 / anon 404)
522 marketstore github.com/alpacahq/marketstore 404 (GraphQL null / REST 404 / anon 404)
534 SimpleFunctions github.com/spfunctions/simplefunctions-cli 404 (GraphQL null / REST 404 / anon 404)
648 Statistical-Learning-based-Portfolio-Optimization github.com/YannickKae/Statistical-Learning-based-Portfolio-Optimization 404 (GraphQL null / REST 404 / anon 404)
685 Parsec parsecfinance.com 200 → /lander307 → forsale.godaddy.com/forsale/parsecfinance.com (parked, for sale)
697 The Stock Radar thestockradar.com 410 Gone, body title StockRadar has closed (same on www.)

Dead link removed, entry kept — the entry's own URL is alive

Line Entry Dead URL Kept URL Evidence
418 Helium MCP [GitHub](github.com/connerlambden/helium-mcp) heliumtrades.com/mcp-page/ → 200 404 (GraphQL null / REST 404 / anon 404)
459 bronto-python [GitHub](github.com/Scotts-Marketplace/bronto-python) pypi.org/project/bronto-python/ → 200 404; PyPI's own metadata still points at the deleted repo

Link repointed — a live replacement exists

Line Entry Dead URL New URL Evidence
437 SwapAPI swapapi.dev github.com/swap-api/swap-api 404 with {"message":"Application not found"} and x-railway-fallback: true — the deployment is gone. The repo already linked on the same line is 200
496 edgar-sec nikhilxsunder.github.io/edgar-sec/ edgar-sec-dev-team.github.io/edgar-sec/ Pages 404. The repo was transferred to edgar-sec-dev-team/edgar-sec, whose homepageUrl is the new URL (200). nikhilxsunder.github.io/ and .../fedfred/ are both 200, so this is not a Pages outage
502 uk-sic-codes github.com/borschai/uk-sic-codes pypi.org/project/uk-sic-codes/ repo 404; the PyPI project already linked on the same line is 200
503 uk-company-number github.com/borschai/uk-company-number pypi.org/project/uk-company-number/ repo 404; the PyPI project already linked on the same line is 200
652 101_formulaic_alphas arxiv.org/ftp/arxiv/papers/1601/1601.00991.pdf arxiv.org/abs/1601.00991 old-style /ftp/ path is 404; the paper is 200 at /abs/
688 System R agents.systemr.ai systemr.ai/ 410 Gone, body: 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 own

Every replacement URL above was confirmed 200 by both instruments in the same final pass.

Validation

$ python scripts/validate_readme.py --diff-from origin/main
Validated 8 entries in added README lines relative to origin/main.
Validation passed.

$ python scripts/validate_readme.py            # full README
main:        Validation passed with 90 warning(s).
this branch: Validation passed with 86 warning(s).

$ python site/generate.py
Loaded 498 projects
Generated site/index.html

The change removes 4 pre-existing warnings (the duplicate OpenFinClaw pair among them) and
adds 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 the
only 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-from treats a touched
line strictly, so the sibling http://qoppac.blogspot.com on the same line would have to become
https://, 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

pacocartones and others added 2 commits August 7, 2026 21:51
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.
@wilsonfreitas
wilsonfreitas merged commit 7aa4cab into wilsonfreitas:main Aug 14, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants