···11+# Contributing to GoAT Site
22+33+Before opening a pull request (PR) or an issue, check the existing ones to avoid creating a duplicate.
44+55+If you find a bug or if you have a suggestion to improve the library, you may open an issue.
66+77+## Pull Requests
88+99+Fork the repo, create a branch, commits and then open a PR.
1010+We encourage you to open an issue first (if yours does not resolve one).
1111+When you are writing the description of your PR, don't forget to link it.
1212+1313+Please, [test your code](#testing-your-code)!
1414+1515+When you have finished your PR, one of our maintainers will review your work.
1616+If everything is fine, it will be merged (yay :D).
1717+If your work is mostly good, the reviewer will ask you to fix issues.
1818+If your PR has conceptual issues, it will be closed and the reviewer will explain you why.
1919+2020+**Read the rest of this document to avoid losing your (and our) times.**
2121+2222+We encourage you to watch
2323+[this conference at FOSDEM 2026](https://fosdem.org/2026/schedule/event/L7ERNP-prs-maintainers-will-love/) to understand
2424+how to write good PR.
2525+2626+## Use of AI
2727+2828+The maintainers of GoAT Site do not use LLMs.
2929+We are against this technology for many reasons, but we can't stop you from using these tools.
3030+3131+**When you are interacting with us, do not use an LLM.**
3232+If you are, we will instantly close your issue/your PR.
3333+3434+**If you have used an LLM to help you, you must inform us.**
3535+We will not reject your work for this reason.
3636+If you hide this, we will instantly close your issue/your PR.
3737+3838+We will not accept poorly written code with useless comments.
3939+We will not accept code that does not follow our code style.
4040+We will not accept PR that does not follow our contributing guide.
4141+You have to modify the LLM's output.
4242+You have to test the code that you want to be merged.
4343+If you don't understand something created by an LLM, avoid creating a PR/an issue, thanks you.
4444+4545+**Remember that GoAT Site is made for humans and by humans.**
4646+If your contribution does not follow this vision, avoid contributing.
4747+Every PR is reviewed by at least one human, every issue is triaged by at least one human, every line of code was written
4848+for humans.
4949+5050+## Style
5151+5252+To standardize and make things less messy, we have a certain code style that is persistent throughout the codebase.
5353+5454+### Commits
5555+5656+A commit is an atomic modification.
5757+It cannot be divided into smaller ones.
5858+It must update tests and it must work without additional commits.
5959+6060+We follow this simple schema for their name:
6161+```
6262+kind(scope): description
6363+```
6464+`kind` is the kind of modification:
6565+- `feat` for an addition
6666+- `refactor` for a refactor
6767+- `fix` for fixing an issue
6868+- `style` for the code style
6969+- `docs` for the documentations
7070+- `build` for building tools
7171+- `ci` for CI/CD
7272+7373+`scope` indicates the part touched of your modification.
7474+We commonly use `ws` for websocket, `guild` for `guild` and `guild/guildapi` packages...
7575+7676+`description` is a *short* description of your modification.
7777+If you want to explain more things, include them in other lines (not the first one).
7878+7979+If your history is messy, you must modify it and force push the updated version.
8080+In futur versions of git, you will be able to use the new `git-history(1)` to edit this easily.
8181+8282+```
8383+fix(ws): not panicing if bad setup during connection
8484+```
8585+is fixing an issue related to websocket.
8686+Before this commit, the bot was not panicing if there is a bad setup during the connection.
8787+After this commit, this issue is fixed.
8888+8989+```
9090+feat(logger): option to trim version in caller
9191+```
9292+is adding something to the logger.
9393+Now, the developer can use an option to trim versions.
9494+9595+### Organization
9696+9797+The package `site` (root) follows strictly the Standard.site.
9898+Other packages contain extensions of the standard.
9999+100100+## Testing your code
101101+102102+Before submitting a PR, you must test your changes.
103103+104104+First, you can simply run tests with
105105+```bash
106106+go test -race ./...
107107+```
108108+109109+If everything looks fine, we encourage you to create a simple project in another directory to test your changes:
110110+```bash
111111+go work init . # init a new go.work file for this module
112112+go work use path/to/goat-site # override the GoAT Site in the go.mod by the one present in this folder
113113+```
114114+