create-glyph
정보
이 스킬은 ggplot2와 프리미티브 라이브러리를 사용하여 시각화 레이어의 엔티티 아이콘을 위한 R 기반 픽토그램 글리프를 생성합니다. 컨셉과 색상 전략 수립부터 등록, 파이프라인 렌더링, 네온 글로우 출력 검증에 이르는 전체 워크플로를 처리합니다. 새로운 엔티티에 시각적 아이콘을 추가하거나, 기존 글리프를 교체하거나, 새 도메인을 위한 글리프를 일괄 생성할 때 사용하세요.
빠른 설치
Claude Code
추천npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/create-glyphClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
造符
於 viz/ 視層造 R 基象圖符為技、代、團標。各符為純 ggplot2 函,於 100x100 畫繪可識形、以霓暈效渲為透 WebP。
用
- 新技、代、團已加須視標
- 存符須換或重設
- 為新技域批造符
- 試視喻為項概
入
- 必:項型 —
skill、agent、team - 必:項 ID(如
create-glyph、mystic、r-package-review)與域(技時) - 必:視概——符當繪何
- 可:考符以評複
- 可:自定
--glow-sigma值(默:4)
行
一:概——設視喻
識所符項並擇視喻。
- 讀項源以曉核概:
- 技:
skills/<id>/SKILL.md - 代:
agents/<id>.md - 團:
teams/<id>.md
- 技:
- 擇喻型:
- 實物:實驗用瓶、安用盾
- 抽符:併用箭、迭用螺
- 合:合 2-3 簡形(如文+筆)
- 參存符以校複:
Complexity Tiers:
+----------+--------+-------------------------------------------+
| Tier | Layers | Examples |
+----------+--------+-------------------------------------------+
| Simple | 2 | glyph_flame, glyph_heartbeat |
| Moderate | 3-5 | glyph_document, glyph_experiment_flask |
| Complex | 6+ | glyph_ship_wheel, glyph_bridge_cpp |
+----------+--------+-------------------------------------------+
- 定函名:
glyph_<descriptive_name>(snake_case、獨)
得: 形之明心圖含 2-6 計層。
敗: 概過抽→退至相關實物。參同域存符為靈。
二:組——書符函
書生 ggplot2 層之 R 函。
-
函簽(不變約):
glyph_<name> <- function(cx, cy, s, col, bright) { # cx, cy = center coordinates (50, 50 on 100x100 canvas) # s = scale factor (1.0 = fill ~70% of canvas) # col = domain color hex (e.g., "#ff88dd" for design) # bright = brightened variant of col (auto-computed by renderer) # Returns: list() of ggplot2 layers } -
施比因
* s於諸寸為一致:r <- 20 * s # radius hw <- 15 * s # half-width lw <- .lw(s) # line width (default base 2.5) lw_thin <- .lw(s, 1.2) # thinner line width -
以可用原建幾:
幾 用 ggplot2::geom_polygon(data, .aes(x, y), ...)填形 ggplot2::geom_path(data, .aes(x, y), ...)開線/曲 ggplot2::geom_segment(data, .aes(x, xend, y, yend), ...)線段、箭 ggplot2::geom_rect(data, .aes(xmin, xmax, ymin, ymax), ...)矩 ggforce::geom_circle(data, .aes(x0, y0, r), ...)圓 -
施色策:
Alpha Guide: +----------------------+------------+--------------------------+ | Purpose | Alpha | Example | +----------------------+------------+--------------------------+ | Large fill (body) | 0.08-0.15 | hex_with_alpha(col, 0.1) | | Medium fill (accent) | 0.15-0.25 | hex_with_alpha(col, 0.2) | | Small fill (detail) | 0.25-0.35 | hex_with_alpha(bright, 0.3) | | Outline stroke | 1.0 | color = bright | | Secondary stroke | 1.0 | color = col | | No fill | --- | fill = NA | +----------------------+------------+--------------------------+ -
返平
list()層(渲器迭而以暈包各) -
按項型置函於合原檔:
- 技:19 原檔按域組
- 代:
viz/R/agent_primitives.R - 團:
viz/R/team_primitives.R
得: 返 2-6 ggplot2 層之可用 R 函。
敗: ggforce::geom_circle 誤→保 ggforce 裝。坐偏→記畫 100x100、(0,0) 於左下。交互試:
source("viz/R/utils.R"); source("viz/R/primitives.R")
layers <- glyph_<name>(50, 50, 1.0, "#ff88dd", "#ffa8f0")
p <- ggplot2::ggplot() + ggplot2::coord_fixed(xlim=c(0,100), ylim=c(0,100)) +
ggplot2::theme_void()
for (l in layers) p <- p + l
print(p)
三:註——映項至符
於合符映檔加項符映。
技: 開 viz/R/glyphs.R、於域塊內按字母序加 "skill-id" = "glyph_function_name",
代: 開 viz/R/agent_glyphs.R、於 AGENT_GLYPHS 加同樣項
團: 開 viz/R/team_glyphs.R、於 TEAM_GLYPHS 加同樣項
驗目列無重 ID。
得: 合 *_GLYPHS 列含新映。
敗: 構報「No glyph mapped」→復察項 ID 合備與庫。
四:備——加標項
於合備檔註標。
技: viz/data/icon-manifest.json
{
"skillId": "skill-id",
"domain": "domain-name",
"prompt": "<domain basePrompt>, <descriptors>, dark background, vector art",
"seed": <next_seed>,
"path": "public/icons/cyberpunk/<domain>/<skill-id>.webp",
"status": "pending"
}
代: viz/data/agent-icon-manifest.json(用 agentId 與 public/icons/cyberpunk/agents/<agent-id>.webp)
團: viz/data/team-icon-manifest.json(用 teamId 與 public/icons/cyberpunk/teams/<team-id>.webp)
得: 有效 JSON 含新項置於同型兄弟。
敗: 驗 JSON 文法。常誤:末陣元後遺逗、缺引。
五:渲——生標
行標流渲新符。恆用 build.sh 為入——理平台辨與 R 二擇。見 render-icon-pipeline 全旗考與流架。
# From project root — renders all palettes, standard + HD, skips existing icons
bash viz/build.sh --only <domain> --skip-existing # skills
bash viz/build.sh --type agent --only <id> --skip-existing # agents
bash viz/build.sh --type team --only <id> --skip-existing # teams
# Dry run first:
bash viz/build.sh --only <domain> --dry-run
build.sh 行全流(palette → data → manifest → render → terminal glyphs)。
出位:
- 技:
viz/public/icons/<palette>/<domain>/<skill-id>.webp - 代:
viz/public/icons/<palette>/agents/<agent-id>.webp - 團:
viz/public/icons/<palette>/teams/<team-id>.webp
得: 誌顯 OK: <entity> (seed=XXXXX, XX.XKB) 而 WebP 檔存。
敗:
"No glyph mapped"— 步三映缺或錯"Unknown domain"— 域不於palettes.R之get_palette_colors()- R 包誤 — 先行
install.packages(c("ggplot2", "ggforce", "ggfx", "ragg", "magick")) - 渲崩→交互試符函
六:驗——視察
察渲出合質準。
-
驗檔存且寸合:
ls -la viz/public/icons/cyberpunk/<type-path>/<entity-id>.webp # Expected: 15-80 KB typical range -
以像視開 WebP 察:
- 形於全寸(1024x1024)清讀
- 霓暈存而不蓋
- 背透(無黑白矩)
- 畫邊無裁
-
於小寸察(力圖中標渲於~40-160px):
- 形仍可識
- 細不化噪
- 暈不蓋形
得: 清、可識之象圖含透背之均霓暈。
敗:
- 暈強→以
--glow-sigma 2重渲 - 暈弱→以
--glow-sigma 8重渲 - 小寸不讀→簡符、粗筆、增
.lw(s, base) - 邊裁→減形寸或移中
七:迭——若需則精
調而重渲。
-
常調:
- 粗筆:增
.lw(s, base)— 試base = 3.0或3.5 - 更顯填:alpha 自 0.10 增至 0.15-0.20
- 形比:調
s之乘(如20 * s->24 * s) - 加/減細層:總層保於 2-6
- 粗筆:增
-
改後重渲:刪存標、用合構令重渲
-
滿時驗備態顯
"done"
得: 終標通步六諸察。
敗: 3+ 迭後符仍不讀→考全異視喻(返步一)。
考
域與項色盤
58 域色(技)定於 viz/R/palettes.R(唯真源)。代與團色亦理於 palettes.R。cyberpunk 色盤於 get_cyberpunk_colors()。
source("viz/R/palettes.R")
get_palette_colors("cyberpunk")$domains[["design"]]
get_palette_colors("cyberpunk")$agents[["mystic"]]
get_palette_colors("cyberpunk")$teams[["tending"]]
加新域時於 palettes.R 三處加:PALETTE_DOMAIN_ORDER(字母)、get_cyberpunk_colors() 域列、行 bash viz/build.sh 重生。
符函錄
- 技:
viz/R/primitives.R至viz/R/primitives_19.R(按域組) - 代:
viz/R/agent_primitives.R - 團:
viz/R/team_primitives.R
助函
| 函 | 簽 | 目 |
|---|---|---|
.lw(s, base) | (scale, base=2.5) | 比覺線寬 |
.aes(...) | ggplot2::aes 別 | 簡美映 |
hex_with_alpha(hex, alpha) | (string, 0-1) | 加 alpha 於 hex 色 |
brighten_hex(hex, factor) | (string, factor=1.3) | 亮 hex 色 |
dim_hex(hex, factor) | (string, factor=0.4) | 暗 hex 色 |
驗
- 符函循
glyph_<name>(cx, cy, s, col, bright) -> list()簽 - 諸寸用
* s比因 - 色策填用
col、廓用bright、透用hex_with_alpha() - 函置於合項型與域之原檔
- 符映項加於合
*_glyphs.R - 備項含正項 ID、路、
"status": "pending" - 構令無誤行(先試行)
- 渲 WebP 存於期路
- 檔寸於期範(15-80 KB)
- 標於 1024px 與~40px 顯寸皆清讀
- 透背(符後無實矩)
- 成渲後備態更為
"done"
忌
- 忘
* s:硬碼素值比變時破 - 畫原惑:(0,0) 於左下、非左上
- 雙暈:渲器已施
ggfx::with_outer_glow()、勿於符函內加暈 - 層過多:過 8 層渲慢且視噪
- ID 不合:符映、備、庫之項 ID 須皆合
- JSON 末逗:備為嚴 JSON、末陣元後無逗
- 域色缺:域不於
get_cyberpunk_colors()→渲誤 - 誤原檔:技於
primitives*.R、代於agent_primitives.R、團於team_primitives.R
參
- enhance-glyph — 精存符視質
- audit-icon-pipeline — 察缺符標
- render-icon-pipeline — 全端對端行渲流
- ornament-style-mono — 補 AI 基像生
- ornament-style-color — 施於符飾填決之色理
- create-skill — 觸符造之父流
GitHub 저장소
연관 스킬
content-collections
메타이 스킬은 콘텐츠 콜렉션(Content Collections)을 위한 프로덕션 검증된 설정을 제공합니다. 콘텐츠 콜렉션은 Markdown/MDX 파일을 Zod 검증이 포함된 타입 안전한 데이터 콜렉션으로 변환해주는 TypeScript 최우선 도구입니다. 블로그, 문서 사이트 또는 콘텐츠 중심의 Vite + React 애플리케이션을 구축할 때 타입 안전성과 자동 콘텐츠 검증을 보장하기 위해 사용하세요. Vite 플러그인 구성과 MDX 컴파일부터 배포 최적화 및 스키마 검증에 이르기까지 모든 것을 다룹니다.
polymarket
메타이 스킬은 개발자들이 Polymarket 예측 시장 플랫폼을 활용한 애플리케이션을 구축할 수 있도록 지원하며, 거래 및 시장 데이터를 위한 API 통합 기능을 포함합니다. 또한 WebSocket을 통한 실시간 데이터 스트리밍을 제공하여 실시간 거래와 시장 활동을 모니터링할 수 있습니다. 이를 통해 거래 전략을 구현하거나 실시간 시장 업데이트를 처리하는 도구를 생성하는 데 활용할 수 있습니다.
creating-opencode-plugins
메타이 스킬은 개발자들이 명령어, 파일, LSP 작업 등 25개 이상의 이벤트 유형에 연결되는 OpenCode 플러그인을 만들 수 있도록 돕습니다. JavaScript/TypeScript 모듈을 위한 플러그인 구조, 이벤트 API 명세, 구현 패턴을 제공합니다. OpenCode AI 어시스턴트의 라이프사이클을 사용자 정의 이벤트 기반 로직으로 가로채거나, 모니터링하거나, 확장해야 할 때 사용하세요.
sglang
메타SGLang은 RadixAttention 프리픽스 캐싱을 활용하여 JSON, 정규식, 에이전트 워크플로우를 위한 고속 구조화 생성에 특화된 고성능 LLM 서빙 프레임워크입니다. 특히 반복되는 프리픽스가 있는 작업에서 상당히 빠른 추론 속도를 제공하여 복잡한 구조화 출력 및 다중 턴 대화에 이상적입니다. 제약 디코딩이 필요하거나 광범위한 프리픽스 공유가 있는 애플리케이션을 구축할 때는 vLLM과 같은 대안보다 SGLang을 선택하십시오.
