chore(workplan): finish WHYNOT-WP-0002 (T07-T10 done; status finished)
Some checks failed
ci / check (push) Has been cancelled
ci / release (push) Has been cancelled

All 11 tasks complete: Lit adapter scaffold+drift (T07), parity (T08), refresh
orchestrator (T09), plain-css second-adapter smoke (T10). Documents the 3 open
governance drifts (PipelineStrip rename, PageHeader actions slot, Sidebar
current) as Claude-Design-side items the now-working machinery surfaces.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-30 09:22:58 +02:00
parent 36f7b9f7b9
commit a1c780af8c
3 changed files with 48 additions and 51 deletions

View File

@@ -6,6 +6,26 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Version
## [Unreleased]
### Added
- **Lit adapter completed + refresh pipeline** (WHYNOT-WP-0002, Phases 36). The
one-way `React → designbook/ → ir/ → adapters/lit` pipeline is now end-to-end:
- `make adapt-lit` gains **component scaffold + drift** (T07): parses
`src/elements/*.js`, compares each `<wn-*>` to its IR contract, and writes
per-component drift reports + a machine roll-up (`adapters/lit/drift/`), with
write-once stubs (`adapters/lit/stubs/`) for new components — never overwriting
hand-authored sources. Severity split: actionable drift gates (exit 3);
`non-portable`/`prop-extra` are informational.
- `make parity-lit` (T08): renders every `<wn-*>` in a real browser and asserts
**contract + visual parity**, writing `adapters/lit/parity/_parity.json`
(exit 4 on failure).
- `make designbook-refresh` (T09): the refresh orchestrator
(check→pull→sync→ir→adapt-lit→drift-triage→parity) honouring the adapter
exit-code contract, plus a drift-resolution runbook in `designbook/README.md`.
- `make adapt-plain-css` (T10): a deliberately-unfinished second-adapter **smoke**
proving the IR/adapter seam — a non-Lit adapter consuming the same `ir/` with the
same contract shapes and zero `ir/` changes.
## [0.4.0] — 2026-06-28
### Fixed

View File

@@ -2,7 +2,7 @@
Snapshot of the last designbook integration. Regenerated by `make designbook-sync`.
- Generated: 2026-06-23T19:25:28Z
- Generated: 2026-06-30T07:18:08Z
- Compared: working tree (uncommitted)
- Last /design-sync: 2026-06-23T19:25:28Z
@@ -10,48 +10,6 @@ Snapshot of the last designbook integration. Regenerated by `make designbook-syn
> into `CHANGELOG.md` under `## [Unreleased]` before releasing; that is the file CI
> enforces (`pnpm check`). The designbook itself is synced via `/design-sync`, not this script.
## Changed files
## No changes
### Designbook
- `ADDED ` designbook/_ds_bundle.js (+1396 / -0)
- `ADDED ` designbook/_ds_manifest.json (+1 / -0)
- `ADDED ` designbook/.design-pull.json (+18 / -0)
- `ADDED ` designbook/colors_and_type.css (+293 / -0)
- `ADDED ` designbook/preview/brand-iconography.html (+36 / -0)
- `ADDED ` designbook/preview/brand-lockups.html (+26 / -0)
- `ADDED ` designbook/preview/brand-logo.html (+21 / -0)
- `ADDED ` designbook/preview/brand-wireframe-motif.html (+43 / -0)
- `ADDED ` designbook/preview/colors-accent.html (+33 / -0)
- `ADDED ` designbook/preview/colors-borders.html (+25 / -0)
- `ADDED ` designbook/preview/colors-neutrals.html (+36 / -0)
- `ADDED ` designbook/preview/colors-signal.html (+25 / -0)
- `ADDED ` designbook/preview/colors-status-functional.html (+31 / -0)
- `ADDED ` designbook/preview/comp-buttons.html (+40 / -0)
- `ADDED ` designbook/preview/comp-empty-placeholder.html (+38 / -0)
- `ADDED ` designbook/preview/comp-inputs.html (+30 / -0)
- `ADDED ` designbook/preview/comp-labels-tags.html (+44 / -0)
- `ADDED ` designbook/preview/comp-left-nav.html (+85 / -0)
- `ADDED ` designbook/preview/comp-pipeline.html (+30 / -0)
- `ADDED ` designbook/preview/comp-prototype-card.html (+46 / -0)
- `ADDED ` designbook/preview/comp-topnav.html (+37 / -0)
- `ADDED ` designbook/preview/page-beta-invitation.html (+104 / -0)
- `ADDED ` designbook/preview/page-landing-auth.html (+224 / -0)
- `ADDED ` designbook/preview/page-prototype-detail.html (+158 / -0)
- `ADDED ` designbook/preview/page-signals-dashboard.html (+135 / -0)
- `ADDED ` designbook/preview/spacing-elevation.html (+26 / -0)
- `ADDED ` designbook/preview/spacing-radii.html (+24 / -0)
- `ADDED ` designbook/preview/spacing-scale.html (+28 / -0)
- `ADDED ` designbook/preview/type-body.html (+23 / -0)
- `ADDED ` designbook/preview/type-display.html (+23 / -0)
- `ADDED ` designbook/preview/type-headings.html (+20 / -0)
- `ADDED ` designbook/preview/type-mono-eyebrows.html (+42 / -0)
- `ADDED ` designbook/preview/type-serif-quote.html (+17 / -0)
- `ADDED ` designbook/REACT_CANONICAL_DECISION.md (+60 / -0)
- `ADDED ` designbook/styles.css (+9 / -0)
- `ADDED ` designbook/ui_kits/whynot-control/Atoms.jsx (+102 / -0)
- `ADDED ` designbook/ui_kits/whynot-control/Chrome.jsx (+163 / -0)
- `ADDED ` designbook/ui_kits/whynot-control/data.jsx (+71 / -0)
- `ADDED ` designbook/ui_kits/whynot-control/DocView.jsx (+102 / -0)
- `ADDED ` designbook/ui_kits/whynot-control/index.html (+77 / -0)
- `ADDED ` designbook/ui_kits/whynot-control/README.md (+31 / -0)
- `ADDED ` designbook/ui_kits/whynot-control/Screens.jsx (+274 / -0)
The design surface is unchanged since the last sync.

View File

@@ -4,14 +4,33 @@ type: workplan
title: "Technology-neutral designbook with stack adapters (Lit reference)"
domain: infotech
repo: whynot-design
status: proposed
status: finished
owner: claude
topic_slug: custodian
created: "2026-06-22"
updated: "2026-06-22"
updated: "2026-06-30"
state_hub_workstream_id: "0a3511c1-1771-438b-9364-104d8f0de2f8"
---
> **Completed 2026-06-30.** All 11 tasks done. The full pipeline is in place:
> `Claude Design (React) → designbook/ → ir/ → adapters/lit` with `make ir`,
> `make adapt-lit` (tokens + scaffold + drift), `make parity-lit`, the
> `make designbook-refresh` orchestrator, and a plain-css second-adapter smoke
> proving the IR seam. Parity passes (contractFail=0, visualFail=0).
>
> **Open governance items (surfaced by the now-working drift machinery, not WP-0002
> tasks):** three actionable drifts remain for Claude-Design-side resolution — they
> are language-modeling decisions, not stack defects, so per `designbook-propagation.md`
> they must be fixed upstream and re-propagated (never patched only in the stack):
> 1. **PipelineStrip** — IR tag `wn-pipeline-strip` (from the React component name)
> vs the hand-authored `wn-pipeline`; decide the canonical name in Claude Design.
> 2. **PageHeader.actions** — modelled as a *slot* in Lit but extracted as a *prop*;
> the React designbook should express it as slotted content.
> 3. **Sidebar.current** — IR carries a `current` prop/variant the element models as
> item-level `active` state; reconcile in Claude Design.
> Until then `make adapt-lit`/`designbook-refresh` exit `3` by design (stop for
> triage). This is the system working as intended, not unfinished work.
# Technology-neutral designbook with stack adapters (Lit reference)
## Problem
@@ -181,7 +200,7 @@ re-running is a no-op when nothing changed. Add `make adapt-lit` (tokens portion
```task
id: WHYNOT-WP-0002-T07
status: todo
status: done
priority: high
state_hub_task_id: "00ed1aff-7724-4e90-9a51-fd58699480ca"
```
@@ -201,7 +220,7 @@ hand-authored element**. Map React prop types → Lit property declarations. Wir
```task
id: WHYNOT-WP-0002-T08
status: todo
status: done
priority: medium
state_hub_task_id: "1f52ca1f-64a6-4643-992f-f0b4812461a0"
```
@@ -264,7 +283,7 @@ visual tests for determinism.
```task
id: WHYNOT-WP-0002-T09
status: todo
status: done
priority: high
state_hub_task_id: "07e60a34-0c62-4f8b-848b-d3b8d4292a18"
```
@@ -292,7 +311,7 @@ human-in-loop runbook for step 6. Document in `.claude/rules/stack-and-commands.
```task
id: WHYNOT-WP-0002-T10
status: todo
status: done
priority: low
state_hub_task_id: "483de131-f580-4031-85df-72cf70a45679"
```