完善评测体系并重写项目 README
Code Mirage 是一套面向 Python → HarmonyOS NEXT 的自动迁移与严格评测系统。 它将 Python distribution 分析、兼容性适配、目标 wheel 构建、ABI 审计、真机验证和 Coding Agent 工作流组织成可复现的 Pipeline;只有完整验证门禁通过,产物才会进入 release/。
release/
项目不把“生成了代码”视为迁移成功,也不会用 stub、静默降级、跳过测试或本地模拟 代替目标设备证据。缺少 SDK、SOABI、依赖闭包、测试 oracle、函数覆盖或真机行为证据 时,运行会明确返回 blocked/failed/unavailable,而不是制造成功结果。
ctypes
. ├── engine/ # Python 迁移、构建、验证与 benchmark 核心 │ ├── src/code_mirage/ # fail-closed Pipeline、CLI、MCP、评测器 │ ├── src/py_analyzer/ # Python/native 静态分析与适配生成 │ ├── benchmark/smoke/ # 可执行的本地评测 smoke fixture │ ├── config/ # SDK、NDK、映射、resolver 与 sandbox 配置 │ ├── docs/ # 使用、HAP、测试与评测文档 │ └── tests/ # 单元、集成、端到端与契约测试 ├── arkts-assistant/ # HarmonyOS/ArkTS 文档检索 MCP Server ├── skill/ # 可移植的 harmony-python-migrate Codex Skill └── claude/ # Claude Code 迁移工作流入口
锁定源码/目标/测试 ↓ 目标探测与环境校验 ↓ 源码和 native 依赖分析 ↓ Agent/规则驱动的兼容性适配 ↓ 目标 wheel 与离线依赖闭包构建 ↓ G0–G3:基线、契约、wheel、ABI 审计 ↓ G4–G5:目标安装、导入、行为与完整功能验证 ↓ TARGET_VERIFIED → 原子发布 release/
退出状态:
TARGET_VERIFIED
BLOCKED
VALIDATION_FAILED
ENVIRONMENT_ERROR
TOOL_ERROR
要求 Python 3.10 或更高版本。
cd engine python -m pip install -e ".[dev,mcp]" code-mirage --help
目标设备必须具有可用的 CPython 与 pip。项目不假设系统默认提供通用 Python 运行时。
code-mirage probe \ --executor hdc \ --hdc-target DEVICE_ID \ --python-executable /data/local/tmp/python/bin/python3 \ --sdk-path /path/to/harmony-sdk \ --sysroot /path/to/harmony-sdk/sysroot \ --api-level EXPECTED_API_LEVEL \ --output target-profile.json
也可使用 --executor ssh,或通过 code_mirage.executors entry point 注册自定义执行器。
--executor ssh
code_mirage.executors
迁移前需要准备并审阅:
TestContract
FullFeatureContract
然后冻结所有输入:
code-mirage lock ./python-project \ --target target-profile.json \ --sandbox config/sandbox.toml \ --test-contract test-contract.toml \ --full-feature-contract full-feature-contract.json \ --output migration-input
code-mirage migrate ./python-project \ --target target-profile.json \ --input-lock migration-input \ --sandbox config/sandbox.toml \ --test-contract test-contract.toml \ --full-feature-contract full-feature-contract.json \ --resolver config/resolver.toml \ --output migration-run
成功产物:
release/ ├── wheelhouse/ ├── requirements.lock ├── target-profile.json ├── migration-manifest.json ├── validation-report.json ├── validation-report.junit.xml └── sbom.cdx.json
失败或证据不足时只生成 diagnostics/,不会发布未经验证的 wheelhouse。
diagnostics/
code-mirage verify ./migration-run/diagnostics/<run-id>/<attempt> \ --executor hdc \ --hdc-target DEVICE_ID
verify 只重跑现有产物的 G2–G5。源码或 shim 发生变化后必须重新执行 migrate。
verify
migrate
skill/harmony-python-migrate/ 提供完整的 Agent 工作方式:兼容性评估、测试 oracle 构建、迁移、诊断、验证和报告。它要求 Agent 对补丁语义负责,而脚本负责确定性的扫描、 锁定、构建和证据采集。
skill/harmony-python-migrate/
Skill 可通过以下脚本安装到个人 Codex 环境:
python skill/harmony-python-migrate/scripts/install_portable_skill.py
Claude Code 可使用 claude/harmony-migrate.md 作为迁移入口。
Engine 提供只读证据工具,包括 HAP scope 风险评估、NDK 符号查询和迁移运行检查。 必须显式配置允许读取的路径:
$env:CODE_MIRAGE_ROOT = "C:\path\to\repo\engine" $env:CODE_MIRAGE_ALLOWED_ROOTS = "C:\path\to\workspace" code-mirage-mcp
该服务不直接修改源码、锁文件或设备状态。
arkts-assistant/ 提供本地 HarmonyOS/ArkTS 官方文档检索和可选智能问答:
arkts-assistant/
cd arkts-assistant npm install npm run build npm start
详细工具和配置参见 arkts-assistant/README.md。
评测固定使用三组互斥实验:
Pipeline 两组使用相同模型、命令、超时、源码和 evaluator,唯一变量为 MCP 开关。 所有组都由同一套外部 evaluator 评分,迁移方法不能自行声明成功。
量化指标包括:
缺失证据显示为 n/a,不会自动补 0 或 100%。本地 smoke 报告具有永久水印,不能作为 模型或 HarmonyOS 真机效果数据。
n/a
cd engine code-mirage benchmark validate --manifest benchmark/smoke/manifest.json code-mirage benchmark run \ --manifest benchmark/smoke/manifest.json \ --output benchmark-smoke-output
正式 manifest、指标分母、telemetry 和报告解释规则详见 engine/docs/evaluation.md。
cd engine python -m pytest -q python -m compileall -q src scripts tests benchmark cd ../arkts-assistant npm run build
当前仓库验证基线:
git diff --check
上述数字是仓库测试结果,不是 Python → HarmonyOS 迁移效果数据。真实迁移成功率、函数 覆盖率、测试通过率、token 效率和 MCP 消融结论必须由生产 benchmark 在统一模型、SDK 和目标设备上运行后生成。
MIT,见 engine/LICENSE。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
Code Mirage
Code Mirage 是一套面向 Python → HarmonyOS NEXT 的自动迁移与严格评测系统。 它将 Python distribution 分析、兼容性适配、目标 wheel 构建、ABI 审计、真机验证和 Coding Agent 工作流组织成可复现的 Pipeline;只有完整验证门禁通过,产物才会进入
release/。项目不把“生成了代码”视为迁移成功,也不会用 stub、静默降级、跳过测试或本地模拟 代替目标设备证据。缺少 SDK、SOABI、依赖闭包、测试 oracle、函数覆盖或真机行为证据 时,运行会明确返回 blocked/failed/unavailable,而不是制造成功结果。
核心能力
ctypes等迁移路径;仓库结构
工作原理
验证门禁
退出状态:
TARGET_VERIFIEDBLOCKEDVALIDATION_FAILEDENVIRONMENT_ERRORTOOL_ERROR快速开始
1. 安装 Engine
要求 Python 3.10 或更高版本。
2. 探测 HarmonyOS 目标
目标设备必须具有可用的 CPython 与 pip。项目不假设系统默认提供通用 Python 运行时。
也可使用
--executor ssh,或通过code_mirage.executorsentry point 注册自定义执行器。3. 准备不可变测试契约
迁移前需要准备并审阅:
TestContract:互相独立的上游测试和行为测试;FullFeatureContract:完整功能场景、期望值和覆盖率门槛;然后冻结所有输入:
4. 执行迁移
成功产物:
失败或证据不足时只生成
diagnostics/,不会发布未经验证的 wheelhouse。5. 重新验证未修改产物
verify只重跑现有产物的 G2–G5。源码或 shim 发生变化后必须重新执行migrate。Coding Agent 与 Skill
skill/harmony-python-migrate/提供完整的 Agent 工作方式:兼容性评估、测试 oracle 构建、迁移、诊断、验证和报告。它要求 Agent 对补丁语义负责,而脚本负责确定性的扫描、 锁定、构建和证据采集。Skill 可通过以下脚本安装到个人 Codex 环境:
Claude Code 可使用 claude/harmony-migrate.md 作为迁移入口。
MCP 服务
Code Mirage MCP
Engine 提供只读证据工具,包括 HAP scope 风险评估、NDK 符号查询和迁移运行检查。 必须显式配置允许读取的路径:
该服务不直接修改源码、锁文件或设备状态。
ArkTS Assistant MCP
arkts-assistant/提供本地 HarmonyOS/ArkTS 官方文档检索和可选智能问答:详细工具和配置参见 arkts-assistant/README.md。
Benchmark 与 MCP 消融
评测固定使用三组互斥实验:
Pipeline 两组使用相同模型、命令、超时、源码和 evaluator,唯一变量为 MCP 开关。 所有组都由同一套外部 evaluator 评分,迁移方法不能自行声明成功。
量化指标包括:
缺失证据显示为
n/a,不会自动补 0 或 100%。本地 smoke 报告具有永久水印,不能作为 模型或 HarmonyOS 真机效果数据。正式 manifest、指标分母、telemetry 和报告解释规则详见 engine/docs/evaluation.md。
开发与验证
当前仓库验证基线:
git diff --check通过。上述数字是仓库测试结果,不是 Python → HarmonyOS 迁移效果数据。真实迁移成功率、函数 覆盖率、测试通过率、token 效率和 MCP 消融结论必须由生产 benchmark 在统一模型、SDK 和目标设备上运行后生成。
更多文档
License
MIT,见 engine/LICENSE。