Claude-skill-registry Database
Standards for database interaction, connection pooling, and repository patterns in Golang.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/database-hoangnguyen0403-agent-skills-standar" ~/.claude/skills/majiayu000-claude-skill-registry-database && rm -rf "$T"
manifest:
skills/data/database-hoangnguyen0403-agent-skills-standar/SKILL.mdsource content
Golang Database Standards
Priority: P0 (CRITICAL)
Principles
- Prefer Raw SQL/Builders over ORMs: Go structs map well to SQL. ORMs (GORM) can obscure performance. Recommended:
(type-safe SQL generation).sqlc - Repository Pattern: Abstract DB access behind interfaces in
(e.g.,internal/port/
).UserRepository - Connection Pooling: Always configure
,SetMaxOpenConns
,SetMaxIdleConns
.SetConnMaxLifetime - Transactions: Logic requiring ACID MUST use transactions. Pass
everywhere.context.Context
Drivers
- PostgreSQL:
(Preferjackc/pgx
for performance and features).pgx/v5 - MySQL:
.go-sql-driver/mysql - SQLite:
ormattn/go-sqlite3
(pure Go).modernc.org/sqlite
Anti-Patterns
- Global DB Connection: Do not use global
. Inject it.var db *sql.DB - Ignoring Context: Always use
ordb.QueryContext
to handle timeouts.db.ExecContext - Leaking Rows: ALWAYS
and checkdefer rows.Close()
.rows.Err()