关于 oxidizer-workflow
oxidizer-workflow 是用于将 Python 模块、包和命令行工具迁移到 Rust 的技能。它采用测试优先的迭代流程,通过覆盖率门槛及功能对等和代码质量检查来验证迁移。
主要功能
- 01Python AST 与 API 分析
- 02移植前的测试覆盖率门槛
- 03逐模块迭代迁移
- 04功能对等与退化检查
- 05Rust 构建、测试、Lint 和格式检查
适用场景
- 01将 Python 包移植为 Rust crate
- 02用 Rust 二进制程序替换 Python CLI
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ rysweet/ amplihack --skill oxidizer-workflow安装后在 Claude Code 中输入/oxidizer-workflow确认已加载。
详细介绍
Oxidizer 工作流技能
用途
编排 oxidizer-workflow 配方,将 Python 代码库迁移到 Rust。
该工作流采用递归和目标驱动的方式——持续循环,直到实现 100% 的功能对等,
并在每次迭代中进行质量审计和静默退化检查。
使用场景
- 将 Python 模块、包或 CLI 迁移到 Rust
- 将 Python 库移植为独立的 Rust crate
- 创建用于替代 Python 工具的 Rust 二进制程序
核心原则
- 测试优先——开始移植前,必须完成 Python 测试覆盖
- 零容忍——必须实现 100% 的功能对等;不接受部分结果
- 质量门禁——每次迭代都运行 clippy、fmt 和完整的测试套件
- 不允许静默退化——必须保留每项功能、边缘情况和错误路径
- 迭代收敛——按模块逐步处理,循环直至收敛
必需输入
| 输入 | 示例 | 描述 |
|---|---|---|
python_package_path | src/amplihack/recipes | 要迁移的 Python 包路径 |
rust_target_path | rust/recipe-runner | Rust 项目的创建位置 |
rust_repo_name | amplihack-recipe-runner | Rust 项目的 GitHub 仓库名称 |
rust_repo_org | rysweet | 仓库所属的 GitHub 组织或用户 |
执行
通过 Recipe Runner
recipe-runner-rs amplifier-bundle/recipes/oxidizer-workflow.yaml \
--set python_package_path=src/mypackage \
--set rust_target_path=rust/mypackage \
--set rust_repo_name=my-rust-package \
--set rust_repo_org=myorg
通过 Python API
from amplihack.recipes import run_recipe_by_name
result = run_recipe_by_name(
"oxidizer-workflow",
user_context={
"python_package_path": "src/mypackage",
"rust_target_path": "rust/mypackage",
"rust_repo_name": "my-rust-package",
"rust_repo_org": "myorg",
},
)
工作流阶段
Phase 1: Analysis
└─ AST analysis, dependency mapping, type inference, public API extraction
Phase 1B: Test Completeness Gate
└─ Measure coverage → write missing tests → re-verify → BLOCK if < 100%
Phase 2: Scaffolding
└─ cargo init, add dependencies, create module structure
Phase 3: Test Extraction
└─ Port Python tests to Rust test modules → quality audit tests
Phase 4-6: Iterative Convergence Loop (× N until 100% parity)
├─ Select next module (priority order from Phase 1)
├─ Implement module in Rust
├─ Compare: feature matrix diff against Python
├─ Quality gate: cargo clippy + fmt + test
├─ Silent degradation audit: check for lossy conversions
├─ Fix any degradation found
└─ Convergence check: if < 100% parity → loop again
Final: Summary report with parity matrix
收敛规则
- 每次迭代一次处理一个模块(由核心向外的策略)
- 配方中最多展开 5 层循环,子配方的
max_depth: 8 - 当
convergence_status == "CONVERGED"或iteration_number > max_iterations(默认值为 30)时,配方终止 - 如果达到最大迭代次数时仍未收敛,最终摘要会报告 尚未完成的模块
成功标准
- Rust 项目可顺利构建(
cargo build) - 所有测试均通过(
cargo test) - clippy 警告为零(
cargo clippy -- -D warnings) - 格式符合要求(
cargo fmt --check) - 功能对等矩阵显示覆盖率为 100%
- 未检测到静默退化
评论
支持 Markdown