Comprehensive guide to stretchr/testify for Golang testing. Covers assert, require, mock, and suite packages in depth. Use when writing tests with testify, creating mocks, setting up test suites, or choosing between assert and require. Covers testify assertions, mock expectations, argument matchers, call verification, suite lifecycle, and advanced patterns like Eventually, JSONEq, and custom matchers. Apply when the codebase imports github.com/stretchr/testify.
88
89%
Does it follow best practices?
Impact
84%
1.37xAverage score across 3 eval scenarios
Passed
No known issues
Quality
Discovery
100%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is an excellent skill description that clearly identifies its domain (stretchr/testify for Go), lists specific capabilities and concepts covered, and provides explicit trigger conditions for when to use it. It uses proper third-person voice, includes both high-level and granular trigger terms, and is distinctive enough to avoid conflicts with general Go testing skills.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions and concepts: assert, require, mock, suite packages, testify assertions, mock expectations, argument matchers, call verification, suite lifecycle, and advanced patterns like Eventually, JSONEq, and custom matchers. | 3 / 3 |
Completeness | Clearly answers both 'what' (comprehensive guide covering assert, require, mock, suite packages, assertions, mock expectations, etc.) and 'when' (explicit 'Use when writing tests with testify, creating mocks, setting up test suites' and 'Apply when the codebase imports github.com/stretchr/testify'). | 3 / 3 |
Trigger Term Quality | Excellent coverage of natural terms a Go developer would use: 'testify', 'assert', 'require', 'mock', 'test suites', 'Golang testing', 'github.com/stretchr/testify', 'assertions', 'mock expectations', 'argument matchers'. These are all terms users would naturally mention. | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive with a clear niche: specifically targets the stretchr/testify Go library. The mention of the specific import path 'github.com/stretchr/testify' and testify-specific concepts like Eventually, JSONEq, and the assert/require distinction make it very unlikely to conflict with general Go testing or other testing framework skills. | 3 / 3 |
Total | 12 / 12 Passed |
Implementation
79%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a strong, well-structured testify reference skill with excellent actionability and conciseness. Code examples are executable and the common mistakes section adds high value. The main weaknesses are the lack of an explicit end-to-end workflow for mock-based testing and the missing bundle file for the referenced mock.md, which slightly undermines progressive disclosure.
Suggestions
Add the referenced `./references/mock.md` bundle file or inline the essential mock workflow (define → expect → call → assert expectations) to avoid a dead reference.
Consider adding a brief numbered workflow for the mock testing pattern (1. Define mock, 2. Set expectations, 3. Inject into SUT, 4. Call method, 5. AssertExpectations) to improve workflow clarity.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The content is lean and efficient throughout. It assumes Claude knows Go testing basics, avoids explaining what testify is beyond one orienting sentence, and uses compact code examples and terse rules. The assertion reference table is dense but earns its place as a quick-lookup resource. | 3 / 3 |
Actionability | All code examples are fully executable Go snippets with real function signatures, proper imports implied by context, and copy-paste ready patterns. The naming convention (`is`/`must`), the rule about assert vs require, and the Common Mistakes section all provide concrete, immediately applicable guidance. | 3 / 3 |
Workflow Clarity | The skill covers multiple distinct topics (assert/require, mocks, suites) with clear sections, and the suite lifecycle is well-sequenced. However, there's no explicit workflow for writing a test end-to-end (e.g., create mock → set expectations → call SUT → verify), and the mock section defers to a reference file without showing the core verification loop inline. The 'always verify with AssertExpectations(t)' is stated but not embedded in a validation-checkpoint workflow. | 2 / 3 |
Progressive Disclosure | The skill references `./references/mock.md` for mock details and cross-references other skills, which is good progressive disclosure. However, the bundle has no files, so the mock reference is unverifiable. The core assertions section is quite long inline and could arguably be split out, though it serves as a useful quick-reference. The cross-references at the end are well-signaled. | 2 / 3 |
Total | 10 / 12 Passed |
Validation
81%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
metadata_field | 'metadata' should map string keys to string values | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 9 / 11 Passed | |
8c7e016
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.