|
|
|
|
@@ -1,6 +1,6 @@
|
|
|
|
|
---
|
|
|
|
|
title: Repository Policies
|
|
|
|
|
last_modified: 2026-08-07
|
|
|
|
|
last_modified: 2026-09-05
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
This document covers repository structure, tooling, and workflow standards. Code
|
|
|
|
|
@@ -263,12 +263,17 @@ style conventions are in separate documents:
|
|
|
|
|
- Make all changes on a feature branch. You can do whatever you want on a
|
|
|
|
|
feature branch.
|
|
|
|
|
|
|
|
|
|
- `.golangci.yml` is standardized and must _NEVER_ be modified by an agent, only
|
|
|
|
|
manually by the user. Fetch from
|
|
|
|
|
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.golangci.yml`. The
|
|
|
|
|
canonical golangci-lint version is v2.12.2 (released 2026-05-06), installed
|
|
|
|
|
- `.golangci.yml` is standardized. The vendored copy in a consuming repo must
|
|
|
|
|
_NEVER_ be modified by an agent: fetch it from
|
|
|
|
|
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.golangci.yml` and keep it
|
|
|
|
|
byte-identical, so that no repo can quietly loosen its own linting. Linter
|
|
|
|
|
configuration changes are made to the canonical copy in the `prompts` repo and
|
|
|
|
|
reach consuming repos by re-vendoring; an agent may open a PR against
|
|
|
|
|
canonical, which only the user merges. The canonical golangci-lint version is
|
|
|
|
|
v2.13.2 (released 2026-08-27, built with Go 1.27; a linter built with an older
|
|
|
|
|
Go cannot check a module whose `go` directive is newer), installed
|
|
|
|
|
commit-pinned via
|
|
|
|
|
`go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@c0d3ddc9cf3faa61a4e378e879ece580256d76e5`.
|
|
|
|
|
`go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@27774aaf853a4fd21f1dd5e69439459dc1b26e68`.
|
|
|
|
|
|
|
|
|
|
- When pinning images or packages by hash, add a comment above the reference
|
|
|
|
|
with the version and date (YYYY-MM-DD).
|
|
|
|
|
@@ -387,7 +392,9 @@ style conventions are in separate documents:
|
|
|
|
|
language-specific config). Everything else goes in a subdirectory. Canonical
|
|
|
|
|
subdirectory names:
|
|
|
|
|
- `bin/` — executable scripts and tools
|
|
|
|
|
- `cmd/` — Go command entrypoints
|
|
|
|
|
- `cmd/` — Go command entrypoints; thin only: one `main.go` per binary whose
|
|
|
|
|
body is a single call into `internal/` or `pkg/`, no project logic in
|
|
|
|
|
`cmd/`
|
|
|
|
|
- `configs/` — configuration templates and examples
|
|
|
|
|
- `deploy/` — deployment manifests (k8s, compose, terraform)
|
|
|
|
|
- `docs/` — documentation and markdown (README.md stays in root)
|
|
|
|
|
|