Skip to content
Back to skills

Go Service Scaffolder

ASecurity

Scaffold a production-ready Go HTTP service with OpenTelemetry observability, TLS, lifecycle management, Dockerfile, GitHub Actions CI/CD, and golangci-lint. Use when creating or regenerating a full Go service skeleton (project layout, config package, server package, CI workflows, and container build files).

  • 4 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 17, 2026
ai-agentsgosqldockergitdatabaseci/cd

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned October 17, 2026

npx -y skills add adiprmx/atlys --skill go-service-scaffolder --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Go Service Scaffolder?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Go Service Scaffolder
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/adiprmx-go-service-scaffolder/badge)](https://www.skillsdirectory.com/skills/adiprmx-go-service-scaffolder)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: go-service-scaffolder
description: Scaffold a production-ready Go HTTP service with OpenTelemetry observability, TLS, lifecycle management, Dockerfile, GitHub Actions CI/CD, and golangci-lint. Use when creating or regenerating a full Go service skeleton (project layout, config package, server package, CI workflows, and container build files).
---

# Go Service Scaffolder

Create a production-ready Go HTTP service skeleton and keep outputs consistent.

## Workflow

1. Ask for required inputs:
- App name (kebab-case)
- Go module path
- GitHub owner/org
- If the user asks for database support, ask which database to scaffold: Postgres, SQLite, or both.

2. Derive:
- `CONFIG_ENV_VAR`: uppercase app name without hyphens + `_CONFIG`
- `METRICS_PREFIX`: lowercase app name without hyphens

3. Generate the full project file tree and file contents using the canonical spec in `references/go-service-scaffold-spec.md`.

4. Replace placeholders everywhere:
- `{{APP_NAME}}`
- `{{MODULE_PATH}}`
- `{{GITHUB_OWNER}}`
- `{{CONFIG_ENV_VAR}}`
- `{{METRICS_PREFIX}}`

Database constraints when database support is requested:
- Never use an ORM.
- For Postgres, use PGX: `github.com/jackc/pgx/v5`.
- For SQLite, use `modernc.org/sqlite`.

5. Run:
- `go mod init <module-path>` (only if `go.mod` does not already exist)
- `go mod tidy`
- `go get -tool github.com/italypaleale/go-kit/tools/gen-config` (adds the `tool` directive used by `make gen-config`)
- `make gen-config` to produce `config.md` and `config.sample.yaml` from the `Config` struct
- `go test ./...`

6. Initialize git only when needed:
- Run `git init` only if the target directory is not already a git repository.

Whenever `pkg/config.Config` (or any struct reachable from it) is regenerated or edited later, re-run `make gen-config` so `config.md` and `config.sample.yaml` stay in sync. CI enforces this with `make check-config-diff`.

## Reference

Use `references/go-service-scaffold-spec.md` as the single source of truth for:
- Required directory structure
- Exact file templates
- Post-scaffold steps and architecture notes

Load only the sections needed for the current task instead of reading the entire reference at once.

Files in this skill

  • README.md1.6 KB
  • SKILL.md2.1 KB
  • references/go-service-scaffold-spec.md40.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.