From go-copilot
Reviews Go test quality, security testing, and test organization based on project testing policy. Loads during test reviews.
How this skill is triggered — by the user, by Claude, or both
Slash command
/go-copilot:test-reviewThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The policy values this review enforces are project-owned and live in [`docs/testing-principles.md`](../../../docs/testing-principles.md): the test pyramid ratios (§ Test Pyramid), the coverage target and scope (§ Coverage), the mocking policy (§ Mocking Policy), and the naming school (§ Test Naming). Read them before reviewing and enforce what the brief says, not remembered defaults — the brief...
The policy values this review enforces are project-owned and live in docs/testing-principles.md: the test pyramid ratios (§ Test Pyramid), the coverage target and scope (§ Coverage), the mocking policy (§ Mocking Policy), and the naming school (§ Test Naming). Read them before reviewing and enforce what the brief says, not remembered defaults — the brief is the contract that survives harness upgrades. If the brief contradicts itself or the code under review reveals a gap in it, raise a clarify finding against the brief instead of silently substituting your own values.
t.Run() for subteststest_name_pattern floor in scripts/layout.tomlFunc(%v) = %v, want %vcmp.Diff for struct comparisonst.Helper()t.Cleanup() for teardownt.Fatal, not t.ErrorThe policy is the brief's (§ Mocking Policy). Go-specific application of its boundary rule:
| Mock Type | Acceptable | Location |
|---|---|---|
| HTTP client | Yes | System boundary |
| Internal types | No | Use real implementation |
| Time/Clock | Yes | Deterministic testing |
-race flaggo test -race ./...
Detects data races at runtime. Should run on all tests in CI.
go vet ./...
Catches common mistakes. Should block merge on failure.
For input parsing code, verify fuzz tests exist:
func FuzzParseInput(f *testing.F) {
f.Add([]byte(`{"id":"test"}`))
f.Fuzz(func(t *testing.T, data []byte) {
// Should not panic
ParseInput(data)
})
}
Fuzz test requirements:
*_test.go in same package for unit tests*_integration_test.go with build tag for integration tests//go:build integration
package mypackage_test
testdata/ directoryvalid_input.json, malformed_response.jsonempty.json, null_fields.jsont.Helper() in helper functionsnpx claudepluginhub woditschka/agentic-coding-reference --plugin go-copilot3plugins reuse this skill
First indexed Jun 15, 2026
Reviews Go test quality, security testing, and test organization based on project testing policy. Loads during test reviews.
Enforces a project's testing policy during code review: coverage targets, test structure, mocking rules, and naming conventions. Loads when reviewing test quality.
Reviews Go test code for table-driven tests, assertions, parallel execution, cleanup, mocking, benchmarks, fuzzing, httptest, and coverage patterns in *_test.go files.