关于 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详细介绍
代码执行
在本地执行 Python,并访问 API。批量操作可节省 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(返回元数据,而非源代码)
✅ 批量操作
✅ 处理错误,并返回错误数量
❌ 不要将所有代码都返回到上下文中
❌ 只需要元数据时,不要读取完整源代码
❌ 不要逐个处理文件
令牌节省情况
| 文件数 | 传统方式 | 执行方式 | 节省比例 |
|---|---|---|---|
| 10 | 5K 个令牌 | 500 | 90% |
| 50 | 25K 个令牌 | 600 | 97.6% |
| 100 | 150K 个令牌 | 1K | 99.3% |
评论
支持 Markdown