# Ideate

> 多阶段研究 idea 生成管道：景观扫描 → 双模型脑暴 → 初筛 → 深度验证 → 写入 wiki

- Skill: `lambenthan/ideate` (Agent Skill)
- Install (CLI): `npx skillmds@latest add lambenthan/ideate`
- Raw SKILL.md: https://api.skillmd.com/api/skills/lambenthan/ideate/raw
- Safety review: PASS (external: skill-scanner PASS, skillspector CAUTION)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Lambenthan (https://skillmd.com/u/lambenthan)
- Updated: 2026-08-19
- Page: https://skillmd.com/skills/lambenthan/ideate

---


# /ideate

> 基于 wiki 知识库和外部搜索，通过 5 阶段管道生成高质量研究 idea。
> Phase 1 扫描研究景观（wiki + WebSearch + S2），Phase 2 双模型脑暴（Claude + Review LLM 独立生成），
> Phase 3 初步筛选（可行性 + 快速 novelty），Phase 4 深度验证（调用 /novelty + /review），
> Phase 5 写入 wiki（ideas/ + graph edges），包括被淘汰的 ideas（记录原因作为 anti-repetition 记忆）。

## Inputs

- `direction`（可选）：研究方向、关键词或具体问题描述。若不指定，则从 open_questions.md 自动选择最有价值的方向。
- `--max-ideas N`（可选，默认 3）：最终写入 wiki 的 idea 数量上限
- `--skip-validation`：跳过 Phase 4 深度验证（快速模式，仅做 Phase 1-3 + Phase 5）
- `--auto`：全自动模式，不暂停等待用户确认（用于 /research 调用）

## Outputs

- `wiki/ideas/{slug}.md` — 每个 idea 一个页面（status: proposed），包含 top ideas 和被淘汰的 ideas
- `wiki/graph/edges.jsonl` — 新增 idea → claim/gap 的关系边
- `wiki/graph/context_brief.md` — 重建后的压缩上下文
- `wiki/graph/open_questions.md` — 重建后的知识缺口图
- **IDEA_REPORT**（输出到终端）— 管道执行摘要、排名结果、novelty 评分

## Wiki Interaction

### Reads
- `wiki/graph/context_brief.md` — 全局上下文
- `wiki/graph/open_questions.md` — 知识缺口，驱动 idea 方向
- `wiki/ideas/*.md` — 已有 ideas，特别是 status=failed 的 ideas 及 failure_reason（banlist）
- `wiki/claims/*.md` — 当前 claims 状态，识别 weakly_supported 和 challenged claims
- `wiki/papers/*.md` — 已有论文方法和结果
- `wiki/concepts/*.md` — 技术概念，寻找跨领域组合机会
- `wiki/topics/*.md` — 研究方向地图，SOTA 和 open problems
- `wiki/experiments/*.md` — 已有实验结果，避免重复

### Writes
- `wiki/ideas/{slug}.md` — 创建新 idea 页面
- `wiki/graph/edges.jsonl` — 添加 idea → claim/gap 的关系边（addresses_gap, inspired_by）
- `wiki/graph/context_brief.md` — 重建
- `wiki/graph/open_questions.md` — 重建
- `wiki/log.md` — 追加操作日志

### Graph edges created
- `addresses_gap`：idea → claim/topic（idea 针对的知识缺口）
- `inspired_by`：idea → paper/concept（idea 的灵感来源）

## Workflow

**前置**：
1. 确认工作目录为 wiki 项目根（包含 `wiki/`、`raw/`、`tools/` 的目录）
2. **检查 wiki 成熟度**：
   ```bash
   python3 tools/research_wiki.py maturity wiki/ --json
   ```
   根据 maturity level 调整后续行为：
   - **cold**：Phase 1 外部搜索扩展（WebSearch 查询从 5 增至 8，S2/DeepXiv limit 从 20 增至 30），
     跳过 wiki 内部上下文加载（为空无意义），标注 "cold-start mode: heavier external search"
   - **warm**：标准行为（当前默认）
   - **hot**：Phase 1 外部搜索缩减（WebSearch 查询从 5 降至 2，S2/DeepXiv limit 从 20 降至 10），
     Phase 3 gap_alignment_bonus 从 +2 提升到 +3，优先解决 wiki 中已有的 weak claims
3. **Snapshot wiki 状态**（用于结束时的 Growth Report）：
   保存 maturity 返回的 JSON 到内存变量 `maturity_before`

### Phase 1: 景观扫描（Landscape Scan）

目标：构建目标领域的全面视角，包括已有工作、知识缺口和最新进展。

1. **加载 wiki 内部上下文**：
   - 读取 `wiki/graph/context_brief.md`（全局压缩上下文）
   - 读取 `wiki/graph/open_questions.md`（知识缺口列表）
   - 读取所有 `wiki/ideas/*.md`，提取：
     - status=failed 的 ideas → **banlist**（含 failure_reason）
     - status=proposed/in_progress 的 ideas → **active list**（避免重复）
   - 读取 `wiki/claims/*.md`，找出 status=weakly_supported 或 challenged 的 claims → **weak claims list**
   - 若 `direction` 指定，过滤与方向相关的子集

2. **外部搜索**（使用 Agent tool 并行）：
   - **WebSearch**：搜索目标方向最近 6 个月的论文和进展（3-5 个查询）
   - **Semantic Scholar**：
     ```bash
     python3 tools/fetch_s2.py search "<direction-keywords>" --limit 20
     ```
     对 top 5 高引论文获取详情
   - **DeepXiv 语义搜索**：
     ```bash
     python3 tools/fetch_deepxiv.py search "<direction-keywords>" --mode hybrid --limit 20
     ```
     对 top 5 高相关结果获取 TLDR 和关键词：
     ```bash
     python3 tools/fetch_deepxiv.py brief <arxiv_id>
     ```
     语义搜索补充 S2 关键词搜索可能遗漏的概念相关论文。
   - **DeepXiv 热门论文**：
     ```bash
     python3 tools/fetch_deepxiv.py trending --days 14
     ```
     热门论文指示社区关注热点，有助于发现趋势性 gap。
   - **arXiv 最新**：`site:arxiv.org <direction> 2025 2026`
   - **若 DeepXiv 不可用**：跳过 DeepXiv 搜索和 trending，仅依赖 S2 + WebSearch（回退到原有行为）。

3. **汇总景观报告**（内部使用，不写入 wiki）：
   - 当前 SOTA 方法及性能
   - 已知的 open problems / 未解决的 challenges
   - 最近的趋势和热点
   - wiki 中的知识缺口（from gap_map）
   - 被禁止的方向（from banlist）

### Phase 2: 双模型脑暴（Dual-Model Brainstorm）

目标：通过 Claude 和 Review LLM 独立生成 ideas，利用不同模型的视角差异获得多样性。

**遵循 `shared-references/cross-model-review.md`**：Claude 和 Review LLM 独立生成，不互相看到对方的结果。

1. **Claude 生成 6-10 个 ideas**：
   - 输入：景观报告 + wiki gaps + weak claims + banlist
   - 策略：
     - 跨方向组合（Topic A 的方法 + Topic B 的问题）
     - 填补 gap_map 中的空白
     - 强化 weakly_supported claims
     - 挑战 challenged claims 的替代假设
     - SOTA 的已知 limitation → 改进方向
   - 每个 idea 包含：title、hypothesis（1-2 句）、approach sketch（3-5 句）、target claims、estimated feasibility（高/中/低）

2. **Review LLM 独立生成 4-6 个 ideas**（并行执行）：
   ```
   mcp__llm-review__chat:
     system: "You are a creative ML researcher brainstorming research ideas.
              Generate novel, concrete, and feasible ideas based on the given context.
              For each idea, provide: title, hypothesis (1-2 sentences),
              approach sketch (3-5 sentences), and feasibility assessment."
     message: |
       ## Research Landscape
       {landscape report from Phase 1 — gaps, SOTA, trends}

       ## Knowledge Gaps
       {gap_map entries}

       ## Banlist (DO NOT revisit these)
       {failed ideas with failure_reason}

       ## Active Ideas (avoid duplicating)
       {proposed/in_progress ideas}

       Generate 4-6 novel research ideas that address the gaps above.
       Focus on ideas that are: (1) genuinely novel, (2) feasible within 3-6 months,
       (3) directly address a knowledge gap.
   ```

3. **合并与去重**：
   - 将 Claude 和 Review LLM 的 ideas 合并（10-16 个候选）
   - 去除高度相似的 ideas（方法核心相同的合并，保留更具体的版本）
   - 去除与 banlist 重叠的 ideas
   - 去除与 active list 高度重复的 ideas
   - 输出：8-12 个候选 ideas

### Phase 3: 初步筛选（First-Pass Filter）

目标：快速淘汰明显不可行或不够新颖的 ideas。

对每个候选 idea 进行以下检查：

1. **可行性检查**：
   - GPU/计算需求是否在合理范围内（参考 wiki 中已有 experiments 的 setup）
   - 数据可获取性（公开数据集 vs 私有数据）
   - 实现复杂度（能否在 3-6 个月内完成）
   - 标记为 feasibility: 高/中/低

2. **快速 novelty 筛查**（每个 idea 2-3 个 WebSearch）：
   - `"<idea-core-method>" + "<task>"` 精确搜索
   - `<component-1> + <component-2>` 组件组合搜索
   - 若找到高度相似的已发表工作 → 淘汰或标记

3. **wiki 对齐检查**：
   - idea 是否解决 gap_map 中的已知缺口？（+分）
   - idea 是否针对 weakly_supported claim？（+分）
   - idea 是否与 wiki 已有知识构建连接？（+分）

4. **筛选决策**：
   - 淘汰条件：feasibility=低 AND novelty 筛查发现相似已发表工作
   - 淘汰条件：与 banlist 的 failure_reason 高度相关
   - 保留：feasibility >= 中 AND 未被淘汰
   - 输出：4-6 个幸存 ideas（排名）

### Phase 4: 深度验证（Deep Validation）

（若 `--skip-validation` 则跳过此步，直接到 Phase 5）

对 Phase 3 排名前 3 的 ideas 进行深度验证：

1. **调用 /novelty**（逐个执行）：
   ```
   对每个 top idea：
   Skill: novelty
   Args: "<idea-title-and-hypothesis>"
   ```
   记录 novelty score（1-5）和建议

2. **调用 /review**（对 top 2 ideas）：
   ```
   Skill: review
   Args: "<idea-full-description>" --difficulty hard --focus method
   ```
   记录 review score（1-10）和 weaknesses

3. **综合排名**：
   - 最终得分 = novelty_score × 2 + review_score + gap_alignment_bonus
   - gap_alignment_bonus：+2 若 idea 直接针对 gap_map 条目
   - 若 novelty_score <= 2 → 降级为「modify needed」
   - 若 review_score <= 4 → 降级为「major issues」

4. **若 `--auto` 未设置**：在终端展示排名结果，等待用户确认或调整

### Phase 5: 写入 Wiki

将验证后的 ideas 写入 wiki（包括被淘汰的 ideas，记录淘汰原因）。

1. **写入 top ideas**（status: proposed）：
   对排名前 `--max-ideas` 个 ideas：
   ```bash
   # 生成 slug
   python3 tools/research_wiki.py slug "<idea-title>"
   ```
   创建 `wiki/ideas/{slug}.md`，**严格遵循 CLAUDE.md 的 ideas template**（所有字段必填；`lint.py` 强制要求 `status` 和 `priority`）：
   ```yaml
   ---
   title: "<idea 标题>"
   slug: "<idea-slug>"
   status: proposed
   origin: "ideate: <驱动该 idea 的 gap / 弱 claim / 论文的简短描述>"
   origin_gaps: []           # [[claim-slug]] 列表 — 该 idea 针对的 claim 或 topic
   tags: []                  # 2-5 个主题标签（从目标 claim / direction 继承）
   domain: ""                # NLP / CV / ML Systems / Robotics（从 direction 继承）
   priority: 3               # 1-5 — 见下方 Priority 计算
   pilot_result: ""          # 留空，由 /exp-eval 填写
   failure_reason: ""        # proposed ideas 留空
   linked_experiments: []    # 留空，由 /exp-design 创建 experiment 后填写
   date_proposed: YYYY-MM-DD
   date_resolved: ""         # 留空，validated/failed 时填写
   ---
   ```

   **Priority 计算**（把 Phase 4 信号映射到 1-5 分）：
   - 若 `--skip-validation`：默认 `priority = 3`
   - 否则从 `novelty_score`（/novelty 给出的 1-5）开始
   - `+1` 若 `gap_alignment_bonus > 0`（直接命中 gap_map 条目）
   - `-1` 若 `review_score <= 4`（major issues 降权）
   - Clamp 到 `[1, 5]`

   **正文结构**（必须与 CLAUDE.md 模板严格一致 — 不要改名）：
   ```markdown
   ## Motivation
   哪个 gap / weakly_supported claim / 论文限制驱动了这个 idea。用 `[[slug]]` 引用 wiki 页面。

   ## Hypothesis
   1-2 句话陈述可验证的命题。

   ## Approach sketch
   3-5 句描述提出的方法。任何借用现有工作的组件用 `[[paper-slug]]` 或 `[[concept-slug]]` 标注。

   ## Expected outcome
   成功的表现（指标 / claim 状态变化），加上 Phase 4 的 novelty 与 review 总结：
   - Novelty score: N/5 — <来自 /novelty 的一行理由>
   - Review score: M/10 — <来自 /review 的一行总结>

   ## Risks
   可行性评级（high/medium/low）+ top 2-3 风险。包含 /review 揭示的主要弱点。

   ## Pilot results
   （留空 — 由 /exp-eval 跑完实验后填写）

   ## Lessons learned
   （留空 — 由 /exp-eval 在 idea 达到终态后填写）
   ```

2. **写入被淘汰的 ideas**（status: failed）：
   对 Phase 3/4 中被淘汰的 ideas，也用**上方同一模板**创建 `wiki/ideas/{slug}.md`，应用以下覆盖：
   - `status: failed`
   - `priority: 1`（被淘汰的 ideas 永远不会阻塞更高优先级的工作）
   - `date_resolved: YYYY-MM-DD`（今天）
   - `failure_reason: "[filter] <具体淘汰原因>"` — `[filter]` 前缀用于区分 ideate 阶段淘汰和实验后失败（/exp-eval 用不同标签）。例如：`"[filter] 已有高度相似的发表工作: <paper-title>"`、`"[filter] 可行性不足：GPU 需求过高"`
   - `## Motivation` 和 `## Hypothesis` 仍需填写（供未来 banlist 匹配）；`## Approach sketch` 可简略；`## Expected outcome` 和 `## Risks` 可说明淘汰原因
   - 这些 failed ideas 成为未来 ideate 的 banlist

3. **添加 graph edges**：
   ```bash
   # 对每个 idea
   python3 tools/research_wiki.py add-edge wiki/ \
     --from "ideas/{slug}" --to "claims/{target-claim}" \
     --type addresses_gap --evidence "Generated by ideate"

   python3 tools/research_wiki.py add-edge wiki/ \
     --from "ideas/{slug}" --to "papers/{source-paper}" \
     --type inspired_by --evidence "Inspired by method in {paper-title}"
   ```

4. **重建派生数据**：
   ```bash
   python3 tools/research_wiki.py rebuild-context-brief wiki/
   python3 tools/research_wiki.py rebuild-open-questions wiki/
   ```

5. **追加日志**：
   ```bash
   python3 tools/research_wiki.py log wiki/ \
     "ideate | {N} ideas proposed, {M} ideas filtered out | direction: {direction}"
   ```

6. **输出 IDEA_REPORT 到终端**：
   ```markdown
   # Idea Generation Report

   ## Pipeline Summary
   - Direction: {direction}
   - Phase 1: Scanned {N} external papers, {M} wiki gaps identified
   - Phase 2: Generated {X} candidates (Claude: {a}, Review LLM: {b})
   - Phase 3: {Y} survived initial filter (from {X})
   - Phase 4: Deep validation on top {Z}
   - Phase 5: {K} ideas written to wiki

   ## Top Ideas (ranked)

   | Rank | Idea | Novelty | Review | Gap Align | Status |
   |------|------|---------|--------|-----------|--------|
   | 1 | [[slug]] | 4/5 | 7/10 | +2 | proposed |
   | 2 | [[slug]] | 3/5 | 6/10 | +0 | proposed |

   ## Filtered Out
   | Idea | Reason | Status |
   |------|--------|--------|
   | [[slug]] | 已有相似发表工作 | failed |
   | [[slug]] | GPU 需求过高 | failed |

   ## Suggested Next Steps
   - Run `/exp-design {top-idea-slug}` to design experiments
   - Run `/novelty` on any idea before investing time

   ## Wiki Growth
   | Metric | Before | After | Delta |
   |--------|--------|-------|-------|
   | Papers | {before} | {after} | +{delta} |
   | Claims | {before} | {after} | +{delta} |
   | Ideas | {before} | {after} | +{delta} |
   | Edges | {before} | {after} | +{delta} |
   | Maturity | {before_level} | {after_level} | {unchanged/upgraded} |
   （仅展示 delta != 0 的行。数据来自前置 step 3 的 `maturity_before` 与此处重新调用 `maturity --json` 的对比。）
   ```

## Constraints

- **wiki cold 时自动切换 cold-start mode**：外部搜索扩展（WebSearch 8 查询，S2/DeepXiv limit 30），不阻塞执行
- **所有 idea 必须有 wiki 依据**：每个 idea 至少引用 2 个 wiki 页面（paper/concept/claim）
- **必须加载 banlist**：Phase 1 必须读取 failed ideas 的 failure_reason，Phase 2/3 必须检查重叠
- **Review LLM 独立性**：Phase 2 中 Review LLM 不看 Claude 的 idea 列表（cross-model-review.md）
- **被淘汰的 ideas 也写入 wiki**：status=failed + failure_reason，作为 anti-repetition 记忆
- **不凭空编造**：所有 ideas 必须基于 wiki 已有知识或外部搜索结果推导，不编造不存在的论文或方法
- **slug 唯一性**：创建前检查 wiki/ideas/ 中是否已存在相同 slug
- **graph edges 使用 tools/research_wiki.py**：不手动编辑 edges.jsonl

## Error Handling

- **wiki 为空**：正常执行外部搜索（Phase 1 Source B/C/D），但跳过 wiki 内部上下文，提示用户先建立知识库
- **WebSearch 不可用**：跳过外部搜索，仅基于 wiki 内部知识生成（降级模式，在报告中标注）
- **Semantic Scholar API 不可用**：跳过 S2 搜索，依赖 DeepXiv + WebSearch 补偿
- **DeepXiv API 不可用**：跳过 DeepXiv 搜索和 trending，依赖 S2 + WebSearch（回退到原有行为）
- **Review LLM 不可用**：Phase 2 仅用 Claude 生成（无双模型多样性，在报告中标注）
- **/novelty 失败**：Phase 4 中单个 idea 的 novelty 失败时，标注「novelty unverified」继续
- **/review 失败**：Phase 4 中 review 失败时，标注「unreviewed」继续，建议用户手动 /review
- **slug 冲突**：若 wiki/ideas/ 中已存在相同 slug，追加数字后缀（如 `sparse-lora-v2`）
- **所有 ideas 都被淘汰**：仍写入 wiki（status: failed），报告中建议用户扩大搜索方向或 /ingest 更多论文

## Dependencies

### Tools（via Bash）
- `python3 tools/research_wiki.py maturity wiki/ --json` — 检查 wiki 成熟度 + Growth Report
- `python3 tools/research_wiki.py slug "<title>"` — 生成 slug
- `python3 tools/research_wiki.py add-edge wiki/ ...` — 添加 graph edge
- `python3 tools/research_wiki.py rebuild-context-brief wiki/` — 重建 query_pack
- `python3 tools/research_wiki.py rebuild-open-questions wiki/` — 重建 gap_map
- `python3 tools/research_wiki.py log wiki/ "<message>"` — 追加日志
- `python3 tools/fetch_s2.py search "<query>" --limit 20` — Semantic Scholar 搜索
- `python3 tools/fetch_deepxiv.py search "<query>" --mode hybrid --limit 20` — DeepXiv 语义搜索
- `python3 tools/fetch_deepxiv.py brief <arxiv_id>` — 获取论文 TLDR
- `python3 tools/fetch_deepxiv.py trending --days 14` — 热门论文趋势

### Skills（via Skill tool）
- `/novelty` — Phase 4 深度 novelty 验证
- `/review` — Phase 4 跨模型审查

### MCP Servers
- `mcp__llm-review__chat` — Phase 2 Review LLM 独立脑暴

### Claude Code Native
- `WebSearch` — Phase 1 外部搜索、Phase 3 快速 novelty 筛查
- `Agent` tool — Phase 1 并行搜索、Phase 2 并行脑暴

### Shared References
- `.claude/skills/shared-references/cross-model-review.md` — Phase 2 Review LLM 独立性原则

