parity-diff

Detects and classifies visual and structural diffs between legacy and replacement applications.

Updated Jul 24, 2026
One-click install
npx skills add https://github.com/shoji9x9/portfolio --skill parity-diff-shoji9x9
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: parity-diff
Source: https://github.com/shoji9x9/portfolio/tree/main/.agents/skills/parity-diff
Command: npx skills add https://github.com/shoji9x9/portfolio --skill parity-diff-shoji9x9

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pngjs, and includes scripts (resource) and references (resource) and assets (resource) components.

What problem does it solve? When replacing an application without changing its specification, teams need to verify that the new implementation matches the legacy one beyond what test suites cover—spacing, colors, fonts, borders, and content parity. This Skill detects those differences with deterministic tools and uses the LLM only to classify each detected diff, avoiding unreliable visual eyeballing. ## Core Features & Use Cases - Deterministic three-path detection: Compares current and new baselines via pixel diffing, computed-style trait comparison, and aria snapshot structural comparison, with no LLM involvement in detection. - LLM triage of detected diffs only: Presents cropped diff-region image pairs one at a time for classification into actionable, acceptable, or environmental noise, with user approval required before marking anything acceptable. - Convergence gating and handback: Judges convergence as zero unexplained diffs plus zero unfixed regressions, attributes diffs blocked by unimplemented sibling features, and hands actionable diffs back to parity-replace or files issues via issue-create. - Use Case: After parity-replace makes the new side green for a feature, run parity-diff against a target environment to catch visual regressions the suite cannot see, classify them, and iterate until convergence. ## Quick Start Ask the AI to run parity-diff for a feature slug against a chosen new-side target environment, for example by requesting to detect and classify current-versus-new differences for the order-list feature on the preview target.

Frequently Asked Questions about parity-diff

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I detect visual differences between old and new app versions?▼

Run parity-diff with a feature slug and target environment. It captures a new-side baseline under identical conditions, then compares it to the legacy baseline using pixel diffing, computed-style trait comparison, and aria snapshots—never asking the model to find differences itself.

How does LLM-based diff triage work without hallucination?▼

The model never searches for differences. Deterministic tools detect all diffs first, then the model classifies each detected diff one at a time from cropped image pairs into actionable, acceptable, or environmental noise, with user approval required for acceptance.

What prerequisites does parity-diff require before running?▼

It requires replace-strategy setup, golden-dataset phases A and B, a completed parity-suite run for the target slug, and a green parity-replace result for the same target environment. If any prerequisite is missing, it stops and guides you through them in dependency order.

Can I compare xlsx or PDF outputs byte-for-byte during migration?▼

No. xlsx files contain volatile metadata inside their ZIP structure, so compare sheet-by-cell values and structure instead. PDFs are compared by extracted text and structure. The extraction tool recorded in metadata.json must be reused rather than chosen anew.

Why does text width differ when the same font name is used?▼

Identical font names can still render differently due to font version (head.fontRevision) and the presence of hinting instructions (prep table), which change advance-width rounding at small sizes. The skill isolates these axes deterministically before classification.

When should I not use pixel-by-pixel VRT tools for migration?▼

Do not use pixel comparison tools to directly diff old and new implementations wholesale—different implementations render everything differently, producing meaningless full-page diffs. This skill instead clusters diff regions and combines pixel results with trait and aria comparison paths.