awesome-rayfin / maritime-insights
AGENTS.md108 starsChanged 5 months agoMITView on GitHub
Read PLAN.md before changing anything. §1.0 and §3 are binding and outrank convenience. 1. No customer, account, company or programme name. Not in code, plans, comments, tests, fixtures or commit messages. Value is expressed by buyer archetype (PLAN §1.1–1.2). The repo is headed for a public template and git history cannot be cleaned later without a rewrite. 2. Geometry, not a radar model. The app computes a 4/3-earth horizon against measured terrain. No RCS, no clutter, no propagation anomaly, no…
We split this AGENTS.md into the rules it gives an agent
4 rules. About 0 are common, 3 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 3
Read PLAN.md before changing anything.
- Distinctive: line 7
No customer, account, company or programme name: Not in code, plans, comments, tests, fixtures or commit messages.
- Distinctive: line 11
No RCS, no clutter, no propagation anomaly, no detection probability, no product performance — in any build, including one running in a …
- Distinctive: line 13
No invented data: If a figure is not published, the app says so rather than interpolating something plausible.
≈ “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 — working rules for this repository
Read PLAN.md before changing anything. §1.0 and §3 are binding and outrank convenience.
The three rules that are not negotiable
- No customer, account, company or programme name. Not in code, plans, comments, tests, fixtures or commit messages. Value is expressed by buyer archetype (PLAN §1.1–1.2). The repo is headed for a public template and git history cannot be cleaned later without a rewrite.
- Geometry, not a radar model. The app computes a 4/3-earth horizon against measured terrain. No RCS, no clutter, no propagation anomaly, no detection probability, no product performance — in any build, including one running in a customer's own tenant. That physics is theirs to model.
- No invented data. If a figure is not published, the app says so rather than interpolating something plausible. A demo that quietly fabricates is worse than a demo with a visible gap.
Data rules
- Register a source in
NOTICE.mdbefore using it. That file is a gate, not documentation. - No coordinate is ever recalled. Everything in
config/aoi/*.jsoncomes out oftools/geodata/resolve_places.pyand carries the OSM element it came from. - Reachability is not availability. Two sources here answer HTTP 200 with an empty payload (a regional Overpass mirror, and the tile index when throttling). Treat empty as failure.
- Vessel identity is a build setting, not a constant.
fetch_ais.py --identityand the relay'sAIS_IDENTITYchoose betweenfull(MMSI, name, call sign, IMO, destination, draught — the default),commercial(identity for commercial traffic, pseudonyms for pleasure and sailing craft) andanonymous. All three are supported; the app reads what the data carries and says which it is. Never write a claim about identity that the setting could falsify — a notice saying "no names, deliberately" beside a named ship costs the reader's trust in every other notice on the page. - Naval vessels are pseudonymised in every mode. Rule 3 of PLAN §3.2 — never a way to find a
warship — outranks the identity setting and was not withdrawn with it. Detected by ship type
and by name (
GERMAN WARSHIP …), decided per vessel, never per row: identity fields only appear on sparse static messages, so a per-row test splits one hull across two keys and silently changes every passage count downstream. public/is the public internet. Anything §3 forbids showing must not live under it, and the Entra gate protects the app, not the bytes. Infullmodepublic/terrain/*/tracks.jsoncarries vessel names — a bounding-box subset of an archive the Danish Maritime Authority already publishes openly. If that ever stops being the intent, rebuild with--identity commercial.
Engineering rules inherited from the sibling repos, already paid for
- Registration is a build gate, not a report. A coverage shadow over a misregistered coast looks authoritative, which is worse than no map. The cheapest check here is free: any AIS track on rendered land means something is wrong.
- True scale by default. Exaggeration is a claim the survey does not make — and with only ~90 m of relief in this AOI, exaggerating the coast would exaggerate the shadow the demo is about.
- VRAM, not megabytes, is the ceiling. A 12 MB drape JPEG is 238 MB of RGBA on the GPU. Ship
KTX2. A texture over
MAX_TEXTURE_SIZEfails silently — assert dimensions in code. - Never name a pre-compressed asset
.gz. Dev servers setContent-Encodingon it and production hosts do not; same file, opposite behaviour. Use a neutral extension and detect the1f 8bmagic by content. - Custom-shader scenes have no lights. A standard material renders black. Repeat the same sun vector in every material.
- Verify rendered output with rendered pixels. In a sibling repo, type-checking, 54 unit tests, 57 e2e tests and lint were all green while the app drew the entire valley wrong.
- A minified bundle will not give up its endpoints to static analysis. Load the page and capture the network. That is how this repo's tile index was found, and it takes minutes.
Python tooling
Standard library plus numpy, pillow, scipy — see tools/requirements.txt. No GDAL, no pyproj,
no rasterio: the UTM transform is implemented directly in tools/geodata/utm.py so that nothing
stands between a fresh checkout and a working pipeline.
⚠️ On Windows, write scripts to a file and run them; PowerShell mangles multi-line python -c with
quotes, and PowerShell 5.1 file I/O is cp1252 unless told otherwise, which silently corrupts umlauts
on a round trip.
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 repository33 other files it gives its agents.
- AGENTS.mdAGENTS.md
- templates/angular-blankapp/AGENTS.mdAGENTS.md
- templates/angular-dashboard/AGENTS.mdAGENTS.md
- templates/campus-scheduler/AGENTS.mdAGENTS.md
- templates/fabric-atlas/AGENTS.mdAGENTS.md
- templates/field-technician/AGENTS.mdAGENTS.md
- templates/finance-analytics/AGENTS.mdAGENTS.md
- templates/ibcs-trainer/AGENTS.mdAGENTS.md
- templates/paragliding-insights/AGENTS.mdAGENTS.md
- templates/slide-deck/AGENTS.mdAGENTS.md
- templates/static-blankapp/AGENTS.mdAGENTS.md
- templates/todo-local-experimental/AGENTS.mdAGENTS.md
- templates/universal-app/AGENTS.mdAGENTS.md
- template-gallerySkill
- rayfinSkill
- rayfinSkill
- rayfinSkill
- rayfinSkill
- rayfinSkill
- rayfinSkill
- rayfinSkill
- rayfinSkill
- analyticsSkill
- app-designSkill
- authenticationSkill
- build-workflowSkill
- capability-routerSkill
- data-modelingSkill
- daxSkill
- fabric-dataSkill
- graphein-visualsSkill
- headless-previewSkill
- visualsSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

