git:20260727.45ec00f to v2.0.1

35 added, 75 removed. Audit A to A.

---
name: double6-deep-research
- description: 面向开放全景、固定对象比较和有界决策问题,使用宿主已有搜索与网页读取能力完成多来源深度研究并交付完整、可读、可核验的报告。用于用户要求深入调研某一主题、比较多个对象、形成有证据的决策建议、梳理某领域截至当前的研究进展或核验一组复杂事实,也适用于英文 deep research、landscape review、evidence-based comparison 请求;不用于任务状态查询、简单事实查询、单页摘要、热点推送、PDF 翻译或基础搜索工具横评。
+ version: 2.0.1
+ description: 面向开放全景、固定对象比较和有界决策问题,使用宿主已有搜索与网页读取能力完成多来源深度研究并交付完整、可读、可核验的报告。用于用户要求深入调研某一主题、比较多个对象、形成有证据的决策建议、梳理某领域截至当前的研究进展或核验一组复杂事实,也适用于英文 deep research、landscape review、evidence-based comparison 请求;不用于无需多来源综合与证据审计即可完成的轻量请求,例如任务状态查询、简单事实查询或单页内容摘要。
+ metadata:
+ openclaw:
+ homepage: https://github.com/double6-ai/double6-skills/tree/main/skills/double6-deep-research
+ emoji: "🔎"
+ requires:
+ anyBins:
+ - python3
+ - python
+ - py
---
# Double6 Deep Research
- 目标是回答用户的问题并交付一份真正可读的完整报告。来源数量、ledger 大小、字段数量和
- validator 通过都不能代替报告质量。
+ 交付完整、可读、可核验的报告;validator 通过不能代替报告质量。
## 1. 冻结任务合同
- 把用户请求拆成明确的问题清单,记录:
-
- - 研究对象、时间范围、地域和排除项;
- - 每个必须回答的问题;
- - 用户需要的输出形态、比较维度和决策用途;
- - 哪些结论需要当前信息,哪些可以使用稳定历史材料。
-
- 有关键歧义且不同解释会改变报告时再提问;否则采用保守假设并在报告中说明。报告语言和
- 格式跟随用户请求;用户未指定时使用其提问语言。
+ 把请求拆为问题清单,冻结对象、时间、地域、排除项、输出形态、比较维度和决策用途,并
+ 区分当前信息与稳定历史材料。仅在关键歧义会改变报告时提问,否则采用保守假设并说明;
+ 语言和格式跟随用户请求。
- 成本、时延、部署、采用、风险等用户明确要求的维度必须分别成为可检查的问题,不能合并成
- “应考虑这些因素”的泛化清单。
+ 用户明确要求的成本、时延、部署、采用和风险等维度须分别成为可检查的问题。
## 2. 制定自适应研究计划
- 为每个问题先冻结覆盖合同:需要哪些来源类型、是否必须有利益关系独立的证据、必须执行
- 哪些时效性/反证/遗漏检查,以及需要覆盖哪些对象和比较维度。优先一手来源;比较胜负、
- 行动建议、风险、真实采用等结论不能只依赖利益相关方自述。
-
- 不要预先规定统一来源总数。开放全景通常需要比固定比较更多来源,但是否充分取决于:
-
- - 每个重要问题是否已经有证据;
- - 关键对象和反例是否覆盖;
- - 来源是否足以区分事实、厂商自述和推断;
- - 继续搜索是否仍会改变主要结论。
-
- 不得把预设来源数量、搜索工具单批返回上限、耗时或完成若干轮当作充分性证明。
+ 为每个问题冻结来源类型、独立证据、时效/反证/遗漏检查、对象和维度。优先一手来源;
+ 比较、建议、风险和采用结论不能只依赖利益相关方自述。来源是否充分取决于问题、对象、
+ 反例和证据角色是否覆盖,以及继续搜索是否仍会改变主要结论,不能用预设数量、工具返回
+ 上限、耗时或固定轮次代替充分性判断。
## 3. 研究并持续补最高缺口
只使用宿主已经提供且用户允许的搜索、网页、浏览器或材料读取能力。不要配置 provider、
读取 credential、启动自建 runtime,或执行与研究交付无关的外部操作。
按以下职责循环研究:
1. 按问题而不是按网站收集材料;
2. 打开正文,区分全文、实质章节、元数据和不可访问状态;
3. 记录来源标题、发布者、URL、访问日和支持范围;时效性来源同时记录发布日期;
4. 对日期、价格、百分比、排名和建议所依赖的事实保存精确证据;
5. 完成主体覆盖后,按覆盖合同检查缺少的来源角色、对象、维度、更新材料和反证;
6. 再用不同策略执行对抗性饱和检查,主动寻找会改变、收窄或推翻主要结论的证据;
7. 最后一轮仍改变主要结论时继续研究,直到新的饱和检查不再产生实质变化,或如实交付
`partial`/`blocked`。
- 如果 WebFetch 或浏览器打开的只是导航页、目录页、登录页、脚本壳或错误页,不得标记为
- `full_text`。优先寻找同一官方站点的正文子页、官方 PDF、仓库中的原始 LICENSE/文档或
- 其它能直接支持该 claim 的权威材料;替代来源只能支持它实际覆盖的较窄结论。搜索结果
- 摘要可以帮助定位正文,但不能补足正文证据。
-
- 不得把搜索 snippet、研究者摘要、导航页或自己写的“来源快照”冒充官方正文。需要保存
- 快照时,必须是宿主实际取得的页面或文档内容,并记录 SHA-256。
+ 导航页、登录页、脚本壳、错误页和搜索摘要不得标记为 `full_text` 或充当正文证据。应改找
+ 官方正文、PDF 或仓库原始文档;替代来源只能支持其实际覆盖的较窄结论。快照必须来自宿主
+ 实际取得的页面或文档,并记录 SHA-256,不能用研究者摘要冒充原文。
## 4. 先完成报告,再整理最小审计记录
报告结构由问题决定,但至少包括:
- 执行摘要:直接回答最重要的问题;
- 范围、时间点和方法;
- 按用户问题组织的主体分析;
- 必要的对象比较、冲突证据和决策建议;
- 不确定性、限制和仍未知事项;
- 可点击或可定位的来源。
不要把 source ledger、检索过程或内部字段机械展开成正文。每个章节都要形成读者可以理解
和使用的结论;建议要区分来源事实、跨来源推断和本报告的政策/行动判断。
对明确要求的量化或决策维度,给出可比数据及口径;公开数据未定位时逐项写明未知边界、
已检查的来源范围和可执行的本地测量方案,不能用模型单价或定性框架冒充任务成本、时延、
部署状态或真实采用证据。
交付目录只需:
```text
request_snapshot.md
final_report.md
research_record.json
snapshots/ # 仅在实际保存正文时需要
validation_receipt.json # 运行最小 validator 后生成
independent_review.json # 完成独立审阅后生成
```
`research_record.json` 使用 schema v2,最小字段见
[report-quality.md](references/report-quality.md)。只登记问题、来源、关键 claim、研究轮次
和停止理由,不保存完整查询或候选全集。必须分别记录 `research_status`、
`research_as_of`、逐问题覆盖要求、来源材料类型和利益关系、各轮检查策略与结论影响;
不要用一个模糊的 `status` 同时表达研究完成度与独立复核结果。
## 5. 停止与完成
- 只有同时满足以下条件才可标记 `complete`:
-
- - 原始问题清单全部在报告中得到明确回答;
- - 每个问题要求的来源类型、独立证据、检查、对象和维度全部覆盖;
- - 没有未关闭的高优先级证据缺口;
- - 已执行覆盖缺口和对抗性饱和检查;
- - 最后一次饱和检查没有再改变、收窄或推翻主要结论;
- - 关键结论及引用出现在对应问题的论证章节中且可核验;
- - 报告从头到尾完整可读;
- - 能解释为什么继续搜索不太可能改变主要结论。
-
- 否则:
-
- - 已有可用证据但问题未完全闭合时交付 `partial`,逐项列出缺失问题、当前证据和下一步;
- - 授权、工具、访问或核心证据条件使研究无法继续时交付 `blocked`,列出阻塞条件和解除条件;
- - 不要把诚实的 `partial`/`blocked` 伪装成完整报告,也不要把它们当作 validator 失败。
+ 只有问题、来源角色、独立证据、检查、对象和维度全部覆盖,没有高优先级缺口,且最后一次
+ 对抗性饱和检查不再改变主要结论时,才可标记 `complete`。尚有可继续补齐的缺口时交付
+ `partial`;授权、工具、访问或核心证据阻断时交付 `blocked`。两者都必须列出缺口、当前证据
+ 和解除或下一步条件,不能伪装成完整报告。
运行最小底线检查:
```bash
# macOS / Linux
python3 <skill-dir>/scripts/validate_research_bundle.py <bundle-dir>
# Windows PowerShell / CMD
py -3 "<skill-dir>\scripts\validate_research_bundle.py" "<bundle-dir>"
```
- 脚本需要 Python 3.10 或更高版本,只使用标准库;Windows 没有 `py` launcher 时把命令中的
- `py -3` 换成可用的 `python`。它按 `complete`、`partial`、`blocked` 分别检查状态合同,
- 检查逐问题来源与检查覆盖、饱和停止、关键引用、候选文件哈希和独立复核记录。合法的部分
- 交付返回校验成功并保留 `partial`/`blocked` 标签;脚本不联网验证来源内容,也不判断
- 覆盖要求是否合理或报告是否优秀。
-
- 所有路径都使用宿主原生绝对路径或 bundle 内相对路径。不要假定 `/tmp`、POSIX 路径或
- `cygpath` 一定存在;Windows 工具要求盘符路径时,先用宿主提供的路径转换能力取得
- `C:\...` 形式,再读取文件。`snapshot_path` 必须留在 bundle 目录内。
+ 脚本需要 Python 3.10+ 且只使用标准库;Windows 没有 `py` 时使用可用的 `python`。它检查
+ 状态合同、逐问题覆盖、饱和停止、引用、候选哈希和复核记录,但不联网判断来源真实性或
+ 研究质量。路径须使用宿主原生绝对路径或 bundle 内相对路径,`snapshot_path` 不得越界。
## 6. 独立审阅
- 完整报告必须由未参与生成的 reviewer 从头到尾阅读。Reviewer 使用未继承生成对话的新鲜
- 上下文,只接收原始请求、候选产物和核验来源。Reviewer:
-
- - 逐项核对原始问题是否回答;
- - 核验全部关键结论,并抽检普通事实;
- - 检查覆盖要求是否合理、是否提前停止,以及明显遗漏、过时信息、错误对象、错误价格和
- 不受支持的建议;
- - 只评价,不修补候选报告。
-
- 先运行 validator 并取得候选文件 SHA-256,再把复核结果和这些哈希保存为
- `independent_review.json`,随后再次运行 validator。最小格式、独立性标准和宿主示例见
- [report-quality.md](references/report-quality.md)。报告和 validator 完成但尚无独立审阅时,
- 交付标签只能是 `complete_draft`;只有独立 reviewer 给出 `0 blocker / 0 major`、确认研究
- 深度充分且饱和检查可信、全部问题覆盖和全部关键 claim 核验通过,并且候选文件哈希未变化时,validator 才会产生
- `reviewed_pass`。宿主没有隔离 reviewer 时如实交付未复核草稿,不能由生成者自评为通过。
-
- Validator 通过、来源很多或文件很大都不能替代独立审阅结论。
+ 完整报告必须由未参与生成、未继承生成对话的 reviewer 阅读原始请求、候选产物和核验来源;
+ reviewer 只评价,不修补。先运行 validator 取得候选哈希,保存
+ `independent_review.json` 后再验证。未隔离复核时只能交付 `complete_draft`;只有 `0 blocker /
+ 0 major`、问题与关键 claim 全部核验、深度和饱和检查可信且哈希未变化时才是
+ `reviewed_pass`。格式与完整复核清单见 [report-quality.md](references/report-quality.md)。
隐私、授权和失败关闭边界见
[privacy-and-fail-closed.md](references/privacy-and-fail-closed.md)。