本文へ移動
cccskills
無料GitHub で公開

svg-creation

Create handcrafted static SVG graphics and performant SVG animations — icons, illustrations, loaders, path-draw effects, morphing shapes, and motion paths. Load when the user asks to create SVG, draw an SVG icon, animate an SVG, make an SVG loader, path animation, shape morph, animated logo, line drawing effect, or improve trashy AI-generated SVG. Also triggers on "SVG animation", "SMIL", "stroke-dashoffset", "vector illustration", or "self-contained animated SVG".

インストール方法を見る

含まれるファイル(7)

  • SKILL.md8.7 KB
  • references/ai-svg-prompts.md3.0 KB
  • references/animation-craft.md5.3 KB
  • references/examples.md8.4 KB
  • references/github-safe-smil.md7.2 KB
  • references/static-craft.md4.2 KB
  • references/svg-tooling.md6.9 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

SVG Creation

You are an SVG craft specialist. You produce clean, resolution-independent vector graphics and animations that render crisply at any size — not bloated AI path soup or broken CSS-on-<img> hacks.

Hard Rules

Never emit <script>, onload/onclick handlers, <foreignObject>, or external href/xlink:href resources — security and portability break. Always set viewBox; avoid hardcoded width/height unless the container requires explicit sizing. Always choose animation technology from delivery context (Step 2) before writing markup. Never guess stroke-dasharray lengths — compute path length or use documented SMIL values; wrong lengths cause stutter or gaps. Shape morphing requires identical path command count and types on both shapes — pad with invisible points if needed. Always include role="img" plus <title> (and <desc> when meaning is non-obvious). Always add prefers-reduced-motion fallback when using CSS animations. If input is a bitmap (PNG/JPG), read references/svg-tooling.md and vectorize (vtracer/Potrace) before hand-editing — do not trace by hand in chat. For icon sets inside a full product design build, also invoke design-system — its svg-craft.md owns token-aligned icon families.


Workflow

Step 1 — Classify the deliverable

TypeSignals
Static icon≤48px intent, UI chrome, single metaphor
IllustrationMarketing/feature art, multiple shapes, gradients
Line-draw animationSignature reveal, checkmark, diagram build
Loop loaderSpinner, pulse, breathing glow
Morph / menuHamburger→X, state transitions
Motion pathElement travels along a curve
Gradient / waveColor-shift fills, liquid wave backgrounds
Bitmap sourceUser uploaded raster; needs tracing

Step 2 — Pick delivery context (mandatory)

ContextAnimation techWhy
Inline in HTML/ReactCSS @keyframes or JS getTotalLength()Full DOM access
<img src="file.svg"> or CSS backgroundSMIL only (<animate>, <animateTransform>)CSS/JS cannot reach isolated SVG
GitHub README / sandboxed embedSMIL only, no scriptsSame isolation as <img> — read github-safe-smil.md
React app with Motion/GSAPLibrary + inline SVGmotion-animation or gsap-animation

Step 3 — Static craft

Read references/static-craft.md. Apply grid, stroke, keyline, currentColor, path economy, and SVGO cleanup.

Step 4 — Animation craft (if animated)

Read references/animation-craft.md. Pick one recipe: line-draw, spinner, checkmark draw, morph, gradient shift, breathing glow, liquid wave, motion path. Use fill="freeze" on SMIL one-shots; stroke-linecap="round" on draws.

Step 5 — Generate

Output one self-contained <svg>...</svg> block (or one file per asset). Put reusable defs in <defs>. Minimize path count; prefer primitives + arcs over noisy cubics.

AI-assisted generation: read references/ai-svg-prompts.md (all prompt dimensions) and enforce its checklist before accepting model output.

Step 6 — Quality gate

Before shipping, verify:

  • Valid XML; xmlns on root <svg>
  • viewBox fills subject; no huge empty margins
  • Crisp at 1× and 2× on intended size
  • Animation loops smoothly (no dash offset pop)
  • Reduced-motion path documented or implemented
  • No scripts, no external refs, file ≤ reasonable size (icons ≤800 bytes target)

Step 7 — Save and log

Write to assets/svg/<name>.svg or path the user specifies.

Append to docs/skill-outputs/SKILL-OUTPUTS.md:

| YYYY-MM-DD HH:MM | svg-creation | assets/svg/<name>.svg | <static|animated> <summary> |

Tell the user: "Saved to [path]. Logged in docs/skill-outputs/SKILL-OUTPUTS.md."


Gotchas

  • CSS inside <style> in an SVG loaded via <img> does not run — use SMIL for those contexts.
  • SMIL animate on d requires matching command structure between keyframe values — mismatched counts morph into garbage.
  • transform-origin defaults to (0,0) in SVG CSS — set transform-origin: center or use animateTransform with explicit center.
  • Animating d, points, or filters triggers repaints — prefer transform and opacity; liquid wave is for heroes only.
  • AI models output random stroke-dasharray: 300 — always replace with real length or SMIL-tuned values.
  • Gradients and filters need unique ids when multiple SVGs share a page — prefix ids with asset slug.

Example

<examples> <example> <input>Create an animated loading spinner SVG for a GitHub README</input> <output> Delivery: GitHub README → SMIL only.
<svg viewBox="0 0 50 50" role="img" xmlns="http://www.w3.org/2000/svg">
  <title>Loading</title>
  <circle cx="25" cy="25" r="20" fill="none" stroke="currentColor"
    stroke-width="3" stroke-linecap="round" stroke-dasharray="90 150">
    <animateTransform attributeName="transform" type="rotate"
      from="0 25 25" to="360 25 25" dur="1s" repeatCount="indefinite"/>
    <animate attributeName="stroke-dashoffset" values="0;-280"
      dur="1.5s" repeatCount="indefinite"/>
  </circle>
</svg>

Saved to assets/svg/loader.svg. Self-contained; no CSS/JS required. </output> </example> </examples>

See references/examples.md for static icon, line-draw, and morph examples.


Common Rationalizations

ExcuseReality
"CSS animation is easier"Easier but dead inside <img> and GitHub — match tech to delivery context first.
"Approximate dash length is fine"Wrong length = visible jump at loop or incomplete draw — measure or tune.
"More paths = more detail"Noisy paths scale badly and bloat files — simplify geometry, use gradients sparingly.
"Skip reduced motion"Accessibility requirement; static fallback takes one media query.
"I'll add <script> for interactivity"Scripts break sandboxed embeds and fail security review — use SMIL/CSS or inline React.

Verification

  • Delivery context chosen and animation tech matches it
  • Output is self-contained (no external images/fonts/scripts)
  • Quality gate (Step 6) passed
  • File saved and SKILL-OUTPUTS.md updated when writing to disk

Red Flags

  • <script> or event handlers inside generated SVG
  • CSS animation shipped for <img> / README context
  • Guessed stroke-dasharray on line-draw animation
  • Morph paths with mismatched command counts
  • Bitmap traced by hand instead of vtracer when source is raster

Reference Files

  • references/static-craft.md — grid, stroke, paths, SVGO, static quality (read Step 3)
  • references/animation-craft.md — SMIL/CSS recipes, easing, performance (read Step 4)
  • references/ai-svg-prompts.md — ORA-style prompt dimensions + review gate (read Step 5)
  • references/svg-tooling.md — vtracer, SVGO, vivus, lengthy-svg, rough, svg-terminal (read for bitmap or tooling questions)
  • references/github-safe-smil.md — README/profile SMIL recipes, tiered reduced motion (read for GitHub/sandbox context)
  • references/examples.md — worked examples + Ai-Generated 20 catalog (read when output shape is unclear)

Prune Log

Last pruned: 2026-07-05

  • Learn-from 8 additional repos: github-safe-smil, vivus/lengthy-svg/SVGO/rough depth in L3
  • Polish pass: 20-example catalog, equalizer/neon/DNA/frame SMIL, vivus scenario, SVGO animation-safe, awesome-svg map

Impact Report

SVG created: [name] | Type: [static|animated] | Context: [inline|img|readme]
File: [path] | Paths: [N] | Animated elements: [N]
Quality gate: [pass/fail] | Logged: [yes/no]

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Put on the adversarial hat and systematically attack any document, plan, strategy, or idea to expose its weakest points before commitment. Structured devil's advocate with red team rigour — not pessimism, but evidence-based critique across three phases: diagnostic (are claims accurate?), creative (is the problem artificially constrained?), challenge (are solutions robust?). Load when the user asks to stress test a document, red team this plan, poke holes in this, devil's advocate this, challenge my assumptions, or when product-soul, brainstorming, prd-writing, or inversion calls for adversarial review. Also triggers on "what am I missing", "what could kill this", "find the flaws", or "critique this rigorously".

日本語の概要は準備中です。原文の説明を表示しています。

dvy1987/agent-loom32026年8月8日 更新

Design execution structure for decomposed processes: single agent or multi-agent topology. Load when user says "design an agent for this", "what agent structure do I need", "architect this", "should this be multi-agent", "what's the right execution structure", "agent topology", "how should agents be organized". Takes process-decomposer output as primary input. If triggered directly without a process entry, calls process-decomposer first.

日本語の概要は準備中です。原文の説明を表示しています。

dvy1987/agent-loom32026年8月8日 更新

Internal skill. Called by setup-evaluation after a PASS. Launches agents from a validated architecture spec using Claude Code / Ampcode native parallelism (Task tool). Does NOT generate scripts or SDK code — it outputs structured spawn instructions that the platform executes natively. Never invoked directly by the user. Never launches without a setup-evaluation PASS.

日本語の概要は準備中です。原文の説明を表示しています。

dvy1987/agent-loom32026年8月8日 更新

Sync library skills from an agent-loom upstream repo into this project's .agents/skills while preserving project-local and forked skills. Load when the user asks to sync agent-loom, update skills from upstream, rsync from ../agent-loom, pull new library skills, upgrade installed skills, or refresh the .agents folder without losing custom project skills. Also triggers on "sync skills from agent-loom", "update my agent skills", "pull skill library updates", or "merge agent-loom improvements into this repo".

日本語の概要は準備中です。原文の説明を表示しています。

dvy1987/agent-loom32026年8月8日 更新

Instrument a shipped product's AI agents with tracing and observability so you can see what they did, why outputs happened, and what each run cost. Plain-language primer plus free-tier-first backend selection (Langfuse, Phoenix, LangSmith, Braintrust) and OpenTelemetry/OpenInference instrumentation. Load when the user asks to add observability, add tracing, instrument my agents, see what my agent is doing in production, set up Langfuse or Phoenix or LangSmith, debug why my agent gave a bad answer, or track LLM cost per request. Also fires when agent-system-architecture or setup-evaluation requires an observability plan for an agent-chain product. NOT for tracing the coding agent itself — that is run-trace. Precondition for runtime-learning-loop.

日本語の概要は準備中です。原文の説明を表示しています。

dvy1987/agent-loom32026年8月8日 更新

Run a structured retrospective after development-phase runs of your product's agents — interview the owner in plain language about what went well and poorly, draft ranked improvement hypotheses, then design and run small n=1/n=2 experiments with pre-declared success criteria, guardrails, stop conditions, and a cost/ROI kill-switch. Load when the user says how did that run go, retro this run, the agent output was bad, what should we improve, draft hypotheses, run a small experiment, or after repeated dev runs of an agentic system produce uneven quality. Priority: output quality over performance over cost, each with diminishing-returns stops. NOT a product A/B test (experimentation), NOT coding-agent harness repair (harness-evolution), NOT production-scale learning (runtime-learning-loop).

日本語の概要は準備中です。原文の説明を表示しています。

dvy1987/agent-loom32026年8月8日 更新

dvy1987 のスキルをすべて見る

このスキルの問題を報告する