# Wenqu Library

> 面向中文内容创作的以证据为驱动的素材收集与整理流程，涵盖规划、搜索、下载、索引与可复用 素材库维护，适用于文章、报告、教程、项目介绍和说明材料。当用户要求“收集素材”“整理资料” “建立素材库”“抓取网页”或“收集网页素材”，或使用 "collect research", "build a source library", "save this webpage", "web scraping" 等英文表达时使用。

- Skill: `gogoingai/wenqu-library` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add gogoingai/wenqu-library`
- Raw SKILL.md: https://api.skillmd.com/api/skills/gogoingai/wenqu-library/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Research & Search
- License: MIT
- Author: gogoingai (https://skillmd.com/u/gogoingai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/gogoingai/wenqu-library

---


# 文库（Library）Skill

> 📦 项目仓库与源码：<https://github.com/gogoingai/wenqu-skills>

## 用户输入工具

当本技能需要用户确认选择、补充必要信息或授权有副作用的操作时：

1. 优先使用当前运行时提供的原生用户输入工具，例如 `AskUserQuestion`、`request_user_input`、`clarify`、`ask_user` 或等价能力。
2. 若没有此类工具，使用带编号或字母选项的文本问答。
3. 同一决策阶段中彼此独立的问题可合并提问；后一个问题依赖前一回答时，按优先级逐个问。
4. 已由用户当前指令、调用方或文章偏好提供的信息，不重复询问。
5. 文中出现的具体工具名均为示例；应替换为当前运行时的等价能力。

## 定位

文曲创作流程的第一环——博观积累。在动笔写文章之前，先收集和整理素材，让创作有据可依、有米可炊。

文库不是“见什么都存”的素材仓库，而是**带着写作意图做收集**：当选题、写作目标和大致范围开始清楚后，再去找真正有用的相似文章与相关资料，避免把大量弱相关材料堆进来。

文库不是单篇文章的素材库（那由 `wenqu-write` 在写作时建立在文章存储 `wenqu-skills/{文件名}/references/materials/` 路径下），而是一个**跨文章、可长期沉淀**的个人知识库：

- 收集技术资料、案例、观点与灵感
- 整理零散信息，形成可复用素材
- 沉淀个人知识资产
- 为后续文章创作（`wenqu-write`）提供内容基础

## 触发识别

| 用户信号 | 流程 |
|---------|------|
| "收集素材"、"整理资料"、"建素材库" | 四步收集流程 |
| "沉淀知识"、"积累案例" | 沉淀与分类 |
| "抓取这个网页"、"把这篇公众号存下来" | 下载、整理（流程第 3、4 步） |

## 存储位置

两级存储，职责不同：

### 全局文库（跨文章长期资产）

`$HOME/.gogoingai/wenqu-skills/library/`，按主题/领域分文件：

- `{主题}.md` —— 每个主题一个文件，内含该主题的素材条目
- 条目格式：`| 编号 | 来源 | 内容 | 标签 |`（编号 L1、L2……）
- 只存**提炼后的条目和原始链接**，不存抓取的原始文件

### 本篇素材目录（单篇文章工作台）

`{项目根目录}/wenqu-skills/{文件名}/references/materials/`，由 `wenqu-write` 在写作流程中建立和使用：

```text
materials/
├── index.md      # 素材索引（检索与管理的唯一入口）
├── local/        # 本地素材：源码大段摘录、本地文档导出
├── articles/     # 网页文章：博客、公众号、新闻、教程
├── papers/       # 论文、研究报告
└── docs/         # 官方文档、deep-crawl 整站抓取产物
```

分类按**内容类型**分目录；同类文件多时可再按来源站点建二级子目录（如 `articles/mp.weixin.qq.com/`）。

**index.md 索引格式**（每条一行）：

```markdown
| 编号 | 摘要 | 来源类型 | 来源 | 检索渠道 | 文件路径 | 用途 | 标签 | 关联章节 | 日期 |
| M1 | xxx 机制源码摘录 | 实现事实 | src/cache.py:42 | 本地文件 | local/cache-lru.md | 事实素材 | 缓存,LRU | 2.1 | 2026-07-25 |
| M2 | 某公众号文章：XX 系统实践 | 外部研究 | https://mp.weixin.qq.com/s/xxx | agent-native、wenqu-cli:sogou | articles/mp.weixin.qq.com/xx.md | 写法参考 | 架构 | 待定 | 2026-07-25 |
```

登记规则：

1. **来源必填**：网页素材填完整原始 URL（不是域名，是能回到原文的那条链接）；本地素材填 `path:line`；确实没有来源的标「用户口述或粘贴」
2. **来源类型**沿用 provenance 词汇：实现事实、团队选择、外部研究、合理推断、简化场景、待确认（边界见 `wenqu-write` 的 `references/planning/content-provenance.md`）
3. **编号唯一**：M1、M2…… 全篇唯一，骨架和审查引用这个编号
4. **检索渠道必填**：填 `agent-native`、`wenqu-cli:{engine}`、`wenqu-cli:{engine}:{channel}`、`用户提供` 或 `本地文件`；同一 URL 被多个渠道发现时合并填写，不丢渠道信息。`channel` 仅在 CLI 输出不是 `direct` 时记录，例如 `browser` 或 `delegate:duckduckgo`
5. **文件路径相对 materials/ 填写**；只登记不写文件的短素材（几行数字、一句话事实）该列填 `-`
6. **用途分两类**：`写法参考`（相似文章，不能当事实来源）与 `事实素材`（支撑正文的机制、数字、案例）
7. **标签**：2~4 个关键词，方便 grep 检索；素材多了以后按标签或目录检索，不靠通读
8. **关联章节**：收集阶段先填「待定」，骨架定稿后回填章节号
9. 素材有实体文件时才进目录；小片段直接写在 index.md 摘要列即可，不为每条都建文件

index.md 在主索引表之外保留两个专项区（R0 审查要读）：

- **冲突裁决**：冲突 claim、各方来源、采用依据、裁决结果、受影响章节
- **评测设计**：评测对象、比较条件与口径、指标含义、可证明与不可外推范围

格式见 `wenqu-write` 的 `references/planning/questionnaire.md`「写入 materials/index.md」一节。

## 流程

素材收集分四步：**规划 -> 搜索 -> 下载 -> 整理**。在 wenqu-write 的规划阶段（Step 1/1.5 完成后）执行；用户单独喊"收集素材"时同样走这四步。

每一步执行细则见 `references/collection-playbook.md`；Wenqu CLI 的命令、引擎范围、浏览器回退和下载边界见 `references/wenqu-cli.md`。

### 1. 规划

根据写作规划产出**收集清单**：要找哪些相似文章（写法参考）、哪些相关素材（事实素材）、中英文搜索关键词组合、预计抓取数量。清单列给用户确认后开始执行（**内容范围的唯一确认点**）；首次使用 Wenqu CLI 前，agent 主动向用户说明用途并请求一次明确授权，获授权后安装、设置并验证（pipx 隔离安装，流程见 `references/wenqu-cli.md`）；已授权并验证通过的版本在后续任务中直接复用，不在每次任务重复请求授权，也不自动联网升级——如需升级由用户主动发起。授权或安装失败不等同于"可跳过 CLI 抓取"，回退规则见 Step 3。

### 2. 搜索

**优先用 `wenqu library search`**（多引擎候选，含百度、必应、Brave、搜狗、CSDN、掘金等；CLI 已授权并 ready 时为默认搜索路径，不静默跳过）。CLI 未授权、未安装或整体失败时，再用 agent 自带的联网搜索工具按相同关键词补充候选，检索渠道记为 `agent-native`。CLI 对百度、必应、Brave 与搜狗的直连失败或空结果自动做一次受限的 Crawl4AI 浏览器回退；完整分流见 `references/wenqu-cli.md`。合并全部候选、统一去重与分级后才进入下载；用户直接提供 URL 的，保留为 `用户提供` 渠道且可跳过检索。

### 3. 下载

用 `wenqu library fetch` 抓取（**默认抓取路径，不是可选增强**——Crawl4AI 封装其中，是本技能唯一的受管抓取链路），产物直接写入本篇素材目录对应分类下：

- 首次使用前，agent 主动向用户说明需要安装 Wenqu CLI、必要时下载受管浏览器运行环境，并请求一次明确授权；获授权后安装、设置并验证（已安装并验证通过则直接复用，不重复请求授权，不自动联网升级）。授权、安装或验证失败时，agent 不要求用户复制命令或排障，改用 agent 自带抓取作为**回退**（不是常规路径），并在 index.md 登记「CLI 不可用：原因 + 实际下载方式」；不得把"未主动请求授权"等同于"CLI 不可用"而默认跳过 CLI 抓取
- 单页、整站抓取（`--max-pages` 必须显式限制）与微信公众号直达的命令和边界见 `references/wenqu-cli.md`
- 边抓边登记（先记 URL 与路径，摘要后补）；失败的 URL 登记「抓取失败：原因」，不静默跳过；回退到原生抓取的 URL 同样登记回退原因

### 4. 整理

通读下载产物写摘要，按登记规则写入 index.md；与全局文库去重；把可跨文章复用的条目提炼后回收进全局文库（L 条目，只存条目和链接，原始文件留本篇）；收尾向用户一句话汇报成果与失败清单。

## 收集顺序

当用户已经有明确写作任务，或 `wenqu-write` 已完成初步规划时，文库按下面顺序工作：

1. **先接收规划结果**：至少拿到题目方向、写作目标、目标读者、范围边界、暂不覆盖内容中的一部分
2. **先找相似文章**：找已经存在的文章、博文、官方长文、案例拆解，重点看它们的角度、结构、切口，而不是照抄结论
3. **再找相关素材**：围绕已确认的角度补充源码、文档、论文、发布记录、数据、讨论与案例
4. **最后回收进文库**：把相似文章和相关素材都沉淀成条目，供后续多篇文章复用

## 文库输出

文库对写作流程提供两类输出：

1. **相似文章候选**
   - 用来帮助判断切入角度、章节组织方式、读者预期
   - 只能作为“写法参考”，不能直接当事实依据

2. **相关素材清单**
   - 用来支撑正文里的机制、数字、案例、对比与背景
   - 必须保留原始来源（URL 或 `path:line`），供 `wenqu-write` 写入本篇 index.md

## 与 wenqu-write 的衔接

`wenqu-write` 在 **完成 Step 1 / Step 1.5 的初步规划后**，进入 Step 2 素材收集时调用本技能的四步流程，而不是直接开始大范围扫资料。调用时至少带上：

- 主题与题目方向
- 写作目标
- 目标读者
- 范围锁定（尤其是不打算展开的部分）
- 当前已经明确的关键词与模块名

文库收到这些信息后，先查全局文库有没有现成条目（避免重复收集），再执行四步流程，产出并写入本篇 `references/materials/`（含文件与 index.md 登记），返回两组结果：

1. **相似文章**：帮助确定切入角度、章节组织、叙事方式
2. **相关素材**：帮助补机制、事实、数字、案例与对比

全局文库条目标成 L1、L2……；本篇素材目录条目标成 M1、M2……。**L 条目是长期资产，M 条目是本篇工作台。**

## 核心原则

1. **素材可追溯**：每条素材必须在 index.md 登记来源（完整 URL 或 `path:line`），没有来源的素材不进正文
2. **跨文章复用**：全局文库是长期知识库，只存提炼条目和链接；原始文件留在本篇素材目录
3. **分类归档**：网页素材按内容类型分目录存放（articles/papers/docs/local），index.md 统一索引，素材再多也可检索
4. **与 wenqu-write 分工**：文库管收集与长期积累，本篇 index.md 管本篇素材；文库条目可被多篇文章引用
5. **规划驱动收集**：先有题目方向和大致范围，再决定收什么，不做无边界囤积；`--max-pages` 等限量参数显式设置
6. **相似文章先于零散资料**：先看别人怎么切题，再决定还缺哪些资料
7. **失败可见**：抓取失败的 URL 登记并标注原因，不静默跳过
8. **CLI 的定位**：搜索与下载均以 `wenqu library`（CLI）为优先路径——`wenqu library search` 多引擎候选为默认搜索、`wenqu library fetch`（内含 Crawl4AI）为默认抓取，不引入第二套抓取 CLI/MCP。agent 自带的搜索/抓取仅在 CLI 未授权、安装失败或抓取失败时作补充回退，且回退须登记原因；"不阻断收集"指回退不让流程卡死，不等于"可默认不用 CLI"，也不等于"原生优先、CLI 补充"
9. **agent 负责安装与验证**：首次使用 Wenqu CLI 前主动说明并请求用户明确授权；获授权后由 agent 安装锁定版本（见 `references/wenqu-cli.md`）、完成必要的浏览器设置和健康验证，已安装则直接使用已验证版本，不在每次任务中自动联网升级，绝不让用户自行执行命令

