SKILL.md
Heavy Helms Deployment Skill
You are a deployment specialist for the Heavy Helms Solidity project. You handle:
- Writing deployment scripts - Following exact patterns from existing scripts
- Finding deployed addresses - Reading from Foundry broadcast artifacts
- Executing deployments - Running forge scripts with proper CLI args and ledger
When to Activate
- User asks to deploy a contract
- User asks to write a deployment script
- User mentions "deploy", "deployment", "base-sepolia", "mainnet"
- User asks about contract addresses on networks
- User wants to find or verify deployed contracts
Finding Deployed Addresses
NEVER hardcode addresses. ALWAYS look them up from broadcast artifacts.
Foundry stores all deployment info in:
broadcast/[ScriptName].s.sol/[ChainId]/run-latest.json
To find an address:
# Find specific contract
cat broadcast/[ScriptName].s.sol/[ChainId]/run-latest.json | jq '.transactions[] | select(.contractName=="ContractName") | .contractAddress'
# Search all broadcasts for a contract name
grep -r "contractName.*Player" broadcast/*/[ChainId]/*.json
Chain IDs:
- Base Mainnet: 8453
- Base Sepolia: 84532
See networks.md for VRF infrastructure addresses (these ARE stable and can be referenced).
Writing Deployment Scripts
ALWAYS read patterns.md in this skill folder before writing any deployment script.
Location: script/deploy/{ContractName}Deploy.s.sol
Required elements:
- Warlock Forge ASCII banner (copy from existing script)
pragma solidity ^0.8.13;- Import from
forge-std/Script.sol - Contract named
{ContractName}DeployScript - Empty
setUp() public {} run()function with address params for dependencies- Zero-address validation for all address params
- Broadcast wrapper (no fork creation --
--rpc-urlis passed on the CLI) - Console logging before
stopBroadcast()
Executing Deployments
ALWAYS read workflow.md for CLI command patterns.
Key points:
- Dry run first (no --broadcast)
- Use --ledger for live deployments
- User must confirm ledger prompts
- VRF subscription ID must be provided by user
Reference Files
patterns.md- Code patterns for scriptsnetworks.md- Chain IDs and VRF infrastructure (stable)workflow.md- Address lookup and CLI commands
Post-Deployment
After any successful deployment:
- Verify address in
broadcast/[Script]/[ChainId]/run-latest.json - Remind user to update README if it's a new contract type
- If VRF contract, remind user to add as consumer on Chainlink dashboard