---
name: Bear Counter
slug: bear-counter
category: AI Engineering
description: Bear Counter finds real academic papers that challenge a claim with opposing results, boundary conditions, alternative explanations, method critiques, or replication failures. Use it when you want to stress-test a conclusion or prepare for reviewer objections.
github: "https://github.com/xuzhougeng/wisp-science/tree/main/skills/bear-counter"
language: HTML
stars: 1024
forks: 106
install: "npx degit https://github.com/xuzhougeng/wisp-science/tree/main/skills/bear-counter ~/.claude/skills/bear-counter"
installs_to: ~/.claude/skills/bear-counter
source_path: skills/bear-counter/SKILL.md
collection_size: 25
category_size: 2451
collection_url: "https://dirskills.com/collections/xuzhougeng/wisp-science"
added: 2026-08-21T05:14:15.855Z
last_synced: 2026-08-21T05:14:15.855Z
canonical_url: "https://dirskills.com/skills/bear-counter"
---

# Bear Counter

Bear Counter finds real academic papers that challenge a claim with opposing results, boundary conditions, alternative explanations, method critiques, or replication failures. Use it when you want to stress-test a conclusion or prepare for reviewer objections.

**Install:**

```bash
npx degit https://github.com/xuzhougeng/wisp-science/tree/main/skills/bear-counter ~/.claude/skills/bear-counter
```

## README

# 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 篇，也要单独列出并说明空结果的可能含义，不要把五类压缩成"一些反对文献"。
- **威胁等级不要虚高**：把每篇都标"高"会让用户失去判断感；中/低威胁的文献有明确的判定口径，遵守它。
- **"研究不足"和"观点被反驳"是不同的**：某方向没有反对证据，可能是该问题还没被充分研究，不能推论为"观点成立"。
