# .claude

> Agentic Skills for Web3 Smart Contract Auditing

- Skill: `archi-upside4th/claude` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add archi-upside4th/claude`
- Raw SKILL.md: https://api.skillmd.com/api/skills/archi-upside4th/claude/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: archi-Upside4th (https://skillmd.com/u/archi-upside4th)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/archi-upside4th/claude

---

# Agentic Skills for Web3 Smart Contract Auditing

이 문서는 AI 에이전트가 Web3 스마트 컨트랙트를 오딧할 때 준수해야 할 엄격한 스킬셋과 실행 지침입니다. 에이전트는 추상적인 추론을 지양하고, 명시된 도구와 검증 절차에 의존해야 합니다.

## 에이전트 스킬 (Agentic Skills)

### [Skill 1] 위협 모델 / 시나리오 분석 방법론
- **행동 지침:** 코드 라인을 읽기 전에 프로토콜의 '불변성(Invariants)'과 '자금 흐름도'를 먼저 정의하라.
- **주요 체크리스트 (DeFi / Web3 특화):**
  1. **Access Control:** `onlyOwner` 등 권한 탈취 가능성
  2. **Accounting:** 예치금과 실제 잔고(`balanceOf(address(this))`)의 불일치
  3. **Math & Logic:** Precision Loss(정밀도 손실), Integer Overflow/Underflow (Solidity 0.8 이전 또는 `unchecked` 블록)
  4. **External Calls:** Reentrancy, Read-only Reentrancy, 악의적인 외부 컨트랙트 호출
  5. **DeFi Specific:** Flash Loan Attack, AMM Price Oracle Manipulation

### [Skill 2] 정적 분석 (Static Analysis) 방법론
- **행동 지침:** 에이전트는 코드 리뷰 시 자체적인 판단보다 정적 분석 도구의 출력을 우선 검토하라.
- **실행 명령 (터미널에서 직접 실행):**
  - `slither . --exclude-dependencies` (설치된 경우)
  - `aderyn .` (Rust 기반 AST 스캐너, 설치된 경우)
- **결과 처리:** 툴이 뱉어낸 JSON이나 텍스트 로그를 파싱하여, 정보성 경고(Info)는 무시하고 High/Medium 취약점 후보군만 리스트업하라.

### [Skill 3] 동적 분석 (Dynamic Analysis) 방법론
- **행동 지침:** 정적 분석에서 찾은 취약점을 Foundry 환경에서 런타임으로 검증하라.
- **실행 명령:**
  - `forge test --match-contract [타겟_컨트랙트] -vvvv` (전체 트레이스 로그 확인)
  - 상태 전이 추적: `cast storage` 또는 콘솔 로그를 통해 스토리지 슬롯 값의 변화를 추적하라.
- **제약 사항:** 가스 리밋 에러(OOG)나 `revert` 발생 시, 에러 시그니처나 메시지(예: `execution reverted: pool empty`)를 반드시 컨텍스트에 포함시켜 분석하라.

### [Skill 4] MCP (Model Context Protocol) 활용
- **행동 지침:** 로컬 코드베이스만으로 정보가 부족할 때, 온체인 데이터를 적극적으로 끌어와라.
- **활용 예시:**
  - 메인넷/테스트넷의 실제 컨트랙트 상태(State)를 읽어야 할 때.
  - Etherscan API를 통해 검증된 소스 코드나 ABI를 다운로드해야 할 때.

### [Skill 5] FP(오탐) / TP(정탐) 평가
- **행동 지침:** 에이전트는 자신이 찾은 취약점을 극도로 의심해야 한다.
- **평가 기준 (엄격함):**
  - **FP (오탐):** 공격 시나리오가 성립하더라도, 타겟 컨트랙트의 `require`, `modifier`, 또는 Solidity 버전의 기본 SafeMath에 의해 공격이 100% 차단된다면 FP로 즉시 분류하라.
  - **TP (정탐):** Skill 3(동적 분석)을 통해 Foundry 환경에서 자금 탈취나 권한 상승이 실제로 증명된 경우에만 TP로 인정하라. '이론적으로 가능하다'는 핑계는 허용하지 않는다.

### [Skill 6] Exploit / PoC 코드 개발
- **행동 지침:** 확정된 TP에 대해 Foundry 기반의 재현 가능한 PoC(Proof of Concept)를 작성하라.
- **PoC 표준 템플릿:**
  - 파일명: `test/Exploit_이름.t.sol`
  - 반드시 `forge-std/Test.sol`을 상속받을 것.
  - `setUp()` 함수에서 타겟 컨트랙트의 초기 상태를 완벽하게 모사(Mocking)할 것.
  - `testExploit()` 함수 내에서 공격 로직을 실행하고, 공격 전/후의 `balanceOf`를 `assertEq`나 `assertGt`로 비교하여 해킹 성공 여부를 코드 단에서 증명할 것.

### [Skill 6-1] PoC 작성 시 필수 Foundry Cheatcodes 
- 특정 지갑(Attacker)으로 함수를 호출할 때: `vm.prank(attacker)` 또는 `vm.startPrank(attacker)`를 반드시 사용하라.
- 시간(Block Timestamp) 조작이 필요할 때: `vm.warp(초)`를 사용하라.
- 이더(ETH) 잔고를 강제로 늘려야 할 때: `vm.deal(지갑, 금액)`을 사용하라.

### [Skill 7] 상태 기록 및 메모리 관리 (Scratchpad)
- **행동 지침:** 에이전트는 동적 분석(Skill 3)이나 PoC 개발(Skill 6) 중 실패를 겪을 때마다, 즉시 `audit_log.md` 파일에 현재까지의 '성공한 가설', '실패한 가설', '에러 원인'을 기록하라.
- **목적:** 컨텍스트 윈도우 한계로 인한 기억 상실 방지 및 불필요한 동일 코드 반복 실행(루핑) 차단.

### [Skill 8] 컨텍스트 최적화 및 토큰 방어 전략 (Context Diet)
- **행동 지침:** 에이전트는 제한된 컨텍스트 윈도우와 API 비용을 방어하기 위해 불필요한 로그 출력을 극도로 억제해야 한다.
- **가시성(Verbosity) 통제 룰:**
  1. 동적 분석(Skill 3) 및 PoC 테스팅 시 기본적으로 `forge test -vv` (이벤트 로그만 출력) 또는 `-vvv` (실패한 테스트의 트레이스만 출력)를 사용하라.
  2. 스택 트레이스 전체가 필요한 결정적인 순간에만 국소적으로 `-vvvv`를 사용하라.
  3. 터미널 출력 결과가 50줄을 넘어가는 거대한 로그 덤프가 발생할 경우, 전체를 읽어들이지 말고 에러 시그니처와 가스 소비량 등 핵심 원인 3가지만 요약(Summarize)하여 기억하라.

