1
0
Files
Skill/openspec/changes/archive/2026-02-06-optimize-python-runner-uv-syntax/proposal.md
2026-02-06 17:39:36 +08:00

42 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## Why
当前python-runner skill要求使用PEP 723规范在脚本顶部添加内联元数据块来声明依赖这需要修改用户现有的Python脚本降低了使用便利性。通过改用`uv run --with`语法并自动解析脚本内容中的依赖可以在不改动用户脚本的情况下利用uv的隔离环境直接运行脚本提升用户体验和灵活性。
## What Changes
- **BREAKING**: 移除对PEP 723规范的依赖不再要求脚本顶部包含`# /// script`元数据块
- **BREAKING**: 不再保持对包含PEP 723元数据的旧脚本的兼容性
- 新增依赖解析功能通过分析脚本内容自动识别所需的Python包
- 新增智能执行逻辑:
- 使用`uv sync --dry-run`检测当前目录是否为uv项目
- 如果是uv项目直接使用`uv run script.py`执行
- 如果不是uv项目使用`uv run --with package1 --with package2 script.py`执行
- 新增路径处理逻辑:
- 当用户指定脚本存储路径时,将脚本写入指定目录
- 仅在用户未指定路径或由大模型自主生成脚本时,才使用临时脚本
- 更新执行命令模式,统一使用`--with`语法传递依赖
- 简化实现:直接使用大模型命令行工具执行项目检测,无需新增辅助脚本
## Capabilities
### New Capabilities
- `uv-run-with-syntax`: 使用`uv run --with`语法执行Python脚本的能力包括自动依赖解析和智能项目检测
### Modified Capabilities
- `uv-python-runner`: 现有spec需要更新以反映新的执行流程包括移除PEP 723要求、新增依赖解析逻辑、新增智能路径和项目检测
## Impact
- **代码影响**
- 修改`skills/python-runner/SKILL.md`,更新执行工作流和示例
- 保留现有的`get_temp_path.py`辅助脚本
- 不新增辅助脚本,项目检测直接使用命令行工具
- **行为影响**
- 不再支持PEP 723元数据格式
- 新版工作流可以不经修改直接运行用户现有的Python脚本
- 改进了与现有uv项目的集成体验
- **依赖影响**无新增依赖继续使用uv作为核心依赖
- **兼容性**
- 保持跨平台兼容性Windows/macOS/Linux
- 不保持对旧版PEP 723格式的兼容性BREAKING CHANGE