Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/latitude-dev/latitude-llm/agents-mdgit clone --depth 1 https://github.com/latitude-dev/latitude-llmWrote 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.
[](https://agentmods.dev/instructions/latitude-dev/latitude-llm/agents-md)<a href="https://agentmods.dev/instructions/latitude-dev/latitude-llm/agents-md"><img src="https://agentmods.dev/badge/instructions/latitude-dev/latitude-llm/agents-md.svg" alt="Measured on agentmods" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.04006 | $0.04006 |
| Opus 5 | $0.02003 | $0.02003 |
| Sonnet 5 | $0.00801 | $0.00801 |
| Haiku 4.5 | $0.00401 | $0.00401 |
Grade A, and why
latitude-llm AGENTS.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 2d ago.
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.
How it starts
The opening of the file, as written. The whole thing — 77 lines — stays where its author put it; the contents beside it link to each section on GitHub.
AGENTS.md
High-level guide for coding agents working in this repository.
Product scope
Multi-tenant LLM observability platform. The repo is a pnpm workspace orchestrated with Turbo.
At a glance: apps/* own transport (middleware, authn, mounting); @repo/operations owns the public API's operation contracts (validation, public schemas, routing to use-cases) shared by HTTP/MCP/SDK/CLI and in-process agent tools; packages/domain/* own business rules and ports; packages/platform/* implement infrastructure adapters; @repo/utils holds cross-cutting pure helpers. Telemetry and control data flow through Postgres, ClickHouse, Redis, and object storage, with organization-scoped access everywhere at the boundary.
Repo-wide conventions
- Organization-scoped Redis or cache keys must start with the organization prefix:
org:${organizationId}:.... Put the org id first so tenancy is obvious and keyspaces stay consistently partitioned. - Code comments are rare, and one line when they exist. Default to no comment — naming and structure should carry the meaning; a comment explaining what code does is a signal to rewrite the code, not to annotate it. Write a comment only for something the code cannot show: a trap (code that looks wrong, removable, or simplifiable but breaks something — ordering requirements, magic values, workarounds for framework/library quirks), a non-obvious external constraint, or contract docs where the file's existing convention documents every sibling (e.g. JSDoc on every method of a port). Never narrate the change you just made, restate what the next line does, paraphrase a well-named identifier, add section-header comments, or explain design rationale in the code — rationale belongs in the commit or PR description. When editing existing code, don't add comments describing your edit, and feel free to delete comments your change made stale or redundant. A comment describes the code as it stands, not the development process that produced it: never anchor one to transient context like a rollout phase, ticket id, or "new"/"now" framing (e.g.
// Phase 2 (LAT-749): ...) — that reads as stale the moment the phase lands; state what the code does and put the ticket in the commit/PR. The only comments that may name a ticket are actionableTODO/FIXMEmarkers for work not yet done. - Never invoke
tscdirectly. Typechecking goes throughtsgovia the packagetypecheckscript — usepnpm --filter <pkg> typecheckfor one package orpnpm typecheckfor the whole workspace.tscwould diverge from CI. - ClickHouse migrations must be created with
pnpm --filter @platform/db-clickhouse ch:create <migration_name>. Do not create ClickHouse migration files manually. - PR base branch follows the branch's origin. Branches forked from
development(v2 work, default) PR intodevelopment; branches forked fromlatitude-v1(v1 maintenance) PR intolatitude-v1. Never start a branch frommainwithout confirmation — if the working branch is based onmain, or the user asks to branch frommain, confirm with the user first. Detect an existing branch's base by testing ancestry in order: ifgit merge-base --is-ancestor origin/latitude-v1 HEADis true →latitude-v1; else ifgit merge-base --is-ancestor origin/development HEADis true →development; else the branch is likely based onmain(or something unusual) — stop and confirm with the user before opening a PR. When the user asks to start a new branch, take the base from their wording (mentions of v1 →latitude-v1; otherwise default todevelopment). - Production deploys use the single-branch release-tag flow:
developmentis trunk and deploys to staging by default; production is triggered only by pushing avX.Y.Ztag that points at the latestorigin/developmentcommit. Before tagging a production release, updateCHANGELOG.mdwith a human-readable diff of the code being pushed to production since the previous production deploy, focusing on the major aspects rather than every commit. Usescripts/release.sh [version]to fetch and tag the latestorigin/developmentcommit; without a version it bumps the latestvX.Y.Ztag to the next patch version, with--minor/--majoravailable for larger bumps. Do not promote by mergingdevelopmentintomain. - Keep the product cleanly OSS and self-hostable. Shipped runtime dependencies must be permissively licensed (MIT/Apache-2.0/BSD/ISC) — no AGPL/SSPL/source-available code in the application bundle; audit a new dependency's license (and its transitive additions) before adding it. The self-host object store is SeaweedFS (Apache-2.0) — never reintroduce MinIO or any AGPL store as a bundled default. Keep every infra dependency isolatable and bring-your-own-able (dedicated schema/db/namespace/bucket; Redis keys namespaced under
latitude:) so a self-hoster can swap any bundle for a managed instance. Rationale + full audit:dev-docs/licensing.md; self-host architecture:dev-docs/self-hosting.md. - Private partner endpoints live under
/v1/private/*and are plain Hono routes. They serve vetted, staff-registered partners, are authenticated by per-partner HMAC request signing (never a bearer token), and must stay off every generated surface — use a plainapp.post(...), neverapp.openapi/createRoute, neverdefineOperation. Every pre-scope refusal returns an identical401 {"error":"unauthorized"}so the surface can't be used to enumerate partner ids; only a scope failure gets a distinct 403. Details:dev-docs/partners.md. - Two image registries, distinct jobs. Public self-host images go to Docker Hub
latitudedata/<service>— env-neutral, multi-arch, for the six build targets (api,ingest,workers,workflows,web,migrations) — tagged to the release flow::X.Y.Z+:lateston a release (gitvX.Y.Zwith thevstripped) are the stable tags self-hosters pin,:developmentis the trunk edge tag. GHCR (latitude-<env>-<service>, sha-tagged) stays Latitude's private own-deploy registry and is never the self-host source.
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.
- 2d ago Changed · +1 lines · +132 tokens per session 2a8f3dc5fbd9
- 4d ago First seen · 76 lines · 3,874 tokens per session scan A 83ed205aa6d5
latitude-llm AGENTS.md is an instructions file published in the GitHub repository latitude-dev/latitude-llm (4,619 stars, last pushed today), licensed MIT. It adds 4,006 tokens to every session, about $0.0200 per session on Opus 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-30.
Other instructions, from other repositories
trulens AGENTS.md
AGENTS.md instructions for truera/trulens, covering agents.md, setup commands, code style, testing instructions and test markers.
agenttrail AGENTS.md
AGENTS.md instructions for sodiumsun/agenttrail: Maintain PLAN.md as the living plan. It is read by the project OWNER, not by you — write it for them.
phoenix AGENTS.md
AGENTS.md instructions for Arize-ai/phoenix, covering agent instructions, build & development and python dependency version policy.
phoenix CLAUDE.md
Claude Code instructions for Arize-ai/phoenix, a project described as: AI Observability & Evaluation.
codex-task-watchdog AGENTS.md
Instructions for TanChuping/codex-task-watchdog, a project described as: Local-first watchdog and Codex skill for stalled tool calls, long-running task monitoring, oversized-thread diagnosis, bounded cleanup, and safe handoff recovery.
agenttrail CLAUDE.md
Claude Code instructions for sodiumsun/agenttrail: Maintain PLAN.md as the living plan. It is read by the project OWNER, not by you — write it for them.