用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/diegosouzapw/awesome-omni-skill --skill vector-art命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Token-efficient tracking for AI orchestration. CLI-first for status updates (~50 tokens), agent fallback for complex ops (~1KB). Use when: updating task status, querying blockers, creating progress files, validating phases.
AshAi extension guidelines for integrating AI capabilities with Ash Framework. Use when implementing vectorization/embeddings, exposing Ash actions as LLM tools, creating prompt-backed actions, or setting up MCP servers. Covers semantic search, LangChain integration, and structured outputs.
This skill should be used when solving hard questions, complex architectural problems, or debugging issues that benefit from GPT-5 Pro or GPT-5.1 thinking models with large file context. Use when standard Claude analysis needs deeper reasoning or extended context windows.
基于 SOC 职业分类
正在显示 SKILL.md
| name | vector-art |
| description | Vector art assets (characters, objects, scenes) sources for SVG/Canvas and how to animate them |
| metadata | {"sources":["https://claude.ai/chat/f9705e79-8541-43c1-9911-46ad6dec7ae4","https://gemini.google.com/app/1daa0bd084d4765d","https://chatgpt.com/c/6994274c-f1ec-83ab-9a44-019d0f5db2d3"]} |
Follow the Puppet Master architecture: assign each asset category a dedicated source, then composite and animate in-browser.
| Role | Source | Access | Notes |
|---|---|---|---|
| Actors | DiceBear (Open Peeps) | HTTP API | Deterministic characters with poses/moods |
| Scenes | unDraw | Static slug index | Background illustrations for contexts |
| Objects | Iconify | HTTP API + search | Searchable props, consistent per set |
| Clipart | Openverse / OpenClipart | HTTP API | General SVG search, CC0/open license |
| Logos | Simple Icons | CDN URL | Brand assets, no auth |
| Props | Lucide / Phosphor | NPM import | Small objects, animate as React components |
| Animation | GSAP or anime.js | JS library | Translate/morph entire SVG groups |
Deterministic avatar generation. Same seed = same character across scenes.
Base: https://api.dicebear.com/9.x/
SVG: GET https://api.dicebear.com/9.x/{style}/svg?seed={name}&{params}
Key styles for storytelling:
open-peeps — hand-drawn humans, supports pose + face params (RECOMMENDED)avataaars — cartoon facesmicah — minimal illustrated charactersOpen Peeps params:
face= scared | happy | sad | rage | explaining | ...
body= standing | sitting | ...
seed= any string — use character name for consistency
Example:
https://api.dicebear.com/9.x/open-peeps/svg?seed=Alice&face=happy&body=standing
Docs: https://www.dicebear.com/how-to-use/http-api/
REST API, CORS-open, no auth. 200k+ SVGs across 100+ sets.
Search: GET https://api.iconify.design/search?query={term}&limit=10
Fetch SVG: GET https://api.iconify.design/{prefix}/{name}.svg
List sets: GET https://api.iconify.design/collections
Search response fields: icons[] — each is "{prefix}:{name}"
Illustration-grade sets (use for visual consistency):
flat-color-icons — colorful objectsnoto-emoji — expressive emoji-styleopenmoji — open emojitwemoji — Twitter emoji styleExample flow:
const res = await fetch("https://api.iconify.design/search?query=tree&limit=5");
const { icons } = await res.json(); // e.g. ["flat-color-icons:tree"]
const [prefix, name] = icons[0].split(":");
const svg = await fetch(`https://api.iconify.design/${prefix}/${name}.svg`).then((r) => r.text());
High-quality MIT-licensed scene illustrations (office, team, error states, etc.).
No live search API. Use a static slug index:
undraw-js or react-undraw-illustrationsURL pattern (once you have a slug):
https://undraw.co/illustrations/{slug} ← browse
SVG direct: not publicly CDN'd — use NPM package or embed via react-undraw
Agent strategy: maintain a curated keyword→slug map for your narrative's scene types
(e.g., "office" → "working_late", "error" → "fixing_bugs").
Searches across open-licensed media including SVGs from Wikimedia, Flickr, etc.
Search: GET https://api.openverse.org/v1/images/?q={query}&extension=svg
Response fields: url, thumbnail, license, license_url, creator, source
Notes:
license field before usecc0, pdm, by, or by-sa licensesAll CC0. Native SVG. Style is inconsistent but good for prototyping.
Search: GET https://openclipart.org/search/?query={term}&format=json
Docs: https://openclipart.org/developers
Large archive; must handle attribution carefully.
Search: GET https://commons.wikimedia.org/w/api.php
?action=query
&generator=search
&gsrsearch=filetype:svg {query}
&gsrlimit=10
&prop=imageinfo
&iiprop=url|extmetadata
&format=json
Key response fields: imageinfo[].url, extmetadata.LicenseShortName, extmetadata.Artist
Always store attribution. Prefer CC0/PD results.
Fetch: https://cdn.simpleicons.org/{slug}.svg
Slugs match lowercase brand names (e.g., github, openai, typescript).
No auth, no search needed.
Large library (~5M icons), full search API.
Search: GET https://api.thenounproject.com/v2/icon?query={term}
Auth: OAuth 1.0
Docs: https://api.thenounproject.com/documentation.html
Free tier: public domain icons only. Returns attribution string — must display it.
Before using any fetched SVG in rendering, freeze it locally with a manifest entry:
{
"id": "unique-local-id",
"source": "iconify",
"source_url": "https://api.iconify.design/flat-color-icons/tree.svg",
"license": "MIT",
"creator": "",
"sha256": "...",
"tags": ["tree", "nature", "plant"]
}
GSAP (industry standard, free for most uses):
gsap.to("#character", { x: 400, duration: 2, ease: "power2.inOut" });
gsap.timeline().to("#actor", { y: -20, duration: 0.3 }).to("#actor", { y: 0, duration: 0.3 });
anime.js (lighter alternative, fully open source):
anime({ targets: "#character", translateX: 400, duration: 2000, easing: "easeInOutQuad" });
Key principle: Animate entire SVG groups (<g> elements) via translate/scale rather than
trying to manipulate internal paths — external SVGs often have unpredictable internal structure.
Need a CHARACTER? → DiceBear open-peeps (seed=name, set face/body params)
Need a SCENE/BG? → unDraw (keyword→slug map) or Openverse (filter license=cc0)
Need an OBJECT/PROP?→ Iconify search → pick flat-color-icons set for consistency
Need a BRAND LOGO? → Simple Icons CDN
Need ANYTHING ELSE? → Openverse search → verify license → freeze to manifest
Animating? → GSAP timeline; target <g> wrappers; translate whole elements
Style consistency? → Commit to ONE Iconify set for all non-character assets
<img src=".svg"> if you need to animate internal parts