agentleFS
jaaklajaakla/openmapstack/AGENTS.md

openmapstack

AGENTS.md76 starsChanged 45 days agoMITView on GitHub

This file is the canonical maintainer guide for coders (including AI coding agents) working on the OpenMapStack repository. Keep repository-wide development guidance here and keep it vendor-neutral. OpenMapStack is a managed agent-skill codebase, not an OpenMapStack GIS analysis project. The repository develops and quality-assures a distributable geospatial agent skill: Do not treat a shipped SKILL.md as maintainer instructions for this repository. Read or edit it when the task concerns the shipped skill behavior, but do not preload or follow its…

  • Installs packages

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 1

    1. jaakla/openmapstack-skills★ 76100% same

    Edited · 0

    None found.

    Wrote their own version · 0

    None found.

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • 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 31,774 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 repository13 other files it gives its agents.

The file

Show its rules and text

We split this AGENTS.md into the rules it gives an agent

27 rules. About 0 are common, 20 are distinctive, and 7 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈20

    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
  1. Very specific:

    Do not treat a shipped SKILL.md as maintainer instructions for this repository.

    line 17
  2. Distinctive:

    Read only what is relevant to the current issue.

    line 21
  3. Very specific:

    Prefer the code/schema/test that owns a behavior over a prose summary elsewhere.

    line 36
  4. Distinctive:

    Treat supported agents as peer implementations of the same behavioral contract.

    line 44
  5. Distinctive:

    Keep normalized eval evidence and scoring vendor-neutral.

    line 45
  6. Distinctive:

    Read this file, the issue/task, and git status/the current diff.

    line 55
  7. Very specific:

    Read docs/maintainers/ only when architecture, rationale, recurring traps, or prior decisions could materially affect the task.

    line 57
  8. Very specific:

    Read SKILL.md or detailed references only if the change affects shipped skill behavior.

    line 58
  9. Distinctive:

    Add or update the appropriate test/eval evidence.

    line 60
  10. Distinctive:

    Run the narrowest relevant checks, then broader checks when the change warrants them.

    line 61
  11. Distinctive:

    Update README/reference docs only when their public contract or usage has changed.

    line 62
  12. Distinctive:

    Do not recursively read the whole repository to "understand the project" before working.

    line 64
  13. Distinctive:

    When work reveals a non-obvious fact that will matter across future sessions or tools, promote it to the repository only when rediscovery …

    line 70
  14. Distinctive:

    Do not persist facts that are obvious from the code, cheap to rediscover, specific to one transient session, or already owned by another …

    line 79
  15. Very specific:

    When editing docs/maintainers/, follow its nested AGENTS.md: keep those notes concise, provider-neutral, linked to owning sources, and free …

    line 81
  16. Very specific:

    When changing SKILL.md or references/:

    line 85
  17. Distinctive:

    Treat the text as shipped executable guidance whose consumers may be many different agents.

    line 87
  18. Very specific:

    Keep SKILL.md focused on high-value behavior and routing.

    line 88
  19. Distinctive:

    Prefer behavioral requirements and observable outcomes over vendor-specific prompting tricks.

    line 89
  20. Distinctive:

    Keep volatile provider details out of shipped guidance: file formats, layer and field names, code values, counts, download URL patterns, …

    line 90
  21. Distinctive:

    Do not weaken reproducibility, provenance, validation, or correctness rules merely to make a benchmark easier to pass.

    line 92
  22. Distinctive:

    Use the layer that proves the thing you changed:

    line 97
  23. Distinctive:

    Keep changes scoped to the task and keep generated result artifacts out of commits unless they are intentional fixtures/evidence.

    line 143
  24. Distinctive:

    When changing a contract or schema, update its validators, tests, templates/examples, and docs as required by that contract.

    line 144
  25. Distinctive:

    When changing an eval assertion, prove both the healthy/control path and the intended failure path where applicable.

    line 145
  26. Distinctive:

    Keep README and public docs synchronized with externally visible behavior, not with internal implementation trivia.

    line 147
  27. Distinctive:

    Do not claim a task is complete until the relevant checks have actually run, or explicitly report what could not be run and why.

    line 149

≈ “Common” is an estimate: at least 1 in 5 of the 40,246 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
AGENTS.md

AGENTS.md

This file is the canonical maintainer guide for coders (including AI coding agents) working on the OpenMapStack repository. Keep repository-wide development guidance here and keep it vendor-neutral.

What this repository is

OpenMapStack is a managed agent-skill codebase, not an OpenMapStack GIS analysis project.

The repository develops and quality-assures a distributable geospatial agent skill:

  • skills/<name>/SKILL.md and each skill's references/ are product artifacts consumed by agents in other projects.
  • templates/ and examples/ define and demonstrate the artifacts the skill should cause those agents to produce.
  • openmapstack/ is executable support code for validating, running, inspecting, and verifying those artifacts.
  • evals/ measures whether the skill and its supporting contract produce correct, reproducible behavior.
  • tests/ tests the repository's Python implementation and eval infrastructure.

Do not treat a shipped SKILL.md as maintainer instructions for this repository. Read or edit it when the task concerns the shipped skill behavior, but do not preload or follow its GIS workflow merely because you are modifying this codebase.

Sources of truth

Read only what is relevant to the current issue.

AreaSource of truth
Shipped agent behaviorskills/<name>/SKILL.md
Detailed shipped guidanceskills/<name>/references/*.md; shared copies are checked by scripts/sync_skill_assets.py
Reproducible project contractskills/open-map-stack/references/project-spec.md
Project templatestemplates/ (canonical); installed copies in each skill
Canonical worked integration exampleexamples/tartu-development/
CLI, schema handling, reusable checksopenmapstack/
Eval architecture, cases, scoring, live adaptersevals/README.md, evals/
Maintainer architecture/rationale/debugging knowledgedocs/maintainers/
Implementation teststests/
User-facing install and usage docsREADME.md

Prefer the code/schema/test that owns a behavior over a prose summary elsewhere. Avoid duplicating detailed rules between files; link to the authoritative source instead.

Agent and provider neutrality

OpenMapStack must remain useful across coding agents and model providers.

  • Shared skill instructions, project contracts, schemas, checks, and scoring semantics must not assume Claude, Codex, OpenAI, Anthropic, or any other vendor.
  • Provider-specific behavior belongs behind an explicit compatibility surface such as evals/adapters/, .claude-plugin/, agents/, or a provider-specific CI leg.
  • Treat supported agents as peer implementations of the same behavioral contract. Do not make one adapter's quirks the generic architecture.
  • Keep normalized eval evidence and scoring vendor-neutral; retain raw provider events only as auditable adapter evidence.
  • A provider-specific integration may be added without forcing its terminology, model IDs, environment variables, or protocol into shared interfaces.
  • Repository-wide maintainer instructions belong in this file. Tool-specific bootstrap files should only import or point to AGENTS.md plus genuinely tool-local compatibility notes.

Named Claude/Codex/OpenAI integrations in tests, adapters, workflows, and install docs are intentional compatibility surfaces and do not violate this rule.

Cold-start workflow

For a new issue or increment:

  1. Read this file, the issue/task, and git status/the current diff.
  2. Locate the owning module and its tests; inspect only the relevant files first.
  3. Read docs/maintainers/ only when architecture, rationale, recurring traps, or prior decisions could materially affect the task.
  4. Read SKILL.md or detailed references only if the change affects shipped skill behavior.
  5. Make the smallest coherent change that resolves the issue; avoid unrelated refactors.
  6. Add or update the appropriate test/eval evidence.
  7. Run the narrowest relevant checks, then broader checks when the change warrants them.
  8. Update README/reference docs only when their public contract or usage has changed.

Do not recursively read the whole repository to "understand the project" before working.

Durable project knowledge

Tool-specific memory (Claude/Gemini auto-memory, Pi/Codex session history, IDE agent state, etc.) is a convenience cache, not a source of truth.

When work reveals a non-obvious fact that will matter across future sessions or tools, promote it to the repository only when rediscovery would be materially expensive or error-prone:

  • repository-wide workflow/routing rule -> AGENTS.md;
  • cross-cutting architecture or invariant -> docs/maintainers/architecture.md;
  • recurring hard-to-rediscover diagnostic trap -> docs/maintainers/debugging.md;
  • consequential architectural choice and rationale -> docs/maintainers/decisions/;
  • behavioral guarantee -> owning code plus tests/evals;
  • product/skill behavior -> SKILL.md or the owning references/ document.

Do not persist facts that are obvious from the code, cheap to rediscover, specific to one transient session, or already owned by another contract. Do not let a tool-specific private memory become the sole record of a project invariant.

When editing docs/maintainers/, follow its nested AGENTS.md: keep those notes concise, provider-neutral, linked to owning sources, and free of duplicated roadmaps/specifications.

Skill-development rules

When changing SKILL.md or references/:

  • Treat the text as shipped executable guidance whose consumers may be many different agents.
  • Keep SKILL.md focused on high-value behavior and routing. Put detailed domain material in references/ rather than growing the always-loaded entry point unnecessarily.
  • Prefer behavioral requirements and observable outcomes over vendor-specific prompting tricks.
  • Keep volatile provider details out of shipped guidance: file formats, layer and field names, code values, counts, download URL patterns, server limits and licenses. Point to catalogs, dataset pages and service capabilities, and require live verification; providers change faster than the skill text is reviewed.
  • A material behavior change should have eval coverage. If current evals cannot measure it, improve the eval rather than relying on prose confidence.
  • Do not weaken reproducibility, provenance, validation, or correctness rules merely to make a benchmark easier to pass.
  • Distinguish a skill regression from an adapter/model limitation in eval results and fixes.

Tests versus evals

Use the layer that proves the thing you changed:

  • tests/: Python implementation, CLI, schemas/checks, runner/adapters, and eval-framework behavior.
  • Fixture evals: deterministic contract/reference-project correctness; no LLM account required.
  • Live evals: whether real agents can use the shipped skill successfully. These are model/provider-dependent and may incur API cost.
  • Visual evals: QGIS/browser integration in the richer dependency environment.

A fixture pass does not prove that changed prompt/skill wording works with a live agent. A live-agent pass does not replace deterministic implementation tests.

Development commands

Python 3.10+ is required. CI currently uses Python 3.12.

# Core/eval development setup
python3 -m pip install -r evals/requirements.txt
python3 -m pip install -e .

# Unit suite
python3 -m unittest discover -v

# Fixture evals (default deterministic QA)
python3 evals/run.py --mode fixture

# Worked-example smoke test
openmapstack validate examples/tartu-development/project.yaml --preflight
openmapstack inspect examples/tartu-development/project.yaml --json

# Check API that external harnesses consume (see docs/openmapbench-interop.md)
openmapstack api-info --json
openmapstack checks

# Coverage gate used by CI
python3 -m coverage run -m unittest discover -v
python3 -m coverage report

Useful targeted eval commands are documented in evals/README.md. Do not run live benchmarks merely as a routine local check: they require explicit models/credentials, are stochastic, and can incur provider cost. Run visual mode only when its QGIS/browser dependencies are available and the change needs that evidence.

Plain-versus-skill model comparisons are occasional benchmarks, not a gate after each small skill change. Agree on the task, matched arms, explicit model, trial count and total spend cap before execution. Report one paired trial as a case study, not proof of general improvement. Preserve its payload identity and limitations; do not rerun it merely because release documentation changed.

There is currently no repository-wide linter command configured in pyproject.toml; do not invent one as a completion gate.

Change discipline

  • Preserve user changes and the current branch/worktree; never discard unrelated work.
  • Keep changes scoped to the task and keep generated result artifacts out of commits unless they are intentional fixtures/evidence.
  • When changing a contract or schema, update its validators, tests, templates/examples, and docs as required by that contract.
  • When changing an eval assertion, prove both the healthy/control path and the intended failure path where applicable.
  • not_testable is not passed; do not turn missing capability into green evidence.
  • Keep README and public docs synchronized with externally visible behavior, not with internal implementation trivia.
  • Promote durable, non-obvious maintenance knowledge according to the policy above; do not rely on chat/session memory as the only record.
  • Do not claim a task is complete until the relevant checks have actually run, or explicitly report what could not be run and why.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.