|
| 1 | +# AGENTS.md |
| 2 | + |
| 3 | +## Core Operating Contract |
| 4 | +- Treat this repository as the source of truth. |
| 5 | +- Treat the website as a rendered view of repository state. |
| 6 | +- Prefer small, additive, traceable edits. |
| 7 | +- Keep documentation synchronized with code and project structure. |
| 8 | +- Keep the repository minimalist by default. |
| 9 | + |
| 10 | +## Default Workflow |
| 11 | +- Inspect repository structure before editing. |
| 12 | +- Make the smallest diff that solves the request. |
| 13 | +- Update related docs when behavior, workflows, or outputs change. |
| 14 | +- Update changelog, dev log, or equivalent history files for meaningful changes. |
| 15 | +- Preserve existing structure and historical context. |
| 16 | +- Do not perform destructive rewrites unless explicitly requested. |
| 17 | + |
| 18 | +## Documentation and Website Policy |
| 19 | +- Treat `docs/` as project-level documentation and website source. |
| 20 | +- Update docs whenever code, workflows, or outputs change. |
| 21 | +- Amend existing docs when possible; do not replace whole files without need. |
| 22 | +- Preserve navigation, readability, and consistency in website changes. |
| 23 | +- Keep default website behavior clean and minimal unless the user asks for more expressive design. |
| 24 | + |
| 25 | +## Testing Policy |
| 26 | +- Assume `tests/` may exist before a full testing framework is defined. |
| 27 | +- Do not invent domain-specific tests when expected behavior is unclear. |
| 28 | +- Add the smallest meaningful tests when behavior is known. |
| 29 | +- Prefer early-stage checks such as smoke tests, import tests, CLI tests, schema checks, or example-based checks. |
| 30 | +- If tests are deferred, document the gap; do not imply coverage that does not exist. |
| 31 | + |
| 32 | +## Package and Structure Separation Policy |
| 33 | +- Keep website structure and package structure clearly separated. |
| 34 | +- Do not automatically repurpose `docs/` for package-native docs or build artifacts. |
| 35 | +- For Python packaging requests, prefer standard Python layout, typically `src/`. |
| 36 | +- For R packaging requests, follow standard R conventions (`R/`, `man/`, `DESCRIPTION`, `NAMESPACE`, optional `vignettes/`). |
| 37 | +- For other ecosystems, follow ecosystem conventions. |
| 38 | +- If structural conflicts arise, choose a durable long-term structure and document the decision. |
| 39 | + |
| 40 | +## Data Discovery and Data Use Policy |
| 41 | +- Prefer open and FAIR data when possible. |
| 42 | +- Prefer streaming or lazy-access workflows over bulk downloads when feasible. |
| 43 | +- Use standards-based discovery systems (for example STAC) when relevant. |
| 44 | +- When relevant, consider streaming-friendly tooling such as xarray, zarr, GDAL, rasterio, pystac-client, stackstac, gdalcubes, terra, stars, cubo, or equivalent tools. |
| 45 | +- When introducing data, document source, access method, format, license, and citation requirements. |
| 46 | +- Do not silently ingest external data into the project. |
| 47 | + |
| 48 | +## Data Sovereignty and Intellectual Property Policy |
| 49 | +- Consider licensing, copyright, privacy, Indigenous data sovereignty, and related restrictions for all data and content. |
| 50 | +- If rights or permissions are unclear, document uncertainty and avoid assuming open reuse. |
| 51 | + |
| 52 | +## Design and Usability Policy |
| 53 | +- Keep the website simple, readable, and easy to extend by default. |
| 54 | +- When design improvements are requested, prioritize system-level improvements (layout, spacing, typography, hierarchy, navigation, consistency). |
| 55 | +- Do not use scattered one-off styling hacks. |
| 56 | +- If direct site inspection is possible, verify readability, navigation, link integrity, and that docs still reflect repository state. |
| 57 | + |
| 58 | +## Decision Logging |
| 59 | +- Reflect meaningful structural, architectural, documentation, data-source, or design decisions in changelog, dev log, roadmap, or equivalent history files when appropriate. |
0 commit comments