Skip to content
View victory-c's full-sized avatar

Highlights

  • Pro

Block or report victory-c

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
victory-c/README.md

header

Typing SVG


Fly Brain garmin_mcp contributor FlowLens Venture Map


About

I study Data Science and Cognitive Science at UC Berkeley. I build tools and guardrails for AI agents — what they cost, where they break, and what stops them from doing damage.

Outside of that, I build tooling around my own training data, because I ride a lot and Garmin gets more wrong than you'd think.

🛡️ Agent guardrails  •  🤖 AI agent tooling  •  🚴 Endurance data  •  🔓 Open source

Cycling telemetry from Garmin, synced weekly


Things I've built

fly-brain — a fruit fly's whole central nervous system (166,700 neurons, male CNS v1.0 connectome) run as a spiking network in PyTorch, learning to ride a road bike in side gusts. The simulator reproduces Shiu et al. (Nature 2024) spike for spike against their Brian2 code, then batches many flies on one GPU.

token-counter — audits monthly AI coding-agent spend across Claude Code, Codex, Cursor, and Gemini, and flags every run that would have been fine on a cheaper model.

fitpet — a Claude Code status-line companion that grows from real Garmin training load.

vibeapply — an AI-native job-application copilot: a browser extension that rides along on job boards, backed by a structured candidate profile and evidence bank. Scaffolded with agents, then audited — all nine findings fixed before any feature work.

cal-dining-scanner — watches UC Berkeley dining menus for the foods you care about and emails you when they appear. One command to set up, runs free on GitHub Actions. A friend spun it off into Cal-Bite, a full-stack version.

magene-garmin-fix — Garmin inflates climb 10–70× for third-party bike computers by throwing away barometric altitude. This fixes it.

analyze-cycling-hr-thresholds — a Codex skill that reconciles Garmin field data with raw CPET gas-exchange data into heart-rate thresholds, Garmin-ready zones, and labeled FTP proxies. It analyzes each source on its own and refuses the tempting shortcuts — no converting heart rate straight to watts, no treating a lab report's conclusion as raw evidence.

bay-area-venture-map — interactive map of the Bay Area venture cluster; filter by AUM, stage, sector, and check size.

qosmic-audit-harness — contracts-first agent harness: every claim in a generated audit must cite a real crawled page, enforced by a validator that the writer and the evaluator share.

Open source

Taxuspt/garmin_mcp — 1.3k ★, listed contributor

Garmin's API returns explicit null for sections you have no data in, so resp.get(k, {}) yields None — the default only applies when the key is absent. Most of my merged work there is that bug and its relatives.

#253 ✅ merged Five unguarded null-section crashes — HRV baseline, progress-summary .items(), the sleep-score chain, body-battery event iteration, and a GraphQL {"data": null} that slipped past the existing guard. Each fix ships a regression test feeding the explicit-null payload.
#254 ✅ merged Garmin occasionally stalls a request indefinitely; because every tool calls the client synchronously, one stalled call hung the whole MCP server until the client's ~4-minute timeout fired (issue #248). Bounds each proxied call on a daemon worker thread, surfacing a retry-able TimeoutError instead. Configurable via GARMIN_MCP_CALL_TIMEOUT.
#250 ✅ merged Gear notes never appeared, because the pinned client reads the legacy filterGear endpoint and Notes only exists on /gear/v2/list. Joins the two — the v2 response hyphenates its UUIDs and the legacy one doesn't, so the join normalizes them first.
#334 An agent could delete Garmin workouts in one call, with no gate. Now the first call returns a preview and needs_confirmation; the delete only happens on a second call with confirm=true, and each deletion is logged for an audit trail.
#375 Garmin Coach plans came back without their race or schedule — surfaces race name and date, weekly workout count, and remaining workouts, and still omits fields cleanly when athleteRace is missing or malformed.
#170 There's a Dockerfile but no published image, so everyone builds locally. Publishes multi-arch (amd64 + arm64) images to GHCR on release — no extra secrets, just GITHUB_TOKEN.
#167 The security workflow had a # Add pip-audit here if desired placeholder where the dependency scan should be. Wires up pip-audit and clears the one CVE it flags — h11 request smuggling (CVE-2025-43859).
  • #64036 — reasoning-visibility leak on Gemini/Vertex: with show_reasoning: false, users still got dozens of raw thought-summary blocks. Two causes — effort and visibility were coupled in the request builder, and Vertex returns summaries untagged unless you set thought_tag_marker, so nothing downstream could key on them. Splits the two knobs to match Google's own API.
  • #68524 — web_extract had one backend; expired credits or a rate limit meant total failure plus a gateway restart. Adds a configurable fallback chain.

SpencerLiang0114/RouteCraft — route planner for running, hiking, and cycling

  • #15 ✅ merged — session auth, saved routes owned by the user who created them, and share links that expire.
  • #14 ✅ merged — imperial conversions next to every metric route value.

Berkeley, CA — usually on a bike when I'm not here.

footer

Pinned Loading

  1. garmin_mcp garmin_mcp Public

    Forked from Taxuspt/garmin_mcp

    MCP server to access Garmin data

    Python

  2. cal-dining-scanner cal-dining-scanner Public

    Watches UC Berkeley dining hall menus for the foods you care about and emails you when they appear. One-command setup; runs free on GitHub Actions.

    Python 5

  3. resumeblock resumeblock Public

    Resume builder with template-aware LaTeX compilation (Deedy Reversed two-column + single-column). Next.js, Prisma, Ollama.

    TypeScript 1

  4. bay-area-venture-map bay-area-venture-map Public

    Interactive map of every VC firm in the 5-county San Francisco Bay Area, sourced from SEC Form ADV filings.

    Python

  5. fitpet fitpet Public

    A Claude Code status-line companion that grows from your real-world fitness (Garmin) and reacts to your coding via hooks.

    TypeScript

  6. magene-garmin-fix magene-garmin-fix Public

    Upload Magene / non-Garmin bike-computer .fit to Garmin Connect and auto-fix inflated elevation (disable server-side Elevation Correction) + wrong activity type. EN/中文 docs + Claude Code skill.

    Python