diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index df067d6..2cf4dde 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -1,24 +1,9 @@ # Copilot Coding Agent Instructions -You are working on **PyAutoConf**, the configuration management library for the PyAuto ecosystem. +You are working on **PyAutoConf**, the configuration, serialization and I/O +foundation of the PyAuto ecosystem (package `autoconf`). -## Key Rules - -- Run tests after every change: `python -m pytest test_autoconf/` -- All files must use Unix line endings (LF, `\n`) -- If changing public API (function signatures, class names, import paths), clearly document what changed in your PR description — all downstream PyAuto packages depend on this - -## Architecture - -- `autoconf/conf.py` — Core configuration system -- `autoconf/dictable.py` — Dictionary/serialization support -- `autoconf/fitsable.py` — FITS file handling -- `autoconf/json_prior/` — JSON-based configuration priors -- `autoconf/tools/` — Utility decorators and helpers -- `test_autoconf/` — Test suite - -## Sandboxed runs - -```bash -NUMBA_CACHE_DIR=/tmp/numba_cache MPLCONFIGDIR=/tmp/matplotlib python -m pytest test_autoconf/ -``` +The canonical, agent-agnostic instructions for this repo live in **`AGENTS.md`** at +the repository root — build and test commands, architecture, the base-layer config +rules, and conventions. Read it directly (Copilot does not process `@`-imports) and +treat it as the single source of truth. diff --git a/AGENTS.md b/AGENTS.md index ebac0aa..601b769 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -22,6 +22,15 @@ on autoconf, so any public-API change here ripples downstream. - No `docs/` / RTD site — the package source and `test_autoconf/` are the authoritative reference. +## Architecture + +- `autoconf/conf.py` — layered config system (`Config` / `conf.instance`). +- `autoconf/dictable.py` — dict / JSON serialization (`output_to_json` / `from_json`). +- `autoconf/fitsable.py` — FITS I/O (`output_to_fits` / `ndarray_via_fits_from`). +- `autoconf/json_prior/` — JSON-based priors. +- `autoconf/tools/` — shared decorators and helpers. +- `test_autoconf/` — test suite. + ## Quick commands ```bash diff --git a/llms.txt b/llms.txt new file mode 100644 index 0000000..191205b --- /dev/null +++ b/llms.txt @@ -0,0 +1,15 @@ +# PyAutoConf + +> PyAutoConf (package `autoconf`) is the foundational configuration, serialization and I/O layer of the PyAuto ecosystem — layered config with overrides, dict/JSON/FITS serialization, JSON priors, and shared utilities every other library inherits. This file is a signpost: it points you to the right resource by intent — see where it is used, or work on the library itself. + +## Where it's used + +- PyAutoConf has no standalone workspace or tutorial series; it underpins every other PyAuto library. You meet it in practice through the consumer libraries — [PyAutoFit](https://github.com/PyAutoLabs/PyAutoFit), [PyAutoGalaxy](https://github.com/PyAutoLabs/PyAutoGalaxy), [PyAutoLens](https://github.com/PyAutoLabs/PyAutoLens) — and their workspaces. + +## Work on it (contributors / coding agents) + +- [AGENTS.md](./AGENTS.md): build, tests, architecture, base-layer config rules, and conventions. + +## Ecosystem + +- The base layer of the stack: depends on nothing else in the ecosystem; PyAutoArray, PyAutoFit, PyAutoGalaxy and PyAutoLens are all built on it.