2.9 KiB
2.9 KiB
AGENTS.md
Guidance for AI coding agents (Codex/ChatGPT) working in this repository.
Follow these instructions as higher priority than general preferences.
Operating principles
- Optimize for correctness, safety, and maintainability over cleverness.
- Keep changes small and reviewable. Prefer multiple small commits/PRs over one large refactor.
- Preserve existing style, architecture, and public APIs unless explicitly asked to change them.
Dependencies (STRICT)
- Do NOT add new external dependencies (runtime or dev) without explicit approval.
- This includes package manager installs, new requirements, new npm/pip packages, new system packages, new containers/images.
- Prefer using the standard library or existing dependencies already in the repo.
- If you believe a new dependency is truly necessary:
- explain why,
- propose at least one no-new-deps alternative,
- estimate blast radius and maintenance risk,
- STOP and ask for approval before adding it.
Tests and verification (REQUIRED)
- For any bug fix: add/adjust a unit test that reproduces the issue and prevents regressions.
- For any new feature: add unit tests for the “happy path” and at least 1–2 edge cases.
- Prefer unit tests over integration tests unless the change is inherently integration-level.
- Run the smallest relevant test command(s) after changes:
- First: targeted tests for the changed modules.
- Then (if time/CI expectations): full unit test suite.
- If tests cannot be run in the current environment, clearly state what you would run and why.
Commands and environment safety
- Before running commands that could modify the environment or take a long time (e.g., installs, migrations, DB changes), explain what you intend to run and ask for approval.
- Avoid destructive operations (deleting files, dropping DBs, resetting environments) unless explicitly requested.
- Never print, log, or exfiltrate secrets. If you detect a likely secret, redact it and point it out.
Implementation approach
- Start by understanding existing patterns:
- find similar code paths,
- follow established naming and folder conventions,
- reuse existing utilities/helpers.
- When making non-trivial changes:
- propose a short plan (3–7 bullets),
- list the files you expect to touch,
- call out risks/unknowns,
- then proceed.
Coding standards
- Prefer clear, boring code over abstractions.
- Add types/annotations where the repo uses them.
- Add docstrings/comments only where they clarify intent, invariants, or tricky logic.
- Handle errors explicitly; don’t swallow exceptions.
Documentation and changelog
- Update relevant docs when behavior changes (README, module docs, inline docs).
- Summarize changes at the end:
- What changed (bullets),
- Why,
- How to test (exact commands),
- Any follow-ups/todos.
When uncertain
- Ask a direct question or present two options with tradeoffs.
- Do not make breaking changes based on guesswork.