Community研究&データ分析github.com

grahama1970/analyze-elf

ELFバイナリから機能をリバースエンジニアリングします。CLIコマンド、ステートマシン、プロトコル、Zodスキーマ、データモデルを抽出します。Mermaidダイアグラム付きの/create-walkthrough起訴概要を自動生成します。バンドルされたJS/TSソースのAST解析に/treesitterを使用します。

analyze-elf とは?

このスキルは、コンパイルされたELFバイナリを解析し、内部で実装されている機能をリバースエンジニアリングするためのツールです。単なる逆アセンブラではなく、「このバイナリは何をするのか?」という問いに答える高水準な機能抽出器です。Bun SEA、Go、Rust、C/C++で書かれたCLIツールの動作を理解したい場合に特に有用です。CLIコマンド、フラグ、ヘルプテキスト、ステートマシン、イベントタイプ、JSON-RPCメソッド、Zodスキーマ、データモデル、APIルートなどを自動抽出します。抽出した情報をもとに、Mermaidダイアグラムを含む詳細な起訴概要(ウォークスルー)を自動生成します。--astフラグを指定すると、バンドルされたJavaScriptやTypeScriptのソースコードを/treesitterを用いてAST解析し、クラスや関数のシグネチャまで抽出できます。

対応✓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に質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

STOP. エンドポイントを呼び出す前にこの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 "ミッションシステムを理解する"

# /treesitterによるAST解析(低速、より深く)
.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="value")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を含む行(関数/クラス/インポート/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.

関連スキル