尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A fantasy football decision dashboard for your ESPN league — lineup building, free-agent scouting, trade analysis, and a heuristic AI Coach. Built with Vite + React + TypeScript.
Default setup: Ten Idiots League (ESPN #973201555, 2026), managing Tush Pushers. Read-mostly companion — it does not submit lineups, waivers, or trades back to ESPN.
Requires Node.js 18+ and an OpenAI key in a local .env (see .env.example).
• Web — http://localhost:5173 (proxies /api → the API)
• API — http://localhost:8787 (OpenAI tool loop; key stays server-side)檢視完整 README ↗A fantasy football decision dashboard for your ESPN league — lineup building, free-agent scouting, trade analysis, and a heuristic AI Coach. Built with Vite + React + TypeScript.
Default setup: Ten Idiots League (ESPN #973201555, 2026), managing Tush Pushers. Read-mostly companion — it does not submit lineups, waivers, or trades back to ESPN.
Requires Node.js 18+ and an OpenAI key in a local .env (see .env.example).
cp .env.example .env # then set OPENAI_API_KEY
npm install
npm run dev # Vite (:5173) + Roster Sensei API (:8787)
npm run dev starts both:
http://localhost:5173 (proxies /api → the API)http://localhost:8787 (OpenAI tool loop; key stays server-side)On Vercel, the same /api/chat route is a serverless function (api/[[...route]].ts) — no second process. Set OPENAI_API_KEY in the Vercel project env (see docs/vercel-redeploy-sensei.md).
Useful scripts:
npm run dev:web # Vite only
npm run dev:api # API only
npm run build # type-check + production bundle → dist/
npm run preview # serve the production build
| Tab | What it does |
|---|---|
| Build roster | Fill starting slots from your team (and FAs); drag-and-drop; lineup edits persist in localStorage |
| Free agents | Need-aware pickup recommendations + browse/search the FA pool |
| Lineup | Starters + projected total; optional auto-optimize sandbox |
| Trade analyzer | Build give/get packages; week vs rest-of-season fairness (VOR / rank-based) |
| AI Coach | Position outlook vs league average + suggested trades (heuristic math, not an LLM) |
| League | Scout all 12 teams; jump into the trade analyzer |
| Chat with Roster Sensei | Agentic fantasy Q&A (OpenAI + tools); uses the header's selected team by default |
Use the header team picker to manage or scout any squad in the league.
The Refresh from ESPN button updates, live from ESPN’s public APIs:
It does not rebuild who owns whom. Roster membership and the FA pool still come from the bundled snapshot under src/data/. A scheduled GitHub Action (.github/workflows/sync-snapshot.yml) runs npm run sync:snapshot every 6 hours and auto-commits + pushes to main when it changes, which triggers the normal Vercel deploy — so this should stay in sync on its own. Run npm run sync:snapshot by hand if you need it sooner than that, or if the Action's push access is disabled (see below).
Refresh calls ESPN from the browser. ESPN’s CORS headers currently allow this for the configured league; if that changes, the button surfaces an error instead of failing silently.
src/
data/ Bundled ESPN snapshot: your team, league rosters, free agents
config/ Tunable knobs:
league.ts — league identity, ESPN URL, slots/positions, colors
scoring.ts — player-valuation constants
trade.ts — trade fairness + AI Coach suggestion counts
pages.ts — tab bar (add / remove / reorder pages here)
lib/ Pure functions: scoring, roster needs, trade engine, ESPN + news clients
hooks/ State: useFantasyApp, useProjectionRefresh, useNewsFeed, useDragAndDrop
components/ Shared UI (header, nav, badges, news modal, …)
pages/ One file per tab — mostly markup; state comes from the `app` prop
App.tsx Header + active page
src/config/league.ts at your ESPN league/season and rename your team.src/data/.src/config/scoring.ts and src/config/trade.ts.src/config/pages.ts.OPENAI_API_KEY on the server only. See docs/roster-sensei-agent-tools.md.