X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/80fa33c0fd65e4110f88f0cab9b19ca26c27d1f6..56129a5fcbcbe51a7ac7d6b009d4551ed9f71109:/.agents/skills/go-code/SKILL.md?ds=inline diff --git a/.agents/skills/go-code/SKILL.md b/.agents/skills/go-code/SKILL.md index 7de0a40..a9e705b 100644 --- a/.agents/skills/go-code/SKILL.md +++ b/.agents/skills/go-code/SKILL.md @@ -13,6 +13,8 @@ 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. - 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. @@ -50,8 +52,11 @@ description: Go style rules. Use before you write or review Go code. test callbacks. - Do not use short `if` initializers. - Use a one-letter receiver name for each method. -- Put each field of a keyed struct literal on its own line when you set - more than one field. +- Use field names in struct literals. Put each field on its own line + when you set more than one field. This includes the cases of a + table-driven test. A small type of two fields that acts as one value, + such as a key or a coordinate pair, can use a positional literal on + one line. - Put an empty line between logical blocks, also after multiline declarations, assignments, literals, and calls. Keep an operation with its immediate error or result check. Keep a short declaration with its