mcpField
D
dagger-codegen

dagger-codegen

github.com/daggerDevelopment16.5k53 installsUpdated today
Repository

About dagger-codegen

dagger-codegen is a skill for Dagger developers working on code generation. It distinguishes four codegen paths and points to relevant Go templates, SDK interfaces, and reference files.

Key features

  1. 01Distinguishes four Dagger codegen paths
  2. 02Locates Go templates and SDK interfaces
  3. 03Points to generated client implementation
  4. 04Provides task-specific reference files

Use cases

  1. 01Editing generated Go code or templates
  2. 02Debugging unexpected generated output
  3. 03Changing SDK interfaces or client generation

Install

Copy the command and run it in a terminal.

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

After installing, type/dagger-codegenin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

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

Details

From the project README

Dagger Codegen

When to Load This Skill

  • Editing dagger.gen.go or internal/dagger/dagger.gen.go output
  • Modifying Go templates in cmd/codegen/generator/go/templates/
  • Changing SDK interfaces in core/sdk.go
  • Working on dagger develop, dagger call, or dagger client install
  • Debugging why generated code looks wrong

Critical Concepts

"Codegen" means 4 different things in Dagger:

#NameTriggerKey Files
1In-Module Bindingsdagger developcmd/codegen/generator/go/templates/
2Runtime DispatchModule startupcmd/codegen/generator/go/templates/modules.go:140
3SDK Librariesgo generatesdk/go/generate.go
4Generated Clientsdagger client install_dagger.gen.go/client.go.tmpl

Know which one you're dealing with before editing.

Key Entry Points

To change...Edit
Generated method signaturescmd/codegen/generator/go/templates/src/_types/object.go.tmpl
Generated type definitionscmd/codegen/generator/go/templates/src/_types/*.go.tmpl
Module invoke() dispatchcmd/codegen/generator/go/templates/modules.go:140
Standalone client Connect()cmd/codegen/generator/go/templates/src/_dagger.gen.go/client.go.tmpl
Template functionscmd/codegen/generator/go/templates/functions.go:54
SDK interfacescore/sdk.go:20 (ClientGenerator), :93 (CodeGenerator)
Built-in SDK listcore/sdk/consts.go
Python outputsdk/python/codegen/src/codegen/generator.py

Reference Files

Load based on specific need:

NeedLoad
Understanding the 4 codegen typescodegen-types.md
SDK architecture, interfaces, Go special casesdk-architecture.md
Go template conditionals, two-pass generationgo-templates.md
dagger client install internalsgenerated-clients.md

Comments

Markdown supported