skills/go-rc-gorm-gen/SKILL.md
GORM Gen 类型安全 DAO 代码生成,基于 github.com/rockcookies/go-gen(rockcookies fork)。涵盖代码生成配置、模型生成、查询构建、增删改查、关联关系、动态 SQL 注解、事务处理、datatypes 自定义字段类型(JSON/JSONMap/JSONSlice/JSONType/Date/UUID)、soft_delete 软删除插件(unix 时间戳/flag 模式),以及 fork 专有功能:Tmpl 运行时模板覆写(18 个模板)、Unsafe 底层方法(UnsafeSetDB/Alias/ModelType/TableName)、IGenericsDo[T,E] 泛型接口。使用时机:需要从数据库生成 DAO 代码(GenerateModel/GenerateModelAs)、编写 DAL 查询(DO 链式调用、DaoScope、事务、关联加载)、配置生成器(gen.Config、ModelOpt、FieldGORMTag、FieldModify、FieldType、Tmpl 自定义模板)、使用 datatypes(JSONMap、JSONSlice、JSONQuery、JSONSet)或 soft_delete(DeletedAt、softDelete:milli、deleteOpts)时使用本技能。当用户消息中包含以下任一关键词(go-gen、gorm-gen、GenerateModelAs、ModelOpt、FieldGORMTag、FieldModify、DaoScope、LoadOneToMany、LoadManyToMany、IGenericsDo、UnsafeSetDB、datatypes、JSONMap、JSONSlice、JSONQuery、soft_delete、softDelete、DeletedAt),或用户明确请求 GORM Gen 代码生成/DAO 编写时触发本技能。
npx skillsauth add rockcookies/skills go-rc-gorm-genInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
基于 rockcookies/go-gen — 原 GORM Gen 的增强 fork,增加了运行时模板定制、泛型接口和 Unsafe 底层访问方法。
go get -u github.com/rockcookies/go-gen
package main
import "github.com/rockcookies/go-gen"
func main() {
g := gen.NewGenerator(gen.Config{
OutPath: "../dal",
Mode: gen.WithoutContext | gen.WithDefaultQuery | gen.WithQueryInterface | gen.WithGeneric,
})
g.UseDB(db)
// 从数据库表生成模型并应用 DAO 接口
g.ApplyBasic(
g.GenerateModel("users"),
g.GenerateModelAs("company", "Company"),
)
// 应用自定义动态 SQL 接口
g.ApplyInterface(func(Querier) {}, model.User{})
g.Execute()
}
使用生成的 DAL:
import "your_project/dal"
func main() {
dal.SetDefault(db)
// 类型安全的链式查询
user, err := dal.Q.User.WithContext(ctx).Where(dal.Q.User.Name.Eq("modi")).First()
// DaoScope 复用条件
users, err := dal.Q.User.WithContext(ctx).Scopes(ActiveUsers, RecentUsers(7)).Find()
}
| 功能 | 说明 | 参考 |
|------|------|------|
| gen.Tmpl | 运行时覆写 18 个代码生成模板 | custom-templates.md |
| Unsafe* 方法 | 直接修改 DO 内部状态(db/alias/modelType/tableName) | unsafe-generics.md |
| IGenericsDo[T,E] | 完全类型安全的泛型查询接口 | unsafe-generics.md |
| CheckClause | Clause 注入安全校验 | unsafe-generics.md |
按需加载 references:仅当用户问题涉及该子主题时读取对应文件,例如询问事务时读取 transactions.md,询问关联关系时读取 associations.md。
development
Vue 3 debugging and error handling for runtime errors, warnings, async failures, and SSR/hydration issues. Use when diagnosing or fixing Vue issues.
development
MUST be used for Vue.js tasks. Strongly recommends Composition API with `<script setup>` and TypeScript as the standard approach. Covers Vue 3, SSR, Volar, vue-tsc. Load for any Vue, .vue files, Vue Router, Pinia, or Vite with Vue work. ALWAYS use Composition API unless the project explicitly requires Options API.
development
轻量级 Go HTTP 客户端库,基于 github.com/rockcookies/go-fetch(零外部依赖)。涵盖 Dispatcher 初始化与中间件、Request 链式构建(RequestFunc 与 Middleware 分层)、Response 解码(JSON/XML/流)、请求体编码(JSON/XML/Form/Multipart/BodyGet)、URL 参数(PrepareURLMiddleware/URLOptions)、Header/Cookie 管理(ApplyHeader/ApplyCookie 与 Context)、中间件组合(Dispatcher/Request/Do 三层)、HTTP 交换日志(dump.New/dump.Transport/过滤器/WithRequestRedactor/WithResponseRedactor/SlogWriter)。使用时机:需要发起 HTTP 请求(GET/POST/PUT/PATCH/DELETE,均需 context.Context)、上传文件(Multipart/GetReader)、配置全局认证头(dispatcher.Use)、记录 HTTP 交换日志(dump.New、WithFilter、DefaultRedactor)、构建可复用的请求基础(Request.Clone)时使用本技能。当用户消息中包含以下任一关键词(go-fetch、NewDispatcher、NewDispatcherWithTransport、RequestFunc、PreFuncs、UseFuncs、BodyGet、MultipartField、dump.New、WithFilter、WithRequestRedactor、WithResponseRedactor、DefaultRedactor、DumpOptions、SlogWriter、URLOptions、PrepareURLMiddleware、PathParams、SetURLOptions、WithURLOptions、ApplyHeader、SetHeaderOptions、WithHeaderOptions、ApplyCookie、SetCookieOptions、WithCookieOptions、HandlerFunc、fetch.Handler、fetch.Middleware、dispatcher.Use、resp.Close、resp.JSON、resp.XML),或用户明确请求 go-fetch HTTP 客户端用法时触发本技能。
tools
UnoCSS instant atomic CSS engine, superset of Tailwind CSS. Use when configuring UnoCSS, writing utility rules, shortcuts, or working with presets like Wind, Icons, Attributify.