Extend make adapt-lit beyond tokens: parse src/elements/*.js, compare each IR component contract against its <wn-*> element, and emit per-component drift reports + a machine roll-up (adapters/lit/drift/), with write-once stubs (adapters/lit/stubs/) for genuinely new components. Never overwrites hand-authored sources. - Severity split: actionable drift (prop-missing, attribute-mismatch, variant-axis-missing, tag-mismatch) gates with exit 3; non-portable + prop-extra are informational (the IR carries React style/onClick; Lit is richer than the minimal designbook) and don't gate. - Current state: 7 ok, 3 actionable drift for human triage — PipelineStrip (wn-pipeline-strip vs hand-authored wn-pipeline rename), PageHeader (actions is a slot, not a prop), Sidebar (IR 'current' axis absent on the element). - _report.json reuses generatedAt/irRef when drift is unchanged (no git churn). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
712 B
712 B
Drift — Sidebar <wn-sidebar>
Status: drift — ⚠ drift detected — resolve per .claude/rules/designbook-propagation.md.
| severity | kind | prop | detail |
|---|---|---|---|
| drift | prop-missing | current |
in IR (attribute 'current'), absent on |
| drift | variant-axis-missing | current |
IR variant axis 'current' (doc:) has no Lit property. |
| info | non-portable | onNav |
type=function; not attribute-mappable — handle explicitly, never drop. |
| info | prop-extra | activation |
on (attribute 'activation'), not in IR contract. |