aip
Google API Improvement Proposals (AIP) reference. Use BEFORE designing or reviewing APIs, protobuf definitions, or any work…
Where this author deviates from, or tightens, idiomatic Go defaults.
$ npx -y skills add fredrikaverpil/dotfiles --skill golang-style --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/golang-styleContext preview
The summary Claude sees to decide when to auto-load this skill.
Where this author deviates from, or tightens, idiomatic Go defaults.
name: golang-style description: Go conventions specific to this author. Use before writing or editing any Go (.go) file.
Where this author deviates from, or tightens, idiomatic Go defaults.
and return early, then continue with the main logic. Main logic never nests inside an `if err == nil` branch.
exposed.
(`var ErrNotFound = errors.New("not found")`) and check them with `errors.Is`, not `==` or string matching.
Your idea of "current Go" is frozen at your training cutoff and is usually out of sync with the project in both directions. Before writing code, read the `go` directive in `go.mod` and check `go version`, and target the lower of the two.
That drift cuts both ways:
`slices`, `maps`, `cmp`, `testing`, or a package you have never heard of.
directive and simply not build.
`go doc <pkg>` answers both, but only for the toolchain installed here. To ask about the version the module actually targets, use the pkg.go.dev API — no auth, GET only ([announcement](https://go.dev/blog/pkgsite-api), spec at `https://pkg.go.dev/v1beta/openapi.yaml`):
# Which symbols does a stdlib package have at a specific Go version? curl -s "https://pkg.go.dev/v1beta/symbols/slices?version=v1.21.0" # Current Go release, and any release candidate in flight. curl -s "https://pkg.go.dev/v1beta/versions/std" # Third-party: latest version, and the symbols it declares. curl -s "https://pkg.go.dev/v1beta/module/github.com/google/go-cmp" curl -s "https://pkg.go.dev/v1beta/symbols/github.com/google/go-cmp/cmp"
Release notes are not in the API — fetch https://go.dev/doc/go1.N for a release's changes, or https://go.dev/doc/devel/release for the index.
calls one argument per line.
Every comment ends with a period, including inline ones inside a function body.
Never shadow a predeclared identifier with a variable or parameter name — not `new`, `len`, `make`, `copy`, `max`, `min`, `clear`, `any`, `error`, `string`, or any other builtin function, constant, or type. Pick a descriptive name instead: `length` over `len`, `dataCopy` over `copy`.
If the project has a `.sage` folder (Sage is used), run tasks through the Sage-generated Makefiles rather than invoking `go` directly.
Personal dotfiles, managed in three layers: Nix (nix/): system configuration and packages, pinned by flake.lock and applied with a rebuild. Fully reproducible. Stow (stow/): dotfiles symlinked into $HOME with GNU Stow (not Nix).
Google API Improvement Proposals (AIP) reference. Use BEFORE designing or reviewing APIs, protobuf definitions, or any work…
Analyze a git repo's history to surface high-churn files, ownership risks, bug hotspots, momentum trends, and firefighting…
GitHub CLI (gh) conventions and the inline PR review recipe. Use when working with GitHub repositories, PRs, issues, actions, `gh…
This skill should be used when creating a GitHub pull request via `gh pr create`. Covers the gh CLI mechanics; PR title and body…
This skill should be used BEFORE running any git commit command. Triggers when about to run `git commit`. Ensures commit messages…
Interact with the user's running Neovim instance via RPC. Use this skill when you need to execute Lua or Vimscript inside Neovim,…