by op7418
🚴 Claude Code / Codex skill for FIT & KML sports analysis — cycling, running, hiking, sensor and grade insights, local 3D route reports, PNG & H.264 MP4 exports. 运动轨迹分析与 3D 路线故事
# Add to your Claude Code skills
git clone https://github.com/op7418/guizang-sports-skillGuides for using ai agents skills like guizang-sports-skill.
guizang-sports-skill is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by op7418. 🚴 Claude Code / Codex skill for FIT & KML sports analysis — cycling, running, hiking, sensor and grade insights, local 3D route reports, PNG & H.264 MP4 exports. 运动轨迹分析与 3D 路线故事. It has 55 GitHub stars.
guizang-sports-skill's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/op7418/guizang-sports-skill" and add it to your Claude Code skills directory (see the Installation section above). guizang-sports-skill ships a SKILL.md manifest, so compatible agents can discover and load it automatically.
guizang-sports-skill is primarily written in JavaScript. It is open-source under op7418 on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh guizang-sports-skill against similar tools.
No comments yet. Be the first to share your thoughts!
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
Turn local cycling, running, and hiking tracks into an evidence-based report and local visual experience. Follow this sequence:
Enter the export composer only when the user asks for a shareable image, animation, or video. Ride Relief is the web app bundled inside this Skill, not a separate product to install.
<skill-root>/samples/demo.kml. State that it is fictional data..fit or .kml was supplied, ask in the user's language for either an attachment or a local path. Example in Chinese: “请把 .fit 或 .kml 拖进对话,或告诉我文件路径(例如 ~/Downloads/ride.fit);可以一次给多个。”Resolve <skill-root> as the directory containing this SKILL.md. Run from that directory:
node scripts/check-install.mjs
Handle its single-line status deterministically:
OK — continue.NEED_INSTALL — run npm ci, rerun the check, then continue. Use the lock file; do not substitute npm install.UNSUPPORTED_NODE — explain the reported Node requirement and stop before running the app.ERROR — report the missing/broken Skill files and reinstall or update the Skill before continuing.Treat npm ci as internal preparation, not a routine user step. If a sandbox blocks network access, request network permission when the environment supports approvals. If permission is unavailable, tell the user to run npm ci once from <skill-root>. If the Skill directory is read-only, explain that a writable installation or checkout is required; do not loop on installation or claim success.
Run the deterministic analyzer:
node scripts/analyze-fit.mjs --format json <fit-or-kml-path> [more-track-paths...]
Use --format markdown when a ready-to-read local report is sufficient. Use --keep-duplicates only after the user confirms matching activities are distinct. Read references/report-contract.md when interpreting fields, checking weighting rules, or changing report behavior.
Start with the result, not dependency or parser details.
For one activity, present:
For multiple activities, present:
Keep absent data distinct from zero. Say “未记录” / “not recorded” or “覆盖不足” / “insufficient coverage,” never zero when a sensor was unavailable. Do not invent FTP, power zones, heart-rate zones, VO₂max, training load, recovery status, or medical conclusions unless the user supplies the necessary thresholds and explicitly requests that analysis.
Apply these rules:
LineString or gx:Track and retain the source basename.Choose two to six evidence-backed deep dives. Omit empty or speculative dimensions.
When place-aware advice would materially improve the result, read references/location-enrichment.md. Confirm ambiguous public place names, search by the confirmed name rather than coordinates, and time-stamp live conditions. Do not treat an old activity as evidence that a route is currently open.
Attempt this automatically after successful analysis, but adapt to the environment.
public/skill-analysis.json.node scripts/prepare-report.mjs --track <selected-track> --analysis <temporary-report-json>
url and session; the URL expires after 24 hours, stale files are cleaned on the next staging run, and nothing is stored in the repository.http://127.0.0.1:5174/ and treat it as this project only when the returned HTML contains both <title>Route Relief and id="fit-input". Otherwise start npm run dev from <skill-root>. The server uses port 5174 with strictPort; if another application owns the port, report the conflict instead of silently switching ports.Fit Ride Studio Skill analysis badge, recommendation layout, and clipping. Without visual capability, skip visual claims and ask the user to inspect the opened page.Apply these fallbacks honestly:
Track the terminal/process handle used to start Vite. Before finishing, state whether the local server remains running and how to stop that exact process (for example, Ctrl+C in its terminal). Do not use a broad kill command. Clean a staged report after the user is finished when practical:
node scripts/prepare-report.mjs --cleanup <session-id>
Opening the report page does not authorize export or switching to 导出创作.
Read references/export-workflow.md before operating the export UI.
samples/demo.kml, state that it is synthetic, analyze it, and open the local report when reachable.
一个面向 Claude Code、Codex 等本地 Agent 环境的运动轨迹 Skill。把一个或多个 .fit / .kml 文件交给 Agent,它会分析骑行、跑步或徒步数据,生成有依据的结论与建议,并自动打开本地可视化报告页。需要分享时,还能继续制作带 3D 路线、数据卡片和沿途照片的 PNG / H.264 MP4。
Ride Relief 是这个 Skill 自带的本地报告网页,不需要另装软件。 它只监听本机地址,轨迹和分析通过系统临时目录交给页面,不会复制进仓库。
npx skills add https://github.com/op7418/guizang-sports-skill --skill fit-ride-studio
安装后直接对 Agent 说:
帮我分析一次运动。
如果还没有收到轨迹文件,Agent 会请你把文件拖进对话,或直接告诉它本地路径(例如 ~/Downloads/ride.fit)。收到后会自动检查运行依赖、完成分析并打开报告页,不需要你手动安装网页依赖或启动服务。
没有现成文件也可以立即体验:
用示例数据演示一遍。
仓库内的 samples/demo.kml 是完全合成的闭环骑行,不包含真实运动者或住址数据;坐标仅供界面演示,不代表实际可骑行路线。
也可以把需求和文件一起发过去:
分析这份 FIT,重点看看踏频、爬坡和数据质量。
把这几次骑行做一个综合分析,找出最长、爬升最多和传感器最完整的一次。
这是两步路导出的徒步 KML,分析路线强度和主要爬坡。
把最长的那次做成一个 9:16 的 3D 路线演示视频。
用这些沿途照片做路线故事,每张停留 2.5 秒。
本地浏览器不可用时,Agent 会降级交付文字报告和分析 JSON;云端环境里的 127.0.0.1 通常无法从你的电脑访问,因此不会假装已经打开页面。
不同 App 的菜单会随版本调整,优先选择保留原始传感器数据的 FIT;只有路线几何时再用 KML。
| 来源 | 常见取得方式 |
|---|---|
| Garmin Connect | 在网页版打开活动,点右上角齿轮并选择 Export Original / 导出原始文件;多数设备会得到 FIT。见 Garmin 官方说明 |
| 行者码表 | 用 USB 连接电脑,打开设备中的 activities 文件夹并取出 FIT。见 行者帮助中心 |
| 两步路 | 在轨迹详情使用“下载轨迹 / 本地下载”,选择 KML;下载自己的轨迹时注意可见范围与隐私设置 |
| Keep | 如果当前活动页没有 FIT/KML 导出入口,从记录活动的手表、码表或关联平台导出原始文件;分享图片不能代替轨迹文件 |
| 能力 | 说明 |
|---|---|
| 单次活动分析 | 距离、时间、速度或配速、爬升、海拔、暂停、热量与路线特征 |
| 多活动综合分析 | 总量、日期范围、逐次对比、最长活动、最大爬升、同类运动趋势与异常 |
| 专业传感器分析 | 踏频、步频、心率、功率、温度、坡度分布和字段覆盖率;未记录的数据不会伪装成 0 |
| 爬坡识别 | 距离加权坡度分布、平滑 P99 代表坡度和最多三段连续爬坡 |
| 地点信息增强 | 先确认公开地名,再查询路线背景、补给、交通、天气与安全信息;不使用精确轨迹公开搜索 |
| 本地可视化报告 | 展示核心指标、坡度、主要爬坡、深度分析、行动建议和 3D 路线 |
| 图片与视频导出 | 1080 级 PNG;H.264 MP4、30 FPS、12 Mbps;支持多种社交媒体比例 |
| 沿途照片故事 | 照片可按 GPS / 拍摄时间匹配路线,也可手动定位、排序和选择封面 |
| 比例 | 输出尺寸 | 推荐用途 |
|---|---|---|
| 9:16 | 1080 × 1920 | 小红书、Reels、短视频竖屏 |
| 3:4 | 1080 × 1440 | 小红书图文封面、运动卡片 |
| 1:1 | 1080 × 1080 | 社交平台方形分享 |
| 16:9 | 1920 × 1080 | 横屏视频、桌面展示 |
视频输出为 H.264 MP4、30 FPS、12 Mbps。单背景默认约 10 秒完成一圈地图旋转;多照片故事默认每张停留 2.5 秒,总时长按照片数量计算。
| 平台 | 状态 | 说明 |
|---|---|---|
| Claude Code | 支持 | 可读取本地轨迹、执行分析并打开报告页 |
| Codex | 支持 | 适合完整分析、浏览器操作和导出流程 |
| Cursor / 其他本地 Agent | 可用 | 需要具备文件读写、Shell 和本地浏览器能力 |
| 普通 Chatbot | 不推荐 | 无法稳定读取轨迹、运行解析器或打开本地报告 |
运行分析器需要 Node.js ^20.19.0 或 >=22.12.0。Skill 会给出明确的版本或依赖状态,不会把安装失败误报为分析成功。
需要自己安装网页依赖吗?
不需要。Skill 会在首次分析时检查关键模块;缺失时由 Agent 根据 package-lock.json 自动执行 npm ci。只有 Node 版本、权限、只读目录或网络失败时才会请你介入。
一次可以分析多个文件吗?
可以。Agent 会自动进入综合分析,识别疑似重复活动,分别报告损坏或跳过的文件,并只在同类运动之间比较速度、配速和踏频。
分析后一定会导出视频吗?
不会。分析后默认只打开本地报告页;只有你明确要求图片、动画或视频时才开始导出。
本地报告会一直在后台运行吗?
Agent 启动报告服务后会说明它是否仍在运行,以及如何停止对应进程。临时轨迹与分析不会写入仓库,并会自动过期。
导出时为什么还需要我点击?
Chromium 的原生保存窗口通常不能由 Agent 代点。开始渲染前 Agent 会提醒你;不支持保存窗口时,文件会进入浏览器下载目录。
如何更新?
重新运行安装命令即可获取最新版。
欢迎通过 Issues 报告解析、数据解释、页面显示或导出问题,也欢迎提交 Pull Request。修改指标定义、报告字段或导出参数时,请同步更新对应的 references/ 约定并运行项目测试。
网页端使用 Three.js 实现 3D 路线表达,概念参考 Any Distance iOS 的 RouteScene.swift。本项目不是对 Swift 源码的逐行翻译,也未使用 Any Distance 的品牌素材。
AGPL-3.0 © 2026 op7418
本项目采用 GNU AGPL-3.0 协议。修改、分发或通过网络服务提供修改版本时,需要按协议保留署名并公开相应源代码。完整条款见 LICENSE。