Repository navigation
Kai v2.1.0
Chain wax tracking is now a script instead of arithmetic done by the agent. Additive release: nothing to change if you don't use it.
What's new
skills/strava/scripts/chain-wax.py(Python standard library only) keeps a ledger of chain waxes per bike and reads live bike odometers from Strava.reportshows km since the last wax and the next-due odometer for each bike (--jsonfor machine output).logrecords a wax: today with the live odometer by default, or a past date with--odometer. Options:--product,--kind hot|drip,--interval MIN-MAX,--degreased.add-bikeandset-odometercreate the ledger and handle bikes without Strava tracking (a partner's bike, say): you give the odometer by hand and the report flags readings older than 30 days.
- Statuses:
OK,DUE SOON(the last 10% before the minimum),DUE(between minimum and maximum),OVERDUE. - Due ranges are fixed when a wax is logged. Hot wax defaults to an early first re-wax at 150-250 km (the first coating is thin), then 450-500 km. Drip lube defaults to 200-300 km. Any interval can be set.
- Indoor kilometres count, since a chain wears on the trainer too.
- Safe writes: the ledger is written atomically, and a corrupt ledger is reported and never overwritten.
AGENTS.md: Kai now runs the script whenever bike mileage or maintenance comes up, so the answer is the same every session.- Ledger file:
skills/strava/data/chain-wax.jsonis git-ignored personal data;chain-wax.example.jsonshows the format. - Tests: 24 offline tests for the script and 3 repo-hygiene tests (the right files tracked, personal files ignored). 44 in total.
Getting started
python3 skills/strava/scripts/chain-wax.py add-bike road --name "Road bike" --gear-id <your Strava bike id>
python3 skills/strava/scripts/chain-wax.py log road --odometer <km at your last wax> --date <YYYY-MM-DD> --product "Hot wax"
python3 skills/strava/scripts/chain-wax.py reportFind your Strava bike ids with skills/strava/scripts/gear-mileage.sh. Full details are in the Strava skill README.
Known issues
- FIT downloads from the Garmin skill are saved as a ZIP, so
analyze/parseon them fails (#15). - Tyre ledger helper commands are still hand-edited JSON (#16).
- The Hermes Agent and Codex setups are still untested against live installs.
Full changelog: v2.0.0...v2.1.0