/go-architecture
Use 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).
$ npx -y skills add fusengine/agents --skill go-architecture --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/go-architecture
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use 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).
SKILL.md
go-architecture.SKILL.mdname: go-architecture
description: Use 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).
<objective> Structure Go 1.22+ backend services: the standard cmd/internal layout, choosing an HTTP router (net/http ServeMux, chi, echo/gin/fiber), constructor-based dependency injection, and type-safe database access with sqlc + pgx. Covers laying out a new Go project, choosing a router or DB layer, wiring dependencies, and reviewing an existing service's structure. Does not cover goroutines/channels concurrency patterns (see go-concurrency) or general language idioms (see go-core-idioms). </objective>
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/http` ServeMux, 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-design` or a framework expert
---
Decision Map
| Question | Load | |----------|------| | Where do files/packages go? | [project-layout.md](references/project-layout.md) | | Which HTTP router? How do I route? | [http-routing.md](references/http-routing.md) | | How do I talk to the database? | [database-access.md](references/database-access.md) | | How do I wire dependencies? | [dependency-injection.md](references/dependency-injection.md) | | I need a full working example | [templates/rest-service.md](references/templates/rest-service.md) |
---
Core Principles (2026)
1. **Standard library first.** Since Go 1.22 the `net/http.ServeMux` supports 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 2. **`internal/` is the default home for service logic.** A server binary is self-contained; keep packages under `internal/` and binaries under `cmd/`. There is no official `pkg/` requirement — do not cargo-cult it. Source: https://go.dev/doc/modules/layout 3. **Constructor injection, no DI framework by default.** Pass dependencies as interface parameters to `New…` constructors; wire them in `main`. 4. **Type-safe SQL is the 2026 default.** `sqlc` generates idiomatic Go from raw SQL; run it on top of the `pgx` driver 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
1. **Explore** the existing tree first (do not assume layout). 2. **Load** the relevant reference from the Decision Map above. 3. **Cross-check** the version-sensitive claims (router, sqlc/pgx) against the source URLs before writing code — APIs move. 4. **Scaffold** from [templates/rest-service.md](references/templates/rest-service.md) when starting fresh. 5. **Keep files small** and interfaces separated (defer to `fuse-solid:solid-go`). 6. **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.
Read more
name: go-architecture description: Use 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).
<objective> Structure Go 1.22+ backend services: the standard cmd/internal layout, choosing an HTTP router (net/http ServeMux, chi, echo/gin/fiber), constructor-based dependency injection, and type-safe database access with sqlc + pgx. Covers laying out a new Go project, choosing a router or DB layer, wiring dependencies, and reviewing an existing service's structure. Does not cover goroutines/channels concurrency patterns (see go-concurrency) or general language idioms (see go-core-idioms). </objective>
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/http` ServeMux, 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-design` or a framework expert
---
Decision Map
| Question | Load | |----------|------| | Where do files/packages go? | [project-layout.md](references/project-layout.md) | | Which HTTP router? How do I route? | [http-routing.md](references/http-routing.md) | | How do I talk to the database? | [database-access.md](references/database-access.md) | | How do I wire dependencies? | [dependency-injection.md](references/dependency-injection.md) | | I need a full working example | [templates/rest-service.md](references/templates/rest-service.md) |
---
Core Principles (2026)
1. **Standard library first.** Since Go 1.22 the `net/http.ServeMux` supports 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 2. **`internal/` is the default home for service logic.** A server binary is self-contained; keep packages under `internal/` and binaries under `cmd/`. There is no official `pkg/` requirement — do not cargo-cult it. Source: https://go.dev/doc/modules/layout 3. **Constructor injection, no DI framework by default.** Pass dependencies as interface parameters to `New…` constructors; wire them in `main`. 4. **Type-safe SQL is the 2026 default.** `sqlc` generates idiomatic Go from raw SQL; run it on top of the `pgx` driver 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
1. **Explore** the existing tree first (do not assume layout). 2. **Load** the relevant reference from the Decision Map above. 3. **Cross-check** the version-sensitive claims (router, sqlc/pgx) against the source URLs before writing code — APIs move. 4. **Scaffold** from [templates/rest-service.md](references/templates/rest-service.md) when starting fresh. 5. **Keep files small** and interfaces separated (defer to `fuse-solid:solid-go`). 6. **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.
A plugin ecosystem that turns Claude Code into a supervised, multi-agent development environment.
Repo: fusengine/agents
Other skills on fusengine-agents.
- /agent-creator
Use when creating expert agents. Generates agent.md with frontmatter, hooks, required sections, and skill references.
Open skill - /apex-methodology
Use when starting ANY development task -- feature, bug fix, refactor, hotfix (triggers: implement, create, build, fix, add feature, refactor, develop).
Open skill - /brainstorming
Use when creating a feature/component or adding functionality. Fires BEFORE APEX Analyze to refine requirements via structured questioning.
Open skill - /challenge
Use before a root-cause, done/verified claim, irreversible action, or 2nd-time fix reaches the owner (APEX or plain conversation); also fires at every eLicit/Verify gate. Not for code correctness (use sniper).
Open skill - /code-quality
Use when validating code quality after modifications -- SOLID compliance, DRY duplication, linter errors, architecture violations. Do NOT use for functional verification (run verification FIRST, then code-quality).
Open skill - /elicitation
Use when an expert agent self-reviews and self-corrects code after the Execute phase, before sniper validation (BMAD-METHOD elicitation techniques).
Open skill

