Google Cloud logo

Skill

go-project-setup

set up idiomatic Go projects

Covers Architecture Engineering Go

Description

Standardized setup for new Go (Golang) projects and services. Activate to ensure clean, idiomatic project structures (Standard Layout) and implement production-ready patterns (graceful shutdown, package separation) from day one.

SKILL.md

Go Project Setup

This skill guides the creation of clean, idiomatic Go project structures.

Core Mandates

  1. Standard Layout Only: Use the official Go project layout (cmd/, internal/).
    • NEVER create a pkg/ directory. (It is an anti-pattern common in Kubernetes but not idiomatic Go).
  2. Flat by Default: Start with a flat structure (all files in root) for simple apps. Only introduce cmd/ and internal/ when multiple binaries or private packages are needed.
  3. Modern Go: Ensure go.mod specifies the latest stable Go version (currently 1.24+).

Workflow

1. Determine Scope

Ask the user: "Is this a simple tool, a library, or a multi-service repo?"

2. Select and Use Template

MANDATORY: You MUST read and use the templates provided in the assets/ directory. They establish idiomatic patterns like graceful shutdown, run functions, and package separation.

  • Simple CLI / Tool: assets/cli-simple. Flat structure.
  • Cobra CLI: assets/cli-cobra. For complex CLI tools.
  • Library: assets/library. Package in root, internal/ for hidden logic.
  • Application / Service: assets/webservice.
    • cmd/app-name/main.go: Entry point using the run function pattern.
    • internal/: Private application logic.
  • MCP Server: assets/mcp-server.
  • Game: assets/game. Using Ebitengine.

3. Initialize

  1. Create Directory: mkdir my-app
  2. Init Module: go mod init github.com/user/my-app
  3. Linting: (Optional) Initialize .golangci.yml if the project requires rigorous style enforcement.
  4. Apply Template: Copy and adapt the files from the chosen template in assets/. Ensure module names are updated.
  5. Verify: Run go mod tidy and go build ./....

References

  • references/project_layout.md: Official Go Module Layout guide.

© 2026 YourAI.tools. Every skill from an identity-verified publisher.

Independent catalog. Not affiliated with, endorsed by, or sponsored by Anthropic or any listed publisher. All trademarks belong to their respective owners.