Design and review stable, idiomatic Go package APIs covering naming, exported declarations, embedding, receivers, typed-nil interfaces, generics, functional options, method sets, errors, wire contracts, compatibility, and examples.
SkillScore96Maintained
Automatic
◆Coding pack
Last verified 8/16/2026
What it changes
Passed 23 of 24 test cases with the skill, and 22 of 24 without it.
Without skill92%
With skill96%
Checks it passed that the model alone missed
Advises letting consumer packages define narrow interfaces where substitution is required.
1 fixed22 passed either way1 still failing0 broke
Pass-rate lift
+4 pp
Tokens
+1%
Agent turns
0%
Response time
-23%
Model gemini-3.6-flashMeasured 8/16/2026v123 of 24 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
A test case the skill fixed. Same model, same prompt, with and without the skill.
Prompt
I am building a new Go package for image processing (`pkg/imageprocessor`). I want to make sure my public API is clean and idiomatic before locking in the signatures. Can you evaluate my planned exported types and methods? Please structure your response as a design assessment covering call-site ergonomics, package naming, interface definitions, and zero-value safety, followed by code snippets showing the recommended API.
What was checked, without and with the skill
Checked
Without skill
With skill
Recommends renaming the package or types to eliminate package name stutter like imageprocessor.ImageProcessor.
Passed
Passed
Advises exporting concrete struct types instead of defining provider-side interfaces.
Passed
Passed
Advises letting consumer packages define narrow interfaces where substitution is required.
Missed
Passed
case-01 · gemini-3.6-flash · 8/16/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md52 linessingle file
Go Idiomatic API Design
Design from the caller's code inward. Prefer the smallest coherent public
surface that preserves invariants and can evolve without needless interfaces.
Core Workflow
Identify callers, supported operations, and compatibility constraints.
Sketch realistic call sites before choosing exported names or types.
Keep packages cohesive and names clear without package-name stutter.
Prefer concrete provider APIs; define narrow interfaces at consumers.
Decide zero-value, mutation, copying, concurrency, and error contracts.