X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/150e81034dc65943803924ef29962e2481ffe771..53c6c8a5a17e2dfc8bd3ff02ab99d29d709dda2f:/.agents/skills/go-code/SKILL.md diff --git a/.agents/skills/go-code/SKILL.md b/.agents/skills/go-code/SKILL.md index 6b5a0ce..3d9e3f3 100644 --- a/.agents/skills/go-code/SKILL.md +++ b/.agents/skills/go-code/SKILL.md @@ -13,6 +13,16 @@ description: Go style rules. Use before you write or review Go code. function. Do not create `main_test.go`. - A file carries its own context. Keep each struct and all of its methods in one file. Give a separate responsibility its own type. +- When code in one file gets a user in another file for an unrelated + purpose, move it to a file named for its function in the same change. +- Start each package-level name that belongs to one feature or + integration with the name of that feature. Start the names of its + files with the same name. Keep a name generic only when more than one + feature uses it. +- Write type names with a capital letter, so that a variable can have + the name of its type. Write all other package-level names in lower + case. +- Write all the letters of an initialism in one case. - Put entry points first, then each struct's methods as a group, then standalone utility functions. Do not put a utility function between the methods of one type. @@ -82,5 +92,8 @@ description: Go style rules. Use before you write or review Go code. input. - In a test file, put constants immediately after the imports, then the tests, then supporting types, methods, and helpers. +- Keep a helper that only one test file uses in that file. Put a helper + that more than one test file uses in a file without tests. Name that + file for what it holds, and end the name with `_helper_test.go`. - Supply valid required dependencies in tests. Do not make a dependency optional only to make a test simpler.