This root file keeps repository-wide rules only.
Use the nearest subdirectory AGENTS.md for path-specific guidance.
- System/developer instructions.
- This file (global defaults).
- The nearest
AGENTS.mdin the current path (more specific scope wins).
If repo-level instructions conflict, follow the nearest file and keep behavior aligned with CI.
- Respond in the same language used by the requester.
- Keep source code, comments, commit messages, and PR title/body in English.
- Prefer direct, local code over extracting one-off helpers.
- Extract a helper only when logic is reused or the extraction materially clarifies a non-trivial flow.
- Preserve the existing control-flow and logic shape when fixing bugs or addressing review comments, especially in init, distributed coordination, locking, metadata, and concurrency paths.
- Do not refactor existing code only to make it easier to unit test.
- Keep fixes narrowly aligned with the requested behavior; avoid semantic-adjacent rewrites while touching sensitive paths.
- Keep code elegant, concise, and direct. Prefer minimal, readable implementations over over-engineering and excessive abstraction. Use comments to clarify non-obvious intent and invariants, not to compensate for unclear code.
- Before introducing new string literals, search for existing constants/enums that already represent the same semantic value.
- Reuse existing constants for protocol labels, error identifiers, header keys, event names, metric names, command tags, and similar fixed tokens.
- If a new string is truly unique, define a local constant near related logic and avoid scattering the literal across multiple sites.
- When changing existing behavior, keep naming and format consistency by aligning with established project constants.
- Workspace layout and crate membership:
Cargo.toml([workspace].members) - Local quality commands:
Makefileand.config/make/ - CI quality gates:
.github/workflows/ci.yml - PR template:
.github/pull_request_template.md
Avoid duplicating long crate lists or command matrices in instruction files. Reference the source files above instead.
For code changes, run and pass the following before opening a PR:
make pre-commitBefore pushing code changes, make sure formatting is clean:
- Run
cargo fmt --all. - Run
cargo fmt --all --checkand ensure no files are modified unexpectedly.
If make is unavailable, run the equivalent checks defined under .config/make/.
Documentation-only or instruction-only changes are exempt from the verification commands above (including the .config/make/ equivalents), though any installed git pre-commit hooks (for example, from make setup-hooks) may still run on commit unless explicitly skipped.
After build-based verification completes, clean generated build artifacts before wrapping up to avoid unnecessary disk usage.
Do not open a PR with code changes when the required checks fail.
- Use feature branches based on the latest
main. - Follow Conventional Commits, with subject length <= 72 characters.
- Keep PR title and description in English.
- Use
.github/pull_request_template.mdand keep all section headings. - Use
N/Afor non-applicable template sections. - Include verification commands in the PR description.
- When using
gh pr create/gh pr edit, use--body-fileinstead of inline--bodyfor multiline markdown. - After fixing code review comments or CI findings, always mark corresponding review comments/threads as resolved before returning to the user.
- In handling review comments, confirm the underlying issue before changing code. If a suggested change is not appropriate for behavior or risk, reply with a concise rationale instead of blindly applying it.
- Never commit secrets, credentials, or key material.
- Use environment variables or vault tooling for sensitive configuration.
- For localhost-sensitive tests, verify proxy settings to avoid traffic leakage.
.github/AGENTS.mdcrates/AGENTS.mdcrates/config/AGENTS.mdcrates/ecstore/AGENTS.mdcrates/e2e_test/AGENTS.mdcrates/iam/AGENTS.mdcrates/kms/AGENTS.mdcrates/policy/AGENTS.mdrustfs/src/admin/AGENTS.mdrustfs/src/storage/AGENTS.md