mcpField
O
oxidizer-workflow

oxidizer-workflow

github.com/rysweet开发7662 次安装21 周前更新
代码仓库

关于 oxidizer-workflow

oxidizer-workflow 是用于将 Python 模块、包和命令行工具迁移到 Rust 的技能。它采用测试优先的迭代流程,通过覆盖率门槛及功能对等和代码质量检查来验证迁移。

主要功能

  1. 01Python AST 与 API 分析
  2. 02移植前的测试覆盖率门槛
  3. 03逐模块迭代迁移
  4. 04功能对等与退化检查
  5. 05Rust 构建、测试、Lint 和格式检查

适用场景

  1. 01将 Python 包移植为 Rust crate
  2. 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 二进制程序

核心原则

  1. 测试优先——开始移植前,必须完成 Python 测试覆盖
  2. 零容忍——必须实现 100% 的功能对等;不接受部分结果
  3. 质量门禁——每次迭代都运行 clippy、fmt 和完整的测试套件
  4. 不允许静默退化——必须保留每项功能、边缘情况和错误路径
  5. 迭代收敛——按模块逐步处理,循环直至收敛

必需输入

输入示例描述
python_package_pathsrc/amplihack/recipes要迁移的 Python 包路径
rust_target_pathrust/recipe-runnerRust 项目的创建位置
rust_repo_nameamplihack-recipe-runnerRust 项目的 GitHub 仓库名称
rust_repo_orgrysweet仓库所属的 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