Writing this file is not a statement for or against using AI coding agents. People are using them in this repository either way, so this file exists to make sure that when they do, the project's rules are actually followed.
If you are driving an agent here, you are responsible for its output. Read the diff before you send it.
Responses to reviewers should be written by a human, not an agent.
Before opening a PR, search for an existing issue describing the problem being addressed. Search both open and closed issues where relevant.
When an existing issue covers the work, reference it in the PR.
If you have already opened a PR for the work, continue working on that PR rather than opening a new one to replace it. Rebase or otherwise update the existing PR's branch as needed.
If the PR fully resolves an issue, include Closes #XXXXX in the PR
description so that the issue is automatically closed when the PR is merged.
GNU coreutils is GPLv3; this project is MIT. Any code derived from it - even a few lines, a helper structure, a test fixture or a comment - cannot be accepted.
New behavior or a bug fix comes with a test, in tests/by-util/test_<util>.rs
or as a unit test next to the code. If a GNU test used to fail and now passes,
add a Rust test so it cannot silently regress.
No tests, no merge.
Describe the problem being solved and what changed. That is all.
- No generated walls of text, no bullet-point summaries of every hunk, no emoji-headed sections.
- Title:
<util>: <what changed>, e.g.ls: fix version sort order. - Write issue reports, PR descriptions and replies to reviewers in your own words. The point of review is to check that a human understands the change.
Before changing anything, look at the Markdown files here - they are the actual rules, this file is only a pointer:
CONTRIBUTING.md- licensing, commit hygiene, what a PR must containDEVELOPMENT.md- build, test and environment setupREADME.md,SECURITY.md,CODE_OF_CONDUCT.mddocs/src/*.md- platforms, performance, l10n, multicall, test coverage- the per-utility
README.md/locales/*.ftlfiles when touching a utility