Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 50 additions & 5 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
## Build and tests

On Windows we use msys2 and ucrt64 to compile.
You need to prefix commands with `C:\msys64\msys2_shell.cmd -defterm -here -no-start -ucrt64 -c`.
Prefix Windows build and test commands with `C:\msys64\msys2_shell.cmd -defterm -here -no-start -ucrt64 -c`.

Prefix build directories with `cmake-build-`.

Expand All @@ -8,6 +10,19 @@ the build directory.

The project uses gtest as a test framework.

Add or update tests for new or modified methods and code. Target 100% coverage on changed code.

## Python tooling and formatting

From the repository root, run `uv sync --locked` to create or refresh `.venv` from `pyproject.toml` and `uv.lock`.
Re-run it after switching branches or changing either file or the `third-party/lizardbyte-common` submodule.
After changing dependency declarations or the submodule revision, run `uv lock` before syncing.

After native code changes, run `uv run --locked lb-update-clang-format` from the repository root. The command is
provided by `third-party/lizardbyte-common`; inspect the resulting diff for unrelated formatting changes.

## Code style and documentation

When adding localization do not update any language other than `en`. This also means to exclude en-US or other variants.

Always add or update doxygen documentation.
Expand All @@ -29,8 +44,38 @@ Inline doxygen comments should use `///< ...` instead of `/**< ... */`.

Always follow the style guidelines defined in .clang-format for c/c++ code.

Do not ever create issues or pull requests.
If asked to create an issue or pull request, do so in their fork instead of the LizardByte GitHub organization.
Never create an issue or pull request in the LizardByte GitHub organization.
Do not add decorative separator comments, including dashed banners that label groups of tests. Use descriptive
test names and code structure to show the grouping instead.

Add or update tests for new or modified methods and code. Target 100% coverage on changed code.
## Issues and pull requests

When asked to create an issue or pull request, use the templates provided by the LizardByte/.github repo or
LizardByte/Sunshine repo, with the Sunshine templates taking precedence if both exist. At the end of the issue
or pull request body, add an attribution naming the AI agent, model, and thinking level used to generate it.
Repeat that attribution in a separate comment on the created issue or pull request. For example:

```
> This issue was generated by ChatGPT 6 Sol, extra high thinking level
```

When asked to create an issue, do only enough investigation to verify and accurately describe the problem unless the
user also asks for an investigation. Keep the issue concise: state the observed behavior, expected behavior, and
reproduction steps or evidence when available. Do not include an exhaustive root-cause analysis or implementation
plan in the issue. This limit applies only to creating issues; investigate or fix issues fully when asked.

## Code Review Rules

Report concrete issues introduced by the change that the contributor can address. For each finding, explain the
triggering condition, impact, and a practical fix; point to the relevant code or test. Keep workflow status separate
from code findings.

If GitHub Actions workflows are queued for maintainer approval, or a dependent check times out before its job can run,
do not leave an inline comment, request changes, or ask the contributor to run the workflows. The maintainer controls
approval. If the missing results materially limit the review, mention that once in the review summary as a verification
limit for the maintainer. Review actual failed checks for change-related problems when their logs are available.

For pull request reviews, verify the current PR head and mergeability against its target branch. If conflicts are
confirmed, tell the author in the review summary that the PR needs to be rebased and the conflicts resolved before
merging. Do not infer conflicts from an unknown or pending mergeability status.

When approving a pull request, the approval itself is sufficient. Do not add a comment solely to accompany it.
Loading