← ClaudeAtlas

write-go-kitlisted

Go conventions for the a-novel-kit shared-library repos under `kit/` (`golib`, `jwt`, …) — the golib-stays-minimal bar, the stricter kit dependency policy, graduating a sub-package into its own community package, and kit test conventions. Load it to write or review Go there, or to decide whether something belongs in `golib` at all. ALWAYS load `write-go` alongside it; a-novel services use `write-go-service`. Pairs with `write-go-tests`, `document-code`, `manage-versions`. Not JS/TS, `kit/nodelib`, or `kit/workflows`.
a-novel-kit/stack · ★ 1 · AI & Automation · score 67
Install: claude install-skill a-novel-kit/stack
# Go — a-novel-kit shared libraries This skill governs Go in the `a-novel-kit` organization: the shared-library repos checked out under `kit/` (`golib`, `jwt`, and any future graduate). These are **not** services — there is no `dao`/`services`/`handlers` layering here. Load `write-go` (the base Go conventions) and `write-go-tests` (and `document-code` when documenting) **alongside** this skill. For a-novel backend services use `write-go-service` instead. **Before touching anything**, read the repo's existing code and its README/CONTRIBUTING — kit repos are small, cohesive, and consistent; copy the established pattern. When the change is needed to support a service (or vice versa), load **`manage-versions`** as well: kit changes and the service changes that consume them must be released in the right order. --- ## Why kit exists, and the standing tension Shared libraries exist so services can be written **faster, with more focus** — by removing boilerplate and duplicated glue, not by adding capability. Every line that lands in a kit repo is maintained _forever_ as a community-facing package. So the bar for adding is high, and the default for "should this go in kit?" is **no** until proven otherwise. There are two kinds of kit repo: - **`golib`** — the _tote_ package: a single module (`github.com/a-novel-kit/golib`) whose sub-packages each collect the boilerplate for one concern (`config`, `otel`, `httpf`, `grpcf`, `logging`, `postgres`, `smtp`). Glue lives here until