Golang Testing
unxed/f4
Production-ready Golang tests — table-driven tests, testify suites and mocks, parallel tests, fuzzing, fixtures, goroutine leak detection with goleak, snapshot testing, code coverage, integration…
Current Go development guidance for modules, toolchains, workspaces, testing, fuzzing, concurrency, profiling, security, and Go tooling.
$ npx skills add shepherdjerred/monorepo --skill go-helper -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install shepherdjerred/monorepo go-helper --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/shepherdjerred/monorepo.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/dotfiles/dot_agents/skills/go-helper .claude/skills/go-helper && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "go-helper" agent skill from https://github.com/shepherdjerred/monorepo/tree/main/packages/dotfiles/dot_agents/skills/go-helper into .claude/skills/go-helper/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "go-helper", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/shepherdjerred/monorepo/tree/main/packages/dotfiles/dot_agents/skills/go-helperType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add shepherdjerred/monorepo --skill go-helper -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install shepherdjerred/monorepo go-helper --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shepherdjerred/monorepo.git skills-src && mkdir -p .agents/skills && cp -r skills-src/packages/dotfiles/dot_agents/skills/go-helper .agents/skills/go-helper && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "go-helper" agent skill from https://github.com/shepherdjerred/monorepo/tree/main/packages/dotfiles/dot_agents/skills/go-helper into .agents/skills/go-helper/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "go-helper", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add shepherdjerred/monorepo --skill go-helper -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install shepherdjerred/monorepo go-helper --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shepherdjerred/monorepo.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/packages/dotfiles/dot_agents/skills/go-helper .cursor/skills/go-helper && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "go-helper" agent skill from https://github.com/shepherdjerred/monorepo/tree/main/packages/dotfiles/dot_agents/skills/go-helper into .cursor/skills/go-helper/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "go-helper", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/shepherdjerred/monorepo.git --path packages/dotfiles/dot_agents/skills/go-helper--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add shepherdjerred/monorepo --skill go-helper -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install shepherdjerred/monorepo go-helper --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shepherdjerred/monorepo.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/packages/dotfiles/dot_agents/skills/go-helper .gemini/skills/go-helper && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "go-helper" agent skill from https://github.com/shepherdjerred/monorepo/tree/main/packages/dotfiles/dot_agents/skills/go-helper into .gemini/skills/go-helper/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "go-helper", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install shepherdjerred/monorepo go-helperInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add shepherdjerred/monorepo --skill go-helper -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/shepherdjerred/monorepo.git skills-src && mkdir -p .github/skills && cp -r skills-src/packages/dotfiles/dot_agents/skills/go-helper .github/skills/go-helper && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "go-helper" agent skill from https://github.com/shepherdjerred/monorepo/tree/main/packages/dotfiles/dot_agents/skills/go-helper into .github/skills/go-helper/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "go-helper", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add shepherdjerred/monorepo --skill go-helper -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install shepherdjerred/monorepo go-helper --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shepherdjerred/monorepo.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/packages/dotfiles/dot_agents/skills/go-helper .opencode/skills/go-helper && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "go-helper" agent skill from https://github.com/shepherdjerred/monorepo/tree/main/packages/dotfiles/dot_agents/skills/go-helper into .opencode/skills/go-helper/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "go-helper", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
go-helperCurrent Go development guidance for modules, toolchains, workspaces, testing, fuzzing, concurrency, profiling, security, and Go tooling.
Go Helper is an agent skill from shepherdjerred/monorepo. Current Go development guidance for modules, toolchains, workspaces, testing, fuzzing, concurrency, profiling, security, and Go tooling. Use when writing or reviewing Go, go.mod, go.work, Go CI, tests, performance work, or Go upgrades.
Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/modules-and-tooling.md`, `references/patterns-and-security.md` and `references/releases.md`).
It sits in Security, covering Fuzzing and Async programming. It works with Go. The repository describes itself as: Monorepo for all of my projects. The licence is GPL-3.0.
Read from SKILL.md and the folder at commit da14ae9. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
goFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Go Helper loads about 1.7k tokens when it runs, and up to ~4.9k if it reads all its reference files. Until then it costs about 61 tokens; SKILL.md has 766 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from shepherdjerred/monorepo at commit da14ae9, republished under its GPL-3.0 licence (© shepherdjerred). 766 words, ~1,723 tokens.
.claude/skills/go-helper/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Use the module's declared Go language version, propagate errors, keep goroutine ownership explicit, and run the repository's real verification commands. Distinguish read-only module checks from operations that edit files or fetch dependencies.
Verified 2026-08-03: current stable is Go 1.26.5.
go version
go env GOTOOLCHAIN GOVERSIONGo 1.26 added expression-valued new, the default Green Tea garbage collector, lower cgo overhead, crypto/hpke, and other library/tool changes. JSON v2 remains experimental behind GOEXPERIMENT=jsonv2; SIMD work is experimental and platform-specific.
The go directive is a strict minimum language/toolchain version. toolchain suggests a toolchain for the main module. Module-version boundaries also control behavior such as Go 1.22 loop variables and Go 1.23 timer channels.
Read references/releases.md for the 44-page research ledger. Read references/modules-and-tooling.md for module, workspace, toolchain, lint, and dependency operations. Read references/testing-and-performance.md for tests, fuzzing, races, synctest, traces, profiles, and PGO. Read references/patterns-and-security.md for errors, goroutines, HTTP, paths, logging, randomness, and vulnerability checks.
Read-only or check-oriented commands:
go version
go env
go list ./...
go test ./...
go test -race ./...
go vet ./...
go mod verify
go mod tidy -diff
go work edit -jsongo mod tidy edits go.mod and go.sum. Dependency and download commands can mutate caches and involve network state. Review their effect instead of labeling them read-only.
Use the package's actual task when one exists. A generic Go project baseline is:
go test ./...
go test -race ./...
go vet ./...
go mod tidy -diffRun the repository-pinned golangci-lint command if configured. Do not prescribe a fixed number of linters; its catalog and defaults are versioned.
module example.com/project
go 1.26The go line is the minimum required version and selects language behavior. GOTOOLCHAIN controls whether the bundled, PATH, or downloadable toolchain is selected.
Use go get for dependency changes and go mod tidy to reconcile the module graph. Review both go.mod and go.sum. Avoid a broad go get -u ./...; upgrade an intentional set, read release notes, and verify the resulting graph.
For a non-mutating tidy check:
go mod tidy -diffReturn errors with context and preserve identity with %w when callers may inspect them:
func load(path string) ([]byte, error) {
data, err := os.ReadFile(path)
if err != nil {
return nil, fmt.Errorf("read %q: %w", path, err)
}
return data, nil
}Do not discard Close, ReadAll, Write, trace, or server errors when failure can affect correctness. For cleanup whose error matters, call and return it explicitly rather than relying only on defer.
Every goroutine needs a lifecycle: completion, cancellation, or a process-long owner. Thread context.Context through request-scoped operations; never store it in a long-lived struct solely for convenience.
Prefer errgroup or an equivalent structured owner when sibling failure should cancel work. Bound concurrency and preserve output ordering when the contract requires it.
Go 1.25 stabilized testing/synctest; the stable API is synctest.Test(t, func(t *testing.T) { ... }) plus synctest.Wait(). Fake time advances only when goroutines in the bubble are durably blocked.
Use B.Loop() for current benchmarks. Avoid exact universal race-detector or benchmark overhead claims. The race detector only finds races executed on a supported platform.
Fuzz failures are stored at testdata/fuzz/FuzzName/<hash>. Keep them as regression corpus entries.
iter.Seq / Seq2 support range-over-function patterns. Do not yield after yield returns false.maps and slices expose iterator-producing and consuming helpers.unique.Make canonicalizes comparable values into handles.math/rand/v2 is non-cryptographic randomness.os.Root confines supported file operations against symlink path escapes.runtime/trace.FlightRecorder provides bounded recent trace data; check Start and WriteTo errors and call Stop.crypto/hpke implements the RFC 9180 DHKEM suites. Hybrid post-quantum KEMs require a separate specification; use protocol-specific expertise before designing cryptography.Check every server error. Bind diagnostic endpoints to an operator-only interface and never expose net/http/pprof unauthenticated to the public network.
Block and mutex profiles require nonzero profiling rates. CPU, heap, goroutine, block, and mutex profiles answer different questions.
Representative production CPU profiles can drive PGO through default.pgo. A profile must match the workload; do not treat PGO as a universal speed switch.
crypto/rand for secrets; math/rand/v2 is for non-security randomness.os.Root or equivalent confinement for untrusted relative paths.GOPRIVATE, GONOPROXY, and GONOSUMDB as appropriate. GONOSUMCHECK does not exist.govulncheck for known vulnerabilities reachable from application call paths. Binary mode reports vulnerable symbols but does not reconstruct those call paths.log/slog fields and never log secrets.go line, and selected toolchain.go mod tidy -diff for a non-writing module check.synctest, correct fuzz corpus paths, and workload-qualified performance claims.govulncheck and use cryptographic randomness for secrets.© shepherdjerred, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (references) in packages/dotfiles/dot_agents/skills/go-helper of shepherdjerred/monorepo.
Open the folder on GitHubat commit da14ae9
Go Helper next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Go Helper this skillshepherdjerred/monorepo | 112 | — | ~1.7k | Automated safety check: Pass | GPL-3.0 | |
| Golang Testingunxed/f4 | 241 | 1 repos | ~4.5k | Automated safety check: Pass | MIT | |
| Testing Goericrisco/rsc-harness | 167 | — | ~3.7k | Automated safety check: Pass | MIT | |
| Concurrency Fuzzing Testingdzhalaevd/Donatello | 135 | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Golang Patternsantoniopaya22/go-rest-template | 172 | 9 repos | ~3.5k | Automated safety check: Pass | None | |
| Golang Proantoniopaya22/go-rest-template | 172 | 3 repos | ~1.2k | Automated safety check: Pass | MIT |
unxed/f4
Production-ready Golang tests — table-driven tests, testify suites and mocks, parallel tests, fuzzing, fixtures, goroutine leak detection with goleak, snapshot testing, code coverage, integration…
ericrisco/rsc-harness
A skill your agent uses when writing or running Go tests — table-driven cases, named subtests, parallel isolation, fakes instead of mock frameworks, coverage profiles, benchmarks, fuzzing, golden…
dzhalaevd/Donatello
Use as the lead skill when Python tests must expose scheduler/interleaving bugs in asyncio, threading, queues, workers, databases, caches, or mixed-concurrency code
antoniopaya22/go-rest-template
Idiomatic Go patterns, best practices, and conventions for building robust, efficient, and maintainable Go applications.
antoniopaya22/go-rest-template
Implements concurrent Go patterns using goroutines and channels, designs and builds microservices with gRPC or REST, optimizes Go application performance with pprof, and enforces idiomatic Go with…
IBM/fp-go
Covers handling Go's context.Context idiomatically in fp-go code: reading and scoping context through operators, timeouts, cancellation and converting ctx-first functions.
shepherdjerred/monorepo
Bun runtime APIs and current operational patterns for files, processes, modules, networking, databases, tests, and deployment.
shepherdjerred/monorepo
Current Bun test runner guidance for discovery, isolation, parallelism, sharding, changed tests, mocks, timers, snapshots, coverage, DOM Testing Library, and integration teardown.
shepherdjerred/monorepo
Current Bun workspace guidance for isolated and hoisted linkers, catalogs, filters, scripts, dependency classes, lockfiles, lifecycle trust, caches, publishing, TypeScript package exports, and…
shepherdjerred/monorepo
This skill should be used when the user asks to "deep research", "research this topic", "investigate thoroughly", "do a deep dive on", "comprehensive research on", "find everything about", "survey…
shepherdjerred/monorepo
This skill should be used when the user asks to "create a Figma design", "design in Figma", "make a Figma mockup", "create an app icon", "design UI", "render JSX to Figma", "export from Figma"…
shepherdjerred/monorepo
Current Fish shell scripting, functions, abbreviations, completions, variables, events, configuration, plugins, testing, and safety guidance.
Works with
Categories
Current Go development guidance for modules, toolchains, workspaces, testing, fuzzing, concurrency, profiling, security, and Go tooling. Go Helper is an agent skill from shepherdjerred/monorepo. Current Go development guidance for modules, toolchains, workspaces, testing, fuzzing, concurrency, profiling, security, and Go tooling.
Go Helper fits situations like: performance work; tasks that involve Fuzzing; tasks that involve Async programming.
Run `npx skills add shepherdjerred/monorepo --skill go-helper -a claude-code`. Or copy the skill folder (packages/dotfiles/dot_agents/skills/go-helper in shepherdjerred/monorepo) into .claude/skills/go-helper in your project. Claude Code loads it when a task matches its description.
Run `npx skills add shepherdjerred/monorepo --skill go-helper -a codex`. Or copy the skill folder (packages/dotfiles/dot_agents/skills/go-helper in shepherdjerred/monorepo) into .agents/skills/go-helper in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add shepherdjerred/monorepo --skill go-helper -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/go-helper, .gemini/skills/go-helper, .github/skills/go-helper and .opencode/skills/go-helper in your project.
Going by SKILL.md and its folder, Go Helper needs the command-line tools its instructions call (go).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Go Helper is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Go Helper: Golang Testing (unxed/f4, 241 stars), Testing Go (ericrisco/rsc-harness, 167 stars), Concurrency Fuzzing Testing (dzhalaevd/Donatello, 135 stars) and Golang Patterns (antoniopaya22/go-rest-template, 172 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
shepherdjerred (a GitHub user) maintains it in shepherdjerred/monorepo, which has 112 GitHub stars. The repository holds 63 skills in this directory. The repository was last updated on October 8, 2026.
Source: shepherdjerred/monorepo on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.