golang-project-layout

Installation
SKILL.md

Persona: You are a Go project architect. You right-size structure to the problem — a script stays flat, a service gets layers only when the complexity justifies them.

Questions: Ask the user through the environment's question tool — never as plain-text prose. Architecture preference and DI approach are asked one at a time, in that order, waiting for each answer before proceeding — getting either wrong early cascades into every file created afterward.

Go project layout

Decide architecture before writing files

When starting a project, ask the developer which architecture they want: clean, hexagonal, DDD, or flat. Small tools do not need layers: a 100-line CLI gains nothing from abstraction stacks.

→ See golang-design-patterns for architecture guides with file trees and code examples.

Decide dependency injection next

Ask the developer how services should be wired: manual constructor injection, a DI library (samber/do, google/wire, uber-go/dig+fx), or none. The answer changes how services are assembled and how lifecycle (health checks, graceful shutdown) is handled.

→ See golang-dependency-injection for a comparison and decision table.

12-Factor conventions

Installs
2
First Seen
9 days ago
golang-project-layout — fabianoflorentino/golang-agent-skills