59просмотров
10 января 2026 г.
📷 ФотоScore: 65
Скилл для ультрабыстрого анализа кода (Joern CPG) Первый раз попробовал сделать скилл, не уверен что у всех заработает. Если не пашет — пишите, поправлю. ⚠️ Joern весит ~1.6 ГБ и требует Java 21 Суть — Joern строит граф кода (CPG) один раз за ~30 сек, потом любые запросы мгновенные. Никаких grep -r на 10 секунд. Что умеет: • dataflow — pipeline с docstrings, state mutations, cross-step зависимости • blast_radius — кто вызывает функцию, сколько файлов затронет изменение • callers/callees — граф вызовов • dead_code — неиспользуемые функции Пример вывода: ═══ Step 2: step_domain_splitter ═══ ◀── File │ input: state, config │ writes: set_domains, set_current_step │ Step 2: Split spec into domains. Cross-Step Data Flow: step_domain_splitter ──[domains]──▶ step_scanner, step_contracts, step_merge step_merge ──[tasks]──▶ step_spawn_workers, step_db_sync https://github.com/Starknight-one/joern-skill Установка: # Требуется: Python 3.10+, Java 21, uv (или pip) # 1. Установить skill git clone https://github.com/Starknight-one/joern-skill~/.claude/skills/joern # 2. Установить Java 21 + Joern (~1.6 ГБ) # macOS: brew install openjdk@21 joern echo 'export PATH="/opt/homebrew/opt/openjdk@21/bin:$PATH"' >> ~/.zshrc # Linux (Ubuntu): sudo apt install openjdk-21-jdk curl -L "https://github.com/joernio/joern/releases/latest/download/joern-install.sh" | bash # 3. Скопировать в свой проект cp -r ~/.claude/skills/joern/scripts my-project/scripts/joern # 4. Создать CPG (один раз, ~30 сек) cd my-project uv run python -m scripts.joern create . # 5. Использовать uv run python -m scripts.joern --cpg myproject dataflow src/ uv run python -m scripts.joern --cpg myproject blast_radius my_function