coach-mcp: Instructions file for Claude Code

CLAUDE.md

coach-mcp CLAUDE.md is an instructions file for Claude Code from snoozelieb/coach-mcp. It costs 3,196 tokens per session, scanned A, original, MIT.

Project instructions for Claude Code when working on the garmin-coach-mcp repository, an adaptive AI training coach connected to Garmin fitness data. They describe the project, its commands, and where its coaching rules live.

In plain words
What is it for?
Use them when developing, testing, or planning changes to the Garmin coaching server, its MCP connection, fitness-data handling, memory, and workout calendar features.
Why use it?
They keep development work aligned with the repository's tested instructions and prevent the coaching rules from being copied into a file where they could become outdated.

Instructions file for Claude Code

Written for Claude Code: the file is CLAUDE.md. Also seen: reads .claude/ paths; mentions CLAUDE.md; mentions Claude Code.

This is snoozelieb/coach-mcp's own configuration. It tells Claude Code how to work on coach-mcp itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything coach-mcp configures →

Reuse

Borrowing it

Nothing to install: this file belongs to snoozelieb/coach-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/snoozelieb/coach-mcp/main/CLAUDE.md
Clone the repo
git clone --depth 1 https://github.com/snoozelieb/coach-mcp

Made for: Claude Code.

Wrote 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.

agentmods badge for coach-mcp CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/snoozelieb/coach-mcp/claude-md/github.svg)](https://agentmods.dev/instructions/snoozelieb/coach-mcp/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/snoozelieb/coach-mcp/claude-md"><img src="https://agentmods.dev/badge/instructions/snoozelieb/coach-mcp/claude-md/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.

agentmods 80×15 button for coach-mcp CLAUDE.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/snoozelieb/coach-mcp/claude-md"><img src="https://agentmods.dev/badge/instructions/snoozelieb/coach-mcp/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 3,196 This file is loaded in full into every session.
When invoked 3,196 The same file — it is already loaded in full.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.03196 $0.03196
Opus 5.5 $0.01278 $0.01278
Sonnet 5.5 $0.00639 $0.00639
Haiku 4.5 $0.00320 $0.00320

Measured yesterday against content hash f0f8466521d9, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

coach-mcp CLAUDE.md 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 yesterday.

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.

CLAUDE.md · 226 lines

How it starts

The opening of the file, as written. The whole thing — 226 lines — stays where its author put it; the contents beside it link to each section on GitHub.

CLAUDE.md

Development context for Claude Code (claude.ai/code) sessions in this repository.

Coaching doctrine lives in the server, not in this file. Every MCP client — Claude Code included — receives the coaching identity at connection time via SERVER_INSTRUCTIONS (coach/mcp_app.py; test-enforced under 3,900 chars because Claude Code sends the model only the first 4,096) and the long-form coach://coaching/doctrine resource (uncapped, fetched on demand; completeness pinned by tests/test_server_instructions.py). When coaching from this repo, follow those surfaces — the four hard mandates (snapshot first, injury hard gate, verify before confirming, verify before prescribing) — and read the doctrine resource before planning sessions. Do not copy doctrine into this file: the duplicate is the copy that drifts.

Project Overview

An adaptive AI training coach MCP server: fetches fitness data from Garmin Connect, maintains a rolling 7-day plan with a PURPOSE for every session, persists coaching memory (decisions, anomalies, approvals) across sessions, and pushes workouts to the Garmin calendar. Published as garmin-coach-mcp on PyPI and io.github.snoozelieb/coach-mcp on the MCP registry.

The safety-critical coaching rules are code-enforced, not prompt-enforced: update_weekly_plan rejects non-rest sessions without a purpose (purpose gate) and sessions matching an active/improving injury's restricted_activities (injury gate — taxonomy-aware, re-run on the full plan at push); plans entirely in the past or with days >21 in the future are rejected; anomalies and season auto-proposals are idempotent by stable id / event-tag, so rejections are remembered forever. Capacity grounding is code too: snapshot.capacity is derived from persisted daily_loads (coach/fitness.py: capacity_by_sport, derive_sport_capacity); update_weekly_plan returns grounding_warnings (advisory), while training_program(action='set') rejects a program whose capacity anchor the history contradicts, and runs the injury gate as well. See coach/tools/planning_tools.py and coach/tools/decision_tools.py.

Read the full file on GitHub · 226 lines

Changes

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.

  1. yesterday Changed · +34 lines · +629 tokens per session f0f8466521d9
  2. 1mo ago First seen · 192 lines · 2,567 tokens per session scan A 0e6ecb611bc7

Subscribe to this mod's changes

coach-mcp CLAUDE.md is an instructions file published in the GitHub repository snoozelieb/coach-mcp (3 stars, last pushed yesterday), licensed MIT. It adds 3,196 tokens to every session, about $0.0128 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-08-31.

Related

Other instructions, from other repositories