FieldWorks Semantic Render Parity
SkillMediaCapture or review FieldWorks parity evidence: semantic snapshots, render/visual baselines, layout parity, failure artifacts, XML view definitions, and the Avalonia presentation IR. Use whenever a task creates or evaluates snapshot tests, screenshot baselines, view-definition compilation output, or any claim that an Avalonia view matches its WinForms predecessor.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the FieldWorks Semantic Render Parity skill
What this skill tells your AI
The instructions your AI receives, as published by sillsdev/fieldworks in .claude/skills/fieldworks-semantic-render-parity/SKILL.md and read by ahel’s review.
Shared definitions (Path 3 bundle, evidence types, artifact naming) live in
../fieldworks-winforms-to-avalonia-migration/references/parity-evidence.md.
This skill covers how to build and review the snapshots themselves.
Role in the migration before/after pipeline
This skill owns the "after" half of the migration-doc before/after pairs (see
fieldworks-winapp; for where Docs/migration/
lives, see the hub skill's "Phase-1 Landing Strategy").
The before is the legacy WinForms truth
PNG (captured by the fieldworks-winapp launch-per-tool script / dialog harness); the after is
the Avalonia view rendered from the same seeded data by its visual test in
FwAvaloniaDialogsTests/FwAvaloniaTests, saved as <name>-after.png in the doc's images/. Use
the same render/visual evidence type defined here (not a one-off screenshot) so the "after" doubles as the
parity baseline, and both PNGs attach to the conversion's JIRA ticket. When the two should match,
the semantic snapshot — not the side-by-side image — is the authoritative parity check; the images
are the human-facing summary.
Snapshot Discipline
Semantic snapshots preserve behaviorally meaningful identity and omit incidental layout noise. The snapshot is the anchor artifact of a parity bundle: when visual evidence diverges, the snapshot explains whether the cause is the XML import, slice filtering, editor registry, or rendering.
Include
- Stable node ID and source layout/part identity.
- Which route produced the artifact (
Avalonia, legacy fallback, or blocked state) when a scenario can run through multiple hosts. - Object/class binding, field/flid binding, editor kind, writing-system metadata, visibility, ghost state, expansion, focus order, localization key, and accessibility identity.
- Unsupported construct diagnostics with enough path context to fix the source layout.
Exclude Or Normalize
- Pixel bounds, transient generated names, timestamps, machine paths, culture-dependent ordering, and realized-control counts unless the test explicitly owns them.
Canonical Examples
- IR model and snapshot projection:
Src/Common/FwAvalonia/ViewDefinition/ViewDefinitionModel.cs - Snapshot/parity tests:
Src/Common/FwAvalonia/FwAvaloniaTests/DetailViewingParityTests.cs,ViewDefinitionTests.cs,CanonicalJsonTests.cs,Path3BundleTests.cs - Import coverage tracking:
LayoutImportCoverageTests.csandSrc/Common/FwAvalonia/ViewDefinition/LayoutImportCoverage.cs - Visual/density evidence:
VisualParityAndDensityTests.cs
Render Evidence
- Pixel/render tests need deterministic fixtures, clear thresholds, and failure artifacts reviewers can inspect (classified failure summary, not a raw diff image).
- A semantic snapshot is not a substitute for visual/render parity when typography, density, wrapping, or native rendering seams are under review — and vice versa. One evidence type per axis; see parity-evidence.md §2.
- Control-level Avalonia visual evidence may come from Avalonia.Headless rendered frames when the scenario is explicitly control-scoped; desktop workflow/accessibility claims still need live-window evidence.
Review Red Flags
- A preview-only or lossy route presented as if it proved product parity.
- Placeholder metadata presented as real binding or writing-system parity.
- Snapshot tests updating large JSON blobs without a small behavioral explanation of what changed and why.
- Cache invalidation tests that depend on sleeps or filesystem timestamp luck.
- A new layout construct silently dropped by the importer instead of producing a diagnostic node and a coverage-tracking entry.
Handoff
State whether evidence is semantic, visual, accessibility/workflow, or performance parity, and identify remaining unproven axes. When a Path 3 bundle is used, name each artifact and which evidence type it proves.
Keep This Skill Current
When snapshot fields, normalization rules, or fixture patterns change, or
a new artifact type joins the bundle, update this skill and
parity-evidence.md together in the same PR; record durable lessons via
../fieldworks-winforms-to-avalonia-migration/references/lessons-learned.md.
Signals
- GitHub stars
- 111
- Forks
- 42
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
fieldworks-semantic-render-parity- Source
- github.com/sillsdev/fieldworks