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.