用途:面向具有生产者/消费者关系的两个仓库,做双向集成验证。两个仓库各自用对方的真实输出进行测试,确保接口、数据格式与行为在发布前一致。
主要能力:识别集成面(双方互相导入的导出、数据格式、schema、API 签名);在两侧配置跨仓库开发依赖;建立 integration 测试目录,写入双向验证测试;通过任务运行器(如 moon.yml)提供单命令验证任务;定义发布前验证协议;提供检查清单与反模式列表(如只测单向、用 main 分支、用 mock 代替对方仓库、忽略版本矩阵等)。
使用方式:先映射集成面并文档化边界;在 pyproject.toml / Cargo.toml / package.json 中把对方仓库配为可选验证依赖,并显式固定 tag 或 commit SHA(不使用 main/master);在双方 tests/integration 下编写用对方真实输出验证本仓库的测试;示例任务脚本保持原样:script: "uv sync --extra validation && uv run pytest tests/integration/ -v";发布前分别运行 validate-symmetric,若对方有未合并改动,先在对方分支上测试,通过后再更新版本固定。
适用场景:API 独立演进且需集成测试、数据格式可能在两仓库间漂移、双方均在活跃开发的场合。
限制与注意:需避免循环依赖,验证用对方仓库仅作为可选依赖;支持版本不宜无限扩张,建议限定 N-1 并记录兼容矩阵;跨环境需固定同一版本,否则本地通过而 CI 失败;出现不可复现问题时才更新本技能文件并记录到 evolution-log。文中引用的示例与外部参考链接未展开具体内容,暂未提供更多细节。