技能资产治理器(Skill Inventory)
以文件系统为事实源治理技能资产,取代易过期的手写清单。
本技能自包含:脚本位于 scripts/skill-inventory.py,纯 Python 标准库实现,无需任何第三方依赖、无需建 venv、无需 pip install。
何时用
- 手写《自制技能清单_*.md》与实际技能目录脱节(声明数 ≠ 磁盘数)。
- 想一键产出权威台账(md + json)并发现陈旧 / 遗漏 / 卫生问题。
- 新增 / 删除 / 重命名技能后,刷新资产视图。
调用方式(直接用托管 Python)
PY="C:/Users/13301/.workbuddy/binaries/python/versions/3.13.12/python.exe"
SKILL_DIR="C:/Users/13301/.workbuddy/skills/skill-inventory"
"$PY" "$SKILL_DIR/scripts/skill-inventory.py" --out .
说明:
--out .把台账输出到当前工作目录(cwd)。cwd同时决定:
- 旧台账查找:glob
自制技能清单_*.md- 项目级技能扫描:
<cwd>/.workbuddy/skills/用户级技能始终扫描
~/.workbuddy/skills/(绝对路径,不依赖 cwd)。
参数
| 参数 | 默认值 | 说明 |
|------|--------|------|
| --skills-dir | ~/.workbuddy/skills | 用户级技能扫描根 |
| --ledger | cwd 下《自制技能清单_*.md》 | 旧手写台账路径(对照用,可指定) |
| --out | . | 台账输出目录 |
判定逻辑(不盲信手写数字)
- 自制技能 = SKILL.md frontmatter 含
agent_created: true(用户级真实自制信号) - 台账声明 = 旧清单表格第 2 列反引号技能名(正则
\|\s*\d+\s*\|\s*([^]+)`,排除散文反引号) - 偏差 = 台账失效(声明但磁盘无) + 自制未登记(agent_created 但台账没记) + 卫生(无 SKILL.md / 无 frontmatter)
关键实现坑(已修复,备忘)
- YAML 折叠块标量:很多 SKILL.md 用
description: >-/|。朴素key:val解析会拿到>-,需检测>/|标记后累加后续缩进行。 - 台账散文反引号:清单正文里的
skill-creator、~/.workbuddy/skills/等会被误抓,必须用表格行正则过滤。 - Windows 控制台:stdout 加
reconfigure(utf-8, errors="replace")防 GBK 编码炸。
产出(落地即用)
skill_inventory_<日期>.json:全量 records + drift(机器可读,供下游编排/审计消费)skill_inventory_<日期>.md:偏差速览 + 自制技能权威台账 + 官方参考 + 卫生 + 用法(含[TOC])
进阶:设为每周自动化(可选)
可用 automation_update 每周跑一次,使台账永不过期:
- name:技能资产周度治理
- prompt:运行 skill-inventory 技能脚本(
scripts/skill-inventory.py),把台账输出到当前工作目录 - rrule:
FREQ=WEEKLY;BYDAY=MO;BYHOUR=9(每周一 9 点)
衔接
- 配合
skill-orchestrator:先治理后编排——资产理清后再把技能串成流水线。 - 治理产出的 json 可直接作为编排器的技能目录清单输入。
Scan to join WeChat group