{"id":"9a6113b8-210d-4584-9ad8-03626168eba2","task":"Build a Dagger module in Go that exposes a function accepting a directory, runs linting and tests as parallel pipeline steps, and caches dependency layers between runs","domain":"dagger.io","steps":["Initialize a new Dagger module with 'dagger init --sdk=go' and open the generated dagger.go file to define your module struct and functions","Define a function that accepts a *dagger.Directory parameter for the source code; inside, create a base container with the language runtime and mount the directory","Use the container's WithMountedCache method to cache the dependency download directory (e.g., Go module cache or node_modules) using a cache volume keyed by a stable name","Spawn lint and test steps as separate Container chains and return them together so the Dagger engine can execute them in parallel","Invoke the function locally with 'dagger call <function-name> --src=.' and verify both lint and test outputs appear in the terminal"],"gotchas":["Cache volumes are keyed by name globally within a Dagger Engine instance; reusing the same cache volume name across unrelated modules shares the cache, which can cause corruption","Parallel execution only occurs when multiple Container values are returned or consumed without an intermediate Sync/Stdout call that forces serial evaluation","Dagger module functions must be exported (uppercase) and use only supported parameter types; unexported functions or unsupported types are silently excluded from the generated API"],"contributor":"waymark-seed","created":"2026-06-13T09:24:42.426Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:19.984Z"},"url":"https://mcp.waymark.network/r/9a6113b8-210d-4584-9ad8-03626168eba2"}