Skip to content
Agentmart
Submit a tool

AGENTS.md · chrisdoc/hevy-mcp

AGENTS.md from chrisdoc/hevy-mcp: 191 lines covering Start with the task, Sources to consult, Discover code efficiently, Respect workspace boundaries and more.

Template by chrisdoc

IndexedMIT★ 523
Write a review

Chalk Labs

Need help deploying AGENTS.md · chrisdoc/hevy-mcp?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode, Claude Code. Read the repository before you give any tool access to your data.

curl -fsSL https://raw.githubusercontent.com/chrisdoc/hevy-mcp/main/AGENTS.md -o AGENTS.md

Read it and adapt it to your project before use.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

The AGENTS.md file that chrisdoc/hevy-mcp (523 stars) keeps for coding agents. It has 191 lines in 7 sections: Start with the task; Sources to consult; Discover code efficiently; Respect workspace boundaries; Apply the existing implementation contracts; Protect credentials and runtime behavior; Validate and finish. Use it as a model for your own project's instructions.

Use cases: prompt-engineering, api-integration

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

What's in it

An AGENTS.md file: instructions coding agents (Codex, Cursor, Copilot, Gemini CLI and others) read before working in a repo.

For
Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode, Claude Code
Length
191 lines
File
AGENTS.md

Sections

  1. Start with the task
  2. Sources to consult
  3. Discover code efficiently
  4. Respect workspace boundaries
  5. Apply the existing implementation contracts
  6. Protect credentials and runtime behavior
  7. Validate and finish

First lines (shown under the repo's MIT license)

# Working in hevy-mcp

Use this file for agent decisions and project invariants. Read the relevant
source below for implementation details; do not copy changing tool versions,
command inventories, or release cascades into this file.

## Start with the task

1. Inspect `git status --short --branch` and `git worktree list`. Preserve
   unrelated changes and other checkouts.
2. For an existing branch or PR, continue there. For new implementation work,
   fetch the intended base (normally `origin/main`) and create a feature branch
   in an isolated worktree. Read-only work needs no branch or dependency install.
3. Read the applicable sources, then inspect the exact code involved. Install
   tools/dependencies only when execution requires them.
4. Complete authorized work through validation and a reviewable result. Carry
   forward the user's corrections and existing authorization. Ask only for
   missing information that blocks progress or an action outside that scope.

Never reset, discard, or overwrite user changes. If a conflict risks those
changes, stop and explain it. Never commit/push to `main` or force-push without
explicit authorization. Use Conventional Commits and keep Git hooks enabled;
investigate hook failures rather than bypassing them.

## Sources to consult

[docs/index.md](./docs/index.md) maps tasks to guides and implementation entry
points, and distinguishes current guidance from historical reports. Use it to
find the relevant owner; verify changing facts in the linked source rather than
copying inventories into instructions. `CLAUDE.md` is a symlink to this file.

| Task                                                      | Source of truth                                                                                                                 |
| --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| Setup, Node policy, required checks, release policy       | [CONTRIBUTING.md](./CONTRIBUTING.md)                                                                                            |
| Commands and pinned development tools                     | [package.json](./package.json), [mise.toml](./mise.toml)                                                                        |
| Workspace ownership, allowed imports, release propagation | [repository/topology.json](./repository/topology.json)                                                                          |
| Test selection                                            | [docs/test-lanes.md](./docs/test-lanes.md), [repository/validation-lanes.json](./repository/validation-lanes.json)              |
| Node transports and lifecycle                             | [packages/node/README.md](./packages/node/README.md)                                                                            |
| Worker deployment, origins, authentication, OAuth         | Cloudflare Worker section of [CONTRIBUTING.md](./CONTRIBUTING.md)                                                               |
| Telemetry and collector integration                       | [docs/observability.md](./docs/observability.md), [Worker version attribution](./docs/cloudflare-worker-version-attribution.md) |
| Generated API client                                      | Generated API client section of [CONTRIBUTING.md](./CONTRIBUTING.md)                                                            |

Use mise's pinned Node, pnpm, and other tools for development commands:
`mise exec -- pnpm ...`, `mise exec -- node ...`, or `mise exec -- npx ...`.
Follow contributor setup and enable Lefthook in the working clone. Report
unavailable tooling; do not silently substitute system versions.

Prefer GitHub MCP for GitHub operations. Use an authenticated alternative such
as `gh` when the connector cannot perform the operation. If Git transport fails,
API publication may publish the validated commit without bypassing hooks or
required pre-push checks. Preserve the verified tree and commit where possible,
and update only the intended feature branch without forcing its ref.

## Discover code efficiently

Read exact named files directly. Use focused `rg` searches and batch independent
reads; expand the search when imports, generated code, or sibling adapters make
the initial result incomplete. Verify findings against source.

<!-- entire-graph:begin -->

Read [.entire/graph-agent.md](./.entire/graph-agent.md) for graph-first discovery
when the graph is available and useful. Read exact named files directly; fall
back to targeted text search and focused source reads when graph retrieval is
unavailable or inconclusive. Verify graph findings against source.
@.entire/graph-agent.md
<!-- entire-graph:end -->

Optional graph tooling must not block useful work. Treat missing graph results
as inconclusive, not proof that code is absent.

## Respect workspace boundaries

The root is a private orchestrator; runtime code belongs under `packages/*`.

| Workspace     | Owns                                                                           |
| ------------- | ------------------------------------------------------------------------------ |
| `hevy-client` | Runtime-neutral native-fetch client and generated API types/schemas            |
| `operations`  | Runtime-neutral reusable Hevy domain operations                                |
| `core`        | Runtime-neutral MCP tools, prompts, resources, execution, and safe diagnostics |
| `node`        | Node server, lifecycle, transports, and telemetry                              |
| `worker`      | Cloudflare bindings, request handling, OAuth, and Worker configuration         |
| `cli`         | Standalone Node command-line client                                            |

`operations` depends on `hevy-client`; `core` depends on both. Adapters consume
these shared packages and do not import one another. Keep Node built-ins and
Cloudflare bindings out of shared runtime-neutral packages. Use topology-approved
exports; do not evade boundaries with private paths or duplicate implementations.

## Apply the existing implementation contracts

### Effect and boundary types

Before writing Effect code, read the installed Effect package's `AGENTS.md`
completely and follow relevant links. Resolve it from the affected workspace.
If absent, use installed source and version-matched official documentation.
Follow CONTRIBUTING's Effect control structure and existing Promise facades.

`ToolDefinition.execute` returns an Effect. Preserve typed errors, cancellation,
deadlines, and the existing execution boundary; do not add separate runners
inside tool implementations or convert unrelated Promise-based adapter code.
Infer handler arguments from schemas. Keep untrusted data `unknown` until
validated; do not bypass schemas with manual casts or `any`.

### MCP changes

Tools live in `packages/core/src/tools/`. Follow `ToolDefinition`, including
`kind`, annotations, `responseContract`, and Effect-returning `execute`.

- Define Zod input shapes in the tool or `tools/input-schemas.ts`; derive
  arguments using `InferToolParams<typeof schema>`.
- Reuse `protocol/response-contracts.ts` and `protocol/output-schemas.ts`.
  Read tools require output schemas; preserve declared write-tool schemas.
- Use `tools/register.ts`, `tools/define-tool.ts`, `ToolRuntime`, the existing
  error policy, `withErrorHandling`, and safe diagnostics.
- Add a co-located test. Input/output, registration, or compatibility changes
  also require a protocol regression through `tools/list` and `tools/call`.
- Verify advertised canonical inputs, supported legacy inputs, and returned
  `structuredContent` against the declared schemas. Keep compatibility parsing
  separate from the advertised schema.

Preserve names, annotations, response contracts, and error behavior unless the
task changes them. Reuse the runtime contract matrix and adapter test lanes.
Measure token cost when descriptions/schemas materially change using
`mise exec -- pnpm run measure:tokens`.

### Generated client

Never hand-edit `packages/hevy-client/src/generated/`. Change the OpenAPI source
or Kubb configuration and run `mise exec -- pnpm run build:client` against the
checked-in specification. Review the complete diff and run the contributor
checks, including `check:openapi` and `check:generated`.

Refresh upstream with `openapi` only for intentional API-contract updates.
Reproducible upstream corrections belong in `scripts/codegen/openapi-spec.js`.
Generated API functions and `.kubb` internals remain private.

## Protect credentials and runtime behavior

Use `.env` or process environment for `HEVY_API_KEY` in local/live lanes.
Never commit real keys or expose them through arguments, URLs, logs, fixtures,
screenshots, or errors. Keep personal workout data and sensitive API responses
out of diagnostics and fixtures. Deterministic tests use fake credentials.

Credentials alone do not authorize live mutations. Use mocks for mutation
tests; create/update/delete live Hevy records only when explicitly authorized.
Do not deploy, publish releases, merge release PRs, or change repository settings
unless the task or an authorized workflow permits it. Prepare and validate the
concrete change before requesting any required final approval.

Ambiguous create outcomes must not trigger blind retries. Routine updates
replace content: omitted exercises are not an unchanged partial update.
Keep stdio stdout reserved for MCP JSON-RPC and use the safe diagnostic path.
Preserve per-request Worker credential isolation.

Worker telemetry exports over OTLP to the project's own OpenTelemetry
Collector. Downstream routing is infrastructure-owned; do not infer a deployed
storage backend from example documentation. Domain-level Cloudflare tracing
and Worker tracing have separate configuration. Distinguish available APIs
from announced features before implementing telemetry changes.

Signals

Stars
523
Forks
96
Open issues
5
Contributors
28
Last commit (this folder)
Oct 11, 2026 (20 days ago)
Last release
Oct 16, 2026 (15 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from chrisdoc

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get AGENTS.md · chrisdoc/hevy-mcp running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying AGENTS.md · chrisdoc/hevy-mcp?

CallGet help
Cite this page

AGENTS.md · chrisdoc/hevy-mcp. Agent Mart. https://agentmart.dev/templates/chrisdoc-hevy-mcp-agents-md (last updated 2026-10-24)