Files
vyndr/docs/CLEAN-ROOM-LOG.md

7.9 KiB

VYNDR — Clean-Room Design Log

This log documents every external codebase studied during VYNDR's development. It proves independent creation — no code was copied from any external source. When we examined a project under a copyleft license (GPL/AGPL/LGPL) we restricted the study to concept and behavior, not implementation.

Date Source License What Was Studied Insight (Our Own Words) Code Copied?
2026-05-24 nba_api (github.com/swar/nba_api) MIT API wrapper patterns for stats.nba.com endpoints NBA.com exposes hidden JSON endpoints with rate limiting; our adapter calls these directly with our own session + retry layer. No
2026-05-24 pybaseball (github.com/jldbc/pybaseball) MIT Statcast data access patterns Baseball Savant provides pitch-level data via public CSV endpoints; we shape our own query layer on top of those endpoints. No
2026-05-28 OpenBB (github.com/OpenBB-finance/OpenBB) AGPL-3.0 ⚠️ UI layout patterns for dense financial data display ONLY — no code studied Terminal-style UI with panel-based layout suits intelligence products; applied as a design pattern only. No — concept observation, no code read
2026-06-05 River (github.com/online-ml/river) BSD-3-Clause Incremental ML API design, ADWIN drift detection algorithm learn_one/predict_one interface enables single-sample model updates; ADWIN splits an error window for drift detection. No
2026-06-05 kyleskom/NBA-ML-Sports-Betting Unlicensed ⚠️ XGBoost + NN dual-model approach, Kelly Criterion sizing Two independent model architectures voting together increase robustness; sigmoid calibration converts raw scores to probabilities. No
2026-06-05 Lisandro79/BeatTheBookie GPL-3.0 ⚠️ Market consensus deviation concept ONLY When one book's line diverges from consensus, it signals either sharp action or a trap. No — concept only
2026-06-05 charlesmalafosse/sports-betting-customloss MIT Custom loss function concept Training loss should weight correct predictions by implied probability — a correct call on +150 is more valuable than one on -200. No
2026-06-05 AagamanVarma/DriftGuard Unknown Champion-challenger deployment pattern Challenger model earns promotion by outperforming champion on holdout set; a model pointer file enables atomic swap. No
2026-06-06 Serwist (serwist.pages.dev) MIT Service worker integration with Next.js @serwist/next wraps next.config and injects a service worker entry; defaultCache provides reasonable runtime caching presets out of the box. No — documentation read; code is our own SW wiring
2026-06-06 web-push (github.com/web-push-libs/web-push) MIT VAPID-based push delivery semantics A 410 Gone response on a subscription is the signal to delete it permanently; other statuses are transient. No
2026-06-06 SharpAPI (sharpapi.com) Commercial API surface only (docs read, no source available) Player-prop endpoints expose over/under odds per book; consensus is computed client-side by aggregating across books. No — commercial API, no code
2026-06-06 OddsPapi (oddspapi.io) Commercial API surface only (docs read, no source available) Pinnacle closing-line endpoint requires a bookmaker filter; the docs make no guarantee about latency between game start and line availability. No — commercial API, no code
2026-06-06 ParlayAPI (parlayapi.io) Commercial API surface only (docs read, no source available) Free tier exposes 3.7M historical prop closing records via a credit-based bucket — careful pacing is mandatory because credits don't refresh mid-month. No — commercial API, no code
2026-06-06 PropOdds (prop-odds.com) Commercial API surface only (docs read, no source available) Specializes in player props specifically; useful as a second consensus point so line-divergence trap signal isn't a two-book artifact. No — commercial API, no code
2026-06-06 College Football Data (collegefootballdata.com) Free / personal API key API surface only (docs read, no source available) Talent composites + PPA fill the gap nba_api / ESPN don't cover for college. Bearer-token auth keeps the key off URL logs. No — commercial-style API, no code
2026-06-06 Sports-Reference (basketball-reference.com) Site TOS (HTML scraping with credit) Public HTML tables only — referee + coach index pages Data-stat attributes on table cells are the cleanest extraction key. We rate-limit at 1 req per 5s and identify with a User-Agent so the site can contact us if anything's off. No — read public HTML, parsed table data only
2026-06-06 OpenRouter (openrouter.ai) Commercial API surface only (docs read, no source available) OpenAI-compatible /chat/completions endpoint with a model-selector header. Bearer auth keeps the key off URLs. Free-tier per-model rate limits are not documented per-account; conservative 20/min budget is safer than relying on 429 retry. No — commercial API, no code

Template for future entries

| YYYY-MM-DD | <source URL> | <license> | <what we studied> | <our own-words insight> | No |

Rules

  • Always log GPL/AGPL/LGPL projects with the ⚠️ marker and limit study to concept observation. Do not read source files line-by-line.
  • Unlicensed code is studied as ideas only. Without a license the work is default copyrighted; we do not duplicate structure.
  • Document the insight in our own words. If an entry reads like a paraphrase of the source, rewrite it.