Foundry Deploy Fixtures
aviggiano/security
Create or refactor Foundry deployment fixtures for Solidity tests.
Reviews an existing Diffyscan YAML or JSON config for load errors, runtime prerequisites, pinned sources, address mappings and broad exceptions.
$ npx skills add lidofinance/diffyscan --skill validate-config -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install lidofinance/diffyscan validate-config --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/lidofinance/diffyscan.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/validate-config .claude/skills/validate-config && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "validate-config" agent skill from https://github.com/lidofinance/diffyscan/tree/main/.claude/skills/validate-config into .claude/skills/validate-config/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-config", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/lidofinance/diffyscan/tree/main/.claude/skills/validate-configType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add lidofinance/diffyscan --skill validate-config -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install lidofinance/diffyscan validate-config --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lidofinance/diffyscan.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/validate-config .agents/skills/validate-config && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "validate-config" agent skill from https://github.com/lidofinance/diffyscan/tree/main/.claude/skills/validate-config into .agents/skills/validate-config/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-config", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add lidofinance/diffyscan --skill validate-config -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install lidofinance/diffyscan validate-config --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lidofinance/diffyscan.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/validate-config .cursor/skills/validate-config && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "validate-config" agent skill from https://github.com/lidofinance/diffyscan/tree/main/.claude/skills/validate-config into .cursor/skills/validate-config/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-config", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/lidofinance/diffyscan.git --path .claude/skills/validate-config--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add lidofinance/diffyscan --skill validate-config -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install lidofinance/diffyscan validate-config --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lidofinance/diffyscan.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/validate-config .gemini/skills/validate-config && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "validate-config" agent skill from https://github.com/lidofinance/diffyscan/tree/main/.claude/skills/validate-config into .gemini/skills/validate-config/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-config", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install lidofinance/diffyscan validate-configInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add lidofinance/diffyscan --skill validate-config -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/lidofinance/diffyscan.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/validate-config .github/skills/validate-config && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "validate-config" agent skill from https://github.com/lidofinance/diffyscan/tree/main/.claude/skills/validate-config into .github/skills/validate-config/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-config", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add lidofinance/diffyscan --skill validate-config -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install lidofinance/diffyscan validate-config --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lidofinance/diffyscan.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/validate-config .opencode/skills/validate-config && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "validate-config" agent skill from https://github.com/lidofinance/diffyscan/tree/main/.claude/skills/validate-config into .opencode/skills/validate-config/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-config", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
validate-configReviews an existing Diffyscan YAML or JSON config for load errors, runtime prerequisites, pinned sources, address mappings and broad exceptions.
Validate Config is an agent skill from lidofinance/diffyscan. Reviews an existing Diffyscan YAML or JSON config for load errors, runtime prerequisites, pinned sources, address mappings and broad exceptions. Use for config review or preflight validation; failed live runs belong to debug-diff and new deployment setup to new-config.
Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Backend & APIs, covering Smart contracts and Deployment. It works with Solidity. The repository describes itself as: Diffyscan detects deployment drift by comparing GitHub source with explorer-verified source and on-chain bytecode across EVM networks. The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 9fd6833. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
uvFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Validate Config loads about 1.1k tokens when it runs. Until then it costs about 71 tokens; SKILL.md has 478 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from lidofinance/diffyscan at commit 9fd6833, republished under its MIT licence (© lidofinance). 478 words, ~1,105 tokens.
.claude/skills/validate-config/SKILL.md (or your agent's skills folder).Validate the requested config without claiming static checks prove a deployment matches. Run commands from the repository root.
Read the config, configuration reference, diffyscan/utils/common.py and diffyscan/utils/custom_types.py. TypedDicts describe structure; they do not enforce it at runtime. Check the actual loader:
uv run python - path/to/config.yaml <<'PY'
import sys
from diffyscan.utils.common import load_config
load_config(sys.argv[1])
print("Config load passed")
PYThen inspect what the loader does not fully validate:
contracts, string names and valid 20-byte hexadecimal addresses. Quote YAML hex keys and values, including nested overrides.github_repo and each dependency have url, a full commit SHA and relative_root. Dependency prefixes match published source paths. Repository config tests require dependencies, including when empty.explorer_hostname_env_var; the runtime resolves the latter when the explicit hostname is absent. network, audit_url and metadata are optional descriptive fields.get_explorer_chain_id in diffyscan/utils/explorer.py converts the configured value with int(). Check that it identifies the intended chain; conversion alone does not validate a chain ID. Confirm the API and RPC agree; the CLI does not compare their chain IDs.source_comparison: false combined with --skip-binary-comparison is rejected.Read bytecode comparison. Cross-check per-contract keys against contracts; flag unused entries. Preserve exact address spelling for constructor_args and constructor_calldata: their runtime lookup is case-sensitive, unlike allowed-diff rules. Check calldata hex, argument list shapes, mutually exclusive constructor overrides, deployment_from addresses and extra_sources paths. Library keys identify the definition file and apply to all contracts in the config.
load_config validates allowed_diffs through diffyscan/utils/allowed_diffs.py. Schema validity does not justify a rule: inspect reason and scope. Use allowed-diffs when tightening or adding exceptions.
With bytecode comparison enabled, fail_on_bytecode_comparison_error: false lets outer per-contract errors continue, including explorer/source errors. With --skip-binary-comparison, that config flag is not applied. Caught bytecode errors produce failed results, except that a bytecode any: true rule marks DeploymentSimulationError as allowed.
For changes under configs/, run:
uv run pytest -q tests/test_configs.py tests/test_no_wildcard_regression.pyThese tests inspect repository configs, not arbitrary files outside configs/. Loader success alone does not cover all schema fields, source availability, compiler reproduction or on-chain correctness.
List concrete errors with config keys and locations, then evidence gaps or recommendations. Separate loader success, repository tests and live verification. If live verification was requested, run it with --json and inspect status, errors and coverage using JSON output; otherwise report the static verdict and its limits. Edit the config only when the task includes fixes.
Treat placeholder-looking addresses and commits as unverified inputs, not proof that a fetch will fail. An empty dependencies map is not an error without evidence of unresolved imports: those sources may belong to the primary repository. Report supported defaults as defaults rather than missing-field findings, and keep a review-only answer focused on findings instead of rewriting a valid config.
© lidofinance, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/validate-config of lidofinance/diffyscan.
Open the folder on GitHubat commit 9fd6833
Validate Config next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Validate Config this skilllidofinance/diffyscan | 142 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Foundry Deploy Fixturesaviggiano/security | 144 | — | ~634 | Automated safety check: Pass | MIT | |
| function Object() { [native code] } Patternsccashwell/evm-cortex | 131 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Test Fixturesccashwell/evm-cortex | 131 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Foundry Differential Testsaviggiano/security | 144 | — | ~613 | Automated safety check: Pass | MIT | |
| Cross Chain Securityccashwell/evm-cortex | 131 | — | ~1.7k | Automated safety check: Pass | MIT |
aviggiano/security
Create or refactor Foundry deployment fixtures for Solidity tests.
ccashwell/evm-cortex
Constructor and initializer patterns for deploying Solidity contracts.
ccashwell/evm-cortex
A skill your agent uses when setting up test environments for Solidity protocols.
aviggiano/security
Create Foundry differential tests comparing production Solidity contracts against an independent reference model.
ccashwell/evm-cortex
Cross-chain security patterns for multi-chain Solidity deployments and bridge interactions.
ccashwell/evm-cortex
Library design patterns for reusable Solidity code. An agent skill from ccashwell/evm-cortex.
lidofinance/diffyscan
Adds or repairs Diffyscan explorer API routing and response adapters for a new host, chain or payload format.
lidofinance/diffyscan
Adds, reviews or tightens Diffyscan alloweddiffs rules for explained source or bytecode differences, including replacing any wildcards with granular rules.
lidofinance/diffyscan
Creates or extends a Diffyscan verification config for a deployed contract or deployment.
lidofinance/diffyscan
Diagnoses failed or incomplete Diffyscan runs, unexpected source or bytecode differences, compilation failures and explorer or RPC errors.
Works with
Categories
Reviews an existing Diffyscan YAML or JSON config for load errors, runtime prerequisites, pinned sources, address mappings and broad exceptions. Validate Config is an agent skill from lidofinance/diffyscan. Reviews an existing Diffyscan YAML or JSON config for load errors, runtime prerequisites, pinned sources, address mappings and broad exceptions.
Validate Config fits situations like: preflight validation; failed live runs belong to debug-diff and new deployment setup to new-config.
Run `npx skills add lidofinance/diffyscan --skill validate-config -a claude-code`. Or copy the skill folder (.claude/skills/validate-config in lidofinance/diffyscan) into .claude/skills/validate-config in your project. Claude Code loads it when a task matches its description.
Run `npx skills add lidofinance/diffyscan --skill validate-config -a codex`. Or copy the skill folder (.claude/skills/validate-config in lidofinance/diffyscan) into .agents/skills/validate-config in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add lidofinance/diffyscan --skill validate-config -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/validate-config, .gemini/skills/validate-config, .github/skills/validate-config and .opencode/skills/validate-config in your project.
Going by SKILL.md and its folder, Validate Config needs the command-line tools its instructions call (uv). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Validate Config is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.1k tokens (SKILL.md is roughly 4.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Validate Config: Foundry Deploy Fixtures (aviggiano/security, 144 stars), function Object() { [native code] } Patterns (ccashwell/evm-cortex, 131 stars), Test Fixtures (ccashwell/evm-cortex, 131 stars) and Foundry Differential Tests (aviggiano/security, 144 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
lidofinance (a GitHub organization) maintains it in lidofinance/diffyscan, which has 142 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 6, 2026.
Source: lidofinance/diffyscan on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.