
Write Foundry-based tests and scripts. Trigger phrases - foundry testing, write test, fuzz test, fork test, invariant test, deploy script, gas benchmark, coverage, or when working in tests/ or scripts/ directories.
This skill should be used when the user asks for crypto prices, market data, market cap, trending coins, historical or OHLC data, token lookup by contract address, coin search, token logos, global crypto stats, or mentions CoinGecko API.
Write bulloak tree specifications (.tree files) for smart contract integration tests. Trigger phrases - write a tree, create test tree, BTT spec, bulloak tree, Branching Tree Technique, or when writing integration tests for contract functions.
Deploy Sablier EVM contracts (Utils, Flow, Lockup, Airdrops, Bob) with full workflow automation. This skill should be used when the user asks to "deploy", "deploy protocol", "deploy to chain", or mentions deployment-related tasks. Handles contract deployment, explorer verification, SDK updates, and initial setup through Init scripts.
This skill should be used when the user asks to "check ETH balance", "query ERC-20 balance", "get wallet balance", "check token holdings", "query Etherscan", or mentions Etherscan API, blockchain balance queries, or multi-chain balance lookups.
Create distinctive, production-grade React interfaces aligned with Sablier's dark-theme aesthetic. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that leverages the Sablier theme.
This skill should be used when the user asks to "recolor the Sablier icon", "Sablier icon in orange", "Sablier logo in primary color", "generate Sablier hourglass variant", "change Sablier icon color", "export Sablier icon as PNG", or "generate Sablier favicon". Generates a gradient or flat Sablier icon SVG in any color using brand palette names, hex values, or CSS color names, with optional PNG/JPG/ICO raster export.
This skill should be used when the user asks about "viem", "viem client", "viem actions", "TypeScript Ethereum", "createPublicClient", "createWalletClient", "parseEther", "formatEther", "readContract", "writeContract", or mentions using viem for blockchain interactions.
This skill should be used when the user asks about "Tailwind CSS", "tailwind-variants", "tv() function", "CSS-first configuration", "Tailwind breaking changes", mentions styling with Tailwind utilities, gradient syntax, or component variants with TypeScript.
This skill should be used when the user asks to "analyze a screenshot", "generate implementation spec", "create SPEC.md from screenshot", "extract design specs", "spec from image", or provides website screenshots and wants detailed implementation guidance.
This skill should be used when the user asks to "open on explorer", "block explorer URL", "Etherscan link", "Arbiscan link", "view tx on explorer", "explorer for chain X", or needs to construct a link to an address, transaction, or contract on a Sablier-supported EVM chain. Provides the canonical default block explorer (URL and human-readable name) for every chain shipped by the `sablier` npm package.
This skill should be used when writing content for Sablier, including "write a blog post", "create a case study", "draft a tweet", "write X/Twitter posts", "write an announcement", "create educational content", or any marketing content task for Sablier's brand.
This skill should be used when the user asks to "create a state machine", "add xState", "use xState with React", "implement actor-based state", "manage complex state with state machines", "use xState with Effect", "integrate Effect-ts with xState", mentions xState hooks (useMachine, useActor, useSelector), or discusses finite state machines in React applications.
This skill should be used when the user asks to create "token airdrops", "Merkle airdrops", "community airdrops", "Sablier airdrop", "vested airdrops", "claimable airdrops", "token claim campaigns", "ERC-20 airdrops", "BEP-20 airdrops", or "BEP20 airdrops" with Sablier Airdrops, wants to distribute tokens to many recipients on Ethereum or EVM-compatible chains using Merkle proofs, or needs an agent to run onchain airdrop-campaign-creation transactions on their behalf.
This skill should be used when the user asks to "withdraw flow stream", "withdraw from Sablier Flow", "claim flow payment", "claim from Sablier Flow", "drain my flow streams", "withdraw all my Sablier Flow streams", "withdraw from open-ended stream", "claim open-ended stream", or wants an agent to withdraw available tokens from one or more Sablier Flow open-ended payment streams on Ethereum or any EVM-compatible chain on their behalf. Supports batching across multiple streams on a single chain.
This skill should be used when the user asks to "cancel a vesting stream", "cancel Sablier vesting", "stop vesting for X", "revoke a Sablier stream", "claw back unvested tokens", "refund unvested tokens", "kill a Sablier Lockup stream", or wants an agent to cancel one or more Sablier Lockup vesting streams as the stream sender on Ethereum or any EVM-compatible chain on their behalf.
This skill should be used when the user asks to "withdraw vested tokens", "withdraw from Sablier vesting", "withdraw all my Sablier streams", "claim everything", "claim all unlocked tokens", "drain my vesting streams", "claim from Sablier", or wants an agent to withdraw unlocked tokens from one or more Sablier Lockup vesting streams on their behalf. Supports EVM chains (batched withdrawal across multiple streams on a single chain via `withdrawMultiple`) and Solana mainnet-beta (single-stream withdrawals from Lockup Linear v0.1).
This skill should be used when the user asks to "cancel a Flow stream", "void a Sablier Flow stream", "stop streaming to X", "refund my Flow deposit", "kill a Sablier Flow payment", "claw back unstreamed funds", "stop a Sablier open-ended stream", or wants an agent to cancel one or more Sablier Flow open-ended payment streams (void + refund where applicable) on Ethereum or any EVM-compatible chain on their behalf.
This skill should be used when the user asks to create "payment streams", "token streaming", "onchain salary", "onchain payroll", "open-ended streams", "Sablier Flow streams", "adjustable-rate streams", "recurring payments", "continuous payments", "salary streaming", "EVM payment streams", "ERC-20 streaming", "ERC20 streaming", or "BEP-20 streaming", or "BEP20 streaming" with Sablier Flow, wants to stream tokens without an end date on Ethereum or EVM-compatible chains.
This skill should be used when the user asks to create "token vesting", "token vesting streams", "onchain vesting", "Ethereum vesting", "EVM vesting", "ERC-20 vesting", "ERC20 vesting", "BEP-20 vesting", or "BEP20 vesting" with Sablier Lockup, wants to create vesting schedules for a token or tokens on Ethereum, EVM-compatible chains, or BNB Chain, needs an agent to run onchain vesting-creation transactions on their behalf.
This skill should be used when the user asks "what is Sablier", "explain Sablier protocol", "how does Sablier work", "Sablier vesting", "Sablier airdrops", "Sablier payroll", mentions Sablier company/product/protocol, or needs context about the Sablier ecosystem.