dagger-codegen について
dagger-codegenは、コード生成に取り組むDagger開発者向けのスキルです。4種類の生成経路を区別し、関連するGoテンプレート、SDKインターフェース、参考ファイルを示します。
主な機能
- 014種類のDaggerコード生成を区別
- 02GoテンプレートとSDKインターフェースを特定
- 03生成クライアントの実装箇所を案内
- 04作業別の参考ファイルを提示
活用シーン
- 01生成されたGoコードやテンプレートの編集
- 02生成結果の問題の調査
- 03SDKインターフェースやクライアント生成の変更
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dagger/ dagger --skill dagger-codegenインストール後、Claude Code で/dagger-codegenを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/codegen-types.mdgenerated-clients.mdgo-templates.mdsdk-architecture.md詳細
Dagger Codegen
このスキルを読み込むタイミング
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 では「Codegen」は4つの異なる意味を持ちます。
| # | 名前 | トリガー | 主なファイル |
|---|---|---|---|
| 1 | モジュール内バインディング | dagger develop | cmd/codegen/generator/go/templates/ |
| 2 | ランタイムディスパッチ | モジュールの起動 | cmd/codegen/generator/go/templates/modules.go:140 |
| 3 | SDK ライブラリ | go generate | sdk/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 テンプレートの条件分岐、2パス生成 | go-templates.md |
dagger client install の内部動作 | generated-clients.md |
コメント
Markdown 対応