Go 1 24
Apply Go 1.24 language features, tooling, standard-library APIs, migrations, and behaviour changes. Load for Go work targeting 1.24 or later when the model's knowledge may predate the 2025-02-11 release.From its SKILL.md
npx -y skills add cedws/skills --skill go-1-24Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.
3 things to look at
- 25 days oldThe repository was created 25 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.6 KB, ~1.2k tokens by cl100k_base, as published. Nobody here has run it
Go 1.24
This overview applies when the project's target Go version is at least 1.24.
Language
- Available capability: parameterised type aliases when an existing generic type must be re-exported or renamed without creating a distinct defined type.
- Unsupported or discouraged: depend on
GOEXPERIMENT=noaliastypeparams; it is a temporary opt-out and the corresponding experiment switch is removed in Go 1.25.
Tools and modules
- Tooling support: executable dependencies with
tooldirectives ingo.modinstead of blank imports intools.go. Add one withgo get -tool, run it withgo tool, and use thetoolmeta-pattern to upgrade or install all tracked tools. - Available capability:
go build -json,go install -json, andgo test -jsonwhen automation needs structured build diagnostics. Update consumers to distinguish build actions interleaved with test actions. - Configuration support:
GOAUTHfor authenticated private-module fetches instead of embedding credentials in repository configuration. GODEBUG=toolchaintrace=1is available when diagnosing automatic toolchain selection.go vetcan catch malformed tests, non-constantfmt.Printf(s)calls without arguments, invalid point-release build tags, and copied locks in three-clause loop variables.- Apply
#cgo noescapeand#cgo nocallbackonly when the C function's behaviour proves the annotation; incorrect declarations can invalidate compiler assumptions.
Runtime and resource lifetime
runtime.AddCleanupis the modern alternative toruntime.SetFinalizer. Use it for one or more cleanups without delaying reclamation or creating the same cycle-related leaks as finalisers.- Available capability:
weak.Pointeronly for low-level caches, weak maps, or canonicalisation structures that cannot useunique; do not use weak reachability as ordinary ownership. - the Swiss-table map and new runtime mutex is defaults. Use
GOEXPERIMENT=noswissmapornospinbitmutexonly to isolate an upgrade regression.
Filesystems and encoding
- Available capability:
os.OpenRootandos.Rootoperations when filesystem access must remain beneath a directory, including across symbolic links. - Modern alternative: iterator-returning
bytesandstringssplit, field, and line functions when streaming values avoids an intermediate slice. - Interface support:
encoding.TextAppenderorencoding.BinaryAppenderwhen a type can append its representation into caller-owned storage and avoid a fresh allocation. - Available capability: the JSON
omitzerotag when the semantic requirement is to omit a zero value, especially zerotime.Timevalues. Keepomitemptyfor JSON-empty semantics. - Available capability: iterator methods in
go/typesrather thanLenandAtindex loops when traversing exposed sequences.
Cryptography
- Available capability: the standard-library
crypto/mlkem,crypto/hkdf,crypto/pbkdf2, andcrypto/sha3packages instead of theirgolang.org/x/cryptopredecessors when Go 1.24 is the minimum target. cipher.NewGCMWithRandomNonceis available when AES-GCM nonce generation and ciphertext prefixing should be handled by the AEAD. Do not separately supply a nonce to that AEAD.- Replacement: deprecated OFB and CFB modes with authenticated AEAD modes. Use CTR only when an unauthenticated stream mode is explicitly required.
- Reject RSA keys smaller than 1024 bits. Use
GODEBUG=rsa1024min=0only in a test that must exercise a legacy key. crypto/rand.Textsupports cryptographically secure random text.- Available capability:
crypto/subtle.WithDataIndependentTimingaround code that requires supported architecture-specific data-independent timing. - X25519MLKEM768 is enabled in TLS defaults, while the earlier experimental X25519Kyber768Draft00 mechanism is unavailable.
- Select a Go Cryptographic Module with
GOFIPS140and enable FIPS mode withGODEBUG=fips140=...only when the deployment's compliance policy requires it.
Testing
- Modern alternative:
for b.Loop() { ... }in benchmarks so setup runs once and benchmarked calls remain live against compiler elimination. - Available capability:
T.ContextorB.Contextfor work that must be cancelled after the test finishes and before cleanup functions run. - Available capability:
T.ChdirorB.Chdirfor a scoped working-directory change in tests. GOEXPERIMENT=synctestis an experimental opt-in for evaluate deterministic concurrent tests with virtual time and quiescence detection. Treat the Go 1.24 API as unstable.
Compatibility
- Replacement: calls to deprecated
runtime.GOROOTwith locating thegoexecutable and invokinggo env GOROOTwhen the installation root is needed. - Unsupported or discouraged: call deprecated
math/rand.Seed; create and seed a local generator when reproducibility is required. - Configuration support: HTTP versions through
http.Server.Protocols,http.Transport.Protocols, and their HTTP/2 settings. Enable unencrypted HTTP/2 only when prior-knowledge h2c is intended. - Platform requirement: Linux kernel 3.2 or later. Treat macOS 11 as the final supported macOS baseline for this release and remove the broken
windows/armtarget. - Available capability:
//go:wasmexportand-buildmode=c-sharedonly for supported WebAssembly host exports or WASI reactor/library builds.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.