Skip to content

spike: hardware/board selection UX playground - #222

Merged
Yona-Appletree merged 7 commits into
mainfrom
claude/hardware-selection-ux-9f0501
Aug 1, 2026
Merged

spike: hardware/board selection UX playground#222
Yona-Appletree merged 7 commits into
mainfrom
claude/hardware-selection-ux-9f0501

Conversation

@Yona-Appletree

Copy link
Copy Markdown
Member

UX spike for board selection as a first-class feature (feature note: Planning/lp2025/_features/hardware - selection, pin discovery.md). Raw-HTML playground at spikes/hardware-boards/index.html, iterated through five revs across two visual gates with Yona.

What's in it

  • Boards-are-metadata: one BOARDS JSON schema (identity/commerce + per-pin hw block) drives one SVG renderer across four surfaces: catalog, provisioning picker, device-card hardware pane, pin discovery.
  • Row layout engine: the pin row is the unit (u = pitch; pad/cell/font derive from it), so every pin holds annotation cells simultaneously. Top/bottom-edge pins (screw terminals) get band rows with leader lines. Vocabulary in DESIGN-LANGUAGE.md + an annotated-anatomy figure in the page.
  • Pin discovery: color-order pretest (palindrome K-R-G-B-W-B-G-R-K) then palindromic combinatoric codes (direction-invariant, K-separated digits, computed pixels×colors from free-pin count).

Validation

  • Static HTML only — no build surface. Verified rendering via full-page headless-Chrome captures and interaction states via scripted DOM checks (sort/filter, SoC-detect incl. unknown fallback, order-test unlock, code pick/unpick, palindrome/distinctness invariants).

Follow-up

  • Planning artifact for the real implementation is the next step (in progress).
  • yona-ux skill codifying this spike workflow is being written in a separate session.

🤖 Generated with Claude Code

Yona-Appletree and others added 5 commits July 31, 2026 07:56
Four surfaces from one board-metadata schema: boards catalog
(tiers/price/sort), provisioning picker (SoC match), device-card
hardware pane (wired-pin callouts), and pin discovery (color x
rhythm patterns on free pins). All board drawings are generated
SVG from per-pin metadata - no hand-drawn images.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Gate feedback: the pin row is now the layout unit (u = pitch drives
pad/cell/font sizes), so every pin holds cells simultaneously - name
cell + capability/connection/swatch cells inline, like classic pinout
diagrams. Top-edge terminals get band rows with leader lines (QuinLED).
New board-pinout section documents the design language (row/cell/rail/
band/leader). Discovery drops motion patterns for solid color codes:
color-order pretest (K-R-G-B-K-B-G-R-K, pick what you see) then
combinatoric pixel-count x color-set computed from free-pin count.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ge cheat sheet

Pin names move inside the board (silkscreen-style) so outside cells
share one start edge and align into columns. Order-test sequence is now
the palindrome K-R-G-B-W-B-G-R-K: K bounds repeats, W marks center,
reads the same either direction, and K/W survive any color-order
permutation. DESIGN-LANGUAGE.md added as the vocab cheat sheet.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Anatomy card renders the QuinLED and pins every design-language term
(Unit/Row/Cell/Rail/Band/Leader/Pad/Label) to the element it names -
measured from the live SVG, not hand-positioned. Pin-identifying codes
are now palindromes for the same reason as the order test: data
direction is unknown, so a code and its reverse are indistinguishable.
Coverage becomes c^ceil(n/2): 20 free pins -> 3 px x 5 colors, X-Y-X.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Off pixels between color digits so runs read unambiguously; no
leading/trailing K so short strips (3 LEDs) still show 1-digit codes.
A d-digit code occupies 2d-1 physical pixels; K is reserved as the
separator so it never collides with a digit color.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Yona-Appletree

Copy link
Copy Markdown
Member Author

CI note: Validate (x64) fails with examples/shader-oracle: unsupported project format 1 (expected 2) — pre-existing main breakage (CI is red on main at 547c0b8 and 70dc090 with the identical failure; this PR touches only spikes/). Fix tracked separately; PR stays draft until main is green again.

Brings the spike branch up to date with main (225 commits) so the
frozen UX-spike artifacts under spikes/hardware-boards/ can land
beside the implementation they produced (lp-app/lpa-boards, PRs
#228/#231/#236). Clean merge: the branch adds only new files in a
directory that does not exist on main.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@Yona-Appletree
Yona-Appletree marked this pull request as ready for review August 1, 2026 16:49
@Yona-Appletree
Yona-Appletree merged commit f2a23d4 into main Aug 1, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant