Only meta changes like README, Icon, or documentation changes can be done on main. If you're adding or editing a system, this should be done on a seperate branch. Adding features or fixing bugs are, or should be, done on a branch, however, quick bug fixes that got past initial testing can be done on main if urgent.
You can either make a branch for you yourself or for the new system you plan on adding. You then have free reign to add and edit to that branch, then make a merge request with whatever changes you want to commit.
You should pull for the most recent version of main before testing. Then, thorough testing should be conducted. No testing pipeline is present as this is written, though there should be one in the future.