← ClaudeAtlas

write-golisted

Base Go conventions for EVERY Go repo in the a-novel and a-novel-kit orgs — naming, error handling, dependency policy, context, the format/lint discipline, time, and secrets. Load it for ANY Go work in either org, alongside the matching repo-kind skill: `write-go-service` (a-novel services) or `write-go-kit` (a-novel-kit libraries — `golib`, `jwt`). Pairs with `write-go-tests` and `document-code`. Not JS/TS, SQL (`write-sql`), Protobuf (`write-proto`), Dockerfiles (`write-dockerfiles`), or shell scripts (`write-bash-scripts`).
a-novel-kit/stack · ★ 1 · Code & Development · score 67
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