write-golisted
Install: claude install-skill a-novel-kit/stack
# Go Conventions (common)
This is the base layer for Go in every a-novel / a-novel-kit repository. The rules hold
**whatever the repo kind** — a backend service, a shared library, or a one-off tool. Repo-kind
rules live in two companion skills; load the one matching where you work **in addition to** this
one:
- **`write-go-service`** — clean-architecture services under `a-novel` (`app/service-*`,
`app/platform-*`): the `cmd`/`internal/{config,lib,dao,core,handlers,models}`/`pkg` layout,
the interface+implementation pattern, transactions, OpenTelemetry instrumentation, REST/gRPC
handlers, and the layer-specific test patterns.
- **`write-go-kit`** — shared libraries under `a-novel-kit` (`kit/golib`, `kit/jwt`, …): the
golib-stays-minimal philosophy, when something earns its own package, and the public/community
API obligations that come with it.
When work spans repos and needs versions kept in sync to merge cleanly, also load
**`manage-versions`**.
**Before touching any file, read it.** Before touching a package, read its siblings and the
interfaces it depends on and exposes. These codebases are deliberately consistent — coherence with
the surrounding code outranks personal preference. When two files disagree, the newer one and the
one closest to your change usually win; when it is genuinely unclear, ask.
**Look up the API before you use it.** Before writing code that touches an external package or a
non-trivial stdlib API, check the official `pkg.go.dev` docs an