用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/best/openclaw-skills --skill feed-broadcast命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Track and report OpenClaw model usage and costs. Generate daily/weekly cost reports with per-model token breakdowns, interactive vs cron classification, provider summary, and trend analysis.
Score and publish AI Feed candidates through a controlled runner. Agent only writes scored-results JSON.
AI Feed deterministic collection runner. Use to collect Miniflux/HN/GitHub candidates into data/candidates.json for feed-score.
基于 SOC 职业分类
正在显示 SKILL.md
| name | feed-broadcast |
| description | Broadcast newly published AI Feed posts through a controlled wrapper with state and delivery guards. |
| metadata | {"version":"1.3.0"} |
Check newly published AI Feed posts, decide which are worth pushing, and let the wrapper deliver plain Discord text plus update broadcast state.
Do not manually query git history or call message directly. Use the controlled scripts.
Allowed:
exec to run prepare/finalize.read the task JSON produced by prepare.write exactly the decision JSON path specified by the task.Forbidden:
message directly.state/feed-broadcast.json manually.python3 scripts/feed_broadcast_ctl.py prepare
Prepare writes a task JSON containing new posts, target channels, and the decision file path.
If prepare returns status=no_content, stop successfully and stay silent.
Write JSON to the task decisionPath:
{
"status": "ok",
"selected": [
{"path": "src/data/blog/2026-06-14/001-example.md", "reason": "high-signal release"}
],
"skipped": [
{"path": "src/data/blog/2026-06-14/002-example.md", "reason": "incremental duplicate"}
],
"message": "📡 AI Feed · 17:00\n\n🔥 **标题**(8.5)\n一句话推荐理由。\n<https://feed.astralor.com/posts/2026-06-14/001-example/>\n\n→ 全部文章:<https://feed.astralor.com>"
}
Selection rules:
featured: true must be selected.score >= 8.0 must be selected.score 7.0-7.9 is optional based on novelty and usefulness.score < 7.0 is skipped unless uniquely valuable.Message rules:
<...>.selected=[], message must be empty.python3 scripts/feed_broadcast_ctl.py finalize
Finalize validates the decision, sends the broadcast/log through openclaw message send, and updates the state file only after successful delivery.
Final reply should be one line based on runner stdout:
📡 播报 HH:MM — 推送 <pushed> 条 / 跳过 <skipped> 条; sent=<sent>; log=<logSent>
No new posts is a successful silent outcome.
scripts/feed_broadcast_ctl.py: prepare/finalize wrapper.scripts/extract-new-posts.py: frontmatter extractor.