go-dev

Enforce Go backend project structure, naming, error handling, and dependency injection standards.

1|Updated Mar 30, 2026
One-click install
npx skills add https://github.com/anicdh/agstack --skill go-dev-anicdh
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: go-dev
Source: https://github.com/anicdh/agstack/tree/main/.claude/skills/go/go-dev
Command: npx skills add https://github.com/anicdh/agstack --skill go-dev-anicdh

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Go development requires consistent structure, conventions, and quality guardrails; this Skill codifies standards to align the Go backend across teams.

Core Features & Use Cases

  • Project structure guidance that mirrors a production-ready Go backend (cmd/, internal/, migrations, and storage layouts) to clarify responsibilities and reduce onboarding time.
  • Clear naming and error handling rules (exported types and functions use PascalCase, unexported use camelCase, error wrapping with context, and context propagation through the call stack).
  • Dependency injection and documentation requirements (constructor-based wiring, doc comments, and DI-friendly module boundaries) to enable testability and stable evolvability.

Quick Start

Follow these standards for any new Go package or feature to ensure consistent structure and quality.

Frequently Asked Questions about go-dev

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
What is the standard Go project structure for a scalable backend?

Go backend projects require consistent directory layouts using cmd/, internal/, and migrations/ to separate executables from private logic. This structure clarifies module boundaries, reduces onboarding time, and maintains scalable service organization.

How do I handle errors and propagate context in Go backend services?

Handle errors by wrapping them with context and propagating context.Context through the call stack. This ensures clear traceability from handlers down to storage layers while preserving the original failure reason.

How do I implement dependency injection in Go for testable services?

Implement dependency injection using constructor-based wiring to define DI-friendly module boundaries. This separates service initialization from logic, enabling testability and stable evolvability across handlers and storage layers.

Does this Go development standards approach work for team-scale backend projects?

Yes, these standards apply to Go backend projects requiring consistent structure across teams. It enforces naming conventions, documentation, and dependency injection to align backend code quality and reduce onboarding friction.

What naming conventions should I follow for exported Go functions and types?

Exported types and functions in Go should use PascalCase, while unexported ones use camelCase. Following these naming conventions ensures code readability and consistency across handlers, services, and storage layers.