.agents/skills/fireworks-tech-graph/scripts/README.md
辅助脚本集合,用于提高 SVG 图表生成的稳定性和效率。
SVG 验证脚本,检查 SVG 语法并报告详细错误。
用法:
./validate-svg.sh <svg-file>
检查项目:
</svg>示例:
./validate-svg.sh /path/to/diagram.svg
SVG 图表生成脚本,提供自动验证和 PNG 导出。
用法:
./generate-diagram.sh [OPTIONS]
选项:
-t, --type TYPE - 图表类型(见脚本帮助)-s, --style STYLE - 风格编号(1-7,默认:1)-o, --output PATH - 输出路径(默认:当前目录)-w, --width WIDTH - PNG 宽度(像素,默认:1920)--no-validate - 跳过验证-h, --help - 显示帮助示例:
# 生成架构图(Style 1)
./generate-diagram.sh -t architecture -s 1 -o ./output/arch.svg
# 生成流程图(Style 2,2400px 宽)
./generate-diagram.sh -t flowchart -s 2 -w 2400
注意: SVG 内容需要先准备好;这个脚本只负责验证与导出。
基于风格配置和 JSON 数据生成 SVG。当前版本不再只是简单塞入 nodes/arrows,
而是会执行 style guide 中的部分可计算规则,例如:
style - 风格编号(1-7)containers - 泳道 / 分组容器containers[].header_prefix / containers[].header_text - 工程编号式分区标题containers[].side_label - 左侧 layer labelnodes[].kind - 语义组件类型,例如 double_rect、cylinder、document、terminal、circle_clusterarrows[].flow - 语义箭头类型,例如 control、write、read、datasource_port / target_port - 指定端口锚点route_points / corridor_x / corridor_y - 控制复杂图的走线质量style_overrides - 对现有 style 做局部覆盖window_controls / meta_* - 顶部终端 chromeblueprint_title_block - 工程蓝图右下角 title block用法:
python3 ./generate-from-template.py architecture ./output/arch.svg '{"style":1,"title":"My Diagram","containers":[],"nodes":[],"arrows":[]}'
示例:
python3 ./generate-from-template.py memory ./output/mem0.svg '{
"style": 1,
"title": "Mem0 Memory Architecture",
"containers": [
{"x":30,"y":90,"width":900,"height":90,"label":"Input Layer","header_prefix":"01"}
],
"nodes": [
{"id":"manager","kind":"double_rect","x":360,"y":220,"width":300,"height":72,"label":"Memory Manager"},
{"id":"vector","kind":"cylinder","x":90,"y":360,"width":140,"height":110,"label":"Vector Store"}
],
"arrows": [
{"source":"manager","target":"vector","flow":"write","dashed":true}
]
}'
批量测试脚本,测试 7 种风格的回归样例图。
用法:
./test-all-styles.sh
功能:
fixtures/*.json 回归样例test-output/ 目录输出:
示例:
./test-all-styles.sh
所有脚本需要以下工具:
rsvg-convert - SVG 转 PNG
brew install librsvg
grep, sed, awk - 文本处理(macOS 自带)
fireworks-tech-graph/
├── SKILL.md # Skill 主文档
├── references/ # 风格参考文件
│ ├── style-1-flat-icon.md
│ ├── style-2-dark-terminal.md
│ └── ...
├── fixtures/ # 回归测试样例(JSON)
│ ├── mem0-style1.json
│ ├── tool-call-style2.json
│ └── ...
├── scripts/ # 辅助脚本(本目录)
│ ├── README.md # 本文档
│ ├── validate-svg.sh # SVG 验证
│ ├── generate-diagram.sh # SVG 验证与 PNG 导出
│ ├── generate-from-template.py # 模板化生成 SVG
│ └── test-all-styles.sh # 批量测试
└── test-output/ # 测试输出目录(自动创建)
cd ~/.claude/skills/fireworks-tech-graph/scripts
./validate-svg.sh /path/to/your-diagram.svg
./generate-diagram.sh -t architecture -s 1 -o ./output/arch.svg
cd ~/.claude/skills/fireworks-tech-graph/scripts
./test-all-styles.sh
测试脚本会自动:
../fixtures/*.jsontemplate_type + style 调用 generate-from-template.pyvalidate-svg.sh../test-output/查看测试输出:
ls -lh ../test-output/
解决方案:
brew install librsvg
解决方案:
chmod +x *.sh
解决方案:
编辑 validate-svg.sh,在现有检查项后添加新的检查逻辑:
# Check N: Your new check
echo -n "Checking something... "
# Your validation logic here
if [ condition ]; then
echo -e "${GREEN}✓ Pass${NC}"
else
echo -e "${RED}✗ Fail${NC}"
fi
编辑 generate-diagram.sh,在 --type 参数处理中添加新类型。
MIT License - 与 fireworks-tech-graph skill 相同