Prevent Ethereum hashing bugs in JavaScript and TypeScript. Node's sha3-256 is NIST SHA3, not Ethereum Keccak-256, and silently breaks selectors, signatures, storage slots, and address derivation.
84
84%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Quality
Discovery
82%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, highly specific description that clearly identifies a niche problem domain with excellent trigger terms for Ethereum/Solidity developers working in JavaScript/TypeScript. Its main weakness is the lack of an explicit 'Use when...' clause, which would help Claude know exactly when to select this skill. The technical specificity and distinctiveness are excellent.
Suggestions
Add an explicit 'Use when...' clause, e.g., 'Use when writing or reviewing Ethereum-related JavaScript/TypeScript code that involves hashing, function selectors, EIP-712 signatures, storage slot computation, or address derivation.'
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete issues: selectors, signatures, storage slots, address derivation, and clearly names the root cause (Node's sha3-256 vs Ethereum Keccak-256). Very concrete and actionable. | 3 / 3 |
Completeness | Clearly answers 'what does this do' (prevent Ethereum hashing bugs involving sha3-256 vs Keccak-256), but lacks an explicit 'Use when...' clause. The when is only implied by the problem description. Per rubric guidelines, missing 'Use when...' caps completeness at 2. | 2 / 3 |
Trigger Term Quality | Includes highly relevant natural keywords: 'Ethereum', 'hashing', 'JavaScript', 'TypeScript', 'sha3-256', 'Keccak-256', 'selectors', 'signatures', 'storage slots', 'address derivation'. These are terms developers would naturally use when encountering this specific bug class. | 3 / 3 |
Distinctiveness Conflict Risk | Extremely niche and specific — targets a particular bug class (Node sha3-256 vs Ethereum Keccak-256) in specific languages (JS/TS). Very unlikely to conflict with other skills. | 3 / 3 |
Total | 11 / 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, focused skill that clearly communicates a subtle and dangerous pitfall in Ethereum development. The code examples are excellent—concrete, executable, and covering multiple libraries. Minor improvements could be made by adding a brief remediation workflow (find → replace → verify) and considering whether the extensive examples warrant splitting into a reference file.
Suggestions
Add a brief remediation workflow: 1) Run grep audit commands, 2) Replace with library-specific Keccak helpers, 3) Verify outputs match expected hashes for known inputs
Consider moving library-specific examples to a separate EXAMPLES.md and keeping SKILL.md as a concise overview with one canonical example plus links
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is lean and efficient. It states the core problem in one sentence, shows the divergence with a minimal code example, and provides library-specific snippets without explaining what Ethereum or hashing is. Every section earns its place. | 3 / 3 |
Actionability | Provides fully executable, copy-paste-ready code examples for ethers v6, viem, and web3.js. Includes concrete grep commands for auditing codebases and specific patterns for selectors, storage slots, and address derivation. | 3 / 3 |
Workflow Clarity | The skill is more of a reference/pattern catalog than a multi-step workflow. The audit section provides grep commands but lacks a clear sequence (e.g., find → replace → verify). For a skill about preventing bugs, a validation/verification step after remediation would strengthen it. | 2 / 3 |
Progressive Disclosure | Content is well-organized with clear section headers and the examples are grouped by library, but everything is inline in a single file. The common patterns and library-specific examples could be split out or at least signaled as expandable sections for a cleaner overview. | 2 / 3 |
Total | 10 / 12 Passed |
Validation
90%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 10 / 11 Passed | |
Reviewed
Table of Contents