본문으로 건너뛰기
cccskills
무료GitHub에 공개

diagram-design

Author an editorial HTML+SVG diagram with the Diagram Design kit - choose the visual type, read its reference, start from an example, and satisfy the safety and accessibility contract that diagram_write({kind:"html"}) enforces.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md5.5 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Diagram Design

The dsh-diagrams plugin vendors the Diagram Design kit: 71 example keys, 204 self-contained HTML+SVG examples, and 62 reference documents, from https://github.com/cathrynlavery/diagram-design (MIT, pinned by commit). This skill is how to use it well. Everything it names is on disk inside the plugin and is reachable through the diagram_kit tool - read it there rather than from memory, because the kit is the authority on its own conventions.

The one-sentence rule

A diagram is a document: one HTML file, one inline SVG, no shadows, no network, no script except the kit's motion controller. If a picture needs a library, a webfont URL or a shadow to work, it is not a diagram in this system.

The workflow, in order

  1. Catalog first — diagram_kit({action:"catalog"}) lists the 71 keys. The 44 marked with * have a written type reference; the rest are named variations of a documented family (bubble is scatter, marimekko is treemap) or importer demos.
  2. Read the shared rules once — diagram_kit({action:"reference", ref:"style-guide"}). It carries the colour tokens, the type scale and the density budget that every type assumes. Then, when the meaning is about behaviour rather than shape, ref:"semantic-patterns" - it maps a trigger ("fan-in with finite capacity", "two policy traces that must show the first divergence") onto the type that carries it.
  3. Read the type's own notes — ref:"<type>", e.g. ref:"sankey" serves references/type-sankey.md.
  4. Look at a finished one — {action:"example", id:"sankey"} (add variant:"animated" where the catalog lists it). Copying a working document and changing its content is the intended path, not cheating.
  5. Either insert it — {action:"insert", id:"sankey"} turns the example into a real diagram in this conversation in one call - or write your own with diagram_write({kind:"html", source}), starting from {action:"example", id:"template"} (and id:"template-motion" when it moves).

insert is a fork: the vendored file is never modified, and the stored copy is recorded as having come from the kit.

What diagram_write({kind:"html"}) will refuse

The check is a port of the kit's own self_check.py, run over every published example. Its findings come in two tiers, and the difference matters:

Refusals (the write does not validate; the panel will not frame it):

  • any remote reference: <link>, <img src>, <use href> to another host, a srcset, a CSS @import, a non-fragment url(), image-set(). The one exception is the kit's own Google Fonts <link>, recognised so the kit's examples pass - the plugin strips it when it serves the frame;
  • <base>, <embed>, <object>, <iframe>, applet, frame, srcdoc;
  • any on* attribute;
  • any script other than the kit's canonical motion controller, byte for byte. One <script data-diagram-controls> whose body hashes to the recorded value; anything else is refused with both hashes in the message.

Warnings (the diagram is valid; these are judgement calls, fix the ones that are right and say which you ignored):

  • no <svg>, or an SVG that is not accessible: it needs role="img", a first-child <title> and a <desc> with ids prefixed by the diagram's name, aria-labelledby="<prefix>-title <prefix>-desc", and non-empty text in both;
  • more than nine top-level marks — above that, the kit's own budget says it is probably two diagrams;
  • no --color-paper / --color-ink / --color-muted / --color-accent declarations, so the panel cannot adapt it to the dark theme;
  • no --font-sans / --font-serif / --font-mono in use, so it will not follow the reader's fonts;
  • motion markup without the canonical controller, or a controlled animation with no prefers-reduced-motion or print fallback.

Craft, from the kit's own philosophy

The highest-quality move is usually deletion. Every node is a distinct idea; two that always travel together are one node. Every connection carries information; if the layout already says it, the line is noise. Accent colour is editorial, not a flag — one or two focal marks per diagram, never five.

Target density is about 4/10, and nine top-level marks is the budget. A diagram is finished when nothing more can be removed, not when everything has been added.

Templates

idwhat it is
templatethe blank page: tokens, frame, heading, one accessible SVG
template-fullthe page with the editorial cards and footer under the picture
template-darkthe dark palette
template-terminalthe terminal/sketchy register
template-motionthe motion page, and the source of the ONE script allowed

Read one with {action:"example", id:"template"}; its bracketed placeholders ([diagram-slug], [Diagram title]) are what you replace first.

Where the files are

Inside the plugin, not in this skill's folder: lib/vendor/design/ — assets/ (the examples and templates), references/ (the 62 documents), catalog.json, and SKILL.md (the upstream selector table). diagram_kit is the supported way to read them; vendor/design/build.mjs --check proves the tree still matches the pinned upstream commit.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Drive ffmpeg through the media_run tool as an argv array - remux instead of re-encode, map streams explicitly, trim at keyframes, scale and crop, extract audio and frames, and build GIFs, contact sheets and concatenations. Covers the flags this pack injects, reading a failure from its exit code and last log lines, and the version-dependent spellings to hedge.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

vecnode/vn-code92026년 10월 19일 업데이트

Read a media file's real structure with ffprobe through media_run - the JSON invocation and how to read it, what every family of field means, how to count frames, sample without decoding everything, detect HDR and interlacing, and diagnose a missing duration, a stream with no frames or a container that lies. Covers when media_probe's own report is already enough.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

vecnode/vn-code92026년 10월 19일 업데이트

Use when the user wants to design, redesign, shape, critique, audit, polish, simplify, harden, animate, or otherwise improve a frontend interface: websites, landing pages, dashboards, product UI, components, forms, settings, onboarding, empty states, and native iOS or Android screens. Handles UX review, hierarchy, layout, typography, color, motion, UX copy, accessibility, responsive behavior, edge cases, and capturing or documenting design systems (DESIGN.md, tokens). Also for making bland UI bolder, loud UI quieter, or ambitious visual effects. Not for backend-only or non-UI tasks.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

vecnode/vn-code92026년 10월 19일 업데이트

Author Mermaid diagrams that parse the first time: choose the right diagram type for the question, write syntax the parser accepts, and keep the picture readable in a narrow panel. A bundled reference covers complex, large diagrams.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

vecnode/vn-code92026년 10월 19일 업데이트

Write openFrameworks prototypes into the lab — real C++ (ofApp.h, ofApp.cpp, main.cpp) that builds into an app with the projectGenerator and make. Use for native/desktop sketches, performance-sensitive work, OpenGL, audio input, sensors, anything that has to be an application rather than a page.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

vecnode/vn-code92026년 10월 19일 업데이트

Write p5.js prototypes into the lab — sketches that actually run in a browser, seed-reproducible, with controls generated from the sketch's own parameters. Use for generative art, flow fields, particle systems, noise, animation, anything sketched visually in the browser.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

vecnode/vn-code92026년 10월 19일 업데이트

vecnode의 스킬 모두 보기

이 스킬의 문제 신고