code-execution について
Claude Code向けのスキルで、Pythonによるファイル、コード、変換、Gitの操作をローカルで実行します。大量処理や複数ステップの作業に適し、大きなソースデータではなく概要を返します。
主な機能
- 01ファイルシステムのコピーと編集
- 02コードメタデータと依存関係の分析
- 03コードの一括変換
- 04Gitの状態確認と変更操作
- 05ローカルでの一括処理
活用シーン
- 01複数ファイルの識別子を一括変更
- 02指定関数をファイル間で移動
- 03コードベースの依存関係を監査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mhattingpete/ claude-skills-marketplace --skill code-executionインストール後、Claude Code で/code-executionを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
examples/bulk_refactor.pycodebase_audit.pyextract_functions.py詳細
コード実行
API アクセスを利用して、Python をローカルで実行します。一括処理で90~99%のトークンを節約できます。
使用するタイミング
- 一括操作(10 ファイル以上)
- 複雑な複数ステップのワークフロー
- 多数のファイルに対する反復処理
- ユーザーが効率やパフォーマンスに言及した場合
使用方法
Claude Code で Python を直接インポートします。
from execution_runtime import fs, code, transform, git
# Code analysis (metadata only!)
functions = code.find_functions('app.py', pattern='handle_.*')
# File operations
code_block = fs.copy_lines('source.py', 10, 20)
fs.paste_code('target.py', 50, code_block)
# Bulk transformations
result = transform.rename_identifier('.', 'oldName', 'newName', '**/*.py')
# Git operations
git.git_add(['.'])
git.git_commit('feat: refactor code')
インストールされていない場合: ~/.claude/plugins/marketplaces/mhattingpete-claude-skills/execution-runtime/setup.sh を実行します
利用可能な API
- ファイルシステム(
fs):copy_lines、paste_code、search_replace、batch_copy - コード分析(
code):find_functions、find_classes、analyze_dependencies — メタデータのみを返します! - 変換(
transform):rename_identifier、remove_debug_statements、batch_refactor - Git(
git):git_status、git_add、git_commit、git_push
パターン
- ローカルで分析する(ソースではなくメタデータのみ)
- ローカルで処理する(実行中にすべての操作を行う)
- 概要を返す(データではなく!)
例
一括リファクタリング(50 ファイル):
from execution_runtime import transform
result = transform.rename_identifier('.', 'oldName', 'newName', '**/*.py')
# Returns: {'files_modified': 50, 'total_replacements': 247}
関数の抽出:
from execution_runtime import code, fs
functions = code.find_functions('app.py', pattern='.*_util$') # Metadata only!
for func in functions:
code_block = fs.copy_lines('app.py', func['start_line'], func['end_line'])
fs.paste_code('utils.py', -1, code_block)
result = {'functions_moved': len(functions)}
コード監査(100 ファイル):
from execution_runtime import code
from pathlib import Path
files = list(Path('.').glob('**/*.py'))
issues = []
for file in files:
deps = code.analyze_dependencies(str(file)) # Metadata only!
if deps.get('complexity', 0) > 15:
issues.append({'file': str(file), 'complexity': deps['complexity']})
result = {'files_audited': len(files), 'high_complexity': len(issues)}
ベストプラクティス
✅ データではなく概要を返す ✅ code_analysis を使用する(ソースではなくメタデータを返します) ✅ 一括操作を行う ✅ エラーを処理し、エラー数を返す
❌ すべてのコードをコンテキストに返さない ❌ メタデータが必要なときにソース全体を読み込まない ❌ ファイルを 1 つずつ処理しない
トークン節約量
| ファイル数 | 従来の方法 | 実行 | 節約量 |
|---|---|---|---|
| 10 | 5K tokens | 500 | 90% |
| 50 | 25K tokens | 600 | 97.6% |
| 100 | 150K tokens | 1K | 99.3% |
コメント
Markdown 対応