Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add gtapps/hermitd --skill weekly-load-reviewgit clone --depth 1 https://github.com/gtapps/hermitdWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/gtapps/hermitd/weekly-load-review)<a href="https://agentmods.dev/skills/gtapps/hermitd/weekly-load-review"><img src="https://agentmods.dev/badge/skills/gtapps/hermitd/weekly-load-review/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/gtapps/hermitd/weekly-load-review"><img src="https://agentmods.dev/badge/skills/gtapps/hermitd/weekly-load-review.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00018 | $0.01258 |
| Opus 5.5 | $0.00007 | $0.00503 |
| Sonnet 5.5 | $0.00004 | $0.00252 |
| Haiku 4.5 | $0.00002 | $0.00126 |
Grade A, and why
weekly-load-review scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 69 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Weekly Training Load Review
Goal
Pull the last 14 days of Strava activities and compute weekly training load summaries for this week (Mon–Sun) and the prior week (Mon–Sun). Compare against the 4-week rolling baseline stored in state/strava-weekly-baselines.json (create if missing).
Steps
- Call
mcp__strava__check-strava-connection. If disconnected, alert the operator via the configured channel and stop. If no channel is configured, pipe the disconnection into.hermit/bin/hermitd-run task note .hermit <id>only inside an open record's turn (otherwise skip the note) and stop. - Call
mcp__strava__get-recent-activitieswithperPage: 30to cover 14+ days. - Determine the two week boundaries: this week is the most recent Mon–Sun period ending today (Sunday); the prior week is the Mon–Sun before that. Compute the exact date ranges from today's date.
- For each week compute:
- Run: total distance (km), total elevation (m), session count
- Bike: total distance (km), session count
- Strength: session count, total duration in minutes as
strength_minutes(summoving_timeover WeightTraining/Workout activities: already in the Step 2 payload, no extra call;moving_timeis in seconds, so divide the sum by 60) - Total active days
Also compute load-adjusted run distance (
adjusted_km): for each run activity, deriveelev_gain_per_km = elevation_gain_m / distance_kmand apply a heuristic multiplier to account for the higher mechanical load of gradient (descents especially):< 10 m/km → 1.0×·10 to < 25 m/km → 1.2×·25 to < 40 m/km → 1.35×·≥ 40 m/km → 1.5×. Sum the adjusted distances to get the week'sadjusted_km.
- Read
state/strava-weekly-baselines.jsonandstate/activity-notes.json(or{}if absent) in the same turn. The baselines file is used in step 6; the activity notes will be used in step 8. - Compare this week's
adjusted_kmto the 4-week rolling average ofadjusted_kmfrom the baseline file. If any historical week lacksadjusted_km, use that week's rawkmas its adjusted value for the rolling average.-
25% above average → 🔴 "Load spike: [Y]km (adj) vs [avg]km average"
-
25% below average → 🟡 "Load dip: [Y]km (adj) vs [avg]km average"
- Within range → 🟢 "Consistent load"
-
- Update
state/strava-weekly-baselines.json: append this week's totals, includingadjusted_kmalongside the existing rawkm, andstrength_minutes. Keep only the last 8 weeks. - From the activity list fetched in step 2, collect the IDs of this week's activities. Filter the
activity-notes.jsonread in step 5 to those IDs. If 2 or more RPE entries exist, compute the average (one decimal place) and prepare the line:💬 Avg RPE: X.X/10 (N=<count>). Otherwise prepare no RPE line.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 69 lines · 18 tokens per session scan A d6183920b443
weekly-load-review is a skill published in the GitHub repository gtapps/hermitd (79 stars, last pushed today), licensed MIT. It adds 18 tokens to every session and 1,258 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-02.
Other skills, from other repositories
reinforcement-learning
Reinforcement Learning best practices for Python using modern libraries (Stable-Baselines3, RLlib, Gymnasium). Use when: Implementing RL algorithms (PPO, SAC, DQN, TD3, A2C) Creating custom Gymnasium environments Training, debugging, or evaluating RL agents Setting up hyperparameter tuning for RL Deploying RL models…
cpp-reinforcement-learning
C++ Reinforcement Learning best practices using libtorch (PyTorch C++ frontend) and modern C++17/20. Use when: Implementing RL algorithms in C++ for performance-critical applications Building production RL systems with libtorch Creating replay buffers and experience storage Optimizing RL training with GPU acceleration…
research-poster
Turns a PDF abstract into a polished, fully-editable scientific conference poster (.pptx + PDF + preview) in a matched house style, with honest charts, verified citations, big readable typography, and a render-and-QA loop. Use whenever the user wants to make, build, design, or create a research poster, scientific…
open-problem
Use when the user points at a hard, unsolved, or open problem in any field — mathematics, physics, biology, ML, engineering — and wants a real attack on it. Runs a sustained multi-agent assault: establishes the state of play from primary sources, hunts for the two literatures nobody has combined, generates and kills…
especialista-em-informacao-em-saude
Especialista em Informação em Saúde. Use para dados clínicos e administrativos, sistemas de informação, qualidade do dado e inteligência de gestão em saúde. Palavras-chave: informação em saúde, dados clínicos, dados administrativos, DATASUS, sistemas de informação, inteligência de gestão.
especialista-em-gestao-de-saude
Especialista em Gestão de Saúde. Use para gestão de saúde e serviços assistenciais: indicadores de saúde, qualidade assistencial, regulação, saúde populacional e conformidade. Palavras-chave: gestão de saúde, assistencial, indicadores, qualidade, regulação, saúde populacional, LGPD/HIPAA.