bump-core-req
Updates the minimum core version requirement for a fleet plugin in all three canonical places: `required_core_version` and `requires["claude-code-hermit"]` in…
Routine check: detects multi-session cardiac-drift trends across recent compiled activity notes. Runs weekly via its own routine; findings are routed through the proposal pipeline as Evidence Source: scheduled-check/weekly-coaching-patterns.
$ npx -y skills add gtapps/claude-code-hermit --skill weekly-coaching-patterns --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/weekly-coaching-patternsContext preview
The summary Claude sees to decide when to auto-load this skill.
Routine check: detects multi-session cardiac-drift trends across recent compiled activity notes. Runs weekly via its own routine; findings are routed through the proposal pipeline as Evidence Source: scheduled-check/weekly-coaching-patterns.
name: weekly-coaching-patterns description: "Routine check: detects multi-session cardiac-drift trends across recent compiled activity notes. Runs weekly via its own routine; findings are routed through the proposal pipeline as Evidence Source: scheduled-check/weekly-coaching-patterns." allowed-tools: - Bash(bun *fitness-lab.ts*)
Routine skill: reads the last 4 `compiled/activity-*.md` artifacts for steady sessions and detects whether cardiac drift is trending upward over time. Returns a fixed findings block for `reflect --check-id weekly-coaching-patterns --check claude-code-fitness-hermit:weekly-coaching-patterns` to classify and route.
**Contract:** idempotent, read-only, no self-scheduling, short-running. Returns findings or silence — never creates proposals itself.
1. **Run the trend check.** Issue a single Bash call:
bun ${CLAUDE_PLUGIN_ROOT}/scripts/fitness-lab.ts weekly-patternsThe script does the whole deterministic pass — filesystem only, no Strava token: globs `.claude-code-hermit/compiled/activity-*.md`, keeps entries whose frontmatter has `type: activity-note` AND `session_kind: steady`, takes the 4 most recent by `created`, reads each note's **signed** drift from the `cardiac_drift_bpm` frontmatter field, falling back to the body's `Cardiac drift:` line for notes written before that field existed (neither present → excluded; a negative value compares as smaller than any positive — the sign is never stripped), and evaluates a strict oldest-to-newest monotonic rise across all 3 adjacent pairs. It emits:
{"steady_sessions_found": <int>, "series": [{"file": "…", "date": "…", "drift": <signed int>}], "trend": "upward" | "none" | "insufficient-data"}`series` is ordered oldest-to-newest. `trend: "upward"` means the 4-value bpm series is strictly increasing (the deliberately strict v1 bar — avoids false positives from noisy week-to-week variation). `"none"` = 4 values but not monotonic; `"insufficient-data"` = fewer than 4 drift values (expected on interval/strength-heavy weeks — not an error).
**Anti-duplication guard:** emit a finding ONLY on `trend: "upward"` (the quantitative numeric rise). Do NOT emit on label recurrence alone.
2. **Output the findings block.** Always output a plain-text findings block to stdout, regardless of outcome. `reflect --check-id weekly-coaching-patterns --check claude-code-fitness-hermit:weekly-coaching-patterns` classifies the result from this block.
**`trend: "upward"`:**
weekly-coaching-patterns findings — <YYYY-MM-DD> Coaching patterns: 1 - Coaching pattern detected [cardiac-drift-high]: cardiac drift rising across 4 consecutive steady sessions (<V1>→<V2>→<V3>→<V4> bpm) — check pacing strategy and hydration; consider an easy recovery run next session
Replace `<V1>`…`<V4>` with the four `series[].drift` values in order (oldest-to-newest, each rendered with its sign, e.g. `+6`), and `<YYYY-MM-DD>` with today's date.
**`trend: "none"` or `"insufficient-data"`:**
weekly-coaching-patterns findings — <YYYY-MM-DD> No actionable findings.
The `[cardiac-drift-high]` label reuses the seed vocabulary from `activity-deep-dive` step 7b — no new label is introduced.
Four steady sessions, oldest-to-newest, with drift lines `+4`, `+7`, `+9`, `+13`:
weekly-coaching-patterns findings — 2026-05-31 Coaching patterns: 1 - Coaching pattern detected [cardiac-drift-high]: cardiac drift rising across 4 consecutive steady sessions (+4→+7→+9→+13 bpm) — check pacing strategy and hydration; consider an easy recovery run next session
The same four sessions with values `+4`, `+7`, `+6`, `+13` do **not** hold (the `+7→+6` pair falls), so the output is the `No actionable findings.` block. A series of `-3`, `+1`, `+5`, `+9` **does** hold (every pair rises; the leading negative compares as smallest).
The following metrics follow the same steady-session pattern and would add items to the Coaching patterns list. NOT implemented in v1 — cardiac drift alone proves the mechanism end-to-end.
If you know Claude Tag, the idea will feel familiar: hand Claude work through a channel, such as Discord, Telegram, or your custom integration, and get results back there.
Repo: gtapps/claude-code-hermit
Updates the minimum core version requirement for a fleet plugin in all three canonical places: `required_core_version` and `requires["claude-code-hermit"]` in…
Changelog and commit — lightweight motion for day-to-day plugin dev work in the monorepo. One commit per plugin scope; CHANGELOG and staging routed by detected…
Documentation-drift audit for the plugin monorepo. Audits either each scoped plugin's unreleased changelog claims or its latest shipped release from the…
Explain in plain language what a fix, feature, PR, or plan will actually change for downstream hermits and the operators chatting with them — a before/after…
Use this skill whenever the user wants to release, ship, prep, or cut versions for two or more plugins together on the current branch. Trigger on phrasings…
Daily release-pipeline digest with a change gate — reports which plugins are pending release, whether main's CI is green, which branches went stale, and GitHub…