ability-analysis
Trigger Pattern Always (Aptos Move) - foundational security check - Inject Into Breadth…
Protocol Type Trigger NAMED_EXTERNAL_PROTOCOL (detected when recon finds import/interface for an identifiable external protocol — not standard libraries). Researches known integration hazards of the target protocol.
$ npx -y skills add PlamenTSV/plamen --skill integration-hazard-research --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/integration-hazard-researchContext preview
The summary Claude sees to decide when to auto-load this skill.
Protocol Type Trigger NAMED_EXTERNAL_PROTOCOL (detected when recon finds import/interface for an identifiable external protocol — not standard libraries). Researches known integration hazards of the target protocol.
name: "integration-hazard-research" description: "Protocol Type Trigger NAMED_EXTERNAL_PROTOCOL (detected when recon finds import/interface for an identifiable external protocol — not standard libraries). Researches known integration hazards of the target protocol."
> **Protocol Type Trigger**: `NAMED_EXTERNAL_PROTOCOL` — detected when recon identifies imports or interface calls to a named external protocol (Uniswap, Aave, Balancer, Compound, Curve, Chainlink, Lido, MakerDAO, etc.) that is NOT a standard library (OpenZeppelin, solmate, solady) and NOT the protocol under audit itself. > **Inject Into**: depth-external agent > **Language**: All chains (EVM primary; Solana/Aptos/Sui when integrating with named on-chain protocols) > **Finding prefix**: `[IHR-N]` > **Added in**: v1.1.5
This skill adds a **research phase** (Section 0) before depth-external's existing code analysis. All sections map to depth-external's domain. The orchestrator includes this skill in the depth-external agent's prompt when `NAMED_EXTERNAL_PROTOCOL` is flagged.
When decomposing into investigation questions:
Recon Agent 3 detects named external protocol imports during TASK 6 pattern scanning. Indicators:
The flag records which protocols were detected: `NAMED_EXTERNAL_PROTOCOL: [Uniswap V3, Chainlink]`
---
For each section below, execute in order: 1. **ENUMERATE targets**: List every entity the section applies to (external protocols, hazard catalog entries, race condition candidates, TOCTOU pairs) as a numbered list before analysis begins. 2. **PROCESS exhaustively**: Analyze each numbered entity. Mark each "DONE" or "N/A (reason)" before moving to the next. 3. **COVERAGE GATE**: Count enumerated vs processed. If any entity lacks a marker, process it before proceeding to the next section.
For EACH named external protocol detected by recon:
DO NOT call `mcp__unified-vuln-db__search_solodit_live` or any tavily/web-search MCP tool for dependency research. They are unavailable in depth-phase subagent contexts — the driver launches `depth` workers with `--disallowedTools mcp__*` and an empty MCP server config to prevent cold-start hangs. Any Solodit/Tavily MCP call in this phase will silently fail or hang; do not attempt it.
Read `{SCRATCHPAD}/external_dependency_research.md` instead. This is the recon-baked research ledger: recon runs as a phase-LLM with live `WebSearch`/`WebFetch`/`tavily_search` access and already researched every detected external dependency's real interface/semantics (deployed source, ABI/arity, monotonicity, gas/error behavior) before depth ever runs. For each target protocol/dependency, find its row: `Dependency | Integration Surface (file:line) | Assumed Behavior (as coded) | Real Behavior (researched) | Source (URL + fetch date) | Conformance MATCH/MISMATCH/CHECK | Fetch Status OK/FETCH_FAILED:reason`. Use the ledger's Real Behavior / Conformance columns as your hazard-catalog input for Section 0c below instead of live search results.
For an integration surface in your target that is NOT covered by any ledger row (a dependency the ledger missed, or a row with `Fetch Status: FETCH_FAILED`), do NOT guess the real behavior and do NOT silently fall through to the 0d floor catalog as if it were live research. Emit, in your finding output, one escalation line per uncovered surface:
NEEDS_DEPENDENCY_RESEARCH: <dependency>:<file:line>: <what you need to know>
Then proceed under the assumed WORST-CASE realistic external condition per Rule 10 (`rules/finding-output-format.md`), tagging the finding `[EXTERNAL-ASSUMPTION: <assumed condition>]`. Note: native `WebSearch`/ `WebFetch` (non-MCP Claude Code tools) remain available if you need a single targeted check beyond the ledger — but the ledger is the primary source and should cover the large majority of surfaces; ad-hoc web search is not a substitute for reading it first.
| Target Protocol | Known Integration Hazard | Severity | Root Cause | Source | Applicable to This Integration? | |----------------|------------------------|----------|------------|--------|-------------------------------| | {protocol} | {hazard title} | {sev} | {brief root cause} | {ledger row dependency name / URL from external_dependency_research.md} | YES / NO / CHECK |
**Applicability criteria** (same as FORK_ANCESTRY):
Autonomous Web3 security auditor for Claude Code and OpenAI Codex CLI. Orchestrates 18-100 AI agents across 40+ phases to produce audit reports with verified PoC exploits — for smart contracts and L1 node-client infrastructure.
Repo: PlamenTSV/plamen
Trigger Pattern Always (Aptos Move) - foundational security check - Inject Into Breadth…
Trigger Pattern Always (Aptos Move) - Move VM aborts on shift = bit width - Inject Into…
Trigger Protocol has privileged roles (admin, operator, governance, resource account owner) -…
Trigger EXTERNAL_LIB flag detected (protocol uses third-party Move dependencies) - Used by…
Trigger Pattern MONETARY_PARAMETER flag (required) - Inject Into Breadth agents (merged via…