This is not a full guide by any means, but it documents some bits about the codebase that are useful to know.
See the README for instructions on setting up a development environment for the bot!
It's recommended to install the pre-commit hooks (for code formatting and import sorting):
uv run pre-commit installHowever, if you aren't able to do that, you can run them manually (after making your changes) with:
uv run pre-commit run --all-filesSee the Hack Club Contribution Guidelines for information about the GitHub Flow, how to name commits, and similar things.
All the Python code lives in nephthys/. Take a look around to get a feel for what all the subfolders are.
Tip: You can ignore a lot of of the subfolders most of the time, and just look at the ones relevant to your feature/change.
We prefer splitting code up into many Python files over having large files with a lot of code.
We now have the blockkit library (!!) for building fancy Slack messages and views with buttons, dropdowns, etc.
All new code should use blockkit, but note that existing code likely still uses raw JSON objects.