go-architecture
SkillAI & modelsUse when laying out a new Go service, choosing an HTTP router or DB layer, or wiring dependencies. Not for concurrency (go-concurrency) or language idioms (go-core-idioms).
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the go-architecture skill
What this skill tells your AI
The instructions your AI receives, as published by fusengine/agents in plugins/go-expert/skills/go-architecture/SKILL.md and read by ahel’s review.
Go Architecture
Opinionated, 2026-current guidance for structuring Go backend services. Favors the standard library and small, composable libraries over heavy frameworks.
Use when:
- Laying out a new Go module or service (directory structure,
cmd/,internal/) - Choosing an HTTP router (stdlib
net/httpServeMux, chi, echo/gin/fiber) - Choosing a database layer (sqlc + pgx, GORM) or wiring queries
- Wiring dependencies (constructors, DI without a framework)
- Reviewing an existing Go service for structural / architectural issues
Do NOT use for:
- Writing tests, benchmarks, fuzzing, coverage — use
go-testing-quality - SOLID line-limit / interface-placement enforcement — use
fuse-solid:solid-go - Non-Go backends (Laravel, Next.js, Rust) — use the matching expert
- Frontend / UI work — use
fuse-designor a framework expert
Decision Map
| Question | Load |
|---|---|
| Where do files/packages go? | project-layout.md |
| Which HTTP router? How do I route? | http-routing.md |
| How do I talk to the database? | database-access.md |
| How do I wire dependencies? | dependency-injection.md |
| I need a full working example | templates/rest-service.md |
Core Principles (2026)
- Standard library first. Since Go 1.22 the
net/http.ServeMuxsupports method matching and path wildcards (GET /posts/{id},req.PathValue("id")). Most services no longer need a routing framework. Source: https://go.dev/blog/routing-enhancements internal/is the default home for service logic. A server binary is self-contained; keep packages underinternal/and binaries undercmd/. There is no officialpkg/requirement — do not cargo-cult it. Source: https://go.dev/doc/modules/layout- Constructor injection, no DI framework by default. Pass dependencies as
interface parameters to
New…constructors; wire them inmain. - Type-safe SQL is the 2026 default.
sqlcgenerates idiomatic Go from raw SQL; run it on top of thepgxdriver for PostgreSQL. GORM still works but is in relative decline for new services — see database-access.md for the nuance. Sources: https://docs.sqlc.dev + https://pkg.go.dev/github.com/jackc/pgx/v5
Workflow
- Explore the existing tree first (do not assume layout).
- Load the relevant reference from the Decision Map above.
- Cross-check the version-sensitive claims (router, sqlc/pgx) against the source URLs before writing code — APIs move.
- Scaffold from templates/rest-service.md when starting fresh.
- Keep files small and interfaces separated (defer to
fuse-solid:solid-go). - Validate with
go-testing-quality+ sniper after any code change.
Boundaries (cross-referenced, not copied)
The community skill set at github.com/samber/cc-skills-golang covers overlapping
Go territory. This skill deliberately scopes to architecture / structure /
routing / DB wiring and hands testing off to go-testing-quality. When in
doubt about which skill owns a topic, prefer the more specific one.
Signals
- GitHub stars
- 25
- Forks
- 4
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
go-architecture- Source
- github.com/fusengine/agents