OpenAthlete
AGPLv3 endurance training platform: EU-oriented hosting, transparent CTL/ATL/TSB logic in code, self-hosting, and full export. Built in Grenoble.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Fantasy football league summary
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Grudge is the private web companion for a long-running fantasy football league. It combines the live ESPN league, recovered history back to 2005, predictions, weekly recaps, player and trade ledgers, manager-vs-manager Grudges, and versioned draft/trade models.檢視完整 README ↗Grudge is the private web companion for a long-running fantasy football league. It combines the live ESPN league, recovered history back to 2005, predictions, weekly recaps, player and trade ledgers, manager-vs-manager Grudges, and versioned draft/trade models.
Production: https://grudge.planitnow.us
Grudge distinguishes authoritative league results from recovered supporting evidence.
| Era | Authority and coverage |
|---|---|
| 2005–2017 | Commissioner records decide final season results. ESPN supplies recovered weekly team scoreboards and draft boards. Historical player lineups and transaction ledgers are not available. |
| 2018–2025 | ESPN archive supplies standings, weekly player lineups, transactions, matchups and recovered draft boards. |
| 2026 onward | Live ESPN pipeline captures the current league and maintains derived data. |
The league did not play in 2020. Draft performance grades cover 2005 and 2007–2025. The 2005 source preserves all 128 draft coordinates: 119 named player rows plus nine excluded D/ST slots, eight identified by ESPN's defense lineup slot and one manually reviewed as a second defense. The 2006 board remains source history only because 21 non-defense zero-ID slots are still unresolved. Never invent data to fill an evidence gap. See docs/LEAGUE-HISTORY.md, docs/HISTORICAL-TRANSACTIONS.md and docs/LEGACY-TRADE-EVIDENCE.md before changing historical behavior.
These are architectural contracts, not implementation details.
franchise_key is the durable fantasy-franchise identity. A team name or ESPN team ID is not a franchise identity.franchise_season_teams maps a durable franchise into a season. franchise_season_results contains settled season outcomes separately.manager_key identifies a person. Grudges are manager-vs-manager and follow a person across franchise changes.nfl_players.player_key is the canonical player identity outside raw provider ingestion.nfl_player_aliases; do not assume an early ESPN ID is globally durable.Read docs/DATA-MODEL.md before changing any identity mapping or historical join.
Draft and trade grades are published, versioned results. Web requests read the published generation; they do not rebuild models on demand.
The current draft model evaluates regular-season production above replacement against historical expected production at the actual overall pick. Kicker and D/ST selections remain in draft-board coordinates but are not individually graded. Trade pages preserve separate team-fit and player-production views because they answer different questions.
Rules for model work:
See docs/MODEL-EVIDENCE.md and docs/MODEL-AUDIT.md.
The web app is intentionally usable from a phone. Admins can use:
/admin/status — production SHA, schema contract, ESPN/current-week freshness, NFL player refresh, model publications, recap status and GitHub workflow health./admin — membership and ownership-capture overview./admin/members — league access and team assignment./admin/recaps — recap delivery history./admin/trades — trade administration.Normal Git pushes do not deploy directly to production. Vercel Git auto-deploy is deliberately disabled.
.github/workflows/deploy-vercel.yml is the release authority. It can run in the scheduled release window or from an explicit deploy request. A successful release must verify the production schema, serve the exact requested commit, pass /api/health, smoke-test representative public routes, and only then advance the vercel-deployed marker branch.
vercel-deployed therefore means verified live, not merely “a Vercel hook was called.” See docs/DEPLOYMENT.md before changing release behavior.
.github/workflows/weekly.yml — live ESPN capture, derived features, predictions, history refresh, ownership capture, model refresh, raw-data commit and optional recap..github/workflows/refresh-players.yml — current/prior NFL player-ledger refresh..github/workflows/refresh-model-results.yml — rebuild/publish model evidence after model-related changes..github/workflows/ci.yml — dependency audit, TypeScript, tests, production build, RLS attack suite, player browser checks and live admin gating.The weekly and player/model writers share deployment/database safety controls. Do not bypass those workflows with ad-hoc production writes.
Use Node 22. Before merging application changes, the normal baseline is:
npm ci
npm audit --audit-level=moderate
npm run typecheck
npm test
npm run players:import -- --dry-run
npm run build
Useful targeted checks:
npm run schema:verify
npm run models:validate
npm run models:build-data
npm run models:refresh -- --dry-run
npm run history:refresh
Production database migrations must follow the migration/release process in docs/DEPLOYMENT.md; never grant the web app the pipeline role or BYPASSRLS.
Before making a broad change, identify which data source and identity layer owns the fact being changed. In particular:
docs/DATA-MODEL.md — canonical franchise, manager and player identities.docs/LEAGUE-HISTORY.md — authority by era and historical reconstruction rules.docs/MODEL-EVIDENCE.md — draft/trade model inputs, publication and evidence policy.docs/MODEL-AUDIT.md — validation of ranking and grading choices.docs/PLAYER-LEDGER.md — NFL player data, Grudge scoring and profile coverage.docs/DEPLOYMENT.md — controlled Vercel production process.docs/WEEKLY-RECAPS.md — recap product and delivery behavior.docs/HISTORICAL-TRANSACTIONS.md — 2018–2025 ESPN transaction repair.docs/LEGACY-TRADE-EVIDENCE.md — what can and cannot be established before 2018.docs/SETUP.md — environment and setup details.When those documents conflict with an old comment or exploration file, prefer the current canonical data-model, evidence and deployment documents and verify the live schema before changing behavior.