dist/codex/plugins/go-dev/skills/writing-go/SKILL.md
Idiomatic Go development. Use when writing Go code, designing APIs, reviewing Go implementations, or changing Go tests. Follow the module's target Go version. Prefer stdlib, concrete types, explicit errors, context propagation, and behavior tests. NOT for Python, TypeScript, shell scripts, or infra-only work.
npx skillsauth add alexei-led/claude-code-config writing-goInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use only for Go modules. Follow the module's target Go version.
Read principles.md before writing, changing, or reviewing Go code. Read conditional references only when the change touches that area.
go.mod, toolchain, CI, and nearby code before using version-specific APIs.sync.WaitGroup.Go when no error propagation is needed.errgroup for goroutine errors or shared cancellation; add it only when the dependency is justified.testing/synctest for deterministic concurrent tests when available.crypto/hpke and testing/cryptotest over third-party code when they fit.encoding/json/v2 as experimental unless the project opts into GOEXPERIMENT=jsonv2.new(expr) only when clearer than a local variable, composite literal, or address expression.Run the project-configured build, tests, lint, vet, and formatting checks. Add race or concurrency-specific checks when the change touches goroutines, shared state, timers, or channels.
If a check is unavailable, state that and run the closest configured gate. If a check fails, quote the failure, diagnose the cause, fix one issue, and rerun the relevant check.
go.mod before choosing files, commands, or import paths.go.mod, toolchain, CI, and lockfiles before using version-specific APIs.Include:
tools
Idiomatic shell development for POSIX sh, Bash, Zsh, Fish, hooks, CI shell steps, and scriptable CLI glue. Use when writing or changing `.sh`, `.bash`, `.zsh`, `.fish`, `.bats`, shell functions, shell pipelines, or command-runner recipes. Emphasizes portability, quoting, safe filesystem/process handling, non-TUI CLI tools, ShellCheck, shfmt, Bats, and ShellSpec. NOT for Python, TypeScript, Go, web code, or infrastructure operations.
tools
Use when planning, executing, checkpointing, finishing, or inspecting lightweight spec-driven work. Runs one task at a time using `.spec/` markdown files and the bundled `specctl` helper. NOT for broad product discovery beyond a short requirement interview.
testing
Author, inspect, troubleshoot, and review infrastructure across IaC, Kubernetes, cloud resources, containers, CI/CD, and Linux hosts. Use when changing Terraform/OpenTofu, Kubernetes, Helm, Kustomize, Dockerfiles, GitHub Actions, AWS, GCP, Cloud Run, BigQuery, IAM, logs, instances, or service health. NOT for deploy/apply/rollback workflows (see deploying-infra). NOT for shell scripts or generic command pipelines (see writing-shell).
development
Configure safe git workflow hygiene: pre-commit/pre-push hooks, Gitleaks secret scanning, .gitignore rules, local git config, and guardrails. Use when setting up git hooks, gitleaks/git leaks, staged pre-commit checks, pre-push validation, core.hooksPath, .gitignore, or git config best practices. NOT for creating commits (use committing-code), cleaning branches/worktrees (use cleanup-git), or creating worktrees (use using-git-worktrees).