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/freemapslovakia/freemap-v3-react/agents-mdgit clone --depth 1 https://github.com/FreemapSlovakia/freemap-v3-reactWhat 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.04575 | $0.04575 |
| Opus 5 | $0.02287 | $0.02287 |
| Sonnet 5 | $0.00915 | $0.00915 |
| Haiku 4.5 | $0.00458 | $0.00458 |
Grade A, and why
freemap-v3-react 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 — 114 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Project notes for AI agents
(This file is also exposed as CLAUDE.md via a symlink so Claude Code loads it.)
Reference docs
Deeper format/architecture references live in doc/. Consult them before designing changes in the same area:
- Architecture & code-layout reference — the feature-folder convention, the Redux store wiring (
rootReducer.ts/processors.ts), the processor middleware that owns all side effects, state persistence + rehydration, URL-hash sync, the global vs. per-feature i18n split, path aliases, and the layer/tool registries. Read this before adding a feature, a side effect, persisted state, or a new menu/tool/modal — it saves re-reading the tree. - Drawing feature export/import format mapping — GPX/GeoJSON write+read for drawing points/lines/polygons, the
fm:*lossless-shadow design, and the curated Garmin/OsmAnd icon dictionaries. Read this before changing anything insrc/features/export/or in the drawing-conversion processors. - Track data: import, elevation, colorize, export — the shared elevation-acquisition layer (
src/shared/elevation.ts:fetchElevations/enrichElevations/densifyAlong), the shared colorizers (src/shared/colorizers/,isAvailable-gated per feature), the render-only densified geometry that's never exported, the per-consumer elevation policy (route auto-fill vs. track prompt vs. tracking keep-recorded), and KML/KMZ/TCX import + lossless GeoJSON↔GPX transfer. Read this before touching elevation, colorize, the elevation chart, or track-file import/export across routePlanner/dataViewer/tracking/mapFeaturesExport. - GPS recorder integration — how the PWA drives the standalone Android recorder APK over its
127.0.0.1HTTP API: the Android-only availability gate, the loopback/Local-Network-Access connection rules, the wire contract (protocol.tsis the single place to change it), the start-via-intent://flow, how the three failure causes are told apart, and the/track?since=+ SSE catch-up. Read this before touchingsrc/features/gpsRecorder/or anything that talks to the recorder. - Panorama viewer — the 360° terrain view: why the terrain service is addressed directly (it takes the bearer token and clamps quality itself), why a render is only ever started by an explicit act and must abort the one in flight, the two-pass preview, the split between the store and
renderHolder, the repeating-background pan, the label layout, and how a second label source plugs in via the distance buffer. Read this before touchingsrc/features/panorama/. - Viewshed overlay — the
vlayer over the terrain service'sPOST /viewshed: why it is a layer with a toolbar rather than a tool, the radius/scale pair the service validates together, what its alpha means, the render key that decides when Update appears, and the shared render queue. Read this before touchingsrc/features/viewshed/. - Weather radar layer — the animated
Roverlay over the two-feedcache.bigware.skAPI: why every request must set its ownreferrerPolicy(the upstream authenticates byReferer, and the app is servedno-referrer), the wire contract and per-feed zoom bands, the premium bands on the timeline and why locked frames stay on the track, the transient/persisted slice split, the polling processor's deliberate exceptions, and the per-frame tile-layer pool with its cross-fade and pan-drop rules. Read this before touchingsrc/features/weatherRadar/or the radar layer's tile source. - WebMCP agent tools — the tools
src/features/webMcp/registers ondocument.modelContextso a browser AI agent can drive the running app through the store: the API shape and its traps (it isdocument, notnavigator; secure context; thetoolspermissions policy), the lazy registration fromindex.tsx,defineTool's zod → JSON Schema wrapping, andwaitForStatefor the two tools that must await a processor's answer. Read this before adding or changing an agent tool. - SEO bot-prerender architecture — how crawlers get static HTML snapshots while humans get the SPA: the
sitemap-generator/(homepages, layer/tool hub pages, per-feature POI pages), the nginx/__prerenderrouting, and therspackindex-<lang>variants. Read this before changingsitemap-generator/, the sitemap/robots wiring, or the bot routing in the nginx vhost. - Self-hosted Photon geocoder — the search backend on fm5 that replaces
nominatim.openstreetmap.org: why the prebuiltphoton-db-*tarballs are unusable (four languages only) and we import the JSONL dump ourselves, the-languagesset and why widening it costs a re-import, the install layout, the systemd unit and nginx vhost (rate limit, 24 h cache,gzip_types), and the import/re-import runbook. Read this before touching the geocoder host, re-importing a dump, or pointing search at Photon. - Build & deploy gotchas — the
DEPLOYMENTenv var (not--mode) selects the prod build, native CSS nesting must be downleveled via LightningCSS, and the nginx cache-header rules (entry HTMLno-store, only hashed assetsimmutable). Read this before changingrspack.config.ts, the CSS pipeline, or the nginx vhosts. - UI conventions — what each react-bootstrap button
variantmeans by role (dark= dismiss/close,primary= main CTA,secondary= default neutral action,danger= destructive,outline-primary= toggle,warning= upsell). Read this before picking avariantfor a new<Button>. - Feature-announcement log — what has shipped and is worth posting about (with the commits that carry it), and what has already gone out on Facebook / Mastodon. Update the backlog when a user-visible feature lands, and move a topic to Posted once it goes out. Market-intro posts live in the roadmap's Outreach log instead.
- Foreign-growth promotion roadmap — data-driven plan (from Matomo country/language/referrer cuts) for growing usage and premium conversions outside Slovakia: which markets to target (Italy, Poland, Hungary, Austria, …), which UI languages to add next (Slovenian, then French), and the phased outreach steps. Read this before working on foreign promotion, deciding the next UI localization, or interpreting the audience analytics.
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 First seen · 114 lines · 4,575 tokens per session scan A a2783188bac7
freemap-v3-react AGENTS.md is an instructions file published in the GitHub repository FreemapSlovakia/freemap-v3-react (48 stars, last pushed 3d ago), licensed Apache-2.0. It adds 4,575 tokens to every session, about $0.0229 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
SidewalkWebpage copilot-instructions.md
Instructions for ProjectSidewalk/SidewalkWebpage, covering project sidewalk — copilot review guidance, don't duplicate the linters and cross-cutting rules to flag.
SidewalkWebpage evolutions.instructions.md
Instructions for ProjectSidewalk/SidewalkWebpage, a project described as: Project Sidewalk web page.
openstreetmap-statistics AGENTS.md
Instructions for piebro/openstreetmap-statistics, covering creating new statistics, available datasets, dataset structure, changeset data and base columns.
SidewalkWebpage frontend-js.instructions.md
Instructions for ProjectSidewalk/SidewalkWebpage, a project described as: Project Sidewalk web page.
SidewalkWebpage scala.instructions.md
Instructions for ProjectSidewalk/SidewalkWebpage: (minSeverity, regionId); all output field names are snakecase — JSON bodies, GeoJSON properties, CSV headers, GeoPackage fields (labelid, regionname). Flag a snakecase query param or a camelCase output field. Use a scoped JsonConfiguration(JsonNaming.SnakeCase) for…
SidewalkWebpage css.instructions.md
Instructions for ProjectSidewalk/SidewalkWebpage: --text- font shorthands (font: var(--text-body-regular);) — not raw --font- plus hand-picked size/weight. Flag hardcoded hex colors or hand-assembled font stacks where a token fits.