mcpField
D
dagger-codegen

dagger-codegen

github.com/dagger开发16.5k53 次安装今天更新
代码仓库

关于 dagger-codegen

dagger-codegen 是面向 Dagger 开发者的技能,帮助定位并修改 Go 代码生成相关实现。它区分 Dagger 中四类代码生成,并列出常见修改入口与参考资料。

主要功能

  1. 01区分四类 Dagger 代码生成
  2. 02定位 Go 模板与 SDK 接口
  3. 03查找生成客户端实现
  4. 04提供按需参考文档

适用场景

  1. 01修改生成的 Go 代码或模板
  2. 02排查生成结果异常
  3. 03调整 SDK 接口或客户端生成

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dagger/dagger --skill dagger-codegen

安装后在 Claude Code 中输入/dagger-codegen确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
codegen-types.md
generated-clients.md
go-templates.md
sdk-architecture.md

详细介绍

Dagger 代码生成

何时加载此技能

  • 编辑 dagger.gen.go 或 internal/dagger/dagger.gen.go 输出
  • 修改 cmd/codegen/generator/go/templates/ 中的 Go 模板
  • 更改 core/sdk.go 中的 SDK 接口
  • 使用 dagger develop、dagger call 或 dagger client install
  • 调试生成的代码为何看起来不正确

关键概念

在 Dagger 中,“代码生成”有 4 种不同含义:

#名称触发方式关键文件
1模块内绑定dagger developcmd/codegen/generator/go/templates/
2运行时分发模块启动cmd/codegen/generator/go/templates/modules.go:140
3SDK 库go generatesdk/go/generate.go
4生成的客户端dagger client install_dagger.gen.go/client.go.tmpl

编辑之前,先确认你要处理的是哪一种。

关键入口

要更改……编辑
生成的方法签名cmd/codegen/generator/go/templates/src/_types/object.go.tmpl
生成的类型定义cmd/codegen/generator/go/templates/src/_types/*.go.tmpl
模块 invoke() 分发cmd/codegen/generator/go/templates/modules.go:140
独立客户端 Connect()cmd/codegen/generator/go/templates/src/_dagger.gen.go/client.go.tmpl
模板函数cmd/codegen/generator/go/templates/functions.go:54
SDK 接口core/sdk.go:20(ClientGenerator)、:93(CodeGenerator)
内置 SDK 列表core/sdk/consts.go
Python 输出sdk/python/codegen/src/codegen/generator.py

参考文件

根据具体需求加载:

需求加载
了解 4 种代码生成类型codegen-types.md
SDK 架构、接口、Go 特例sdk-architecture.md
Go 模板条件语句、两阶段生成go-templates.md
dagger client install 内部机制generated-clients.md

评论

支持 Markdown