BikeControl (SwiftControl)
使用 Zwift Click、Zwift Play、Shimano Di2 或任何藍牙控制器,搭配 MyWhoosh、Rouvy、Zwift 等。iOS、Android、Windows、macOS 均可免費試用。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Ask a rules question about a women's sport and get a plain-language answer taken only from the official rulebook, with the rule cited and a link to the exact page of the official PDF.
Currently covers 10 league pages across 5 sports:
| Sport | Leagues |
|---|---|
| Volleyball | NCAA, Pro (USA Volleyball rules) |
| Basketball | NCAA, WNBA |
| Soccer | NCAA, NWSL (IFAB Laws + NWSL competition rules) |
| Rugby | All leagues (World Rugby Laws, for college, USA Rugby and WER) |
| Hockey | NCAA, PWHL, USA Hockey |
Stack: SvelteKit 3 on Vercel · Turso (libSQL with vector search) · Gemini embeddings and answers · Redis · Tailwind + shadcn-svelte
More detail: project_mgmt/: PRD, technical spec, design spec, build plan, security plan, evaluations, and adding a sport or league.
Needs Node 22 or 24.
npm install
cp .env.example .env # then fill in the values; .env is gitignored
npm run dev
| Variable | Needed for |
|---|---|
GEMINI_API_KEY | Everything (from https://aistudio.google.com/apikey) |
TURSO_DATABASE_URL | Everything (file:local.db locally, libsql://… for Turso Cloud) |
TURSO_AUTH_TOKEN | Turso Cloud |
REDIS_URL (or KV_REST_API_URL + KV_REST_API_TOKEN for Upstash) | Question log and daily limits (required in production) |
RATE_LIMIT_SECRET | Daily limits (required in production; openssl rand -hex 32) |
The daily question limits are off in local development.
Rulebook PDFs are copyrighted, so they live in data/, which is gitignored and never committed.
data/<sport>/npx tsx scripts/dump-pdf.ts data/<sport>/<file>.pdf > dump.txtsrc/lib/ingest/sources.ts (and a parser in src/lib/ingest/ if the layout is new)npm run ingest -- <source-id> --dry-runnpm run snapshot -- comparenpm run ingest -- <source-id>npm run evalThe full guide, including display settings and colors, is project_mgmt/ADDING_A_SPORT.md.
| Command | What it does |
|---|---|
npm run dev | Local dev server |
npm run check | Type check |
npm test | Unit tests |
npm run ingest -- <id> [--dry-run] | Parse, embed and store a rulebook |
npm run snapshot -- save|compare [id...] | Parser regression check (no API keys needed) |
npm run ask -- <sport> <league> "<question>" | Ask from the terminal; shows retrieved rules and distances |
npm run eval [-- --page <sport/league>] | Run the labeled eval questions; see EVALS.md |
npm run logs [-- 50] | Recent questions from the Redis log |
npm run db:check | Check the Turso connection and vector support |
Push to main; Vercel builds and deploys. Set the environment variables above in Vercel (production can use a read-only Turso token). See project_mgmt/SECURITY_PLAN.md for the launch checklist.