vep-link
AGENTS.md0 starsChanged 4 months agoMITView on GitHub
Shared repository instructions for agentic coding tools working in vep-link. vep-link is an MCP server wrapping Ensembl VEP and Variant Recoder; FastAPI is a thin host providing /health only and mounting the MCP HTTP app at /mcp. The MCP facade covers variant annotation, identifier recoding, canonical resolution, and cross-build liftover across GRCh38 (rest.ensembl.org) and GRCh37 (grch37.rest.ensembl.org). Primary areas: - veplink/ - Python package, MCP facade, Ensembl client, services, models, transports, and server management - veplink/mcp/ - hand-authored MCP facade (tools,…
- Installs packages
We split this AGENTS.md into the rules it gives an agent
19 rules. About 0 are common, 12 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈12
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 30
Use this file for shared repo-wide agent guidance.
- Distinctive: line 31
Keep CLAUDE.md lean and Claude-specific.
- Very specific: line 32
Prefer Makefile targets over ad hoc commands.
- Very specific: line 33
Use uv.lock as the dependency lock source of truth.
- Distinctive: line 39
Do not revert or overwrite changes you did not make unless explicitly asked.
- Distinctive: line 40
Keep edits scoped to the task and avoid unrelated refactors.
- Distinctive: line 41
Prefer existing code patterns over new abstractions.
- Very specific: line 42
Put tests under tests/; do not create alternate test roots.
- Distinctive: line 43
Use ASCII unless a file already requires non-ASCII content.
- Distinctive: line 44
Treat Ensembl as an external research data service.
- Distinctive: line 45
Keep MCP tools research-use scoped and never imply clinical decision support.
- Very specific: line 46
Zero real network in tests: All Ensembl calls are mocked with respx.
- Very specific: line 65
Use uv for dependency management.
- Very specific: line 66
Use modern Python typing: list[str], dict[str, int], str | None.
- Distinctive: line 68
Keep MCP tool and service behavior covered by unit tests.
- Very specific: line 69
Every input is normalized to canonical CHR-POS-REF-ALT before VEP.
- Distinctive: line 84
Prefer cohesive splits: one module per responsibility.
- Distinctive: line 96
Treat failing checks as real issues unless you have clear evidence otherwise.
- Distinctive: line 97
Do not broaden Ruff or mypy ignores to hide new issues.
≈ “Common” is an estimate: at least 1 in 5 of the 36,368 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
AGENTS.md
Shared repository instructions for agentic coding tools working in vep-link.
Project
vep-link is an MCP server wrapping Ensembl VEP and Variant Recoder; FastAPI is a
thin host providing /health only and mounting the MCP HTTP app at /mcp. The
MCP facade covers variant annotation, identifier recoding, canonical resolution,
and cross-build liftover across GRCh38 (rest.ensembl.org) and GRCh37
(grch37.rest.ensembl.org).
Primary areas:
vep_link/- Python package, MCP facade, Ensembl client, services, models, transports, and server managementvep_link/mcp/- hand-authored MCP facade (tools, resources, errors, shaping)vep_link/api/- resilient async HTTP base client + Ensembl VEP/Recoder clientvep_link/services/- orchestration (resolve/annotate/recode/liftover) + annotation extractiontests/- unit and integration tests;tests/fixtures/holds canned Ensembl payloadsdocs/- usage, API, and MCP tool docsdocker/- Dockerfile and Composedocs/superpowers/specs/anddocs/superpowers/plans/- design + execution artifacts for agentic workers
Source Of Truth
- Use this file for shared repo-wide agent guidance.
- Keep
CLAUDE.mdlean and Claude-specific; it references this file. - Prefer
Makefiletargets over ad hoc commands. - Use
uv.lockas the dependency lock source of truth. - For multi-step work, follow the spec in
docs/superpowers/specs/and the plan indocs/superpowers/plans/.
Working Rules
- Do not revert or overwrite changes you did not make unless explicitly asked.
- Keep edits scoped to the task and avoid unrelated refactors.
- Prefer existing code patterns over new abstractions.
- Put tests under
tests/; do not create alternate test roots. - Use ASCII unless a file already requires non-ASCII content.
- Treat Ensembl as an external research data service.
- Keep MCP tools research-use scoped and never imply clinical decision support.
- Zero real network in tests. All Ensembl calls are mocked with
respx; thetests/conftest.pyno-network guard fails any un-mocked request. Live tests are markedintegrationand excluded from default CI. - MCP tool names, schemas, resources, and response modes are owned by
vep_link/mcp/. REST is intentionally minimal (/healthonly).
Commands
Required before claiming completion:
make ci-local
Useful focused commands: make install, make format, make lint,
make lint-loc, make typecheck, make test, make test-fast,
make test-cov, make test-integration, make precommit, make dev,
make docker-build, make docker-up.
Coding Standards
- Use
uvfor dependency management; neverpip installdirectly. - Use modern Python typing:
list[str],dict[str, int],str | None. - Format and lint with Ruff; type check with mypy targeting Python 3.12.
- Keep MCP tool and service behavior covered by unit tests.
- Every input is normalized to canonical
CHR-POS-REF-ALTbefore VEP. Do not reintroduce per-type VEP GET endpoints on the main annotation path; resolve via Variant Recoder then batch through VEP region POST. - Honor Ensembl rate limits: 429/Retry-After backoff, 200-variant POST chunks.
- Preserve MCP tool names and response schemas unless the task explicitly calls for a breaking change.
File Size Discipline
Hard cap: 600 lines per Python module in vep_link/. Enforced by
make lint-loc (wired into ci-local and pre-commit). Tests are exempt.
- New files MUST stay under 600 lines.
- Existing oversized files are grandfathered in
.loc-allowlist; they may shrink but not grow. - Prefer cohesive splits: one module per responsibility.
Testing Notes
make testruns deterministic unit tests fromtests/unit/(single process).make test-fast/make test-unitrun in parallel via pytest-xdist with the worker count capped byPYTEST_MAXPROCESSES(default 4) so-n autocannot fan out to every core on a many-core host and OOM a RAM-constrained machine. Override withmake test-fast PYTEST_MAXPROCESSES=8, or usemake testfor a single process.make test-integrationruns live Ensembl tests (may rate-limit).make test-covenforces the 80% coverage floor (single process).- Treat failing checks as real issues unless you have clear evidence otherwise.
- Do not broaden Ruff or mypy ignores to hide new issues.
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 28,693 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository9 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- ci-failure-triageSkill
- code-quality-reviewSkill
- dependency-cve-sweepSkill
- fastapi-route-changeSkill
- fleet-standard-adoptionSkill
- mcp-tool-changeSkill
- release-readinessSkill
- security-reviewSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

