go-testing-quality

SkillSecurity

Use when writing or reviewing Go tests, adding coverage, benchmarking, or profiling a Go program. Not for CI/lint wiring (go-tooling-security) or non-Go tests.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the go-testing-quality skill

What this skill tells your AI

The instructions your AI receives, as published by fusengine/agents in plugins/go-expert/skills/go-testing-quality/SKILL.md and read by ahel’s review.

Go Testing & Quality

Idiomatic, 2026-current testing and quality practices for Go, built on the standard testing package with testify where it adds clarity.

Use when:

  • Writing unit tests for Go code (table-driven, subtests)
  • Adding assertions or mocks with testify (assert / require / mock)
  • Writing fuzz tests, benchmarks, or example tests
  • Measuring coverage (go test -cover) or chasing race conditions (-race)
  • Profiling / optimizing with pprof or setting up PGO
  • Reviewing an existing Go test suite for quality gaps

Do NOT use for:

  • Project layout, routing, DB wiring, DI — use go-architecture
  • SOLID line-limit / interface enforcement — use fuse-solid:solid-go
  • Non-Go test suites (Pest, Vitest, Jest, cargo test) — use the matching expert
  • Security scanning / CVE audit — use fuse-security

Decision Map

GoalLoad
Write the standard Go test (table-driven + subtests)table-driven.md
Assertions and mocks with testifytestify-mocks.md
Fuzzing, benchmarks, example testsfuzzing-benchmarks.md
Coverage, race detector, pprof, PGOcoverage-profiling.md
A complete, runnable test file to copytemplates/table-test.md

Core Practices (2026)

  1. Table-driven tests are the idiom. Define a slice of cases, loop, and run each as a subtest with t.Run(tc.name, …) for isolation and readable output.
  2. testify is the de-facto assertion/mock standard. assert for soft checks, require to abort on failure, mock for hand-written mocks, suite for setup/teardown groups. It is maintained at v1 (no breaking v2). Source: https://pkg.go.dev/github.com/stretchr/testify
  3. Fuzzing is native since Go 1.18 (func FuzzXxx(f *testing.F)), and finds edge cases table tests miss.
  4. Always run -race in CI. The race detector catches data races that are otherwise nondeterministic and unreproducible.
  5. Measure before optimizing. Benchmarks (go test -bench) + pprof profiles guide real changes; PGO feeds a production profile back into the compiler.

Workflow

  1. Explore the code under test and existing test conventions first.
  2. Write table-driven tests as the default shape (table-driven.md).
  3. Add testify assertions/mocks where they improve readability, not reflexively.
  4. Run go test ./... -race -cover and inspect gaps.
  5. Fuzz / benchmark hotspots and parsers (fuzzing-benchmarks.md).
  6. Profile only after a benchmark proves a hotspot (coverage-profiling.md).
  7. Validate with sniper after changes.

Boundaries

Overlaps with github.com/samber/cc-skills-golang (community Go skills) — this skill owns testing and quality tooling; architecture/structure lives in go-architecture. Cross-referenced for boundaries only, not copied.

Signals

GitHub stars
27
Forks
4
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
go-testing-quality
Source
github.com/fusengine/agents