# Bear Counter

> 给一句话或一段话，找出真实学术文献来反对它——相反结论、边界条件、替代解释、方法批评、复制失败。按威胁程度排序，每篇附一行"它如何威胁这个观点"和"怎么回应它"。底层走真实检索（scimaster-cli），绝不编造反例。 **以下情况请主动触发本技能**：用户想"提前挡住审稿人"、"找这个结论的反例"、"这个方向有没有争议"、"有没有跟这个相反的研究"、"帮我攻击这个论点"、"这个结论稳不稳"、"想知道有哪些反对意见"——即使用户没有说"bear-counter"，只要意图是**为一个观点寻找学术反对证据**，就使用本技能。bear-support 和 bear-counter 配对使用效果最好：对同一段话各跑一遍，就能同时看到正反两面。 不适用于：找支持文献（用 bear-support）、选题查重（用 bear-scoop）、概念地图（用 bear-map）、溯源演化史（用 bear-trace）。

- Skill: `xuzhougeng/bear-counter` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add xuzhougeng/bear-counter`
- Raw SKILL.md: https://api.skillmd.com/api/skills/xuzhougeng/bear-counter/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: xuzhougeng (https://skillmd.com/u/xuzhougeng)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/xuzhougeng/bear-counter

---


# bear-counter · 找反对文献

一个任务：你交来一个观点，它带回真实存在的反对文献。你靠本能去找支持；挑剔你的审稿人读的是你跳过的那些。对同一段话把 bear-support 和 bear-counter 各跑一遍，你就能同时看见两面。

先读 `references/sci-cli.md`——CLI 检测步骤、用法和铁律。
再读 `references/output-system.md`——三层输出体系和 HTML 外壳规范。

## 步骤（固定顺序）

**Step 0 — 确认 CLI 可用**
运行 `sci --version`。未安装就给安装命令并停止；认证错误就提示 `sci init` 并停止。

**Step 1 — 锁定主张**
把观点压缩成一个精确、可证伪的句子。挖出它隐含的范围（哪个人群、什么条件、如何测量）——最容易被攻击的地方往往藏在没说出口的假设里。

给主张编号为 `C1`。如果用户输入多个主张，先拆成 `C1`、`C2`、`C3`，但默认优先攻击最核心的一条；其余主张只在检索预算允许时处理。

**Step 2 — 构建五类对立查询，并告知用户**
基于真实主张生成五个方向：
1. 直接矛盾（结果相反）
2. 边界 / 复杂化（在哪些条件下它减弱或反转）
3. 替代解释（同一现象，不同机制）
4. 方法批评（该方法或测量工具的已知缺陷）
5. 复制失败 / 零结果

在输出里列出这五个方向（每个一行说明将要用什么查询词搜索），然后**直接开始检索，不等待用户确认**——除非主张本身含义模糊，才先确认再执行。全部搜完比让用户逐一审批效率高得多；如果用户事后想调整方向，告知他们可以重新指定。

**Step 3 — 检索各方向，展示查询词**
宽泛扫描用 `ultra_low`（免费），有收获的方向用 `low` 复跑。每个方向用不同的 `--prefix`。**在输出里嵌入每个方向实际使用的查询词**——用户需要看见"它搜了什么"才能判断结果可信度，也方便事后调整。

**Step 4 — 分类并评定威胁等级**
每篇真实检索到的反对文献：
- 归入哪类挑战（五类之一）
- 一行"它如何具体威胁这个主张"
- 威胁等级：高 / 中 / 低（取决于被反驳的点有多核心，以及文献本身的说服力）
- 一行"需要展示什么才能回应它"

威胁等级判定口径：
1. 高：直接挑战核心因果、核心结论或核心适用范围
2. 中：挑战边界条件、替代机制、测量有效性或外推范围
3. 低：只构成背景性限制，或证据与主张有较远距离

不要把"研究不足"写成"观点被反驳"。空结果只能说明本次检索没有找到可用反对证据。

**Step 5 — 安静就报安静**
某个方向搜回来没有真正的反对文献，就如实说"这个方向未找到反对证据"，并说清楚哪种可能更大：观点未被挑战，或问题研究不足。不要捏造一个对立面来显得全面。

## 输出格式

检索方向列表后，最危险那篇置顶，其余按类型分组：

```
[!] 最危险
Smith et al. 2023 — "论文标题"
威胁程度 ████████░░ 高 · 直接矛盾
→ 具体怎么威胁你的主张（一句话）
回应：应对方向（一句话）
查询词：actual query used
```

其余按类型分组（**直接矛盾 / 边界条件 / 替代解释 / 方法批评 / 复制失败**），每篇格式同上。
威胁程度：高 = `████████░░`，中 = `█████░░░░░`，低 = `███░░░░░░░`

未找到反对证据的类型：`— [类型名] 此方向未检索到反对文献`，不从列表消失。

## 输出物

检索结束后创建 `{topic-slug}/` 子文件夹，输出四个东西：

1. **终端** — 直接 print TUI 格式
2. **`report.md`** — 按 `output-system.md` 的结构化 Markdown 规范生成：稳定 YAML front matter + 一眼结论 + 威胁矩阵 + 研究动作建议 + 证据表 + 详细证据 + 检索透明度 + 可复用 JSON
3. **`report.html`** — 自包含 HTML，按 `output-system.md` 规范生成
4. **`references.bib`** — 合并所有 query 生成的 `.bib` 文件，去重后只保留报告中实际引用的文献条目

HTML 签名体验：**威胁面板**，强调色 `#dc2626`（红）。文献区按五类挑战方向分 tabs。HTML 组件规范见 `output-system.md` 的 bear-counter 节。

简单查询只给 1–2 条轻量下一步。写 discussion 或回复审稿人时给具体建议：应主动承认哪些边界、如何回应、建议补哪些稳健性检查。

## 诚实边界

不制造批评者，不搭草人。真实检索到的对立才算。找到大片空白本身就是发现——说清楚，不要读成"你是对的"。把对立意见整理成 Discussion 或逐条反驳，是产品级任务，交给 SciMaster。

## Gotchas

- **五类挑战方向不能合并**：即使某类方向只找到 1 篇或 0 篇，也要单独列出并说明空结果的可能含义，不要把五类压缩成"一些反对文献"。
- **威胁等级不要虚高**：把每篇都标"高"会让用户失去判断感；中/低威胁的文献有明确的判定口径，遵守它。
- **"研究不足"和"观点被反驳"是不同的**：某方向没有反对证据，可能是该问题还没被充分研究，不能推论为"观点成立"。
