Files
whynot-design/adapters/lit/parity/_parity.json
tegwick e4e3fe069c feat(adapter): make parity-lit — contract + visual parity (WHYNOT-WP-0002 T08)
Render every <wn-*> in a real browser (Playwright, --no-sandbox; reuses an
external static server when present) and write the adapter-contract parity result
to adapters/lit/parity/_parity.json:

- Contract parity: element must upgrade + carry no attribute-mismatch vs IR
  (computed statically via scaffold.componentDrift, avoiding runtime
  type-coercion false positives). prop-missing is a coverage note, not a failure.
- Visual parity: render smoke (non-empty + positive box) + per-component
  screenshot artifact (gitignored). Pixel-exact regression stays with the
  Playwright baseline suite; IR exemplars are gallery cards, not single-component
  baselines, so they are the human reference, not an auto pixel gate.
- Result: 10 components, contractFail=0 visualFail=0, PipelineStrip skipped
  (wn-pipeline-strip rename drift). Exit 4 on failure.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 09:16:13 +02:00

119 lines
2.1 KiB
JSON

{
"stack": "lit",
"generatedAt": "2026-06-30T07:15:06.747Z",
"components": [
{
"name": "Button",
"contract": "pass",
"visual": "pass",
"diffRatio": null,
"box": {
"w": 82,
"h": 36
},
"notes": "ok"
},
{
"name": "Eyebrow",
"contract": "pass",
"visual": "pass",
"diffRatio": null,
"box": {
"w": 45,
"h": 23
},
"notes": "ok"
},
{
"name": "Icon",
"contract": "pass",
"visual": "pass",
"diffRatio": null,
"box": {
"w": 0,
"h": 23
},
"notes": "ok"
},
{
"name": "PageHeader",
"contract": "pass",
"visual": "pass",
"diffRatio": null,
"box": {
"w": 117,
"h": 37
},
"notes": "coverage (drift, not gated): missing actions"
},
{
"name": "PipelineStrip",
"contract": "skip",
"visual": "skip",
"diffRatio": null,
"notes": "no <wn-pipeline-strip> element (see adapters/lit/drift/PipelineStrip.md)"
},
{
"name": "Sidebar",
"contract": "pass",
"visual": "pass",
"diffRatio": null,
"box": {
"w": 273,
"h": 592
},
"notes": "coverage (drift, not gated): missing current"
},
{
"name": "StageDot",
"contract": "pass",
"visual": "pass",
"diffRatio": null,
"box": {
"w": 56,
"h": 23
},
"notes": "ok"
},
{
"name": "Stamp",
"contract": "pass",
"visual": "pass",
"diffRatio": null,
"box": {
"w": 63,
"h": 23
},
"notes": "ok"
},
{
"name": "Tag",
"contract": "pass",
"visual": "pass",
"diffRatio": null,
"box": {
"w": 64,
"h": 24
},
"notes": "ok"
},
{
"name": "TopNav",
"contract": "pass",
"visual": "pass",
"diffRatio": null,
"box": {
"w": 243,
"h": 57
},
"notes": "ok"
}
],
"summary": {
"total": 10,
"contractFail": 0,
"visualFail": 0,
"skipped": 1
}
}