en un clic
go
Go development. NOT for non-Go code (use rs, py, ts, tsx, or sh).
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
Go development. NOT for non-Go code (use rs, py, ts, tsx, or sh).
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
Development wisdom and workflow rules. NOT for project-specific conventions (those live in CLAUDE.md, edit via wisdom).
The `BUGS.md` open-issues queue — entry format, lifecycle, pruning to diary. NOT for the record-don't-fix policy (that's CLAUDE.md Bug Triage Protocol), NOT for resolved-bug history (use /diary), NOT for feature backlog (use TODO.md/specs).
Terminal demo GIF + MP4 recordings for READMEs and social (asciinema + agg + ffmpeg). NOT for general Makefile targets (use software) or GUI screenshots (use visual).
Humanize text: strip AI-isms and add real voice. NOT for drafting new copy (use writing).
Python development. NOT for shell scripting (use sh) or non-Python code.
Router for engineering knowledge — the language-agnostic code baseline (naming, style, boring-code, design) plus deep runbooks (Docker images, CI Makefiles, deploys, observability, Python tool distribution). NOT for language-specific idioms (use go/rs/py/ts/sh/sql) or terse Docker/systemd rules (ops keeps those hot).
| name | go |
| description | Go development. NOT for non-Go code (use rs, py, ts, tsx, or sh). |
| when_to_use | editing .go files or writing Go code |
Requires the software skill's code.md for shared naming, style, and design
rules. Below are Go-specific additions.
core/ (or equivalent); adapters convert at entrytypes/ package unless ≥3 packages share themtimed/, ipc
must import that function, not reimplement it...T for sugar: formatting APIs (Printf-style), functional
options (...Option), and convenience wrappers where an inline arg list
reads naturally at the call site.[]T instead — a slice
states "this is the set" and forbids the meaningless zero-arg call that
variadic silently allows (Middleware() compiling to "no known paths" is a
footgun).New(paths ...string) where the paths are config/data — use
[]string.type Client struct{ dep } + func (c *Client) Do()) is optional
ceremony. If the type carries no invariant of its own, prefer plain package
functions taking the dependency as a parameter (Do(ctx, dep, …)) — one fewer
type, dependency explicit. Go forbids methods on types from other packages, so
wrapping a foreign type just to get method syntax is exactly when free functions
win.rateLimiter not rl, group not g, upstream not upn, k, i, j, x, y, z, m, g, f, h, buf, err, ctx; doubled (kk, vv) for nested/plural; short descriptive (data, msg) fine tooo, O, I, l (look like 0 or 1)httputil, strutil, filepath, NOT http_utils, string_utils). Linters
flag underscored package names. The *_utils.* project rule applies to FILES
inside a package (e.g., string_utils.go), not to package names themselves.Intentionally dropped errors must be explicit in code, not hidden in linter config. Config exclusions are for structural cases only (generated files, test path patterns).
Non-defer: use _ = with a short reason on the line above.
// body fully read into buffer above
_ = resp.Body.Close()
Defer: defer func() { _ = x.Close() }() is uglier than the problem.
Use //nolint:errcheck with the reason on the line above — no inline text:
// body drained; close error unactionable
defer resp.Body.Close() //nolint:errcheck
// commit already succeeded; rollback is best-effort
defer tx.Rollback(ctx) //nolint:errcheck
Inline _ = in HTTP handlers — w.Write failure means client disconnected;
response is already committed. One short inline comment is fine:
_, _ = w.Write([]byte(`{"status":"ok"}`)) // client disconnect; nothing to do
NEVER write a suppression without a reason. The comment must answer WHY.
NEVER use a linter config exclusion for a specific symbol or call site — a reader has to look up the config. Config exclusions are for structural cases only: generated files, test path patterns, project-wide style choices (no-comment policy).
// pre-formatted "200 OK"; built once at store time
statusText string
not statusText string // pre-formatted "200 OK". Narrow exceptions: the
suppression-reason and handler one-liners noted above.*_test.go next to codeif testing.Short() { t.Skip() }