# Zhiforge

> 知炼 - 将知识库(Markdown博客)智能转化为知乎回答并自动发布。支持搜索热点问题、匹配知识库、撰写文章、自动发布、质量审核、回存知识库的完整闭环。

- Skill: `yfge/zhiforge` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add yfge/zhiforge`
- Raw SKILL.md: https://api.skillmd.com/api/skills/yfge/zhiforge/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: yfge (https://skillmd.com/u/yfge)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/yfge/zhiforge

---


# 知炼 (ZhiForge) — 知识库 → 知乎回答 完整闭环

## 配置

配置文件：`{baseDir}/.claude/settings.json`

```json
{
  "knowledge_base": "/path/to/markdown/files",
  "blog_url": "https://your-blog.github.io",
  "blog_repo": "/path/to/blog/git/repo",
  "author": {
    "zhihu_name": "你的知乎昵称",
    "wechat_official": "你的公众号",
    "bio": "你的简介"
  },
  "expertise": ["AI 编程", "Claude Code"],
  "high_match_topics": ["vibe-coding", "AI 辅助开发"]
}
```

## 完整流程（全自动，不问用户）

当用户说"知乎文章"、"zhiforge"、"自动发知乎"等触发词时，执行以下完整流程：

### ⚠️ 核心策略（2026-03-03 更新）
- **发专栏深度文章 + 关联热门问题**（文章关联问题能涨粉，纯专栏曝光不够）
- **不单独写回答**，只写文章，但文章要关联匹配的问题
- **知乎定位**：专业信誉背书 + 间接引流（不是赚致知盐粒）
- 致知计划排除 AI 创作和导流内容，不作为收益目标
- anti-AI 检查是为了防降权，不是为了过致知审核

### Step 1: 读取配置
1. 读取 `{baseDir}/.claude/settings.json` 获取知识库路径、作者信息
2. 读取 `{baseDir}/CLAUDE.md` 获取博客文章索引

### Step 2: 获取已发布列表（去重）
1. 用 browser 打开 `https://www.zhihu.com/creator/manage/creation/article`
2. 获取已发布文章标题列表

### Step 3: 选题
来源（优先级从高到低）：
- **知乎热点搜索**：用专业领域关键词搜索当天热门话题 `https://www.zhihu.com/search?type=content&q=...`
- **知识库驱动**：基于博客文章找有深度可写的主题
- **手动指定**：用户直接给出主题

选题标准：
- 聚焦 **OpenClaw Agent / Vibe Coding / AI编程实战**
- 有深度、有实操、有踩坑细节
- 排除已发布过的（标题相似度 > 80%）

### Step 4: 匹配知识库
1. 搜索 knowledge_base 目录中的 .md 文件
2. 根据选题关键词匹配相关文章
3. 读取匹配的博客内容作为素材
4. 匹配度低的跳过，找下一个问题

### Step 5: 撰写文章
**商业目标**：知识分享 → 引流加V → 付费咨询（366元/次已验证）→ 粉丝圈层
**内容聚焦**：**OpenClaw Agent** 和 **Vibe Coding** 为核心方向

写作风格（保持老拐风格）：
- 开门见山，先给结论
- 用实际案例说话（引用博客中的项目经验）
- 技术内容要落地可执行
- 代码块标注语言
- 重点用 **加粗**
- **结尾引导**：`有问题可以私信我` / `评论区聊`
- **绝对禁止**：文中/评论区提博客链接、公众号名称、微信号（知乎会限流/删回答）
- **引流暗语**：只说"私信我"，不提任何站外平台

#### 去 AI 味（核心，必须严格执行）

**写完文章后，必须读 `references/anti-ai.md` 逐条过检查。** 该文件是**技术文章专用**的去 AI 味手册（区别于小说版），包含：
- 第一层：句式级 — 通用禁用句式 + 技术文章特有 AI 句式（"X 是一种强大的工具"等）
- 第二层：段落/结构级 — 结构太工整、观点太平衡、代码太教科书
- 第三层：内容级 — 缺具体踩坑细节、没有时间线和情绪、数据太精确
- 第四层：语气级 — 人味制造技法 + 避免讲师腔/官方腔/鸡汤腔
- 终极检测流程（4 步扫描 + V2EX/掘金测试）

**速查禁用句式（完整列表见 anti-ai.md）：**
```
# 通用 AI 八股
❌ "不是A，而是B" / "与其说A，不如说B" / "这不仅仅是A，更是B"
❌ "某种意义上来说" / "在这个A的时代" / "值得一提的是"
❌ "不得不说" / "毫无疑问" / "A，而非B" / "某种程度上"
❌ "事实上"作为段落开头 / "然而"作为段落开头（全文最多2次）
❌ "总的来说" / "综上所述" / "希望这篇文章对你有所帮助"
❌ "首先……其次……最后……"（三段论八股）

# 技术文章特有
❌ "X 是一种强大的工具/框架" / "X 为开发者提供了……"
❌ "在实际开发中，我们通常会……"（伪经验）
❌ "选择 X 还是 Y 取决于具体需求"（万能废话）
❌ "随着 X 的不断发展……" / "X 的核心理念是……"
❌ "总结出一个核心实践/方法论/最佳实践"（培训PPT腔）

# 排版指纹（不是句式，但一样暴露 AI）
❌ 括号注释排比：连续 3 个 "XX（解释），YY（解释），ZZ（解释）"
❌ 加粗金句段过多：全文超过 3 个加粗独句段 = PPT感
❌ "第一步→第二步→第三步" 编号标题：去掉编号，用自然过渡
```

**技术类回答的人味制造技法：**
- **偶尔口语化**："就……怎么说呢""反正就那么个意思""说白了就是"
- **偶尔自嘲/吐槽**："我当时也觉得离谱""踩了这个坑之后我悟了"
- **偶尔跑题再绕回来**："扯远了，说回正题""对了这里插一句"
- **不完美的表达**：用"差不多"但不精确的词，句子偶尔写拧了但意思到了
- **偏执和执念**：对某个技术点有不成比例的关注，反复强调
- **留白**：不解释"为什么这样做"，直接给结论。读者自己品。

**终极检测：** 随机抽3段，想象匿名发在V2EX/掘金。会不会有人说"AI写的"？如果有1%的可能，那段必须改。

将文章写入 `workspace/stories/zhihu/YYYY-MM-DD-<slug>.md`（持久化存储，不用 /tmp/）

### Step 5b: 博客直发模式（从已有博客文章发布）
当用户指定一篇已有的博客文章（而非自动匹配生成）时：
1. 读取博客原文
2. **适当改写**为知乎风格（去掉 Jekyll frontmatter、调整格式、加知乎引导语）
3. 不需要大幅重写——博客本身就是知识库内容
4. 保存到 `workspace/stories/zhihu/YYYY-MM-DD-<slug>.md`
5. 跳到 Step 6 发布

### Step 6: 发布文章
**必须使用专栏页面发布**（避免反爬）：

#### 6a. 准备文件
1. 将 markdown 文件复制到浏览器上传目录：
   ```
   /var/folders/zp/8m3zqqgj2fb0_njgh6scd8qm0000gn/T/openclaw-501/uploads/
   ```
   **必须！** browser upload 工具只能读取这个目录下的文件。

#### 6b. 导入 Markdown
1. 打开 `https://zhuanlan.zhihu.com/write`（每次新页面，导入是追加不是替换）
2. snapshot 获取页面结构
3. 找到并点击 **"导入"** 按钮（通常在工具栏区域，文字为"导入"）
4. 在弹出的下拉/菜单中，点击 **"导入文档"**
5. 此时会触发文件选择对话框 → 使用 `browser action=upload paths=["/path/to/uploads/xxx.md"]`
6. 等待 2-3 秒，正文区域出现导入内容
7. snapshot 确认正文已有内容

#### 6c. 填写标题
1. 找到标题输入框（placeholder 通常为"请输入标题"）
2. click 聚焦标题框
3. type 输入标题文字

#### 6d. 投稿至问题（可选但强烈推荐）
1. 在页面右侧或底部找到"投稿至问题"区域
2. 如果是折叠的，先 click 展开
3. 在搜索框中 type 输入问题关键词（2-4 个字即可，太长搜不到）
4. 等待 1-2 秒出现搜索结果
5. 在结果列表中找到目标问题，点击 **"选择"** 按钮
6. 确认问题已选中（显示问题标题）

#### 6e. 发布
1. 点击 **"发布"** 按钮
2. 如果弹出确认对话框（如话题选择），按需处理后确认
3. 等待页面跳转，URL 变为 `zhuanlan.zhihu.com/p/xxxxx` 表示成功
4. 记录发布链接

**关键坑点：**
- **文件必须在 uploads 目录**：browser upload 无法读取其他路径
- 不能直接 fill 正文，markdown 语法会变纯文本 → 必须用导入
- 导入是追加不是替换 → 每次打开新的 write 页面
- 投稿至问题的搜索框是 combobox → 先 click 聚焦再输入
- 搜索关键词不宜太长，2-4 个核心词效果最好
- 对话框用 Escape 关闭
- 发布按钮可能 disabled → 要等标题和正文都有内容
- **发布后默认开启赞赏**（送礼物设置 → 开启）

### Step 7: 质量审核（交叉验证）
发布后，用另一个模型（如 qwen）审核文章质量：
- 标题吸引力、开头力度、论据充实度
- 逻辑结构、知乎风格匹配、结尾引导
- 总分和改进建议

使用 `sessions_spawn` + 不同 model 参数来实现交叉验证。

### Step 8: 回存知识库（闭环）
如果质量审核通过：
1. 在文章开头加上 Jekyll frontmatter（layout: post、title、date、tags）
2. 保存到 `blog_repo/_posts/YYYY-MM-DD-标题.md`
3. `git add` + `git commit` + `git push origin master`
   - **注意**：blog repo 的默认分支是 `master`（不是 main）

这样知乎文章反向充实了博客知识库，形成正向循环。

**博客直发模式下跳过此步**（文章本来就来自博客）。

### Step 9: 输出报告

```
✅ 发布成功

问题：[问题标题]
文章：[文章标题]
链接：https://zhuanlan.zhihu.com/p/xxxxx
参考博客：[博客文件名]
质量评分：[总分]/10
知识库：已回存 ✅
```

## Browser 工具映射

所有页面操作使用 OpenClaw 的 `browser` 工具（profile="openclaw"）：

| 操作 | 命令 |
|------|------|
| 启动浏览器 | `browser action=start profile="openclaw"` |
| 打开页面 | `browser action=navigate targetUrl="..."` |
| 获取内容 | `browser action=snapshot compact=true` |
| 点击 | `browser action=act request={kind:"click", ref:"..."}` |
| 输入 | `browser action=act request={kind:"type", ref:"...", text:"..."}` |
| 按键 | `browser action=act request={kind:"press", key:"Escape"}` |
| 上传文件 | `browser action=upload paths=["/path/to/uploads/file"]` |
| 截图 | `browser action=screenshot` |
| 等待 | `browser action=act request={kind:"wait", timeMs:3000}` |
| 关闭浏览器 | `browser action=stop` |

**重要规则：**
- 文件上传路径必须是 uploads 目录：`/var/folders/zp/8m3zqqgj2fb0_njgh6scd8qm0000gn/T/openclaw-501/uploads/`
- 先 `cp` 文件到 uploads 目录，再用 `browser action=upload`
- **用完浏览器后必须 `browser action=stop`**，不要让 Chrome 一直开着

## 其他命令

- **"检查知乎邀请"**：只执行 Step 2-3，列出可回答问题
- **"草拟知乎回答 [问题]"**：只执行 Step 4-5，不发布
- **"知乎热点"**：搜索热点 + 全流程
- **"发博客到知乎 [文件名/路径]"**：博客直发模式（Step 5b → 6 → 7），跳过知识库匹配
- **"发到知乎 [问题URL]"**：指定问题投稿，跳过 Step 3 搜索

详细命令模板见 `{baseDir}/.claude/commands/*.md`

## 注意事项

- **全程自动执行**，遇到问题自行决策或跳过
- **知识库匹配度低的问题要跳过**，不要强行回答
- 保持作者风格：务实、不油腻、有干货
- 发布失败重试一次，仍失败则输出错误信息
- 连续 3 个问题都不合适则结束

