Kill AI Slop
yetone/kill-ai-slop
Find and remove AI slop — the generic, machine-default visual and copy tics of vibe-coded products — from a web project.
Designing and building any user-facing surface: a web page, landing page, dashboard, report, HTML document, email, or a component inside an existing app.
$ npx skills add Zfinix/aster --skill artifact-design -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Zfinix/aster artifact-design --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Zfinix/aster.git skills-src && mkdir -p .claude/skills && cp -r skills-src/crates/aster-skills/builtins/artifact-design .claude/skills/artifact-design && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "artifact-design" agent skill from https://github.com/Zfinix/aster/tree/main/crates/aster-skills/builtins/artifact-design into .claude/skills/artifact-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "artifact-design", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Zfinix/aster/tree/main/crates/aster-skills/builtins/artifact-designType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Zfinix/aster --skill artifact-design -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Zfinix/aster artifact-design --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Zfinix/aster.git skills-src && mkdir -p .agents/skills && cp -r skills-src/crates/aster-skills/builtins/artifact-design .agents/skills/artifact-design && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "artifact-design" agent skill from https://github.com/Zfinix/aster/tree/main/crates/aster-skills/builtins/artifact-design into .agents/skills/artifact-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "artifact-design", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Zfinix/aster --skill artifact-design -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Zfinix/aster artifact-design --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Zfinix/aster.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/crates/aster-skills/builtins/artifact-design .cursor/skills/artifact-design && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "artifact-design" agent skill from https://github.com/Zfinix/aster/tree/main/crates/aster-skills/builtins/artifact-design into .cursor/skills/artifact-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "artifact-design", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Zfinix/aster.git --path crates/aster-skills/builtins/artifact-design--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Zfinix/aster --skill artifact-design -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Zfinix/aster artifact-design --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Zfinix/aster.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/crates/aster-skills/builtins/artifact-design .gemini/skills/artifact-design && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "artifact-design" agent skill from https://github.com/Zfinix/aster/tree/main/crates/aster-skills/builtins/artifact-design into .gemini/skills/artifact-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "artifact-design", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Zfinix/aster artifact-designInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Zfinix/aster --skill artifact-design -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Zfinix/aster.git skills-src && mkdir -p .github/skills && cp -r skills-src/crates/aster-skills/builtins/artifact-design .github/skills/artifact-design && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "artifact-design" agent skill from https://github.com/Zfinix/aster/tree/main/crates/aster-skills/builtins/artifact-design into .github/skills/artifact-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "artifact-design", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Zfinix/aster --skill artifact-design -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Zfinix/aster artifact-design --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Zfinix/aster.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/crates/aster-skills/builtins/artifact-design .opencode/skills/artifact-design && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "artifact-design" agent skill from https://github.com/Zfinix/aster/tree/main/crates/aster-skills/builtins/artifact-design into .opencode/skills/artifact-design/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "artifact-design", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
artifact-designDesigning and building any user-facing surface: a web page, landing page, dashboard, report, HTML document, email, or a component inside an existing app.
Artifact Design is an agent skill from Zfinix/aster. Designing and building any user-facing surface: a web page, landing page, dashboard, report, HTML document, email, or a component inside an existing app. Use when asked to build, style, redesign, or beautify UI, when writing HTML/CSS or a React/Vue/Svelte component that a person will look at, and when a generated page needs to look considered rather than templated.
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Frontend & Design, covering Landing pages. It works with React, Svelte and Vue.js. The repository describes itself as: An open-source agent harness for software work. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit f77a5b4. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
rgFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Artifact Design loads about 2.8k tokens when it runs. Until then it costs about 96 tokens; SKILL.md has 1,744 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Zfinix/aster at commit f77a5b4, republished under its Apache-2.0 licence (© Zfinix). 1,744 words, ~2,832 tokens.
.claude/skills/artifact-design/SKILL.md (or your agent's skills folder).Work like the design lead at a small studio known for versatility: every job gets a visual identity pitched at the treatment it actually calls for, chosen for this subject rather than stamped from a template.
Before designing anything, find the system the project already has. Cheapest first:
rg -l "tailwind.config|theme.ts|tokens|:root\s*\{|@theme|design-system" --glob '!node_modules'
sed -n '1,80p' AGENTS.md CLAUDE.md 2>/dev/nullA tokens file, a theme, a component library, or existing sibling components outrank every default below. Read two or three neighbouring components and match their conventions: class strategy, spacing scale, naming, how variants are expressed. Precedence is always the user's own words, then the project's system, then your judgment. Only reach past the project when it has no answer.
New standalone page with no project to honor: pick the stack the request implies and keep it minimal. Most pages need no framework and no library. Load one only when it carries real weight, pinned to an exact version, and never paste a library's source into the page.
The question is never whether to design, only how loud. A memo, a plan, a status page, an internal tool: polished and quiet. Real typographic hierarchy, considered spacing, a proper palette, no gigantic hero, flourishes rare. A landing page, a launch post, a game, something the user will keep or share: editorial, opinionated, one real aesthetic risk.
When unsure, aim quiet. A well-composed page is never wrong; an over-designed one sometimes is.
Write down, in a few lines, the token system you are about to build to:
Then read the plan back against the subject. Any part that reads like the default you would produce for any similar page gets revised before you write code. Build from the revised plan and derive every color and type decision from it.
Ground it in the subject. Pin one concrete subject, its audience, and the page's single job. Distinctive choices come from the subject's own world: its materials, instruments, vernacular. Carry at least one detail only this subject would have, its real units and scales, its document conventions, its terms of art, as content rather than ornament. Real content throughout, never lorem.
Typography carries the page, even when the page is not about typography.
Set a type scale and stay on it. Running text near 65 characters wide.
text-wrap: balance on headings, letter-spacing on uppercase labels, body
text given room. Every webfont declares a real fallback stack and loads with
display: swap; a face that fails to load must degrade, not disappear.
Choose the neutrals. A pure mid-grey reads as unconsidered. Bias the greys slightly toward the accent hue and they read as chosen. Pure white and near-black are fine grounds when the subject wants them; the point is that the neutral was picked, not inherited.
Theme through tokens, never past them. Define the complete palette as
custom properties on bare :root. Redefine only those tokens under
@media (prefers-color-scheme: dark), and again under an explicit
[data-theme] stamp if the page has a toggle, so an explicit choice beats the
OS in both directions. Style components through the tokens. A color whose only
definition lives inside a media query or a [data-theme] block never applies
in the unstamped default state, which is the classic unreadable-page bug. Give
body an explicit background from a token rather than letting it inherit the
host's. Do not naively invert for dark; re-check contrast and that the accent
still works on the second ground. A page that deliberately commits to one
visual world may stay single-theme, but then it paints every color explicitly
so it holds on either host ground. Make that a choice, not an omission.
Let layout do the spacing. Sibling groups get flex or grid with gap, not
per-element margins that collapse or double. Wide content (tables, code,
diagrams) scrolls inside its own overflow-x: auto container so the body never
scrolls sideways. font-variant-numeric: tabular-nums anywhere digits line up.
Compose repeated things as one object. Cards in a row, label/value pairs down a list, badges on siblings: identical edges, baselines and inner padding, with recurring elements in the same place on each. Let content set container height, and pick a column count the items actually fill so nothing stretches over dead space or sits alone in a row. Text that can outgrow its track wraps or scrolls; clipped text is a bug.
Not everything is a card. Border, fill, radius and shadow each say "separate object". Spend them by role to lift the one thing that needs lifting, instead of stamping one radius and one shadow on every block, which flattens the hierarchy. Lead with big-number tiles only when those figures are the point.
Draw charts to the scale. One scale places marks, ticks and labels, and every label names a value the chart actually reaches. Chart text takes theme tokens so it reads in both themes. Marks, labels and edges stay clear of each other and inside the drawing bounds; in SVG leave viewBox room for the outermost labels and give every shape an explicit fill.
Show the page at rest. Everything meant to be read is visible once the page
loads, without scrolling to trigger it. That first frame is what a screenshot,
a shared link, and a skimming reader all get. A section may animate in, but
from a visible resting state, never parked at opacity: 0 waiting on an
observer. Size a hero to what it holds; a 100vh opener pushes the page out of
its own first frame. A tool or app opens in a realistic working state, real
data where it exists and clearly-labelled example rows otherwise, so the first
look shows what it does. An empty shell shows nothing.
When it is a UI, not a document. A dashboard is scanned and operated, not read top to bottom, so the craft shifts from typography to information design. Summary before detail. Encode state in form as well as number (a pill, a chip, a severity stripe) so what needs attention reads at a glance. Semantic color (good / warning / critical) is separate from the accent and does not count as it. Give sparklines the same care as type: an area fill, a faint grid, an emphasized endpoint. What is interactive looks interactive.
Copy is design material. Write from the user's side of the screen and name things by what people recognize, not how the system is built (a person manages notifications, not webhook config). Active voice. A control says exactly what happens ("Publish", then a toast reading "Published"). Errors say what went wrong and what to do next, with no apology and no vagueness. Specific beats clever.
Structure is information. Numbering, eyebrows, dividers and labels should encode something true. Numbered markers (01 / 02 / 03) are right only when the content genuinely is a sequence whose order the reader needs.
Name it like a product. A page title, a component name, a tab label: a short specific noun phrase, typically two to four words. No explainer appended after a dash or colon, and no generic category label that could sit on any page. When trimming, the specific half is the half that survives.
Non-negotiable, and cheap when done while building rather than after:
outline: none.<button> before a <div onclick>, one
<h1>, headings that descend without skipping.alt="".@media (prefers-reduced-motion: reduce) disables transforms and
autoplaying motion, and never hides content that only appears after an
animation.Watch selector specificity: it is easy to generate classes that cancel each
other out, a .section rule fighting a .cta rule over the same padding.
Structure the cascade so it does not silently undo your own spacing. Close
every non-void element, quote every attribute, and check for overlapping
elements and silent font fallbacks. Give images explicit dimensions or an
aspect ratio so the page does not shift as they load. For generative or
decorative graphics reach for Canvas or WebGL rather than hand-authoring long
SVG path data.
Current AI design clusters hard around a handful of looks. Where the user pins a direction, follow it exactly, including when they ask for one of these. Where nothing is specified, do not spend that freedom here:
#F4F1EA with a serif display and a terracotta accentrounded-lg on everythingTwo structural tells beyond the palette: uniform elevation on every block, and a hero sized to the viewport rather than to its content.
Write, look once, stop. If the project can render the page, take a single screenshot and spend it on the thing most likely to be wrong (usually a chart, a table, or the dark theme), then make one pass of edits. Do not build a test loop around your own file; repeated screenshots and DOM-probing scripts spend the session re-checking what a careful write already settled.
Last pass over the diff:
[data-theme] block, body background explicit.Further polish is the user's to ask for. If they report something visibly broken, fix that and stop there.
© Zfinix, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in crates/aster-skills/builtins/artifact-design of Zfinix/aster.
Open the folder on GitHubat commit f77a5b4
Artifact Design next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Artifact Design this skillZfinix/aster | 118 | — | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Kill AI Slopyetone/kill-ai-slop | 1.3k | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| UI/UX Design System AdvisorGalaxy-Dawn/claude-scholar | 5.7k | 1 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Design StyleCastor6/tactus | 376 | 1 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| Atlaspacifio/ui | 154 | — | ~2.5k | Automated safety check: Pass | MIT | |
| UI UX Pro Maxshobcoder/shob | 576 | — | ~3.7k | Automated safety check: Pass | MIT |
yetone/kill-ai-slop
Find and remove AI slop — the generic, machine-default visual and copy tics of vibe-coded products — from a web project.
Galaxy-Dawn/claude-scholar
Turns a vague UI request into a concrete design system with style, palette, typography and layout guidance from a search script, plus stack-specific implementation advice.
Castor6/tactus
A skill your agent uses whenever the user asks to build, create, design, develop, improve, or style any frontend interface or visual element.
pacifio/ui
Atlas — a design language and UI guide system for agent interfaces.
shobcoder/shob
UI/UX design intelligence expert for web and mobile applications.
MemTensor/memmy-agent
Design, build, redesign, or modify browser-visible web interfaces with product-quality composition, visual systems, interaction states, responsive behavior, accessibility, and browser visual QA.
Zfinix/aster
Drive aster chat programmatically and manage sessions and memory: one-shot --print/--json answers, --messages-json for caller-owned history, --continue and --session persistence, --allow-edits…
Zfinix/aster
Guidance for using the aster CLI to work in a codebase with an AI agent: chat and edit code, run AI code reviews, apply fixes, and manage sessions, memory, and skills.
Zfinix/aster
Reference for aster.yaml, covering review models, analyzers, focus areas, include/exclude globs, minconfidence, and the permissions block that gates edits.
Zfinix/aster
Pipe aster review findings into aster fix to generate and apply patches safely, using review --json, fix --findings-json, dry-run inspection, --apply, and permission gating.
Zfinix/aster
Create and execute structured plans for multi-step tasks. An agent skill from Zfinix/aster.
Zfinix/aster
Run aster code reviews non-interactively in CI, GitHub Actions, or from another agent.
Categories
Designing and building any user-facing surface: a web page, landing page, dashboard, report, HTML document, email, or a component inside an existing app. Artifact Design is an agent skill from Zfinix/aster. Designing and building any user-facing surface: a web page, landing page, dashboard, report, HTML document, email, or a component inside an existing app.
Artifact Design fits situations like: writing HTML/CSS; A React/Vue/Svelte component that a person will look at; when a generated page needs to look considered rather than templated.
Run `npx skills add Zfinix/aster --skill artifact-design -a claude-code`. Or copy the skill folder (crates/aster-skills/builtins/artifact-design in Zfinix/aster) into .claude/skills/artifact-design in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Zfinix/aster --skill artifact-design -a codex`. Or copy the skill folder (crates/aster-skills/builtins/artifact-design in Zfinix/aster) into .agents/skills/artifact-design in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Zfinix/aster --skill artifact-design -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/artifact-design, .gemini/skills/artifact-design, .github/skills/artifact-design and .opencode/skills/artifact-design in your project.
Going by SKILL.md and its folder, Artifact Design needs the command-line tools its instructions call (rg).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Artifact Design is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Artifact Design: Kill AI Slop (yetone/kill-ai-slop, 1.3k stars), UI/UX Design System Advisor (Galaxy-Dawn/claude-scholar, 5.7k stars), Design Style (Castor6/tactus, 376 stars) and Atlas (pacifio/ui, 154 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Zfinix (a GitHub user) maintains it in Zfinix/aster, which has 118 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 9, 2026.
Source: Zfinix/aster on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.