Agent-almanac enhance-glyph
install
source · Clone the upstream repo
git clone https://github.com/pjt222/agent-almanac
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/pjt222/agent-almanac "$T" && mkdir -p ~/.claude/skills && cp -r "$T/i18n/zh-CN/skills/enhance-glyph" ~/.claude/skills/pjt222-agent-almanac-enhance-glyph-76c2b4 && rm -rf "$T"
manifest:
i18n/zh-CN/skills/enhance-glyph/SKILL.mdsource content
增强符号
改善
viz/ 可视化层中现有的象形符号 — 审计其当前渲染效果、诊断视觉问题、应用针对性修改、重新渲染并进行修改前后对比。适用于技能、代理和团队符号。
适用场景
- 符号在小尺寸下渲染不佳(细节丢失、形状融合)
- 符号的视觉隐喻不清晰或与其代表的实体不匹配
- 符号存在比例问题(过大、过小、偏心)
- 霓虹发光效果过强或不足
- 符号在某个调色板中效果好但在其他调色板中表现差
- 添加新调色板或更改渲染流水线后的批量改善
输入
- 必需:实体类型 —
、skill
或agentteam - 必需:需要增强的符号的实体 ID(例如
、commit-changes
、mystic
)tending - 必需:需要解决的具体问题(可读性、比例、发光、调色板兼容性)
- 可选:展示期望质量水平的参考符号
- 可选:要优化的目标调色板(默认:所有调色板)
流程
步骤 1:审计 — 评估当前状态
检查当前符号并识别具体问题。
- 根据实体类型定位符号函数:
- 技能:
(19 个按领域分组的文件),映射在viz/R/primitives*.R
中viz/R/glyphs.R - 代理:
,映射在viz/R/agent_primitives.R
中viz/R/agent_glyphs.R - 团队:
,映射在viz/R/team_primitives.R
中viz/R/team_glyphs.R
- 技能:
- 阅读符号函数以理解其结构:
- 使用了多少个图层?
- 调用了哪些基元?
- 缩放因子和定位参数是什么?
- 查看渲染输出:
- 技能:
viz/public/icons/cyberpunk/<domain>/<skillId>.webp - 代理:
viz/public/icons/cyberpunk/agents/<agentId>.webp - 团队:
viz/public/icons/cyberpunk/teams/<teamId>.webp - 如果可用,检查 2-3 个其他调色板的跨调色板渲染效果
- 在图标尺寸(图中约 48px)和面板尺寸(详情面板中约 160px)下查看
- 技能:
- 按照质量维度对符号评分:
Glyph Quality Dimensions: +----------------+------+-----------------------------------------------+ | Dimension | 1-5 | Assessment Criteria | +----------------+------+-----------------------------------------------+ | Readability | | Recognizable at 48px? Clear at 160px? | | Proportions | | Well-centered? Good use of the 100x100 canvas?| | Metaphor | | Does the shape clearly represent the entity? | | Glow balance | | Glow enhances without overwhelming? | | Palette compat | | Looks good across cyberpunk + viridis palettes?| | Complexity | | Appropriate layer count (not too busy/sparse)? | +----------------+------+-----------------------------------------------+
- 找出得分最低的 1-2 个维度 — 这些是增强目标
预期结果: 对符号问题的明确诊断以及需要改善的维度。审计应具体化:"比例:符号仅使用了画布的 40%",而不是"看起来不好"。
失败时: 如果符号函数缺失或实体不在其
*_glyphs.R 映射中,该符号可能尚未创建 — 请改用 create-glyph。
步骤 2:诊断 — 根因分析
确定已识别问题的成因。
- 对于可读性问题:
- 过多细节在小尺寸下融合?
- 符号元素之间对比度不足?
- 线条太细(s=1.0 时
< 1.5)?size - 元素之间距离太近?
- 对于比例问题:
- 缩放因子
过小或过大?s - 中心偏离 (50, 50)?
- 元素超出安全区域(10-90 范围)?
- 缩放因子
- 对于发光问题:
- 符号笔画宽度与
的交互:ggfx::with_outer_glow()- 细线条:发光使其模糊
- 粗填充:发光产生过度光晕
- 多个重叠元素:复合发光产生热点
- 符号笔画宽度与
- 对于调色板兼容性问题:
- 符号使用了硬编码颜色而非
/col
参数?bright - 低对比度调色板(cividis, mako)使符号不可见?
- 符号依赖某些调色板无法提供的颜色变化?
- 符号使用了硬编码颜色而非
- 记录每个问题的具体根因
预期结果: 直接指向代码修改的根因。"符号太小" -> "缩放因子为 0.6,应为 0.8。""发光过强" -> "三个重叠的填充多边形各自产生发光。"
失败时: 如果通过代码检查根因不明显,使用不同参数单独渲染符号以隔离问题。使用
render_glyph() 对单个符号进行测试。
步骤 3:修改 — 应用针对性修复
编辑符号函数以解决诊断出的问题。
- 打开包含符号函数的文件
- 根据诊断结果应用修改:
- 缩放/比例:调整
乘数或元素偏移量s - 可读性:简化复杂元素、增加笔画宽度、添加间距
- 发光平衡:减少重叠的填充区域,在填充产生光晕的地方使用轮廓线
- 调色板兼容性:确保所有颜色均来自
/col
参数,添加 alpha 增加层次感bright
- 缩放/比例:调整
- 遵循符号函数契约:
glyph_name <- function(cx, cy, s, col, bright) { # cx, cy = center (50, 50) # s = scale (1.0 = ~70% of canvas) # col = domain color, bright = brightened variant # Returns: list() of ggplot2 layers } - 保持函数签名不变 — 不要更改参数
- 保持修改最小化:修复诊断出的问题,不要重新设计整个符号
预期结果: 修改后的符号函数解决了步骤 1-2 中识别的具体问题。修改是针对性且最小化的 — 增强,而非重新设计。
失败时: 如果修改导致其他维度变差(例如修复比例破坏了可读性),请还原并尝试不同的方法。如果符号需要完全重新设计,请改用
create-glyph。
步骤 4:重新渲染 — 生成更新后的图标
渲染修改后的符号并验证修复效果。
-
根据实体类型重新渲染:
技能:
cd /mnt/d/dev/p/agent-almanac/viz Rscript build-icons.R --only <domain> --no-cache代理:
cd /mnt/d/dev/p/agent-almanac/viz Rscript build-agent-icons.R --only <agent-id> --no-cache团队:
cd /mnt/d/dev/p/agent-almanac/viz Rscript build-team-icons.R --only <team-id> --no-cache -
验证每个调色板的输出文件存在于预期路径
-
检查文件大小 — 图标应为 2-15 KB(WebP):
- 低于 2 KB:符号可能过于简单或渲染失败
- 超过 15 KB:符号可能过于复杂(图层过多)
预期结果: 为所有调色板生成了新的图标文件。文件大小在预期范围内。
失败时: 如果构建脚本报错,检查 R 控制台输出中的具体错误。常见原因:符号函数中缺少右括号、引用了未定义的基元,或函数返回了非列表类型。如果渲染成功但输出为空白,符号图层可能超出了画布边界。
步骤 5:对比 — 修改前后验证
验证增强是否改善了目标维度。
- 对比新旧渲染效果:
- 在图标(48px)和面板(160px)尺寸下查看 cyberpunk 调色板版本
- 至少查看另外 2 个调色板(一个浅色如 turbo,一个深色如 mako)
- 重新对步骤 1 的质量维度评分:
- 目标维度应提高至少 1 分
- 非目标维度不应下降
- 如果符号在力导向图中使用,在那里测试:
- 启动 HTTP 服务器:从
运行viz/python3 -m http.server 8080 - 加载图形并找到实体节点
- 验证图标在默认缩放和放大时正确渲染
- 启动 HTTP 服务器:从
- 记录所做的更改和实现的改善
预期结果: 目标维度有可衡量的改善,其他维度无退化。符号在两种尺寸和各调色板下均效果更佳。
失败时: 如果改善微乎其微或发生退化,还原更改并重新考虑诊断。有时原始符号的局限性源于隐喻本身而非实现方式 — 在这种情况下,可能需要更改隐喻本身(升级为
create-glyph)。
验证清单
- 对当前符号进行了审计并给出具体问题诊断
- 为每个问题识别了根因
- 修改针对诊断出的问题(未过度编辑)
- 保持了符号函数契约(签名不变)
- 为所有调色板重新渲染了图标
- 修改前后对比显示目标维度有所改善
- 非目标维度无退化
- 文件大小在预期范围内(2-15 KB WebP)
- 符号在力导向图上下文中正确渲染(如适用)
常见陷阱
- 过度增强:修复一个问题后又调整其他所有内容。应专注于诊断出的问题
- 破坏契约:更改函数签名会破坏渲染流水线。5 参数契约是不可变的
- 针对特定调色板优化:为 cyberpunk 做到完美但在 viridis 下表现差。始终检查 3 个以上调色板
- 忽略小尺寸渲染:160px 下美观但 48px 下变成色块的图标是失败的增强
- 忘记重新渲染:编辑函数但未运行构建命令意味着更改不可见
- 构建命令错误:技能使用
,代理使用build-icons.R
,团队使用build-agent-icons.Rbuild-team-icons.R
相关技能
- create-glyph — 从头创建新符号(当增强不够时使用)
- audit-icon-pipeline — 检测流水线中哪些符号需要增强
- render-icon-pipeline — 增强后运行完整的渲染流水线
- ornament-style-mono — 适用于符号组合的视觉设计原则
- chrysopoeia — 价值提取方法论与符号优化相似(放大精华、去除杂质)