Go Service Scaffolder
Create a production-ready Go HTTP service skeleton and keep outputs consistent.
Workflow
- •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.
- •Derive:
- •
CONFIG_ENV_VAR: uppercase app name without hyphens +_CONFIG - •
METRICS_PREFIX: lowercase app name without hyphens
- •
Generate the full project file tree and file contents using the canonical spec in
references/go-service-scaffold-spec.md. - •
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.
- •Run:
- •
go mod init <module-path>(only ifgo.moddoes not already exist) - •
go mod tidy - •
go test ./...
- •Initialize git only when needed:
- •Run
git initonly if the target directory is not already a git repository.
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.