| name | go-project-planning |
| description | Go Project Planning Skill |
Go Project Planning Skill
This skill provides architectural patterns and planning guidance for Go projects. Use it when:
- Starting a new Go project
- Planning feature implementations
- Reviewing architectural decisions
- Writing BDD specifications
NOTE: This skill references the shared Go patterns in ~/.claude/skills/golang/references/. All detailed patterns, code examples, and guidelines are maintained there as the single source of truth.
Quick Reference
Project Structure
project/
โโโ cmd/ # Composition root
โ โโโ myapp/
โ โโโ main.go # Entry point
โ โโโ root.go # Cobra root command
โโโ internal/
โ โโโ domain/ # INNER: Pure business logic
โ โโโ ports/ # INNER: Interface contracts
โ โโโ application/ # APPLICATION: Use cases
โ โโโ adapters/ # OUTER: Infrastructure
โโโ api/ # API definitions (proto, OpenAPI)
โโโ .go-arch-lint.yml # Architecture enforcement
โโโ .golangci.yml # Linting rules
โโโ Taskfile.yml # Build targets (required)
โโโ go.mod
Quality Gates (NON-NEGOTIABLE)
Before completing any task:
task build
task test
task lint
go-arch-lint check
IMPORTANT:
- Always use Taskfile targets
- NEVER modify linting configuration files (
.golangci.yml, .go-arch-lint.yml, .go-ai-lint.yml)
- NEVER use
//nolint: directives - there are no exceptions
- Fix the code, not the rules
Go Cloud SDK (Portable Components)
Follow Go Cloud SDK patterns for cloud-agnostic components. See go-cloud-sdk.md.
bucket, _ := blob.OpenBucket(ctx, os.Getenv("BUCKET_URL"))