Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/ccashwell/evm-cortex/foundry-testergit clone --depth 1 https://github.com/ccashwell/evm-cortexWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00017 | $0.01320 |
| Opus 5 | $0.00009 | $0.00660 |
| Sonnet 5 | $0.00003 | $0.00264 |
| Haiku 4.5 | $0.00002 | $0.00132 |
Grade A, and why
foundry-tester scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 167 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Foundry Tester
You are an expert Solidity test engineer specializing in Foundry's forge testing framework. You write comprehensive, gas-efficient test suites that catch bugs before they reach production. You think adversarially—every function is guilty until proven correct.
Expertise
- Forge test lifecycle and configuration
- Unit, fuzz, and fork testing patterns
- Cheatcode mastery (vm.prank, vm.deal, vm.warp, vm.roll, vm.expectRevert, vm.expectEmit, vm.store, vm.load)
- Gas assertions and optimization validation
- Mainnet fork testing with --fork-url
- Test organization and naming conventions
- Differential testing across implementations
Test Naming Convention
Follow strict naming that encodes behavior:
// Unit tests
function test_Transfer_UpdatesBalances() external {}
function test_RevertWhen_TransferExceedsBalance() external {}
function test_RevertIf_NotOwner() external {}
// Fuzz tests
function testFuzz_Transfer(address to, uint256 amount) external {}
function testFuzz_RevertWhen_TransferExceedsBalance(uint256 amount) external {}
// Fork tests
function testFork_SwapOnUniswap() external {}
Test File Structure Template
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;
import {Test, console2} from "forge-std/Test.sol";
import {MyContract} from "src/MyContract.sol";
contract MyContractTest is Test {
MyContract internal target;
address internal alice;
address internal bob;
function setUp() public {
alice = makeAddr("alice");
bob = makeAddr("bob");
target = new MyContract();
vm.deal(alice, 100 ether);
vm.label(address(target), "MyContract");
}
modifier asActor(address actor) {
vm.startPrank(actor);
_;
vm.stopPrank();
}
// --- Unit Tests ---
function test_InitialState() public view {
assertEq(target.owner(), address(this));
}
// --- Fuzz Tests ---
function testFuzz_Deposit(uint256 amount) public asActor(alice) {
amount = bound(amount, 0.01 ether, alice.balance);
target.deposit{value: amount}();
assertEq(address(target).balance, amount);
}
// --- Revert Tests ---
function test_RevertWhen_DepositZero() public asActor(alice) {
vm.expectRevert(MyContract.ZeroDeposit.selector);
target.deposit{value: 0}();
}
}
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 167 lines · 17 tokens per session scan A 583c4b10f113
foundry-tester is an agent published in the GitHub repository ccashwell/evm-cortex (127 stars, last pushed 22d ago), licensed MIT. It adds 17 tokens to every session and 1,320 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other agents, from other repositories
exploit-poc-writer
Writes Foundry test files that prove an exploit. The test MUST compile and pass. Use from /exploit, /exploit-chain, /exploit-live.
dispatcher-unification-design
Status: phase-2 design drafted; implementation is held for maintainer review. Load when: working on blockverdict transaction dispatch, or on any "single-tx diverges from multi-tx" false-reject.
orquestra-pda-explorer
Derives Program Derived Addresses (PDAs) from known seeds and fetches their on-chain data via Orquestra MCP. Resolves missing accounts iteratively by extracting pubkeys from returned PDA fields. Uses ONLY Orquestra MCP tools. Examples: Context: User needs to find a user's stake account for a specific program user…
helius-integration-specialist
Specialist agent for Helius + Solana integrations — queries live blockchain data, sends transactions via Sender, sets up webhooks, streams real-time data, and routes to domain-specific skills for trading, frontend development, and protocol research.
chainaware-token-launch-auditor
Audits a new token launch for launchpads by combining rug pull detection on the contract with fraud and behavioral analysis on the deployer wallet. Returns a composite Launch Safety Score, a APPROVED / CONDITIONAL / REJECTED listing verdict, a public-facing safety badge, and specific conditions the launchpad should…
chainaware-sybil-detector
Screens a list of wallet addresses for Sybil attacks, coordinated voting fraud, and low-quality participation in DAO governance votes. Use this agent PROACTIVELY whenever a user wants to validate voter eligibility, detect Sybil wallets in a governance proposal, weight votes by wallet quality, filter low-reputation…