技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
render-icon-pipeline【数据与研究】Run the viz pipeline to render icons from existing glyphs. Entry point for the viz subproject covering palette generation, data building, manifest creation, and icon rendering for skills, agents, and teams. Always use build.sh as the pipeline entry point — never call Rscript directly.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Run the viz pipeline end-to-end to render icons from existing glyphs. Covers palette generation, data building, manifest creation, and icon rendering for skills, agents, and teams.
Canonical entry point: bash viz/build.sh [flags] from the project root, or bash build.sh [flags] from viz/. This script handles platform detection (WSL, Docker, native), R binary selection, and step ordering. Never call Rscript directly for build scripts — that path is only for MCP server configuration.
skill, agent, team, or all (default: all)all (default: all)git, design)full, incremental, or dry-run (default: incremental)Ensure the environment is ready for rendering.
viz/build.sh exists:
ls -la viz/build.sh
node --version
viz/config.yml exists (platform-specific R path profiles):
ls viz/config.yml
build.sh handles R binary resolution automatically — you do not need to verify R paths manually. On WSL it uses /usr/local/bin/Rscript (WSL-native R), on Docker it uses the container R, and on native Linux/macOS it uses Rscript from PATH.
Expected: build.sh, Node.js, and config.yml are present.
On failure: If config.yml is missing, the pipeline falls back to system defaults. If Node.js is missing, install via nvm.
build.sh executes 5 steps in order:
palette-colors.json + colors-generated.jsskills.jsonicon-manifest.json, agent-icon-manifest.json, team-icon-manifest.jsonicons/ and icons-hd/ WebP filescli/lib/glyph-data.jsonFull pipeline (all types, all palettes, standard + HD):
bash viz/build.sh
Incremental (skip icons that already exist on disk):
bash viz/build.sh --skip-existing
Single domain (skills only):
bash viz/build.sh --only design
Single entity type:
bash viz/build.sh --type skill
bash viz/build.sh --type agent
bash viz/build.sh --type team
Dry run (preview without rendering):
bash viz/build.sh --dry-run
Standard size only (skip HD):
bash viz/build.sh --no-hd
All flags after build.sh are passed through to build-all-icons.R.
Expected: Icons rendered to viz/public/icons/<palette>/ and viz/public/icons-hd/<palette>/.
On failure:
.Rprofile bypasses renv/activate.R and sets .libPaths() directly. Ensure you run from viz/ (build.sh does this automatically via cd "$(dirname "$0")")Rscript -e "install.packages(c('ggplot2', 'ggforce', 'ggfx', 'ragg', 'magick', 'future', 'furrr', 'digest'))" from the R environment that build.sh selectscreate-glyph skill before renderingConfirm the render completed successfully.
find viz/public/icons/cyberpunk -name "*.webp" | wc -l
find viz/public/icons-hd/cyberpunk -name "*.webp" | wc -l
audit-icon-pipeline skill for a comprehensive checkExpected: File counts match manifest entry counts. File sizes in expected range.
On failure: If counts don't match, some glyphs may have errored during rendering. Check the build log for [ERROR] lines.
All flags are passed through build.sh to build-all-icons.R:
| Flag | Default | Description |
|---|---|---|
--type <types> | all | Comma-separated: skill, agent, team |
--palette <name> | all | Single palette or all (9 palettes) |
--only <filter> | none | Domain (skills) or entity ID (agents/teams) |
--skip-existing | off | Skip icons with existing WebP files |
--dry-run | off | List what would be generated |
--size <n> | 512 | Output dimension in pixels |
--glow-sigma <n> | 4 | Glow blur radius |
--workers <n> | auto | Parallel workers (detectCores()-1) |
--no-cache | off | Ignore content-hash cache |
--hd | on | Enable HD variants (1024px) |
--no-hd | off | Skip HD variants |
--strict | off | Exit on first sub-script failure |
For reference only — do NOT run these steps manually:
cd viz/
# 1. Platform detection: sets R_CONFIG_ACTIVE (wsl, docker, or unset)
# 2. R binary selection: WSL → /usr/local/bin/Rscript, Docker → same, native → Rscript
# 3. $RSCRIPT generate-palette-colors.R
# 4. node build-data.js
# 5. node build-icon-manifest.js --type all
# 6. $RSCRIPT build-all-icons.R "$@" (flags passed through)
# 7. node build-terminal-glyphs.js
The pipeline can also run in Docker:
cd viz
docker compose up --build
This runs the full pipeline in an isolated Linux environment and serves the result on port 8080.
bash viz/build.sh (not bare Rscript)Rscript build-icons.R or Rscript generate-palette-colors.R manually. Always use bash build.sh [flags]. Direct Rscript calls bypass platform detection and may use the wrong R binary (Windows R via ~/bin/Rscript wrapper instead of WSL-native R at /usr/local/bin/Rscript). Note: the Windows R path in CLAUDE.md and guides is for MCP server configuration only, not for build scripts.build.sh CDs to its own directory automatically (cd "$(dirname "$0")"), so you can call it from anywhere: bash viz/build.sh from project root works correctly.build.sh runs Steps 1-5 in order, so manifests are always regenerated before rendering. If you only need manifests without rendering, use node viz/build-data.js && node viz/build-icon-manifest.js (the Node steps don't need R)..Rprofile workaround requires running from viz/ — build.sh handles this. Using --vanilla flag or running R from another directory will skip it.multisession via config.yml.