fm-parity

star 1

Use after fm-e2e to run the non-behavioral parity gates on a migrated page — visual regression vs legacy baseline, API contract freeze, WebView bridge round-trip, and telemetry dual-fire parity — the last gate before a route flip.

ohmyhotelco By ohmyhotelco schedule Updated 5/27/2026

name: fm-parity description: "Use after fm-e2e to run the non-behavioral parity gates on a migrated page — visual regression vs legacy baseline, API contract freeze, WebView bridge round-trip, and telemetry dual-fire parity — the last gate before a route flip." argument-hint: " [--app pc|mobile|hana]" user-invocable: true allowed-tools: Read, Write, Edit, Glob, Grep, Bash, Agent

Parity Gate

The final gate before flip, on top of fm-e2e. Proves the page matches legacy in appearance, API contract, native bridge, and analytics. All user-facing output in workingLanguage.

Instructions

Step 0: Config & prerequisites

Read config (absent → run fm-init; stop). Resolve app, appDir, targetDir, legacyDir, workingLanguage. Require the page at e2e-passed in tracker.json and migration-plan.json with requiredGates/gateTriggers (else point to fm-e2e).

Step 1: Lock

Acquire docs/migration/{app}/{page}/.lock (stale after 30 min).

Step 2: Run the verifier

Launch parity-verifier (Agent) with only its params: app, page, planPath, analysisPath, targetDir, appDir, legacyDir/legacy base URL, outPath = docs/migration/{app}/{page}/parity-report.json, workingLanguage. The verifier runs only the gates the plan requires (always visual + contract; webview/telemetry when triggered). Ensure the Playwright permission exists (added by fm-e2e).

Step 3: Record

Read parity-report.json. Update tracker.json (Read-Modify-Write):

  • result: passapps[app].pages[page].status = "parity-passed".
  • result: failparity-failed. Release the lock.

Step 3b: Codex audit (advisory) — see CLAUDE.md → "Codex Independent Audit"

If codexAudit is enabled and Codex is available, after the lock is released spawn codex-auditor (Agent) for the parity stage (params: app, page, stage="parity", appDir, legacyDir, parityReportPath + the legacy baseline, outPath = docs/migration/{app}/{page}/codex-audit.json, workingLanguage). Codex cross-checks for regressions passed off as parity. Advisory — never changes the page status. Surface its verdict below.

Step 4: Report

In workingLanguage: per-gate result (visual / contract / webview / telemetry) with evidence, the Codex audit verdict (advisory), and the next step — on pass /frontend-migration-plugin:fm-route {page} --flag-off (then the flag-on PR after review); on fail /frontend-migration-plugin:fm-fix {page} (auto-detects parity-fix mode).

Install via CLI
npx skills add https://github.com/ohmyhotelco/hare-cc-plugins --skill fm-parity
Repository Details
star Stars 1
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator