
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
- 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).
- NEVER create a
- Flat by Default: Start with a flat structure (all files in root) for simple apps. Only introduce
cmd/andinternal/when multiple binaries or private packages are needed. - Modern Go: Ensure
go.modspecifies 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 therunfunction pattern.internal/: Private application logic.
- MCP Server:
assets/mcp-server. - Game:
assets/game. Using Ebitengine.
3. Initialize
- Create Directory:
mkdir my-app - Init Module:
go mod init github.com/user/my-app - Linting: (Optional) Initialize
.golangci.ymlif the project requires rigorous style enforcement. - Apply Template: Copy and adapt the files from the chosen template in
assets/. Ensure module names are updated. - Verify: Run
go mod tidyandgo build ./....
References
references/project_layout.md: Official Go Module Layout guide.
More skills from the devrel-demos repository
View all 3 skillsMore from Google Cloud
View publisherkb-search
search and extract local knowledge base documents
knowledge-catalog
Jul 12DocumentationKnowledge BaseSearchknowledge_catalog_discovery_agent
search and rank Knowledge Catalog data entries
knowledge-catalog
Jul 12Data AnalysisGoogle CloudKnowledge ManagementSearchcontributing
contribute to Cloud Foundation Fabric
cloud-foundation-fabric
Jul 31AutomationEngineeringGitHubGoogle Cloud +1fabric-builder
generate Terraform code for Google Cloud
cloud-foundation-fabric
Jul 12Google CloudInfrastructure as CodeTerraformfast-0-org-setup-prereqs
prepare prerequisites for FAST 0-org-setup
cloud-foundation-fabric
Jul 12Google CloudOperationsagent-aware-cli
design agent-aware command-line interfaces
vertex-ai-creative-studio
Jul 12CLIEngineeringGoogle Cloud