ci: make gradients a UX review finding - #8286
Conversation
Opus 4.8 Review — ✅ no blocking findingsReviewed Verdict parsed from the review's SHA-scoped output markers for commit False positive or not applicable? A repository writer can comment: |
Design Review (Fable 5) — ✅ PASSDesign-level review of Design-Verdict: PASS A reviewer-lens gap with a named escaped defect (#8040), fixed at the exact layer that missed it — prompt plus author-facing doc, no new gate. Watch
[DESIGN-REVIEWED] 616d0af |
First Principles Review (Fable 5) — ✅ PASSPremise-level review of All checks are done. The rule duplicates nothing (grep for First-Principles-Verdict: PASS A gradient shipped past the UX lane because no lens named gradients; this puts the rule exactly where that lens failed, scoped to the defect class. What this change shipsIntent: stop new decorative gradient fills from passing UX review unflagged, as one did in #8040. FIX (a review-lane gap with a reported escape), shipped as a prompt+doc addition.
Verification that grounds the PASS: no existing mechanism covers this — [FIRST-PRINCIPLES-REVIEWED] 616d0af |
GPT 5.6 Review — ✅ no blocking findingsGPT 5.6 completed its review of This comment is updated in place on each push. Review detailsNo findings. False positive or not applicable? A repository writer can comment: |
e359456 to
175d830
Compare
175d830 to
d827b60
Compare
|
Design Review — Watch: "Any gradient is a finding" contradicts the shipped dashboard —
Verified the cited sites exist (20 non-test files under Suggestion: state the rule once in the theming contract and have both prompts cite it — |
|
First Principles — Subtraction: shrink the bullet to the harm #8040 demonstrated —
Done as stated. The bullet now reads "a NEW decorative gradient fill (linear-, radial-, or conic-gradient as a background or surface color) … is a finding" and carries an explicit NOT-a-finding list: mask-image scroll-edge fades, loading shimmer, streaming glow, |
UX Review (Fable 5) — ✅ PASSUX-level review of UX-Verdict: PASS No product surface changes — this is a reviewer-prompt and contributor-doc edit; nothing a dashboard user sees or does is touched, and all cited exemptions ( [UX-REVIEWED] 616d0af |
|
Bundle Size Gate red on d827b60 is main-inherited. The gate reports |
The brand system is flat, and a gradient fill on a share card slipped past the UX lane because no lens named it. Add a flat-color rule to the consistency lens of both the main and fork UX reviewers: any CSS gradient on a user-facing surface -- dashboard chrome, dialogs, or an exported image -- is a finding, with one solid token (or the brand purple on outward-facing artifacts) as the expected fill.
d827b60 to
616d0af
Compare
chenmingwei23
left a comment
There was a problem hiding this comment.
Tier 1 auto-approve: chore/CI tooling (3 files). Criteria: no conflict, no requested changes, security path denylist clean, design-doc gate clean, SAST annotations clean (Semgrep + CodeQL both success, zero PR-scoped alerts), security checklist all-NO, AI reviewers green. Category: adds a flat-fills gradient rule to the UX review workflow prompts plus its theming-contract doc; workflow prompt text with no runtime impact.
iamwhatever
left a comment
There was a problem hiding this comment.
Tier 1 auto-approve: chore / build tooling (3 files). Criteria: no conflict, no requested changes, security path denylist clean, design-doc gate clean, SAST annotations clean, security checklist all-NO, AI reviewers green. Category: adds a "flat fills" gradient criterion to the UX review prompt in .github/workflows/ux-review.yml and its fork variant, and documents the same rule in website/docs/theming-contract.md — prompt/doc prose only, no job gating logic and no runtime code path.
Summary
Adds a flat-fill rule to the UX review lane (main + fork variants): a NEW decorative gradient fill (
linear-,radial-,conic-gradientused as a background or surface color) on chrome, a dialog, or an exported image such as a share card is a finding. The expected fill is one solid theme token, or the brand purple#7c3aedon an outward-facing artifact.The rule is scoped to the defect class it comes from. It explicitly does not flag functional gradients (
mask-imagescroll-edge fades, loading shimmer, streaming glow) or the shipped gradient mechanisms (appstore gradient art incomponents/appstore/gradient.ts, which reads as content rather than chrome, and the session'gradient'color mode) — those are deliberate and test-pinned, and an "any gradient" rule would misfire on every PR that touches them.The rule is stated once in
website/docs/theming-contract.md(next to the existing "never a hardcoded#hex" rule, reachable fromwebsite/AGENTS.md), so an author sees it before review; both reviewer prompts cite that doc.Why
The brand system is flat. A gradient background on a share card in #8040 went through the UX lane without comment because no lens named gradients; it was caught by a human instead. This puts the rule where the reviewer will apply it every time — lens 7 (Consistency & Habituation), next to the existing "theme tokens over hardcoded colors" bullet.
Prompt + doc change, no new lane/gate/script. Both
ux-review.ymlandfork-ux-review.ymlget the identical bullet so fork PRs are held to the same bar.Tested
scripts/check_brand_name.py(added lines) andscripts/docs-lint.shpass locallyno linked issue: prompt-only reviewer tightening surfaced during #8040 review.