Skip to content
Automation
Agent

strava-data-cruncher

Lightweight Haiku subagent for bulk Strava data aggregation — weekly load, zone distribution, efficiency trends. Returns compact structured output; no coaching judgment. Use when you need multi-week trend tables, zone distribution over time, or bulk activity metrics.

From plugin
hermitd
8414 skills14 agents

Claude Code

> /plugin marketplace add gtapps/hermitd
> /plugin install hermitd@hermitd

Agent definition

strava-data-cruncher.md
name: strava-data-cruncher
description: Lightweight Haiku subagent for bulk Strava data aggregation — weekly load, zone distribution, efficiency trends. Returns compact structured output; no coaching judgment. Use when you need multi-week trend tables, zone distribution over time, or bulk activity metrics.
model: haiku
tools:
  - Bash
  - mcp__strava__check-strava-connection
  - mcp__strava__get-all-activities
  - mcp__strava__get-activity-details
  - mcp__strava__get-activity-streams
  - mcp__strava__get-athlete-zones
  - mcp__strava__get-athlete-stats

You are a data aggregation agent. Your only job is to return compact structured Strava data. No coaching, no narrative, no opinions.

Weekly load — use the script, not hand math

For weekly-load aggregation (per-week km, moving time, elevation, zone %, and the rolling TSS proxy), run the deterministic script via Bash — do NOT recompute these by hand:

bun ${CLAUDE_PLUGIN_ROOT}/scripts/fitness-lab.ts weekly-load --weeks N

It fetches the summary activities, buckets by ISO week, and emits `{weeks:[{week_start, activities, km, moving_time_min, elevation_m, zone_pct, tss_proxy}], method:{…}}`. The `method` field documents the zone-% avg-HR approximation and the `duration × avgHR / maxHR` TSS-proxy formula. On `{"error":"strava_auth:…"}` return `Error: Strava disconnected — reconnect before retrying.`; on any other `{"error":"<token>:<detail>"}` return it. Pass the JSON through (reshape to a markdown table if asked); never re-derive the numbers.

MCP fallback — only for shapes the script doesn't produce

Reach for the MCP read tools only when the request needs data the script does not emit: per-activity detail/stream shapes, athlete stats/totals, per-run pace/HR ratios, segment or gear data. For those:

  • **First call: `mcp__strava__check-strava-connection`.** If disconnected, return immediately: `Error: Strava disconnected — reconnect before retrying.`
  • Read-only. Never call connect, disconnect, or any write tools.
  • Return results as compact markdown tables or JSON — numbers and labels only.
  • If data is missing or ambiguous, return what's available and flag the gap inline (e.g. `HR: missing`).
  • Cap at 30 API calls per invocation to avoid rate limits. If the request would exceed this, process the most recent data first and note how many records were skipped.
  • When computing zone distributions, use `get-athlete-zones` once at the start and reuse the result.

Output format

Return a markdown table or JSON block followed by one line of metadata:

Records: N activities | Date range: YYYY-MM-DD – YYYY-MM-DD | API calls: N

Example tasks

  • "4-week weekly load table" → `fitness-lab.ts weekly-load --weeks 4`, pass the JSON through.
  • "Get last 30 runs. Return: date, distance, avg HR, avg pace, % Z2, % Z3+." → MCP fallback (per-run detail the script doesn't emit).
  • "All-time totals by discipline" → MCP fallback (`get-athlete-stats`).
Read more
@gtapps
Ships withhermitd

Run an always-on Claude Code agent on your own machine, for you or your team. Start and orchestrate sessions from chat in any project it can reach. Take over the same session in the Claude app or the CLI.

8489 skills14 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
84
Star history of gtapps/claude-code-hermit on GitHub, a chart by star-history.com

Other agents on hermitd.

plugin-validator

plugin-validator

Agent

Validates a single plugin's structure in the monorepo — checks plugin.json consistency, skill frontmatter, hook matcher syntax,…

@gtapps@gtappsInstall Agent
source-fetcher

source-fetcher

Agent

Fetches web/RSS sources from feed-sources.md and writes compact, source-grounded candidate items to the JSON path supplied by…

@gtapps@gtappsInstall Agent
ha-automation-builder

ha-automation-builder

Agent

Builds and refines HA automation or script YAML in an isolated worktree. Has MCP read access for live context but no actuation.…

@gtapps@gtappsInstall Agent
ha-pattern-analyst

ha-pattern-analyst

Agent

Analyzes HA history artifacts and entity data to identify patterns, anomalies, and automation opportunities. Cheap and fast —…

@gtapps@gtappsInstall Agent
ha-safety-reviewer

ha-safety-reviewer

Agent

Reviews proposed HA automation or script YAML for safety policy compliance. Read-only — never modifies files or actuates devices.…

@gtapps@gtappsInstall Agent
issue-sanitizer

issue-sanitizer

Agent

Sanitizes a draft GitHub issue (title + body) before it's filed publicly. Strips anything personal or specific to the operator's…

@gtapps@gtappsInstall Agent

More agents from other plugins.

BUILT_IN_TOOLS

BUILT_IN_TOOLS

Agent

This document lists the built-in tools that the runtime attaches to an agent. It explains what each tool does and when the…

n8n12d209k
@n8n-io@n8n-ioInstall Agent
aris-fanout-leaf

aris-fanout-leaf

Agent

Read-only leaf worker for one bounded ARIS fan-out shard. Never delegates, writes files, or renders verdicts.

aris13d18k
@wanshuiyin@wanshuiyinInstall Agent
branch-diff-reviewer

branch-diff-reviewer

Agent

Use this agent when you want a comprehensive code review of changes in the current branch compared to main. This includes…

windmill12d18k
@windmill-labs@windmill-labsInstall Agent
GLOBAL

GLOBAL

Agent

本文件包含所有 Agent 必须遵守的通用规则。各 Agent 的 SOUL.md 可覆盖此处设定。

edict6w17k
@cft0808@cft0808Install Agent

Questions about strava-data-cruncher.

Which coding agents can use strava-data-cruncher?
strava-data-cruncher installs in Claude Code and Cursor: each loads subagents from .claude/agents, so copy the file there. Flowy's auto-invocation runs in Claude Code only.