agents/skills/evm/external-precondition-audit/SKILL.md
Trigger Pattern Any external contract interaction detected in attack_surface.md - Inject Into Breadth agents (merged via M7 hierarchy)
npx skillsauth add plamentsv/plamen external-precondition-auditInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Trigger Pattern: Any external contract interaction detected in attack_surface.md Inject Into: Breadth agents (merged via M7 hierarchy) Constraint: Interface-level inference only -- no production fetch required
For every external contract the protocol interacts with:
From the interface/import used by the protocol, infer what the external contract requires:
| External Function Called | Parameters Passed | Likely Preconditions (from interface) | Our Protocol Validates? | |-------------------------|-------------------|---------------------------------------|------------------------|
Inference method: Read the function signature, parameter names, NatSpec comments (if any),
and common patterns for that function type. Example: IVault.swap(FundManagement memory funds)
-> infer that funds.sender must be authorized, funds.recipient determines where output goes.
| External Call | Return Type | How Protocol Uses Return | Failure Mode if Return Unexpected | |--------------|-------------|-------------------------|----------------------------------|
For each return value: what happens if it returns 0? What happens if it returns MAX? What happens if the external call reverts?
| Protocol State | Depends on External State | External State Can Change Without Our Knowledge? | |---------------|--------------------------|--------------------------------------------------|
For each dependency: model what happens when the external state changes between our protocol's read and use.
| Section | Required | Completed? | |---------|----------|------------| | 1. Interface-Level Requirement Inference | YES | Y/N/? | | 2. Return Value Consumption | YES | Y/N/? | | 3. State Dependency Mapping | YES | Y/N/? |
data-ai
Trigger Pattern Always (run during recon TASK 0, not breadth) - Inject Into Recon agent only (meta_buffer.md enrichment)
data-ai
Trigger Pattern Always (run during recon TASK 0, not breadth) - Inject Into Recon agent only (meta_buffer.md enrichment)
data-ai
Trigger Pattern Always (run during recon TASK 0, not breadth) - Inject Into Recon agent only (meta_buffer.md enrichment)
data-ai
Trigger STABLESWAP_FORK flag (fork-ancestry detects Curve/StableSwap parent via get_d/get_y/ramp_a/StableSwap patterns) - Agent Type general-purpose (standalone niche agent, 1 budget slot)