安装与下载
1 ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install bike-fit-estimator
2 手动安装
将技能文件夹复制到以下位置之一
~/.openclaw/skills/
{'/skills/'}
优先级:工作区 › 全局 › 内置
3 提示词安装
将此提示词复制到 Openclaw 即可自动安装。
请帮我使用 Clawhub 安装 skill-bike-fit-estimator。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
更倾向于下载?
获取包含原生技能文件的ZIP压缩包。
基本信息
bike-fit-estimator
安装指南
- ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install bike-fit-estimator - 手动安装
将技能文件夹复制到以下位置之一
全局模式
~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置 - 提示词安装
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 bike-fit-estimator。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
更倾向于下载?
获取包含原生技能文件的ZIP压缩包。
下载技能 (.zip)
什么是
自行车设定估算器是一款离线 Python CLI 技能,可用于估算自行车尺寸、设定接触点,以及排查常见的骑行不适。它利用身体测量数据和实用的设定指南,估算坐垫高度、后移量、曲柄长度、跨高余量和 stack/reach 等级,并根据柔韧性和骑行风格调整车把位置。
如果出现手麻、膝痛、脚部发热或颈部不适等症状,它会按可能性排列设定原因,并建议一项有依据的初始调整。这些 Openclaw Skills 旨在提供实用的起点,不能取代专业自行车设定或医疗护理。
应用场景
购入新车或二手车前,将自己的测量数据与自行车尺寸列表进行比较。
为新车、继承来的自行车或近期调整过的自行车设定坐垫高度和后移量。
根据自己的柔韧性和骑行风格,选择更舒适的车把落差和前伸量。
排查骑行中或骑行后的常见症状,例如手麻、膝痛或脚部发热。
选车或更改骑行姿势时,检查跨高余量并考虑曲柄长度。
在柔韧性、年龄或预期骑行类型发生变化后,重新检查骑行姿势。
工作原理
赤脚站立,用硬皮书测量内侧腿长,并记录不穿鞋时的身高。
运行 size 命令估算车架和接触点数据,包括使用内侧腿长 × 0.885 计算的坐垫高度、Holmes 膝角交叉核验、曲柄长度、跨高余量以及 stack/reach 等级。
运行 position,输入柔韧性和自行车类型,获取以舒适度为导向的车把落差和前伸量起始建议。
如果感到不适,运行 pain 并输入受支持的症状,查看按可能性排序的原因和建议的第一项调整。
一次只做一项更改;在适用情况下,通常以 2–5 mm 为调整幅度,并通过多次骑行评估,同时记录结果。
重新检查测量数据和骑行姿势;如果疼痛持续或超出此技能的适用范围,请寻求专业设定或医疗建议。
配置指南
此技能需要 Python 3,且只使用标准库,因此无需第三方套件即可离线运行。请在技能目录中运行命令,该目录下应有 scripts/bike_fit.py。
估算车架尺寸和接触点
python3 scripts/bike_fit.py size --inseam 84 --height 178 --type road
根据柔韧性和自行车类型获取姿势建议
python3 scripts/bike_fit.py position --height 178 --flexibility medium --type road
查询某种症状的可能原因和第一项调整建议
python3 scripts/bike_fit.py pain --symptom numb-hands
将跨高余量与标示的车架数据进行核对
python3 scripts/bike_fit.py standover --inseam 84 --standover-height 80 --type road
未指定网络访问、凭证或其他配置。请勿使用此工具评估撞车后的疼痛、静息或夜间疼痛,或离开自行车后仍持续的神经症状;遇到这些情况应寻求适当的医疗护理。
数据架构
此技能说明 CLI 输入和计算所得的指导信息;未说明会生成文件或使用持久化存储。
命令 主要输入 提供的指导
size 内侧腿长、身高、自行车类型 车架和接触点估算值,包括坐垫高度、后移量、曲柄长度、跨高余量和 stack/reach 等级
position 身高、柔韧性、自行车类型 建议的车把落差和前伸量,并根据柔韧性和骑行类型提供姿势建议
pain 症状标识符 按可能性排列的设定相关原因,以及值得尝试的第一项调整
standover 内侧腿长、跨高高度、自行车类型 根据特定骑行类别的指导检查跨高余量
参考资料整理在 references/ 下:fit-science.md 涵盖几何、公式、柔韧性测试、锁片科学和详细的疼痛原因分析;used-bike-buying.md 涵盖车源比较、stack/reach 和接触点更新注意事项。骑行记录和调整历史应由用户自行记录;此技能建议一次只更改一个变量。
高级特性
基于症状的疼痛分析会按可能性排列原因,并提出具体的初始调整建议。
姿势建议会考虑柔韧性和骑行类型,涵盖耐力骑行或通勤、运动型骑行到激进设定。
设定估算会结合多项核验,包括 LeMond 内侧腿长乘数、Holmes 膝角、作为起点的 KOPS、曲柄长度,以及针对不同骑行类别的跨高余量。
工作流程鼓励有控制地逐步调整:小幅改动、每次改动之间进行多次骑行,并记录骑行情况。
离线运行且仅使用标准库的 Python 实现,使 CLI 保持轻量。
包含安全界限:持续的神经症状及其他医疗警讯并非适合用此技能诊断的设定问题。
name: bike-fit-estimator
description: Use when buying a bike, setting one up, or diagnosing ride pain — computes frame size and stack/reach from your body (inseam×0.885 saddle height, Holmes 25–35° knee angle, crank length, standover clearance by discipline), dials position by flexibility and ride type, and routes pain symptoms (numb hands, front/back knee, hot foot, saddle numbness, neck) to ranked fit causes with the exact adjustment to try first.
version: 1.0.0
author: Denis Voronin
license: MIT
tags: [cycling, bike-fit, sizing, ergonomics, pain, road-bike, commuter]
Bike Fit Estimator
A bad bike fit turns a healthy activity into a pain generator: knees, hands, neck, perineum. Professional fits cost $150–400; a lot of what they do is geometry you can compute from two measurements (inseam + height) and a symptom table you can follow.
This skill sizes the frame, sets the contact points (saddle height, setback, bar drop/reach, cleat fore-aft), and routes ride pain to its most likely fit cause with the adjustment to try first.
When to Use
Buying a bike (online or used) and decoding size charts
Setting saddle height/setback on a new or inherited bike
Diagnosing pain that appears during or after rides
Adjusting for flexibility changes, aging, or switching ride type
Deciding crank length and checking standover clearance
Don't use for: post-crash pain, pain at rest/night, or any neurological symptoms (numbness that persists off the bike) — medical.
The Method
Measure once, properly. Barefoot, feet ~10 cm apart, hardback book pulled into the crotch, measure floor→book top. That's inseam. Height without shoes.
size — frame + contact points: saddle height (BB-to-top = inseam × 0.885, the LeMond method; cross-check Holmes 25–35° knee angle), setback (KOPS starting point), crank length, standover check, estimated stack/reach class.
position — bar drop and reach by flexibility × ride type: endurance/commute (comfort-first) → sportive → aggressive. Includes saddle tilt and transition protocol (change ONE thing, 2–3 rides).
pain — symptom → ranked causes → first fix. Change one variable at a time, 2–5 mm increments; log rides.
Quick Start
# Frame size + contact points: 178 cm, 84 cm inseam, road bike
python3 scripts/bike_fit.py size --inseam 84 --height 178 --type road
# Position by flexibility
python3 scripts/bike_fit.py position --height 178 --flexibility medium --type road
# Diagnose: hands go numb after 45 minutes
python3 scripts/bike_fit.py pain --symptom numb-hands
# Check a listing: 56cm frame, your 84cm inseam
python3 scripts/bike_fit.py standover --inseam 84 --standover-height 80 --type road
Stdlib-only Python 3. Offline.
Key Numbers (what the script computes)
Saddle height (crank axle to saddle top along seat tube): inseam × 0.885. Verify: at bottom-dead-center, knee angle 25–35° (Holmes).
Setback: knee-over-pedal-spindle as STARTING point, then adjust by hamstring flexibility; saddle nose behind BB axis 0–3 cm typical.
Crank length: ~ inseam × 2.0 → mm (168 cm → 170 mm); shorter cranks (165) for tight hips/close fit or aero positions.
Drop (saddle-to-bar): 0–2 cm low flexibility / endurance, 2–5 medium, 5–8+ high flexibility / race. Reach: bars at natural elbow-to-hand span.
Standover clearance: road ≥ 2 cm, gravel 3–5, MTB 5+.
Pain Routing Table (summary)
Symptom Most likely (try first) Then
Front of knee saddle too LOW or too far forward +2–3 mm height
Back of knee saddle too HIGH or too far back −2–3 mm height
Outside of knee cleat rotation/angle float check
Numb hands weight too far forward: bars low/reach long, saddle nose down raise bars, shorten reach, level saddle
Numb/lady-parts saddle width/shape, too much drop level saddle, wider/cutout saddle, less drop
Hot foot cleat too far forward, shoes tight move cleat back 2–4 mm
Neck/traps drop too deep for flexibility raise stem, shorter reach
Lower back reach long, drop deep, saddle nose down shorten reach, level saddle
Hip rocking saddle too high lower 2–3 mm until rock stops
Common Pitfalls
Changing three things at once. You fix the pain but learn nothing — and can't revert. One variable, 2–3 rides, log it.
Saddle height from the floor or from old muscle memory. Only BB-axis→saddle-top is a stable reference; it survives frame changes.
Level the bike wrong. Set heights with the bike on a trainer or measured against a wall on level ground, tires equal pressure.
Fixing knee pain with a bigger gear / cadence change first. Geometry first: 3 mm of saddle height fixes what a season of "spinning easier" won't.
Buying by top-tube size alone. Modern geometry varies: compare stack and reach, not "56 cm" — a 56 from two brands can differ 2 cm in both.
Copying a pro's position. Their flexibility and weekly hours aren't yours. Drop is earned, not chosen.
Ignoring cleats. Feet are the fixed point the whole chain rotates around; cleat rotation causes "mystery" lateral knee pain no saddle change touches.
Verification Checklist
Inseam measured with book method, barefoot (±5 mm matters)
Saddle height set and marked (tape on seatpost)
Knee-angle check at BDC: 25–35°
One change at a time, ≥2 rides between changes
Pain persisting after 3–4 fit iterations → professional fit / medical
References
references/fit-science.md — the geometry, angles, formulas, flexibility tests, cleat science, and the full pain table with reasoning
references/used-bike-buying.md — decoding listings, stack/reach comparison, contact-point refresh budget (bars/saddle/tape are wear items)
Mattress Spec Decoder
WhatsApp 贴纸