Favorites Curator
Maintain a file-backed catalog of useful local resources.
Do First
- 1. Run
scripts/scan_favorites.py to refresh entries and the latest snapshot. - Run
scripts/daily_digest.py to compare the latest snapshot with the previous one and produce a digest. - Run
scripts/notify_candidates.py when the user wants short notification copy for notable items.
Paths
- - Entries: INLINECODE3
- Snapshots: INLINECODE4
- Reports: INLINECODE5
- Cache: INLINECODE6
- Skill code: INLINECODE7
- Naming and schema notes: INLINECODE8
Covered Sources
- -
~/ai git repositories - INLINECODE10 installed formulae and casks
- INLINECODE11 and INLINECODE12
- INLINECODE13
- INLINECODE14
- INLINECODE15
- INLINECODE16
- INLINECODE17
- INLINECODE18
Expected Workflow
Refresh catalog
CODEBLOCK0
Use --limit-source to iterate on one source:
CODEBLOCK1
Generate daily digest
CODEBLOCK2
This produces a Markdown report with:
- - new entries
- updated entries
- likely similar items worth deduping or cross-referencing
- notable items worth surfacing
Emit notification copy
CODEBLOCK3
Use --top N to cap the number of lines.
Data Rules
- - Prefer local metadata over online enrichment.
- Leave missing fields empty or mark them as inferred in
field_sources. - Keep filenames ASCII, sortable, and machine-friendly.
- Store one entry per file.
- Update the same entry file on re-scan instead of creating duplicates.
Output Contract
Each entry file must keep these fields in frontmatter:
- - INLINECODE22
- INLINECODE23
- INLINECODE24
- INLINECODE25
- INLINECODE26
- INLINECODE27
- INLINECODE28
- INLINECODE29
- INLINECODE30
Other helper fields are allowed when useful for automation.
Notes
- - The scripts are local-first and safe to run repeatedly.
- INLINECODE31 is used once per scan; avoid tight cron loops.
- Read
references/naming-and-model.md before changing filename rules or schema.
收藏品策展人
维护一个基于文件的有用本地资源目录。
优先执行
- 1. 运行 scripts/scanfavorites.py 刷新条目和最新快照。
- 运行 scripts/dailydigest.py 比较最新快照与上一份快照,生成摘要。
- 当用户需要针对重要项目的简短通知文案时,运行 scripts/notify_candidates.py。
路径
- - 条目:favorites/entries/
- 快照:favorites/snapshots/
- 报告:favorites/reports/
- 缓存:favorites/enrichment-cache.json
- 技能代码:skills/favorites-curator/
- 命名和模式说明:references/naming-and-model.md
覆盖来源
- - ~/ai Git 仓库
- brew 已安装的公式和酒桶
- /Applications 和 ~/Applications
- ~/.codex/skills
- ~/.claude/skills
- ~/.agents/skills
- ~/.openclaw/workspace/skills
- ~/.openclaw/extensions
- ~/.openclaw/hooks
预期工作流程
刷新目录
bash
python3 skills/favorites-curator/scripts/scan_favorites.py
使用 --limit-source 对单个来源进行迭代:
bash
python3 skills/favorites-curator/scripts/scan_favorites.py --limit-source brew
生成每日摘要
bash
python3 skills/favorites-curator/scripts/daily_digest.py
这将生成一份 Markdown 报告,包含:
- - 新增条目
- 更新条目
- 可能值得去重或交叉引用的相似项目
- 值得展示的重要项目
发送通知文案
bash
python3 skills/favorites-curator/scripts/notify_candidates.py
使用 --top N 限制输出行数。
数据规则
- - 优先使用本地元数据而非在线丰富数据。
- 缺失字段留空,或在 field_sources 中标记为推断。
- 保持文件名使用 ASCII 字符、可排序且对机器友好。
- 每个文件存储一个条目。
- 重新扫描时更新同一条目文件,而非创建重复文件。
输出约定
每个条目文件必须在文件头中保留以下字段:
- - name
- author
- datatype
- installpath
- installtime
- updatetime
- summary
- simpleusage
- sourceurl
当对自动化有用时,允许使用其他辅助字段。
备注
- - 这些脚本以本地优先,可安全重复运行。
- 每次扫描使用一次 brew info --json=v2 --installed;避免频繁的定时循环。
- 在更改文件名规则或模式前,请阅读 references/naming-and-model.md。