<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>NightFall</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://nightfall7.top/</id>
  <link href="https://nightfall7.top/" rel="alternate"/>
  <link href="https://nightfall7.top/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, NightFall</rights>
  <subtitle>NightFall de bolg</subtitle>
  <title>NightFall</title>
  <updated>2026-08-06T10:14:10.269Z</updated>
  <entry>
    <author>
      <name>NightFall</name>
    </author>
    <category term="Claude Code" scheme="https://nightfall7.top/tags/Claude-Code/"/>
    <category term="工作流" scheme="https://nightfall7.top/tags/%E5%B7%A5%E4%BD%9C%E6%B5%81/"/>
    <category term="agents view" scheme="https://nightfall7.top/tags/agents-view/"/>
    <category term="insights" scheme="https://nightfall7.top/tags/insights/"/>
    <category term="后台会话" scheme="https://nightfall7.top/tags/%E5%90%8E%E5%8F%B0%E4%BC%9A%E8%AF%9D/"/>
    <content>
      <![CDATA[<blockquote><p>这是「Claude Code 工作流」系列第三篇，也是最后一篇，对应 deck 的 Part 3（第 13-16 页）。下方嵌入了可交互的完整 deck，按方向键翻页，按 <code>O</code> 出缩略图多任务视图。</p></blockquote><iframe src="/claude-code-workflow-deck/?slide=12" width="100%" height="540" frameborder="0" style="border: 2px solid var(--wood-border, #b8a589); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.08); margin: 16px 0; max-width: 960px; aspect-ratio: 16/9;"></iframe><blockquote><p>移动端 iframe 体验有限，可<a href="/claude-code-workflow-deck/">点此全屏查看 deck</a>。</p></blockquote><h2 id="P13-·-Part-3-目录：Claude-Code-内置功能"><a href="#P13-·-Part-3-目录：Claude-Code-内置功能" class="headerlink" title="P13 · Part 3 目录：Claude Code 内置功能"></a>P13 · Part 3 目录：Claude Code 内置功能</h2><p>Part 3 共 2 节：3.1 agents view + 3.2 &#x2F;insights。这两个是 Claude Code 自带能力，不需要额外装 skill 或 MCP，但很多人要么没用过，要么用错了。</p><h2 id="P14-·-3-1-agents-view：一屏管所有后台会话"><a href="#P14-·-3-1-agents-view：一屏管所有后台会话" class="headerlink" title="P14 · 3.1 agents view：一屏管所有后台会话"></a>P14 · 3.1 agents view：一屏管所有后台会话</h2><h3 id="是什么"><a href="#是什么" class="headerlink" title="是什么"></a>是什么</h3><p><code>claude agents</code> 命令开一个总览屏，一屏看到所有 Claude Code 会话：在跑的、等你输入的、已完成的。任意一个都能 <code>/resume</code> 恢复，上下文完整保留。</p><h3 id="解决的痛点"><a href="#解决的痛点" class="headerlink" title="解决的痛点"></a>解决的痛点</h3><ul><li>以前：关掉终端 &#x3D; 会话没了，上下文丢</li><li>以前：同时跑多个任务没法切换，得开多个终端窗口手动记</li><li>以前：想知道「那个长任务跑完了没」只能回去翻历史</li><li>现在：一屏总览 + 一键 <code>/resume</code> + 状态实时可见</li></ul><h3 id="六种状态（图标颜色-会话状态）"><a href="#六种状态（图标颜色-会话状态）" class="headerlink" title="六种状态（图标颜色 &#x3D; 会话状态）"></a>六种状态（图标颜色 &#x3D; 会话状态）</h3><table><thead><tr><th>图标</th><th>状态</th><th>含义</th></tr></thead><tbody><tr><td>🔵 动效中</td><td><strong>Working</strong></td><td>正在跑工具&#x2F;生成</td></tr><tr><td>🟡 黄</td><td><strong>Needs input</strong></td><td>等你回答&#x2F;授权</td></tr><tr><td>⚫ 暗淡</td><td><strong>Idle</strong></td><td>空闲待命</td></tr><tr><td>🟢 绿</td><td><strong>Completed</strong></td><td>完成</td></tr><tr><td>🔴 红</td><td><strong>Failed</strong></td><td>报错</td></tr><tr><td>⚪ 灰</td><td><strong>Stopped</strong></td><td>被 Ctrl+X &#x2F; <code>claude stop</code> 终止</td></tr></tbody></table><h3 id="三种形状（图标形状-进程是否存活）"><a href="#三种形状（图标形状-进程是否存活）" class="headerlink" title="三种形状（图标形状 &#x3D; 进程是否存活）"></a>三种形状（图标形状 &#x3D; 进程是否存活）</h3><p>颜色独立于形状，形状表示进程状态——这是官网文档里容易忽略的点：</p><table><thead><tr><th>形状</th><th>含义</th></tr></thead><tbody><tr><td>✻</td><td>进程存活，立即响应</td></tr><tr><td>∙</td><td>进程已退出，仍可 peek&#x2F;reply，从断点续</td></tr><tr><td>✢</td><td><code>/loop</code> 迭代间休眠，显示运行次数+倒计时</td></tr></tbody></table><h3 id="顺带一提：-goal-bg-组合"><a href="#顺带一提：-goal-bg-组合" class="headerlink" title="顺带一提：&#x2F;goal + &#x2F;bg 组合"></a>顺带一提：&#x2F;goal + &#x2F;bg 组合</h3><ul><li><code>/goal</code> — 设一个条件，Claude 跨多轮自主拆解、持续推进直到条件达成</li><li><code>/bg</code> — 把当前会话切到后台继续跑，释放终端</li><li><strong>组合用法</strong>：<code>/goal</code> 设目标 + <code>/bg</code> 后台跑 &#x3D; 长任务无人值守推进，在 agents view 里看进度</li></ul><p>参考：<a href="https://code.claude.com/docs/en/agent-view">code.claude.com&#x2F;docs&#x2F;en&#x2F;agent-view</a></p><h2 id="P15-·-3-2-insights-正确用法"><a href="#P15-·-3-2-insights-正确用法" class="headerlink" title="P15 · 3.2 &#x2F;insights 正确用法"></a>P15 · 3.2 &#x2F;insights 正确用法</h2><h3 id="是什么-1"><a href="#是什么-1" class="headerlink" title="是什么"></a>是什么</h3><p><code>/insights</code> 生成一份分析 Claude Code 会话的报告。覆盖：项目分布、交互模式、摩擦点（friction points）。读的是 <code>~/.claude/projects</code> 下的历史记录。输出是一个 HTML 文件，存在当前工作目录。</p><h3 id="为什么用"><a href="#为什么用" class="headerlink" title="为什么用"></a>为什么用</h3><ul><li>看消耗在哪</li><li>识别浪费的 token &#x2F; cache &#x2F; subagent 调用</li><li>纠正低效的 prompt 模式</li></ul><h3 id="常见误区"><a href="#常见误区" class="headerlink" title="常见误区"></a>常见误区</h3><ul><li>❌ <strong>不是实时遥测</strong> — 读历史记录，不是监控当前会话</li><li>❌ <strong>不是聊天总结</strong> — 生成 HTML 文件，不是返回聊天里的总结</li><li>❌ <strong>依赖会话记录</strong> — 空目录无输出</li></ul><h3 id="正确姿势"><a href="#正确姿势" class="headerlink" title="正确姿势"></a>正确姿势</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">/insights 7d</span><br><span class="line">→ 看报告里的异常发现</span><br><span class="line">→ 调整 prompt / 拆分 skill / 优化 subagent 调用</span><br></pre></td></tr></table></figure><h3 id="典型发现-→-优化方向"><a href="#典型发现-→-优化方向" class="headerlink" title="典型发现 → 优化方向"></a>典型发现 → 优化方向</h3><ul><li><strong>skill 反复调 40% token</strong> → 合并步骤</li><li><strong>subagent 重读同一文件</strong> → 加 memory 缓存</li><li><strong>长 prompt 拆短 cache ↑</strong> → 拆 system&#x2F;user 块利用 prompt cache</li></ul><p>参考：<a href="https://code.claude.com/docs/en/commands">code.claude.com&#x2F;docs&#x2F;en&#x2F;commands</a></p><blockquote><p><code>/insights</code> 不是看一眼就完——要落地改 prompt，不然下次还是同样的浪费。</p></blockquote><h2 id="P16-·-Thanks"><a href="#P16-·-Thanks" class="headerlink" title="P16 · Thanks"></a>P16 · Thanks</h2><blockquote><p>Q &amp; A 时间<br>Obsidian × Notion × Databricks × Claude Code</p></blockquote><p>系列三篇到此结束。三篇都配了可交互的 deck 嵌入，翻一翻 deck 看视觉，读一读文字看细节。</p><hr><blockquote><p>回到本专栏首页：<a href="/topic/claude-code-tips/">Claude Code 使用分享</a>。<br>系列导航：<a href="/posts/claude-code-workflow-1-knowledge-base/">第一篇 知识库</a> · <a href="/posts/claude-code-workflow-2-databricks/">第二篇 Databricks</a> · 当前篇</p></blockquote>]]>
    </content>
    <id>https://nightfall7.top/2026/08/06/claude-code-workflow-3-cc-features/</id>
    <link href="https://nightfall7.top/2026/08/06/claude-code-workflow-3-cc-features/"/>
    <published>2026-08-06T11:00:00.000Z</published>
    <summary>一屏管理所有后台会话的状态体系（六状态 + 三形状），历史会话分析报告的正确用法与常见误区。Slidev deck 嵌入 + 逐页文字详解。</summary>
    <title>Claude Code 工作流（三）：内置功能 — agents view + /insights</title>
    <updated>2026-08-06T10:14:10.269Z</updated>
  </entry>
  <entry>
    <author>
      <name>NightFall</name>
    </author>
    <category term="Claude Code" scheme="https://nightfall7.top/tags/Claude-Code/"/>
    <category term="Databricks" scheme="https://nightfall7.top/tags/Databricks/"/>
    <category term="MCP" scheme="https://nightfall7.top/tags/MCP/"/>
    <category term="Skills" scheme="https://nightfall7.top/tags/Skills/"/>
    <category term="工作流" scheme="https://nightfall7.top/tags/%E5%B7%A5%E4%BD%9C%E6%B5%81/"/>
    <content>
      <![CDATA[<blockquote><p>这是「Claude Code 工作流」系列第二篇，对应 deck 的 Part 2（第 09-12 页）。下方嵌入了可交互的完整 deck，按方向键翻页，按 <code>O</code> 出缩略图多任务视图。</p></blockquote><iframe src="/claude-code-workflow-deck/?slide=8" width="100%" height="540" frameborder="0" style="border: 2px solid var(--wood-border, #b8a589); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.08); margin: 16px 0; max-width: 960px; aspect-ratio: 16/9;"></iframe><blockquote><p>移动端 iframe 体验有限，可<a href="/claude-code-workflow-deck/">点此全屏查看 deck</a>。</p></blockquote><h2 id="P09-·-Part-2-目录：Claude-Code-×-Databricks"><a href="#P09-·-Part-2-目录：Claude-Code-×-Databricks" class="headerlink" title="P09 · Part 2 目录：Claude Code × Databricks"></a>P09 · Part 2 目录：Claude Code × Databricks</h2><p>Part 2 共 3 节：2.1 两种连接方式对比 + 选型 &#x2F; 2.2 测试工作流（Jobs 模式）&#x2F; 2.3 实战示例。</p><p>核心问题：<strong>Claude Code 怎么连 Databricks</strong>？答案是——<strong>不要走第三方 MCP Server，直接用官方 CLI + markdown Skills</strong>。</p><h2 id="P10-·-2-1-两种连接方式对比-选型结论"><a href="#P10-·-2-1-两种连接方式对比-选型结论" class="headerlink" title="P10 · 2.1 两种连接方式对比 + 选型结论"></a>P10 · 2.1 两种连接方式对比 + 选型结论</h2><h3 id="方式一：远程-MCP-Server"><a href="#方式一：远程-MCP-Server" class="headerlink" title="方式一：远程 MCP Server"></a>方式一：远程 MCP Server</h3><p>架构：<code>Claude ⇄ MCP 协议 ⇄ 第三方 Server ⇄ Databricks API</code></p><ul><li>依赖：找&#x2F;装第三方 Server</li><li>能力：受限于 Server 暴露的工具</li><li>拓展：改 Server 源码重启</li><li>Azure 中国：看社区实现，不一定可用</li></ul><h3 id="方式二：本地-CLI-Skills-✓（选型结论）"><a href="#方式二：本地-CLI-Skills-✓（选型结论）" class="headerlink" title="方式二：本地 CLI + Skills ✓（选型结论）"></a>方式二：本地 CLI + Skills ✓（选型结论）</h3><p>架构：<code>Claude ⇄ Bash ⇄ databricks CLI ⇄ Databricks API</code></p><ul><li>依赖：官方 CLI + markdown Skills</li><li>能力：全 CLI 子命令 + REST</li><li>拓展：直接调子命令</li><li>Azure 中国：官方原生支持</li></ul><h3 id="配合的-skill"><a href="#配合的-skill" class="headerlink" title="配合的 skill"></a>配合的 skill</h3><ul><li><code>databricks-core</code> — 日常 CLI 操作、auth、profile、bundle</li><li><code>databricks-pipelines</code> — Lakeflow Spark Declarative Pipelines（原 DLT）</li><li><code>ddl-to-data-dictionary</code> — DDL 翻数据字典</li></ul><h3 id="选型结论：本地-CLI-Skills"><a href="#选型结论：本地-CLI-Skills" class="headerlink" title="选型结论：本地 CLI + Skills"></a>选型结论：本地 CLI + Skills</h3><p>四个理由：</p><ol><li><strong>官方维护</strong> — 不靠第三方，能力全集</li><li><strong>Azure 中国 endpoint 原生适配</strong> — 不用等社区实现</li><li><strong>加新能力直接调子命令</strong> — 不改 Server 源码</li><li><strong>调试链路短</strong> — 报错直接可见，不经过 MCP 协议层</li></ol><blockquote><p>远程 MCP Server 不是不能用，而是「能用多少看 Server 暴露多少」——这个不确定性对工作流是硬伤。</p></blockquote><h2 id="P11-·-2-2-测试工作流（Jobs-模式）"><a href="#P11-·-2-2-测试工作流（Jobs-模式）" class="headerlink" title="P11 · 2.2 测试工作流（Jobs 模式）"></a>P11 · 2.2 测试工作流（Jobs 模式）</h2><h3 id="9-步闭环-·-不动现有-jobs-编排"><a href="#9-步闭环-·-不动现有-jobs-编排" class="headerlink" title="9 步闭环 · 不动现有 jobs 编排"></a>9 步闭环 · 不动现有 jobs 编排</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">1. export 云上 .py    →   2. Claude 改   →   3. import 回云</span><br><span class="line">                                                       ↓</span><br><span class="line">6. export-run    ←   5. run-now    ←   4. 建临时 job</span><br><span class="line">       ↓</span><br><span class="line">7. 解码 base64  →   8. Claude 分析   →   9. 回到 2 ↻</span><br></pre></td></tr></table></figure><p>详细步骤：</p><ol><li><strong>用户 export 云上 .py</strong> — 从 Databricks workspace 导出 notebook</li><li><strong>Claude 改本地 .py</strong> — 在 workspace 编辑，迭代逻辑</li><li><strong>用户 import 回云</strong> — 把改好的 .py 导回 workspace</li><li><strong>建临时 job</strong> — 不动现有 jobs 编排，新建一个临时 job 跑测试</li><li><strong>Claude <code>jobs run-now</code></strong> — 触发 job</li><li><strong>Claude <code>jobs export-run</code></strong> — 抓取执行结果</li><li><strong>Claude 解码 base64+URL</strong> — export-run 输出是 base64+URL 编码</li><li><strong>Claude 自主分析</strong> — 看 stdout&#x2F;stderr、数据样本、schema</li><li><strong>回到步骤 2</strong> — 根据结果迭代，循环往复</li></ol><h3 id="踩坑点"><a href="#踩坑点" class="headerlink" title="踩坑点"></a>踩坑点</h3><ul><li><strong><code>get-run-output</code> 只收 <code>dbutils.notebook.exit()</code></strong> — 想拿完整 cell 输出要用 <code>export-run</code></li><li><strong>Azure 中国禁 <code>/api/1.2/commands</code> 端点</strong> — 不能用旧版 commands API</li><li><strong>输出是 base64+URL 双重编码</strong> — 解码两层才能拿到可读文本</li></ul><h3 id="规则"><a href="#规则" class="headerlink" title="规则"></a>规则</h3><ul><li>不动现有 jobs 编排</li><li>不跑 workspace import&#x2F;export（用户手动操作）</li><li>用 all-purpose cluster（不用 SQL Warehouse）</li><li>临时 job 跑完即弃</li></ul><h2 id="P12-·-2-3-实战示例（2026-07-29）"><a href="#P12-·-2-3-实战示例（2026-07-29）" class="headerlink" title="P12 · 2.3 实战示例（2026-07-29）"></a>P12 · 2.3 实战示例（2026-07-29）</h2><h3 id="test-job-配置"><a href="#test-job-配置" class="headerlink" title="test job 配置"></a>test job 配置</h3><ul><li><strong>job_id</strong>: <code>10761020612585</code></li><li><strong>notebook</strong>: <code>/Shared/powerlink_warehouse/other/test</code></li><li><strong>cluster</strong>: all-purpose</li><li><strong>2 cells</strong>: Python + SQL</li></ul><h3 id="执行结果-·-全链路通"><a href="#执行结果-·-全链路通" class="headerlink" title="执行结果 · 全链路通"></a>执行结果 · 全链路通</h3><ul><li>✅ 18 秒跑完，无报错</li><li>✅ Python cell 设参数成功</li><li>✅ SQL cell 返回数据</li><li>✅ export-run 拿到全 cell</li><li>✅ base64+URL 解码成可读文本</li><li>✅ stdout &#x2F; stderr 分离提取</li></ul><h3 id="自主抓取数据"><a href="#自主抓取数据" class="headerlink" title="自主抓取数据"></a>自主抓取数据</h3><p><strong>Cell 0 (Python)</strong> — 设参数：</p><figure class="highlight python"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">spark.conf.<span class="built_in">set</span>(<span class="string">&quot;param.bizdate&quot;</span>, <span class="string">&quot;20260707&quot;</span>)</span><br></pre></td></tr></table></figure><p><strong>Cell 1 (SQL)</strong> — 查数据：</p><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line"><span class="keyword">select</span> <span class="operator">*</span> <span class="keyword">from</span> powerlink_prod.pw_ads.</span><br><span class="line">  ads_pw_credit_metric_df</span><br><span class="line"><span class="keyword">where</span> dt<span class="operator">=</span><span class="string">&#x27;$&#123;param.bizdate&#125;&#x27;</span></span><br><span class="line">limit <span class="number">10</span></span><br></pre></td></tr></table></figure><p><strong>结果</strong>：10 行 × 68 列完整数据，含 <code>sap_code</code> &#x2F; <code>company_name</code> &#x2F; <code>company_paydex</code> 等。</p><h3 id="Claude-自主迭代"><a href="#Claude-自主迭代" class="headerlink" title="Claude 自主迭代"></a>Claude 自主迭代</h3><p>拿到数据后 Claude 不只是看一眼就完，会自主推断：</p><ul><li><code>dt</code> 是分区列 → 自动加 <code>where</code> 条件避免全表扫描</li><li><code>sap_code</code> → 推断 SAP 主数据关联</li><li>10 行样本看 schema，不拉全量（省 token、省时间）</li></ul><p>这个「样本看 schema，不拉全量」的能力是 9 步闭环的价值——Claude 不需要人告诉它怎么看数据，它自己会推断。</p><hr><p>下一篇：<a href="/posts/claude-code-workflow-3-cc-features/">Claude Code 工作流（三）：内置功能 — agents view + &#x2F;insights</a> — 一屏管理所有后台会话的状态体系，历史会话分析报告的正确用法与常见误区。</p><blockquote><p>回到本专栏首页：<a href="/topic/claude-code-tips/">Claude Code 使用分享</a>。</p></blockquote>]]>
    </content>
    <id>https://nightfall7.top/2026/08/06/claude-code-workflow-2-databricks/</id>
    <link href="https://nightfall7.top/2026/08/06/claude-code-workflow-2-databricks/"/>
    <published>2026-08-06T10:45:00.000Z</published>
    <summary>远程 MCP Server vs 本地 CLI + Skills 选型，9 步测试工作流闭环，10 行 × 68 列自主抓取实战。Slidev deck 嵌入 + 逐页文字详解。</summary>
    <title>Claude Code 工作流（二）：Claude Code × Databricks</title>
    <updated>2026-08-06T10:14:10.266Z</updated>
  </entry>
  <entry>
    <author>
      <name>NightFall</name>
    </author>
    <category term="Claude Code" scheme="https://nightfall7.top/tags/Claude-Code/"/>
    <category term="工作流" scheme="https://nightfall7.top/tags/%E5%B7%A5%E4%BD%9C%E6%B5%81/"/>
    <category term="Obsidian" scheme="https://nightfall7.top/tags/Obsidian/"/>
    <category term="Notion" scheme="https://nightfall7.top/tags/Notion/"/>
    <category term="知识库" scheme="https://nightfall7.top/tags/%E7%9F%A5%E8%AF%86%E5%BA%93/"/>
    <content>
      <![CDATA[<blockquote><p>这是「Claude Code 工作流」系列第一篇，原文是内部分享 deck，星露谷物语像素风。下方嵌入了可交互的完整 deck，按方向键翻页，按 <code>O</code> 出缩略图多任务视图。本篇文字版对应 deck 的 Part 1（第 02-08 页）。</p></blockquote><iframe src="/claude-code-workflow-deck/?slide=1" width="100%" height="540" frameborder="0" style="border: 2px solid var(--wood-border, #b8a589); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.08); margin: 16px 0; max-width: 960px; aspect-ratio: 16/9;"></iframe><blockquote><p>移动端 iframe 体验有限，可<a href="/claude-code-workflow-deck/">点此全屏查看 deck</a>。</p></blockquote><h2 id="P02-·-Part-1-目录：知识库工具"><a href="#P02-·-Part-1-目录：知识库工具" class="headerlink" title="P02 · Part 1 目录：知识库工具"></a>P02 · Part 1 目录：知识库工具</h2><p>知识库这块我用两套工具：<strong>Obsidian</strong>（本地 markdown + 双链）和 <strong>Notion</strong>（block + database + relation）。这套对比不是为了 PK 谁强谁弱，而是搞清楚两套范式各自擅长什么、我各自在用它们做什么。</p><p>Part 1 共 6 节：1.1 范式对比 &#x2F; 1.2 OB 在用 &#x2F; 1.3 Notion 在用 &#x2F; 1.4 daily-todo-bot &#x2F; 1.5 优劣对比表 &#x2F; 1.6 分工。</p><h2 id="P03-·-1-1-两种知识库范式对比"><a href="#P03-·-1-1-两种知识库范式对比" class="headerlink" title="P03 · 1.1 两种知识库范式对比"></a>P03 · 1.1 两种知识库范式对比</h2><h3 id="Obsidian：本地-markdown-双链"><a href="#Obsidian：本地-markdown-双链" class="headerlink" title="Obsidian：本地 markdown + 双链"></a>Obsidian：本地 markdown + 双链</h3><p>OB 的核心是<strong>纯文本 <code>.md</code> 文件 + 本地存储</strong>。文件系统就是数据库，<code>[[双链]]</code> 把文档织成网，graph view 看全局互连。跨 vault 用 Python 读写毫无障碍——它就是个文件夹。</p><p><strong>适合</strong>：个人知识沉淀、离线写作、隐私敏感。<br><strong>痛点</strong>：无原生 DB、无自动化触达、协作要迁整个 vault。</p><blockquote><p>“OB 织网 — 文档间互相关联”</p></blockquote><h3 id="Notion：block-database-relation"><a href="#Notion：block-database-relation" class="headerlink" title="Notion：block + database + relation"></a>Notion：block + database + relation</h3><p>Notion 的核心是 <strong>block-based，无限嵌套</strong>。block 是最小单位，paragraph &#x2F; heading &#x2F; toggle &#x2F; callout 都是 block，可以拖拽组合。database + view + property 提供原生结构化能力，relation 把多个 DB 互相关联。云端，团队实时协作。</p><p><strong>适合</strong>：结构化字段、多人协作、定时自动化。<br><strong>痛点</strong>：离线不可用、导出受限、锁在云上。</p><blockquote><p>“Notion 垒层 — 内容分层可折叠”</p></blockquote><p>一句话总结：<strong>OB 织网，Notion 垒层</strong>——前者文档间互相关联，后者内容内部分层。</p><h2 id="P04-·-1-2-Claude-OB：知识库使用方法"><a href="#P04-·-1-2-Claude-OB：知识库使用方法" class="headerlink" title="P04 · 1.2 Claude + OB：知识库使用方法"></a>P04 · 1.2 Claude + OB：知识库使用方法</h2><h3 id="三个-vault"><a href="#三个-vault" class="headerlink" title="三个 vault"></a>三个 vault</h3><ol><li><strong>项目变更记录</strong> — 按天分区，<code>操作变更记录-YYYY-MM-DD.md</code>，原始数据层</li><li><strong>项目文档</strong> — 按主题汇总，结构化层</li><li><strong>llm-wiki</strong> — skill prompt 定义的三层结构（raw → wiki → index）</li></ol><p>这套分层借鉴了数据开发思路：<strong>原始 → 结构化 → 索引</strong>。每日追加操作变更记录是原始层，项目文档按主题归档是结构化层，llm-wiki 是索引层。</p><h3 id="Claude-怎么读写"><a href="#Claude-怎么读写" class="headerlink" title="Claude 怎么读写"></a>Claude 怎么读写</h3><ul><li><code>obsidian</code> skill — vault 读写。macOS 沙盒（TCC）限制 <code>~/Documents/</code> 直接访问，用 Python heredoc 绕开</li><li><code>karpathy-llm-wiki</code> — 三层结构维护</li><li><code>markitdown</code> — 网页&#x2F;PDF&#x2F;Word 转 md 再扔进 vault</li></ul><h3 id="vault-结构示例"><a href="#vault-结构示例" class="headerlink" title="vault 结构示例"></a>vault 结构示例</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line">项目变更记录/</span><br><span class="line">├── 操作变更记录/</span><br><span class="line">│   └── 操作变更记录-2026-07-29.md</span><br><span class="line">└── project/powerlink/</span><br><span class="line">    ├── Claude Code 集成/</span><br><span class="line">    │   └── 本地CLI与MCP连接方式对比.md</span><br><span class="line">    ├── 数据接入/</span><br><span class="line">    └── 数据字典/</span><br></pre></td></tr></table></figure><h3 id="Claude-工作流"><a href="#Claude-工作流" class="headerlink" title="Claude 工作流"></a>Claude 工作流</h3><p>每日追加 → <code>obsidian</code> skill → 结构化归档。每日一个 md，跨 vault heredoc 批量检索。</p><h2 id="P05-·-1-3-Notion-当前在用"><a href="#P05-·-1-3-Notion-当前在用" class="headerlink" title="P05 · 1.3 Notion 当前在用"></a>P05 · 1.3 Notion 当前在用</h2><h3 id="三个-database"><a href="#三个-database" class="headerlink" title="三个 database"></a>三个 database</h3><ol><li><strong>每日待办 DB</strong> — agent 模板 5 字段：项目名 &#x2F; 模块名 &#x2F; 截止时间 &#x2F; 四象限 &#x2F; 任务内容。新增流程：关键词 → 给模板 → 填充提交 → 更新 Notion</li><li><strong>项目模块 DB</strong> — 工作 + 个人两套库。PowerLink（工作）&#x2F; NightFall-Blog（个人），技术栈 &#x2F; 上线日期 &#x2F; 状态字段。relation：项目 → 子模块 → 每日待办（多对多）</li><li><strong>daily-todo-bot</strong> — 9:00 &#x2F; 18:00 推钉钉（详见下页）</li></ol><h3 id="配合的-MCP"><a href="#配合的-MCP" class="headerlink" title="配合的 MCP"></a>配合的 MCP</h3><p><code>notion</code> MCP（mcp.notion.com&#x2F;mcp，user scope）— 直连 Notion API，daily-todo-bot 自动化也走这条链路。</p><h3 id="当前限制"><a href="#当前限制" class="headerlink" title="当前限制"></a>当前限制</h3><ul><li>button 只读——MCP 暂不支持触发 Notion button</li><li>select 受限——只能查不能改选项</li></ul><h2 id="P06-·-1-4-daily-todo-bot：Notion-待办推到钉钉"><a href="#P06-·-1-4-daily-todo-bot：Notion-待办推到钉钉" class="headerlink" title="P06 · 1.4 daily-todo-bot：Notion 待办推到钉钉"></a>P06 · 1.4 daily-todo-bot：Notion 待办推到钉钉</h2><h3 id="做什么"><a href="#做什么" class="headerlink" title="做什么"></a>做什么</h3><p>每天 9:00 和 18:00 自动把今日待办从 Notion 拉出来，推送到企业钉钉的工作通知。上午推清单，下午推完成复盘。</p><h3 id="链路"><a href="#链路" class="headerlink" title="链路"></a>链路</h3><figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">Notion 待办 DB</span><br><span class="line">   ↓ query API（filter: 截止日期=today AND 状态≠已完成）</span><br><span class="line">Python main.py</span><br><span class="line">   ↓ corpcommunication asyncsend_v2</span><br><span class="line">企业钉钉工作通知</span><br></pre></td></tr></table></figure><h3 id="三端协作"><a href="#三端协作" class="headerlink" title="三端协作"></a>三端协作</h3><table><thead><tr><th>端</th><th>角色</th><th>关键</th></tr></thead><tbody><tr><td>① Notion 端</td><td>数据源</td><td>每日待办 DB + Internal Integration token + filter</td></tr><tr><td>② 中间发起</td><td>Python main.py</td><td>cron <code>0 9,18 * * *</code> + 读 Notion + 调 <code>asyncsend_v2</code></td></tr><tr><td>③ 钉钉端</td><td>触达</td><td>企业内应用 + agent_id + appkey&#x2F;secret 换 token + action_card</td></tr></tbody></table><h3 id="部署"><a href="#部署" class="headerlink" title="部署"></a>部署</h3><p>云服务器 <code>root@47.103.65.110:~/daily-todo-bot/</code>，cron 触发。</p><h3 id="5-个开发坑"><a href="#5-个开发坑" class="headerlink" title="5 个开发坑"></a>5 个开发坑</h3><ol><li><strong>TCC 限制</strong> — 服务器调试，本地 macOS 沙盒绕开</li><li><strong>action_card</strong> — 必带 <code>btn_json</code>，否则钉钉拒绝（400）</li><li><strong>钉钉日上限</strong> — 频控限流，合并推送</li><li><strong>database_id ≠ data_source_id</strong> — 查询要用 <code>collection://</code> 前缀</li><li><strong>create-pages</strong> — 必须给 parent <code>data_source_id</code>，不能只给 <code>database_id</code></li></ol><blockquote><p>“Notion 是数据源，钉钉是触达层 — 中间一段 Python 把两者缝起来”</p></blockquote><h2 id="P07-·-1-5-优劣对比表"><a href="#P07-·-1-5-优劣对比表" class="headerlink" title="P07 · 1.5 优劣对比表"></a>P07 · 1.5 优劣对比表</h2><table><thead><tr><th>维度</th><th>Obsidian</th><th>Notion</th></tr></thead><tbody><tr><td>本地存储</td><td>✅ markdown 文件，可 grep</td><td>❌ 云端，离线不可用</td></tr><tr><td>双链互关</td><td>✅ <code>[[</code> 一键织网 + graph view</td><td>⚠️ relation 需手动建</td></tr><tr><td>层级嵌套</td><td>❌ 文档内部平铺</td><td>✅ 无限嵌套 + toggle 折叠</td></tr><tr><td>渲染层次</td><td>❌ 信息密度均匀</td><td>✅ 信息密度梯度分明</td></tr><tr><td>数据库能力</td><td>⚠️ 靠 frontmatter &#x2F; dataview 插件</td><td>✅ 原生 database + view + filter</td></tr><tr><td>团队协作</td><td>❌ 单人本地</td><td>✅ 多人实时</td></tr><tr><td>迁移成本</td><td>✅ 纯文本，可批量处理</td><td>❌ 锁在云上，导出有限</td></tr><tr><td>自动化触达</td><td>❌ 本地无定时能力</td><td>✅ 云端 API + cron 推钉钉</td></tr><tr><td>插件生态</td><td>✅ 海量社区插件，可自写</td><td>⚠️ 官方 API + 精选 integrations</td></tr><tr><td>开源社区</td><td>✅ 完全开源，MIT 协议</td><td>❌ 闭源 SaaS，无法自托管</td></tr></tbody></table><h2 id="P08-·-1-6-OB-Notion-分工：AI-读什么，人看什么"><a href="#P08-·-1-6-OB-Notion-分工：AI-读什么，人看什么" class="headerlink" title="P08 · 1.6 OB &#x2F; Notion 分工：AI 读什么，人看什么"></a>P08 · 1.6 OB &#x2F; Notion 分工：AI 读什么，人看什么</h2><p>经过这轮对比，我的结论是<strong>不二选一，分工合作</strong>：</p><h3 id="OB-—-喂-AI，本地知识源"><a href="#OB-—-喂-AI，本地知识源" class="headerlink" title="OB — 喂 AI，本地知识源"></a>OB — 喂 AI，本地知识源</h3><p>纯文本 <code>.md</code> + 双链织网，Claude 跨 vault 用 Python heredoc 直接读写。</p><ul><li><strong>渐进式披露</strong> — AI 按需读，不必一次拉全量</li><li><strong>结构灵活</strong> — 文件路径就是 schema</li><li><strong>隐私本地</strong> — 敏感记录不离机</li></ul><blockquote><p>“OB 是 AI 的工作记忆 — 每日追加，跨 vault 检索”</p></blockquote><h3 id="Notion-—-喂人，项目追踪层"><a href="#Notion-—-喂人，项目追踪层" class="headerlink" title="Notion — 喂人，项目追踪层"></a>Notion — 喂人，项目追踪层</h3><p>block + database + relation，感官直接，一路折叠到底看全貌。</p><ul><li><strong>感官直接</strong> — 层次分明，按需展开</li><li><strong>团队协作</strong> — 多人实时，加人无需迁库</li><li><strong>项目追踪</strong> — 状态&#x2F;日期&#x2F;owner 字段一等公民</li></ul><blockquote><p>“Notion 是人的仪表盘 — 一屏看全，一键深入”</p></blockquote><h3 id="联动：Notion-记录时参考-OB"><a href="#联动：Notion-记录时参考-OB" class="headerlink" title="联动：Notion 记录时参考 OB"></a>联动：Notion 记录时参考 OB</h3><p>更新 Notion 待办时，agent 可直接从 OB vault 读取历史记录&#x2F;项目文档，结构化字段填入 DB — <strong>一次写入，两端可用</strong>。</p><hr><p>下一篇：<a href="/posts/claude-code-workflow-2-databricks/">Claude Code 工作流（二）：Claude Code × Databricks</a> — 远程 MCP Server vs 本地 CLI + Skills 选型，9 步测试工作流闭环，10 行 × 68 列自主抓取实战。</p><blockquote><p>回到本专栏首页：<a href="/topic/claude-code-tips/">Claude Code 使用分享</a>。</p></blockquote>]]>
    </content>
    <id>https://nightfall7.top/2026/08/06/claude-code-workflow-1-knowledge-base/</id>
    <link href="https://nightfall7.top/2026/08/06/claude-code-workflow-1-knowledge-base/"/>
    <published>2026-08-06T10:30:00.000Z</published>
    <summary>本地 markdown 双链 vs block + database + relation，附 daily-todo-bot 把 Notion 待办推钉钉的实战。Slidev deck 嵌入 + 逐页文字详解。</summary>
    <title>Claude Code 工作流（一）：知识库双范式 — Obsidian × Notion</title>
    <updated>2026-08-06T10:14:10.263Z</updated>
  </entry>
  <entry>
    <author>
      <name>NightFall</name>
    </author>
    <category term="hexo" scheme="https://nightfall7.top/tags/hexo/"/>
    <category term="stellar" scheme="https://nightfall7.top/tags/stellar/"/>
    <category term="博客搭建" scheme="https://nightfall7.top/tags/%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA/"/>
    <content>
      <![CDATA[<div class="tag-plugin banner"><img class="lazy bg" data-src="/img/site-bg-mountains.jpg"><div class="content"><div class="top">    <button class="back cap" onclick="window.history.back()">      <svg aria-hidden="true" viewBox="0 0 16 16" fill="currentColor"><path fill-rule="evenodd" d="M7.78 12.53a.75.75 0 01-1.06 0L2.47 8.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L4.81 7h7.44a.75.75 0 010 1.5H4.81l2.97 2.97a.75.75 0 010 1.06z"></path></svg>    </button>    </div><div class="bottom"><div class="text-area"><div class="text title">NightFall博客搭建记</div><div class="text subtitle">从零到上线，用 Hexo + Stellar 搭建个人博客的完整过程</div></div></div></div></div><h2 id="一、缘起"><a href="#一、缘起" class="headerlink" title="一、缘起"></a>一、缘起</h2><blockquote><p>岂能尽如人意，但求无愧我心。</p></blockquote><p>搭一个自己的博客，记录生活感受、学习成长、岁月变迁——<strong>让消失的留下痕迹，让抵达的可以回望。</strong> 这是 NightFall 的初衷。</p><p>市面上的博客平台不少，但要么受制于平台的规则与边界，要么样式千篇一律没有个人色彩。最终决定从零搭建：选一个开源可控的框架，配上一个颜值在线的主题，一点一点打磨成自己喜欢的样子。</p><h2 id="二、技术选型"><a href="#二、技术选型" class="headerlink" title="二、技术选型"></a>二、技术选型</h2><p>选型时考虑了几个维度：<strong>开源、可定制、易维护、中文友好</strong>。</p><p>最终方案：</p><ul><li><strong>Hexo 8.1.1</strong>：静态站点生成器，编译快、生态成熟、中文社区活跃</li><li><strong>Stellar 1.33.1</strong>：xaoxuu 出品的 Hexo 主题，模块化设计、文档详尽、颜值在线</li><li><strong>GitHub Pages</strong>：免费托管博客本体，自带 CDN + HTTPS</li><li><strong>阿里云轻量服务器</strong>：跑后端服务（说说 + 评论），国内访问快</li><li><strong>域名 nightfall7.top</strong>：阿里云万网注册，ICP 备案合规</li></ul><p>Hexo 的好处是「本地写作 → 一键生成 → 推送部署」，所有内容都是 Markdown 源文件，版本可控、迁移方便。Stellar 主题提供了侧边栏 widget、容器标签、tag-plugins 等模块化组件，省去了大量前端开发成本。</p><h2 id="三、整体架构"><a href="#三、整体架构" class="headerlink" title="三、整体架构"></a>三、整体架构</h2><p>采用前后端分离的 split 架构：</p><ul><li><strong>前端</strong>（博客本体）：走 apex 域 <code>nightfall7.top</code>，CNAME 到 GitHub Pages，享受 GitHub CDN</li><li><strong>后端</strong>（API + 管理后台）：走子域 <code>api.nightfall7.top</code>，A 记录到阿里云服务器</li></ul><p>这样分工的好处：前端静态文件白嫖 GitHub 资源（免费 + 全球 CDN + 自带 HTTPS），后端服务独立可扩（评论 &#x2F; 说说 &#x2F; 后台互不影响），域名干净（博客走 apex，后端走子域避免 DNS 冲突）。</p><h2 id="四、模块设计"><a href="#四、模块设计" class="headerlink" title="四、模块设计"></a>四、模块设计</h2><h3 id="4-1-内容组织"><a href="#4-1-内容组织" class="headerlink" title="4.1 内容组织"></a>4.1 内容组织</h3><p>四类内容各司其职：</p><ul><li><strong>文章</strong>：长文写作，技术笔记与生活记录</li><li><strong>专栏</strong>：系列文章聚合，配 OKR 目标管理追踪进度</li><li><strong>笔记本</strong>：碎片化笔记，按标签树组织</li><li><strong>独立页面</strong>：关于 &#x2F; 友链 &#x2F; 生活 &#x2F; 说说等独立模块</li></ul><p>每类内容有独立的路由、模板、侧边栏配置，互不干扰。</p><h3 id="4-2-侧边栏-widget"><a href="#4-2-侧边栏-widget" class="headerlink" title="4.2 侧边栏 widget"></a>4.2 侧边栏 widget</h3><p>主页采用左右双栏布局，widget 各展所长：</p><ul><li><strong>welcome 博客指南</strong>：左栏顶部，霞鹜文楷钢笔楷书风格的便签卡片，写博客宗旨</li><li><strong>calendar 万年历</strong>：右栏日历网格，每格显示农历 &#x2F; 节气 &#x2F; 节日，高亮今天，附当日宜忌 + 法定节假日倒计时</li><li><strong>recent_talks 近期说说</strong>：右栏从 ech0 API 动态拉取最新 5 条说说，点击跳详情</li><li><strong>recent 最近发布</strong>：左栏文章列表，sticky 文章带「置顶」渐变徽章</li><li><strong>related 相关文章</strong>：文章内页按专栏机制推荐同主题文章</li></ul><p>所有 widget 都可按页面类型（首页 &#x2F; 文章 &#x2F; 笔记）灵活配置，不同场景侧边栏内容不同。</p><h3 id="4-3-互动系统"><a href="#4-3-互动系统" class="headerlink" title="4.3 互动系统"></a>4.3 互动系统</h3><ul><li><strong>Artalk 评论</strong>：自托管评论系统，Go + SQLite 轻量级，支持 Markdown &#x2F; 表情 &#x2F; 图片上传 &#x2F; 邮件通知。管理面板独立，可封禁 &#x2F; 审计</li><li><strong>Ech0 说说</strong>：自托管微博客，两列瀑布流布局 + 渐变毛玻璃卡片 + 点赞 &#x2F; 评论 &#x2F; 分享三件套 + APlayer 音乐 &#x2F; Bilibili 视频嵌入</li></ul><p>两个服务都跑在阿里云服务器上，通过 Nginx 反代暴露 API，数据独立可迁移。</p><h3 id="4-4-视觉设计"><a href="#4-4-视觉设计" class="headerlink" title="4.4 视觉设计"></a>4.4 视觉设计</h3><p>全站视觉语言统一：</p><ul><li><strong>背景图</strong>：山景照片 + 100px 模糊 + 300% 饱和度，整页 fixed 铺底，营造氛围感</li><li><strong>卡片</strong>：indigo→purple→pink 135deg 紫粉渐变毛玻璃，全站统一（文章卡片 &#x2F; 说说卡片 &#x2F; 标签徽章复用同一配色）</li><li><strong>字体</strong>：正文用思源宋体 Light 字重（笔画瘦劲，类似瘦金体的方正感），welcome 便签保留霞鹜文楷钢笔楷书做层次区分</li><li><strong>置顶徽章</strong>：sticky 文章标题前渲染「置顶」渐变 badge，复用强调色</li><li><strong>代码块</strong>：3D 立体阴影（右下偏移硬边阴影）+ 同色系淡渐变背景，呼应侧边栏蓝青绿渐变</li></ul><p>视觉打磨的核心是「一致性」：所有强调元素复用同一套渐变配色，所有圆角遵循统一的尺寸阶梯，所有字号遵循同一套比例。</p><h3 id="4-5-SEO"><a href="#4-5-SEO" class="headerlink" title="4.5 SEO"></a>4.5 SEO</h3><ul><li><strong>Open Graph</strong>：自动生成 og:type &#x2F; title &#x2F; url &#x2F; image 等社交分享标签</li><li><strong>Canonical</strong>：防备用站 &#x2F; 盗站分散主站权重，非主站访问弹「备用站 &#x2F; 盗站」提示并加 noindex &#x2F; nofollow</li></ul><h2 id="五、部署上线"><a href="#五、部署上线" class="headerlink" title="五、部署上线"></a>五、部署上线</h2><p>ICP 备案通过后，从 8443 临时端口切 443 标准端口，手机端访问不再被运营商拦截。阿里云 DNS 配 split 架构（apex CNAME GitHub，api A 记录服务器）。Nginx 反代后端容器，SSL 证书走 HTTP-01 自动续期，不用手动续。</p><p>部署流程：本地改 Markdown &#x2F; 配置 → <code>hexo clean &amp;&amp; hexo deploy</code> → GitHub Actions 自动构建 Pages → CDN 生效。整个流程不到 1 分钟。</p><h2 id="六、回顾与展望"><a href="#六、回顾与展望" class="headerlink" title="六、回顾与展望"></a>六、回顾与展望</h2><p>从 6 月底立项到 7 月底稳定运行，一个月迭代了七次（6-26 ~ 7-24）。每一版变更都留档在 Obsidian 笔记，包括变更记录（按日期追加历史）和项目文档（只反映最新状态），方便回溯与复盘。</p><p>博客是个长期项目，接下来打算：</p><ul><li>丰富生活记录栏目（相册 &#x2F; 旅行 &#x2F; 美食）</li><li>启用 timeline 时间线标签，把 GitHub issues 当说说发</li><li>持续打磨视觉细节（暗色模式 &#x2F; 移动端适配）</li></ul><p>博客的意义不在于有多少人看，而在于<strong>有一块属于自己的地方，可以认真地写一些东西</strong>。技术框架可以复刻，但写下的字、记录的瞬间，是独一无二的。</p><blockquote><p>让消失的留下痕迹，让抵达的可以回望。</p></blockquote>]]>
    </content>
    <id>https://nightfall7.top/2026/07/24/nightfall-blog-build/</id>
    <link href="https://nightfall7.top/2026/07/24/nightfall-blog-build/"/>
    <published>2026-07-24T07:00:00.000Z</published>
    <summary>从零到上线，用 Hexo + Stellar 搭建个人博客的完整过程，涵盖技术选型、架构设计、模块实现、视觉打磨与部署上线。</summary>
    <title>NightFall 博客搭建记</title>
    <updated>2026-07-24T07:45:54.424Z</updated>
  </entry>
</feed>
