关于 replica-diff
replica-diff 是一组仅使用 Python 标准库的工具,用于评估应用克隆在功能、布局和行为上的一致性。它汇总差距以帮助团队确定后续开发内容,并不以和原应用逐像素相同为目标。
主要功能
- 01加权功能一致性评分
- 02缺失功能开发清单
- 03截图布局比较
- 04像素模式回归比较
- 05行为差异报告
- 06生成一致性报告
适用场景
- 01发布前找出尚未完成的功能
- 02比较相同页面的克隆布局
- 03跟踪克隆版本间的视觉回归
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ jakeschincariol/ replica-skill --skill replica-diff安装后在 Claude Code 中输入/replica-diff确认已加载。
附带文件imgdiff.pyparity.py
详细介绍
replica-diff
此文件夹中有两个工具,均使用 Python 标准库,无需安装:
python3 parity.py replica/features.csv # feature parity + missing list
python3 imgdiff.py replica/screens/S07.png replica/clone-screens/S07.png --out diff-S07.png
python3 imgdiff.py a.png b.png --json > replica/diffs/S07.json # for parity.py --visual
python3 parity.py replica/features.csv --visual replica/diffs/*.json --markdown > replica/parity.md
此处的平价意味着什么
平价意味着完成相同的工作,而不是看起来一样。 真正重要的是功能评分:用户能否完成在原产品中能做的一切。布局评分检查结构(信息是否处于相同位置、层级是否相同),因为这决定了用户切换后能否感到熟悉。评分会刻意忽略颜色,因为 replica-brand 会有意更改所有颜色。不要追求与原产品的像素级平价。原产品的具体外观属于其商业外观,并且会在发布前改变。
步骤 1:功能平价
确保 replica/features.csv 是最新的:每行的 clone 列必须为 yes、partial(附注释)、no 或 skip(附原因)。然后:
python3 parity.py replica/features.csv
此工具按 must 权重 3、should 权重 2、could 权重 1 计算,将 partial 计为一半,排除 skip 行和你添加但原产品不具备的行,并输出:评分、已完成的 must-have 数量及总数、按薄弱程度从高到低排列的各区域,以及按构建顺序排列的缺失项列表。未完成的 must-have 意味着尚不可发布,工具会明确指出这一点。
步骤 2:布局差异
对于每个关键屏幕,在相同视口(桌面端 1440x900、移动端 390x844)和相同状态(数据结构相同、打开相同标签页、以相同方式登录)下截取两张屏幕截图。原产品的截图来自公开页面或用户自己的账号,保存在 replica/screens/ 中。克隆版的截图保存在 replica/clone-screens/ 中。
python3 imgdiff.py replica/screens/S07.png replica/clone-screens/S07.png --out replica/diffs/S07.png
布局模式(默认)会将两张图转换为边缘图,切分成网格,并比较元素的位置;评分只计算包含内容的网格单元。报告会给出评分(匹配 90+、接近 75+、部分匹配 50+、不同)、存在差异的区域(按原图像素坐标标示,按面积从大到小排列),以及克隆版页面明显更长或更短时的高度差异。视网膜和非视网膜屏幕截图可以正常比较:两者都会缩放到相同宽度。
--mode pixel 会进行精确比较。将它用于检查你自己的回归(今天的克隆版与上周的克隆版),不要用于与原产品比较。
步骤 3:行为差异
在两款应用中逐步走完每个流程,并比较评分无法体现的内容:完成核心流程所需的点击次数、出错时会发生什么、访问之间会记住哪些内容、会收到哪些电子邮件。点击次数比原产品少就是优势。按以下格式记录每项差异:流程、原产品的行为、克隆版的行为、修复或保留。
步骤 4:报告
replica/parity.md:总体评分、功能评分、各屏幕的布局评分、按构建顺序排列的缺失功能、行为差异,以及结论:
- 尚不可发布:任何 must-have 缺失,或存在未解决的 S1 Bug
- 可发布:所有 must-have 均已完成,功能评分达到 80+,且没有未解决的 S1 或 S2 Bug
- 优于原产品:达到可发布标准,并且包含 replica-entrepreneur 提出的改进。这才是目标。照搬没有存在的理由。
如实给出数字。克隆版得分为 62%,就是 62%。
输出
replica/parity.md、差异图像,以及接下来要构建的五项优先内容。
然后运行 /replica-build 填补差距,或者在平价达标后运行 /replica-entrepreneur。