There was an error while loading. Please reload this page.
Updated Blog Review Rubric (markdown)
docs: add Blog Review Rubric wiki page
docs: document lab→core and hidden→visible template promotion gates
vibe-test: scores 2026-07-10
Design Conventions: restructure state sections by driver and prominence - Rename section headings to 'User/System/Agent Interaction States Visuals' - Move Disabled into System interaction states - Label states as 'State (variant style)' (e.g. Selected (Depressed style)) - Split System status by prominence tier: Muted (inputs + in-flow surfaces), Inverted (badges + high-severity toasts), Temporal (toasts + tooltips) - Add a Temporal row (tooltip + default toast) for brief high-prominence states - One consolidated description per row; rows may show several example images - Capture real selected list/nav items (SideNav, TreeList) and toggle buttons for Selected (Depressed style); fix previously-broken image references
Design Conventions: fix Focused button capture to show the focus ring The previous capture didn't hold :focus-visible, so no outline was visible. Recapture via keyboard Tab so the accent focus ring renders.
vibe-test: scores 2026-07-09
Design Conventions: wrap state visuals in white bordered cards Bake a white rounded card with a thin border into each state screenshot so they stand out against the wiki table's zebra striping instead of blending into the colored rows.
Design Conventions: retitle foundations, fold Generative description column - Foundation headings use 'Title (Category)' format instead of <sub> suffix (e.g. 'Consistent vertical rhythm (Size | Density)') - Generative States table folds its Description column into the State column, matching the Foundation and Async tables
Design Conventions: split state rows by distinct visual treatment - Split Focused into Focused and Focused (Input) - Split Selected into 5 rows by what's being selected: Toggles (checkbox/ radio/switch), Control (segmented), Navigation (tabs/outline/stepper), Container (cards), List (nav item/list row) - Merge Loading and Processing into one row; add input-family loading examples (skeleton placeholder, busy input group) - Fold the status prominence tiers into the Async table (each status row shows its tiers side by side) instead of a separate table - Add the Outline component as a Navigation selection visual
Updated Design Conventions (markdown)
Design Conventions: format foundation Smells as bullet lists Break each foundation's Smells cell from a packed run-on paragraph into a bulleted list (one smell per line, bold term leading) for readability.
Design Conventions: colocate state visuals in the state table; drop gray canvas - Trim state screenshots to the component on its own clean surface (no gray padding canvas, no white bleed) - Merge the separate image tables into the main state table: each state row now holds its own visuals with inline description + API/ARIA reference
Design Conventions: uniform framing for state visuals Reframe every state screenshot onto a consistent 640x300 canvas with the component auto-cropped and centered on a light-gray surface, matching the reference layout. Wide components (inputs, banners, nav) recaptured at a form-like width so they no longer render as thin strips.
Design Conventions: simplify State Representations - Drop the per-archetype columns (action/input/control/container); show one summary row per state with an approved-visuals count - Fold API/ARIA into each state's description - Enlarge the state visuals (width 240) so the image is the main reference - Standardize caption format: backticked token(s) + how it's applied
Design Conventions: foundations as tables; 'minimize visuals per state' Reformat the Design Foundations section from stacked bold-paragraph cards into a label-column table per foundation (Principle / Why / Smells / Got it right) for scannability. Reword the principle to 'minimize visuals per state'.
Add Design Conventions page Design-side sibling of API Conventions: the intention behind token choices (foundations), standard state representations across component archetypes, and how design quality is evaluated. - Wire the Contributing Design Review section and Home index to the new page - Component Auditor gains a Design Conventions dimension for the objectively-checkable rules (spacing grid, concentric radius, contrast, type hierarchy, motion safety, stacking); subjective visual judgment stays in Hardening Layer 3
PM: add PR labeling step to hourly checklist
vibe-test: scores 2026-07-08
Doc Reviewer: fix theming (check 5) false positives; mark componentsUsed (check 7) advisory Check 5 (theming sync) two bugs, both inflated DRIFT: - The doc_map regex only matched visualProps on the SAME line as className, so any target whose visualProps span multiple lines read as empty ([]), a false drift. Parse the whole target object with a multiline-aware regex instead. - Targets may expose 'states' (selectors like selected/disabled/today) INSTEAD of visualProps. The old script ignored states entirely, so every state-only target (astryx-calendar-day, etc.) looked like it was missing its props. Track states separately and never flag a states-only target as a visualProps drift. DRIFT drops from 32 (mostly false) to 17 genuine; documented in the schema. Check 7 (componentsUsed) cannot be made reliably green by a regex: the convention is not uniform in the source (module vs named import, and layout primitives recorded inconsistently as alias vs module). Rewrote it as an explicitly ADVISORY check (union of named imports + module names removes the module-vs-named class of false positive) with a prominent warning not to open block-metadata PRs off its output. A real fix needs a maintainer decision on the canonical componentsUsed contract plus a one-time normalization.
vibe-test: scores 2026-07-07
wiki(night-watch): add quarterly milestone (major features/library updates) to PM role
vibe-test: scores 2026-07-06
vibe-test: scores 2026-07-05
vibe-test: scores 2026-07-04
Doc Reviewer check 17: detect AI-slop tells authored as JS escape sequences The typographic detection helper only scanned for raw Unicode chars, so tells written as escapes (\u2014 em dash, \u2013 en dash, \u2018/\u2019 curly single, \u201c/\u201d curly double, \u2026 ellipsis) slipped through even though they decode to the same characters and reach rendered CLI/docs output. Add an escape-aware grep line and a rubric note that escape-authored tells are in scope, with guidance on replacing the escape with the correct plain character. Same CJK (\u2014\u2014) and numeric-range exemptions apply.
Release-Process: add attribution-coverage gate before version bump; align release-notes category order with the formatter; generalize downstream sync + announcement steps
API Conventions: document disabledMessage as a common input prop Add disabledMessage to the Optional Common Props table, a new "Explaining a disabled input" section (Tooltip-wrapper trap vs. the disabledMessage fix, including combine-with-tooltip behavior), and reconcile the Accessibility disabled-state guidance with the focusable aria-disabled mechanism used when a disabled reason is shown.
vibe-test: scores 2026-07-03
Update vibe-test target refs from xds to astryx Night-Watch-Designer: target lists (astryx, baseline, html) and the screenshot filename example (screenshot-dd-2-astryx.png) now match the vibe-test pipeline, which uses the 'astryx' target. Vibe-Evaluation: the Astryx+Tailwind skill-doc path is now .generated/astryx-tailwind-skill.md. Non-vibe references (the 'xds' sandbox node name, repo paths, and Night Watch state files) are intentionally left unchanged.