Test smart contracts comprehensively using Hardhat and Foundry with unit tests, integration tests, and mainnet forking. Use when testing Solidity contracts, setting up blockchain test suites, or validating DeFi protocols.
78
57%
Does it follow best practices?
Impact
92%
1.19xAverage score across 6 eval scenarios
Advisory
Suggest reviewing before use
Optimize this skill with Tessl
npx tessl skill review --optimize ./plugins/blockchain-web3/skills/web3-testing/SKILL.mdQuality
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 a strong skill description that clearly identifies its domain (smart contract testing), names specific tools and techniques, and provides explicit trigger guidance via a 'Use when...' clause. It covers natural keywords well and occupies a distinct niche that minimizes conflict risk with other skills.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions: 'Test smart contracts comprehensively using Hardhat and Foundry with unit tests, integration tests, and mainnet forking.' This names specific tools (Hardhat, Foundry), test types (unit, integration), and techniques (mainnet forking). | 3 / 3 |
Completeness | Clearly answers both 'what' (test smart contracts using Hardhat and Foundry with unit tests, integration tests, and mainnet forking) and 'when' (Use when testing Solidity contracts, setting up blockchain test suites, or validating DeFi protocols) with an explicit 'Use when...' clause. | 3 / 3 |
Trigger Term Quality | Includes strong natural keywords users would say: 'smart contracts', 'Hardhat', 'Foundry', 'unit tests', 'integration tests', 'mainnet forking', 'Solidity contracts', 'blockchain test suites', 'DeFi protocols'. These cover a good range of terms a developer would naturally use. | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive niche combining smart contract testing with specific tools (Hardhat, Foundry) and blockchain-specific concepts (mainnet forking, DeFi protocols, Solidity). Unlikely to conflict with general testing or other development skills. | 3 / 3 |
Total | 12 / 12 Passed |
Implementation
14%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill reads more like a comprehensive tutorial or cheat sheet than a focused, actionable skill file. It covers too many topics at surface level without clear workflows or progressive disclosure, and several code examples are incomplete. The content would benefit significantly from being split into a concise overview with references to detailed sub-files, and from adding explicit step-by-step workflows with validation checkpoints.
Suggestions
Split into a concise SKILL.md overview (setup + basic unit test pattern) with references to separate files like FOUNDRY.md, ADVANCED_PATTERNS.md, GAS_OPTIMIZATION.md, and CI_CD.md
Add an explicit end-to-end workflow: install dependencies → configure hardhat → write tests → run tests → check coverage → fix gaps, with validation at each step
Complete all placeholder code examples — fill in the time-based test assertion, the Uniswap swap test body, and fix the undefined `addr1` reference in the gas optimization test
Remove or drastically trim sections that aren't core to testing (Etherscan verification, CI/CD setup) and the 'When to Use This Skill' list which adds no actionable value
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is extremely verbose at ~300+ lines, covering too many topics (CI/CD, Etherscan verification, coverage reporting, gas optimization) that are tangential to the core testing skill. It explains patterns Claude already knows (basic test structure, fixture patterns) and includes boilerplate config that could be referenced externally. The 'When to Use This Skill' section lists items like 'Verifying contracts on Etherscan' which aren't even testing. | 1 / 3 |
Actionability | Code examples are mostly concrete and executable, but several are incomplete — the gas optimization unit test references an undefined `addr1`, the time-based test has a placeholder comment instead of actual assertions, and the Uniswap fork test body is just a comment. The Foundry fork test uses a placeholder RPC URL. These gaps prevent copy-paste readiness. | 2 / 3 |
Workflow Clarity | There is no clear sequenced workflow for setting up and running a test suite end-to-end. The content is organized as a reference catalog of patterns rather than a guided process. There are no validation checkpoints, no error recovery guidance, and no explicit sequence connecting setup → write tests → run → validate coverage → fix. For operations like mainnet forking which can be fragile, no troubleshooting or verification steps are provided. | 1 / 3 |
Progressive Disclosure | The entire skill is a monolithic wall of code examples with no references to external files. Content that should be split out (Foundry patterns, advanced testing patterns, CI/CD config, gas optimization) is all inline. There's no quick-start overview followed by pointers to detailed guides — everything is dumped at the same level. | 1 / 3 |
Total | 5 / 12 Passed |
Validation
100%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 11 / 11 Passed
Validation for skill structure
No warnings or errors.
27a7ed9
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.