ai-startup-skills
创业公司做 AI 产品的 7 步 Agent Skill 合集:验证 → BP → 政策 → 路演 → 获客 → 定价 → 注册。
Translation pending
Pick your Metro Transit route, stop and time to see how likely each departure is to run late or leave early, from a model trained on Metro Transit's own live feed.
OtherPython · JavaScriptGitHub @KennedyJohnsonOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Will my bus be late? Logs Metro Transit lateness every 15 min and retrains LightGBM models daily to flag Twin Cities departures that usually run late or leave early.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Pick a Twin Cities Metro Transit route, direction, stop, day and time. For each scheduled departure, the site shows:
• how late it usually runs;
• the chance it's 5+ minutes late;
• the chance it leaves early.
It also names the most and least reliable buses around your time. Save your regular trips and they're one tap away next time. It's a companion to Gopher X Metro, which shows where buses are right now. This site is for planning which bus to catch.Read the full README ↗Live site: https://kennedyjohnson.github.io/metro-transit-delays/
Pick a Twin Cities Metro Transit route, direction, stop, day and time. For each scheduled departure, the site shows:
It also names the most and least reliable buses around your time. Save your regular trips and they're one tap away next time. It's a companion to Gopher X Metro, which shows where buses are right now. This site is for planning which bus to catch.
Collect (collector/collect.py, every 15 min via GitHub Actions). The collector reads Metro Transit's GTFS-Realtime TripUpdates and keeps each active trip's next-stop delay.
delay field, or predicted minus scheduled time when that's missing. After-midnight (25:05:00) times, DST, and missing start_date are handled.$RAW_DIR/YYYY-MM-DD.csv (default data/raw/; in Actions, a checkout of the data branch).Train (model/train.py, daily at about 4 am Central). It trains three LightGBM models on individual observed departures:
The features (model/features.py) are all known before the day of travel:
History tables in training are computed out-of-fold by day, so a departure never sees its own outcome.
Serve in the browser. Models are exported as JSON trees (docs/model.js) and features are rebuilt by docs/features.js. Per-route schedule files carry each trip's and stop's history, and the day's weather comes from Open-Meteo. A test checks that the browser's features and predictions match Python exactly.
Evaluate:
docs/data/metrics.json).docs/data/live.json).Schedules are published from day one. Predictions start once 10 days of data exist.
GitHub Pages serves docs/ from main (Settings → Pages → Deploy from a branch → main / /docs). The workflows need no secrets:
| Workflow | When | What |
|---|---|---|
collect.yml | continuous | polls the live feed every 15 min for ~5.5 h per run, then starts the next run itself (6-hourly cron restarts the chain if it breaks) → the data branch |
forecast.yml | daily 09:15 UTC | compacts finished days to Parquet and drops raw days older than 3 years (collector/trim.py), then squashes the data branch to one commit; tests, live score, retrain on up to 5M sampled rows, export docs/data/; opens a stale-data issue on failure |
ci.yml | pushes / PRs | pytest, incl. the Python↔JS parity test |
Raw snapshots (YYYY-MM-DD.csv[.gz], one per day) live on the data branch, not main: the collector commits there every 15 minutes, and the daily job compacts each finished day to Parquet (only the rows the model uses, plus cancellations; ~100-250 KB/day, a third of gzip) and replaces that branch's history with a single commit of the last 3 years (600 MB cap), so the repo doesn't grow without bound. Locally, put them in data/raw/ (or set RAW_DIR).
Data files the site reads (docs/data/): meta.json (status), routes.json, routes/<route>.json (stops, trips, history), calendar.json (services for the next 14 days, holidays), model_{median,late,early}.json, metrics.json (backtest), live.json (daily scores). Gopher X Metro reads the same files to flag departures likely to run late.
pip install -r requirements.txt
python collector/collect.py # one snapshot (downloads the static GTFS on first run)
python model/train.py # schedules always; models once data/raw has >= 10 days
python -m pytest -q tests # synthetic GTFS + observations, no network; needs node for the parity test
python -m http.server -d docs 8000
Data: Metro Transit (not affiliated). Weather: Open-Meteo (CC BY 4.0).
MIT License.