Spotkit — a Claude Code skill that turns a feature description into minimal, abstract SVG product illustrations that all belong to one design system.
# Add to your Claude Code skills
git clone https://github.com/Devesh-Shirsath/spotkitspotkit is an open-source devops skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Devesh-Shirsath. Spotkit — a Claude Code skill that turns a feature description into minimal, abstract SVG product illustrations that all belong to one design system. It has 50 GitHub stars.
spotkit's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/Devesh-Shirsath/spotkit" and add it to your Claude Code skills directory (see the Installation section above). spotkit ships a SKILL.md manifest, so compatible agents can discover and load it automatically.
spotkit is primarily written in HTML. It is open-source under Devesh-Shirsath on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other DevOps skills you can browse and compare side by side. Open the DevOps category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh spotkit against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
Unlocks once the catalog security scan passes (runs nightly).
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
Turn a feature description into a quiet, abstract illustration that looks like a product interface reduced to its most recognizable primitives.
The governing principle:
Abstract the interface, not the idea.
Someone should look at the result and think "I understand what this feature does" — not "that's a screenshot of the product."
Default to SVG. This style is pure geometry — hairline borders, exact radii, repeated placeholder bars, one stroke weight. Writing it directly gives exact, repeatable output and makes every illustration in a set provably identical in treatment. Image models fail at precisely these things, and fail hardest at consistency across a set.
Use references/image-prompt.md only when the user explicitly wants a prompt for
an external image model.
references/metaphor.mdreferences/archetypes.md. Choose by meaning, then by how many elements the
idea needs, then by what its neighbour already uses. Twelve are defined; the
composition choices generate many more.
Then choose the float separately. A full-width header card is one of eight
treatments and is capped at two per twelve — it is the easiest choice and it
will take over a set if you let it. Ask what the subject is: a hub gets
raised, a column gets a chip at its head, a surface gets no float at all.references/primitives.md, tokens from
references/theme.md.references/checklist.md. Simplify what it flags.If the concept is genuinely ambiguous, offer 2–3 conceptual directions before drawing — different metaphors, never different styling.
The skill separates the method from the look.
Fixed — these hold for any illustration in this genre:
Yours — set once per project, then inherited by the whole family:
elevation model · edge treatment · overhang · corner language · stroke weight · icon style · palette · accent · density
A coherent combination of those is a style spec. One ships today — soft
shadow, fade-out edge, overhanging float, generous radii, hairline strokes,
monoline icons, warm grayscale, optional single accent, sparse density — and it
is what assets/ and examples/ implement. Additional directions are additive;
nothing in the method changes when one is added.
--il-line.
Hierarchy comes from fills, opacity and elevation — never line weight.
Separators are filled hairlines, not strokes.build.py has guards
(fits, rail, padded) that raise rather than ship these — use them.y=112, or it dissolves mid-content.archetypes.md.regular, filled, on a 256 grid. Set fill, never
stroke. Bold reads heavy against 1-unit structural strokes.<img> or <object>. An SVG
loaded that way shows fallback colors forever and will not follow dark mode.
Inline the markup to theme it — and suffix every id when you do, or masks
and filters cross-apply between illustrations.Read the one you need; don't load them all.
| File | Read it when |
|---|---|
references/metaphor.md |
Translating a feature into a concept. Catalog of ~24 common SaaS features. |
references/archetypes.md |
Choosing a layout. Twelve compositions and the four choices that generate them. |
references/primitives.md |
Writing the SVG. Verified geometry + copy-paste library. |
references/theme.md |
Colors, tokens, light/dark, accent rules, deriving your own palette. |
references/scaling.md |
Any canvas that is not a ~160px square. |
references/screenshots.md |
The user supplied a screenshot of the real UI. |
references/sets.md |
Producing or extending a family. |
references/checklist.md |
Before delivering. Always. |
references/image-prompt.md |
The user explicitly wants an image-model prompt. |
The minimum useful answer is a short concept note plus the SVG:
Feature interpretation — one line. Metaphor — one line. Primitives — the 2–5 used. The SVG.
Don't pad it with explanation the user didn't ask for.
assets/illustration.css — token definitions, light and dark. Drop into a site.examples/ — twelve exemplars, one per layout.
Open examples/gallery.html for the contact sheet in both themes.icons.py — embedded Phosphor geometry (regular is what the system uses;
bold is kept for anyone who wants a heavier variant).build.py — the generator that produced them. Every constant in one place;
change one and the whole family moves together. Worth copying for any set
larger than about eight.You say:
Create an illustration for API version management.
You get a concept, a metaphor, and a production-ready SVG that looks like it belongs to everything else you've made.
These aren't marketing illustrations. They're abstractions of an interface — what a feature looks like if you keep its most recognisable parts and throw away the other 90%.
Abstract the interface, not the idea.
A good one makes someone think "I understand what this feature does." Never "that's a screenshot of the product."
git clone https://github.com/Devesh-Shirsath/spotkit.git \
~/.claude/skills/spotkit
Restart Claude Code and just ask. The skill picks itself up whenever you mention feature illustrations, spot illustrations, empty states, or an illustration set for a product.
No dependencies. Python 3 only, and only if you want to regenerate.
Open examples/gallery.html in a browser — twelve
illustrations, light and dark, from the same twelve files.
This style is pure geometry: hairline strokes, exact radii, repeated placeholder bars, one icon family. Diffusion models are weak at all of it, and weakest at the thing that matters most — twenty illustrations that look like one family.
Claude writes the SVG directly instead. The output is exact, themeable, editable, diffable, and identical in treatment across a whole set. A prompt-based fallback is included if you want it anyway.
your feature description
↓
what does it actually do?
↓
what relationship is it about? grouping · connecting · gating
↓ packaging · reviewing · sequencing
2–5 UI primitives that carry it
↓
a layout — chosen from the prompt, not from habit
↓
SVG, themed by CSS custom properties
↓
a quality checklist
Picked by meaning and by how many elements the idea needs — never by rotation.
| Layout | Reads as |
|---|---|
| Header + rows | many of one thing |
| Cascade | a group, receding |
| Tab bar | one option chosen from several |
| Toolbar | tools and the people using them |
| Corner chips | a thing with parts attached |
| Window | a real surface, more off-screen |
| Fanned | a set with one chosen |
| Notifications | events arriving |
| Constellation | systems converging |
| Matrix | who can do what |
| Timeline | sequence, newest first |
| Split | moving through stages |
They come from independent choices — where the floating element sits, what it is, how content is arranged, how the panel is framed — so the real space is much larger than twelve.
Monotony is the failure mode of this style. A set where every piece is "header card, then rows" reads as one image twelve times, however clean each one is. The skill budgets layout reuse, caps full-width headers at two per twelve, and checks each illustration against its neighbours.
Twelve CSS custom properties. One file serves light and dark — never ship two.
:root {
--il-canvas: #EDEAE6; --il-ghost: #EAE7E2; --il-panel: #F7F5F2;
--il-surface: #FFFFFF; --il-line: #B9B1A4; /* every stroke, width 0.5 */
--il-stroke: #35322D; --il-fill: #DCD6CE; --il-accent: #3E9077;
}
Change three values, rerun build.py, the whole set rethemes.
Inline the SVG to theme it. CSS custom properties don't cross into
<img src="…">or<object>— those show the fallback palette forever and never follow dark mode. If you must use<img>, use the pre-flattened files inexamples/flat/.
If several illustrations share a page, suffix every id in each
(fade-teams → fade-teams-1) or their masks and filters cross-apply.
Copy the contents of any file in examples/flat/light/
and paste onto a Figma canvas — you get editable vector layers. Use the flat
files, not the themed ones; Figma doesn't run CSS either, so a themed file pastes
as black shapes.
Figma discards SVG filters on import, so the drop shadow won't come across — re-apply it as a Figma effect on the one floating layer.
python3 build.py # rewrites examples/ and the gallery
python3 flatten.py # rewrites the flat exports and contact sheets
Every constant lives in the GEO dict at the top of build.py. Change one and
all twelve move together — which is the operation you'll want most, and the one
that's most error-prone by hand.
SKILL.md entry point and workflow
references/
metaphor.md feature → concept, ~24 worked SaaS examples
archetypes.md the twelve layouts and the choices behind them
primitives.md verified geometry + copy-paste SVG library
theme.md tokens, light/dark, accent rules
scaling.md 96px icon through 720px hero
screenshots.md abstracting a real product screenshot
sets.md producing and extending a family
checklist.md pre-delivery quality gate
image-prompt.md fallback path for image models
assets/illustration.css drop-in token definitions
examples/ twelve illustrations, flat exports, contact sheet
build.py · flatten.py generators — every constant in one place
icons.py embedded Phosphor geometry
Worth stating rather than having you discover:
Product and UX designers, frontend developers, SaaS founders, design system and docs teams — anyone who needs feature illustrations, empty-state graphics or a coherent illustration family for a whole product, and doesn't want to draw twenty of them by hand.
Spotkit was built by Devesh Shirsath, a product designer working on developer tools and API documentation.
Portfolio · LinkedIn · GitHub · Instagram
Icons are Phosphor (MIT), regular weight — filled
paths on a 256 grid, so fill them rather than stroking.
The shipped style was derived by measuring a real production illustration family, rebuilding it from first principles, and verifying by rendering and comparison. Aesthetic direction was informed by contemporary bento-grid layouts. Your own direction can differ on every visual dial — the method is what transfers.
MIT licensed. Contributions welcome, especially new layouts and new style presets.