|
| 1 | +## LLM Rules to follow |
| 2 | +- When adding or changing features, or when fixing bugs, add tests whenever possible. |
| 3 | +- When adding integration tests, they don't run locally, so ensure the user knows about them so they can be tested in CI. Also add a matrix entry for the new test file in `.github/workflows/integration.yml`. |
| 4 | +- Never write documentation files or readmes. Exception: when adding or changing items in the CRD specs, also change the tables in the readme. |
| 5 | +- Always run `cargo clippy` and `cargo fmt` before committing changes. |
| 6 | +- Use conventional commit messages. |
| 7 | +- Never write useless comments that only repeat the code. |
| 8 | +- Never print summaries or unnecessary information. |
| 9 | +- Don't use emojis unless absolutely necessary. |
| 10 | +- When removing code that has already been committed, delete it unless explicitly requested that it be commented out. |
| 11 | +- Prefer using small dependencies instead of reimplementing the wheel. Ask the user to pick a dependency if there is no obvious choice. |
| 12 | +- Use `--no-pager` with `git log`, `git diff`, etc commands. The option goes before the subcommand, e.g. `git --no-pager log`. NEVER use any interactive commands, including commands that require an editor. You can't use those and they'll just block you. |
| 13 | +- Imports: merge them and group them by std, then third-party/workspace, then local (crate, super, self). |
| 14 | +- `use` statements always go before `mod` statements. |
| 15 | +- Ask the user instead of making an assumption if there's a major detail missing from instructions that could affect code quality or implementation design. |
| 16 | +- When writing parsers, unless very trivial, implement them using winnow. |
| 17 | +- Use the newer `foo.rs` / `foo/sub.rs` style of modules. |
| 18 | +- ALWAYS use the edit tool to edit or write file, NEVER use "cat >> EOF". YOU WILL LOSE DATA. |
| 19 | +- Never write long summaries at the end of responses. Maximum 50 words if absolutely necessary. |
| 20 | +- To silence a warning, use `#[expect(..., reason = "...")]` instead of `#[allow(...)]`. |
| 21 | +- Don't use double spaces after punctuation. |
| 22 | +- Always work from a branch. If you're on `main`, create a new branch. |
| 23 | +- If you can at all do something from the operator, instead of in a script that runs in a job, do so. For example, if you need to query something in a database, you should be able to do so from the operator, instead of writing SQL code in bash logic. |
| 24 | +<!-- end rules --> |
0 commit comments