Community연구 & 데이터 분석github.com

grahama1970/analyze-elf

ELF 바이너리에서 기능을 리버스 엔지니어링합니다. CLI 명령어, 상태 머신, 프로토콜, Zod 스키마, 데이터 모델을 추출합니다. Mermaid 다이어그램이 포함된 /create-walkthrough 기소 브리핑을 자동 생성합니다. AST 분석을 위해 /treesitter를 사용하여 번들된 JS/TS 소스를 분석합니다.

analyze-elf란 무엇인가요?

이 스킬은 컴파일된 ELF 바이너리에서 고수준 기능을 추출하는 전문 도구입니다. 단순한 디스어셈블러가 아니라 "이 바이너리가 무엇을 하는가?"라는 질문에 답하는 특징 추출기입니다. Bun SEA, Go, Rust, C/C++로 작성된 CLI 도구를 분석하여 CLI 명령어, 상태 머신, JSON-RPC 메서드, Zod 스키마, 이벤트 타입 등을 복구합니다. 주요 명령어로는 `features` (바이너리 분석 및 Mermaid 다이어그램으로 시각화된 기소 브리핑 자동 생성), `elf` (로우레벨 ELF 정보), `strings` (정규식 기반 문자열 추출)가 있습니다. `/treesitter` AST 분석과 `/create-walkthrough` 자동 문서 생성을 지원하며, `pyelftools`, `httpx`, `typer`, `loguru`, `binutils`에 의존합니다. `--ast` 플래그를 사용하면 번들된 JavaScript/TypeScript 소스에서 클래스와 함수 시그니처를 심층 분석할 수 있습니다.

지원 대상✓Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/grahama1970/agent-skills/tree/main/skills/analyze-elf

Installed? Explore more 연구 & 데이터 분석 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

중지. 엔드포인트를 호출하기 전에 이 SKILL.MD 전체를 읽으십시오.

analyze-elf은(는) 무엇을 하나요?

컴파일된 ELF 바이너리에서 기능을 리버스 엔지니어링합니다. 디스어셈블러가 아니라 — "이 바이너리가 무엇을 하는가?"라는 질문에 답하는 기능 추출기입니다.

사용 시기

  • 컴파일된 CLI 도구(Bun SEA, Go, Rust, C/C++)가 무엇을 하는지 이해할 때
  • CLI 명령어, 플래그, 도움말 텍스트 추출
  • 상태 머신, 프로토콜 스키마, 이벤트 타입 복구
  • JSON-RPC 메서드 및 Zod 데이터 모델 매핑
  • Mermaid 다이어그램이 포함된 기소 브리핑 워크스루 생성

빠른 시작

# 기본 명령어 — 기능 추출, 워크스루 생성
.pi/skills/analyze-elf/run.sh features /path/to/binary --goal "미션 시스템 이해"

# AST 분석 포함 (/treesitter 사용, 느리지만 더 깊게)
.pi/skills/analyze-elf/run.sh features /path/to/binary --ast --goal "모든 RPC 메서드 찾기"

# 프로그램적 사용을 위한 JSON 출력
.pi/skills/analyze-elf/run.sh features /path/to/binary --output-format json

# 로우레벨 ELF 정보 (헤더, 심볼, 런타임 탐지)
.pi/skills/analyze-elf/run.sh elf /path/to/binary

# 정규식을 사용한 문자열 추출
.pi/skills/analyze-elf/run.sh strings /path/to/binary --pattern "mission|worker"

명령어

명령어설명
features기본. 기능 추출 → Mermaid 다이어그램 워크스루 생성
elf로우레벨: 헤더, 섹션, 심볼, 런타임 탐지
strings정규식 필터 문자열 추출

features가 추출하는 것

카테고리방법예시
CLI 명령어도움말 텍스트 패턴 매칭exec, daemon, mcp
상태 머신열거형 할당 패턴 (M.State="값")orchestrator_turn, paused
이벤트 타입KH.literal("type_name") 패턴mission_accepted, worker_completed
JSON-RPC 메서드method: KH.literal("name") 패턴droid.session_notification
Zod 스키마KH.object({...}) 필드 추출Feature, WorkerHandoff, State
npm 패키지번들된 package.json의 "name": "pkg"@grpc/grpc-js
API 라우트/api/ 및 /v1/ 경로 리터럴/api/auth/login
클래스/함수/treesitter를 통한 AST (--ast 플래그 필요)MissionRunner, spawnWorker

구성

/treesitter (AST 분석)

--ast가 전달되면, 이 스킬은:

  1. .rodata에서 JS 소스 문자열을 추출합니다
  2. JS 관련 행(함수/클래스/import/Zod 패턴)으로 필터링합니다
  3. 청크를 /treesitter parse --language javascript로 파이프합니다
  4. 클래스, 함수, 메서드 시그니처를 추출합니다

/create-walkthrough (자동 생성)

features 명령어는 다음이 포함된 기소 브리핑을 생성합니다:

  • Mermaid CLI 명령어 트리
  • Mermaid 상태 머신 다이어그램
  • Mermaid 이벤트 타입 분류
  • 필드 타입이 포함된 스키마 테이블
  • 위험 평가 ("무엇이 잘못될 수 있는가")

/create-figure

elf 명령어를 통해 DOT 형식의 의존성 및 모듈 다이어그램을 사용할 수 있으며, /create-figure를 통해 렌더링할 수 있습니다.

의존성

  • pyelftools — 구조화된 ELF 파싱
  • httpx — /scillm API 호출
  • typer — CLI
  • loguru — 로깅
  • 시스템: binutils (readelf, nm, strings)

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

grahama1970/acceptance-contract

Turn a client brief, zip bundle, directory, or single requirements file into a typed acceptance-contract bundle with extracted requirements, acceptance checks, open questions, an immutable-goal draft, and a create-report-backed decision report. Use when users say acceptance contract, brief to requirements, freeze the goal, create immutable goal, amend immutable goal, build a Battle requirements bundle, or extract requirements from this bundle.

grahama1970/agent-ecosystem

Canonical map and shared contracts for the agent-governance ecosystem: the pi.receipt_envelope.v1 boundary envelope, the component graph, and the rules for which component owns which schema. Use when wiring a skill or extension into the shared receipt world, when asking how shame, triage-error, tau, ask, project-watchdog, ops-herdr, ponytail, and Memory fit together, or when validating an envelope.

grahama1970/agentic-evals

Agentic evaluation of skills using multi-trial fixtures, deterministic command assertions, trajectory checks, safety constraints, and evidence-backed readiness scoring. Use when users ask for agentic evals, multi-trial skill evaluation, skill trajectory validation, or readiness scoring for a skill workflow.

grahama1970/agent-inbox

File-based inter-agent messaging with headless dispatch. Check inbox, send bugs/requests to other projects, automatically spawn headless agents to fix bugs, and track progress via task-monitor.

grahama1970/agents-registry

Generate and query the centralized agent identity registry. Scans .pi/agents/*/AGENTS.md, parses frontmatter, outputs agents-registry.json and optionally syncs to /memory for semantic search.

grahama1970/agent-status

Artifact-driven status surfaces for long-running project-agent work. Maintains status.json, events.jsonl, proof manifests, and a stale-aware STATUS.html so humans can tell where the agent is, what passed, what is still unproven, and what decision or action is next — without dashboard theater.

grahama1970/align

Round-based context alignment before execution. Use when the human, project agent, WebGPT, scillm, ask, dogpile, memory, or project-knowledge may each hold different facts about a task; especially before ambiguous design, infographic, product workflow, high-stakes implementation, plan-iterate, project-infographic, or multi-review work.

grahama1970/analytics

Flexible data science analytics for any dataset. Auto-discovers schema, recommends charts, exports to create-figure. Works with JSONL, JSON, CSV from any source.

grahama1970/analyze-chatterbox-emotions

Evaluate generated Chatterbox voice files as voice-quality artifacts: affect match, arousal/valence proxies, pause placement, intelligibility inputs, clipping, loudness, and discontinuity flags. Use when reviewing Chatterbox emotional tags, pauses, Turbo/base affect delivery, Persona Dream utterance renders, or whether generated speech matches an intended product-facing affect.

grahama1970/animation-vocabulary

Reverse-lookup glossary that turns a vague description of a web animation or motion effect into its exact term ("the bouncy thing when a popover opens" → Pop in; "the iOS rubber-band scroll" → Rubber-banding). Use when the user asks "what's it called when…", or describes a motion effect without knowing its name and wants the right word to prompt an AI or designer with. For naming an effect, not designing or building one.

grahama1970/anonymize-data

Anonymize supported CSV, JSON, UTF-8 text, and SQLite files using an explicit policy through the oai-trial project. Use for anonymize data, pseudonymize exports, redact policy literals, or discover and explicitly approve fuzzy name aliases. The skill is a thin CLI/Docker interface, not another engine.

grahama1970/anvil

Heavy-duty "No-Vibes" debugging and hardening orchestrator. Use this for complex, stubborn bugs where `review-code` has failed, or for "Red Teaming" (hardening) a codebase. Runs multiple agents in parallel (Thunderdome) using git worktree isolation.

grahama1970/apple-design

Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces.

grahama1970/argue

Multi-persona structured debate orchestrator. Personas research via /dogpile, consult colleagues via /ask, and argue toward nuanced synthesis on complex questions.

grahama1970/arxiv

Search arXiv for papers and extract knowledge into memory. Use `search` to find papers, `learn` to extract knowledge.

grahama1970/ask

Use when the user asks to query project memory, ask an oracle, use supported browser-backed reviewers, run Tau roundtable/single-handler workflows, ask Pi-native subagents from within Pi, run persona/deep-review workflows, generate image prompts, check OS/project health through composed skills, or run an ask DAG. This skill is the executable /ask runtime; do not replace it with an informal subagent, plain web search, or hand-written review; inside Pi, explicit Pi-native subagent targets are routed through the pi-subagents tool as an Ask target type.

grahama1970/assess

Step back and critically reassess project state. Use when asked to "assess", "step back", "fresh eyes", "check alignment", "sanity check", "health check", "prune documentation", or "evaluate what's working". Offers documentation pruning and doc-code alignment analysis. Offer to run after major changes (don't auto-run).

grahama1970/assistant

Shared GPT + classifier inference gateway for persona monitor tasks. Routes validation and classification through a 4-tier cascade: heuristic → classifier → local GPT → scillm.

grahama1970/assistant-lab

Self-improvement workbench for /assistant. All the tools needed to diagnose, train, evaluate, and promote models in a continuous loop. The "warm pond" where /assistant evolves its own inference stack.

grahama1970/batch-quality

Pre-flight validation and quality gates for batch LLM operations. ACTUALLY tests samples through LLM before burning tokens. Uses SPARTA contracts for DuckDB validation queries. Integrates with task-monitor for enforced quality gates.

관련 스킬