executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
lov-gen-logo根据项目用途制作版本化 Logo 草稿及应用图标,并按确认范围接入。支持明确输入与结果回读。Use to create a logo and application icon.
Independent GitHub snapshot · Automated classification · Original documentation governs
name: lov-gen-logo description: 根据项目用途制作版本化 Logo 草稿及应用图标,并按确认范围接入。支持明确输入与结果回读。Use to create a logo and application icon. license: MIT compatibility: 支持 Agent Skills 的宿主;Python 3.8+ 与 PyYAML 用于 Profile 和校验。业务工具要求见工作流。 depends_on:
迭代生成 Logo,保留每一版原稿,并将“品牌标志”和“应用图标”作为不同产物处理。
v{N}-{描述}。--publish 时提交。/lov-gen-logo [concept] [--use vN] [--publish vN]
concept:设计概念或迭代反馈。--use vN:选用第 N 版并更新正式资产,不提交。--publish vN:选用第 N 版、完成平台验证并提交。为每版保留以下文件;按项目实际用途省略不需要的派生项:
assets/logo-drafts/
├── vN-desc-raw.png # 生成器原图,永不覆盖
├── vN-desc-mark.png # 紧边界透明标志
├── vN-desc-mark.svg # 矢量标志
├── vN-desc-app-icon-mark.png # 1024 方形透明布局稿,用于测量主体占比
├── vN-desc-app-icon.png # 1024 方形、不透明、满铺底色的应用图标
└── vN-desc-preview.png # 小尺寸与明暗背景预览
区分以下语义:
| 产物 | 背景 | 留白 | 用途 |
|---|---|---|---|
mark.png/svg | 透明 | 紧边界或少量光学留白 | 网站、文档、组合品牌 |
app-icon-mark.png | 透明 | 主体长边通常占画布 62%–74% | 测量和合成中间稿 |
app-icon.png | 不透明且铺满画布 | 不在外缘留透明或白色边框 | iOS、桌面应用图标 |
| Android adaptive icon | 前景与背景分层 | 遵循平台安全区 | Android 启动器 |
除非设计明确要求白色底板,否则不要把白底视为 Logo 的组成部分。iOS 圆角由系统裁切,不要预先烘焙圆角或透明四角。
package.json、README.md 和现有品牌资产。app.json、Info.plist、asset catalog、PWA manifest、Electron/Tauri 图标配置。assets/logo-drafts/ 的最大版本号,使用下一版本。assets/ 或 public/。mkdir -p ./assets/logo-drafts
find ./assets/logo-drafts -maxdepth 1 -type f -name 'v[0-9]*-*' \
-print | sort -V | tail -1
首次生成时读取:
package.json 的名称、描述、关键词和依赖;名称只作标识。README.md 的核心功能、目标用户和差异化价值。按项目类型选择方向:
| 类型 | 识别特征 | 推荐方向 |
|---|---|---|
| Web 框架/Starter | next、react、vue、angular | 几何抽象、模块、网格 |
| CLI 工具 | commander、yargs、bin | 光标、尖锐线条、技术感 |
| 桌面/移动应用 | electron、tauri、expo、原生工程 | 单一强轮廓、应用图标构图 |
| 库/SDK | 无 UI 依赖、纯逻辑 | 极简符号、数学感 |
| AI/ML | openai、langchain、模型依赖 | 连接、流动、智能但避免通用星芒 |
迭代版本应先总结上一版的明确问题,例如“主体只占画布 46%,在主屏幕上显小”,再把改进目标写进 Prompt。不要只写“更大”或“更好看”。
${IMAGE_GENERATOR_COMMAND:-image-generator} \
"PROMPT" -o ./assets/logo-drafts/v{N}-{desc}-raw.png -q high
Prompt 需要明确:
优先读取 Profile 的 brand.colors.primary 或项目已有品牌色;二者都缺少时,先询问本次视觉方向需要的颜色,不在 Skill 内设定某个品牌专属默认色。
保留 raw.png,只对副本去背景。优先从四角连通区域移除背景,避免使用全局 -transparent white 误删标志内部的白色区域。
cd ./assets/logo-drafts
magick v{N}-{desc}-raw.png -alpha on \
-bordercolor white -border 1 -fuzz 5% -fill none \
-draw 'alpha 0,0 floodfill' -shave 1x1 \
-trim +repage PNG32:v{N}-{desc}-mark.png
magick v{N}-{desc}-mark.png -channel A -threshold 50% +channel temp.png
vtracer --input temp.png --output v{N}-{desc}-mark.svg \
--mode spline --filter_speckle 8 --color_precision 8 \
--corner_threshold 120 --segment_length 6 --path_precision 5
npx svgo v{N}-{desc}-mark.svg -o v{N}-{desc}-mark.svg --multipass
rm -f temp.png
背景不是白色时,将 -bordercolor white 替换为实际角落背景色。提取后放大检查轮廓,不接受白色毛边、半透明光晕、断裂细节或棋盘格伪透明。
从透明 mark.png 确定性合成应用图标,不直接把带透明留白的 Logo 当作 App Icon。
$SKILL_DIR/scripts/build_app_icon.sh \
--mark ./assets/logo-drafts/v{N}-{desc}-mark.png \
--output ./assets/logo-drafts/v{N}-{desc}-app-icon.png \
--layout-output ./assets/logo-drafts/v{N}-{desc}-app-icon-mark.png \
--background '#0C150F' \
--occupancy 0.68
以可见主体长边占画布 68% 为起点,根据视觉重量在 62%–74% 内调整:
60% 通常会在主屏幕上显小;高于 78% 通常会显拥挤。为渐变背景传入 --background-image PATH。保持背景满铺到四角,输出 PNG 必须为 1024×1024、RGB、无 alpha。
Android 项目应另外生成 adaptive icon 的前景和背景层,并在圆形、方形、圆角方形遮罩下预览;不要直接复用 iOS 合成图。
生成预览并同时检查:
执行基础检查:
magick identify -format '%f %wx%h %[channels]\n' \
v{N}-{desc}-mark.png v{N}-{desc}-app-icon.png
magick v{N}-{desc}-app-icon.png \
-format 'corners: %[pixel:p{0,0}] %[pixel:p{1023,0}] %[pixel:p{0,1023}] %[pixel:p{1023,1023}]\n' \
info:
使用图像查看工具展示 mark.png、app-icon.png 和 preview.png,再反馈版本、主体占比、背景语义和改进点。
✓ v{N}-{desc} 生成完成
主体长边占画布:{ratio}%
产物:透明标志 / 不透明应用图标 / 场景预览
继续迭代可直接描述具体问题;确认后执行 /lov-gen-logo --publish v{N}
执行 --use 或 --publish 时:
assets/logo.* 和 public/logo.*。--publish 仅提交本次 Logo 相关文件。git status --short
git add <本次确认的正式资产> <对应草稿版本>
git commit -m "docs: update logo to v{N}-{desc}"
存在 src-tauri/icons/ 时,从紧边界透明标志生成模板图标:
magick ./assets/logo-drafts/v{N}-{desc}-mark.png -trim +repage \
-resize 38x38 -gravity center -background transparent -extent 56x44 \
-colorspace gray -fill white -colorize 100% \
src-tauri/icons/tray-icon.png
在 macOS 明暗菜单栏分别检查,不把彩色应用图标直接缩小作为菜单栏模板图标。
python3 与图像生成后端magick)vtracersvgoscripts/build_app_icon.sh:按可见主体占比构建 1024×1024 的透明布局稿和不透明应用图标,并校验尺寸与 alpha。自然语言请求即可触发;无需旧 slash 路径、参数插值或指定助手。明确解析当前请求中的 项目、目标文件、选项与输出位置;用当前宿主实际提供的文件、搜索、CLI 和浏览器能力。 项目依赖版本与外部 API 在执行时核实,不能假设示例是现行配置。随包脚本从 Skill 根解析, 业务文件从目标项目根解析。先读当前状态,保护已有未提交内容与其他任务的暂存区。 分析、预览请求保持只读;修改、提交、推送、部署和发布各依当前请求的明确范围执行。 不绕过保护、自动发送消息、强制结束用户进程或抢前台。失败保留可诊断原始错误。
执行前读取 能力组合,按明确制品交接相邻能力。
运行前读取本包 skill.yaml 与 Profile 合同。优先级为当前请求、
项目上下文、本 Skill records、共享 preferences、brand/user Profile、安全默认值。
只读取声明字段;没有专用运行时的宿主可使用 scripts/profile_store.py 读取共享 Profile。
配置缺失只问影响结果的一个问题。用户明确要求长期保存的值通过该脚本原子写入,
报告实际路径;不保存推断、凭据或其他任务的资料。