deslop-ui
Skill3.4k starsChanged 39 days agoMITView on GitHub
Clean up canvas UI code generated by AI in packages/review/app. Use after writing or changing canvas components or styles, before review.
- Reads credentials
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 4 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 23
Hand-rolled controls: Search the kit before keeping any of these, and swap in the kit piece:
- Very specific: line 51
Every animation stills under reduced motion: Check each animationName and transition has a stylex.env.reducedMotion branch.
- Very specific: line 52
Focus: Look for anything that sets disabled on the button that was just pressed (Send, Retry, an opener while it loads).
- Distinctive: line 56
Slop in styles: Delete:
- Distinctive: line 62
Tests: Don't add tests that assert class names, CSS text or style objects.
- Very specific: line 67
Run pnpm format, pnpm lint and pnpm -w exec tsc --noEmit -p packages/review/app from the repo root.
- Distinctive: line 68
Run the canvas tests for the files you touched.
- Very specific: line 69
Check the changed surfaces in an isolated Desktop (DEV_FAST_REVIEW_DESKTOP_BACKGROUND=1): dark, light, a narrow width, keyboard focus and …
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Review every canvas file the branch changed (git diff origin/main --stat -- packages/review/app). Assume each new style or component is a copy of something the kit already has, and prove otherwise before you keep it.
The kit
Everything below lives in packages/review/app/src/ui/ unless a path says otherwise. Kit modules never import app code.
- Controls:
Button(variant,tone;buttonLookfor an anchor drawn as a button),IconButton(aria-pressedfor toggles),SegmentedControl,Checkbox,Radio,CheckboxMark(a row that is itself the checkbox),Switch,TextField,TextArea,Select,fieldStyles.bare,Kbd/Shortcut. - Overlays:
Popover(placed withmenuStyles.popoverorshellStyles.topbarPopover),useDismissOnOutside,Dialog,OptionMenuinsrc/option-menu.tsx. Menu rows usemenuStyles.item, groups split withmenuStyles.separator, arrows move withmoveMenuFocus. Disclosures useDisclosureChevronwithdisclosureStyles.toggleandchevronMarkeron the toggle. - Feedback:
Spinner(spinStyles.turningfor a turning icon),ProgressRing,EmptyState,StatusBanner,StatusDot,useCopy/CopyButton,useTooltip,useNotifyinsrc/notify.ts. - Glyphs:
icons.tsx(24 grid, sized withiconStyles), board and PR-state marks inboard-icons.tsx, agent marks throughAgentLogoinbrand-icons.tsx. Icons are SVG, never Unicode characters. - Fragments:
textStyles(truncate,clamp2,error,eyebrow,sectionTitle,count),focusStyles.ring/ringInset,buttonStyles.reset,dividerStyles.vertical,surfaceStyles(card,popover,dialog),listRowStylesfor sidebar rows,pillStyles/Chip,CrumbSeparator,OverlayScrollbar. - Settings use
Section/Rowfromsrc/settings-section.tsx. Times, durations and counts usesrc/format.ts.
Checklist
pnpm lint already rejects off-scale literals, !important, bare transparent, raw colors, glyph icons, <select> outside the kit, unused stylex.create keys, Code OSS imports and app imports from src/ui/. The checklist is what lint cannot see.
- Hand-rolled controls. Search the kit before keeping any of these, and swap in the kit piece:
- a
<button>with its own padding, border, background and font:Button,IconButtonorbuttonStyles.reset - a local
<input>or<textarea>look:TextField,TextArea,Checkbox,RadioorSwitch - a click-outside effect:
PopoveroruseDismissOnOutside - a fixed overlay:
Dialog - a single-choice menu:
OptionMenu - a rotating chevron:
DisclosureChevronwithchevronMarker - a border-ring spinner:
Spinner - a copied-state timer:
useCopy - a sidebar row with its own hover wash:
listRowStyles - a rounded chip with an inset ring:
pillStylesorChip - a notification dot:
StatusDot - a styled
<kbd>:KbdorShortcut title=on an icon control:useTooltip
- a
- Menu and list rows. A row rendered as a
<button>stacksfocusStyles.ringInset,buttonStyles.reset, thenmenuStyles.item(orlistRowStyles.row+wash). Without the reset the browser's 2px border shows and the row grows. - Locked checkboxes.
Checkboxdims to half opacity when disabled. A locked-on option (a required item) ischecked+disabledwith auseTooltipon its wrapper that says why, asonboarding/install-step.tsxdoes. A dimmed box with no reason reads as broken. - Local icons. An inline
<svg>belongs inicons.tsx, drawn on its 24 grid and sized withiconStyles. Agent marks go throughAgentLogo. Repeated fragments. These become kit fragments:
overflow: hidden+textOverflow: ellipsis+whiteSpace: nowrap:textStyles.truncate- two-line clamps:
textStyles.clamp2 - error colors:
textStyles.error - focus outlines:
focusStyles.ring/ringInset - 1px vertical rules:
dividerStyles.vertical - bordered figures:
surfaceStyles.card - hairlines between menu groups:
menuStyles.separator
A pattern that appears a third time goes in the kit.
- Off-scale values. Don't silence lint with a new step or an inline
calc(). Snap to the nearest step, and name a geometry-coupled offset once. Reduced-motion and narrow-width media queries becomestylex.env.reducedMotion/stylex.env.narrow; a one-off layout breakpoint may stay local. Replace localspinkeyframes and easings withmotion.*andspinStyles. - Every animation stills under reduced motion. Check each
animationNameandtransitionhas astylex.env.reducedMotionbranch. - Focus. Look for anything that sets
disabledon the button that was just pressed (Send, Retry, an opener while it loads). Replace it with a guard in the handler. Popovers and dialogs must close on Escape and give focus back to their trigger. - Scrollbars.
global.cssalready styles every native scrollbar in the canvas. Delete local::-webkit-scrollbarrules. SettingscrollbarWidthorscrollbarColorturns that styling off, andscrollbarColorinherits, so set them only for a scroller that hides its bar on purpose. A main scroller whose bar must not take layout width getsOverlayScrollbarandoverlayScrollbarStyles.scroller. - Portals. UI portaled outside
.review-appneedsthemeStyles.vars, or kit controls lose their chrome tokens and collapse. - Feedback placement. Errors inside a modal render inline with
role="alert". Transient success after a surface closes usesuseNotify. Don't do both. - Slop in styles. Delete:
- comment-per-property styles
- descendant selectors (use markers or variants)
zIndexliterals that stack across surfaces (uselayer; order inside one component may stay local)- shadows outside
elevation - duplicate
stylex.createblocks that differ by one property (use a variant)
- Tests. Don't add tests that assert class names, CSS text or style objects. Test behaviour (roles, focus, dismissal) and check the visuals in the Desktop.
- Style-only refactors. Prove no pixel changed with computed-style diffs before and after, with the pointer moved off the page. Not by eye.
Then:
- Run
pnpm format,pnpm lintandpnpm -w exec tsc --noEmit -p packages/review/appfrom the repo root. - Run the canvas tests for the files you touched.
- Check the changed surfaces in an isolated Desktop (
DEV_FAST_REVIEW_DESKTOP_BACKGROUND=1): dark, light, a narrow width, keyboard focus and reduced motion. - Report what you replaced, and anything you kept local and why.
Trending
More talk lately.about the whole repository
Who's talking about devdotfast/whiteboard
- A Hacker News story“Show HN: Whiteboard (YC W26) – An open-source IDE for thoughtful software design”Hacker News · Sep 24, 2026 · 424 points
- @yug1224.com“AIエージェントと人間がキャンバス上で設計図やコードを共有しながら開発できるツールっぽい コードの可視化や設計の壁打ちにすごく使えそう yug1224 starred devdotfast/whiteboard…”Bluesky · Sep 27, 2026 · 2 likes
- @technews4869.bsky.social“github.com/devdotfast/whit... GitHub - devdotfast/whiteboard: open-source canvas for thoughtful software …”Bluesky · Sep 27, 2026 · 1 likes
- @tech-trending.bsky.social“GitHub - devdotfast/whiteboard: open-source canvas for thoughtful software design …”Bluesky · Sep 27, 2026 · 1 likes
- @hncompanion.com“Show HN: Whiteboard (YC W26) – An open-source IDE for thoughtful software design View Article | Discussion …”Bluesky · Sep 25, 2026 · 1 likes
The biggest 5 of 34 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 34
Talked about on GitHub, Bluesky and Hacker News (34 times).
On GitHub · 27
- Oct 28, 2026claude-code-plugins.github.devdotfast.whiteboard: init at 0.4.0 — sudosubin/agents.nix0 reactions
- Oct 28, 2026claude-code-marketplaces.github.devdotfast.whiteboard: init at 0.4.0 — sudosubin/agents.nix0 reactions
- Oct 23, 2026codex-marketplaces.github.devdotfast.whiteboard: 0.3.4 → 0.4.0 — sudosubin/agents.nix0 reactions
- Oct 23, 2026codex-plugins.github.devdotfast.whiteboard: 0.3.4 → 0.4.0 — sudosubin/agents.nix0 reactions
- Oct 20, 2026codex-marketplaces.github.devdotfast.whiteboard: 0.3.3 → 0.3.4 — sudosubin/agents.nix0 reactions
22 more on GitHub
- Oct 20, 2026codex-plugins.github.devdotfast.whiteboard: 0.3.3 → 0.3.4 — sudosubin/agents.nix0 reactions
- Oct 18, 2026codex-plugins.github.devdotfast.whiteboard: 0.3.2 → 0.3.3 — sudosubin/agents.nix0 reactions
- Oct 18, 2026codex-marketplaces.github.devdotfast.whiteboard: 0.3.2 → 0.3.3 — sudosubin/agents.nix0 reactions
- Oct 16, 2026codex-marketplaces.github.devdotfast.whiteboard: 0.3.0 → 0.3.2 — sudosubin/agents.nix0 reactions
- Oct 16, 2026codex-plugins.github.devdotfast.whiteboard: 0.3.0 → 0.3.2 — sudosubin/agents.nix0 reactions
- Oct 16, 2026codex-marketplaces.github.devdotfast.whiteboard: 0.2.4 → 0.3.0 — sudosubin/agents.nix0 reactions
- Oct 16, 2026codex-plugins.github.devdotfast.whiteboard: 0.2.4 → 0.3.0 — sudosubin/agents.nix0 reactions
- Oct 14, 2026Discovery watchlist — rishibhaskar777/whichai0 reactions
- Oct 13, 2026codex-marketplaces.github.devdotfast.whiteboard: 0.2.0 → 0.2.4 — sudosubin/agents.nix0 reactions
- Oct 13, 2026codex-plugins.github.devdotfast.whiteboard: 0.2.0 → 0.2.4 — sudosubin/agents.nix0 reactions
- Oct 4, 2026codex-plugins.github.devdotfast.whiteboard: init at 0.2.0 — sudosubin/agents.nix0 reactions
- Oct 4, 2026codex-marketplaces.github.devdotfast.whiteboard: init at 0.2.0 — sudosubin/agents.nix0 reactions
- Oct 1, 2026Support symlink and submodule changes in structural diffs — devdotfast/diffr0 reactions
- Sep 29, 2026Codebase map, part 1: build a map of a project and browse it from system to file in the console — Farmer-Pete/Zing2.old0 reactions · 2 comments
- Sep 28, 2026🔍 Weekly Discovery: 49 new tools found (2026-09-28) — heylabs-co/dev-tools-portal0 reactions
- Sep 28, 2026[FEATURE] Semantic diff + diagrams linked to code for AI-generated changes — px0-ai/px00 reactions · 1 comment
- Sep 26, 2026AI Skill 日报 · 2026-09-26 — 7sevenn777/skill-digest0 reactions
- Sep 25, 2026📝 Whiteboard launches as an open‑source canvas for deliberate software design — bitroot-org/bitroot-org-website0 reactions · 1 comment
- Sep 25, 2026Show HN: Whiteboard (YC W26) – An open-source IDE for thoughtful software design — bitroot-org/bitroot-org-website0 reactions · 1 comment
- Sep 25, 2026Evaluate architecture-understanding tools for the planning stage — Farmer-Pete/Zing2.old0 reactions · 2 comments
- Sep 25, 2026AI Skill 日报 · 2026-09-25 — 7sevenn777/skill-digest0 reactions
- Sep 25, 2026📰 Hacker News AI 社区动态日报 2026-09-25 — 96loveslife/big_model_radar0 reactions
On Bluesky · 6
- Sep 27, 2026AIエージェントと人間がキャンバス上で設計図やコードを共有しながら開発できるツールっぽい コードの可視化や設計の壁打ちにすごく使えそう yug1224 starred devdotfast/whiteboard… — @yug1224.com2 likes and reposts
- Sep 27, 2026github.com/devdotfast/whit... GitHub - devdotfast/whiteboard: open-source canvas for thoughtful software design — @technews4869.bsky.social1 likes and repost
- Sep 27, 2026GitHub - devdotfast/whiteboard: open-source canvas for thoughtful software design https://github.com/devdotfast/whiteboard — @tech-trending.bsky.social1 likes and repost
- Sep 25, 2026Show HN: Whiteboard (YC W26) – An open-source IDE for thoughtful software design View Article | Discussion + AI Summary Summary of HN… — @hncompanion.com1 likes and repost · 1 reply
- Sep 24, 2026Whiteboard plugs into Claude Code, Codex, and other coding agents via its SDK, allowing agents to draw on an in-app canvas to describe… — @piranya.bsky.social1 likes and repost
1 more on Bluesky
- Sep 25, 2026Show HN: Whiteboard (YC W26) – 思慮深いソフトウェア設計のためのオープンソースIDE Show HN: Whiteboard (YC W26) – An open-source IDE for thoughtful software design… — @hacker-news-jp.bsky.social0 likes and reposts · 1 reply
On Hacker News · 1
- Sep 24, 2026Show HN: Whiteboard (YC W26) – An open-source IDE for thoughtful software design424 points · 143 comments
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- KyaniteLabs/tastecheck★ 11same name
- samigiman/anti-slop-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository4 other files it gives its agents.
- AGENTS.mdAGENTS.md
- diffr/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- deslop-cacheSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

