UI Styling
Ohh-889/skyroc
Create beautiful, accessible user interfaces with shadcn/ui components (built on Radix UI + Tailwind), Tailwind CSS utility-first styling, and canvas-based visual designs.
Pneuma WebCraft Mode workspace guidelines with Impeccable.style design intelligence.
$ npx skills add pandazki/pneuma-skills --skill pneuma-webcraft -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pandazki/pneuma-skills pneuma-webcraft --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/pandazki/pneuma-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/modes/webcraft/skill .claude/skills/pneuma-webcraft && 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 "pneuma-webcraft" agent skill from https://github.com/pandazki/pneuma-skills/tree/main/modes/webcraft/skill into .claude/skills/pneuma-webcraft/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pneuma-webcraft", 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/pandazki/pneuma-skills/tree/main/modes/webcraft/skillType 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 pandazki/pneuma-skills --skill pneuma-webcraft -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pandazki/pneuma-skills pneuma-webcraft --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pandazki/pneuma-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/modes/webcraft/skill .agents/skills/pneuma-webcraft && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pneuma-webcraft" agent skill from https://github.com/pandazki/pneuma-skills/tree/main/modes/webcraft/skill into .agents/skills/pneuma-webcraft/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pneuma-webcraft", 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 pandazki/pneuma-skills --skill pneuma-webcraft -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pandazki/pneuma-skills pneuma-webcraft --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pandazki/pneuma-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/modes/webcraft/skill .cursor/skills/pneuma-webcraft && 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 "pneuma-webcraft" agent skill from https://github.com/pandazki/pneuma-skills/tree/main/modes/webcraft/skill into .cursor/skills/pneuma-webcraft/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pneuma-webcraft", 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/pandazki/pneuma-skills.git --path modes/webcraft/skill--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 pandazki/pneuma-skills --skill pneuma-webcraft -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pandazki/pneuma-skills pneuma-webcraft --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pandazki/pneuma-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/modes/webcraft/skill .gemini/skills/pneuma-webcraft && 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 "pneuma-webcraft" agent skill from https://github.com/pandazki/pneuma-skills/tree/main/modes/webcraft/skill into .gemini/skills/pneuma-webcraft/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pneuma-webcraft", 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 pandazki/pneuma-skills pneuma-webcraftInstalls 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 pandazki/pneuma-skills --skill pneuma-webcraft -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/pandazki/pneuma-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/modes/webcraft/skill .github/skills/pneuma-webcraft && 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 "pneuma-webcraft" agent skill from https://github.com/pandazki/pneuma-skills/tree/main/modes/webcraft/skill into .github/skills/pneuma-webcraft/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pneuma-webcraft", 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 pandazki/pneuma-skills --skill pneuma-webcraft -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install pandazki/pneuma-skills pneuma-webcraft --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pandazki/pneuma-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/modes/webcraft/skill .opencode/skills/pneuma-webcraft && 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 "pneuma-webcraft" agent skill from https://github.com/pandazki/pneuma-skills/tree/main/modes/webcraft/skill into .opencode/skills/pneuma-webcraft/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pneuma-webcraft", 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.
pneuma-webcraftPneuma WebCraft Mode workspace guidelines with Impeccable.style design intelligence.
Pneuma Webcraft is an agent skill from pandazki/pneuma-skills. Pneuma WebCraft Mode workspace guidelines with Impeccable.style design intelligence. Use for ANY web design or development task: building pages, components, layouts, styling, animations, responsive design, accessibility, performance optimization, design system extraction, UX writing, and visual refinement. This skill defines how the live-preview environment works, the Impeccable design principles to follow, and the 22 design commands available. Consult before your first edit in a new conversation.
Its SKILL.md is about 7.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 28 other files, including scripts and reference files (for example `references/cmd-adapt.md`, `references/cmd-animate.md` and `references/cmd-audit.md`).
It sits in Frontend & Design, covering Responsive design, Performance optimization and Design systems. The repository describes itself as: Co-creation infrastructure for humans and code agents — visual environment, skills, continuous learning, and distribution. The licence is MIT.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0023d3c. 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.
Ships 1 file in scripts/, which the agent can run.
Shell commands in SKILL.md call:
curlnodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
OPENROUTER_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Pneuma Webcraft loads about 7.5k tokens when it runs, and up to ~72k if it reads all its reference files. Until then it costs about 130 tokens; SKILL.md has 3,835 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 noted patterns worth knowing about, such as sudo or a known installer.
l it.** Run from the skill directory so `.env` is picked up: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); the scripts in this folder are not scanned.
The full file from pandazki/pneuma-skills at commit 0023d3c, republished under its MIT licence (© pandazki). 3,835 words, ~7,512 tokens.
.claude/skills/pneuma-webcraft/SKILL.md (or your agent's skills folder). This skill also uses 27 other files; get the full folder from GitHub.WebCraft is a live web development surface backed by Impeccable.style design intelligence: a comprehensive set of design principles and commands that help you produce distinctive, production-grade frontend interfaces. The user watches an iframe preview render your edits in real time, and a toolbar exposes 22 Impeccable design commands for structured passes.
The webcraft viewer is the user's window into the workspace. It renders an iframe preview of the active HTML page, exposes responsive viewport controls, the 22 Impeccable design commands, and per-page / per-content-set switching. Everything below is how you (the agent) coordinate with that surface.
Each user message arrives wrapped with two channels you should read before acting:
<viewer-context> — the live state of the preview at send time. For webcraft this includes the active content set (top-level dir), the active page (file="about.html"), the viewport size of the responsive preview, and — when the user clicked an element in the iframe — a CSS-selector-style Selected path, a human-readable element description (tag, classes, accessible name), and an Address: line: a machine-readable ViewerAddress you can paste straight into a capture call or a <viewer-locator> card. Treat this as the resolution surface for "this section", "this button", "here", "make it tighter", etc.<user-actions> — discrete UI actions the user took since their last turn: page tab switches, content set switches, viewport size changes, and explicit invocations of an Impeccable design command from the toolbar (audit, critique, polish, …). Always check this before responding — a command:audit action means "do an audit", even if the chat text is just "go".Resolve ambiguous references against <viewer-context> first, then fall back to asking.
Webcraft has one vocabulary for "which object in the viewer". The same
shape — a ViewerAddress — is what a <viewer-locator> card points at, what
the capture action screenshots, and what a <viewer-context> selection
reports back to you. Learn it once; it works across all three.
| Key | Half | Meaning |
|---|---|---|
contentSet | coarse | Top-level directory acting as a switchable site (pneuma, gazette, pneuma-console). |
page | coarse | HTML page filename inside the content set (about.html, pricing/index.html). |
selector | fine | A CSS selector resolved inside the rendered page (section.pricing, #hero .cta). |
anchor | fine | A page anchor — shorthand for an #id selector. |
Use only the keys you need: {"page":"about.html"} names a whole page;
{"page":"about.html","selector":"section.pricing"} names one region of it.
When the user clicks an element, the Address: line in <viewer-context>
hands you a ready-made ViewerAddress — copy that JSON straight back.
After creating or editing pages, embed <viewer-locator> cards in your reply so the user can jump straight to the result. The card's address attribute is a ViewerAddress — locators navigate the user to a page, so use the coarse keys (contentSet, page):
<viewer-locator label="Open about.html" address='{"page":"about.html"}' />
<viewer-locator label="Switch to pneuma-console" address='{"contentSet":"pneuma-console"}' />
<viewer-locator label="Switch to gazette / contact" address='{"contentSet":"gazette","page":"contact.html"}' />Embed one card per landmark you want the user to verify — don't dump a wall of cards.
Webcraft exposes one agent-invocable workspace action via POST $PNEUMA_API/api/viewer/action:
scaffold — Initialize the current content set with HTML pages from a structure spec. Params: title (required, site/project title) and pages (required, JSON array of {name, title?} for each HTML page). Honors clearPatterns: ["**/*.html", "**/manifest.json"] — it wipes existing pages in the target set, so always pass contentSet for new sites and always confirm with the user before invoking.curl -X POST "$PNEUMA_API/api/viewer/action" \
-H "Content-Type: application/json" \
-d '{
"action": "scaffold",
"params": {
"contentSet": "studio-portfolio",
"title": "Studio Portfolio",
"pages": "[{\"name\":\"index.html\",\"title\":\"Home\"},{\"name\":\"work.html\",\"title\":\"Work\"},{\"name\":\"contact.html\",\"title\":\"Contact\"}]"
}
}'The 22 Impeccable design commands (init, document, shape, craft, audit, critique, polish, …) are NOT viewer actions — they're toolbar commands the user invokes, surfaced to you via <user-actions> (see "Reading what the user sees" above and the "Impeccable Commands" section below).
The user is already watching a live iframe preview of every edit you make — you do not need to prove the page renders.
Hard rule: do NOT open an external browser, the chrome-devtools MCP, headless Chrome, or browser-use tooling to verify your work.
Why: those tools render the raw files outside the webcraft viewer. Webcraft pages live inside content sets — asset paths, manifest.json page tabs, and proxy routes are all resolved by the viewer at render time. Open an HTML file directly and you see broken assets and a page detached from its set. What an external browser shows is not what the user sees. The Pneuma viewer is the only faithful render.
When you genuinely need to see the rendered result for a "quality check → improve" loop, use the framework-level capture viewer action — it returns a PNG screenshot of the live viewer, exactly what the user sees:
# Full viewer
curl -s -X POST "$PNEUMA_API/api/viewer/action" \
-H 'Content-Type: application/json' \
-d '{"actionId":"capture"}'
# One region — pass a ViewerAddress; `selector` resolves inside the rendered page
curl -s -X POST "$PNEUMA_API/api/viewer/action" \
-H 'Content-Type: application/json' \
-d '{"actionId":"capture","params":{"address":{"selector":"section.hero"}}}'
# A region on another page — capture navigates there first, then shoots
curl -s -X POST "$PNEUMA_API/api/viewer/action" \
-H 'Content-Type: application/json' \
-d '{"actionId":"capture","params":{"address":{"page":"pricing.html","selector":"section.plans"}}}'params.address is a ViewerAddress — omit it for a full-viewer shot. On success the response is {"success":true,"data":{"path":"<absolute .png path>","width":<n>,"height":<n>}}. Use your Read tool on that path to view the screenshot inline, then iterate.
The webcraft workspace is organized around content sets — each top-level directory (e.g. pneuma/, gazette/, pneuma-console/) is a self-contained, switchable site. The active set appears as the content-set attribute in <viewer-context>; the user can switch sets from the viewer chrome. Per-set features (page tabs, theming, export, deploy) all key off this.
Rules:
manifest.json live inside a content set.portfolio/, landing-page/) and a manifest.json, then edit inside it.For multi-page sites, drop a manifest.json at the content set root so the viewer renders page tabs at the bottom:
{
"title": "My Project",
"pages": [
{ "file": "index.html", "title": "Home" },
{ "file": "about.html", "title": "About" },
{ "file": "contact.html", "title": "Contact" }
]
}The first entry is the default page. Keep pages in sync whenever you add or remove HTML files.
scaffold is the structured way to seed a content set with empty-but-valid HTML pages from a spec. Use it when the user describes a new site by listing its pages ("a portfolio with home, work, about, contact"), rather than hand-writing each file. Two non-negotiables:
contentSet for any new site — without it, scaffold's clearPatterns wipe the active set's HTML.title + pages list in chat first.After scaffold returns, the viewer auto-switches to the new set; follow up with the actual design pass.
capture round, fix everything it shows in one batch, confirm with at most one more round, then stop polishing. Open-ended self-QA burns the user's money doing worse what the finish review does better..html, .css, .js, .jsx, .ts, .tsx, .json, .svg, etc.)Edit for surgical changes and Write for new files or full rewrites; every edit should leave the file in a valid state, because the user sees it immediately.claude/ directory contents — managed by the runtime{{#imageGenEnabled}}
Two scripts live under {SKILL_PATH}/scripts/:
generate_image.mjs — text-to-image and reference-image edits via GPT Image 2.5edit_image.mjs — modify an existing local image with an optional highlighter annotation (GPT Image 2.5 via OpenRouter)Default model is gpt-image-2.5-sunburst: strong at legible typography, labels, product-shot mockups with real copy, signage, wordmarks, and diagrams with text. Edits (edit_image.mjs or --image-urls) automatically use gpt-image-2.5-flare. Both models use OpenRouter and require OPENROUTER_API_KEY.
Generate vs. code the visual. Geometric shapes, icons, gradients, patterns, and decorative lines are CSS / SVG / <canvas> work — faster, responsive, theme-aware. Generate when the asset cannot plausibly be composed from code: a photograph, a painterly illustration, a mood image, a hand-made texture, a product-shot mockup, a logo or wordmark concept. Producing the design's imagery is part of building, at the scale the composition needs — a viewport that wants atmosphere gets a full-bleed layered scene, not a library of small centered subjects standardized for tidiness.
The image slop test. Before you call the generator, predict how the image will read. If the honest answer is "this looks like every AI hero image on every AI landing page from 2024", that is the problem. Reject your training-data defaults every time: glowing translucent orbs and neon-halo spheres on dark space; purple-to-blue or cyan-on-dark gradient grounds; abstract flowing 3D ribbons, iridescent swooshes, soap-bubble metaballs; isometric flat-vector "dashboard with colorful chart widgets" heroes; "person at laptop with floating UI elements" stock; AI-rendered people with waxy plastic skin and perfect symmetrical eyes.
Image-led surfaces don't get to degrade into abstract panels. Travel, editorial, portfolio, venue, product showcase, entertainment, and education work needs credible imagery when the brief calls for it. Substituting a tasteful gradient or a geometric pattern for the hero photograph a brief demands is a missing-asset defect, not a stylistic choice. Generate the image, or surface the deviation to the user before shipping.
Prompt discipline — reinforce the direction, never contradict it. An image has to live next to the site's typography, color system, and voice. Name the project's three brand words (the same words that drove font selection), translate them into image language (medium, palette, composition, era, physical analog), then write the prompt with those translations baked in:
Write palette descriptors as concrete visual references ("muted clay red, bone white, a single cold-steel accent"), never as hex codes or raw OKLCH — models respond to the former. Record your style descriptors on the first call of a series and reuse them verbatim, or a batch of images ends up looking stitched together.
How to call it. Run from the skill directory so .env is picked up:
cd {SKILL_PATH} && node scripts/generate_image.mjs \
"Your context-matched prompt here" \
--aspect-ratio 16:9 \
--quality high \
--output-format png \
--output-dir <workspace-relative>/<content-set>/assets \
--filename-prefix hero-context--aspect-ratio: 16:9 above the fold, 4:3/3:2 for content and card thumbs, 1:1 for avatars and icon art, 9:16 for mobile-first heroes. --quality high for anything the user will look at. --output-format: png for clean edges and legible text, jpeg for photographs, webp when size beats fidelity. --output-dir is always the active content set's assets/. --filename-prefix names the image's role. For edits on an already-deployed image prefer --image-urls <url> with clear edit instructions against gpt-image-2.5-flare; the annotation-driven edit_image.mjs is for the local file + highlighter flow.
After generating. Reference the image semantically (<img> with meaningful alt, <picture> when you need art direction), loading="lazy" below the fold and decoding="async" on heroes, and a max-width + aspect-ratio in CSS so layout doesn't jump. If you produced candidates with --num-images, wire both up behind a comment rather than silently discarding one. Every shipping raster is worth a one-line provenance note beside it — the exact prompt for a generated image, the origin for a sourced one — so a later session can say what it is and why it exists.
{{/imageGenEnabled}}
This skill carries the Impeccable.style design system. It gives you the standing and the permission to produce out-of-distribution craft: production-grade code, a clear point of view, real understanding of the audience, and exceptional detail. This core is short on purpose — depth loads on demand from references/. Read the one playbook that owns the request rather than everything.
Do these before your first design edit in a conversation:
init command first.references/cmd-<command>.md. A new surface or a replacement visual world → the new-work flow in references/cmd-craft.md. Non-optional: the reference defines the flow, and skipping it skips steps the user expects.node {SKILL_PATH}/scripts/palette.mjs for a brand seed color with mood and composition guidance, then build the palette (bg, surface, ink, accent, muted) around it in OKLCH. Committed brand colors always win — identity preservation beats a fresh seed.DESIGN.md. Never split the difference into polish on a look the user asked to be rid of.DESIGN.md does not make a content set greenfield. A coherent identity already in the code is authority — document it instead of inventing a replacement.The mode names what success looks like for the visitor on this surface, chosen from the requested surface rather than from what the product sells. A tool's landing page is still Persuade; a fashion house's documentation is still Read; a docs index is Read, not Persuade. One workspace can hold all four.
The new-work flow in references/cmd-craft.md turns the mode into the questions worth asking and the freedom the surface has earned.
You must have confirmed design context before doing design work — and you cannot infer it by reading the code. Code says what was built, not who it is for or how it should feel. Required at minimum: who the audience is and in what context, what jobs they are trying to get done, and how the interface should feel.
Gathering order:
CLAUDE.md or AGENTS.md) → proceed.PRODUCT.md (fast). Read PRODUCT.md from the project root, plus DESIGN.md when present; .impeccable.md is the accepted legacy single-file equivalent. Beyond audience and jobs, PRODUCT.md carries positioning (what this sits alongside and how it differs), evidence on hand (the proof, content, and assets that actually exist), and brand commitments (what may never change). If it holds the required context, proceed.init (required). If neither source has context, run the init command now, before anything else (reference: cmd-init). Do not skip it, and do not substitute inference from the codebase.When work settles durable strategy for one page, write it to .impeccable/surfaces/<page-slug>.md with the Write tool, and read that file back before you touch the page again. Keep it small: scope and visitor mode; audience, job, action, proof or content, constraints; the chosen direction and its memorable moment; what is still open. New visual work also keeps its direction contract here (cmd-craft §5). Never copy global product truth or DESIGN.md tokens into it, and never copy the brief into the page: it is development-only and never ships. The point is that a later session continues this page's argument instead of inventing a new one.
A project set up under an older version carries answers this one no longer reads: a PRODUCT.md with a register: field (the brand/product split the four modes replaced), a DESIGN.md older than the pages it claims to describe, a surface brief for a page that no longer exists. Say so once, in one line, then continue with the work the user actually asked for. Repairing that drift is a conversation (init or document), not a side effect of a design task.
The user invokes these from the viewer toolbar. When a command is invoked, follow its reference document.
PRODUCT.md (or update a legacy .impeccable.md), recommend next steps. It never writes or offers DESIGN.md — document records that. teach is a deprecated alias — treat a teach invocation exactly as init. Reference: cmd-initDESIGN.md at the project root from the built pages, capturing the visual system that actually shipped so future sessions stay on-brand. Reference: cmd-documentcommand:X in <user-actions>): load that command's reference and follow it. The chat text, if any, is the target.teach → init alias), treat it as an invocation; everything after it is the target.layout, "rewrite this error message" → clarify, "the colors feel flat" → colorize), load that reference and proceed as if invoked. If two fit, ask once which.Missing PRODUCT.md routes new work through init first. A narrow refinement of existing code proceeds on the incumbent implementation and offers init afterwards rather than blocking on it.
When the user invokes a command:
{{ask_instruction}} with: STOP and ask the user using a normal message{{config_file}} with the actual instructions filename: CLAUDE.md for Claude Code, AGENTS.md for Codex/Kimi{{model}} with the active assistant's name{{available_commands}} with the list of 22 commands abovereferences/*.md files. Both live in the pneuma-webcraft skill — consult them directly; no separate impeccable skill needs to be invoked. references/interaction-design.md carries the forms, focus, and loading-pattern depth that the command references assume.© pandazki, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 27 other files (scripts, references) in modes/webcraft/skill of pandazki/pneuma-skills.
Open the folder on GitHubat commit 0023d3c
Pneuma Webcraft 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 |
|---|---|---|---|---|---|---|
| Pneuma Webcraft this skillpandazki/pneuma-skills | 161 | — | ~7.5k | Automated safety check: Notes | MIT | |
| UI StylingOhh-889/skyroc | 795 | 13 repos | ~2.5k | Automated safety check: Pass | MIT | |
| Local Testinglobehub/lobe-ui | 2.2k | — | ~2.1k | Automated safety check: Pass | MIT | |
| Frontend Design Routercode-yeongyu/oh-my-openagent | 70k | — | ~5.3k | Automated safety check: Pass | Custom licence | |
| Refero Designreferodesign/refero_skill | 299 | — | ~5.3k | Automated safety check: Pass | MIT | |
| Muiblencorp/claude-code-kit | 106 | 2 repos | ~2.4k | Automated safety check: Pass | MIT |
Ohh-889/skyroc
Create beautiful, accessible user interfaces with shadcn/ui components (built on Radix UI + Tailwind), Tailwind CSS utility-first styling, and canvas-based visual designs.
lobehub/lobe-ui
Local browser verification for the lobe-ui component library and documentation site.
code-yeongyu/oh-my-openagent
Routes frontend and UI work through design reference rulesets, with a design-system gate plus layout and print guidance, before any UI code is written.
referodesign/refero_skill
Primary/default skill for UI design, product design, web design, landing pages, dashboards, product screens, redesigns, visual polish, frontend/CSS styling, design systems, components, responsive…
blencorp/claude-code-kit
Material-UI v7 component library patterns including sx prop styling, theme integration, responsive design, and MUI-specific hooks.
skydashnet/material-design-3-ui-skill
Guides designing, reviewing or implementing interfaces that follow Google's Material Design 3 system: semantic tokens, component states, adaptive layout and accessibility.
pandazki/pneuma-skills
Explain something by writing it on a board. An agent skill from pandazki/pneuma-skills.
pandazki/pneuma-skills
AI-orchestrated video production on @pneuma-craft. An agent skill from pandazki/pneuma-skills.
pandazki/pneuma-skills
Pneuma Lucid Mode workspace guidelines. An agent skill from pandazki/pneuma-skills.
pandazki/pneuma-skills
Pneuma Plotwise workspace guidelines. An agent skill from pandazki/pneuma-skills.
pandazki/pneuma-skills
Pneuma Sprite Mode workspace guidelines. An agent skill from pandazki/pneuma-skills.
pandazki/pneuma-skills
A goal-driven Chinese long-form writing partner. An agent skill from pandazki/pneuma-skills.
Categories
Pneuma WebCraft Mode workspace guidelines with Impeccable.style design intelligence. Pneuma Webcraft is an agent skill from pandazki/pneuma-skills.style design intelligence.
Pneuma Webcraft fits situations like: development task: building pages; responsive design; performance optimization; design system extraction.
Run `npx skills add pandazki/pneuma-skills --skill pneuma-webcraft -a claude-code`. Or copy the skill folder (modes/webcraft/skill in pandazki/pneuma-skills) into .claude/skills/pneuma-webcraft in your project. Claude Code loads it when a task matches its description.
Run `npx skills add pandazki/pneuma-skills --skill pneuma-webcraft -a codex`. Or copy the skill folder (modes/webcraft/skill in pandazki/pneuma-skills) into .agents/skills/pneuma-webcraft 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 pandazki/pneuma-skills --skill pneuma-webcraft -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pneuma-webcraft, .gemini/skills/pneuma-webcraft, .github/skills/pneuma-webcraft and .opencode/skills/pneuma-webcraft in your project.
Going by SKILL.md and its folder, Pneuma Webcraft needs the command-line tools its instructions call (curl and node) and credentials named OPENROUTER_API_KEY. Our summary lists: A credential in OPENROUTER_API_KEY.
SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Pneuma Webcraft is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 7.5k tokens (SKILL.md is roughly 30k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 64k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Pneuma Webcraft: UI Styling (Ohh-889/skyroc, 795 stars), Local Testing (lobehub/lobe-ui, 2.2k stars), Frontend Design Router (code-yeongyu/oh-my-openagent, 70k stars) and Refero Design (referodesign/refero_skill, 299 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
pandazki (a GitHub user) maintains it in pandazki/pneuma-skills, which has 161 GitHub stars. The repository holds 30 skills in this directory. The repository was last updated on October 9, 2026.
Source: pandazki/pneuma-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.