Skill Catalog Generator
工业级 Skill 目录生成器,自动扫描、分类并生成可读的 Skill 文档。
使用方式
方式一:直接运行(推荐,开箱即用)
未指定目录时自动探测 WorkBuddy / Trae 的 skills 目录:
python scripts/generate_skill_catalog.py
方式二:设置定时任务(自动更新)
Windows(双击运行,建议管理员身份):
setup_daily_task.bat
Linux / macOS:
chmod +x setup_daily_task.sh
./setup_daily_task.sh
方式三:通过环境变量 / 参数自定义
# 自定义 skills 目录
export SKILLS_DIR=/path/to/skills
# 自定义输出文件
export CATALOG_OUTPUT=/path/to/output.md
python scripts/generate_skill_catalog.py
常用参数:
python scripts/generate_skill_catalog.py --skills-dir ./skills --output ./catalog.md
python scripts/generate_skill_catalog.py --format json # 仅 JSON
python scripts/generate_skill_catalog.py --config config.yaml # 自定义分类
python scripts/generate_skill_catalog.py --init-config # 生成可编辑配置副本
python scripts/generate_skill_catalog.py --no-log # 关闭文件日志
分类规则
Skill 根据 description 中的关键词自动分类(详见 config.yaml 或脚本内置 SKILL_CATEGORIES):
| 分类 | 关键词 |
|---|---|
| 文档处理 | doc, word, pdf, xlsx, excel, document, 文档, 表格, 幻灯片 |
| 内容创作 | write, content, novel, story, script, 创作, 写作, 文案, 小说, 脚本 |
| 设计生成 | design, canvas, art, visual, image, poster, frontend, ui, 设计, 画布, 视觉, 海报 |
| 数据分析 | data, analytics, analysis, chart, report, 数据, 分析, 图表, 报告, 统计 |
| 中文优化 | chinese, 中文, 文案, 润色, 校对, 排版, 格式 |
| 广告营销 | ad, marketing, creative, 广告, 营销, 素材, 竞品, 投放 |
| 开发工具 | code, dev, api, git, 开发, 代码, 前端, 编程 |
| 效率工具 | summarize, report, daily, 总结, 日报, 周报, 效率 |
| 教育学习 | education, school, score, 教育, 学校, 成绩, 学习 |
| Skill管理 | skill, create skill, skill管理, 创建skill |
| 其他工具 | (无匹配时兜底) |
计分与裁决:ASCII 关键词整词命中 +2、子串命中 +1;中文短语子串命中 +2;
同分时按 priority 取较小者(优先级更高)。
扩展开发
添加 / 修改分类
编辑 config.yaml(或脚本内置 SKILL_CATEGORIES 字典):
categories:
新分类:
keywords: [keyword1, keyword2]
description: 分类描述
priority: 11
python scripts/generate_skill_catalog.py --config config.yaml
错误处理
- 目录不存在: 提示用户并生成骨架目录(定时任务不报错)
- SKILL.md 解析失败: 记录错误并跳过,继续处理其他 skill
- 编码问题: 自动检测文件编码(UTF-8/GBK/Latin-1)
- YAML 配置不可用: 未安装 pyyaml 时自动回退内置分类并给出提示
性能优化
ThreadPoolExecutor并发解析多个SKILL.md- 正则表达式预编译、路径使用
pathlib高效遍历 - 文件日志滚动(RotatingFileHandler),避免日志无限增长
许可证
MIT License