mcpField
D
daily-briefing-builder

daily-briefing-builder

github.com/brianrwagner生产力449407 次安装32 周前更新
代码仓库

关于 daily-briefing-builder

daily-briefing-builder 是供 Claude Code 使用的 Obsidian 晨间简报技能,会汇总当天行动、待发布内容和天气。它按需读取 vault 并输出简报,不需要自主执行 Agent。

主要功能

  1. 01读取当天行动文件
  2. 02扫描待发布 Markdown 内容
  3. 03获取城市天气
  4. 04最多展示 5 条最新内容

适用场景

  1. 01查看当天优先行动
  2. 02检查待发布内容队列
  3. 03在晨间简报中查看天气

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/brianrwagner/ai-marketing-claude-code-skills --skill daily-briefing-builder

安装后在 Claude Code 中输入/daily-briefing-builder确认已加载。

附带文件SKILL-OC.md

详细介绍

每日简报生成器

从你的 Obsidian 知识库生成晨间简报。读取今天的行动文件,扫描尚未发布的内容,并获取天气信息——所有操作都在 Claude Code 会话中完成。

无需 API。无需付费服务。无需 Agent 自主运行。你启动它,就能拿到简报。


使用方法

在你的知识库目录中打开 Claude Code,然后输入:

Run the Daily Briefing Builder skill.

也可以先提供上下文:

Run the Daily Briefing Builder skill. My vault is at /path/to/vault and my city is Ann+Arbor.

技能说明(适用于 Claude Code)

调用此技能时,请严格按照以下阶段执行。


阶段 1:信息收集

检查用户是否已提供:

  • vault_path — Obsidian 知识库的绝对路径
  • city — 天气查询所用的城市名称(wttr.in 格式,空格用 + 表示)

如果缺少任一项,请先询问:

To run your morning brief, I need two things:
1. Your vault path (e.g. /root/obsidian-vault)
2. Your city for weather (e.g. Ann+Arbor or London)

确认这两项信息后,才能继续执行阶段 2。


阶段 2:分析

按顺序运行以下 shell 命令。格式化前,先收集所有输出。

步骤 1 — 今天的行动:

TODAY=$(date +%Y-%m-%d)
VAULT="VAULT_PATH_HERE"
ACTIONS_FILE="$VAULT/bambf/tracking/daily-actions/${TODAY}.md"

if [ -f "$ACTIONS_FILE" ]; then
  echo "FILE_FOUND"
  awk '/## Today.s 3 Actions/{found=1; next} found && /^[0-9]/{print} found && /^##/{exit}' "$ACTIONS_FILE"
else
  echo "FILE_MISSING:$ACTIONS_FILE"
fi

步骤 2 — 扫描尚未发布的内容:

VAULT="VAULT_PATH_HERE"
READY_DIR="$VAULT/content/ready-to-post"

if [ -d "$READY_DIR" ]; then
  find "$READY_DIR" -name "*.md" -printf "%T@ %p\n" 2>/dev/null \
    | sort -rn | awk '{print $2}' \
    | while read f; do
        if grep -q '\*\*Posted:\*\* ❌' "$f" 2>/dev/null; then
          platform=$(echo "$f" | sed "s|.*/ready-to-post/||" | cut -d'/' -f1)
          title=$(grep -m1 '^[^#\-\*>|` ]' "$f" 2>/dev/null | head -c 100)
          rel="${f##$VAULT/}"
          echo "ITEM|$platform|$rel|$title"
        fi
      done
else
  echo "DIR_MISSING:$READY_DIR"
fi

步骤 3 — 天气:

curl -s --max-time 5 "wttr.in/CITY_HERE?format=3" || echo "WEATHER_UNAVAILABLE"

阶段 3:输出

将简报格式化并打印到终端:

☀️ Morning Brief — [Weekday, Month Day]

TODAY'S 3 ACTIONS
[numbered actions, or fallback message if file missing]

READY TO POST ([shown] of [total])
[platform] [title] — [relative file path]
...and X more in the pipeline   ← only if total > 5

WEATHER
[wttr.in output or fallback]

格式规则:

  • 最多显示 5 项可直接发布的内容(按修改时间从新到旧排序)
  • 如果 content/ready-to-post/ 不存在:No ready-to-post folder found
  • 如果没有未发布的文件:Content queue is empty
  • 如果缺少行动文件:No actions file for today — create one at bambf/tracking/daily-actions/YYYY-MM-DD.md
  • 如果天气查询失败:Weather unavailable (offline) — 不要中止简报生成

阶段 4:自我检查

交付前,执行以下内部检查。修复所有未通过项——4 项全部通过后才能交付。

  1. 行动准确性 — 是否找到了行动文件?编号条目是否正确提取?如果文件存在但没有找到条目,请注明标题可能不匹配。
  2. 内容完整性 — 统计步骤 2 输出中的 ITEM| 行数。简报中显示的数量是否一致?是否有文件被跳过?
  3. 天气结果 — curl 是否返回了有效输出?如果失败,是否显示了备用提示?
  4. 格式整洁性 — 没有原始 bash 输出。没有占位文本。三个部分均已包含。

输出示例

☀️ Morning Brief — Friday, February 28

TODAY'S 3 ACTIONS
1. Finish Q1 content calendar
2. Send invoice to BAMBF client
3. Publish LinkedIn post on AI ops

READY TO POST (5 of 9)
[linkedin] Nobody talks about what happens when your AI system fails... — content/ready-to-post/linkedin/ai-ops-failure.md
[twitter] The overnight ops shift is real. We run Scribe at 2am... — content/ready-to-post/twitter/async-ops.md
[newsletter] AI marketing systems that actually work — content/ready-to-post/newsletter/systems-post.md
[linkedin] Three things I stopped doing after deploying agents — content/ready-to-post/linkedin/stopped-doing.md
[twitter] Founders who ignore async AI ops are about to find out why — content/ready-to-post/twitter/ignore-ops.md
...and 4 more in the pipeline

WEATHER
Ann Arbor: ☀️  +42°F

每日行动文件格式

预期路径:<vault>/bambf/tracking/daily-actions/YYYY-MM-DD.md

预期结构:

# Daily Actions — 2026-03-01

## Today's 3 Actions
1. First priority
2. Second priority
3. Third priority

如果你使用了不同的路径或标题,请在调用技能时告知 Claude Code。


要求

  • Claude Code,并可使用 bash 工具
  • 知识库中有 content/ready-to-post/ 文件夹(文件必须包含 **Posted:** ❌ 才会被识别为未发布)
  • 已安装 curl(没有它时,天气查询会优雅失败)
  • 每日行动文件为可选项——没有它也能生成简报

评论

支持 Markdown