Files
dotfiles/.config/opencode/skills/go/SKILL.md
T
colem a4fc747df2 feat(opencode): add language-specific coding skills
- add conventions for Bash, C#, Go, Python, and TypeScript
- add frontend guidance for HTMX, PrimeVue, and Vue
- document formatting, typing, testing, async, and framework-specific practices
- reference official documentation for framework API details
2026-08-11 15:28:09 -05:00

23 lines
1.0 KiB
Markdown

---
name: go
description: Idiomatic Go conventions. Use when editing .go files or go.mod/go.sum.
---
# Go Conventions
Write strictly idiomatic Go following standard formatting and best practices.
## Formatting and style
- `gofmt` / `goimports` formatting is mandatory.
- Follow [Effective Go](https://go.dev/doc/effective_go) and the [Go Code Review Comments](https://github.com/golang/go/wiki/CodeReviewComments).
## Design
- Accept `context.Context` as the first parameter on functions doing I/O or long work; honor cancellation.
- Compose via small interfaces; accept interfaces, return structs.
- Wire dependencies explicitly via constructor injection; avoid package-level mutable globals and DI frameworks.
- Return errors explicitly; wrap with `%w` (`fmt.Errorf("do thing: %w", err)`); classify with `errors.Is` / `errors.As`; never discard errors.
## Testing
- Write table-driven tests in `_test.go` using the standard `testing` package.
- Use `t.Run` for subtests; report failures with `t.Errorf` / `t.Fatalf`.