# Replica Diff

Compares an app clone against the original: a feature parity score from the feature...

- Repository: https://github.com/Jakeschincariol/replica-skill (6967 stars)
- Category: Testing
- License: MIT
- Last updated: 2026-10-03
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add Jakeschincariol/replica-skill --skill replica-diff -g -a claude-code -y`
Codex: `npx skills add Jakeschincariol/replica-skill --skill replica-diff -g -a codex -y`
Cursor: `npx skills add Jakeschincariol/replica-skill --skill replica-diff -g -a cursor -y`
Gemini CLI: `npx skills add Jakeschincariol/replica-skill --skill replica-diff -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add Jakeschincariol/replica-skill`

## Description

Compares an app clone against the original: a feature parity score from the feature matrix (weighted by must, should, could) with the missing list in build order, plus a screenshot layout diff that ignores colour so a rebrand does not count against you. Two standard-library Python tools. Use when the user says "how close is my clone", "compare it to the original", "what's missing", "parity check", "diff the screens", "is it ready", or after /replica-test.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# replica-diff

Two tools in this folder, both standard-library Python, no installs:

```bash
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
```

## What parity means here

**Parity means it does the same job, not that it looks the same.** The
feature score is the number that matters: can a user do everything they could
do in the original. The layout score checks structure (is the information in
the same places, in the same hierarchy), because that is what makes a switcher
feel at home. It deliberately ignores colour, because replica-brand changes
every colour on purpose. Do not chase pixel parity with the original. Its
exact look is its trade dress, and it changes before launch.

## Step 1: feature parity

Make sure `replica/features.csv` is current: every row's `clone` column is
`yes`, `partial` (with a note), `no`, or `skip` (with a reason). Then:

```bash
python3 parity.py replica/features.csv
```

It weights must 3, should 2, could 1, counts partial as half, leaves out
`skip` rows and rows you added that the original does not have, and prints:
the score, must-haves done of total, each area weakest first, and the missing
list in build order. Must-haves not done means not shippable, and it says so.

## Step 2: layout diff

For each key screen, take two screenshots at the **same viewport** (1440x900
desktop, 390x844 mobile) in the **same state** (same data shape, same tab
open, logged in the same way). The original's come from public pages or the
user's own account, saved in `replica/screens/`. The clone's go in
`replica/clone-screens/`.

The rest: https://github.com/Jakeschincariol/replica-skill/blob/HEAD/replica-diff/SKILL.md
