Go Resource Scaffolder
This skill generates the boilerplate code for a new resource in the layered architecture of the go-net-http-auth-base project.
Capabilities
- Generates Domain Model and Interface (
internal/domain/<resources>.go) - Generates Repository implementation (
internal/repositories/<resources>_repository.go) - Generates Service implementation (
internal/services/<resources>_service.go) - Generates Controller implementation (
internal/controllers/<resources>_controller.go) - Generates Factory for dependency injection (
internal/factories/<resources>_factory.go) - Generates Unit Tests for Service and Controller
- Generates Integration Tests for Repository (
internal/repositories/<resources>_repository_test.go)
Usage
To scaffold a new resource, run the scaffold.ts script provided in the scripts directory.
Command
npx tsx .github/skills/go-resource-scaffolder/scripts/scaffold.ts <ResourceName> [--singular|-s]
Options
<ResourceName>: The name of the resource (e.g.,Product,User).--singular,-s: Force singular naming for files and interfaces (e.g.,auth_service.goinstead ofauths_service.go). Useful for resources that are inherently singular likeAuth.
Example
Default (Plural naming - Recommended for entities):
npx tsx .github/skills/go-resource-scaffolder/scripts/scaffold.ts Product
This will create:
internal/domain/products.gointernal/repositories/products_repository.gointernal/services/products_service.gointernal/controllers/products_controller.gointernal/factories/products_factory.gointernal/repositories/products_repository_test.go
Singular naming:
npx tsx .github/skills/go-resource-scaffolder/scripts/scaffold.ts Auth --singular
This will create:
internal/domain/auth.gointernal/repositories/auth_repository.go- ...
Next Steps After Scaffolding
- Database: Create the migration and sqlc queries (manual step or separate skill).
- Wiring: Register the new routes in
cmd/main.go.// cmd/main.go factories.ProductFactory(conn).RegisterRoutes(mux)
Converted and distributed by TomeVault — claim your Tome and manage your conversions.