← ClaudeAtlas

solidity-conventionslisted

Apply Solidity conventions — Foundry only, forge fmt, solhint:all, fuzz tests.
swell-agents/coding-skills · ★ 2 · AI & Automation · score 74
Install: claude install-skill swell-agents/coding-skills
## Default Stack If the repo doesn't define its own tooling, use: - **Foundry** — build, test, scripts (`forge`, `cast`, `anvil`, `chisel`) - **forge fmt** — formatting (`sort_imports = true`, `contract_new_lines = true`, `bracket_spacing = true`) - **solhint** `^6.0.0` — linting, run with `--max-warnings=0 --noPoster` - **GitHub Actions** — CI/CD, separate `build_and_test` and `linter` jobs - **Husky** — `pre-commit` hook runs `npm run lint:check` ## Libraries Default to audited, widely-used libraries over hand-rolling your own: - **OpenZeppelin**: standards and security primitives (ERC20/721/1155, `AccessControl`, `ReentrancyGuard`, UUPS/transparent proxies). - **Solady**: gas-optimized drop-in equivalents for hot paths. When neither covers the need, search these curated lists before writing from scratch: - [bkrem/awesome-solidity](https://github.com/bkrem/awesome-solidity): the canonical Solidity list (libraries, tooling, style guides). - [crytic/awesome-ethereum-security](https://github.com/crytic/awesome-ethereum-security): security tooling and audited components; reach for it during the security pass. ## Testing - **Forge tests only** — `forge test -vvv`. No Hardhat/Truffle unless the repo already uses them. - **Test files** — `test/**/*.t.sol`, one contract under test per file, named `<ContractOrFeature>.t.sol`. - **Fuzz tests** — use Foundry's built-in fuzzing: parameterize test inputs (`function testFoo(uint256 x) public`) and let `forge` generate random inp