Browse Source

feat: 添加 research-skills 学术研究技能合集

- 新增 research-skills 技能,包含医学影像综述、论文转PPT、研究提案生成等功能
- 更新 README.md,将 research-skills 添加到技能列表中
- 包含5个多智能体协作系统用于学术论文调研
kekeZack 1 month ago
parent
commit
fe7bac5c45
66 changed files with 13265 additions and 0 deletions
  1. 15 0
      skills/research-skills/.gitignore
  2. 175 0
      skills/research-skills/README.md
  3. 49 0
      skills/research-skills/agents-config/文献侦查员-AGENTS.md
  4. 44 0
      skills/research-skills/agents-config/研究主管-AGENTS.md
  5. 49 0
      skills/research-skills/agents-config/论文分析师-AGENTS.md
  6. 51 0
      skills/research-skills/agents-config/论文撰写员-AGENTS.md
  7. 55 0
      skills/research-skills/agents-config/质量编辑员-AGENTS.md
  8. 295 0
      skills/research-skills/medical-imaging-review/SKILL.md
  9. 233 0
      skills/research-skills/medical-imaging-review/references/CITATION_INTEGRITY.md
  10. 302 0
      skills/research-skills/medical-imaging-review/references/DOMAINS.md
  11. 211 0
      skills/research-skills/medical-imaging-review/references/HALLUCINATION_PATTERNS.md
  12. 216 0
      skills/research-skills/medical-imaging-review/references/MCP_SETUP.md
  13. 221 0
      skills/research-skills/medical-imaging-review/references/PARADIGM.md
  14. 169 0
      skills/research-skills/medical-imaging-review/references/QUALITY_CHECKLIST.md
  15. 291 0
      skills/research-skills/medical-imaging-review/references/TEMPLATES.md
  16. 289 0
      skills/research-skills/medical-imaging-review/references/WORKFLOW.md
  17. 464 0
      skills/research-skills/paper-slide-deck/SKILL.md
  18. 392 0
      skills/research-skills/paper-slide-deck/references/analysis-framework.md
  19. 70 0
      skills/research-skills/paper-slide-deck/references/base-prompt.md
  20. 95 0
      skills/research-skills/paper-slide-deck/references/content-rules.md
  21. 177 0
      skills/research-skills/paper-slide-deck/references/figure-container-template.md
  22. 85 0
      skills/research-skills/paper-slide-deck/references/modification-guide.md
  23. 437 0
      skills/research-skills/paper-slide-deck/references/outline-template.md
  24. 109 0
      skills/research-skills/paper-slide-deck/references/styles/academic-paper.md
  25. 67 0
      skills/research-skills/paper-slide-deck/references/styles/blueprint.md
  26. 70 0
      skills/research-skills/paper-slide-deck/references/styles/bold-editorial.md
  27. 68 0
      skills/research-skills/paper-slide-deck/references/styles/chalkboard.md
  28. 69 0
      skills/research-skills/paper-slide-deck/references/styles/corporate.md
  29. 69 0
      skills/research-skills/paper-slide-deck/references/styles/dark-atmospheric.md
  30. 73 0
      skills/research-skills/paper-slide-deck/references/styles/editorial-infographic.md
  31. 69 0
      skills/research-skills/paper-slide-deck/references/styles/fantasy-animation.md
  32. 72 0
      skills/research-skills/paper-slide-deck/references/styles/intuition-machine.md
  33. 64 0
      skills/research-skills/paper-slide-deck/references/styles/minimal.md
  34. 69 0
      skills/research-skills/paper-slide-deck/references/styles/notion.md
  35. 67 0
      skills/research-skills/paper-slide-deck/references/styles/pixel-art.md
  36. 73 0
      skills/research-skills/paper-slide-deck/references/styles/scientific.md
  37. 66 0
      skills/research-skills/paper-slide-deck/references/styles/sketch-notes.md
  38. 72 0
      skills/research-skills/paper-slide-deck/references/styles/vector-illustration.md
  39. 73 0
      skills/research-skills/paper-slide-deck/references/styles/vintage.md
  40. 68 0
      skills/research-skills/paper-slide-deck/references/styles/watercolor.md
  41. 282 0
      skills/research-skills/paper-slide-deck/scripts/apply-template.ts
  42. 283 0
      skills/research-skills/paper-slide-deck/scripts/detect-figures.ts
  43. 140 0
      skills/research-skills/paper-slide-deck/scripts/extract-figure.ts
  44. 182 0
      skills/research-skills/paper-slide-deck/scripts/generate-slides.py
  45. 116 0
      skills/research-skills/paper-slide-deck/scripts/merge-to-pdf.ts
  46. 137 0
      skills/research-skills/paper-slide-deck/scripts/merge-to-pptx.ts
  47. 899 0
      skills/research-skills/paper-slide-deck/scripts/package-lock.json
  48. 8 0
      skills/research-skills/paper-slide-deck/scripts/package.json
  49. 219 0
      skills/research-skills/references/DOMAINS.md
  50. 127 0
      skills/research-skills/references/QUALITY_CHECKLIST.md
  51. 209 0
      skills/research-skills/references/SOURCES.md
  52. 342 0
      skills/research-skills/references/TEMPLATES.md
  53. 164 0
      skills/research-skills/references/WORKFLOW.md
  54. 573 0
      skills/research-skills/research-proposal/SKILL.md
  55. 323 0
      skills/research-skills/research-proposal/assets/proposal_scaffold_en.md
  56. 346 0
      skills/research-skills/research-proposal/assets/proposal_scaffold_zh.md
  57. 518 0
      skills/research-skills/research-proposal/references/DOMAIN_TEMPLATES.md
  58. 529 0
      skills/research-skills/research-proposal/references/LITERATURE_WORKFLOW.md
  59. 325 0
      skills/research-skills/research-proposal/references/QUALITY_CHECKLIST.md
  60. 398 0
      skills/research-skills/research-proposal/references/STRUCTURE_GUIDE.md
  61. 661 0
      skills/research-skills/research-proposal/references/WRITING_STYLE_GUIDE.md
  62. 201 0
      skills/research-skills/skills/literature-scout/SKILL.md
  63. 183 0
      skills/research-skills/skills/paper-analyst/SKILL.md
  64. 175 0
      skills/research-skills/skills/quality-editor/SKILL.md
  65. 122 0
      skills/research-skills/skills/survey-director/SKILL.md
  66. 200 0
      skills/research-skills/skills/survey-writer/SKILL.md

+ 15 - 0
skills/research-skills/.gitignore

@@ -0,0 +1,15 @@
+# Temporary files
+tmpclaude-*
+*.tmp
+*.temp
+
+# OS files
+.DS_Store
+Thumbs.db
+
+# Node modules
+node_modules/
+
+# Python
+__pycache__/
+*.pyc

+ 175 - 0
skills/research-skills/README.md

@@ -0,0 +1,175 @@
+# Research Skills
+
+A collection of Claude Code skills for academic research workflows.
+
+## Skills
+
+### Single-Agent Skills
+
+| Skill | Description | Trigger |
+|-------|-------------|---------|
+| [medical-imaging-review](./medical-imaging-review/) | Write comprehensive literature reviews for medical imaging AI | `/medical-imaging-review`, "review paper", "survey", "综述" |
+| [paper-slide-deck](./paper-slide-deck/) | Generate professional slides from academic papers with auto figure extraction | `/paper-slide-deck paper.pdf` |
+| [research-proposal](./research-proposal/) | Generate PhD research proposals with Nature Reviews-style academic writing | `/research-proposal`, "research proposal", "PhD proposal", "研究计划" |
+
+### Multi-Agent Survey System (5 Agents)
+
+A collaborative system where 5 specialized AI agents work together to produce conference-quality survey papers.
+
+| Agent | Skill | Role |
+|-------|-------|------|
+| 研究主管 (Survey Director) | [survey-director](./skills/survey-director/) | Topic planning, outline design, task dispatch, final review |
+| 文献侦查员 (Literature Scout) | [literature-scout](./skills/literature-scout/) | Multi-source literature search, build literature matrix |
+| 论文分析师 (Paper Analyst) | [paper-analyst](./skills/paper-analyst/) | Deep reading, structured extraction, comparison tables |
+| 论文撰写员 (Survey Writer) | [survey-writer](./skills/survey-writer/) | Section writing following academic templates |
+| 质量编辑员 (Quality Editor) | [quality-editor](./skills/quality-editor/) | Terminology consistency, citation integrity, quality review |
+
+**Shared References**: [references/](./references/) — Workflow, domain knowledge, templates, quality checklists
+
+**Agent Configs**: [agents-config/](./agents-config/) — AGENTS.md templates for each agent
+
+## Installation
+
+Copy the desired skill folder to your Claude Code skills directory:
+
+```bash
+# For medical-imaging-review
+cp -r medical-imaging-review ~/.claude/skills/
+
+# For paper-slide-deck
+cp -r paper-slide-deck ~/.claude/skills/
+
+# For research-proposal
+cp -r research-proposal ~/.claude/skills/
+```
+
+Or copy to project-local skills:
+
+```bash
+cp -r medical-imaging-review .agents/skills/
+cp -r paper-slide-deck .agents/skills/
+cp -r research-proposal .agents/skills/
+```
+
+---
+
+## Medical Imaging Review Skill
+
+A systematic workflow for writing survey papers, systematic reviews, and literature analyses on medical imaging AI topics.
+
+### Features
+
+- **Structured 7-phase workflow** for literature review writing
+- **Domain-specific templates** covering multiple medical imaging domains
+- **Standardized writing style** with hedging language and citation patterns
+- **Quality checklists** ensuring completeness
+- **Zotero integration** for reference management
+
+### Supported Domains
+
+- Coronary Artery Analysis (CCTA)
+- Lung Imaging (CT/X-ray)
+- Brain Imaging (MRI/CT)
+- Cardiac Imaging (MRI/CT/Echo)
+- Pathology (Whole Slide Images)
+- Retinal Imaging (Fundus/OCT)
+
+### Files
+
+| Path | Description |
+|------|-------------|
+| `SKILL.md` | Main skill definition and quick reference |
+| `references/WORKFLOW.md` | Detailed 7-phase workflow guide |
+| `references/TEMPLATES.md` | Project file templates |
+| `references/DOMAINS.md` | Domain-specific method categories and datasets |
+| `references/MCP_SETUP.md` | ArXiv, PubMed, Zotero MCP configuration |
+| `references/QUALITY_CHECKLIST.md` | Pre-submission quality checklist |
+
+---
+
+## Paper Slide Deck Skill
+
+Transform academic papers into professional slide decks with automatic figure extraction and AI-generated visuals.
+
+### Features
+
+- **Auto figure detection** from PDF papers
+- **Smart figure-to-slide mapping** based on caption analysis
+- **17 visual styles** (academic-paper, sketch-notes, minimal, etc.)
+- **Gemini API integration** for AI slide generation
+- **PPTX/PDF export** with merge scripts
+
+### Workflow
+
+1. Analyze paper and detect figures/tables
+2. Generate outline with auto IMAGE_SOURCE mapping
+3. Extract figures from PDF (or AI-generate)
+4. Apply academic templates
+5. Merge to PPTX/PDF
+
+### Files
+
+| Path | Description |
+|------|-------------|
+| `SKILL.md` | Main skill definition and workflow |
+| `references/` | Analysis framework, templates, style definitions |
+| `scripts/` | Python/TypeScript automation scripts |
+
+### Scripts
+
+| Script | Purpose |
+|--------|---------|
+| `generate-slides.py` | Gemini API image generation |
+| `detect-figures.ts` | PDF figure/table detection |
+| `extract-figure.ts` | PDF page extraction |
+| `apply-template.ts` | Academic figure container template |
+| `merge-to-pptx.ts` | PPTX generation |
+| `merge-to-pdf.ts` | PDF generation |
+
+---
+
+## Research Proposal Skill
+
+Generate high-quality academic research proposals for PhD applications following Nature Reviews-style academic writing conventions.
+
+### Features
+
+- **Structured 5-phase workflow**: Requirements → Literature → Outline → Content → Output
+- **Multi-source literature integration**: WebSearch, Zotero MCP, arXiv, PubMed
+- **Bilingual support**: English and Chinese (中文)
+- **Domain adaptation**: STEM, Humanities, Social Sciences
+- **Academic writing style**: Prose-based with hedging language, minimum 40 references
+
+### Workflow
+
+1. Gather requirements (topic, domain, language, word count)
+2. Collect literature from multiple sources
+3. Generate outline for user approval
+4. Write full proposal based on approved outline
+5. Output Markdown with quality checklist
+
+### Files
+
+| Path | Description |
+|------|-------------|
+| `SKILL.md` | Main skill definition and 5-phase workflow |
+| `references/STRUCTURE_GUIDE.md` | Section-by-section writing guide |
+| `references/DOMAIN_TEMPLATES.md` | STEM vs Humanities differences |
+| `references/WRITING_STYLE_GUIDE.md` | Nature Reviews academic writing style |
+| `references/QUALITY_CHECKLIST.md` | Quality verification checklist |
+| `references/LITERATURE_WORKFLOW.md` | Literature collection workflow |
+| `assets/proposal_scaffold_en.md` | English template scaffold |
+| `assets/proposal_scaffold_zh.md` | Chinese template scaffold |
+
+### Output
+
+- Target: 2,000-4,000 words (default ~3,000)
+- Minimum 40 references
+- 3-5 figure suggestions
+- Markdown format (convertible to DOCX/PDF via pandoc)
+
+---
+
+## License
+
+MIT License

+ 49 - 0
skills/research-skills/agents-config/文献侦查员-AGENTS.md

@@ -0,0 +1,49 @@
+# 文献侦查员 — 行为规则
+
+## 角色
+我是「文献猎手」,负责多源文献检索、筛选和分类,构建文献矩阵。
+
+## 协作上下文
+- **上游**: 研究主管 (ID: 177704332823000) 分配任务
+- **下游**: 论文分析师 (ID: 177704340589000) 接收文献矩阵
+- **问题升级**: @mention 研究主管
+
+## 核心行为准则
+
+### 1. 检索策略
+- 严格按照 IMPLEMENTATION_PLAN.md 中的检索策略执行
+- 多源覆盖:Exa → Semantic Scholar → ArXiv → Papers With Code
+- 每个分类至少 2-3 轮不同查询
+
+### 2. 质量意识
+- 优先收集顶会论文(NeurIPS, ICML, ICLR, CVPR, ACL, AAAI)
+- 核心论文必须有高引用或顶会背书
+- 新兴方法需来自可信预印本
+
+### 3. 去重规则
+- 优先级: ArXiv ID > DOI > 标题模糊匹配
+- 同一论文多源版本,保留信息最完整的
+- 预印本与正式版本视为同一篇
+
+### 4. 覆盖度标准
+- 成熟类别 ≥ 5 篇
+- 新兴类别 ≥ 2 篇(标注"新兴方向,文献有限")
+- 近 3 年占 50%+
+
+### 5. 输出规范
+- 严格按 `references/TEMPLATES.md` 中的 literature_matrix 格式输出
+- YAML frontmatter 统计必须准确
+- Top 20 核心论文必须标注选择理由
+- 检索日志完整记录每次查询
+
+### 6. 交接
+- 完成后更新 IMPLEMENTATION_PLAN.md Phase 2 状态
+- 在 literature_matrix.md 末尾 @mention 论文分析师
+- 如遇覆盖度不足等问题,@mention 研究主管
+
+## 工具使用偏好
+- **Exa**: 首选,语义搜索效果最好
+- **Semantic Scholar API**: 引用追踪、影响力评估
+- **ArXiv API**: 特定分类号精确检索
+- **WebFetch**: 访问特定论文页面获取详情
+- 每次 API 请求间隔 ≥ 3 秒(防限流)

+ 44 - 0
skills/research-skills/agents-config/研究主管-AGENTS.md

@@ -0,0 +1,44 @@
+# 研究主管 — 行为规则
+
+## 角色
+我是「综述总监」,负责 AI/ML 前沿综述论文项目的选题规划、大纲设计、任务分配和终审定稿。
+
+## 协作团队
+- **文献侦查员** (ID: 177704336830000) — 文献检索与筛选
+- **论文分析师** (ID: 177704340589000) — 论文精读与结构化分析
+- **论文撰写员** (ID: 177704343200000) — 按模板撰写各章节
+- **质量编辑员** (ID: 177704346680000) — 术语一致性、引用完整性、审校
+
+## 核心行为准则
+
+### 1. 项目初始化
+- 收到综述选题后,先分析选题合理性和差异化价值
+- 创建项目目录、AGENTS.md(术语表+写作规范)、IMPLEMENTATION_PLAN.md
+- 设计分类框架时参考 `references/DOMAINS.md`
+
+### 2. 任务调度
+- 按 6 阶段流程依次 @mention 对应 Agent
+- 每阶段有明确的输入、输出、质量门控
+- 交接时在 IMPLEMENTATION_PLAN.md 更新状态
+
+### 3. 质量把控
+- 每阶段输出到达后进行审查(参考 `references/QUALITY_CHECKLIST.md`)
+- 不满足质量门控的打回修订
+- 终审时通读全文确保连贯性
+
+### 4. 沟通风格
+- 任务指令清晰、结构化
+- 反馈具体、可操作
+- 遇到问题时主动协调
+
+## 文献来源偏好
+- 优先使用 Exa 语义搜索(arxiv.org 域名限定)
+- Semantic Scholar API 获取引用关系
+- Papers With Code 获取 SOTA 排行
+- 不依赖需要订阅的传统数据库
+
+## 写作标准
+- 目标:顶会级综述论文(NeurIPS, ICML, ICLR, CVPR, ACL)
+- 语言:英文学术写作,hedging language
+- 参考文献:60-120 篇
+- 引用格式:[数字] 编号制

+ 49 - 0
skills/research-skills/agents-config/论文分析师-AGENTS.md

@@ -0,0 +1,49 @@
+# 论文分析师 — 行为规则
+
+## 角色
+我是「论文分析师」,负责精读论文、提取方法细节、构建对比表。
+
+## 协作上下文
+- **上游**: 文献侦查员 (ID: 177704336830000) 提供文献矩阵
+- **下游**: 论文撰写员 (ID: 177704343200000) 接收分析结果
+- **问题升级**: @mention 研究主管 (ID: 177704332823000)
+
+## 核心行为准则
+
+### 1. 分析范围
+- 精读: Top 20 核心论文(完整分析卡片)
+- 快速扫描: 其余论文(摘要+关键结果)
+- 优先级: 核心论文 > 高引论文 > 最新论文
+
+### 2. 分析质量
+- 每张分析卡片所有字段必须填写完整
+- 一句话总结必须准确凝练
+- 方法描述要让非专家也能理解核心创新
+- 实验数据必须交叉核实(对照原文)
+- 优势局限分析要客观平衡
+
+### 3. 对比表规范
+- 方法总览表覆盖所有主要方法
+- 性能对比表按数据集分组
+- 所有数据标注出处(论文编号)
+- 对比维度要有区分度
+
+### 4. 趋势分析
+- 技术演进趋势有时间线支撑
+- 研究空白要具体(不是泛泛而谈)
+- 与综述创新点关联
+
+### 5. 输出规范
+- 分析卡片严格按 `references/TEMPLATES.md` 格式
+- 每篇卡片保存为 `paper_analyses/{arxiv-id}.md`
+- 对比表保存为 `comparison_tables.md`
+
+### 6. 交接
+- 完成后更新 IMPLEMENTATION_PLAN.md Phase 3 状态
+- 在 comparison_tables.md 末尾 @mention 论文撰写员
+- 如遇无法获取论文全文等问题,@mention 研究主管
+
+## 工具使用
+- **Exa + WebFetch**: 获取论文内容
+- **Semantic Scholar API**: 获取元数据和引用关系
+- 优先使用 ArXiv 的 HTML/Abstract 页面获取方法细节

+ 51 - 0
skills/research-skills/agents-config/论文撰写员-AGENTS.md

@@ -0,0 +1,51 @@
+# 论文撰写员 — 行为规则
+
+## 角色
+我是「综述写手」,负责按学术规范撰写综述论文各章节。
+
+## 协作上下文
+- **上游**: 论文分析师 (ID: 177704340589000) 提供分析卡片和对比表
+- **下游**: 质量编辑员 (ID: 177704346680000) 接收初稿进行审校
+- **问题升级**: @mention 研究主管 (ID: 177704332823000)
+
+## 核心行为准则
+
+### 1. 写作准备
+- 必须先精读 AGENTS.md 中的术语表和写作规范
+- 必须先浏览所有论文分析卡片
+- 确认大纲各节的深度要求
+
+### 2. 学术语言
+- **必须使用** hedging language: may, suggests, appears to, has shown promising results
+- **严禁** 绝对化表述: is the best, proves, definitely, always
+- 每个论断必须有引用支撑
+- 段落结构: 主题句 → 证据 → 分析 → 过渡
+
+### 3. 方法描述
+- 统一使用模板: "[Author] et al. [ref] proposed [method], which [innovation]."
+- 每种方法: 动机 → 方法 → 结果 → 局限
+- 避免简单罗列,要有分析和比较
+
+### 4. 引用管理
+- 引用编号 [N] 从 [1] 开始连续
+- 数据引用: "...achieved 0.89 [23]"
+- 方法引用: "Gu et al. [45] proposed..."
+- 多引用: "Several studies [12, 15, 23]"
+- 核心论文(Top 20)必须在正文中被引用
+
+### 5. 章节规范
+- Abstract: 150-250 词
+- 每段 100-200 词
+- 每个方法类别有对比表
+- Discussion 部分要有深度,不是重复前文
+- 各节长度应大致均衡
+
+### 6. 输出
+- 输出为 manuscript_draft.md
+- 参考文献列表放在文末
+- 目标 60-120 篇参考文献
+
+### 7. 交接
+- 完成后更新 IMPLEMENTATION_PLAN.md Phase 4 状态
+- 在 manuscript_draft.md 末尾 @mention 质量编辑员
+- 如遇分析卡片缺失等问题,@mention 研究主管

+ 55 - 0
skills/research-skills/agents-config/质量编辑员-AGENTS.md

@@ -0,0 +1,55 @@
+# 质量编辑员 — 行为规则
+
+## 角色
+我是「质量编辑」,负责综述论文的术语一致性、引用完整性和整体质量审校。
+
+## 协作上下文
+- **上游**: 论文撰写员 (ID: 177704343200000) 提供初稿
+- **下游**: 研究主管 (ID: 177704332823000) 接收审校报告进行终审
+- **问题升级**: @mention 研究主管
+
+## 核心行为准则
+
+### 1. 审校维度
+必须覆盖以下 5 个维度:
+- 术语一致性
+- 引用完整性
+- 结构完整性
+- 语言规范
+- 数据准确性
+
+### 2. 术语检查
+- 对照 AGENTS.md 术语表逐项检查
+- 缩写首次使用必须有全称
+- 同一概念全文必须使用同一表述
+- 专有名词拼写正确
+
+### 3. 引用检查
+- 每个 [N] 在参考文献列表中有对应条目
+- 参考文献列表中的每篇在正文中被引用
+- 引用编号连续(无跳号)
+- 核心论文(Top 20)全部被引用
+
+### 4. 自动修正权限
+**可以直接修正的**:
+- 术语替换(有明确统一规则)
+- 缩写补充定义
+- 引用编号修正
+- 明显拼写错误
+
+**不能擅自修改的**:
+- 方法描述的措辞调整
+- 段落删除或大幅重写
+- 引用的增删
+- 任何需要学术判断的修改
+
+### 5. 审校报告
+- 严格按 `references/TEMPLATES.md` 中的 review_report 格式
+- 每个问题标注: 位置、问题描述、建议修改、严重度
+- 统计摘要必须准确
+- 区分已修正和待研究主管决定的问题
+
+### 6. 交接
+- 完成后更新 IMPLEMENTATION_PLAN.md Phase 5 状态
+- 在 review_report.md 末尾 @mention 研究主管
+- 明确标注哪些已自动修正、哪些需终审决定

+ 295 - 0
skills/research-skills/medical-imaging-review/SKILL.md

@@ -0,0 +1,295 @@
+---
+name: medical-imaging-review
+description: Write peer-review-quality comprehensive reviews for medical imaging AI research (segmentation, detection, classification across CT, MRI, X-ray, ultrasound, pathology). Use this skill whenever the user wants to produce a survey paper, systematic review, literature analysis, or "综述" on deep learning for medical imaging; whenever they mention writing a "review paper" / "literature review" / "系统综述" / "narrative review" / "scoping review" in a medical-AI context; whenever they want a draft suitable for journal submission rather than internal notes; whenever they need help organizing a multi-section method survey with vendor / regulatory / clinical translation coverage. This skill enforces fact-checking, citation integrity, and flagship-review writing voice — NOT a fill-in-the-blank template that invites hallucination. Use it especially when the goal is a publishable manuscript and not just a draft to discuss.
+metadata:
+  author: louwill
+  version: 3.0.0
+  prior_version_lessons: "v2.0.0 produced drafts that needed extensive multi-day fact-check revision (coronary-cta-paper case): 17 placeholder DOIs, 30-40 [N] drift errors, fabricated method modules, vendor-style citations, 10-subsection flat method taxonomy, AI-tone hedging throughout. v3.0.0 directly addresses these failure modes."
+---
+
+# Medical Imaging AI Literature Review Skill (v3.0.0)
+
+Produce comprehensive reviews that pass first-round peer review on factual grounds, not just structural grounds.
+
+This is **not** a template-filling skill. It is a write-with-verify discipline.
+
+---
+
+## Quick Start
+
+A review project lives in 4 files (3 you write, 1 the skill provides):
+
+```
+project_root/
+├── PARADIGM.md            # Style spec from 2-3 exemplar reviews (Phase 0)
+├── CLAUDE.md              # Project-specific terminology + literature inventory
+├── IMPLEMENTATION_PLAN.md # 3-axis outline + per-claim verification checklist
+└── manuscript_draft.md    # The actual manuscript
+```
+
+Follow the 6-phase workflow in [references/WORKFLOW.md](references/WORKFLOW.md). The phases are: paradigm capture → init → collect-and-verify → 3-axis outline → write-with-per-claim-verification → multi-agent peer review.
+
+---
+
+## Core Principles
+
+### Writing voice — match strength to evidence, not hedge by default
+
+Calibrate language to evidence strength, not to a fixed hedging register.
+
+When ≥2 independent peer-reviewed groups confirm a finding, state it strongly. When evidence is single-source or contested, state it cautiously. When evidence is absent, say so.
+
+**Avoid the LLM tells:**
+- "has shown promising results"
+- "may suggest"
+- "interestingly,"
+- "it is worth noting that"
+- "in recent years,"
+- "demonstrates the effectiveness of"
+- "may offer significant advantages"
+
+These phrases are AI-detector top features. Real flagship-review authors don't use them. Strip them.
+
+**Take a position when evidence supports it.** Neutral catalogue is the LLM default and the failure mode to avoid. See [Verdict sentences](#verdict-sentences) below.
+
+### Citations — every claim verified before commit
+
+Every `[N]` citation must satisfy four checks:
+
+1. The cited paper **exists** (DOI / PMID resolves on PubMed or Crossref).
+2. The **author list** matches the first-source (especially first and last author).
+3. The **numeric claim** in the body sentence (Dice, HR, sample size, etc.) appears in the cited paper's abstract or results section.
+4. The **directional claim** in the body sentence (higher/lower, increased/decreased) matches the source's stated direction.
+
+If any check fails, the citation is broken — fix before continuing. See [references/CITATION_INTEGRITY.md](references/CITATION_INTEGRITY.md) for the full protocol.
+
+### Method descriptions — read first, write after
+
+Do **not** fill in a template like `[Author] et al. [ref] proposed [method]... Achieves Dice of X.XX`. That template is a hallucination trap.
+
+Use this discipline instead:
+
+1. **Read** the actual paper (abstract + methods + results). For arXiv, use `read_paper`. For closed-access, use Zotero MCP to access the user's library.
+2. **Note** the actual module names, the actual benchmark, the actual numbers, in your own working notes — not in the manuscript yet.
+3. **Write** the method description from those notes, citing specific numbers and module names verbatim from the paper.
+4. **Verify** by spot-checking 1-2 of the numbers against the paper one more time before moving on.
+
+If you can't access the paper, do not write about its internal architecture or specific performance numbers. Cite it for the contribution-level claim only ("first to apply X to Y") and move on.
+
+### Heading depth — Nature Reviews uses two levels
+
+- **H2** (`##`) for top-level sections (Introduction, Methods, Applications, Discussion, ...).
+- **H3** (`###`) for subsections.
+- **H4** (`####`) is forbidden in body. Use bold lead-in `**Topic.**` paragraph starters for deeper grouping.
+- **Number prefixes** (`1.`, `1.1`, `1.2.3`) are forbidden in section titles. Nature Reviews / Nat Med / Lancet / JACC don't use them in narrative reviews.
+
+### Equations — in a Box, not in body
+
+Display equations (DSC, IoU, clDice, FedAvg, GCN propagation, ...) appear in **Boxes**, not inline in body paragraphs. Textbook formulas can be referenced ("the Dice similarity coefficient — see Box 1") but should not be displayed inline.
+
+If a formula has no methodological insight worth displaying (e.g., FedAvg averaging), describe it in prose instead of showing it.
+
+### Vendor names — only in the regulatory/products table
+
+Vendor names (HeartFlow, Cleerly, Caristo, Keya, Shukun, ...) appear ONLY in the Commercial Products / Regulatory & Validation table. In body text use category descriptors:
+
+- ✗ "HeartFlow's CT-FFR product was validated in NXT, ADVANCE, and PACIFIC..."
+- ✓ "The first FDA-cleared CT-FFR product (Table N, row 1) was validated in NXT, ADVANCE, and PACIFIC..."
+
+Reason: scatter-cited vendor names look like marketing copy and undermine the review's authority.
+
+---
+
+## Standard Review Structure
+
+```markdown
+# [Title]: <evocative subtitle>
+
+## Key Points
+- 4-5 bullets, each 1-3 sentences, expressing the main conclusions.
+
+## Abstract
+
+## Introduction
+### Clinical background
+### Technical challenge
+### Scope and contributions
+
+## Datasets and evaluation metrics
+(Table 1: public datasets)
+(Box 1: evaluation metrics with equations)
+
+## Methods                              # 3-axis grouping, NOT flat 10-subsection list
+### Architectural priors
+**CNN-based design.** ... (bold lead-in for sub-grouping)
+**Transformer-based design.** ...
+**Mamba and state-space design.** ...
+
+### Inductive priors
+**Topology-aware design.** ...
+**Multi-task design.** ...
+**Graph-based design.** ...
+
+### Data regime
+**Self-supervised pre-training.** ...
+**Foundation models.** ...
+**Federated learning.** ...
+**Physics-informed models.** ...
+
+(Table 2: representative methods with modality / family / dataset / metric)
+
+## Downstream applications
+### [Application 1]
+### [Application 2]
+### [Application 3]
+
+## Translation to clinical practice
+(Table 3: commercial products with regulatory + validation)
+
+## Outstanding challenges
+
+## Future directions
+
+## References
+```
+
+Notes:
+- No number prefixes on headings.
+- §Methods is 3 H3 subsections (the three axes), with bold lead-ins for each method family inside.
+- Tables 1, 2, 3 are typically enough. Box 1 (metrics) is typical. Avoid 5+ tables.
+- Verdict sentences cluster at the end of §Methods axis subsections and at the end of clinical translation discussions — not after every paragraph.
+
+---
+
+## Verdict Sentences
+
+Each H3 method-axis subsection (Architectural priors / Inductive priors / Data regime) should close with **one verdict sentence** expressing authorial position. Choose the 3-5 most opinionated positions across the whole manuscript — don't put verdicts on every paragraph.
+
+Verdict templates:
+- "[Family] is currently the most cost-effective design choice for [problem]."
+- "[Family] has yet to demonstrate clear advantage over [alternative] in clinical-grade evaluations."
+- "[Family] is best understood as complementary to [alternative], not a replacement."
+- "The next [N] years will determine whether [family] becomes the default backbone or remains a research curiosity."
+
+Neutral catalogue is the LLM default and exactly what flagship review editors push back on. Force yourself to take 3-5 positions.
+
+---
+
+## Required Elements
+
+- **Key Points box** (4-5 bullets, 1-3 sentences each) after the title.
+- **Tables 1-3**: datasets, methods, commercial products.
+- **Box 1**: evaluation metrics with formulas.
+- **Figures**: typically 3-5 (overview/taxonomy, representative architectures, workflow, performance landscape).
+- **References**: cite only what supports the argument. Quantity is downstream of substance — don't pad to a target count.
+- **Verdict sentences**: 3-5 across the whole manuscript, clustered at axis-section ends.
+
+---
+
+## Heading Depth
+
+See [Core Principles ▸ Heading depth](#heading-depth--nature-reviews-uses-two-levels) above. Hard rules:
+
+- Max 2 heading levels in body.
+- No number prefixes.
+- Use bold lead-in `**Topic.**` for deeper subsubsections.
+
+---
+
+## Equations
+
+See [Core Principles ▸ Equations](#equations--in-a-box-not-in-body) above. All display equations go in Box 1 (or rare additional Boxes for specific protocols). Textbook formulas with no methodological insight should be described in prose, not displayed.
+
+---
+
+## Vendor Names
+
+See [Core Principles ▸ Vendor names](#vendor-names--only-in-the-regulatoryproducts-table) above. Vendor names live in Table 3 only; body text uses category descriptors with table cross-reference.
+
+---
+
+## Citation Style
+
+```markdown
+# Data citation
+"...achieved Dice of 0.730 on ImageCAS [N]"
+
+# Method citation
+"Xu et al. [N] introduced..."
+
+# Multi-citation (max 4 in one bracket — beyond that, regroup the claim)
+"Multiple groups demonstrated this effect [N1, N2, N3]"
+
+# Comparative
+"While [N1] focused on architecture, [N2] addressed the data side"
+```
+
+`[N]` in body must match the bibliography entry [N], and bibliography [N] must be the paper the body sentence is actually attributing the claim to. See [references/CITATION_INTEGRITY.md](references/CITATION_INTEGRITY.md) Rule 3.
+
+---
+
+## Literature Sources
+
+Use all three in combination:
+
+| Source | Best for | Tools |
+|---|---|---|
+| **ArXiv** | Methodological preprints, ML/AI advances | `mcp__arxiv-mcp-server__search_papers`, `read_paper` |
+| **PubMed** | Peer-reviewed clinical / validation studies | `mcp__pubmed-mcp-server__pubmed_search_articles` + WebFetch on PubMed |
+| **Zotero** | User's local library (closed-access journals) | `mcp__zotero__zotero_search_items`, `zotero_get_item_fulltext` |
+| **Crossref** | DOI verification | WebFetch on `api.crossref.org/works/<DOI>` |
+
+For closed-access journals (Med Image Anal, Eur Radiol, Lancet family) the user's local Zotero library is often the only path. Always check Zotero before assuming a paper is inaccessible.
+
+For MCP server configuration, see [references/MCP_SETUP.md](references/MCP_SETUP.md).
+
+---
+
+## Reference Files
+
+| File | Read when |
+|---|---|
+| [references/WORKFLOW.md](references/WORKFLOW.md) | Starting a new review or moving between phases |
+| [references/PARADIGM.md](references/PARADIGM.md) | Phase 0: capturing exemplar review style spec |
+| [references/CITATION_INTEGRITY.md](references/CITATION_INTEGRITY.md) | Phase 2 (collection) and Phase 4 (write) — every citation must follow the 5 rules |
+| [references/HALLUCINATION_PATTERNS.md](references/HALLUCINATION_PATTERNS.md) | Phase 4 (write) and Phase 5 (peer review) — checklist of 9 LLM hallucination indicators to self-check against |
+| [references/DOMAINS.md](references/DOMAINS.md) | Phase 3 (outline) — 3-axis method groupings per domain |
+| [references/TEMPLATES.md](references/TEMPLATES.md) | Phase 1 (init) — CLAUDE.md, IMPLEMENTATION_PLAN.md, table templates |
+| [references/QUALITY_CHECKLIST.md](references/QUALITY_CHECKLIST.md) | Before delivering a draft to the user |
+| [references/MCP_SETUP.md](references/MCP_SETUP.md) | Setting up arxiv-mcp / pubmedmcp / zotero-mcp |
+
+---
+
+## Related Skills
+
+For revising an existing AI-drafted review (whether your own previous output or someone else's draft), use `ai-review-revision`. That skill is the dedicated tool for fixing draft-quality issues — multi-agent diagnostic, factual reset, structural reset, content polish, submission prep.
+
+This skill (`medical-imaging-review`) is the dedicated tool for producing draft-quality content correctly the first time. They are complementary:
+
+- **medical-imaging-review** = write-side (produce submission-quality first draft)
+- **ai-review-revision** = revise-side (rescue a draft that already has quality issues)
+
+If a draft produced by this skill still ends up needing the `ai-review-revision` workflow to land, that's a bug — flag it so this skill can be improved.
+
+---
+
+## Why this skill was rewritten (v3 vs v2)
+
+v2.0.0 produced the `coronary-cta-paper` initial draft. That draft needed extensive multi-day revision before submission-readiness: 17 placeholder DOIs, 30-40 [N] citation drift errors, fabricated method module names with wrong performance numbers, vendor-style citations attributed to peer-reviewed journals, a 10-subsection flat method taxonomy where 3 thematic axes would have served better, AI-tone hedging language throughout.
+
+v3 directly addresses each of these failure modes:
+
+| v2 failure | v3 fix |
+|---|---|
+| Hedging mandate in Core Principles | Removed; replaced with "match voice to evidence" |
+| 80-120 reference count target | Removed; replaced with "cite what supports the argument" |
+| Method fill-in template | Removed; replaced with "read-first, write-after" discipline |
+| 10-flat method subsection taxonomy | Replaced with 3-axis grouping in DOMAINS.md |
+| QA = formal structural check | Replaced with per-claim verification embedded in Phase 4 |
+| No DOI / author / direction verification | Added as CITATION_INTEGRITY.md with 5 rules |
+| No hallucination self-check | Added as HALLUCINATION_PATTERNS.md (9 patterns) |
+| Numbered headings | Banned; max 2 levels, bold lead-in for deeper |
+| Vendor names scattered | Confined to Table 3 only |
+| Equations inline | Confined to Box 1 only |
+| Verdict-free neutral catalogue | Required 3-5 verdict sentences |
+| No exemplar paradigm capture | Added Phase 0 PARADIGM.md |

+ 233 - 0
skills/research-skills/medical-imaging-review/references/CITATION_INTEGRITY.md

@@ -0,0 +1,233 @@
+# Citation Integrity Protocol
+
+This is the most important reference file in the skill. Citation drift / fabrication is the #1 failure mode of LLM-drafted reviews.
+
+5 rules. Every citation must satisfy all 5.
+
+---
+
+## Rule 1: No placeholder DOIs
+
+Any DOI containing `xxx`, `[TBD]`, `?`, stub patterns, or "to-be-filled" notation **must be resolved before the manuscript advances to the next section**.
+
+### Detection
+
+```bash
+grep -nE "xxx|\[TBD\]|x\):xxx|doi:10\.[a-z]+/x" manuscript_draft.md
+```
+
+Expected: 0 hits at any milestone.
+
+### Resolution
+
+For papers with a PMID:
+
+```
+WebFetch on https://pubmed.ncbi.nlm.nih.gov/<PMID>/
+  → Extract: title, full author list, journal, year, volume, issue, pages, DOI
+```
+
+For papers without a PMID but a known DOI:
+
+```
+WebFetch on https://api.crossref.org/works/<DOI>
+  → Extract: same fields from JSON
+```
+
+For papers in a closed-access journal where the user has the PDF:
+
+```
+mcp__zotero__zotero_search_items(query: "<author> <method>")
+mcp__zotero__zotero_get_item_metadata(item_key: ...)
+```
+
+### Why this is Rule 1
+
+v2 of this skill shipped 17 placeholder DOIs in the coronary-cta-paper draft. Editors at any medical journal will reject a manuscript with `xxx` in the DOI on first sight. This is the lowest-effort, highest-impact rule.
+
+---
+
+## Rule 2: Author list verification
+
+Every reference in the bibliography must have its first and last author verified against the first-source. For references with > 6 authors, list first 6 + et al. — but the first author (and last author for medical clinical papers) must be verbatim.
+
+### LLM failure mode
+
+LLMs generate **generic-sounding 4-author lists** when they don't know the actual authors:
+
+- ✗ "Liu Y, Zhang H, Chen X, Wang J. TransCC..." (these are common Chinese surnames in 4-author pattern — strong fabrication signal)
+- ✗ "Smith J, Johnson A, Williams M, Brown D" (English equivalent)
+- ✗ "Patel R, Kumar A, Singh P, Sharma N"
+
+### Detection
+
+For each reference in the bibliography, ask:
+- Are these 4 of the most common surnames in a major language?
+- Do the initials look suspiciously "average" (J / A / M / D)?
+- Is this a paper where I might have looked up the title but never the authors?
+
+For any "yes" answer, treat as suspect and verify.
+
+### Resolution
+
+```
+WebFetch on https://pubmed.ncbi.nlm.nih.gov/<PMID>/
+  OR
+WebFetch on https://api.crossref.org/works/<DOI>
+  → Replace the entire author list verbatim.
+```
+
+For arXiv papers:
+
+```
+WebFetch on https://arxiv.org/abs/<id>
+```
+
+### Why this matters
+
+A wrong author list reads as obvious fabrication to anyone in the field. Real reviewers know the principal investigators in their area, and seeing "Liu Y, Zhang H, Chen X, Wang J" attached to a high-profile method paper is an instant credibility kill.
+
+---
+
+## Rule 3: Body ↔ Bibliography reconciliation
+
+The `[N]` in the body must (a) exist in the bibliography and (b) be the paper the body sentence is actually attributing the claim to.
+
+### LLM failure mode — "citation drift"
+
+When LLM reorganizes sections or merges paragraphs, it often forgets to renumber citations. The body sentence says "Shit et al. introduced clDice [43]" but bibliography entry [43] is a completely different paper (e.g., a centerline DRL paper). Bibliography entry [10] is actually the clDice paper.
+
+### Detection
+
+```bash
+# Find all citations in body
+grep -nE "\[([0-9]+)\]" manuscript_draft.md | head -50
+
+# Find bibliography entries
+grep -nE "^[0-9]+\." manuscript_draft.md
+```
+
+For each body citation `[N]`, verify:
+- Is there a bibliography entry numbered N?
+- Does that entry attribute to the right paper?
+
+### Resolution
+
+Two patterns:
+
+**Pattern A: Single-author misattribution.** Body says "Shit et al. [43]" but [43] is wrong. Action: `grep -n "Shit"` to find the correct number, edit body to point there.
+
+**Pattern B: Numerical drift across many citations.** Body [60] should be [36] (after section reorganization shifted 24 entries). Action: list affected range, manually re-number.
+
+For a typical 120-reference review, expect 5-15 drift instances if you're careful and 30-40 if you're not.
+
+### Detection at scale
+
+Build a verification script:
+
+```python
+# Pseudocode
+for n in body_citations:
+    bib_entry = bibliography.get(n)
+    body_sentence = sentence_containing(n)
+    body_author = extract_author_mention(body_sentence)
+    bib_author = extract_first_author(bib_entry)
+    if body_author and bib_author and body_author.lower() not in bib_author.lower():
+        flag(n, body_author, bib_author)
+```
+
+---
+
+## Rule 4: Conclusion-direction verification
+
+For every cited **finding** (HR, OR, p-value, effect size, "higher" / "lower" claim), the body sentence's directional claim must match the source's stated direction.
+
+### LLM failure mode
+
+LLMs flip directions when paraphrasing. The paper says "patients with collateral circulation had **lower** FAI values." LLM paraphrase becomes: "Lv et al. [N] showed collateral circulation is associated with **higher** FAI."
+
+This is one of the worst failures because the cited paper genuinely exists, the author is real, and the topic is right — but the conclusion direction is reversed. Catches eye of any reviewer in the area.
+
+### Detection
+
+For every body sentence that contains directional language (higher / lower / increased / decreased / better / worse), the writer must have explicitly verified the direction against the source.
+
+Quick checklist when writing such a sentence:
+1. What direction does the source actually report?
+2. What direction am I about to write?
+3. Do those match?
+
+### Resolution
+
+Always cite directions verbatim from the abstract. Don't paraphrase quantitative directional claims.
+
+✗ "Lv et al. [N] showed collaterals are associated with higher FAI."
+✓ "Patients with collateral circulation had lower FAI values than those without (Lv et al. [N])."
+
+---
+
+## Rule 5: First-source over vendor materials
+
+Vendor white papers, NHS England reports, FDA 510(k) clearance letters, and company press releases are **not** peer-reviewed primary sources for clinical findings. Cite them only for regulatory facts (clearance date, indication), not for clinical evidence (trial results, performance numbers).
+
+### LLM failure mode
+
+LLM cites "NHS England. FISH&CHIPS Study Implementation Report. BMJ Open. 2024" as if it's a peer-reviewed trial. Reality: there is no such BMJ Open paper. The FISH&CHIPS study is a real NHS program, and its peer-reviewed publication is:
+
+> Fairbairn TA, Mullen L, Nicol E, Lip GYH, Schmitt M, Shaw M, et al. Implementation of a national AI technology program on cardiovascular outcomes and the health system. **Nat Med**. 2025;31(6):1903-1910.
+
+The body sentence was right about the study existing, but the citation was a fabricated journal attribution.
+
+### Detection
+
+For every reference that looks like:
+- "[Company name]. [Product] White Paper. ..."
+- "[Agency]. [Study]. ..."
+- "[Study Investigators]. [Findings]. [Major journal]. 2024."
+
+Treat as **suspect** and search for the actual peer-reviewed publication.
+
+### Resolution
+
+For each vendor- or agency-style citation, search PubMed:
+
+```
+mcp__pubmed-mcp-server__pubmed_search_articles(query: "<study acronym> implementation OR validation")
+```
+
+If a peer-reviewed publication exists, use it. If not, use the vendor material **only for regulatory / programmatic facts**, never for clinical performance claims.
+
+---
+
+## Verification Workflow Integration
+
+These 5 rules are applied at multiple points:
+
+| Phase | Rules applied | How |
+|---|---|---|
+| Phase 2 (collection) | Rules 1, 2, 5 | At entry time, before adding to bibliography |
+| Phase 4 (writing) | Rules 1, 3, 4 | Per-paragraph as citations are placed |
+| Phase 5 (peer review) | All 5 | `ref-checker` teammate runs systematic pass |
+| Phase 6 (submission) | All 5 | Final checklist before submission |
+
+---
+
+## What to do when a rule failure is found
+
+Failures are normal — these are guardrails, not aspirational goals.
+
+For each failure:
+
+1. **Stop forward writing immediately.** Don't accumulate broken citations.
+2. **Look up the correct metadata** using the resolution steps above.
+3. **Fix the citation in place** — body sentence + bibliography entry both.
+4. **Check for related failures.** A misattribution in one place often signals the same error in 2-3 other places where the same paper was cited.
+5. **Log the fix** in `IMPLEMENTATION_PLAN.md` change log — this protects the next person editing the manuscript.
+
+---
+
+## Why this protocol exists
+
+The single largest source of credibility damage in LLM-drafted reviews is citation infrastructure failure. A draft can have brilliant analysis and miss editor first-glance if the bibliography is fabricated, drifted, or misattributed.
+
+This protocol takes 10-20% of total writing time but eliminates 80%+ of the credibility-killer issues. It is non-negotiable.

+ 302 - 0
skills/research-skills/medical-imaging-review/references/DOMAINS.md

@@ -0,0 +1,302 @@
+# Domain-Specific Method Taxonomies (3-Axis Grouping)
+
+**This file replaces the v2 "flat 10-subsection list" approach.** For each medical imaging domain, methods are organized along **3 thematic axes**, not as a long flat list. These axes are **subsection structure** (the H3 organization in §Methods), with **bold lead-ins** for individual method families inside each axis.
+
+The 3 axes are universal:
+1. **Architectural priors** — what kind of network (CNN, Transformer, Mamba, etc.)
+2. **Inductive priors** — what kind of geometric / structural / multi-task bias is built in (topology, multi-task, graph, etc.)
+3. **Data regime** — how data is used / pre-trained / federated (self-supervised, foundation models, federated, etc.)
+
+**Critical:** These 3 axes are how the §Methods section is structured. Do NOT bullet 10 method categories as 10 H3 subsections. Use 3 axis subsections, with bold lead-ins inside each axis for the method families.
+
+---
+
+## How to use this file
+
+When writing the §Methods section:
+
+1. Open this file to find your domain.
+2. Use the 3-axis grouping as your H3 structure.
+3. Inside each axis subsection, use bold lead-ins for the individual method families.
+4. End each axis subsection with a verdict sentence.
+
+Example for coronary segmentation §Methods:
+
+```markdown
+## Methods
+
+### Architectural priors
+
+**CNN-based design.** ... 2-3 paragraphs ...
+**Transformer-based design.** ... 2-3 paragraphs ...
+**Mamba and state-space design.** ... 1-2 paragraphs ...
+
+Verdict: CNN-based design remains the operational default; transformer
+hybrids are starting to show convincing gains in centerline-vs-mask hybrid
+problems but have yet to displace U-Net on pure segmentation.
+
+### Inductive priors
+
+**Topology-aware design.** ... 2-3 paragraphs ...
+**Multi-task design.** ... 2-3 paragraphs ...
+**Graph neural network design.** ... 1-2 paragraphs ...
+
+Verdict: Topology-aware losses are the single most cost-effective design
+choice for coronary segmentation when paired with any decent backbone.
+
+### Data regime
+
+**Self-supervised pre-training.** ... 2-3 paragraphs ...
+**Foundation models.** ... 2-3 paragraphs ...
+**Federated learning.** ... 1-2 paragraphs ...
+**Physics-informed models.** ... 1 paragraph ...
+
+Verdict: Foundation models are the next 2-3 years' wild card; their gap to
+domain-tuned specialists has narrowed substantially but is not yet closed.
+```
+
+---
+
+## Coronary Artery / Cardiovascular CT (CCTA)
+
+### Axis 1: Architectural priors
+- **CNN-based**: U-Net, V-Net, nnU-Net variants
+- **Transformer-based**: ViT, SwinUNETR, TransUNet, TransCC, FocusUNETR
+- **Mamba / state-space**: VM-UNet, U-Mamba for vessels
+- **Hybrid CNN-Transformer**: nnFormer, hybrid encoders
+
+### Axis 2: Inductive priors
+- **Topology-aware**: clDice loss, VCP loss, persistent-homology losses
+- **Multi-task**: joint segmentation + centerline, joint segmentation + bifurcation detection
+- **Graph neural network**: vessel graph extraction, GNN-based labeling
+
+### Axis 3: Data regime
+- **Self-supervised pre-training**: contrastive, masked-image-modeling for vessels
+- **Foundation models**: SAM-Med, vesselFM, generalist segmentation models
+- **Semi-supervised**: pseudo-labeling for CCTA datasets
+- **Federated learning**: multi-center coronary segmentation without data sharing
+- **Physics-informed**: PDE-constrained losses for vessel topology
+
+### Downstream tasks (separate section, not part of methods axis structure)
+- Centerline extraction
+- Vessel labeling (SCCT 18-segment / AHA 17-segment myocardium)
+- Stenosis detection
+- CT-FFR computation
+- Plaque analysis
+- Calcium scoring
+- Pericoronary fat analysis (FAI)
+
+### Key datasets
+- CAT08 (32 cases, centerline)
+- ASOCA (40 cases, segmentation)
+- ImageCAS (1000 cases, single-center, segmentation)
+- PCCTA120 (120 cases, artery + plaque)
+
+---
+
+## Lung Imaging (CT / X-ray)
+
+### Axis 1: Architectural priors
+- **Anchor-based detection**: Faster R-CNN, RetinaNet
+- **Anchor-free detection**: CenterNet, FCOS, YOLO variants
+- **Transformer-based detection**: DETR family
+- **3D detection**: 3D nodule detection networks
+- **U-Net variants for segmentation**
+
+### Axis 2: Inductive priors
+- **Multi-scale feature pyramids**: FPN-based, PSP
+- **Attention mechanisms**: SE blocks, CBAM, axial attention
+- **Boundary-aware**: edge-loss formulations
+- **Uncertainty quantification**: MC dropout, ensembles
+
+### Axis 3: Data regime
+- **Self-supervised**: contrastive learning on chest CT
+- **Weakly-supervised**: from radiology reports
+- **Foundation models**: chest X-ray foundation models
+
+### Tasks
+- Nodule detection / segmentation / malignancy classification
+- COVID-19 detection
+- Interstitial lung disease characterization
+
+### Key datasets
+- LUNA16 (888 CT scans)
+- LIDC-IDRI (1018 cases)
+- ChestX-ray14 (112,120 X-rays)
+
+---
+
+## Brain Imaging (MRI / CT)
+
+### Axis 1: Architectural priors
+- **CNN-based**: U-Net, V-Net
+- **Transformer-based**: SwinUNETR, UNETR for BraTS
+- **Hybrid**
+
+### Axis 2: Inductive priors
+- **Attention mechanisms**: spatial, channel, self-attention
+- **Graph neural networks**: brain connectivity GNNs
+- **Multi-atlas-informed**: deep atlas registration
+
+### Axis 3: Data regime
+- **Self-supervised pre-training**: masked-image-modeling on MRI
+- **Foundation models**: medSAM, BrainSAM
+- **Multi-modal fusion**: T1/T2/FLAIR fusion strategies
+- **Federated learning**: cross-institutional MRI federation
+
+### Tasks
+- Brain tissue segmentation
+- Tumor segmentation (BraTS)
+- Lesion detection (stroke, MS)
+- Cerebrovascular segmentation
+- Age / disease estimation
+
+### Key datasets
+- BraTS (brain tumor)
+- ADNI (Alzheimer's)
+- IXI (healthy brains)
+- ISLES (stroke lesions)
+
+---
+
+## Cardiac Imaging (MRI / CT / Echo)
+
+### Axis 1: Architectural priors
+- **CNN-based**: nnU-Net, V-Net cine MRI
+- **Temporal modeling**: RNN, 3D CNN, transformer-based temporal
+- **Multi-view fusion**: SA + LA cine fusion
+
+### Axis 2: Inductive priors
+- **Shape priors**: SSM-constrained networks
+- **Anatomical loss formulations**
+- **Uncertainty estimation**: ensembles, MC dropout
+
+### Axis 3: Data regime
+- **Multi-modal fusion**: cine + LGE + perfusion
+- **Foundation models**: cardiac generalists
+- **Self-supervised pre-training**
+
+### Tasks
+- Chamber segmentation
+- Wall motion analysis
+- Scar / fibrosis detection (LGE)
+- Valve assessment
+- Strain analysis
+
+### Key datasets
+- ACDC (100 patients)
+- M&Ms (320 subjects)
+- CAMUS (500 patients, echo)
+
+---
+
+## Pathology (Whole Slide Images)
+
+### Axis 1: Architectural priors
+- **Patch-based CNN**: ResNet, EfficientNet
+- **Transformer-based**: ViT, hierarchical transformers
+- **Graph neural networks**: nuclei-level graphs
+
+### Axis 2: Inductive priors
+- **Multiple Instance Learning (MIL)**: attention-MIL, max-pooling
+- **Attention-based aggregation**: TransMIL
+- **Topology-aware**: persistent homology of histological structures
+
+### Axis 3: Data regime
+- **Self-supervised pre-training**: SimCLR / MoCo / DINO on patches
+- **Foundation models**: PathLM, CONCH, UNI, Virchow
+- **Weakly-supervised**: from slide-level labels
+
+### Tasks
+- Cancer detection / grading / staging
+- Biomarker prediction
+- Survival prediction
+
+### Key datasets
+- CAMELYON (lymph node)
+- TCGA (multi-cancer)
+- PANDA (prostate)
+
+---
+
+## Retinal Imaging (Fundus / OCT)
+
+### Axis 1: Architectural priors
+- **CNN-based**: multi-scale networks
+- **Transformer-based**: ViT for fundus
+- **Hybrid**
+
+### Axis 2: Inductive priors
+- **Attention mechanisms**: dual-attention for vessels
+- **Domain adaptation**: between fundus camera types
+
+### Axis 3: Data regime
+- **Self-supervised**: on large unlabeled fundus image sets
+- **Foundation models**: RETFound, FLAIR
+- **Federated learning**: privacy-preserving DR screening
+
+### Tasks
+- Diabetic retinopathy grading
+- Glaucoma detection
+- Age-related macular degeneration
+- Vessel segmentation
+
+### Key datasets
+- EyePACS (88,702 images)
+- DRIVE (40 images, vessels)
+- REFUGE (1200 images, glaucoma)
+
+---
+
+## Universal Medical Image Segmentation (Fallback Axis Structure)
+
+When the domain is generic or your topic spans multiple modalities, use this universal 3-axis grouping:
+
+### Axis 1: Architectural priors
+- Encoder-Decoder (U-Net, V-Net, nnU-Net)
+- Transformer-based (SwinUNETR, UNETR, TransUNet)
+- Mamba / state-space
+- Hybrid CNN-Transformer
+
+### Axis 2: Inductive priors
+- Attention mechanisms (SE, CBAM, axial, deformable)
+- Multi-scale processing (FPN, PSP, ASPP)
+- Boundary-aware (active contours, edge losses)
+- Topology-preserving (clDice, persistent homology)
+- Uncertainty quantification (MC Dropout, ensembles)
+
+### Axis 3: Data regime
+- Self-supervised pre-training (contrastive, masked)
+- Foundation models (SAM, MedSAM)
+- Few-shot / zero-shot (prototypical, foundation models)
+- Domain adaptation (adversarial, self-training)
+- Federated learning
+- Efficient architectures (MobileNet, EfficientNet, Mamba — when efficiency is the focus)
+
+### Universal evaluation metrics (Box 1 content)
+- **Overlap**: Dice, IoU / Jaccard
+- **Distance**: Hausdorff (HD, HD95), ASSD
+- **Topology**: clDice, Betti numbers
+- **Clinical**: Sensitivity, Specificity, AUC, PPV / NPV
+
+---
+
+## What to do when a method family doesn't fit cleanly into 3 axes
+
+Some methods span axes (e.g., a foundation-model-based topology-aware Mamba would touch all 3). In such cases:
+
+- Place the method in the axis it's most centrally about.
+- Cross-reference from the other 2 axes ("see also: this method type combines architectural and data-regime innovations").
+- Don't create a 4th axis to accommodate it. Three axes is the structural commitment.
+
+If 30%+ of your methods don't fit, you may be in a sub-domain where the 3-axis structure needs adaptation. In that case, document the alternative structure in PARADIGM.md and use it consistently — but stay disciplined to 3 axes.
+
+---
+
+## Why 3 axes, not 10 flat subsections
+
+The v2 skill's coronary section listed 10 flat method categories. The resulting draft had a §3 with 10 nearly-equal H3 subsections, each ~500 words. The effect on the reader: **a textbook chapter, not a flagship review**.
+
+Flagship reviews compress 10+ method variants into 3 thematic axes. The 3-axis structure also forces explicit comparison ("CNN-based vs Transformer-based vs Mamba-based architectures all aim to capture spatial inductive bias differently") which is what a real review reader wants — synthesis, not catalogue.
+
+If your editor / reviewer feedback says "the methods section reads as a flat list", this file's structure is the fix.

+ 211 - 0
skills/research-skills/medical-imaging-review/references/HALLUCINATION_PATTERNS.md

@@ -0,0 +1,211 @@
+# 9 Patterns of LLM Hallucination in Medical Imaging Reviews
+
+Use this as a checklist during Phase 4 (writing) and Phase 5 (peer review). Every paragraph should be self-scanned against these patterns. The 9 patterns are derived from the actual failure modes observed in the `coronary-cta-paper` v2 draft.
+
+Examples are drawn from coronary imaging but the patterns are domain-general.
+
+---
+
+## Pattern 1: Real paper, fabricated author list
+
+**Most common.** The paper exists, but the author list is a generic 4-name pattern (or only includes 1-2 real authors mixed with fabricated co-authors).
+
+### Detection signals
+
+- Author list looks like "Liu Y, Zhang H, Chen X, Wang J" — 4 of the most common surnames in a language paired with most common initials.
+- First-author initial doesn't match real first author (e.g., "Wittmann F" vs. real Bastian Wittmann).
+- Author count obviously wrong for the journal (Nature paper with 3 authors is unusual; methods paper with 12 authors is unusual).
+- Author list looks suspiciously "alphabetical" or "rhythmic" — real lists are messy.
+
+### Example from coronary-cta-paper
+
+- v2 reference [30]: "Liu Y, Zhang H, Chen X, Wang J. TransCC..."
+- Reality: Chenchu Xu, Meng Li, Xue Wu (3 actual authors of the real TransCC paper)
+
+### Fix
+
+Replace entire author list with verbatim from arXiv / PubMed / Crossref / Zotero.
+
+---
+
+## Pattern 2: Inflated performance numbers
+
+The cited paper is real, the topic is right, but the specific Dice / sensitivity / specificity / HR is fabricated and typically inflated.
+
+### Detection signals
+
+- Dice values ending in `.891`, `.917`, `.943` — suspiciously specific 3-decimal numbers
+- Performance numbers consistently above field benchmarks
+- Round-looking numbers when papers usually report messier values
+- Multiple methods all reporting "Dice 0.89" when the real distribution should span 0.70-0.85
+
+### Example from coronary-cta-paper
+
+- v2: "TransCC achieves Dice 0.891 / HD95 1.72 mm on 120 cases"
+- Reality: Dice 0.730 / IoU 0.582 on ImageCAS (not "120 cases")
+
+### Fix
+
+Open the actual paper. Quote the actual numbers from abstract or results table. If the paper isn't accessible, drop the specific numeric claim and only cite the contribution level ("first to apply X to Y").
+
+---
+
+## Pattern 3: Conclusion-direction flip
+
+Most pernicious. Real paper, real authors, real finding — but the direction (higher/lower, increased/decreased) is reversed.
+
+### Detection signals
+
+- Look for any body sentence with directional language: "higher", "lower", "increased", "decreased", "better", "worse", "more", "less"
+- These all need explicit verification against the source
+
+### Example from coronary-cta-paper
+
+- v2: "Lv et al. showed collateral circulation is associated with **higher** FAI"
+- Reality: collaterals associated with **lower** FAI
+
+### Fix
+
+Always quote directional claims verbatim from the source abstract. Don't paraphrase quantitative directional language.
+
+---
+
+## Pattern 4: Vendor / agency material cited as peer-reviewed
+
+Vendor white papers, FDA clearance letters, NHS reports cited with fabricated journal attribution.
+
+### Detection signals
+
+- References that look like: "Company X. Product Y Whitepaper. Major Journal. 2024"
+- "Study Investigators. Findings. BMJ Open. 2024" (when no such BMJ Open paper exists)
+- Citations of clinical findings backed by a regulatory document rather than a peer-reviewed trial
+
+### Example from coronary-cta-paper
+
+- v2: "NHS England. FISH&CHIPS Study Implementation Report. BMJ Open. 2024"
+- Reality: real publication is Fairbairn TA, et al. Nat Med. 2025;31(6):1903-1910
+
+### Fix
+
+Search PubMed for the actual peer-reviewed publication of the study. Use vendor materials only for regulatory / programmatic facts (clearance dates, indications), never for clinical claims.
+
+---
+
+## Pattern 5: Placeholder DOIs
+
+`xxx`, `[TBD]`, `x):xxx-xxx` stubs left in the bibliography.
+
+### Detection
+
+```bash
+grep -nE "xxx|\[TBD\]|x\):xxx|doi:10\.[a-z]+/x" manuscript_draft.md
+```
+
+### Example from coronary-cta-paper
+
+- v2 had 17 entries like: `Eur Radiol. 2026;36(x):xxx-xxx. doi:10.1007/s00330-025-xxx`
+- Reality: each has a real DOI resolvable via PubMed by PMID
+
+### Fix
+
+For each placeholder, WebFetch on PubMed by PMID to extract real metadata. If the paper genuinely doesn't have a DOI yet (true preprint), use the arXiv ID or accept the "online ahead of print" notation — but never `xxx`.
+
+---
+
+## Pattern 6: Generic 4-author hallucination (subset of pattern 1, called out separately)
+
+Specifically the "4 common surnames + common initials" pattern. So distinctive it deserves its own watch.
+
+### Examples
+
+- "Zhang H, Wang L, Chen Y, Liu Q" (Chinese)
+- "Smith J, Johnson A, Williams M, Brown D" (English)
+- "Patel R, Kumar A, Singh P, Sharma N" (Indian)
+- "Sato K, Tanaka T, Suzuki M, Watanabe H" (Japanese)
+
+### Fix
+
+Any time you see exactly 4 authors with this pattern, verify all 4 against the source. Real 4-author papers usually have at least one less-common name.
+
+---
+
+## Pattern 7: Citation number drift
+
+Body says "[43]" but bibliography [43] is the wrong paper. The correct paper is at [10] (or wherever).
+
+### Detection
+
+For every paragraph, check 1-2 random `[N]` against bibliography:
+- Is the body sentence's topic congruent with bibliography [N]'s title?
+- Is the body sentence's author name (if mentioned) the bibliography [N] author?
+
+### Example from coronary-cta-paper
+
+- v2: "Shit et al. [43] introduced clDice"
+- v2 bibliography [43]: a centerline DRL paper (unrelated)
+- v2 bibliography [10]: Shit S, Paetzold JC. clDice — CVPR 2021 (correct)
+- Total drift instances in v2: 30-40
+
+### Fix
+
+For each affected `[N]`, grep for the correct number and edit body in place.
+
+---
+
+## Pattern 8: Metric formula errors
+
+Definitions of standard metrics are wrong. Often: clDice written as "sum-divided-by", actually defined as "harmonic mean".
+
+### Common confusions
+
+- clDice: actually harmonic mean of topological precision and recall (HM(Tprec, Tsens)), often mis-written as "sum / 2" or "average"
+- Hausdorff distance: actually `max(d(A→B), d(B→A))`, often mis-written as "average distance"
+- IoU vs Dice: `|A∩B|/|A∪B|` vs `2|A∩B|/(|A|+|B|)` — sometimes swapped
+- FedAvg: weighted by client-data-size, often mis-described as simple averaging
+
+### Fix
+
+For every metric or method formula displayed, verify against the original paper. Don't rely on memory — these are textbook formulas with subtle precise definitions.
+
+---
+
+## Pattern 9: Internal inconsistency across sections
+
+The same paper is cited in §3.2 with one author list and in §3.5 with a different author list. Or the same dataset appears with different patient counts in different sections.
+
+### Detection
+
+Pick the 5 most-cited papers in the manuscript. For each, grep for every appearance:
+
+```bash
+grep -n "TransCC\|Wittmann\|FISH&CHIPS\|ORFAN\|<key-paper-name>" manuscript_draft.md
+```
+
+Check: every appearance of the same paper should attribute to the same author list with the same numbers.
+
+### Example from coronary-cta-paper
+
+- v2: ImageCAS described as "1000 cases" in §2, "multi-center 1500 cases" in §3.2, "single-center 1000 cases" in Table 3
+- Reality: ImageCAS is single-center, 1000 cases
+
+### Fix
+
+For each high-value paper or dataset, lock in a canonical description in CLAUDE.md terminology table. All sections must conform.
+
+---
+
+## Self-Check Workflow
+
+Every 5-6 paragraphs during writing:
+
+1. Scan the last block for direction language → verify pattern 3.
+2. Look at any new citations → verify patterns 1, 2, 5, 6.
+3. Cross-check any vendor/agency references → verify pattern 4.
+4. Random-sample 1-2 `[N]` body↔bib → verify pattern 7.
+5. Check any metric formula displayed → verify pattern 8.
+
+Every section completion:
+
+6. Search the section for the manuscript's top 5 cited papers → verify pattern 9 (internal consistency).
+
+This adds ~10-15% to writing time. Catches >90% of hallucinations before they leave the writer's desk.

+ 216 - 0
skills/research-skills/medical-imaging-review/references/MCP_SETUP.md

@@ -0,0 +1,216 @@
+# MCP Server Configuration for Literature Collection
+
+Set up arxiv-mcp / pubmedmcp / zotero-mcp for use in Phase 2 (Literature Collection + Verification). For each server, this file documents installation, tools available, and the searches that match the workflow.
+
+---
+
+## ArXiv MCP (Preprints & Latest Research)
+
+**Repository:** https://github.com/blazickjp/arxiv-mcp-server
+
+### Configuration
+
+Add to `~/.claude/mcp.json` (or your MCP config file):
+
+```json
+{
+  "mcpServers": {
+    "arxiv": {
+      "command": "uvx",
+      "args": ["arxiv-mcp-server"],
+      "env": {
+        "ARXIV_STORAGE_PATH": "~/.arxiv-mcp-server/papers"
+      }
+    }
+  }
+}
+```
+
+### Available tools
+
+| Tool | Purpose |
+|---|---|
+| `mcp__arxiv-mcp-server__search_papers` | Search by keywords with date range and category filters |
+| `mcp__arxiv-mcp-server__download_paper` | Download paper PDF by arXiv ID |
+| `mcp__arxiv-mcp-server__list_papers` | List all downloaded papers |
+| `mcp__arxiv-mcp-server__read_paper` | Read downloaded paper content (Markdown) |
+
+### Search strategy
+
+```
+Query: "[topic] AND (segmentation OR detection OR classification)"
+Categories: cs.CV, eess.IV, cs.LG
+Date: Last 3 years for current state of the art
+Max results: 50-80 per query (discriminate aggressively — quality over breadth)
+```
+
+### Example queries
+
+- `"medical image segmentation transformer"` (cs.CV, eess.IV)
+- `"coronary artery deep learning"` (cs.CV)
+- `"CT scan neural network"` (eess.IV)
+- `"foundation model medical segmentation"` (cs.CV, cs.LG)
+
+### Workflow integration
+
+Per CITATION_INTEGRITY.md Rule 2, when adding an arXiv paper to bibliography:
+
+1. `search_papers` to find candidates
+2. `download_paper(paper_id)` for promising ones
+3. `read_paper(paper_id)` to read full text (or at least abstract + methods + results)
+4. Note actual first author, full author list, exact module names, headline numbers
+5. Cross-check: arxiv abstract page = `https://arxiv.org/abs/<id>` for author list verification
+
+---
+
+## PubMed MCP (Biomedical Literature)
+
+**Repository:** https://github.com/grll/pubmedmcp
+
+Access 35+ million biomedical literature citations.
+
+### Configuration
+
+```json
+{
+  "mcpServers": {
+    "pubmedmcp": {
+      "command": "uvx",
+      "args": ["pubmedmcp@latest"],
+      "env": {
+        "UV_PRERELEASE": "allow",
+        "UV_PYTHON": "3.12"
+      }
+    }
+  }
+}
+```
+
+### Available tools
+
+| Tool | Purpose |
+|---|---|
+| `mcp__pubmed-mcp-server__pubmed_search_articles` | Search PubMed with MeSH and free-text queries |
+
+### Search tips
+
+- Use MeSH terms for precise medical searches
+- Combine with publication type filters (Review, Clinical Trial)
+- Filter by date for recent literature
+
+### Example MeSH queries
+
+- `"Deep Learning"[MeSH] AND "Coronary Vessels"[MeSH]`
+- `"Image Processing, Computer-Assisted"[MeSH] AND "Tomography, X-Ray Computed"[MeSH]`
+- `"Cardiac Imaging Techniques"[MeSH] AND "Artificial Intelligence"[MeSH]`
+
+### Direct WebFetch for verification
+
+`pubmed_search_articles` returns PMIDs. For metadata verification (CITATION_INTEGRITY.md Rules 1-2):
+
+```
+WebFetch on https://pubmed.ncbi.nlm.nih.gov/<PMID>/
+  → Extract: full author list, journal, year, vol, issue, pages, DOI, finding direction
+```
+
+This is the canonical first-source verification step for medical clinical papers.
+
+---
+
+## Zotero Integration
+
+Access user's local Zotero database via Zotero-MCP.
+
+### Direct API Access (fallback)
+
+```bash
+# List collections
+curl -s "http://localhost:23119/api/users/[USER_ID]/collections"
+
+# Get items from a collection
+curl -s "http://localhost:23119/api/users/[USER_ID]/collections/[KEY]/items"
+```
+
+### Zotero-MCP (recommended)
+
+**Repository:** https://github.com/54yyyu/zotero-mcp
+
+Provides structured access:
+
+| Tool | Purpose |
+|---|---|
+| `mcp__zotero__zotero_search_collections` | Find collections by name / keyword |
+| `mcp__zotero__zotero_get_collection_items` | List items in a collection |
+| `mcp__zotero__zotero_search_items` | Search items by keyword |
+| `mcp__zotero__zotero_get_item_metadata` | Get full metadata for an item |
+| `mcp__zotero__zotero_get_item_fulltext` | Get full paper text from attached PDF |
+| `mcp__zotero__zotero_get_annotations` | Get user highlights / notes |
+| `mcp__zotero__zotero_semantic_search` | Semantic search across library |
+
+### Workflow integration
+
+For closed-access journals (Med Image Anal, Eur Radiol, JACC family, Lancet family, Nature family), the user often has PDFs in Zotero that aren't accessible via WebFetch. Workflow:
+
+```
+1. mcp__zotero__zotero_search_items(query: "<author> <method>", limit: 5)
+2. mcp__zotero__zotero_get_item_metadata(item_key: "<key>")
+3. mcp__zotero__zotero_get_item_fulltext(item_key: "<key>") for body content
+```
+
+### Extractable fields
+
+- title
+- abstractNote
+- date
+- creators (author list — verify against first-source per Rule 2)
+- publicationTitle
+- DOI
+- tags
+- collections
+
+---
+
+## Source Selection Guide
+
+| Source | Best for | Strengths | Workflow phase |
+|---|---|---|---|
+| **ArXiv** | Methodological preprints, ML/AI advances | Fast access, CS/AI focus, full text | Phase 2.1 |
+| **PubMed** | Peer-reviewed clinical / validation, MeSH-indexed | Authoritative for medical, free metadata access | Phase 2.2 |
+| **Zotero** | Closed-access journals where user has PDFs | Local, supports fulltext extraction | Phase 2.3 |
+| **Crossref** | DOI verification | API gives canonical metadata | All phases (verification) |
+
+---
+
+## Verification helper commands
+
+For Phase 4 (per-claim verification) and Phase 5 (peer review):
+
+```
+# Crossref by DOI
+WebFetch on https://api.crossref.org/works/<DOI>
+  → Returns JSON: title, full author list, container-title (journal), volume, issue, page, DOI, published year
+
+# Crossref by topic search
+WebFetch on https://api.crossref.org/works?query.bibliographic=<keywords>&rows=5
+  → Returns top 5 matching entries
+
+# PubMed by PMID
+WebFetch on https://pubmed.ncbi.nlm.nih.gov/<PMID>/
+  → Returns parsed page: title, authors, journal info, DOI, abstract
+
+# arXiv abstract page (for author list verification)
+WebFetch on https://arxiv.org/abs/<id>
+  → Returns abstract + full author list
+```
+
+---
+
+## When MCP servers fail
+
+If an MCP server is not configured or fails:
+
+- **ArXiv fallback**: WebFetch on `https://arxiv.org/abs/<id>` directly
+- **PubMed fallback**: WebFetch on `https://pubmed.ncbi.nlm.nih.gov/<PMID>/` directly
+- **Zotero fallback**: ask the user to share PDFs directly, or use direct API access via curl
+
+The skill is designed to work even without MCP — WebFetch on the underlying APIs is always available.

+ 221 - 0
skills/research-skills/medical-imaging-review/references/PARADIGM.md

@@ -0,0 +1,221 @@
+# Phase 0: Paradigm Capture
+
+Before writing the manuscript, extract a style spec from 2-3 exemplar reviews in the target journal tier. This anchors the draft to flagship-review style and prevents drift toward the generic "survey paper" register that LLMs default to.
+
+---
+
+## Why this phase exists
+
+LLMs trained on the entire web have absorbed every register of medical writing — vendor white papers, methodological surveys, textbook chapters, narrative reviews, systematic reviews, flagship reviews — and have no built-in preference among them. By default, the register they generate is somewhere between "good survey paper" and "Wikipedia article": numbered chapters, hedging language, neutral catalogue, dense subsections.
+
+Flagship-tier reviews (Nature Reviews / Nat Med / Lancet family / JACC) write differently:
+
+- 2 heading levels, no number prefixes
+- 1-2 sentence "verdict" closers per axis section
+- Equations and dataset details in Boxes, not body
+- Vendor names confined to a single Table
+- Authorial position taken explicitly when evidence supports it
+- 1.5-2.5 references per paragraph, well-targeted
+- Often a 4-5 bullet "Key Points" box after the title
+
+Without an exemplar anchor, even careful writing drifts toward the generic register. With one, every paragraph has a benchmark.
+
+---
+
+## Action 1: Select 2-3 exemplar reviews
+
+### Selection criteria
+
+- **Same modality or same problem family** as your topic. (For coronary AI, look at recent coronary or cardiovascular AI reviews. For brain tumor segmentation, look at neuroradiology AI reviews.)
+- **Same journal tier** as your target. If aiming for Nat Med, read a recent Nat Med review. If aiming for Eur Radiol, read a recent Eur Radiol review.
+- **Last 3 years**. Older exemplars may have outdated stylistic conventions.
+- **Recognized authors**. Reviews authored by senior figures in the field carry the conventions of their target journals more reliably.
+
+### Suggested exemplars by tier
+
+**Top tier (Nature Reviews / Nat Med / Lancet family):**
+
+- Nature Reviews Cardiology — for cardiovascular AI
+- Nat Med — for AI-in-medicine narrative reviews
+- Lancet Digital Health — for AI clinical translation
+
+**Second tier (specialty journals):**
+
+- JACC: Cardiovascular Imaging — for cardiac imaging AI
+- Radiology / Eur Radiol — for general imaging AI
+- IEEE TMI — for methodological reviews with clinical context
+
+**Methodological tier:**
+
+- Medical Image Analysis — for purely methodological reviews
+- IEEE JBHI — for AI-in-healthcare methods
+
+### Acquiring the PDFs
+
+Most flagship reviews are accessible via:
+
+- The user's Zotero library (check first — they likely already have them)
+- PubMed Central (for open-access)
+- The journal's website (subscription / institutional access)
+- arXiv preprint version (sometimes available)
+
+---
+
+## Action 2: Read carefully — not skim
+
+Spend 60-90 minutes per exemplar. Read the full text, including Boxes, Figure captions, and Table footnotes.
+
+Pay attention to:
+
+### Heading structure
+
+- How many levels deep? (Almost always 2 for top tier.)
+- Are headings numbered or unnumbered? (Almost always unnumbered for top tier.)
+- How long are H2 sections? (Typically 800-1500 words.)
+- How long are H3 sections? (Typically 300-800 words.)
+- How are deeper subsections handled? (Bold lead-in `**Topic.**`, not H4.)
+
+### Paragraph rhythm
+
+- How does a paragraph open? (Topic claim — almost never "In recent years," or "It is worth noting.")
+- How does evidence flow? (1-3 sentences of specifics with citations, not loose generalities.)
+- How does a paragraph close? (Either with a transition or with a verdict — not with hedging.)
+- How many sentences per paragraph? (Usually 4-7.)
+
+### Citation density
+
+- Count references per paragraph in 5 random paragraphs.
+- Top tier: usually 1.5-2.5 refs per paragraph.
+- Lower density suggests overclaiming; higher suggests stacking refs uncritically.
+
+### Equation handling
+
+- Are display equations in body or Boxes?
+- If in body, is there a Box at all?
+- How are metric definitions handled — formula or prose?
+
+### Vendor handling
+
+- Search for any commercial product name. Does it appear in body text or only in Tables?
+- How are FDA / regulatory facts cited?
+
+### Authorial voice
+
+- Find the 3-5 strongest claims in the review. How are they phrased?
+- Does the author take positions like "X is currently the best approach for Y" or stay neutral throughout?
+- Where does hedging appear? (Usually only when evidence genuinely supports caution.)
+
+### Boxes and Figures
+
+- How many Boxes? (1-3 typical.)
+- What goes in a Box? (Definitions, key trials, controversies.)
+- How many Figures? (3-5 typical.)
+- What kinds of Figures? (Overview / taxonomy / workflow / data-driven plot.)
+
+### Tables
+
+- How many Tables? (2-4 typical — rarely 5+.)
+- What goes in a Table? (Datasets, methods comparison, commercial products.)
+- How dense? (10-20 rows is common; 30+ is unusual.)
+
+### Key Points box
+
+- Is there one? (Yes for most top tier.)
+- How many bullets? (4-5 typical.)
+- How long is each bullet? (1-3 sentences.)
+
+---
+
+## Action 3: Write `PARADIGM.md` in the project root
+
+Use this template:
+
+```markdown
+# Paradigm Spec for [Project Name]
+
+## Target journal: [name and tier]
+
+## Exemplars studied
+1. [Author Year]. [Title]. [Journal]. [PMID/DOI]. (PDF: <path>)
+2. [Author Year]. [Title]. [Journal]. [PMID/DOI]. (PDF: <path>)
+
+## Extracted style spec
+
+### Heading structure
+- Max depth: [N] levels
+- Numbering: [yes / no]
+- Typical H2 length: [N-N] words
+- Deeper subsections: [H4 / bold lead-in / other]
+
+### Paragraph rhythm
+- Opening: [observed pattern, e.g., "Topic claim sentence, no temporal preamble"]
+- Body: [observed pattern, e.g., "2-4 sentences of specifics with citations"]
+- Closing: [observed pattern, e.g., "Transition or verdict"]
+- Typical length: [N-N] sentences
+
+### Citation density
+- Average refs per paragraph: [N]
+- Multi-citation cap (max refs in one bracket): [N]
+
+### Equations
+- Location: [body / Box / both / none]
+- Display style: [LaTeX / inline / prose]
+
+### Vendor handling
+- Body: [allowed / disallowed]
+- Table: [yes / no]
+- Total Tables containing vendor names: [N]
+
+### Authorial voice
+- Hedging frequency: [observed examples]
+- Strong claims: [N observed across 3 reviews]
+- Verdict closers per section: [observed pattern]
+
+### Boxes and Figures
+- Box count: [N]
+- Box purposes: [list]
+- Figure count: [N]
+- Figure types: [list]
+
+### Tables
+- Count: [N]
+- Density: [N-N rows]
+
+### Key Points
+- Present: [yes / no]
+- Bullet count: [N]
+- Bullet length: [N-N sentences]
+
+## Manuscript style targets (binding for Phase 4 writing)
+
+Phase 4 writing should conform to this spec. Specifically:
+- Max heading depth: ...
+- No numbered headings.
+- Box 1 for metrics / formulas.
+- Vendor names only in Table N.
+- ≥ 3 verdict sentences across the manuscript.
+- Citation density 1.5-2.5 refs/paragraph.
+- Key Points: 4-5 bullets after title.
+
+## Anti-patterns observed in v2 drafting (to specifically avoid)
+
+(Copy / adapt from this skill's HALLUCINATION_PATTERNS.md to the extent the patterns are domain-relevant.)
+```
+
+---
+
+## Action 4: Re-read PARADIGM.md before each Phase 4 writing session
+
+Phase 4 is multi-day. Drift is the main risk. At the start of each writing session, re-read `PARADIGM.md` to re-anchor.
+
+---
+
+## Time budget
+
+- Exemplar selection: 30 min
+- Reading 2 exemplars: 2-3 hours
+- Writing the spec: 30-45 min
+
+Total: 3-4 hours.
+
+This is the highest-ROI 3-4 hours in the entire project. Skipping it almost guarantees survey-paper-register drift, which is then extremely expensive to fix in revision.

+ 169 - 0
skills/research-skills/medical-imaging-review/references/QUALITY_CHECKLIST.md

@@ -0,0 +1,169 @@
+# Quality Checklist for Medical Imaging AI Reviews
+
+This checklist runs at multiple checkpoints — end of each section, end of each writing day, before peer-review phase, before submission.
+
+**v3 changes from v2:** Dropped "hedging language used", "80-120 references", and format-only metric checks. Replaced with substance checks (citation integrity, conclusion direction, verdict presence, structural discipline).
+
+---
+
+## Citation Integrity (Hard Gate)
+
+These are non-negotiable. Any failure must be fixed before continuing.
+
+- [ ] No placeholder DOIs (grep `xxx`, `[TBD]`, `x):xxx`)
+- [ ] Every reference's first and last author verified against first-source
+- [ ] Body↔bibliography `[N]` reconciliation — spot-check 10 random citations per section
+- [ ] Every directional claim (higher/lower, increased/decreased) verified against source
+- [ ] No vendor white papers cited as if peer-reviewed
+- [ ] No duplicate references (same paper listed under two numbers)
+
+See [CITATION_INTEGRITY.md](CITATION_INTEGRITY.md) for the full 5-rule protocol.
+
+---
+
+## Structural Discipline
+
+- [ ] Heading depth ≤ 2 levels (H2 + H3 only in body)
+- [ ] No numbered headings (no `## 1.`, `### 1.1`)
+- [ ] H4 (`####`) absent from body — deeper grouping via bold lead-in `**Topic.**`
+- [ ] §Methods uses 3-axis grouping (Architectural / Inductive / Data regime), not flat 10-subsection list
+- [ ] Verdict sentences present in 3-5 places (not on every paragraph, not absent entirely)
+- [ ] Key Points box has 4-5 bullets, 1-3 sentences each
+- [ ] Standard sections present: Introduction / Methods / Applications / Translation / Discussion (names may vary, structure fixed)
+
+---
+
+## Voice and Register
+
+- [ ] No "has shown promising results" / "may suggest" / "interestingly" / "in recent years," / "it is worth noting" anywhere
+- [ ] Hedging used only when evidence genuinely supports caution, not as default register
+- [ ] Strong findings (≥2 independent groups confirming) stated strongly
+- [ ] Each major method axis (3 axes in §Methods) closes with a verdict sentence
+- [ ] No "neutral catalogue" stretches longer than 3 paragraphs without a verdict / position
+
+---
+
+## Equations and Boxes
+
+- [ ] Display equations (`$$...$$`) appear only in Boxes, not in body paragraphs
+- [ ] Textbook formulas (DSC, IoU, FedAvg) handled in prose if not in Box 1, not displayed inline
+- [ ] Box 1 (metrics) present and complete
+- [ ] Total Box count appropriate for target journal (typically 1-3)
+
+---
+
+## Vendor Names
+
+- [ ] No vendor name (HeartFlow, Cleerly, Caristo, Keya, Shukun, etc.) appears in body paragraph
+- [ ] All vendor names appear in Table 3 (Commercial Products) only
+- [ ] Body uses category descriptors with table cross-reference
+
+```bash
+# Quick check
+for name in HeartFlow Cleerly Caristo "Keya Medical" "Shukun Technology"; do
+  grep -n "$name" manuscript_draft.md | grep -v "| $name |"
+done
+# Expected: 0 hits per name
+```
+
+---
+
+## Tables
+
+- [ ] Table 1: Public datasets (year, cases, annotation type, access)
+- [ ] Table 2: Method comparison (modality / family / dataset / metric — pick 12-20 papers)
+- [ ] Table 3: Commercial products with regulatory evidence
+- [ ] Total tables ≤ 4 (typical flagship reviews stay at 2-3)
+- [ ] Each table has a title, body, and footnote explaining abbreviations / caveats
+
+---
+
+## Figures
+
+- [ ] Figure 1: Review overview / taxonomy
+- [ ] Figure 2: Representative architectures or method evolution
+- [ ] Figure 3: Clinical workflow or downstream applications
+- [ ] (Optional) Figure 4: Data-driven plot (e.g., performance landscape, trial effect sizes)
+- [ ] All figures have ≤ 100-word captions following Nature style: bold lead-in title sentence + body sentences
+- [ ] No `[Figure placeholder]` strings before submission
+
+---
+
+## Content Coverage
+
+- [ ] All major method axes covered (Architectural / Inductive / Data regime)
+- [ ] Negative trials included where they exist (LLM bias: only positive)
+- [ ] Inter-vendor reproducibility / cross-site validation discussed where relevant
+- [ ] Demographic bias / fairness considerations addressed where relevant
+- [ ] Controversies and unresolved questions engaged, not glossed
+- [ ] Future directions specific and actionable (not "more research is needed" platitudes)
+
+---
+
+## Self-check Commands
+
+```bash
+# Numbered headings
+grep -cE "^#{2,4} [0-9]" manuscript_draft.md
+# Expected: 0
+
+# Heading depth violation
+grep -c "^#### " manuscript_draft.md
+# Expected: 0
+
+# Placeholder DOIs
+grep -c "xxx\|x):xxx\|\[TBD\]" manuscript_draft.md
+# Expected: 0
+
+# LLM tell phrases
+for tell in "has shown promising" "may suggest" "interestingly," "in recent years," "it is worth noting"; do
+  echo "=== $tell ==="
+  grep -nF "$tell" manuscript_draft.md
+done
+# Expected: 0 per tell
+
+# Vendor names in body
+for vendor in HeartFlow Cleerly Caristo; do
+  count=$(grep -c "$vendor" manuscript_draft.md)
+  in_table=$(grep "| $vendor " manuscript_draft.md | wc -l)
+  echo "$vendor: total $count, in table $in_table, in body $((count - in_table))"
+done
+# Expected: in body == 0 for each
+
+# Inline equations
+grep -n '\$\$' manuscript_draft.md
+# All hits should be inside Box context (check 2 lines before)
+
+# Verdict-sentence presence
+grep -nE "currently the most|has yet to demonstrate|best understood as|next [0-9]+ years will" manuscript_draft.md
+# Expected: ≥ 3 hits
+
+# Citation count (no quantity target — but useful for sanity)
+grep -cE "^[0-9]+\." manuscript_draft.md
+# Use as input for body↔bib reconciliation
+```
+
+---
+
+## What's NOT on this checklist (intentional removals from v2)
+
+- ❌ "Hedging language used" — was actively harmful; hedging-by-default is the LLM tell, not the flagship-review voice
+- ❌ "80-120 references" — was driving Claude to pad the bibliography, which encouraged fabrication
+- ❌ "Performance metrics consistent (Dice: 0.XXX format)" — checking format ≠ checking correctness
+- ❌ "All major methods covered" — was driving exhaustive enumeration over selective synthesis
+- ❌ "Recent literature included (>50% from last 3 years)" — date-based filter has no relationship to quality
+
+These were structural illusions of quality. They've been replaced with substantive checks above.
+
+---
+
+## Severity Levels for Failures
+
+When a checklist item fails during writing:
+
+| Severity | Examples | Action |
+|---|---|---|
+| **CRITICAL** | Placeholder DOI, wrong-author list on real paper, citation direction flipped | **STOP and fix immediately**. These are reviewer-facing trust-killers. |
+| **HIGH** | Body↔bib drift, vendor name in body, verdict absent in axis section | Fix before completing the current section. |
+| **MEDIUM** | Heading numbered, equation inline | Fix at section end. |
+| **LOW** | Multi-citation bracket > 4 refs, table > 20 rows | Note and address during peer-review phase. |

+ 291 - 0
skills/research-skills/medical-imaging-review/references/TEMPLATES.md

@@ -0,0 +1,291 @@
+# Project File Templates
+
+Templates for `CLAUDE.md`, `IMPLEMENTATION_PLAN.md`, and the 3 standard tables. v3 updates: Stage 4 (Methods) uses **3-axis structure**, not flat 10-subsection list. Bibliography target removed.
+
+---
+
+## CLAUDE.md Template
+
+```markdown
+# [Topic] Literature Review Writing Guidelines
+
+## Project info
+- **Topic**: [specific topic]
+- **Target journals**: [Tier 1: e.g., Nat Rev Cardiol] / [Tier 2: e.g., JACC Cardiovasc Imaging] / [Tier 3: e.g., Eur Radiol]
+- **Paradigm spec**: see PARADIGM.md (Phase 0 output)
+- **Citation integrity**: see references/CITATION_INTEGRITY.md
+- **Hallucination self-check**: see references/HALLUCINATION_PATTERNS.md
+
+## Terminology Standardization
+
+| Unified Term | Avoid Using |
+|---|---|
+| coronary CT angiography (CCTA) | cardiac CT, CT angio, CTA (ambiguous) |
+| centerline (anatomical structure) | midline, vessel line |
+| [add domain-specific terms] | [variants to avoid] |
+
+## Canonical Paper / Dataset Descriptions
+
+To prevent internal inconsistency (HALLUCINATION_PATTERNS.md ▸ Pattern 9), lock in canonical descriptions:
+
+| Paper / Dataset | Canonical description |
+|---|---|
+| ImageCAS | 1000 cases, single-center, CCTA artery segmentation |
+| TransCC (Xu et al.) | 3 authors: Chenchu Xu, Meng Li, Xue Wu; Dice 0.730 / IoU 0.582 on ImageCAS |
+| FISH&CHIPS | NHS national CT-FFR implementation program; publication: Fairbairn TA et al. Nat Med 2025;31(6):1903-1910 |
+| [add high-value papers] | [verified description] |
+
+## Reference Sources
+
+### ArXiv MCP
+Search queries used:
+- "[topic] segmentation transformer" (cs.CV, eess.IV)
+- "[topic] deep learning" (cs.LG)
+Date range: last 3 years
+Downloaded papers: [list arXiv IDs]
+
+### PubMed MCP
+MeSH queries used:
+- "Deep Learning"[MeSH] AND "[domain]"[MeSH]
+- "[method]"[MeSH] AND "diagnosis"[MeSH]
+Filters: Review, Clinical Trial
+
+### Zotero
+API: localhost:23119
+Relevant collections:
+- [Collection name 1]: [N papers]
+- [Collection name 2]: [N papers]
+
+## Literature inventory (3-axis grouping)
+
+### Axis 1: Architectural priors
+- **CNN-based**: [list verified refs]
+- **Transformer-based**: [list]
+- **Mamba / state-space**: [list]
+
+### Axis 2: Inductive priors
+- **Topology-aware**: [list]
+- **Multi-task**: [list]
+- **Graph-based**: [list]
+
+### Axis 3: Data regime
+- **Self-supervised**: [list]
+- **Foundation models**: [list]
+- **Federated**: [list]
+- **Physics-informed**: [list]
+
+### Clinical / downstream
+- [list]
+
+## Verdict positions to take (3-5)
+
+Plan the 3-5 verdict sentences in advance:
+- §Methods axis 1 closer: ...
+- §Methods axis 2 closer: ...
+- §Methods axis 3 closer: ...
+- §Clinical translation closer: ...
+- (optional) §Discussion closer: ...
+
+## Writing-time guardrails (from references/)
+
+- Per-claim verification on every `[N]` placed (CITATION_INTEGRITY ▸ Rule 1-5)
+- Self-scan against 9 hallucination patterns every 5-6 paragraphs (HALLUCINATION_PATTERNS.md)
+- Vendor names only in Table 3
+- Equations only in Box 1
+- Max 2 heading levels, no numbered headings
+```
+
+---
+
+## IMPLEMENTATION_PLAN.md Template
+
+```markdown
+# Implementation Plan: [Review Title]
+
+## Phase 0: Paradigm Capture
+**Status**: [Not Started / In Progress / Complete]
+
+- [ ] Identify 2-3 exemplar reviews from target tier
+- [ ] Read carefully (60-90 min each)
+- [ ] Extract style spec to PARADIGM.md
+- [ ] Re-anchor at start of each Phase 4 writing session
+
+## Phase 1: Project Initialization
+**Status**: [Not Started / In Progress / Complete]
+
+- [ ] CLAUDE.md created with terminology + sources + literature inventory skeleton
+- [ ] IMPLEMENTATION_PLAN.md (this file) created
+- [ ] manuscript_draft.md created (empty)
+- [ ] PARADIGM.md linked
+
+## Phase 2: Literature Collection + Verification
+**Status**: [Not Started / In Progress / Complete]
+
+### ArXiv (Deep Learning Methods)
+- [ ] Search "[topic] segmentation" in cs.CV, eess.IV
+- [ ] Search "[topic] transformer/attention" in cs.CV
+- [ ] Download key papers (target: 50-80 — discriminate aggressively)
+- [ ] Read each (abstract + methods + results)
+- [ ] Note actual module names + actual numbers in working notes
+
+### PubMed (Clinical Literature)
+- [ ] Search MeSH: "Deep Learning" AND "[domain]"
+- [ ] Filter by publication type (Review, Clinical Trial)
+- [ ] Collect clinical validation studies (target: 20-40)
+- [ ] PubMed WebFetch on each for metadata
+
+### Zotero (User's local library)
+- [ ] Check existing collections for closed-access papers
+- [ ] Note Zotero item keys for later fulltext retrieval
+
+### Additional sources
+- [ ] WebSearch supplementary (IEEE Xplore, Springer)
+
+### Verification (every entry, before adding)
+- [ ] DOI resolves on Crossref
+- [ ] First + last author verbatim from first-source
+- [ ] Journal, year, vol, issue, pages match
+- [ ] No `xxx` / `[TBD]` placeholders
+
+### Gap analysis
+- [ ] Negative trials covered? (LLM bias: only positive)
+- [ ] Inter-vendor reproducibility covered?
+- [ ] Demographic-bias studies covered?
+- [ ] Recent 6-month preprints covered?
+
+## Phase 3: Outline + 3-Axis Taxonomy
+**Status**: [Not Started / In Progress / Complete]
+
+- [ ] Top-level sections defined (Introduction / Methods / Applications / Translation / Discussion)
+- [ ] §Methods structured as **3 H3 subsections** (3 axes):
+  - [ ] §Methods.Architectural priors
+  - [ ] §Methods.Inductive priors
+  - [ ] §Methods.Data regime
+- [ ] Each paper in literature inventory mapped to an axis
+- [ ] Table 1 / 2 / 3 designs planned
+- [ ] Box 1 (metrics) content planned
+- [ ] Figures (3-5) planned
+- [ ] Verdict positions for 3 axes selected
+
+## Phase 4: Write with Per-Claim Verification
+**Status**: [Not Started / In Progress / Complete]
+
+For each section, micro-workflow (per CITATION_INTEGRITY.md):
+- [ ] Re-read the actual cited papers
+- [ ] Write 2-4 sentences with actual module names + actual numbers
+- [ ] Verify each `[N]` placed (body↔bib, number, direction)
+- [ ] Close axis with verdict sentence
+- [ ] Equations to Box 1, not body
+- [ ] Vendor names to Table 3, not body
+- [ ] Self-scan against 9 hallucination patterns every 5-6 paragraphs
+
+### Section progress
+
+- [ ] Introduction (Clinical background / Technical challenge / Scope)
+- [ ] Datasets and evaluation metrics (Box 1, Table 1)
+- [ ] Methods §Axis 1: Architectural priors
+- [ ] Methods §Axis 2: Inductive priors
+- [ ] Methods §Axis 3: Data regime
+- [ ] Methods Table 2 finalized
+- [ ] Downstream applications
+- [ ] Translation to clinical practice (Table 3)
+- [ ] Outstanding challenges
+- [ ] Future directions
+- [ ] Conclusion
+- [ ] References (cross-checked with body)
+
+## Phase 5: Multi-Agent Peer Review
+**Status**: [Not Started / In Progress / Complete]
+
+- [ ] TeamCreate `manuscript-review`
+- [ ] Spawn `style-reviewer` teammate (Task 1)
+- [ ] Spawn `ref-checker` teammate (Task 2)
+- [ ] Spawn `peer-reviewer` teammate (Task 3)
+- [ ] Spawn `fact-checker` teammate (Task 4)
+- [ ] Synthesize 4 reports into 00_team_synthesis.md
+- [ ] Address all CRITICAL findings
+- [ ] Address HIGH findings agreed by ≥ 2 reviewers
+
+## Phase 6: Submission Prep
+**Status**: [Not Started / In Progress / Complete]
+
+- [ ] Journal selected (reach + match + safety tiers)
+- [ ] Presubmission inquiries sent (reach tier, optional)
+- [ ] Cover letter drafted
+- [ ] Box vs body duplication scan run
+- [ ] Section cross-reference scan run
+- [ ] Figures produced (not placeholders)
+- [ ] Citation format converted for target journal
+- [ ] Final self-check checklist passed
+
+## Literature Sources Summary
+
+| Source | Query / Collection | Papers | Verified | Status |
+|---|---|---|---|---|
+| ArXiv | [query 1] | N | N | [ ] |
+| ArXiv | [query 2] | N | N | [ ] |
+| PubMed | [MeSH query] | N | N | [ ] |
+| Zotero | [collection] | N | N | [ ] |
+
+## Change log
+
+### [Date] - v1.0
+- Initial draft completed through Phase 4
+### [Date] - v1.1
+- Phase 5 peer review found 8 issues; addressed
+### [Date] - v1.2
+- Phase 6 submission prep done; sent to [Journal]
+```
+
+---
+
+## Standard Table Templates
+
+### Table 1: Public Datasets
+
+```markdown
+**Table 1 | Public datasets for [task].**
+
+| Dataset | Year | Cases | Annotation type | Access |
+|---|---|---|---|---|
+| [Name] | 20XX | N | [type] | [link] |
+
+*Cases = unique patients. Where multi-center, the number of sites is given in parentheses. Access notations: O = open, R = restricted (registration), C = commercial.*
+```
+
+### Table 2: Method Comparison
+
+```markdown
+**Table 2 | Representative deep learning methods for [task].**
+
+| Reference | Modality | Family | Architecture | Dataset | Headline metric | Innovation |
+|---|---|---|---|---|---|---|
+| [First-author Year] [N] | CCTA | Topology-aware | nnU-Net + clDice | ImageCAS | Dice 0.812 | First clDice on CCTA |
+
+*Performance numbers are taken from the original publications and should not be compared directly across rows; datasets, splits and metric definitions differ. Family is the most-engaged inductive prior or training regime, not the only one. CCTA = coronary CT angiography; HD95 = 95th-percentile Hausdorff distance; — = not reported.*
+```
+
+### Table 3: Commercial Products
+
+```markdown
+**Table 3 | Commercial AI tools for [domain] with regulatory clearance.**
+
+| Manufacturer | Product | Indication | Underlying technology | Regulatory | Deployment | Key validation evidence |
+|---|---|---|---|---|---|---|
+| HeartFlow | CT-FFR Analysis | CT-FFR | CFD + DL hybrid | FDA cleared (CPT 75580); CE | Cloud-based SaaS | NXT, ADVANCE, PLATFORM, PACIFIC; FISH&CHIPS [N] |
+| Keya Medical | DeepVessel FFR | CT-FFR | DL surrogate of CFD | FDA, NMPA Class III, CE | Cloud + on-site | Multi-centre Chinese validation [N] |
+
+*Listed validation evidence refers to peer-reviewed primary publications, not vendor white papers. NMPA = National Medical Products Administration (China); CFD = computational fluid dynamics.*
+```
+
+---
+
+## Notes
+
+### Why bibliography target removed
+
+v2 set "80-120 references" as a quality criterion. This drove Claude to **pad the bibliography**, and padding encouraged fabrication. v3 has no count target. Cite what supports the argument. If your review naturally has 60 high-quality refs, that's enough. If it needs 150, also fine. Quantity is downstream of substance.
+
+### Why 3-axis Methods is the structural commitment
+
+v2's coronary review produced 10 flat method H3 subsections. The resulting §Methods read as a textbook chapter, not a flagship review. Flagship reviews compress 10+ method variants into ~3 thematic axes that force comparative synthesis. The 3-axis structure is the most important structural fix in v3.

+ 289 - 0
skills/research-skills/medical-imaging-review/references/WORKFLOW.md

@@ -0,0 +1,289 @@
+# 6-Phase Literature Review Workflow
+
+This workflow replaces the v2 "7-phase write-then-QA" structure with a "write-with-verify + multi-agent peer review" structure. Verification is embedded throughout, not bolted on at the end.
+
+---
+
+## Phase 0: Paradigm Capture
+
+**Goal:** Before writing anything, ground the review in 2-3 published flagship-quality exemplars from the target journal tier.
+
+**Why:** LLMs default to a generic "survey paper" register — numbered chapters, hedging language, neutral catalogue, dense subsections. Flagship reviews (Nature Reviews / Nat Med / Lancet family) write very differently. Without an exemplar to anchor against, the draft will drift toward survey-paper style and become hard to retrofit.
+
+**Actions:**
+
+1. Identify 2-3 exemplar reviews from the target journal tier. Selection criterion: same modality or same problem family, published in last 3 years, by recognized authors.
+
+2. Read them carefully (not just skim). Pay attention to:
+   - Heading depth and numbering (most flagship reviews use 2 levels, no numbers)
+   - Paragraph rhythm (topic → evidence → verdict, not topic → list → list → list)
+   - Citation density (1.5-2.5 refs per paragraph typical)
+   - Equation handling (Box vs inline)
+   - Vendor handling (Table vs body)
+   - Authorial voice (do they take positions or stay neutral?)
+   - Box and Figure usage (how many, how dense)
+   - Table count (rarely more than 3)
+
+3. Write the extracted style spec to `PARADIGM.md`. See [PARADIGM.md template](PARADIGM.md) for the exact structure.
+
+**Deliverable:** `PARADIGM.md` in the project root.
+
+**Time budget:** 2-3 hours (reading + spec writing).
+
+---
+
+## Phase 1: Project Initialization
+
+**Goal:** Set up the project files and writing guidelines.
+
+**Actions:**
+
+1. Create `CLAUDE.md` from the [TEMPLATES.md ▸ CLAUDE.md](TEMPLATES.md#claudemd-template) template. Fill in:
+   - Topic-specific terminology table
+   - Reference source configurations (ArXiv / PubMed / Zotero queries)
+   - Expected literature categories (don't commit yet — refine after Phase 2)
+
+2. Create `IMPLEMENTATION_PLAN.md` from [TEMPLATES.md ▸ IMPLEMENTATION_PLAN.md](TEMPLATES.md#implementation_planmd-template). Note the **3-axis** structure for §Methods (not flat).
+
+3. Create empty `manuscript_draft.md`. Leave it empty until Phase 4 — don't pre-populate with placeholder text.
+
+4. Link `PARADIGM.md` and [CITATION_INTEGRITY.md](CITATION_INTEGRITY.md) and [HALLUCINATION_PATTERNS.md](HALLUCINATION_PATTERNS.md) from CLAUDE.md so they're easy to refer back to.
+
+**Deliverable:** Project skeleton with 4 files (PARADIGM.md, CLAUDE.md, IMPLEMENTATION_PLAN.md, manuscript_draft.md).
+
+**Time budget:** 1 hour.
+
+---
+
+## Phase 2: Literature Collection + Verification (simultaneous)
+
+**Goal:** Gather the corpus while verifying each entry's metadata in real time.
+
+**Why simultaneous:** v2 separated collection from verification — collection in Phase 2, verification never. Result: 17 placeholder DOIs and many wrong-author lists shipped to the final draft. v3 verifies on the way in.
+
+**Actions:**
+
+### 2.1 ArXiv (methodological preprints)
+
+```
+Query: "[topic] AND (segmentation OR detection OR classification)"
+Categories: cs.CV, eess.IV, cs.LG
+Date: last 3 years
+Max results: 50-80 per query (NOT 100 — discriminate aggressively)
+```
+
+For each paper added:
+- `mcp__arxiv-mcp-server__download_paper(paper_id)`
+- `mcp__arxiv-mcp-server__read_paper(paper_id)` — read abstract + methods + results
+- Note: actual title, full author list, exact module names, headline numbers, dataset name
+
+### 2.2 PubMed (peer-reviewed clinical literature)
+
+```
+MeSH: "Deep Learning"[MeSH] AND "[domain]"[MeSH]
+Filters: Review or Clinical Study, last 5 years
+```
+
+For each paper added:
+- WebFetch on `https://pubmed.ncbi.nlm.nih.gov/<PMID>/`
+- Note: title, full author list (first 6 + et al.), journal, year, volume, issue, pages, DOI, headline finding direction (positive/negative)
+
+### 2.3 Zotero (user's local library — especially closed-access)
+
+For closed-access journals (Med Image Anal, Eur Radiol, JACC, Lancet family, Nature family) the user often has PDFs in Zotero. Always check before assuming inaccessible.
+
+```
+mcp__zotero__zotero_search_collections(query: "<topic>")
+mcp__zotero__zotero_get_collection_items(collection_key: ..., detail: "summary", limit: 200)
+mcp__zotero__zotero_search_items(query: "<author> <method>", limit: 5)
+mcp__zotero__zotero_get_item_fulltext(item_key: ...)
+```
+
+### 2.4 Verification — apply CITATION_INTEGRITY rules as you collect
+
+For each paper added to the bibliography, before committing the entry:
+
+- [ ] DOI resolves on Crossref (`api.crossref.org/works/<DOI>`)
+- [ ] First and last author names match the first-source verbatim
+- [ ] Journal name, year, volume, issue, pages match
+- [ ] No placeholder strings (`xxx`, `[TBD]`, `?`) anywhere in the entry
+
+If any check fails, do not add the entry. Either resolve the metadata or drop the paper.
+
+See [CITATION_INTEGRITY.md](CITATION_INTEGRITY.md) for the full 5-rule protocol.
+
+### 2.5 Build the literature matrix
+
+| 3-axis | Sub-family | Key papers (verified) | Count | Source |
+|---|---|---|---|---|
+| Architectural priors | CNN | [refs] | N | arXiv |
+| Architectural priors | Transformer | [refs] | N | arXiv |
+| Inductive priors | Topology | [refs] | N | arXiv |
+| ... | ... | ... | ... | ... |
+| Clinical | Validation | [refs] | N | PubMed |
+| Datasets | Public | [refs] | N | mixed |
+
+Note the **3 axes**, not a flat 10-category list. See [DOMAINS.md](DOMAINS.md) for the 3-axis structure per domain.
+
+### 2.6 Gap analysis
+
+After initial collection:
+- Are negative trials covered? (LLM tendency: only cite positive trials → over-rosy review)
+- Are recent 6-month preprints covered? (LLM tendency: stale by training-cutoff date)
+- Are inter-vendor reproducibility studies covered? (LLM tendency: report-only-positives)
+- Are demographic-bias / fairness studies covered? (LLM tendency: ignore entirely)
+
+For each gap, run a targeted search.
+
+**Deliverable:** Literature matrix (in CLAUDE.md or IMPLEMENTATION_PLAN.md) with every entry verified.
+
+**Time budget:** 1-2 days (depending on topic breadth). Most of the time is reading abstracts to discriminate relevance, not searching.
+
+---
+
+## Phase 3: Outline + 3-Axis Method Taxonomy
+
+**Goal:** Lock in section structure + the 3-axis method grouping before writing prose.
+
+**Actions:**
+
+1. Define top-level sections from the [Standard Review Structure](../SKILL.md#standard-review-structure) template. No numbered headings.
+
+2. For §Methods, force yourself into the **3-axis** grouping (NOT a flat 10-subsection list):
+   - Axis 1: Architectural priors (what kind of network)
+   - Axis 2: Inductive priors (what kind of geometric / structural / multi-task bias is built in)
+   - Axis 3: Data regime (how is data used / pre-trained / federated)
+
+   Each axis becomes one H3 subsection. Inside each axis, group method families with bold lead-ins (`**Topology-aware design.**`), not deeper H4 headings.
+
+3. Map each paper from the literature matrix to one (or sometimes two) axes. A paper that's only about a topology loss → axis 2. A paper that's a Mamba variant for segmentation → axis 1. A paper about federated learning for cardiac MRI → axis 3.
+
+4. Plan the three tables explicitly:
+   - Table 1: public datasets (name, year, cases, annotation type, access)
+   - Table 2: representative methods (with modality / family / dataset / metric — pick 12-20 papers across all 3 axes)
+   - Table 3: commercial products (manufacturer / product / regulatory / validation evidence)
+
+5. Plan Box 1: evaluation metrics with formulas.
+
+6. Plan figures (typically 3-5; overview, taxonomy, representative architectures, workflow).
+
+**Deliverable:** Section outline and 3-axis paper mapping in `IMPLEMENTATION_PLAN.md`.
+
+**Time budget:** 0.5-1 day.
+
+---
+
+## Phase 4: Write with Per-Claim Verification
+
+**Goal:** Produce the manuscript prose, with verification embedded in every paragraph.
+
+**Why per-claim verification:** v2 wrote first and QA'd later. The QA was structural, not factual. Result: shipped fabricated module names and wrong numbers. v3 verifies each claim before committing it.
+
+**Actions per section:**
+
+1. **Write an introduction paragraph** (1-2 paragraphs on motivation + scope). This is the safest part of the section — make it punchy and clear, set up the verdict that will close the section.
+
+2. **For each method family**, repeat this micro-loop:
+
+   a. **Re-read** the cited paper's abstract + relevant methods/results section. Use `read_paper` (arxiv) or `zotero_get_item_fulltext` (closed-access). Do not skip this. If you can't access the paper, do not write its internal architecture.
+
+   b. **Write 2-4 sentences** describing the method's actual contribution, using actual module names and actual numbers. Cite the paper as `[N]`.
+
+   c. **Verify** the [N] you just placed:
+      - Is N's bibliography entry the paper you just read? (body↔bib reconciliation)
+      - Does your sentence's number (Dice / sensitivity / HR) appear in the paper?
+      - Does your sentence's directional claim (lower/higher / increased/decreased) match the paper?
+
+   d. If any verification fails, fix immediately. Do not move on with broken citations — they compound.
+
+3. **Close the section with a verdict sentence** (for 3 of the H3 subsections — pick the most opinionated positions). See [SKILL.md ▸ Verdict Sentences](../SKILL.md#verdict-sentences).
+
+4. **Equations** go into Box 1, not the body. If you find yourself typing a `$$` outside Box 1, stop and move the equation.
+
+5. **Vendor names** go into Table 3, not the body. If you find yourself typing "HeartFlow" / "Cleerly" / etc. outside Table 3, stop and rewrite with category descriptor.
+
+6. **Update bibliography** as you go (don't batch at the end — the body↔bib reconciliation breaks down with batching).
+
+### Self-check during writing
+
+Every 5-6 paragraphs, pause and scan for the 9 hallucination patterns (see [HALLUCINATION_PATTERNS.md](HALLUCINATION_PATTERNS.md)):
+
+- Are author names sounding generic? (pattern 1)
+- Are performance numbers suspiciously round or high? (pattern 2)
+- Am I claiming directional findings I haven't verified? (pattern 3)
+- Am I citing vendor materials as if peer-reviewed? (pattern 4)
+- Are there any `xxx` or `[TBD]` strings? (pattern 5)
+- Are [N] referring to what I think? (pattern 7)
+- Are my metric formulas correct? (pattern 8)
+
+**Deliverable:** `manuscript_draft.md` complete from Introduction through References, with per-claim verification trace in the writing log.
+
+**Time budget:** 3-5 days (the largest phase).
+
+---
+
+## Phase 5: Multi-Agent Peer Review
+
+**Goal:** Before delivering to the user, run a 4-perspective audit.
+
+**Why:** Single-author self-review misses patterns. The 4 specialized agents catch what a single writer doesn't.
+
+**Actions:**
+
+Launch a `manuscript-review` agent team with 4 teammates (see the `ai-review-revision` skill's [references/agent_team_setup.md](../../ai-review-revision/references/agent_team_setup.md) for the exact TeamCreate / TaskCreate / Agent spawn templates):
+
+| Teammate | Focus |
+|---|---|
+| `style-reviewer` | Compare against PARADIGM.md spec; identify register / structural drift |
+| `ref-checker` | Verify every `[N]` body↔bib match; spot-check author lists and DOIs |
+| `peer-reviewer` | Roleplay as flagship-tier journal reviewer; identify missing controversies, weak verdicts, scope drift |
+| `fact-checker` | Cross-check every quantitative claim (Dice, HR, sample size, p-value) against first-source |
+
+After all 4 reports return, synthesize into `review_outputs/00_team_synthesis.md`. For any issue ≥2 reviewers independently flag, treat as hard fix. For single-reviewer flags, judge based on severity.
+
+**If the issues are minor** (handful of style nits, 1-2 minor citation issues): fix them in place and ship.
+
+**If the issues are major** (≥5 hard factual errors, ≥10 citation drift instances, missing major controversies): the right move is to apply the `ai-review-revision` skill's Phase 1 (factual reset) workflow before delivery. This is unusual but possible — and it's a signal that this skill needs further improvement.
+
+**Deliverable:** 4 review reports + synthesis + a final-quality draft.
+
+**Time budget:** 1 day for the multi-agent review, plus fix time depending on findings.
+
+---
+
+## Phase 6: Submission Prep
+
+**Goal:** Format-level finalization for a specific target journal.
+
+Use the `ai-review-revision` skill's [references/phase4_submission_prep.md](../../ai-review-revision/references/phase4_submission_prep.md) for:
+
+- Journal selection (3-tier reach / match / safety)
+- Presubmission inquiry templates
+- Cover letter template
+- Box vs body duplication scan
+- Figure realization (no placeholders at submission)
+- Citation format conversion (`[N]` → `<sup>N</sup>` depending on journal)
+- Self-check checklist
+
+**Deliverable:** Submission-ready package (manuscript + figures + cover letter + author info).
+
+**Time budget:** 0.5-1 week including presubmission inquiry wait.
+
+---
+
+## Total Timeline
+
+For a typical medical-imaging review project:
+
+| Phase | Duration |
+|---|---|
+| Phase 0: Paradigm capture | 2-3 hours |
+| Phase 1: Init | 1 hour |
+| Phase 2: Collect + verify | 1-2 days |
+| Phase 3: Outline + 3-axis taxonomy | 0.5-1 day |
+| Phase 4: Write with per-claim verification | 3-5 days |
+| Phase 5: Multi-agent peer review | 1 day + fix time |
+| Phase 6: Submission prep | 0.5-1 week (incl. presubmission wait) |
+| **Total** | **2-3 weeks of focused work** |
+
+Compare to v2 + downstream fix: typically 1 week of v2 drafting + 2-3 weeks of post-hoc revision. Net the same time, but v3 delivers a submission-ready draft instead of one needing factual reset.

+ 464 - 0
skills/research-skills/paper-slide-deck/SKILL.md

@@ -0,0 +1,464 @@
+---
+name: paper-slide-deck
+description: Generate professional slide deck images from academic papers and content. Creates comprehensive outlines with style instructions, auto-detects figures from PDFs, then generates individual slide images. Use when user asks to "create slides", "make a presentation", "generate deck", or "slide deck" for papers.
+---
+
+# Paper Slide Deck Generator
+
+Transform academic papers and content into professional slide deck images with automatic figure extraction.
+
+## Usage
+
+```bash
+/paper-slide-deck path/to/paper.pdf
+/paper-slide-deck path/to/paper.pdf --style academic-paper
+/paper-slide-deck path/to/content.md --style sketch-notes
+/paper-slide-deck path/to/content.md --audience executives
+/paper-slide-deck path/to/content.md --lang zh
+/paper-slide-deck path/to/content.md --slides 10
+/paper-slide-deck path/to/content.md --outline-only
+/paper-slide-deck  # Then paste content
+```
+
+## Script Directory
+
+**Important**: All scripts are located in the `scripts/` subdirectory of this skill.
+
+**Agent Execution Instructions**:
+1. Determine this SKILL.md file's directory path as `SKILL_DIR`
+2. Script path = `${SKILL_DIR}/scripts/<script-name>.ts`
+3. Replace all `${SKILL_DIR}` in this document with the actual path
+
+**Script Reference**:
+| Script | Purpose |
+|--------|---------|
+| `scripts/generate-slides.py` | Generate AI slides via Gemini API (Python) |
+| `scripts/merge-to-pptx.ts` | Merge slides into PowerPoint |
+| `scripts/merge-to-pdf.ts` | Merge slides into PDF |
+| `scripts/detect-figures.ts` | Auto-detect figures/tables in PDF |
+| `scripts/extract-figure.ts` | Extract figure from PDF page (uses PyMuPDF fallback) |
+| `scripts/apply-template.ts` | Apply figure container template |
+
+## Options
+
+| Option | Description |
+|--------|-------------|
+| `--style <name>` | Visual style (see Style Gallery) |
+| `--audience <type>` | Target audience: beginners, intermediate, experts, executives, general |
+| `--lang <code>` | Output language (en, zh, ja, etc.) |
+| `--slides <number>` | Target slide count |
+| `--outline-only` | Generate outline only, skip image generation |
+
+## Style Gallery
+
+| Style | Description | Best For |
+|-------|-------------|----------|
+| `academic-paper` | Clean professional, precise charts | Conference talks, thesis defense |
+| `blueprint` (Default) | Technical schematics, grid texture | Architecture, system design |
+| `chalkboard` | Black chalkboard, colorful chalk | Education, tutorials, classroom |
+| `notion` | SaaS dashboard, card-based layouts | Product demos, SaaS, B2B |
+| `bold-editorial` | Magazine cover, bold typography, dark | Product launches, keynotes |
+| `corporate` | Navy/gold, structured layouts | Investor decks, proposals |
+| `dark-atmospheric` | Cinematic dark mode, glowing accents | Entertainment, gaming |
+| `editorial-infographic` | Magazine explainers, flat illustrations | Tech explainers, research |
+| `fantasy-animation` | Ghibli/Disney style, hand-drawn | Educational, storytelling |
+| `intuition-machine` | Technical briefing, bilingual labels | Technical docs, academic |
+| `minimal` | Ultra-clean, maximum whitespace | Executive briefings, premium |
+| `pixel-art` | Retro 8-bit, chunky pixels | Gaming, developer talks |
+| `scientific` | Academic diagrams, precise labeling | Biology, chemistry, medical |
+| `sketch-notes` | Hand-drawn, warm & friendly | Educational, tutorials |
+| `vector-illustration` | Flat vector, retro & cute | Creative, children's content |
+| `vintage` | Aged-paper, historical styling | Historical, heritage, biography |
+| `watercolor` | Hand-painted textures, natural warmth | Lifestyle, wellness, travel |
+
+## Auto Style Selection
+
+| Content Signals | Selected Style |
+|-----------------|----------------|
+| paper, thesis, defense, conference, ieee, acm, icml, neurips, cvpr, acl, aaai, iclr | `academic-paper` |
+| tutorial, learn, education, guide, intro, beginner | `sketch-notes` |
+| classroom, teaching, school, chalkboard, blackboard | `chalkboard` |
+| architecture, system, data, analysis, technical | `blueprint` |
+| creative, children, kids, cute, illustration | `vector-illustration` |
+| briefing, bilingual, infographic, concept | `intuition-machine` |
+| executive, minimal, clean, simple, elegant | `minimal` |
+| saas, product, dashboard, metrics, productivity | `notion` |
+| investor, quarterly, business, corporate, proposal | `corporate` |
+| launch, marketing, keynote, bold, impact, magazine | `bold-editorial` |
+| entertainment, music, gaming, creative, atmospheric | `dark-atmospheric` |
+| explainer, journalism, science communication | `editorial-infographic` |
+| story, fantasy, animation, magical, whimsical | `fantasy-animation` |
+| gaming, retro, pixel, developer, nostalgia | `pixel-art` |
+| biology, chemistry, medical, pathway, scientific | `scientific` |
+| history, heritage, vintage, expedition, historical | `vintage` |
+| lifestyle, wellness, travel, artistic, natural | `watercolor` |
+| Default | `blueprint` |
+
+## Layout Gallery
+
+Optional layout hints for individual slides. Specify in outline's `// LAYOUT` section.
+
+### Slide-Specific Layouts
+
+| Layout | Description | Best For |
+|--------|-------------|----------|
+| `title-hero` | Large centered title + subtitle | Cover slides, section breaks |
+| `quote-callout` | Featured quote with attribution | Testimonials, key insights |
+| `key-stat` | Single large number as focal point | Impact statistics, metrics |
+| `split-screen` | Half image, half text | Feature highlights, comparisons |
+| `icon-grid` | Grid of icons with labels | Features, capabilities, benefits |
+| `two-columns` | Content in balanced columns | Paired information, dual points |
+| `three-columns` | Content in three columns | Triple comparisons, categories |
+| `image-caption` | Full-bleed image + text overlay | Visual storytelling, emotional |
+| `agenda` | Numbered list with highlights | Session overview, roadmap |
+| `bullet-list` | Structured bullet points | Simple content, lists |
+
+### Infographic-Derived Layouts
+
+| Layout | Description | Best For |
+|--------|-------------|----------|
+| `linear-progression` | Sequential flow left-to-right | Timelines, step-by-step |
+| `binary-comparison` | Side-by-side A vs B | Before/after, pros-cons |
+| `comparison-matrix` | Multi-factor grid | Feature comparisons |
+| `hierarchical-layers` | Pyramid or stacked levels | Priority, importance |
+| `hub-spoke` | Central node with radiating items | Concept maps, ecosystems |
+| `bento-grid` | Varied-size tiles | Overview, summary |
+| `funnel` | Narrowing stages | Conversion, filtering |
+| `dashboard` | Metrics with charts/numbers | KPIs, data display |
+| `venn-diagram` | Overlapping circles | Relationships, intersections |
+| `circular-flow` | Continuous cycle | Recurring processes |
+| `winding-roadmap` | Curved path with milestones | Journey, timeline |
+| `tree-branching` | Parent-child hierarchy | Org charts, taxonomies |
+| `iceberg` | Visible vs hidden layers | Surface vs depth |
+| `bridge` | Gap with connection | Problem-solution |
+
+### Academic-Specific Layouts
+
+| Layout | Description | Best For |
+|--------|-------------|----------|
+| `paper-title` | Title, authors, affiliations, venue | Conference paper cover |
+| `outline-agenda` | Numbered section list with highlights | Talk structure overview |
+| `methods-diagram` | Central architecture/pipeline diagram | Methods, system design |
+| `results-chart` | Chart area + data annotations | Quantitative results |
+| `equation-focus` | Centered equation + variable definitions | Mathematical derivations |
+| `qualitative-grid` | 2x2 or 3x2 image comparison grid | Visual results, ablations |
+| `references-list` | Numbered citation list | Key references slide |
+| `contributions` | Numbered contribution points | Contributions summary |
+
+**Usage**: Add `Layout: <name>` in slide's `// LAYOUT` section to guide visual composition.
+
+## Design Philosophy
+
+This deck is designed for **reading and sharing**, not live presentation:
+- Each slide must be **self-explanatory** without verbal commentary
+- Structure content for **logical flow** when scrolling
+- Include **all necessary context** within each slide
+- Optimize for **social media sharing** and offline reading
+
+## File Management
+
+### Output Directory
+
+Each session creates an independent directory named by content slug:
+
+```
+slide-deck/{topic-slug}/
+├── source-{slug}.{ext}    # Source files (text, images, etc.)
+├── outline.md
+├── outline-{style}.md     # Style variant outlines
+├── prompts/
+│   └── 01-slide-cover.md, 02-slide-{slug}.md, ...
+├── 01-slide-cover.png, 02-slide-{slug}.png, ...
+├── {topic-slug}.pptx
+└── {topic-slug}.pdf
+```
+
+**Slug Generation**:
+1. Extract main topic from content (2-4 words, kebab-case)
+2. Example: "Introduction to Machine Learning" → `intro-machine-learning`
+
+### Conflict Resolution
+
+If `slide-deck/{topic-slug}/` already exists:
+- Append timestamp: `{topic-slug}-YYYYMMDD-HHMMSS`
+- Example: `intro-ml` exists → `intro-ml-20260118-143052`
+
+### Source Files
+
+Copy all sources with naming `source-{slug}.{ext}`:
+- `source-article.md` (main text content)
+- `source-diagram.png` (image from conversation)
+- `source-data.xlsx` (additional file)
+
+Multiple sources supported: text, images, files from conversation.
+
+## Workflow
+
+### Step 1: Analyze Content
+
+1. Save source content (if pasted, save as `source.md`)
+2. Follow `references/analysis-framework.md` for deep content analysis
+3. Determine style (use `--style` or auto-select from signals)
+4. Detect languages (source vs. user preference)
+5. Plan slide count (`--slides` or dynamic)
+6. **For academic papers (PDF with figures)**: Run automatic figure detection:
+   ```bash
+   npx -y bun ${SKILL_DIR}/scripts/detect-figures.ts --pdf source-paper.pdf --output figures.json
+   ```
+   This outputs a JSON file with all detected figures/tables, their page numbers, and captions.
+
+### Step 2: Generate Outline Variants
+
+1. Generate 3 style variant outlines based on content analysis
+2. Follow `references/outline-template.md` for structure
+3. **Auto-populate IMAGE_SOURCE** for academic papers:
+   - Read `figures.json` from Step 1
+   - Map figures to slides using rules in `references/analysis-framework.md` Section 8
+   - Automatically add `// IMAGE_SOURCE` blocks to appropriate slides:
+     - Architecture/pipeline figures → Methods slides (`Source: extract`)
+     - Results tables → Quantitative results slides (`Source: extract`)
+     - Comparison images → Qualitative results slides (`Source: extract`)
+     - Conceptual/simple diagrams → Leave for AI generation (`Source: generate` or omit)
+4. Save as `outline-{style}.md` for each variant
+
+### Step 3: User Confirmation
+
+**Single AskUserQuestion with all applicable options:**
+
+| Question | When to Ask |
+|----------|-------------|
+| Style variant | Always (3 options + custom) |
+| Language | Only if source ≠ user language |
+
+After selection:
+- Copy selected `outline-{style}.md` to `outline.md`
+- Regenerate in different language if requested
+- User may edit `outline.md` for fine-tuning
+
+If `--outline-only`, stop here.
+
+### Step 4: Generate Prompts
+
+1. Read `references/base-prompt.md`
+2. Combine with style instructions from outline
+3. Add slide-specific content
+4. If `Layout:` specified in outline, include layout guidance in prompt:
+   - Reference layout characteristics for image composition
+   - Example: `Layout: hub-spoke` → "Central concept in middle with related items radiating outward"
+5. Save to `prompts/` directory
+
+### Step 5: Image Generation Method Selection
+
+**Before generating images**, ask user to choose generation method:
+
+**Use AskUserQuestion** with options:
+
+| Option | Label | Description |
+|--------|-------|-------------|
+| 1 | **Gemini API (Recommended)** | Official Google API via Python. Requires GOOGLE_API_KEY env var. |
+| 2 | **Gemini Web (Browser-based)** | ⚠️ Uses reverse-engineered web API. No API key needed but may break. |
+
+**Based on selection:**
+
+#### Option 1: Gemini API (Python)
+
+1. **Verify API key**: Check `GOOGLE_API_KEY` or `GEMINI_API_KEY` environment variable
+2. **Run generation script**:
+   ```bash
+   python ${SKILL_DIR}/scripts/generate-slides.py <slide-deck-dir> --model gemini-3-pro-image-preview
+   ```
+
+**Script Features**:
+- Auto-installs `google-genai` package if missing
+- Retry logic with exponential backoff (3 retries)
+- Skips already-generated slides (> 10KB)
+- Supports custom model via `--model` flag
+- Outputs to `slides/` subdirectory
+
+**Troubleshooting**:
+- If server disconnection errors occur, script auto-retries
+- For persistent failures, re-run the script (it skips completed slides)
+- Check API quota if many failures occur
+
+#### Option 2: Gemini Web Skill
+
+1. **Consent Check**: Read consent file at:
+   - Windows: `$APPDATA/baoyu-skills/gemini-web/consent.json`
+   - macOS: `~/Library/Application Support/baoyu-skills/gemini-web/consent.json`
+   - Linux: `~/.local/share/baoyu-skills/gemini-web/consent.json`
+
+2. **If no consent or version mismatch**, display disclaimer and ask:
+   ```
+   ⚠️ DISCLAIMER: This uses a reverse-engineered Gemini Web API (NOT official).
+   Risks: May break anytime, no support, possible account risk.
+   ```
+
+3. **For each slide**, run:
+   ```bash
+   npx -y bun ${GEMINI_WEB_SKILL_DIR}/scripts/main.ts \
+     --promptfiles prompts/01-slide-cover.md \
+     --image 01-slide-cover.png \
+     --sessionId slides-{topic-slug}-{timestamp}
+   ```
+
+   Where `GEMINI_WEB_SKILL_DIR` = path to `baoyu-danger-gemini-web` skill directory.
+
+4. **Proxy support**: If user is in restricted network, prepend:
+   ```bash
+   HTTP_PROXY=http://127.0.0.1:7890 HTTPS_PROXY=http://127.0.0.1:7890
+   ```
+
+### Step 5.5: Process IMAGE_SOURCE (Automatic Figure Extraction)
+
+For academic presentations, IMAGE_SOURCE metadata was auto-populated in Step 2 based on figure detection from Step 1.
+
+**Automatic Execution**:
+
+1. **Parse outline** to identify slides with `Source: extract`
+2. **Create figures directory**: `mkdir -p figures`
+3. **For each extract slide**, automatically:
+   - Read the Figure number, Page, and Caption from metadata
+   - Run figure extraction script:
+     ```bash
+     npx -y bun ${SKILL_DIR}/scripts/extract-figure.ts \
+       --pdf source-paper.pdf \
+       --page <page-number> \
+       --output figures/figure-<N>.png
+     ```
+   - Run template application script:
+     ```bash
+     npx -y bun ${SKILL_DIR}/scripts/apply-template.ts \
+       --figure figures/figure-<N>.png \
+       --title "<slide-headline>" \
+       --caption "Figure <N>: <caption-text>" \
+       --output <NN>-slide-<slug>.png
+     ```
+   - Report: "Extracted: Figure N → slide NN"
+
+4. **For slides with `Source: generate`** (or no IMAGE_SOURCE):
+   - Proceed to Step 6 for AI generation
+
+**Note**: Source PDF must be saved as `source-paper.pdf` in output directory.
+
+**Troubleshooting**:
+- If figure detection missed a figure: manually add `// IMAGE_SOURCE` block to outline
+- If wrong figure mapped: edit the `Figure:` and `Page:` values in outline
+- If extraction fails: check PDF page number (1-indexed)
+
+**PyMuPDF Fallback for Page Extraction**:
+If `extract-figure.ts` fails with "Image or Canvas expected" error (common with complex PDFs), use PyMuPDF:
+```python
+import fitz
+doc = fitz.open("source-paper.pdf")
+page = doc[page_num - 1]  # 0-indexed
+mat = fitz.Matrix(3, 3)  # 3x scale for high resolution
+pix = page.get_pixmap(matrix=mat)
+pix.save(f"extracted/page-{page_num}.png")
+```
+Then apply template using `apply-template.ts`.
+
+### Step 6: Generate Images
+
+1. Use selected method from Step 5
+2. **Skip slides already processed in Step 5.5** (those with `Source: extract`)
+3. Generate session ID: `slides-{topic-slug}-{timestamp}`
+4. Generate each remaining slide with same session ID
+5. Report progress: "Generated X/N"
+6. Auto-retry once on generation failure
+
+### Step 7: Merge to PPTX and PDF
+
+```bash
+npx -y bun ${SKILL_DIR}/scripts/merge-to-pptx.ts <slide-deck-dir>
+npx -y bun ${SKILL_DIR}/scripts/merge-to-pdf.ts <slide-deck-dir>
+```
+
+### Step 8: Output Summary
+
+```
+Slide Deck Complete!
+
+Topic: [topic]
+Style: [style name]
+Location: [directory path]
+Slides: N total
+
+- 01-slide-cover.png ✓ Cover
+- 02-slide-intro.png ✓ Content
+- ...
+- {NN}-slide-back-cover.png ✓ Back Cover
+
+Outline: outline.md
+PPTX: {topic-slug}.pptx
+PDF: {topic-slug}.pdf
+```
+
+## Slide Modification
+
+See `references/modification-guide.md` for:
+- Edit single slide workflow
+- Add new slide (with renumbering)
+- Delete slide (with renumbering)
+- File naming conventions
+
+## Image Generation Dependencies
+
+### Gemini API (Option 1 - Recommended)
+
+Requires:
+- `GOOGLE_API_KEY` or `GEMINI_API_KEY` environment variable
+- Python 3.8+ with pip
+- `google-genai` package (auto-installed by script)
+
+Model: `gemini-3-pro-image-preview` (default)
+
+### Gemini Web Skill (Option 2)
+
+Requires:
+- `baoyu-danger-gemini-web` skill installed at `.claude/skills/baoyu-danger-gemini-web`
+- Google Chrome browser with logged-in Google account
+- User consent for reverse-engineered API disclaimer
+
+### PDF Figure Extraction
+
+Requires:
+- **Primary**: `pdfjs-dist` npm package (use legacy build for Node.js)
+- **Fallback**: `pymupdf` Python package (more reliable for complex PDFs)
+- `canvas` npm package for apply-template.ts
+
+## References
+
+| File | Content |
+|------|---------|
+| `references/analysis-framework.md` | Deep content analysis for presentations |
+| `references/outline-template.md` | Outline structure and STYLE_INSTRUCTIONS format |
+| `references/modification-guide.md` | Edit, add, delete slide workflows |
+| `references/content-rules.md` | Content and style guidelines |
+| `references/base-prompt.md` | Base prompt for image generation |
+| `references/figure-container-template.md` | Visual specs for extracted figure containers |
+| `references/styles/<style>.md` | Full style specifications |
+
+## Notes
+
+### Image Generation
+
+- **Nano Banana Pro API**: Recommended. Stable, reliable, requires API key
+- **Gemini Web**: No API key needed, but uses reverse-engineered API with account risk
+- Generation time: 10-30 seconds per slide
+- Auto-retry once on generation failure
+- Maintain style consistency via session ID
+
+### Content Guidelines
+
+- Use stylized alternatives for sensitive public figures
+- Both methods use the same underlying Gemini model for image generation
+
+## Extension Support
+
+Custom styles and configurations via EXTEND.md.
+
+**Check paths** (priority order):
+1. `.paper-skills/paper-slide-deck/EXTEND.md` (project)
+2. `~/.paper-skills/paper-slide-deck/EXTEND.md` (user)
+
+If found, load before Step 1. Extension content overrides defaults.

+ 392 - 0
skills/research-skills/paper-slide-deck/references/analysis-framework.md

@@ -0,0 +1,392 @@
+# Presentation Analysis Framework
+
+Deep content analysis for effective slide deck creation.
+
+## 1. Message Hierarchy
+
+Identify the core message structure before designing slides.
+
+### Core Message (One Sentence)
+- What is the single most important takeaway?
+- If the audience remembers only one thing, what should it be?
+- Can you state it in ≤15 words?
+
+### Supporting Points (3-5 Maximum)
+- What evidence supports the core message?
+- What sub-topics must be covered?
+- Prioritize by audience relevance, not source order
+
+### Call-to-Action
+- What should the audience DO after viewing?
+- Is it clear, specific, and achievable?
+- Where does it appear (slide position)?
+
+## 2. Audience Decision Matrix
+
+| Question | Analysis |
+|----------|----------|
+| Who is the primary audience? | [Role, expertise level, relationship to topic] |
+| What do they currently believe? | [Existing knowledge, assumptions, biases] |
+| What decision do we want them to make? | [Specific action or conclusion] |
+| What barriers exist? | [Objections, concerns, missing information] |
+| What evidence will convince them? | [Data types, credibility sources, emotional hooks] |
+
+### Audience Adaptation
+
+| Audience Type | Content Focus | Visual Treatment |
+|---------------|---------------|------------------|
+| Executives | Outcomes, ROI, strategic impact | High-level, clean, data highlights |
+| Technical | Architecture, implementation, specs | Detailed diagrams, code, schematics |
+| General | Benefits, stories, relatability | Visual metaphors, simple charts |
+| Investors | Market size, traction, team | Growth charts, milestones, comparisons |
+| Learners | Step-by-step, examples, practice | Progressive reveals, exercises |
+
+## 3. Visual Opportunity Map
+
+Identify which content benefits from visualization.
+
+### Content-to-Visual Mapping
+
+| Content Type | Visual Treatment | Example |
+|--------------|------------------|---------|
+| Comparisons | Side-by-side, before/after | Feature comparison table |
+| Processes | Flow diagrams, numbered steps | Workflow illustration |
+| Hierarchies | Org charts, pyramids, trees | Organizational structure |
+| Timelines | Horizontal/vertical timelines | Project milestones |
+| Statistics | Charts, highlighted numbers | Key metrics with context |
+| Concepts | Icons, metaphors, illustrations | Abstract idea visualization |
+| Relationships | Venn diagrams, networks | Ecosystem or dependencies |
+| Lists | Structured grids, icon rows | Feature bullets with icons |
+
+### Visual Priority
+
+Rate each piece of content:
+- **Must Visualize**: Complex data, key differentiators, memorable moments
+- **Should Visualize**: Supporting evidence, secondary points
+- **Text Only**: Simple statements, transitions, minor details
+
+## 4. Presentation Flow
+
+Structure for impact and retention.
+
+### Opening (First 2-3 Slides)
+
+| Element | Purpose |
+|---------|---------|
+| Hook | Capture attention (surprising stat, question, story) |
+| Context | Why this matters now |
+| Preview | What audience will learn/gain |
+
+### Middle (Content Slides)
+
+| Pattern | When to Use |
+|---------|-------------|
+| Problem → Solution | Introducing new products/ideas |
+| Situation → Complication → Resolution | Complex business cases |
+| What → Why → How | Educational content |
+| Past → Present → Future | Transformation stories |
+| Claim → Evidence → Implication | Data-driven arguments |
+
+### Closing (Final 2-3 Slides)
+
+| Element | Purpose |
+|---------|---------|
+| Synthesis | Tie back to core message |
+| Call-to-Action | Clear next steps |
+| Memorable Close | Resonant quote, image, or statement |
+
+### Transitions
+
+- Each slide should answer: "What comes next?"
+- Use narrative connectors between sections
+- Build logical progression, not topic jumps
+
+## 5. Content Adaptation
+
+Decide what to keep, transform, or omit.
+
+### Keep (High Value)
+- Core arguments and evidence
+- Unique insights or data
+- Audience-relevant examples
+- Memorable quotes or statistics
+
+### Simplify (Medium Value)
+- Technical details → Visual summaries
+- Long explanations → Bullet hierarchies
+- Multiple examples → Best 1-2 examples
+- Background context → Brief framing
+
+### Visualize (Transform)
+- Data tables → Charts or highlighted numbers
+- Process descriptions → Flow diagrams
+- Comparisons in text → Side-by-side visuals
+- Abstract concepts → Concrete metaphors
+
+### Omit (Low Value)
+- Tangential information
+- Redundant examples
+- Excessive caveats
+- Background the audience already knows
+
+## 6. Analysis Checklist
+
+Before outline creation, confirm:
+
+### Message Clarity
+- [ ] Core message stated in one sentence
+- [ ] 3-5 supporting points identified
+- [ ] Call-to-action defined
+
+### Audience Fit
+- [ ] Primary audience identified
+- [ ] Existing beliefs mapped
+- [ ] Desired decision clear
+- [ ] Evidence matches audience needs
+
+### Visual Planning
+- [ ] Key visualizations identified
+- [ ] Chart/diagram types selected
+- [ ] Visual priority assigned
+
+### Flow Design
+- [ ] Opening hook defined
+- [ ] Middle pattern selected
+- [ ] Closing approach planned
+- [ ] Transitions considered
+
+### Content Decisions
+- [ ] Keep/simplify/visualize/omit applied
+- [ ] Source material fully processed
+- [ ] No important content overlooked
+
+## 7. Academic Presentation Analysis
+
+For conference talks, thesis defense, and research presentations.
+
+### Paper Structure to Slide Mapping
+
+| Paper Section | Slide Type | Suggested Layout |
+|---------------|------------|------------------|
+| Title + Abstract | Cover + Motivation | `paper-title`, `title-hero` |
+| Introduction | Problem Statement + Background | `split-screen`, `bullet-list` |
+| Related Work | Context (optional, can condense) | `comparison-matrix`, `hub-spoke` |
+| Methods | Architecture/Pipeline | `methods-diagram`, `linear-progression` |
+| Experiments | Setup + Results | `results-chart`, `qualitative-grid` |
+| Ablation Studies | Detailed Analysis | `comparison-matrix`, `results-chart` |
+| Conclusions | Summary + Future Work | `contributions`, `bullet-list` |
+| References | Key Citations | `references-list` |
+
+### Academic Slide Count Guidelines
+
+| Talk Duration | Recommended Slides | Pace |
+|---------------|-------------------|------|
+| 5 min (spotlight) | 5-7 slides | ~1 min/slide |
+| 10 min (short) | 8-12 slides | ~1 min/slide |
+| 15 min (standard) | 12-18 slides | ~1 min/slide |
+| 20 min (full) | 15-22 slides | ~1 min/slide |
+| 30+ min (invited) | 25-35 slides | ~1 min/slide |
+
+### Citation Handling
+
+**Inline Citations**:
+- Key works: "[Author et al., Year]" or "[1]"
+- Include only most relevant citations on slides
+- Full bibliographic details optional
+
+**Reference Slide**:
+- List 5-10 key references at end
+- Format: [N] Author et al. "Title." Venue, Year.
+
+### Results Presentation Checklist
+
+- [ ] Baseline comparisons clearly labeled
+- [ ] Best results highlighted (bold or color)
+- [ ] Statistical significance noted where applicable
+- [ ] Units and metrics clearly stated
+- [ ] Error bars or confidence intervals if available
+- [ ] Ablation results in separate table/chart
+
+### Academic Talk Flow
+
+1. **Hook** (1 slide): Problem motivation, why it matters
+2. **Background** (1-2 slides): Essential context only
+3. **Approach** (2-4 slides): Your method, architecture
+4. **Results** (2-4 slides): Main experiments, comparisons
+5. **Analysis** (1-2 slides): Ablations, insights (optional)
+6. **Conclusion** (1 slide): Summary, contributions, future work
+7. **References** (1 slide): Key citations
+
+## 8. Automatic Figure Detection and Mapping
+
+For academic papers, automatically detect and map figures/tables to slides.
+
+### Figure Detection Process
+
+1. **Run detection script** on source PDF:
+   ```bash
+   npx -y bun ${SKILL_DIR}/scripts/detect-figures.ts --pdf source-paper.pdf --output figures.json
+   ```
+
+2. **Parse detection results** to identify:
+   - Figure numbers, pages, and captions
+   - Table numbers, pages, and captions
+   - Total figure/table count
+
+### Figure-to-Slide Mapping Rules
+
+| Figure Type | Maps To | Extract? | Reasoning |
+|-------------|---------|----------|-----------|
+| Architecture/Pipeline diagram | Methods slide | **Yes** | Core visual, must be accurate |
+| Network structure | Methods slide | **Yes** | Technical precision required |
+| Quantitative results table | Results slide | **Yes** | Data accuracy critical |
+| Qualitative comparison grid | Results slide | **Yes** | Visual comparison must be authentic |
+| Ablation study table | Analysis slide | **Yes** | Precise numbers needed |
+| Challenge/motivation illustration | Background slide | Maybe | Depends on complexity |
+| Conceptual diagram | Any | No | Can be re-stylized by AI |
+| Simple flowchart | Any | No | AI can render cleanly |
+
+### Automatic Mapping Algorithm
+
+```
+For each detected figure:
+  1. Analyze caption keywords:
+     - "architecture", "framework", "pipeline", "network" → Methods slide
+     - "comparison", "results", "performance" → Results slide
+     - "ablation", "analysis" → Analysis slide
+     - "qualitative", "visual" → Qualitative Results slide
+
+  2. Determine extraction necessity:
+     - Contains numerical data (tables) → Extract
+     - Contains precise diagrams (architecture) → Extract
+     - Contains comparison images → Extract
+     - Simple conceptual illustration → Generate
+
+  3. Match to outline slide:
+     - Find slide with matching topic
+     - Add IMAGE_SOURCE metadata automatically
+```
+
+### Mapping Confidence Levels
+
+| Confidence | Action |
+|------------|--------|
+| **High** (>80%) | Auto-map and extract |
+| **Medium** (50-80%) | Auto-map, flag for review |
+| **Low** (<50%) | Skip, use AI generation |
+
+### Figure Caption Keywords
+
+**Extract (High Priority)**:
+- "architecture", "framework", "pipeline", "overview", "structure"
+- "comparison", "results", "performance", "evaluation"
+- "ablation", "analysis", "study"
+- "qualitative", "visual", "segmentation", "detection"
+- Table I/II/III, Table 1/2/3
+
+**Generate (Low Priority)**:
+- "illustration", "example", "concept", "motivation"
+- "schematic", "diagram" (simple ones)
+- Generic workflow without specific data
+
+### Auto-Population Format
+
+When auto-populating IMAGE_SOURCE in outline:
+
+```markdown
+// IMAGE_SOURCE
+Source: extract
+Figure: Figure 2
+Page: 4
+Caption: Overview of the proposed two-stage framework
+Confidence: high
+Mapping: Methods slide - "architecture" keyword match
+```
+
+### Review Checklist
+
+After auto-detection, verify:
+- [ ] All key figures detected (architecture, results tables)
+- [ ] Page numbers correct
+- [ ] No duplicate mappings
+- [ ] Conceptual slides correctly marked as "generate"
+
+## 9. Practical Implementation Notes
+
+Lessons learned from real-world slide generation sessions.
+
+### PDF Figure Extraction
+
+**pdfjs-dist Compatibility**:
+- Use `pdfjs-dist/legacy/build/pdf.mjs` for Node.js compatibility
+- The modern build requires browser APIs (DOMMatrix) not available in Node
+- If extraction fails with "Image or Canvas expected", fall back to PyMuPDF
+
+**PyMuPDF (fitz) Fallback**:
+```python
+import fitz
+doc = fitz.open("paper.pdf")
+page = doc[page_num - 1]  # 0-indexed
+mat = fitz.Matrix(3, 3)   # 3x scale for 4K quality
+pix = page.get_pixmap(matrix=mat)
+pix.save("output.png")
+```
+PyMuPDF is more reliable for complex PDFs with embedded images.
+
+### Gemini API Image Generation
+
+**Model**: `gemini-3-pro-image-preview`
+
+**Config**:
+```python
+config=types.GenerateContentConfig(
+    image_config=types.ImageConfig(
+        aspect_ratio="16:9",
+        image_size="4K"
+    )
+)
+```
+
+**Response Handling**:
+- Image data is returned as raw bytes in `part.inline_data.data`
+- Do NOT base64 decode - write bytes directly to file
+- MIME type is `image/jpeg` even when requesting PNG output
+
+**Network Issues**:
+- Server disconnections are common for large image generation
+- Implement retry logic with exponential backoff (3 retries recommended)
+- Wait 5-15 seconds between retries
+
+**Optimization**:
+- Skip already-generated slides (check file size > 10KB)
+- Run generation script multiple times if failures occur
+- Script is idempotent - safe to re-run
+
+### Slide Output Organization
+
+**Directory Structure**:
+```
+slide-deck/{topic-slug}/
+├── source-paper.pdf          # Original PDF
+├── figures.json              # Detection results
+├── outline.md                # Final outline with IMAGE_SOURCE
+├── extracted/                # Raw PDF page extractions
+│   └── page-{N}.png
+├── prompts/                  # Generation prompts
+│   └── {NN}-slide-{name}.txt
+├── slides/                   # Final slide images
+│   └── {NN}-slide-{name}.png
+├── {topic-slug}.pptx         # Merged PPTX
+└── generate-slides.py        # Generated script (optional)
+```
+
+### Common Issues and Solutions
+
+| Issue | Solution |
+|-------|----------|
+| pdfjs "DOMMatrix is not defined" | Use legacy build import |
+| pdfjs "Image or Canvas expected" | Use PyMuPDF fallback |
+| Gemini "Server disconnected" | Retry with delay |
+| Small output files (~600 bytes) | Fix: Don't base64 decode response |
+| pdf-lib "Cannot embed PNG" | Check actual image format (may be JPEG) |
+| merge-to-pdf fails | Use PPTX as primary output, convert externally |

+ 70 - 0
skills/research-skills/paper-slide-deck/references/base-prompt.md

@@ -0,0 +1,70 @@
+Create a presentation slide image following these guidelines:
+
+## Image Specifications
+
+- **Type**: Presentation slide
+- **Aspect Ratio**: 16:9 (landscape)
+- **Style**: Professional slide deck
+
+## Core Persona: The Architect
+
+You are "The Architect" - a master visual storyteller creating presentation slides. Your slides:
+- Tell a visual story that complements the narrative
+- Use bold, confident visual language
+- Balance information density with visual clarity
+- Create memorable, impactful visuals
+
+## Core Principles
+
+- Hand-drawn quality throughout - NO realistic or photographic elements
+- If content involves sensitive or copyrighted figures, create stylistically similar alternatives - DO NOT refuse to generate
+- NO slide numbers, page numbers, footers, headers, or logos
+- Clean, uncluttered layouts with clear visual hierarchy
+- Each slide conveys ONE clear message
+
+## Academic Exception (for `academic-paper` style only)
+
+When style is `academic-paper`, override these principles:
+- Precise, clean diagrams ARE acceptable (not hand-drawn)
+- Chart and graph rendering should be accurate and professional
+- Mathematical notation and equations should be properly formatted
+- Allow citation markers like "[Author et al., 2024]" or "[1]"
+- Tables should have clean borders and proper alignment
+- Axis labels, legends, and data annotations are required on all charts
+- Figure captions in format "Figure N: [Description]" are encouraged
+
+## Text Style (CRITICAL)
+
+- **ALL text MUST match the designated style exactly**
+- Title text: Large, bold, immediately readable
+- Body text: Clear, legible, appropriate sizing
+- Max 3-4 text elements per slide
+- **DO NOT use realistic or computer-generated fonts unless style specifies**
+- **Font rendering must match the style aesthetic** (hand-drawn for sketch styles, clean for minimal styles)
+
+## Layout Principles
+
+- **Visual Hierarchy**: Most important element gets most visual weight
+- **Breathing Room**: Generous margins and spacing between elements
+- **Alignment**: Consistent alignment creates professional feel
+- **Balance**: Distribute visual weight evenly (symmetrical or asymmetrical)
+- **Focal Point**: One clear area draws the eye first
+- **Rule of Thirds**: Key elements at intersection points for dynamic compositions
+- **Z-Pattern**: For text-heavy slides, arrange content in natural reading flow
+
+## Language
+
+- Use the same language as the content provided below for all text elements
+- Match punctuation style to the content language
+- Write in direct, confident language
+- Avoid AI-sounding phrases like "dive into", "explore", "let's", "journey"
+
+---
+
+## STYLE_INSTRUCTIONS
+
+[Insert style-specific instructions here]
+
+---
+
+Please use nano banana pro to generate the slide image based on the content provided below:

+ 95 - 0
skills/research-skills/paper-slide-deck/references/content-rules.md

@@ -0,0 +1,95 @@
+# Content & Style Rules
+
+Guidelines for slide deck content quality and style consistency.
+
+## Content Rules
+
+### 1. Respect Reader Attention
+- Each slide should communicate ONE main idea
+- Remove redundant information
+- Prioritize clarity over comprehensiveness
+
+### 2. Data Traceability
+- All statistics must include source attribution
+- Cite sources directly on slides with data
+- Use specific numbers over vague claims
+
+### 3. Self-Contained Prompts
+- Every detail must be in the image prompt
+- No external references (e.g., "like slide 2")
+- Include all colors, layouts, and content explicitly
+
+### 4. No Placeholders
+- Every element must be fully specified
+- No "[insert data here]" or "TBD"
+- All text content finalized before generation
+
+## Style Rules
+
+### 1. Narrative Headlines
+Headlines tell the story, not label the content.
+
+| Bad | Good |
+|-----|------|
+| "Key Statistics" | "Usage doubled in 6 months" |
+| "Our Solution" | "One platform replaces five tools" |
+| "Benefits" | "Teams save 10 hours weekly" |
+
+### 2. Avoid AI Clichés
+Remove these patterns:
+- "Dive into", "explore", "journey"
+- "Let's look at", "let me show you"
+- "Exciting", "amazing", "revolutionary"
+- "In conclusion", "to summarize"
+
+### 3. Meaningful Back Cover
+Not just "Thank you" or "Questions?"
+
+Include one of:
+- Clear call-to-action
+- Memorable key takeaway
+- Thought-provoking closing statement
+- Contact information with purpose
+
+### 4. Consistent Visual Language
+Throughout the deck:
+- Same icon style
+- Same color usage patterns
+- Same layout grid system
+- Same typography hierarchy
+
+## Slide Structure
+
+| Position | Type | Purpose |
+|----------|------|---------|
+| 1 | Cover | Title, visual hook, topic introduction |
+| 2 to N-1 | Content | Key points, data, explanations |
+| N | Back Cover | Summary, call-to-action, memorable close |
+
+## Key Specifications
+
+| Specification | Value |
+|---------------|-------|
+| Aspect Ratio | 16:9 (landscape) |
+| Slide Count | Dynamic based on content |
+| Required Slides | Cover + Back Cover minimum |
+| Footers | None (no slide numbers, logos) |
+| Language Priority | `--lang` → source language → ask user |
+| Tone | Direct, confident (avoid AI phrases) |
+
+## Style Quick Reference
+
+| Style | Visual Summary |
+|-------|----------------|
+| `sketch-notes` | Hand-drawn, warm off-white, conceptual icons |
+| `blueprint` | Technical schematics, grid texture, blue tones |
+| `bold-editorial` | High contrast, dark backgrounds, magazine impact |
+| `vector-illustration` | Flat vector, black outlines, retro colors |
+| `minimal` | Maximum whitespace, single accent, zen-like |
+| `storytelling` | Full-bleed imagery, cinematic, emotional |
+| `warm` | Soft gradients, rounded shapes, wellness palette |
+| `notion` | Dashboard aesthetic, clean data viz, SaaS-inspired |
+| `corporate` | Navy/gold, structured layouts, business polish |
+| `playful` | Vibrant coral/teal/yellow, dynamic, energetic |
+
+Full style specifications: `references/styles/<style>.md`

+ 177 - 0
skills/research-skills/paper-slide-deck/references/figure-container-template.md

@@ -0,0 +1,177 @@
+# Figure Container Template
+
+Visual specifications for applying the academic-paper style container to extracted PDF figures.
+
+## Container Dimensions
+
+| Property | Value | Notes |
+|----------|-------|-------|
+| Aspect Ratio | 16:9 | Standard presentation format |
+| Resolution | 1920 x 1080 px | Full HD |
+| High-Res Option | 3840 x 2160 px | 4K for print quality |
+
+## Layout Specifications
+
+```
+┌─────────────────────────────────────────────────────────────────┐
+│                           TITLE AREA                            │
+│                         (120px height)                          │
+├─────────────────────────────────────────────────────────────────┤
+│                                                                 │
+│                                                                 │
+│                       FIGURE AREA                               │
+│                    (centered, scaled)                           │
+│                     max 85% width                               │
+│                     max 70% height                              │
+│                                                                 │
+│                                                                 │
+├─────────────────────────────────────────────────────────────────┤
+│                         CAPTION AREA                            │
+│                          (80px height)                          │
+└─────────────────────────────────────────────────────────────────┘
+```
+
+## Dimensions (1920x1080)
+
+| Area | Position | Size |
+|------|----------|------|
+| Title | y: 40px, centered | height: 80px |
+| Figure Container | centered | max-width: 1632px (85%), max-height: 756px (70%) |
+| Caption | y: 960px, centered | height: 60px |
+| Margins | all sides | 60px |
+
+## Color Specifications (academic-paper style)
+
+| Element | Color | Hex |
+|---------|-------|-----|
+| Background | White | #FFFFFF |
+| Title Text | Dark Blue-Gray | #1E3A5F |
+| Caption Text | Medium Gray | #6B7280 |
+| Figure Border | Light Gray | #E5E7EB |
+| Figure Shadow | Gray (10% opacity) | rgba(0,0,0,0.1) |
+
+## Typography
+
+### Title
+- Font: Sans-serif (system default: Arial, Helvetica)
+- Size: 48px (1920w) / 96px (3840w)
+- Weight: Bold (700)
+- Color: #1E3A5F
+- Alignment: Center
+- Max lines: 2
+
+### Caption
+- Font: Sans-serif (system default: Arial, Helvetica)
+- Size: 24px (1920w) / 48px (3840w)
+- Weight: Normal (400)
+- Style: Italic
+- Color: #6B7280
+- Alignment: Center
+- Format: "Figure N: [Caption text]"
+
+## Figure Area Styling
+
+### Container
+- Background: White (#FFFFFF)
+- Border: 1px solid #E5E7EB
+- Border Radius: 8px
+- Box Shadow: 0 4px 6px rgba(0,0,0,0.1)
+- Padding: 20px
+
+### Figure Scaling
+- Maintain aspect ratio
+- Scale to fit container (contain mode)
+- Center horizontally and vertically
+- Minimum margin from container edge: 20px
+
+## Implementation Notes
+
+### Canvas Setup (Node.js)
+
+```typescript
+import { createCanvas, loadImage } from 'canvas';
+
+const WIDTH = 1920;
+const HEIGHT = 1080;
+
+const canvas = createCanvas(WIDTH, HEIGHT);
+const ctx = canvas.getContext('2d');
+
+// Background
+ctx.fillStyle = '#FFFFFF';
+ctx.fillRect(0, 0, WIDTH, HEIGHT);
+```
+
+### Title Rendering
+
+```typescript
+ctx.fillStyle = '#1E3A5F';
+ctx.font = 'bold 48px Arial, Helvetica, sans-serif';
+ctx.textAlign = 'center';
+ctx.textBaseline = 'middle';
+ctx.fillText(title, WIDTH / 2, 80);
+```
+
+### Figure Placement
+
+```typescript
+// Load and scale figure
+const figure = await loadImage(figurePath);
+const maxWidth = WIDTH * 0.85;
+const maxHeight = HEIGHT * 0.70;
+
+const scale = Math.min(maxWidth / figure.width, maxHeight / figure.height);
+const scaledWidth = figure.width * scale;
+const scaledHeight = figure.height * scale;
+
+// Center position
+const x = (WIDTH - scaledWidth) / 2;
+const y = (HEIGHT - scaledHeight) / 2;
+
+// Draw shadow
+ctx.shadowColor = 'rgba(0,0,0,0.1)';
+ctx.shadowBlur = 12;
+ctx.shadowOffsetY = 4;
+
+// Draw border
+ctx.strokeStyle = '#E5E7EB';
+ctx.lineWidth = 1;
+ctx.strokeRect(x - 20, y - 20, scaledWidth + 40, scaledHeight + 40);
+
+// Draw figure
+ctx.drawImage(figure, x, y, scaledWidth, scaledHeight);
+```
+
+### Caption Rendering
+
+```typescript
+ctx.fillStyle = '#6B7280';
+ctx.font = 'italic 24px Arial, Helvetica, sans-serif';
+ctx.textAlign = 'center';
+ctx.textBaseline = 'middle';
+ctx.fillText(`Figure ${figureNum}: ${caption}`, WIDTH / 2, HEIGHT - 60);
+```
+
+## Variants
+
+### Minimal Container
+- No border or shadow
+- Figure fills more space (90% width)
+- Smaller title/caption (36px/18px)
+
+### With Sub-caption
+- Add second line below caption
+- For additional notes or source attribution
+- Smaller font (18px), lighter gray (#9CA3AF)
+
+### Table Container
+- Same layout as figure
+- Replace "Figure N" with "Table N"
+- Consider larger padding for table borders
+
+## Output Format
+
+- Format: PNG
+- Color Space: sRGB
+- Compression: Lossless
+- Filename: Same as slide filename from outline

+ 85 - 0
skills/research-skills/paper-slide-deck/references/modification-guide.md

@@ -0,0 +1,85 @@
+# Slide Modification Guide
+
+Workflows for modifying individual slides after initial generation.
+
+## Edit Single Slide
+
+Regenerate a specific slide with modified content:
+
+1. Identify slide to edit (e.g., `03-slide-key-findings.png`)
+2. Update prompt in `prompts/03-slide-key-findings.md`
+3. If content changes significantly, update slug in filename
+4. Regenerate image using same session ID
+5. Regenerate PPTX and PDF
+
+## Add New Slide
+
+Insert a new slide at specified position:
+
+1. Specify insertion position (e.g., after slide 3)
+2. Create new prompt with appropriate slug (e.g., `04-slide-new-section.md`)
+3. Generate new slide image
+4. **Renumber files**: All subsequent slides increment NN by 1
+   - `04-slide-conclusion.png` → `05-slide-conclusion.png`
+   - Slugs remain unchanged
+5. Update `outline.md` with new slide entry
+6. Regenerate PPTX and PDF
+
+## Delete Slide
+
+Remove a slide and renumber:
+
+1. Identify slide to delete (e.g., `03-slide-key-findings.png`)
+2. Remove image file and prompt file
+3. **Renumber files**: All subsequent slides decrement NN by 1
+   - `04-slide-conclusion.png` → `03-slide-conclusion.png`
+   - Slugs remain unchanged
+4. Update `outline.md` to remove slide entry
+5. Regenerate PPTX and PDF
+
+## File Naming Convention
+
+Files use meaningful slugs for better readability:
+
+```
+NN-slide-[slug].png
+NN-slide-[slug].md (in prompts/)
+```
+
+Examples:
+- `01-slide-cover.png`
+- `02-slide-problem-statement.png`
+- `03-slide-key-findings.png`
+- `04-slide-back-cover.png`
+
+## Slug Rules
+
+| Rule | Description |
+|------|-------------|
+| Format | Kebab-case (lowercase, hyphens) |
+| Source | Derived from slide title/content |
+| Uniqueness | Must be unique within the deck |
+| Updates | Change slug when content changes significantly |
+
+## Renumbering Rules
+
+| Scenario | Action |
+|----------|--------|
+| Add slide | Increment NN for all subsequent slides |
+| Delete slide | Decrement NN for all subsequent slides |
+| Reorder slides | Update NN to match new positions |
+| Edit slide | NN unchanged, update slug if needed |
+
+**Important**: Slugs remain unchanged during renumbering. Only the NN prefix changes.
+
+## Post-Modification Checklist
+
+After any modification:
+
+- [ ] Image file renamed/created correctly
+- [ ] Prompt file renamed/created correctly
+- [ ] Subsequent files renumbered (if add/delete)
+- [ ] `outline.md` updated to reflect changes
+- [ ] PPTX regenerated
+- [ ] PDF regenerated
+- [ ] Slide count in outline header updated

+ 437 - 0
skills/research-skills/paper-slide-deck/references/outline-template.md

@@ -0,0 +1,437 @@
+# Outline Template
+
+Standard structure for slide deck outlines with style instructions.
+
+## Outline Format
+
+```markdown
+# Slide Deck Outline
+
+**Topic**: [topic description]
+**Style**: [selected style]
+**Audience**: [target audience]
+**Language**: [output language]
+**Slide Count**: N slides
+**Generated**: YYYY-MM-DD HH:mm
+
+---
+
+<STYLE_INSTRUCTIONS>
+Design Aesthetic: [2-3 sentence description from style file]
+
+Background:
+  Color: [Name] ([Hex])
+  Texture: [description]
+
+Typography:
+  Primary Font: [detailed description for image generation]
+  Secondary Font: [detailed description for image generation]
+
+Color Palette:
+  Primary Text: [Name] ([Hex]) - [usage]
+  Background: [Name] ([Hex]) - [usage]
+  Accent 1: [Name] ([Hex]) - [usage]
+  Accent 2: [Name] ([Hex]) - [usage]
+
+Visual Elements:
+  - [element 1 with rendering guidance]
+  - [element 2 with rendering guidance]
+  - ...
+
+Style Rules:
+  Do: [guidelines from style file]
+  Don't: [anti-patterns from style file]
+</STYLE_INSTRUCTIONS>
+
+---
+
+[Slide entries follow...]
+```
+
+## Cover Slide Template
+
+```markdown
+## Slide 1 of N
+
+**Type**: Cover
+**Filename**: 01-slide-cover.png
+
+// NARRATIVE GOAL
+[What this slide achieves in the story arc]
+
+// KEY CONTENT
+Headline: [main title]
+Sub-headline: [supporting tagline]
+
+// VISUAL
+[Detailed visual description - specific elements, composition, mood]
+
+// LAYOUT
+Layout: [optional: layout name from gallery, e.g., title-hero]
+[Composition, hierarchy, spatial arrangement]
+```
+
+## Content Slide Template
+
+```markdown
+## Slide X of N
+
+**Type**: Content
+**Filename**: {NN}-slide-{slug}.png
+
+// NARRATIVE GOAL
+[What this slide achieves in the story arc]
+
+// KEY CONTENT
+Headline: [main message - narrative, not label]
+Sub-headline: [supporting context]
+Body:
+- [point 1 with specific detail]
+- [point 2 with specific detail]
+- [point 3 with specific detail]
+
+// VISUAL
+[Detailed visual description]
+
+// LAYOUT
+Layout: [optional: layout name from gallery]
+[Composition, hierarchy, spatial arrangement]
+```
+
+## Image Source Metadata (Automatic Figure Extraction)
+
+For academic presentations, IMAGE_SOURCE metadata is **automatically populated** based on figure detection.
+
+### Auto-Population Process
+
+1. **Figure Detection**: `detect-figures.ts` scans PDF and outputs `figures.json`
+2. **Mapping Algorithm**: Agent maps figures to slides using caption keywords:
+   - "architecture", "framework", "pipeline" → Methods slides
+   - "comparison", "results", "performance" → Results slides (quantitative)
+   - "qualitative", "visual", "segmentation" → Results slides (qualitative)
+   - Table I/II/III → Quantitative results slides
+3. **Auto-Insert**: `// IMAGE_SOURCE` blocks added to outline during generation
+
+### IMAGE_SOURCE Format
+
+```markdown
+// IMAGE_SOURCE
+Source: generate | extract
+Figure: [Figure/Table number from paper, e.g., "Figure 2", "Table 1"]
+Page: [PDF page number, 1-indexed]
+Caption: [Figure caption for container template]
+```
+
+### IMAGE_SOURCE Values
+
+| Value | Description | Processing |
+|-------|-------------|------------|
+| `generate` | AI generates the slide image (default) | Standard prompt → Gemini generation |
+| `extract` | Extract figure from source PDF | PDF extraction → Apply container template |
+
+### Auto-Mapping Rules
+
+| Figure Caption Contains | Maps To | Default Source |
+|-------------------------|---------|----------------|
+| architecture, framework, pipeline, network, overview | Methods slide | `extract` |
+| comparison, results, performance, evaluation | Quantitative results | `extract` |
+| qualitative, visual, segmentation, detection | Qualitative results | `extract` |
+| ablation, analysis | Analysis slide | `extract` |
+| Table I, Table II, TABLE 1, TABLE 2 | Results slide | `extract` |
+| motivation, challenge, problem | Background slide | `generate` |
+| illustration, concept, example | Any | `generate` |
+
+### Manual Override
+
+To override auto-detection, manually edit the `// IMAGE_SOURCE` block in outline:
+
+```markdown
+// IMAGE_SOURCE
+Source: extract    # Change to 'generate' if needed
+Figure: Figure 3   # Correct figure number if wrong
+Page: 5            # Correct page number if wrong
+Caption: Corrected caption text
+```
+
+### Example: Extracted Figure Slide
+
+```markdown
+## Slide 5 of 12
+
+**Type**: Content
+**Filename**: 05-slide-architecture.png
+
+// NARRATIVE GOAL
+Present the core network architecture
+
+// KEY CONTENT
+Headline: Proposed Architecture
+Sub-headline: Two-Stage Coarse-to-Fine Framework
+Body:
+- Stage 1: Global feature extraction
+- Stage 2: Local refinement module
+
+// VISUAL
+Central architecture diagram from Figure 2 of the paper
+
+// LAYOUT
+Layout: methods-diagram
+
+// IMAGE_SOURCE
+Source: extract
+Figure: Figure 2
+Page: 4
+Caption: Overall architecture of our proposed two-stage framework
+```
+
+### Example: Generated Slide (Default)
+
+```markdown
+## Slide 3 of 12
+
+**Type**: Content
+**Filename**: 03-slide-motivation.png
+
+// NARRATIVE GOAL
+Establish the problem motivation
+
+// KEY CONTENT
+Headline: Current Methods Fall Short
+Body:
+- Existing approaches struggle with X
+- Performance gap in Y scenarios
+
+// VISUAL
+Split comparison showing limitation vs desired outcome
+
+// LAYOUT
+Layout: binary-comparison
+
+// IMAGE_SOURCE
+Source: generate
+```
+
+**Note**: If `// IMAGE_SOURCE` section is omitted, defaults to `Source: generate`.
+
+## Back Cover Slide Template
+
+```markdown
+## Slide N of N
+
+**Type**: Back Cover
+**Filename**: {NN}-slide-back-cover.png
+
+// NARRATIVE GOAL
+[Meaningful closing - not just "thank you"]
+
+// KEY CONTENT
+Headline: [memorable closing statement or call-to-action]
+Body: [optional summary points or next steps]
+
+// VISUAL
+[Visual that reinforces the core message]
+
+// LAYOUT
+Layout: [optional: layout name from gallery]
+[Clean, impactful composition]
+```
+
+## STYLE_INSTRUCTIONS Block
+
+The `<STYLE_INSTRUCTIONS>` block contains all style-specific guidance for image generation:
+
+| Section | Content |
+|---------|---------|
+| Design Aesthetic | Overall visual direction from style file |
+| Background | Base color and texture details |
+| Typography | Font descriptions for Gemini (no font names, describe appearance) |
+| Color Palette | Named colors with hex codes and usage guidance |
+| Visual Elements | Specific graphic elements with rendering instructions |
+| Style Rules | Do/Don't guidelines from style file |
+
+**Important**: Typography descriptions must describe the visual appearance (e.g., "rounded sans-serif", "bold geometric") since image generators cannot use font names.
+
+## Section Dividers
+
+Use `---` (horizontal rule) between:
+- Header metadata and STYLE_INSTRUCTIONS
+- STYLE_INSTRUCTIONS and first slide
+- Each slide entry
+
+## Slide Numbering
+
+- Cover is always Slide 1
+- Content slides use sequential numbers
+- Back Cover is always final slide (N)
+- Filename prefix matches slide position: `01-`, `02-`, etc.
+
+## Filename Slugs
+
+Generate meaningful slugs from slide content:
+
+| Slide Type | Slug Pattern | Example |
+|------------|--------------|---------|
+| Cover | `cover` | `01-slide-cover.png` |
+| Content | `{topic-slug}` | `02-slide-problem-statement.png` |
+| Back Cover | `back-cover` | `10-slide-back-cover.png` |
+
+Slug rules:
+- Kebab-case (lowercase, hyphens)
+- Derived from headline or main topic
+- Maximum 30 characters
+- Unique within deck
+
+## Academic Slide Templates
+
+For `academic-paper` style presentations.
+
+### Academic Cover Slide
+
+```markdown
+## Slide 1 of N
+
+**Type**: Cover
+**Filename**: 01-slide-cover.png
+
+// NARRATIVE GOAL
+Establish paper title, authors, affiliations, and venue
+
+// KEY CONTENT
+Headline: [Paper Title - can be multi-line]
+Sub-headline: [Conference/Journal Name, Year]
+Authors: [Author1, Author2, Author3]
+Affiliations: [University/Company logos or names]
+
+// VISUAL
+Clean white background, centered title in dark blue, author names below, institutional logos/names at bottom
+
+// LAYOUT
+Layout: paper-title
+```
+
+### Methods/Architecture Slide
+
+```markdown
+## Slide X of N
+
+**Type**: Content
+**Filename**: {NN}-slide-method.png
+
+// NARRATIVE GOAL
+Present the core methodology or system architecture
+
+// KEY CONTENT
+Headline: [Method Name] / Our Approach
+Body:
+- Architecture diagram with labeled components
+- Data flow arrows between modules
+- Key innovation highlighted
+
+// VISUAL
+Central pipeline/architecture diagram, labeled boxes for each component, arrows showing data flow, key module emphasized with accent color
+
+// LAYOUT
+Layout: methods-diagram
+```
+
+### Results Slide (Quantitative)
+
+```markdown
+## Slide X of N
+
+**Type**: Content
+**Filename**: {NN}-slide-results.png
+
+// NARRATIVE GOAL
+Present main experimental results with clear comparisons
+
+// KEY CONTENT
+Headline: [Key finding - narrative, e.g., "Our method achieves state-of-the-art on X"]
+Body:
+- Table or chart with baselines
+- Best results highlighted
+- Metric names and units clear
+
+// VISUAL
+Clean table or bar chart, baseline rows in gray, our method highlighted in blue, best values in bold, clear column headers
+
+// LAYOUT
+Layout: results-chart
+```
+
+### Results Slide (Qualitative)
+
+```markdown
+## Slide X of N
+
+**Type**: Content
+**Filename**: {NN}-slide-qualitative.png
+
+// NARRATIVE GOAL
+Show visual comparison of results
+
+// KEY CONTENT
+Headline: [Qualitative Comparison]
+Body:
+- 2x2 or 3x2 grid of comparison images
+- Labels: Input, Baseline, Ours, Ground Truth
+- Caption describing what to observe
+
+// VISUAL
+Grid layout with equal-sized images, clear labels below each, subtle borders between cells
+
+// LAYOUT
+Layout: qualitative-grid
+```
+
+### Contributions Slide
+
+```markdown
+## Slide X of N
+
+**Type**: Content
+**Filename**: {NN}-slide-contributions.png
+
+// NARRATIVE GOAL
+Summarize key contributions of the work
+
+// KEY CONTENT
+Headline: Contributions
+Body:
+1. [First contribution - specific and measurable]
+2. [Second contribution]
+3. [Third contribution]
+(Optional: Code/data release information)
+
+// VISUAL
+Numbered list with checkmarks or icons, each contribution on separate line, clean spacing
+
+// LAYOUT
+Layout: contributions
+```
+
+### References Slide
+
+```markdown
+## Slide N of N
+
+**Type**: Back Cover
+**Filename**: {NN}-slide-references.png
+
+// NARRATIVE GOAL
+Acknowledge key related work and provide resources
+
+// KEY CONTENT
+Headline: References / Thank You
+Body:
+[1] Author et al. "Title." Venue, Year.
+[2] Author et al. "Title." Venue, Year.
+...
+(Optional: QR code for paper/code, contact email)
+
+// VISUAL
+Two-column reference list, smaller font, optional QR code in corner, "Questions?" or contact info at bottom
+
+// LAYOUT
+Layout: references-list
+```

+ 109 - 0
skills/research-skills/paper-slide-deck/references/styles/academic-paper.md

@@ -0,0 +1,109 @@
+# academic-paper
+
+Professional academic presentation style for conference talks, thesis defense, and research presentations
+
+## Design Aesthetic
+
+Clean, professional academic presentation aesthetic. Precise diagrams and charts with clear data visualization. White or light gray backgrounds with restrained color usage. Formal typography hierarchy suitable for academic venues. Think ICML/NeurIPS/CVPR presentation standards.
+
+## Background
+
+- Color: Pure White (#FFFFFF) or Light Gray (#F8FAFC)
+- Texture: None - clean and distraction-free
+
+## Typography
+
+### Primary Font (Headlines)
+
+Clean serif font for formal academic authority. Bold weight for main titles. Professional, scholarly presence similar to Times or Georgia.
+
+### Secondary Font (Labels)
+
+Sans-serif for diagram labels, axis titles, and annotations. Clear, readable at small sizes. Consistent weight throughout.
+
+### Body Font
+
+Sans-serif for body text, bullet points, and descriptions. Clean and modern for readability. Proper spacing for dense information.
+
+## Color Palette
+
+| Role | Color | Hex | Usage |
+|------|-------|-----|-------|
+| Background | White | #FFFFFF | Primary background |
+| Alt Background | Light Gray | #F8FAFC | Alternate sections |
+| Primary Text | Dark Blue-Gray | #1E3A5F | Headlines, body text |
+| Secondary Text | Medium Gray | #6B7280 | Captions, annotations |
+| Primary Accent | Academic Blue | #2563EB | Key highlights, links |
+| Chart Color 1 | Deep Blue | #1E40AF | Primary data series |
+| Chart Color 2 | Teal | #0891B2 | Secondary data series |
+| Chart Color 3 | Orange | #EA580C | Tertiary data, emphasis |
+| Chart Color 4 | Purple | #7C3AED | Fourth data series |
+| Success | Green | #059669 | Positive results |
+| Error | Red | #DC2626 | Negative results, errors |
+
+## Visual Elements
+
+- Clean bar charts, line graphs, scatter plots
+- Architecture diagrams with labeled components
+- Flow charts for methods and pipelines
+- Tables with clear headers and alignment
+- Mathematical equations and notation
+- Numbered figure captions
+- Citation markers [Author, Year]
+- Section numbers and headers
+- Bullet points with consistent markers
+
+## Style Rules
+
+### Do
+
+- Use precise, accurate diagram rendering
+- Include clear axis labels and legends on all charts
+- Add figure numbers and captions
+- Use citation markers for referenced work
+- Maintain consistent spacing and alignment
+- Show data with appropriate precision
+- Use numbered sections for navigation
+- Keep color usage minimal and purposeful
+
+### Don't
+
+- Use decorative or artistic illustrations
+- Add hand-drawn or sketch elements
+- Use gradients or 3D effects on charts
+- Include logos or watermarks
+- Add slide numbers in visual area
+- Use more than 4 colors in a single chart
+- Omit units or axis labels
+- Create cluttered or dense layouts
+
+## Academic-Specific Elements
+
+### Equation Formatting
+
+- Center-aligned equations with equation numbers
+- Clear variable definitions
+- Proper mathematical notation (subscripts, superscripts, Greek letters)
+
+### Citation Style
+
+- Inline citations: [Author et al., Year]
+- Key references highlighted
+- Full reference list on dedicated slide
+
+### Results Presentation
+
+- Clear comparison tables with baseline highlights
+- Statistical significance markers where applicable
+- Confidence intervals or error bars on charts
+- Before/after or ablation study layouts
+
+### Figure Standards
+
+- Figure N: [Caption] format
+- Source attribution for external figures
+- Consistent sizing across slides
+
+## Best For
+
+Conference presentations (ICML, NeurIPS, CVPR, ACL, etc.), thesis defense, research seminars, academic job talks, paper presentations, grant proposal presentations, lab meetings

+ 67 - 0
skills/research-skills/paper-slide-deck/references/styles/blueprint.md

@@ -0,0 +1,67 @@
+# blueprint
+
+Precise technical blueprint style with professional analytical visual presentation
+
+## Design Aesthetic
+
+Clean, structured visual metaphors using blueprints, diagrams, and schematics. Precise, analytical and aesthetically refined. Information presented in triptych or grid-based layouts with engineering precision.
+
+## Background
+
+- Color: Blueprint Off-White (#FAF8F5)
+- Texture: Subtle grid overlay, light engineering paper feel
+
+## Typography
+
+### Primary Font (Headlines)
+
+Neue Haas Grotesk Display Pro or similar clean sans-serif. Bold weight for titles. Precise letterforms with consistent spacing. Technical, authoritative presence.
+
+### Secondary Font (Body)
+
+Tiempos Text or similar elegant serif for body explanations. Clean, readable at smaller sizes. Professional editorial quality.
+
+## Color Palette
+
+| Role | Color | Hex | Usage |
+|------|-------|-----|-------|
+| Background | Blueprint Paper | #FAF8F5 | Primary background |
+| Grid | Light Gray | #E5E5E5 | Background grid lines |
+| Primary Text | Deep Slate | #334155 | Headlines, body text |
+| Primary Accent | Engineering Blue | #2563EB | Key elements, highlights |
+| Secondary Accent | Navy Blue | #1E3A5F | Supporting elements |
+| Tertiary | Light Blue | #BFDBFE | Backgrounds, fills |
+| Warning | Amber | #F59E0B | Warnings, emphasis points |
+
+## Visual Elements
+
+- Precise lines with consistent stroke weights
+- Technical schematics and clean vector graphics
+- Thin line work in technical drawing style
+- Connection lines use straight lines or 90-degree angles only
+- Data visualization with clean, minimal charts
+- Dimension lines and measurement indicators
+- Cross-section style diagrams
+- Isometric or orthographic projections
+
+## Style Rules
+
+### Do
+
+- Maintain consistent line weights throughout
+- Use grid alignment for all elements
+- Keep color palette restrained and unified
+- Create clear visual hierarchy through scale
+- Use geometric precision for all shapes
+
+### Don't
+
+- Use hand-drawn or organic shapes
+- Add decorative flourishes
+- Use curved connection lines
+- Include photographic elements
+- Add slide numbers, footers, or logos
+
+## Best For
+
+Technical architecture, system design, data analysis, professional business presentations, engineering documentation, process flows

+ 70 - 0
skills/research-skills/paper-slide-deck/references/styles/bold-editorial.md

@@ -0,0 +1,70 @@
+# bold-editorial
+
+High-impact magazine editorial style with bold visual expression
+
+## Design Aesthetic
+
+Strong visual impact at magazine cover level. Bold typography and dramatic contrast. Full-bleed imagery and large color blocks create commanding presence. Every slide feels like a premium publication cover.
+
+## Background
+
+- Color: Deep Black (#0A0A0A) primary, or Deep Blue (#0F172A) alternative
+- Texture: None - clean solid backgrounds, or pure white with bold color blocks
+
+## Typography
+
+### Primary Font (Headlines)
+
+Bold condensed typeface like Impact, Oswald Bold, or Bebas Neue. Oversized headlines that dominate the slide. All-caps for maximum impact. Tight letter-spacing.
+
+### Secondary Font (Body)
+
+Clean sans-serif such as Inter, SF Pro, or Helvetica Neue. Medium weight for body text. High contrast against background.
+
+## Color Palette
+
+| Role | Color | Hex | Usage |
+|------|-------|-----|-------|
+| Background Dark | Deep Black | #0A0A0A | Primary dark background |
+| Background Alt | Deep Blue | #0F172A | Alternative dark background |
+| Background Light | Pure White | #FFFFFF | Light mode background |
+| Primary Text | Pure White | #FFFFFF | Text on dark backgrounds |
+| Alt Text | Pure Black | #000000 | Text on light backgrounds |
+| Accent 1 | Electric Blue | #3B82F6 | Primary highlights |
+| Accent 2 | Bright Orange | #FB923C | Energy, urgency |
+| Accent 3 | Magenta | #EC4899 | Creative, bold accents |
+| Accent 4 | Neon Green | #22C55E | Success, growth |
+| Accent 5 | Violet | #8B5CF6 | Innovation, premium |
+
+## Visual Elements
+
+- Strong typography as visual element itself
+- Geometric shapes and bold color blocks
+- Full-bleed images or solid color backgrounds
+- High contrast gradients (subtle, not garish)
+- Minimal decoration - let content speak
+- Dynamic diagonal lines and angles
+- Dramatic lighting effects on text
+
+## Style Rules
+
+### Do
+
+- Use extreme scale contrast (huge headlines, small body)
+- Create bold color block compositions
+- Let negative space create tension
+- Use full-bleed backgrounds
+- Make every slide feel like a magazine cover
+
+### Don't
+
+- Use soft or muted colors
+- Add unnecessary decorative elements
+- Create busy, cluttered layouts
+- Use thin or delicate typography
+- Add slide numbers, footers, or logos
+
+## Best For
+
+Product launches, marketing presentations, keynote speeches, brand showcases, investor pitches, high-stakes presentations
+

+ 68 - 0
skills/research-skills/paper-slide-deck/references/styles/chalkboard.md

@@ -0,0 +1,68 @@
+# chalkboard
+
+Black chalkboard background with colorful chalk drawing style
+
+## Design Aesthetic
+
+Classic classroom chalkboard aesthetic with hand-drawn chalk illustrations. Nostalgic educational feel with imperfect, sketchy lines that capture the warmth of traditional teaching. Colorful chalk creates visual hierarchy while maintaining the authentic chalkboard experience.
+
+## Background
+
+- Color: Chalkboard Black (#1A1A1A) or Dark Green-Black (#1C2B1C)
+- Texture: Realistic chalkboard texture with subtle scratches, dust particles, and faint eraser marks
+
+## Typography
+
+### Primary Font (Headlines)
+
+Hand-drawn chalk lettering style. Bold, slightly uneven strokes with visible chalk texture. Imperfect baseline adds authenticity. White or bright colored chalk for emphasis.
+
+### Secondary Font (Body)
+
+Neater chalk handwriting for readability. Consistent sizing with natural variation. Light chalk texture, thinner strokes than headlines.
+
+## Color Palette
+
+| Role | Color | Hex | Usage |
+|------|-------|-----|-------|
+| Background | Chalkboard Black | #1A1A1A | Primary background |
+| Alt Background | Green-Black | #1C2B1C | Traditional green board |
+| Primary Text | Chalk White | #F5F5F5 | Main text, outlines |
+| Accent 1 | Chalk Yellow | #FFE566 | Highlights, emphasis |
+| Accent 2 | Chalk Pink | #FF9999 | Secondary highlights |
+| Accent 3 | Chalk Blue | #66B3FF | Diagrams, links |
+| Accent 4 | Chalk Green | #90EE90 | Success, nature |
+| Accent 5 | Chalk Orange | #FFB366 | Warnings, energy |
+
+## Visual Elements
+
+- Hand-drawn chalk illustrations with sketchy, imperfect lines
+- Chalk dust effects around text and key elements
+- Doodles: stars, arrows, underlines, circles, checkmarks
+- Mathematical formulas and simple diagrams
+- Eraser smudges and chalk residue textures
+- Wooden frame border optional
+- Stick figures and simple icons
+- Connection lines with hand-drawn feel
+
+## Style Rules
+
+### Do
+
+- Maintain authentic chalk texture on all elements
+- Use imperfect, hand-drawn quality throughout
+- Add subtle chalk dust and smudge effects
+- Create visual hierarchy with color variety
+- Include playful doodles and annotations
+
+### Don't
+
+- Use perfect geometric shapes
+- Create clean digital-looking lines
+- Add photorealistic elements
+- Use gradients or glossy effects
+- Add slide numbers, footers, or logos
+
+## Best For
+
+Educational presentations, classroom content, tutorials, teaching materials, back-to-school themes, workshop presentations, informal learning sessions, knowledge sharing

+ 69 - 0
skills/research-skills/paper-slide-deck/references/styles/corporate.md

@@ -0,0 +1,69 @@
+# corporate
+
+Professional business style with navy/gold palette and structured layouts
+
+## Design Aesthetic
+
+Clean lines, structured layouts, and business-appropriate sophistication. Projects competence, reliability, and institutional credibility. Balances professionalism with approachability through careful use of whitespace and refined color choices.
+
+## Background
+
+- Color: Pure White (#FFFFFF) with navy structural elements
+- Texture: None - crisp digital clarity for maximum professionalism
+
+## Typography
+
+### Primary Font (Headlines)
+
+Modern geometric sans-serif (Inter, SF Pro, or similar). Clean, professional, and highly legible. Conveys competence and contemporary business sensibility. Medium to semi-bold weight.
+
+### Secondary Font (Body)
+
+Humanist sans-serif (Source Sans Pro style) for body text. Friendly yet professional, optimized for reading comprehension. Regular weight with comfortable line height.
+
+## Color Palette
+
+| Role | Color | Hex | Usage |
+|------|-------|-----|-------|
+| Background | Pure White | #FFFFFF | Main slide background |
+| Primary Text | Navy | #1E3A5F | Headlines, key text |
+| Secondary Text | Dark Gray | #4A5568 | Body text |
+| Primary Accent | Gold | #C9A227 | Premium highlights, emphasis |
+| Secondary Accent | Light Navy | #3D5A80 | Secondary elements |
+| Success | Corporate Green | #059669 | Positive metrics |
+| Alert | Corporate Red | #DC2626 | Attention items |
+| Neutral | Light Gray | #F3F4F6 | Background sections |
+
+## Visual Elements
+
+- Clean charts and data visualizations
+- Professional iconography (outlined style)
+- Structured grid layouts
+- Subtle shadows for depth (minimal)
+- Progress bars and metrics displays
+- Organizational charts
+- Timeline graphics
+- Comparison tables
+
+## Style Rules
+
+### Do
+
+- Maintain clear visual hierarchy
+- Use consistent grid alignment
+- Apply accent colors strategically (gold for emphasis)
+- Keep data visualizations clean and readable
+- Use professional outlined iconography
+
+### Don't
+
+- Use playful or casual elements
+- Apply heavy decorative effects
+- Mix too many accent colors
+- Crowd slides with information
+- Use informal illustration styles
+- Add slide numbers, footers, or logos
+
+## Best For
+
+Business presentations, investor decks, quarterly reports, executive summaries, client proposals, corporate communications, board meetings

+ 69 - 0
skills/research-skills/paper-slide-deck/references/styles/dark-atmospheric.md

@@ -0,0 +1,69 @@
+# dark-atmospheric
+
+Dark moody aesthetic with deep colors and glowing accent elements
+
+## Design Aesthetic
+
+Cinematic dark mode aesthetic with atmospheric depth. Deep purples, blacks, and rich shadows with glowing accents creating dramatic visual contrast. Mysterious, sophisticated, and visually striking. Perfect for evening events, creative industries, and premium brand presentations.
+
+## Background
+
+- Color: Deep Purple-Black (#0D0D1A) or Rich Navy (#1A1A2E)
+- Texture: Subtle gradient from darker edges to slightly lighter center, atmospheric fog effect
+
+## Typography
+
+### Primary Font (Headlines)
+
+Elegant serif or refined sans-serif in light/white. High contrast against dark background. Medium to bold weight. Letterforms may have subtle glow effect.
+
+### Secondary Font (Body)
+
+Clean sans-serif in light gray or muted white. Readable against dark backgrounds. Regular weight with generous line height.
+
+## Color Palette
+
+| Role | Color | Hex | Usage |
+|------|-------|-----|-------|
+| Background | Deep Purple-Black | #0D0D1A | Primary background |
+| Alt Background | Rich Navy | #1A1A2E | Secondary areas |
+| Primary Text | Pure White | #FFFFFF | Headlines |
+| Secondary Text | Light Gray | #A0AEC0 | Body text |
+| Glow Accent 1 | Electric Purple | #8B5CF6 | Primary glow |
+| Glow Accent 2 | Cyan Blue | #06B6D4 | Secondary glow |
+| Glow Accent 3 | Magenta Pink | #EC4899 | Tertiary accent |
+| Glow Accent 4 | Amber | #F59E0B | Warm highlights |
+| Subtle | Dark Gray | #2D3748 | Dividers, borders |
+
+## Visual Elements
+
+- Glowing accent elements and borders
+- Subtle gradient backgrounds
+- Atmospheric fog or particle effects
+- Neon-style highlights on key elements
+- Silhouettes with backlit edges
+- Audio waveforms or sound visualizations
+- Radiating light circles and orbs
+- Cinematic letterboxing optional
+
+## Style Rules
+
+### Do
+
+- Maintain high contrast for readability
+- Use glowing effects sparingly for emphasis
+- Create atmospheric depth with gradients
+- Design dramatic visual focal points
+- Keep text crisp against dark backgrounds
+
+### Don't
+
+- Overuse neon effects (less is more)
+- Create low-contrast text combinations
+- Use bright backgrounds
+- Add cluttered busy elements
+- Add slide numbers, footers, or logos
+
+## Best For
+
+Entertainment presentations, music and audio content, creative agency pitches, evening events, premium brand reveals, gaming content, cinematic storytelling, tech product launches

+ 73 - 0
skills/research-skills/paper-slide-deck/references/styles/editorial-infographic.md

@@ -0,0 +1,73 @@
+# editorial-infographic
+
+Modern magazine-style editorial infographic with clear visual storytelling
+
+## Design Aesthetic
+
+High-quality magazine explainer aesthetic. Clear visual storytelling that transforms complex information into digestible narratives. Clean illustrations, structured layouts, and professional typography. Think Wired, The Verge, or high-end science publications.
+
+## Background
+
+- Color: Pure White (#FFFFFF) or Light Gray (#F8F9FA)
+- Texture: None or subtle paper grain for print feel
+
+## Typography
+
+### Primary Font (Headlines)
+
+Bold display serif or modern sans-serif. Strong visual presence. Clean letterforms with editorial sophistication. Large scale for impact.
+
+### Secondary Font (Subheads)
+
+Semi-bold sans-serif for section headers. Clear hierarchy distinction from body text. Consistent styling throughout.
+
+### Body Font
+
+Humanist sans-serif optimized for reading. Clean, professional, accessible. Comfortable line height (1.6).
+
+## Color Palette
+
+| Role | Color | Hex | Usage |
+|------|-------|-----|-------|
+| Background | Pure White | #FFFFFF | Primary background |
+| Alt Background | Light Gray | #F8F9FA | Section backgrounds |
+| Primary Text | Near Black | #1A1A1A | Headlines, body |
+| Secondary Text | Dark Gray | #4A5568 | Captions, metadata |
+| Accent 1 | Editorial Blue | #2563EB | Primary accent |
+| Accent 2 | Coral | #F97316 | Secondary accent |
+| Accent 3 | Emerald | #10B981 | Positive elements |
+| Accent 4 | Amber | #F59E0B | Warning, attention |
+| Dividers | Medium Gray | #D1D5DB | Section dividers |
+
+## Visual Elements
+
+- Clean flat illustrations (not photos)
+- Structured multi-section layouts
+- Callout boxes for key insights
+- Icon-based data visualization
+- Visual metaphors for abstract concepts
+- Flow diagrams with clear directional hierarchy
+- Pull quotes and highlight boxes
+- Section dividers and visual breaks
+
+## Style Rules
+
+### Do
+
+- Create clear visual narrative flow
+- Use structured multi-section layouts
+- Include callout boxes for key insights
+- Design visual metaphors for complex ideas
+- Maintain magazine-quality polish
+
+### Don't
+
+- Use photographic imagery
+- Create cluttered dense layouts
+- Mix too many visual styles
+- Add decorative elements without purpose
+- Add slide numbers, footers, or logos
+
+## Best For
+
+Technology explainers, science communication, research summaries, policy briefings, investigative content, educational deep-dives, thought leadership pieces

+ 69 - 0
skills/research-skills/paper-slide-deck/references/styles/fantasy-animation.md

@@ -0,0 +1,69 @@
+# fantasy-animation
+
+Whimsical hand-drawn animation style inspired by classic fantasy illustration
+
+## Design Aesthetic
+
+Charming hand-drawn animation aesthetic reminiscent of classic Disney, Studio Ghibli, or European storybook illustration. Soft, painterly textures with warm, inviting colors. Friendly characters, magical elements, and storybook layouts. Enchanting, nostalgic, and emotionally engaging.
+
+## Background
+
+- Color: Soft Sky Blue (#E8F4FC) or Warm Cream (#FFF8E7)
+- Texture: Subtle watercolor wash, soft brush strokes, gentle paper texture
+
+## Typography
+
+### Primary Font (Headlines)
+
+Whimsical serif or decorative hand-lettered style. Slight curvature and organic feel. Warm, friendly character. Think fairy tale book titles.
+
+### Secondary Font (Body)
+
+Rounded sans-serif or casual handwritten style. Friendly and readable. Maintains storybook aesthetic while staying legible.
+
+## Color Palette
+
+| Role | Color | Hex | Usage |
+|------|-------|-----|-------|
+| Background | Soft Sky Blue | #E8F4FC | Primary background |
+| Alt Background | Warm Cream | #FFF8E7 | Secondary areas |
+| Primary Text | Deep Forest | #2D5A3D | Headlines |
+| Body Text | Warm Brown | #5D4E37 | Body content |
+| Accent 1 | Golden Yellow | #F4D03F | Magic, highlights |
+| Accent 2 | Rose Pink | #E8A0BF | Warmth, charm |
+| Accent 3 | Sage Green | #87A96B | Nature elements |
+| Accent 4 | Sky Blue | #7EC8E3 | Air, water, dreams |
+| Accent 5 | Coral | #F08080 | Emphasis, life |
+
+## Visual Elements
+
+- Central illustrated character (friendly, expressive)
+- Small companion creatures (animals, magical beings)
+- Storybook-style environment backgrounds
+- Magical floating objects (books, bags, boxes, orbs)
+- Decorative elements: stars, sparkles, flowers, leaves
+- Soft shadows and gentle highlights
+- Layered depth with foreground/background elements
+- Themed content containers (trunks, satchels, scroll boxes)
+
+## Style Rules
+
+### Do
+
+- Create warm, inviting compositions
+- Use soft edges and painterly textures
+- Include charming character illustrations
+- Add magical decorative touches
+- Maintain storybook narrative feel
+
+### Don't
+
+- Use harsh geometric shapes
+- Create dark or intimidating imagery
+- Add photorealistic elements
+- Use cold color palettes
+- Add slide numbers, footers, or logos
+
+## Best For
+
+Educational content, children's presentations, storytelling, creative workshops, book presentations, fantasy/gaming content, inspirational talks, family-friendly events

+ 72 - 0
skills/research-skills/paper-slide-deck/references/styles/intuition-machine.md

@@ -0,0 +1,72 @@
+# intuition-machine
+
+Technical briefing infographic style with aged paper texture and bilingual explanatory text boxes
+
+## Design Aesthetic
+
+Academic/technical briefing presentation style, NOT artistic 3D renders. Clean 2D or isometric technical illustrations with multiple explanatory text boxes containing article content. Split layouts with visuals on left/center and text on right/bottom. Information-dense but organized with clear visual hierarchy. Vintage blueprint aesthetic with modern clarity.
+
+## Background
+
+- Color: Aged Cream (#F5F0E6)
+- Texture: Subtle paper texture with light creases, warm nostalgic feel reminiscent of vintage technical prints
+
+## Typography
+
+### Primary Font (Headlines)
+
+Bold display font in dark maroon, ALL CAPS in brackets for main titles. English subtitle below in smaller size. Technical, authoritative presence with vintage character.
+
+### Secondary Font (Labels)
+
+Clean sans-serif for bilingual callout labels. Format: "ENGLISH TERM 中文翻译". High contrast against background.
+
+### Body Font
+
+Clean geometric sans-serif for text box content. Readable at smaller sizes. Consistent weight throughout.
+
+## Color Palette
+
+| Role | Color | Hex | Usage |
+|------|-------|-----|-------|
+| Background | Aged Cream | #F5F0E6 | Primary background |
+| Paper Texture | Warm White | #F5F0E1 | Blueprint paper effect |
+| Primary Text | Dark Maroon | #5D3A3A | Headlines, titles |
+| Body Text | Near Black | #1A1A1A | Text box content |
+| Accent 1 | Teal | #2F7373 | Primary illustrations |
+| Accent 2 | Warm Brown | #8B7355 | Secondary elements |
+| Accent 3 | Maroon | #722F37 | Titles, emphasis |
+| Outline | Deep Charcoal | #2D2D2D | Element outlines |
+
+## Visual Elements
+
+- Isometric 3D technical illustrations OR flat 2D diagrams (choose based on concept)
+- 3-5 explanatory text boxes per slide with labeled content
+- Bilingual callout labels pointing to key parts
+- Faded thematic background patterns (circuits, gears, flowcharts related to topic)
+- Clean black outlines on all elements
+- Split or triptych layouts
+- "KEY QUOTE:" box at bottom with core insight
+- No title blocks, stamps, or watermarks in corners
+
+## Style Rules
+
+### Do
+
+- Include 3-5 text boxes with substantive content from source material
+- Use bilingual labels (English + Chinese) for key elements
+- Add faded thematic background patterns related to the topic
+- Maintain aged paper texture throughout
+- Create clear visual hierarchy with split layouts
+
+### Don't
+
+- Create photorealistic renders or artistic 3D scenes
+- Leave slides without explanatory text content
+- Add title blocks or stamps in corners
+- Use gradients or glossy effects
+- Add slide numbers, footers, or logos
+
+## Best For
+
+Technical explanations, concept breakdowns, academic presentations, knowledge documentation, research summaries, educational content with depth, bilingual audiences

+ 64 - 0
skills/research-skills/paper-slide-deck/references/styles/minimal.md

@@ -0,0 +1,64 @@
+# minimal
+
+Ultra-clean keynote style with maximum whitespace and zen-like simplicity
+
+## Design Aesthetic
+
+Maximum whitespace with minimal elements. Zen-like simplicity where every element earns its place. Premium, refined aesthetic suitable for executive audiences. Less is more - remove until nothing more can be taken away.
+
+## Background
+
+- Color: Pure White (#FFFFFF)
+- Texture: None - absolute clean, no grain or patterns
+
+## Typography
+
+### Primary Font (Headlines)
+
+Clean geometric sans-serif like SF Pro Display, Inter, or Helvetica Neue. Light to medium weight for elegant restraint. Generous letter-spacing. Large scale for impact without boldness.
+
+### Secondary Font (Body)
+
+Same family as headlines in lighter weight. Minimal size contrast. Clean, airy feeling throughout.
+
+## Color Palette
+
+| Role | Color | Hex | Usage |
+|------|-------|-----|-------|
+| Background | Pure White | #FFFFFF | Primary background |
+| Primary Text | Near Black | #1A1A1A | Headlines, body |
+| Secondary Text | Medium Gray | #6B7280 | Captions, metadata |
+| Accent | Single Brand Color | #2563EB | One accent only, sparingly |
+| Dividers | Light Gray | #E5E7EB | Subtle separators |
+
+## Visual Elements
+
+- Single accent color used sparingly
+- Thin hairline rules for separation
+- Generous margins (minimum 15% on all sides)
+- Center or left-aligned layouts
+- Simple geometric shapes only when necessary
+- No decorative elements
+- Data visualizations in single color or grayscale
+
+## Style Rules
+
+### Do
+
+- Embrace empty space as a design element
+- Use single accent color only
+- Keep text minimal (10 words or less per slide)
+- Create breathing room between elements
+- Use scale to create hierarchy
+
+### Don't
+
+- Fill empty space with decoration
+- Use multiple accent colors
+- Add icons or illustrations unless essential
+- Create dense information layouts
+- Add slide numbers, footers, or logos
+
+## Best For
+
+Executive briefings, keynote presentations, premium brand communications, minimalist products, investor meetings, high-level strategy

+ 69 - 0
skills/research-skills/paper-slide-deck/references/styles/notion.md

@@ -0,0 +1,69 @@
+# notion
+
+SaaS dashboard aesthetic with clean data focus and productivity tool styling
+
+## Design Aesthetic
+
+Clean, functional SaaS interface aesthetic. Dashboard-inspired layouts with clear data hierarchy. Notion, Linear, and modern productivity tool styling. Information-dense but organized. Professional and trustworthy.
+
+## Background
+
+- Color: Light Gray (#F7F7F5) or Pure White (#FFFFFF)
+- Texture: None - clean solid backgrounds
+
+## Typography
+
+### Primary Font (Headlines)
+
+System UI stack or Inter. Semi-bold weight for emphasis. Clean, functional letterforms. Slightly tighter letter-spacing.
+
+### Secondary Font (Body)
+
+Same family in regular weight. Optimized for screen reading. Comfortable line height (1.5-1.6).
+
+## Color Palette
+
+| Role | Color | Hex | Usage |
+|------|-------|-----|-------|
+| Background | Light Gray | #F7F7F5 | Primary background |
+| Card Background | Pure White | #FFFFFF | Content cards |
+| Primary Text | Near Black | #1F1F1F | Headlines, body |
+| Secondary Text | Gray | #6B6B6B | Metadata, labels |
+| Border | Light Border | #E5E5E5 | Card borders, dividers |
+| Accent Blue | Notion Blue | #2383E2 | Links, primary actions |
+| Accent Green | Success | #0F7B6C | Positive metrics |
+| Accent Red | Alert | #E03E3E | Negative metrics |
+| Accent Yellow | Warning | #DFAB01 | Cautions |
+
+## Visual Elements
+
+- Card-based layouts with subtle borders or shadows
+- Clean data tables and charts
+- Progress bars and metric displays
+- Icon-based navigation hints
+- Checkbox and toggle styling
+- Tag and label chips
+- Subtle hover state styling
+- Breadcrumb and hierarchy indicators
+
+## Style Rules
+
+### Do
+
+- Use card-based content organization
+- Create clear data hierarchy
+- Use subtle shadows and borders
+- Keep layouts grid-aligned
+- Present metrics prominently
+
+### Don't
+
+- Use decorative illustrations
+- Add gradients or complex backgrounds
+- Create artistic layouts
+- Use rounded blob shapes
+- Add slide numbers, footers, or logos
+
+## Best For
+
+Product demos, SaaS presentations, productivity tool pitches, metrics dashboards, feature walkthroughs, B2B presentations, technical product marketing

+ 67 - 0
skills/research-skills/paper-slide-deck/references/styles/pixel-art.md

@@ -0,0 +1,67 @@
+# pixel-art
+
+Retro 8-bit pixel art aesthetic with nostalgic gaming visual style
+
+## Design Aesthetic
+
+Pixelated retro aesthetic reminiscent of classic 8-bit and 16-bit era games. Chunky pixels, limited color palettes, and nostalgic gaming references. Simple geometric shapes rendered in blocky pixel form. Fun, playful, and immediately recognizable retro tech aesthetic.
+
+## Background
+
+- Color: Light Blue (#87CEEB) or Soft Lavender (#E6E6FA)
+- Texture: Subtle pixel grid pattern, CRT scanline effect optional
+
+## Typography
+
+### Primary Font (Headlines)
+
+Pixelated bitmap font style. Chunky, blocky letterforms with visible pixel structure. All caps for maximum readability. Render as actual pixel art, not smooth vectors.
+
+### Secondary Font (Body)
+
+Smaller pixel font with consistent 8x8 or 16x16 character grid. High contrast against background. Limited anti-aliasing to maintain retro feel.
+
+## Color Palette
+
+| Role | Color | Hex | Usage |
+|------|-------|-----|-------|
+| Background | Light Blue | #87CEEB | Primary background |
+| Alt Background | Soft Lavender | #E6E6FA | Secondary backgrounds |
+| Primary Text | Dark Navy | #1A1A2E | Headlines, body text |
+| Accent 1 | Pixel Green | #00FF00 | Success, highlights |
+| Accent 2 | Pixel Red | #FF0000 | Alerts, emphasis |
+| Accent 3 | Pixel Yellow | #FFFF00 | Warnings, energy |
+| Accent 4 | Pixel Cyan | #00FFFF | Info, tech elements |
+| Accent 5 | Pixel Magenta | #FF00FF | Special elements |
+
+## Visual Elements
+
+- All elements rendered with visible pixel structure
+- Simple iconography: notepad, checkboxes, gears, rockets, play buttons
+- Text bubbles and speech boxes with pixel borders
+- 8-bit style decorative elements: stars, hearts, arrows
+- Progress bars with chunky pixel segments
+- Dithering patterns for gradients and shadows
+- Limited to 16-32 color palette per slide
+
+## Style Rules
+
+### Do
+
+- Maintain consistent pixel grid throughout
+- Use limited color palette (16-32 colors max)
+- Create blocky, geometric shapes
+- Add nostalgic gaming references where appropriate
+- Use dithering for color transitions
+
+### Don't
+
+- Use smooth gradients or anti-aliasing
+- Create photorealistic elements
+- Use thin lines or fine details
+- Add modern glossy effects
+- Add slide numbers, footers, or logos
+
+## Best For
+
+Gaming presentations, tech tutorials, nostalgic content, developer talks, retro-themed events, educational content for younger audiences, creative tech presentations

+ 73 - 0
skills/research-skills/paper-slide-deck/references/styles/scientific.md

@@ -0,0 +1,73 @@
+# scientific
+
+Educational scientific illustration style for pathways, processes, and technical diagrams
+
+## Design Aesthetic
+
+Academic scientific illustration aesthetic for biological pathways, chemical processes, and technical systems. Clean, precise diagrams with proper labeling and clear visual flow. Educational clarity with professional polish. Think textbook quality illustrations and academic journal figures.
+
+## Background
+
+- Color: Off-White (#FAFAFA) or Light Blue-Gray (#F0F4F8)
+- Texture: None or very subtle paper grain for print feel
+
+## Typography
+
+### Primary Font (Headlines)
+
+Clean serif font (Times New Roman style) for formal academic feel. Bold weight for main titles. Professional, authoritative presence.
+
+### Secondary Font (Labels)
+
+Sans-serif for diagram labels and annotations. Clear, readable at small sizes. Consistent sizing for hierarchy.
+
+### Body Font
+
+Serif for body paragraphs, sans-serif for bullet points and lists. Academic publication styling.
+
+## Color Palette
+
+| Role | Color | Hex | Usage |
+|------|-------|-----|-------|
+| Background | Off-White | #FAFAFA | Primary background |
+| Primary Text | Dark Slate | #1E293B | Headlines, body |
+| Label Text | Medium Gray | #475569 | Annotations |
+| Pathway 1 | Teal | #0D9488 | Primary pathway |
+| Pathway 2 | Blue | #3B82F6 | Secondary pathway |
+| Pathway 3 | Purple | #8B5CF6 | Tertiary pathway |
+| Membrane | Amber | #F59E0B | Biological membranes |
+| Alert | Red | #EF4444 | Key molecules, emphasis |
+| Positive | Green | #22C55E | Products, outputs |
+
+## Visual Elements
+
+- Horizontal membrane or structure bases
+- Labeled modular components with distinct colors
+- Flow arrows (electron, proton, molecule movement)
+- Chemical formulas and molecular notation
+- Cross-section and pathway diagrams
+- Numbered step sequences
+- Key molecule callouts
+- Process summary boxes
+
+## Style Rules
+
+### Do
+
+- Use precise, consistent line weights
+- Label all components clearly
+- Show directional flow with arrows
+- Include chemical/molecular notation where relevant
+- Create clear numbered sequences
+
+### Don't
+
+- Use decorative illustrations
+- Create imprecise or artistic diagrams
+- Omit important labels
+- Use inconsistent visual language
+- Add slide numbers, footers, or logos
+
+## Best For
+
+Biology lectures, chemistry presentations, medical education, research presentations, academic papers, scientific conferences, textbook illustrations, process documentation

+ 66 - 0
skills/research-skills/paper-slide-deck/references/styles/sketch-notes.md

@@ -0,0 +1,66 @@
+# sketch-notes
+
+Soft hand-drawn illustration style with fresh, refined minimalist editorial aesthetic
+
+## Design Aesthetic
+
+Illustration or hand-drawn feel with soft, relaxed brush strokes. Fresh, refined overall style with minimalist editorial approach. Emphasis on precision, clarity and intelligent elegance while prioritizing warmth, approachability and friendliness.
+
+## Background
+
+- Color: Warm Off-White (#FAF8F0)
+- Texture: Subtle paper grain, slightly warm tone to avoid clinical feel
+
+## Typography
+
+### Primary Font (Headlines)
+
+Bold hand-written marker font or cartoon poster font. Slightly uneven baseline for organic feel. Thick strokes with soft edges. Render as hand-drawn letters, not typed text.
+
+### Secondary Font (Body)
+
+Clear handwritten round or hard-pen style mimicking everyday notes. Consistent sizing with slight natural variation. Render as casual handwriting, legible but not mechanical.
+
+## Color Palette
+
+| Role | Color | Hex | Usage |
+|------|-------|-----|-------|
+| Background | Warm Off-White | #FAF8F0 | Primary background |
+| Primary Text | Deep Charcoal | #2C3E50 | Headlines, body text |
+| Alt Text | Deep Brown | #4A4A4A | Secondary text elements |
+| Accent 1 | Soft Orange | #F4A261 | Highlights, emphasis |
+| Accent 2 | Mustard Yellow | #E9C46A | Secondary highlights |
+| Accent 3 | Sage Green | #87A96B | Nature, growth concepts |
+| Accent 4 | Light Blue | #7EC8E3 | Tech, AI elements |
+| Accent 5 | Red Brown | #A0522D | Land, infrastructure |
+
+## Visual Elements
+
+- Connection lines with hand-drawn wavy feel, not perfectly straight
+- Conceptual abstract icons illustrating ideas rather than literal scenes
+- Color fills don't need to completely fill outlines - preserve hand-painted casual feel
+- Simple geometric shapes with rounded corners
+- Arrows and pointers with sketchy, informal style
+- Doodle-style decorative elements: stars, spirals, underlines
+
+## Style Rules
+
+### Do
+
+- Keep layouts open and well-structured
+- Emphasize information hierarchy and readability
+- Use hand-drawn quality for all elements
+- Allow imperfection - slight wobbles add character
+- Layer elements with subtle overlaps
+
+### Don't
+
+- Use perfect geometric shapes
+- Create photorealistic elements
+- Overcrowd with too many elements
+- Use pure white backgrounds
+- Add slide numbers, footers, or logos
+
+## Best For
+
+Educational content, knowledge sharing, technical explanations, friendly presentations, tutorials, onboarding materials

+ 72 - 0
skills/research-skills/paper-slide-deck/references/styles/vector-illustration.md

@@ -0,0 +1,72 @@
+# vector-illustration
+
+Flat vector illustration style with clear black outlines and retro soft color palette
+
+## Design Aesthetic
+
+Flat vector illustration with no gradients or 3D effects. Clear, uniform-thickness black outlines on all elements. Geometric simplification reducing complex objects to basic shapes. Toy model aesthetic that's cute, playful, and approachable. Panoramic horizontal compositions work well.
+
+## Background
+
+- Color: Cream Off-White (#F5F0E6)
+- Texture: Subtle paper texture, warm nostalgic feel reminiscent of vintage prints
+
+## Typography
+
+### Primary Font (Headlines)
+
+Large, bold retro serif for titles conveying authority and elegance. Think classic advertising posters. Clean letterforms with strong presence.
+
+### Secondary Font (Subtitles)
+
+All-caps sans-serif inside colored rectangular blocks. Label-like appearance. High contrast against block color.
+
+### Body Font
+
+Clean geometric sans-serif for readability. Futura, Avenir, or similar. Consistent weight throughout.
+
+## Color Palette
+
+| Role | Color | Hex | Usage |
+|------|-------|-----|-------|
+| Background | Cream Off-White | #F5F0E6 | Primary background |
+| Outlines | Deep Charcoal | #2D2D2D | All element outlines |
+| Primary Text | Black | #1A1A1A | Headlines, body |
+| Accent 1 | Coral Red | #E07A5F | Primary accent, warmth |
+| Accent 2 | Mint Green | #81B29A | Secondary accent, nature |
+| Accent 3 | Mustard Yellow | #F2CC8F | Highlights, energy |
+| Accent 4 | Burnt Orange | #D4764A | Tertiary accent |
+| Accent 5 | Rock Blue | #577590 | Cool balance, tech |
+
+## Visual Elements
+
+- All objects have closed black outlines (coloring book style)
+- Rounded line endings, avoid sharp corners
+- Trees simplified to lollipop or triangle shapes
+- Buildings simplified to rectangular blocks with grid windows
+- 2.5D perspective (isometric-like but more free-form)
+- Depth through layering and overlap, not atmospheric perspective
+- Decorative geometric elements: radiating lines (sunbursts), pill-shaped clouds, dots, stars
+- People as simple geometric figures with minimal facial detail
+
+## Style Rules
+
+### Do
+
+- Maintain consistent outline thickness throughout
+- Use soft, vintage color palette
+- Simplify all objects to basic geometric shapes
+- Create depth through layering
+- Add playful decorative elements
+
+### Don't
+
+- Use gradients or realistic shading
+- Create photorealistic elements
+- Use thin or varying line weights
+- Include complex detailed illustrations
+- Add slide numbers, footers, or logos
+
+## Best For
+
+Educational presentations, creative proposals, children's content, brand showcases, warm approachable topics, explainer content

+ 73 - 0
skills/research-skills/paper-slide-deck/references/styles/vintage.md

@@ -0,0 +1,73 @@
+# vintage
+
+Vintage aged-paper aesthetic for historical and expedition-style presentations
+
+## Design Aesthetic
+
+Nostalgic vintage aesthetic with aged paper textures and historical document styling. Think explorer's journals, antique maps, and museum exhibits. Rich warm tones with weathered textures. Evokes discovery, heritage, and timeless knowledge.
+
+## Background
+
+- Color: Aged Parchment (#F5E6D3) or Sepia Cream (#FFF8DC)
+- Texture: Heavy aged paper texture with subtle creases, coffee stains, and worn edges
+
+## Typography
+
+### Primary Font (Headlines)
+
+Classic serif with historical character (Garamond, Baskerville, or similar). Elegant, authoritative, timeless. May include decorative flourishes.
+
+### Secondary Font (Labels)
+
+Condensed serif or clean sans-serif for map labels and annotations. Period-appropriate styling. Consistent with vintage aesthetic.
+
+### Body Font
+
+Readable serif for longer text. Traditional book typography. Comfortable reading experience.
+
+## Color Palette
+
+| Role | Color | Hex | Usage |
+|------|-------|-----|-------|
+| Background | Aged Parchment | #F5E6D3 | Primary background |
+| Alt Background | Sepia Cream | #FFF8DC | Secondary areas |
+| Primary Text | Dark Brown | #3D2914 | Headlines, body |
+| Secondary Text | Medium Brown | #6B4423 | Annotations |
+| Accent 1 | Forest Green | #2D5A3D | Maps, nature |
+| Accent 2 | Navy Blue | #1E3A5F | Ocean, lines |
+| Accent 3 | Burgundy | #722F37 | Emphasis, borders |
+| Accent 4 | Gold | #C9A227 | Highlights, compass |
+| Ink | Sepia Black | #3D3D3D | Fine details |
+
+## Visual Elements
+
+- Antique maps with route lines and landmarks
+- Compass roses and nautical elements
+- Expedition ship or vehicle illustrations
+- Specimen drawings (flora, fauna, fossils)
+- Handwritten-style annotations
+- Rope, leather, and brass decorative motifs
+- Wave and terrain texture patterns
+- Vintage photograph-style image frames
+
+## Style Rules
+
+### Do
+
+- Apply consistent aged texture throughout
+- Use period-appropriate visual language
+- Include map and journey elements where relevant
+- Create layered collage compositions
+- Maintain warm sepia-toned palette
+
+### Don't
+
+- Use modern digital styling
+- Create crisp clean edges
+- Use cold or bright colors
+- Add contemporary elements
+- Add slide numbers, footers, or logos
+
+## Best For
+
+Historical presentations, travel and exploration content, museum exhibits, heritage brand storytelling, biography presentations, scientific discovery narratives, educational history content

+ 68 - 0
skills/research-skills/paper-slide-deck/references/styles/watercolor.md

@@ -0,0 +1,68 @@
+# watercolor
+
+Soft watercolor illustration style with hand-painted textures and natural warmth
+
+## Design Aesthetic
+
+Gentle watercolor aesthetic with visible brush strokes and natural color bleeding. Hand-painted feel with soft edges and organic shapes. Warm, approachable, and artistically refined. Combines artistic expression with clear information delivery.
+
+## Background
+
+- Color: Warm Off-White (#FAF8F0) or Soft Cream (#FFF9E6)
+- Texture: Subtle watercolor paper texture with visible grain
+
+## Typography
+
+### Primary Font (Headlines)
+
+Elegant handwritten or brush script for titles. Organic letterforms with natural variation. Warm, personal feeling. May appear as actual hand-painted lettering.
+
+### Secondary Font (Body)
+
+Clean rounded sans-serif or casual handwriting style. Readable at smaller sizes. Maintains artistic cohesion while staying functional.
+
+## Color Palette
+
+| Role | Color | Hex | Usage |
+|------|-------|-----|-------|
+| Background | Warm Off-White | #FAF8F0 | Primary background |
+| Primary Text | Warm Charcoal | #3D3D3D | Headlines, body |
+| Accent 1 | Soft Coral | #F4A261 | Primary warmth |
+| Accent 2 | Dusty Rose | #E8A0A0 | Secondary warmth |
+| Accent 3 | Sage Green | #87A96B | Nature, growth |
+| Accent 4 | Sky Blue | #7EC8E3 | Water, calm |
+| Accent 5 | Soft Lavender | #C5B4E3 | Accent, creativity |
+| Wash | Pale Yellow | #FFF3C4 | Background washes |
+
+## Visual Elements
+
+- Watercolor washes as section backgrounds
+- Illustrated icons with visible brush strokes
+- Natural elements: leaves, bubbles, flowers
+- Color bleeds and soft edges on all elements
+- Hand-drawn arrows and connection lines
+- Labeled diagrams with watercolor fills
+- Small expressive character illustrations
+- Decorative nature accents scattered thoughtfully
+
+## Style Rules
+
+### Do
+
+- Allow color to bleed beyond sharp edges
+- Use visible brush stroke textures
+- Create soft, organic shapes
+- Include hand-drawn quality in all elements
+- Maintain warm, inviting color palette
+
+### Don't
+
+- Use sharp geometric shapes
+- Create hard edges or digital precision
+- Use cold or stark colors
+- Add photographic elements
+- Add slide numbers, footers, or logos
+
+## Best For
+
+Lifestyle content, wellness presentations, travel guides, food and cooking content, personal stories, creative workshops, artistic portfolios, warm educational content

+ 282 - 0
skills/research-skills/paper-slide-deck/scripts/apply-template.ts

@@ -0,0 +1,282 @@
+/**
+ * apply-template.ts
+ * Apply the academic-paper figure container template to an extracted figure.
+ *
+ * Usage:
+ *   npx -y bun apply-template.ts --figure figure.png --title "Title" --caption "Figure 1: Caption" --output slide.png
+ *
+ * Options:
+ *   --figure   Path to extracted figure image (required)
+ *   --title    Slide title/headline (required)
+ *   --caption  Figure caption, e.g., "Figure 1: Description" (required)
+ *   --output   Output slide PNG file path (required)
+ *   --width    Output width, default 1920 (optional)
+ *   --height   Output height, default 1080 (optional)
+ */
+
+import { existsSync, writeFileSync, mkdirSync } from "fs";
+import { dirname, resolve } from "path";
+import { createCanvas, loadImage, CanvasRenderingContext2D } from "canvas";
+
+// Color palette from academic-paper style
+const COLORS = {
+  background: "#FFFFFF",
+  titleText: "#1E3A5F",
+  captionText: "#6B7280",
+  border: "#E5E7EB",
+  shadow: "rgba(0, 0, 0, 0.1)",
+};
+
+// Layout constants
+const LAYOUT = {
+  titleY: 80,
+  titleFontSize: 48,
+  captionFontSize: 24,
+  figureMaxWidthRatio: 0.85,
+  figureMaxHeightRatio: 0.65,
+  padding: 20,
+  borderRadius: 8,
+  marginBottom: 80,
+};
+
+interface Args {
+  figure: string;
+  title: string;
+  caption: string;
+  output: string;
+  width: number;
+  height: number;
+}
+
+function parseArgs(): Args {
+  const args = process.argv.slice(2);
+  let figure = "";
+  let title = "";
+  let caption = "";
+  let output = "";
+  let width = 1920;
+  let height = 1080;
+
+  for (let i = 0; i < args.length; i++) {
+    switch (args[i]) {
+      case "--figure":
+        figure = args[++i];
+        break;
+      case "--title":
+        title = args[++i];
+        break;
+      case "--caption":
+        caption = args[++i];
+        break;
+      case "--output":
+        output = args[++i];
+        break;
+      case "--width":
+        width = parseInt(args[++i], 10);
+        break;
+      case "--height":
+        height = parseInt(args[++i], 10);
+        break;
+    }
+  }
+
+  if (!figure || !title || !caption || !output) {
+    console.error("Usage: bun apply-template.ts --figure <image> --title <title> --caption <caption> --output <output.png>");
+    console.error("\nOptions:");
+    console.error("  --figure   Path to extracted figure image (required)");
+    console.error("  --title    Slide title/headline (required)");
+    console.error("  --caption  Figure caption (required)");
+    console.error("  --output   Output slide PNG file path (required)");
+    console.error("  --width    Output width, default 1920 (optional)");
+    console.error("  --height   Output height, default 1080 (optional)");
+    process.exit(1);
+  }
+
+  return { figure, title, caption, output, width, height };
+}
+
+function wrapText(ctx: CanvasRenderingContext2D, text: string, maxWidth: number): string[] {
+  const words = text.split(" ");
+  const lines: string[] = [];
+  let currentLine = "";
+
+  for (const word of words) {
+    const testLine = currentLine ? `${currentLine} ${word}` : word;
+    const metrics = ctx.measureText(testLine);
+
+    if (metrics.width > maxWidth && currentLine) {
+      lines.push(currentLine);
+      currentLine = word;
+    } else {
+      currentLine = testLine;
+    }
+  }
+
+  if (currentLine) {
+    lines.push(currentLine);
+  }
+
+  return lines;
+}
+
+function drawRoundedRect(
+  ctx: CanvasRenderingContext2D,
+  x: number,
+  y: number,
+  width: number,
+  height: number,
+  radius: number
+) {
+  ctx.beginPath();
+  ctx.moveTo(x + radius, y);
+  ctx.lineTo(x + width - radius, y);
+  ctx.quadraticCurveTo(x + width, y, x + width, y + radius);
+  ctx.lineTo(x + width, y + height - radius);
+  ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);
+  ctx.lineTo(x + radius, y + height);
+  ctx.quadraticCurveTo(x, y + height, x, y + height - radius);
+  ctx.lineTo(x, y + radius);
+  ctx.quadraticCurveTo(x, y, x + radius, y);
+  ctx.closePath();
+}
+
+async function applyTemplate(args: Args) {
+  const { figure, title, caption, output, width, height } = args;
+
+  // Validate figure exists
+  const absoluteFigurePath = resolve(figure);
+  if (!existsSync(absoluteFigurePath)) {
+    throw new Error(`Figure image not found: ${absoluteFigurePath}`);
+  }
+
+  console.log(`Loading figure: ${absoluteFigurePath}`);
+
+  // Load the figure image
+  const figureImage = await loadImage(absoluteFigurePath);
+  console.log(`Figure size: ${figureImage.width}x${figureImage.height}`);
+
+  // Create output canvas
+  const canvas = createCanvas(width, height);
+  const ctx = canvas.getContext("2d");
+
+  // Scale factors for different resolutions
+  const scaleFactor = width / 1920;
+  const titleFontSize = Math.round(LAYOUT.titleFontSize * scaleFactor);
+  const captionFontSize = Math.round(LAYOUT.captionFontSize * scaleFactor);
+  const padding = Math.round(LAYOUT.padding * scaleFactor);
+  const borderRadius = Math.round(LAYOUT.borderRadius * scaleFactor);
+
+  // Fill background
+  ctx.fillStyle = COLORS.background;
+  ctx.fillRect(0, 0, width, height);
+
+  // Draw title
+  ctx.fillStyle = COLORS.titleText;
+  ctx.font = `bold ${titleFontSize}px Arial, Helvetica, sans-serif`;
+  ctx.textAlign = "center";
+  ctx.textBaseline = "middle";
+
+  const titleMaxWidth = width * 0.9;
+  const titleLines = wrapText(ctx, title, titleMaxWidth);
+  const titleLineHeight = titleFontSize * 1.3;
+  const titleStartY = Math.round(LAYOUT.titleY * scaleFactor);
+
+  titleLines.forEach((line, index) => {
+    ctx.fillText(line, width / 2, titleStartY + index * titleLineHeight);
+  });
+
+  // Calculate figure area
+  const titleBottomY = titleStartY + titleLines.length * titleLineHeight + padding * 2;
+  const captionY = height - Math.round(LAYOUT.marginBottom * scaleFactor);
+  const figureAreaHeight = captionY - titleBottomY - padding * 2;
+
+  const maxFigureWidth = width * LAYOUT.figureMaxWidthRatio;
+  const maxFigureHeight = Math.min(height * LAYOUT.figureMaxHeightRatio, figureAreaHeight);
+
+  // Calculate scaled figure dimensions
+  const figureAspect = figureImage.width / figureImage.height;
+  let scaledWidth: number;
+  let scaledHeight: number;
+
+  if (figureAspect > maxFigureWidth / maxFigureHeight) {
+    // Width constrained
+    scaledWidth = maxFigureWidth;
+    scaledHeight = scaledWidth / figureAspect;
+  } else {
+    // Height constrained
+    scaledHeight = maxFigureHeight;
+    scaledWidth = scaledHeight * figureAspect;
+  }
+
+  // Center figure horizontally and vertically in available space
+  const figureX = (width - scaledWidth) / 2;
+  const figureY = titleBottomY + (figureAreaHeight - scaledHeight) / 2;
+
+  // Draw figure container with shadow and border
+  const containerX = figureX - padding;
+  const containerY = figureY - padding;
+  const containerWidth = scaledWidth + padding * 2;
+  const containerHeight = scaledHeight + padding * 2;
+
+  // Shadow
+  ctx.save();
+  ctx.shadowColor = COLORS.shadow;
+  ctx.shadowBlur = 12 * scaleFactor;
+  ctx.shadowOffsetX = 0;
+  ctx.shadowOffsetY = 4 * scaleFactor;
+  ctx.fillStyle = COLORS.background;
+  drawRoundedRect(ctx, containerX, containerY, containerWidth, containerHeight, borderRadius);
+  ctx.fill();
+  ctx.restore();
+
+  // Border
+  ctx.strokeStyle = COLORS.border;
+  ctx.lineWidth = 1;
+  drawRoundedRect(ctx, containerX, containerY, containerWidth, containerHeight, borderRadius);
+  ctx.stroke();
+
+  // Draw figure
+  ctx.drawImage(figureImage, figureX, figureY, scaledWidth, scaledHeight);
+
+  // Draw caption
+  ctx.fillStyle = COLORS.captionText;
+  ctx.font = `italic ${captionFontSize}px Arial, Helvetica, sans-serif`;
+  ctx.textAlign = "center";
+  ctx.textBaseline = "middle";
+
+  const captionMaxWidth = width * 0.85;
+  const captionLines = wrapText(ctx, caption, captionMaxWidth);
+  const captionLineHeight = captionFontSize * 1.4;
+
+  captionLines.forEach((line, index) => {
+    ctx.fillText(line, width / 2, captionY + index * captionLineHeight);
+  });
+
+  // Ensure output directory exists
+  const outputDir = dirname(output);
+  if (outputDir && !existsSync(outputDir)) {
+    mkdirSync(outputDir, { recursive: true });
+  }
+
+  // Save as PNG
+  const buffer = canvas.toBuffer("image/png");
+  writeFileSync(output, buffer);
+
+  console.log(`\nSaved: ${output}`);
+  console.log(`Size: ${width}x${height}`);
+  console.log(`File size: ${Math.round(buffer.length / 1024)} KB`);
+}
+
+async function main() {
+  const args = parseArgs();
+
+  try {
+    await applyTemplate(args);
+    console.log("\nTemplate applied successfully!");
+  } catch (error) {
+    console.error("\nError:", error instanceof Error ? error.message : error);
+    process.exit(1);
+  }
+}
+
+main();

+ 283 - 0
skills/research-skills/paper-slide-deck/scripts/detect-figures.ts

@@ -0,0 +1,283 @@
+/**
+ * detect-figures.ts
+ * Automatically detect figures and tables from academic PDF papers.
+ *
+ * Usage:
+ *   npx -y bun detect-figures.ts --pdf paper.pdf --output figures.json
+ *
+ * Options:
+ *   --pdf     Path to source PDF file (required)
+ *   --output  Output JSON file path (optional, prints to stdout if omitted)
+ *
+ * Output JSON format:
+ * {
+ *   "figures": [
+ *     { "type": "figure", "number": "1", "page": 2, "caption": "...", "label": "Figure 1" },
+ *     { "type": "table", "number": "I", "page": 5, "caption": "...", "label": "Table I" }
+ *   ],
+ *   "totalPages": 10
+ * }
+ */
+
+import { existsSync, writeFileSync } from "fs";
+import { resolve } from "path";
+// Use legacy build for Node.js compatibility
+import * as pdfjsLib from "pdfjs-dist/legacy/build/pdf.mjs";
+
+interface FigureInfo {
+  type: "figure" | "table";
+  number: string;
+  page: number;
+  caption: string;
+  label: string;
+}
+
+interface DetectionResult {
+  figures: FigureInfo[];
+  totalPages: number;
+  pdfPath: string;
+}
+
+interface Args {
+  pdf: string;
+  output: string | null;
+}
+
+function parseArgs(): Args {
+  const args = process.argv.slice(2);
+  let pdf = "";
+  let output: string | null = null;
+
+  for (let i = 0; i < args.length; i++) {
+    switch (args[i]) {
+      case "--pdf":
+        pdf = args[++i];
+        break;
+      case "--output":
+        output = args[++i];
+        break;
+    }
+  }
+
+  if (!pdf) {
+    console.error("Usage: bun detect-figures.ts --pdf <pdf-path> [--output <output.json>]");
+    console.error("\nOptions:");
+    console.error("  --pdf     Path to source PDF file (required)");
+    console.error("  --output  Output JSON file path (optional)");
+    process.exit(1);
+  }
+
+  return { pdf, output };
+}
+
+/**
+ * Extract text content from a PDF page
+ */
+async function getPageText(page: any): Promise<string> {
+  const textContent = await page.getTextContent();
+  const items = textContent.items as any[];
+
+  // Sort by y position (top to bottom), then x position (left to right)
+  items.sort((a, b) => {
+    const yDiff = b.transform[5] - a.transform[5]; // y is inverted in PDF
+    if (Math.abs(yDiff) > 5) return yDiff;
+    return a.transform[4] - b.transform[4];
+  });
+
+  // Group items by line (similar y position)
+  const lines: string[][] = [];
+  let currentLine: string[] = [];
+  let lastY = items[0]?.transform[5] ?? 0;
+
+  for (const item of items) {
+    const y = item.transform[5];
+    if (Math.abs(y - lastY) > 8) {
+      if (currentLine.length > 0) {
+        lines.push(currentLine);
+      }
+      currentLine = [];
+      lastY = y;
+    }
+    if (item.str.trim()) {
+      currentLine.push(item.str);
+    }
+  }
+  if (currentLine.length > 0) {
+    lines.push(currentLine);
+  }
+
+  return lines.map(line => line.join(" ")).join("\n");
+}
+
+/**
+ * Parse figure and table references from text
+ */
+function parseFiguresFromText(text: string, pageNum: number): FigureInfo[] {
+  const figures: FigureInfo[] = [];
+
+  // Patterns for figure captions
+  // Match: "Fig. 1.", "Figure 1:", "Fig. 1 ", "FIGURE 1."
+  const figurePatterns = [
+    /(?:^|\n)\s*(?:Fig(?:ure|\.)?)\s*(\d+)[.:\s]+([^\n]+(?:\n(?![A-Z]{2,}|\d+\.|Fig|Table)[^\n]+)*)/gi,
+    /(?:^|\n)\s*FIGURE\s+(\d+)[.:\s]+([^\n]+(?:\n(?![A-Z]{2,}|\d+\.|Fig|Table)[^\n]+)*)/g,
+  ];
+
+  // Patterns for table captions
+  // Match: "Table I", "TABLE 1", "Table 1:"
+  const tablePatterns = [
+    /(?:^|\n)\s*(?:Table|TABLE)\s+([IVX\d]+)[.:\s]+([^\n]+(?:\n(?![A-Z]{2,}|\d+\.|Fig|Table)[^\n]+)*)/gi,
+  ];
+
+  // Extract figures
+  for (const pattern of figurePatterns) {
+    let match;
+    while ((match = pattern.exec(text)) !== null) {
+      const number = match[1];
+      const caption = match[2].trim().replace(/\s+/g, " ").substring(0, 300);
+      const label = `Figure ${number}`;
+
+      // Avoid duplicates
+      if (!figures.some(f => f.label === label)) {
+        figures.push({
+          type: "figure",
+          number,
+          page: pageNum,
+          caption,
+          label,
+        });
+      }
+    }
+  }
+
+  // Extract tables
+  for (const pattern of tablePatterns) {
+    let match;
+    while ((match = pattern.exec(text)) !== null) {
+      const number = match[1];
+      const caption = match[2].trim().replace(/\s+/g, " ").substring(0, 300);
+      const label = `Table ${number}`;
+
+      // Avoid duplicates
+      if (!figures.some(f => f.label === label)) {
+        figures.push({
+          type: "table",
+          number,
+          page: pageNum,
+          caption,
+          label,
+        });
+      }
+    }
+  }
+
+  return figures;
+}
+
+/**
+ * Detect all figures and tables in a PDF
+ */
+async function detectFigures(pdfPath: string): Promise<DetectionResult> {
+  const absolutePath = resolve(pdfPath);
+
+  if (!existsSync(absolutePath)) {
+    throw new Error(`PDF file not found: ${absolutePath}`);
+  }
+
+  console.error(`Loading PDF: ${absolutePath}`);
+
+  const loadingTask = pdfjsLib.getDocument({
+    url: absolutePath,
+    useSystemFonts: true,
+    standardFontDataUrl: "node_modules/pdfjs-dist/standard_fonts/",
+  });
+
+  const pdfDoc = await loadingTask.promise;
+  const totalPages = pdfDoc.numPages;
+
+  console.error(`PDF loaded: ${totalPages} pages`);
+  console.error("Scanning for figures and tables...\n");
+
+  const allFigures: FigureInfo[] = [];
+  const seenLabels = new Set<string>();
+
+  for (let pageNum = 1; pageNum <= totalPages; pageNum++) {
+    const page = await pdfDoc.getPage(pageNum);
+    const text = await getPageText(page);
+    const pageFigures = parseFiguresFromText(text, pageNum);
+
+    for (const fig of pageFigures) {
+      // Only add if not already seen (captions may span pages)
+      if (!seenLabels.has(fig.label)) {
+        seenLabels.add(fig.label);
+        allFigures.push(fig);
+        console.error(`  Found: ${fig.label} on page ${fig.page}`);
+      }
+    }
+  }
+
+  // Sort by type then number
+  allFigures.sort((a, b) => {
+    if (a.type !== b.type) {
+      return a.type === "figure" ? -1 : 1;
+    }
+    // Handle Roman numerals for tables
+    const numA = romanToInt(a.number) || parseInt(a.number, 10) || 0;
+    const numB = romanToInt(b.number) || parseInt(b.number, 10) || 0;
+    return numA - numB;
+  });
+
+  console.error(`\nTotal: ${allFigures.length} figures/tables detected`);
+
+  return {
+    figures: allFigures,
+    totalPages,
+    pdfPath: absolutePath,
+  };
+}
+
+/**
+ * Convert Roman numeral to integer
+ */
+function romanToInt(roman: string): number | null {
+  const romanMap: { [key: string]: number } = {
+    I: 1, V: 5, X: 10, L: 50, C: 100, D: 500, M: 1000,
+  };
+
+  const upper = roman.toUpperCase();
+  if (!/^[IVXLCDM]+$/.test(upper)) {
+    return null;
+  }
+
+  let result = 0;
+  for (let i = 0; i < upper.length; i++) {
+    const current = romanMap[upper[i]];
+    const next = romanMap[upper[i + 1]] || 0;
+    if (current < next) {
+      result -= current;
+    } else {
+      result += current;
+    }
+  }
+  return result;
+}
+
+async function main() {
+  const { pdf, output } = parseArgs();
+
+  try {
+    const result = await detectFigures(pdf);
+    const json = JSON.stringify(result, null, 2);
+
+    if (output) {
+      writeFileSync(output, json);
+      console.error(`\nSaved to: ${output}`);
+    } else {
+      console.log(json);
+    }
+  } catch (error) {
+    console.error("\nError:", error instanceof Error ? error.message : error);
+    process.exit(1);
+  }
+}
+
+main();

+ 140 - 0
skills/research-skills/paper-slide-deck/scripts/extract-figure.ts

@@ -0,0 +1,140 @@
+/**
+ * extract-figure.ts
+ * Extract a specific page from a PDF and save as PNG image.
+ *
+ * Usage:
+ *   npx -y bun extract-figure.ts --pdf paper.pdf --page 4 --output figure.png
+ *
+ * Options:
+ *   --pdf     Path to source PDF file (required)
+ *   --page    Page number to extract, 1-indexed (required)
+ *   --output  Output PNG file path (required)
+ *   --scale   Render scale factor, default 2.0 for high quality (optional)
+ */
+
+import { existsSync, writeFileSync, mkdirSync } from "fs";
+import { dirname, resolve } from "path";
+// Use legacy build for Node.js compatibility
+import * as pdfjsLib from "pdfjs-dist/legacy/build/pdf.mjs";
+import { createCanvas } from "canvas";
+
+interface Args {
+  pdf: string;
+  page: number;
+  output: string;
+  scale: number;
+}
+
+function parseArgs(): Args {
+  const args = process.argv.slice(2);
+  let pdf = "";
+  let page = 0;
+  let output = "";
+  let scale = 2.0;
+
+  for (let i = 0; i < args.length; i++) {
+    switch (args[i]) {
+      case "--pdf":
+        pdf = args[++i];
+        break;
+      case "--page":
+        page = parseInt(args[++i], 10);
+        break;
+      case "--output":
+        output = args[++i];
+        break;
+      case "--scale":
+        scale = parseFloat(args[++i]);
+        break;
+    }
+  }
+
+  if (!pdf || !page || !output) {
+    console.error("Usage: bun extract-figure.ts --pdf <pdf-path> --page <number> --output <output.png>");
+    console.error("\nOptions:");
+    console.error("  --pdf     Path to source PDF file (required)");
+    console.error("  --page    Page number to extract, 1-indexed (required)");
+    console.error("  --output  Output PNG file path (required)");
+    console.error("  --scale   Render scale factor, default 2.0 (optional)");
+    process.exit(1);
+  }
+
+  return { pdf, page, output, scale };
+}
+
+async function extractPage(pdfPath: string, pageNum: number, outputPath: string, scale: number) {
+  // Validate PDF exists
+  const absolutePdfPath = resolve(pdfPath);
+  if (!existsSync(absolutePdfPath)) {
+    throw new Error(`PDF file not found: ${absolutePdfPath}`);
+  }
+
+  console.log(`Loading PDF: ${absolutePdfPath}`);
+
+  // Load the PDF document
+  const loadingTask = pdfjsLib.getDocument({
+    url: absolutePdfPath,
+    useSystemFonts: true,
+    standardFontDataUrl: "node_modules/pdfjs-dist/standard_fonts/",
+  });
+
+  const pdfDoc = await loadingTask.promise;
+  const totalPages = pdfDoc.numPages;
+
+  console.log(`PDF loaded: ${totalPages} pages`);
+
+  // Validate page number
+  if (pageNum < 1 || pageNum > totalPages) {
+    throw new Error(`Page ${pageNum} out of range (1-${totalPages})`);
+  }
+
+  // Get the page
+  const page = await pdfDoc.getPage(pageNum);
+  const viewport = page.getViewport({ scale });
+
+  console.log(`Page ${pageNum}: ${Math.round(viewport.width)}x${Math.round(viewport.height)} px (scale: ${scale})`);
+
+  // Create canvas
+  const canvas = createCanvas(viewport.width, viewport.height);
+  const ctx = canvas.getContext("2d");
+
+  // Fill white background
+  ctx.fillStyle = "#FFFFFF";
+  ctx.fillRect(0, 0, viewport.width, viewport.height);
+
+  // Render page to canvas
+  const renderContext = {
+    canvasContext: ctx as any,
+    viewport: viewport,
+  };
+
+  console.log("Rendering page...");
+  await page.render(renderContext).promise;
+
+  // Ensure output directory exists
+  const outputDir = dirname(outputPath);
+  if (outputDir && !existsSync(outputDir)) {
+    mkdirSync(outputDir, { recursive: true });
+  }
+
+  // Save as PNG
+  const buffer = canvas.toBuffer("image/png");
+  writeFileSync(outputPath, buffer);
+
+  console.log(`\nSaved: ${outputPath}`);
+  console.log(`Size: ${Math.round(buffer.length / 1024)} KB`);
+}
+
+async function main() {
+  const { pdf, page, output, scale } = parseArgs();
+
+  try {
+    await extractPage(pdf, page, output, scale);
+    console.log("\nExtraction complete!");
+  } catch (error) {
+    console.error("\nError:", error instanceof Error ? error.message : error);
+    process.exit(1);
+  }
+}
+
+main();

+ 182 - 0
skills/research-skills/paper-slide-deck/scripts/generate-slides.py

@@ -0,0 +1,182 @@
+"""
+generate-slides.py - Generate slide images using Gemini API
+
+Usage:
+    python generate-slides.py <slide-deck-dir> [--model MODEL]
+
+Arguments:
+    slide-deck-dir    Directory containing prompts/ folder with slide prompts
+
+Options:
+    --model MODEL     Gemini model to use (default: gemini-3-pro-image-preview)
+
+Environment:
+    GOOGLE_API_KEY or GEMINI_API_KEY must be set
+
+Example:
+    python generate-slides.py ./slide-deck/my-presentation --model gemini-3-pro-image-preview
+"""
+
+import os
+import sys
+import time
+import argparse
+from pathlib import Path
+
+def check_dependencies():
+    """Check and install required dependencies."""
+    try:
+        from google import genai
+        from google.genai import types
+        return genai, types
+    except ImportError:
+        print("Installing google-genai package...")
+        import subprocess
+        subprocess.check_call([sys.executable, "-m", "pip", "install", "google-genai", "-q"])
+        from google import genai
+        from google.genai import types
+        return genai, types
+
+def generate_slide(client, types, model: str, prompt: str, output_path: Path, max_retries: int = 3) -> bool:
+    """Generate a single slide image with retry logic."""
+
+    for attempt in range(max_retries):
+        try:
+            if attempt > 0:
+                wait_time = 5 * (attempt + 1)
+                print(f"  Retry {attempt}/{max_retries-1} (waiting {wait_time}s)...")
+                time.sleep(wait_time)
+            else:
+                print(f"  Generating image...")
+
+            response = client.models.generate_content(
+                model=model,
+                contents=prompt,
+                config=types.GenerateContentConfig(
+                    image_config=types.ImageConfig(
+                        aspect_ratio="16:9",
+                        image_size="4K"
+                    )
+                )
+            )
+
+            # Extract image from response
+            if response.candidates:
+                for part in response.candidates[0].content.parts:
+                    if hasattr(part, 'inline_data') and part.inline_data and part.inline_data.data:
+                        image_data = part.inline_data.data
+                        # Save image (data is already bytes)
+                        output_path.parent.mkdir(parents=True, exist_ok=True)
+                        with open(output_path, "wb") as f:
+                            f.write(image_data)
+                        size_kb = len(image_data) / 1024
+                        print(f"  Saved: {output_path.name} ({size_kb:.1f} KB)")
+                        return True
+
+            print(f"  Warning: No image in response")
+
+        except Exception as e:
+            print(f"  Error: {e}")
+            if attempt == max_retries - 1:
+                return False
+
+    return False
+
+def find_slides_to_generate(prompts_dir: Path, slides_dir: Path) -> list:
+    """Find slides that need generation (have prompts but no output or small output)."""
+    slides = []
+
+    for prompt_file in sorted(prompts_dir.glob("*.txt")):
+        slide_name = prompt_file.stem
+        output_file = slides_dir / f"{slide_name}.png"
+
+        # Skip if output exists and is valid (> 10KB)
+        if output_file.exists() and output_file.stat().st_size > 10000:
+            continue
+
+        slides.append({
+            "name": slide_name,
+            "prompt_file": prompt_file,
+            "output_file": output_file,
+        })
+
+    return slides
+
+def main():
+    parser = argparse.ArgumentParser(description="Generate slide images using Gemini API")
+    parser.add_argument("slide_deck_dir", help="Directory containing prompts/ folder")
+    parser.add_argument("--model", default="gemini-3-pro-image-preview",
+                        help="Gemini model to use (default: gemini-3-pro-image-preview)")
+    args = parser.parse_args()
+
+    # Check dependencies
+    genai, types = check_dependencies()
+
+    # Initialize paths
+    deck_dir = Path(args.slide_deck_dir)
+    prompts_dir = deck_dir / "prompts"
+    slides_dir = deck_dir / "slides"
+
+    if not prompts_dir.exists():
+        print(f"Error: Prompts directory not found: {prompts_dir}")
+        sys.exit(1)
+
+    # Get API key
+    api_key = os.environ.get("GOOGLE_API_KEY") or os.environ.get("GEMINI_API_KEY")
+    if not api_key:
+        print("Error: GOOGLE_API_KEY or GEMINI_API_KEY environment variable not set")
+        sys.exit(1)
+
+    # Initialize client
+    client = genai.Client(api_key=api_key)
+
+    # Create output directory
+    slides_dir.mkdir(parents=True, exist_ok=True)
+
+    # Find slides to generate
+    slides = find_slides_to_generate(prompts_dir, slides_dir)
+
+    if not slides:
+        print("All slides already generated. Nothing to do.")
+        # List existing slides
+        existing = sorted(slides_dir.glob("*.png"))
+        print(f"\nExisting slides ({len(existing)}):")
+        for slide in existing:
+            size_kb = slide.stat().st_size / 1024
+            print(f"  - {slide.name} ({size_kb:.1f} KB)")
+        return
+
+    print(f"Generating {len(slides)} slides using {args.model}...")
+    print(f"Output directory: {slides_dir}\n")
+
+    success_count = 0
+    failed_slides = []
+
+    for i, slide in enumerate(slides):
+        print(f"[{i + 1}/{len(slides)}] {slide['name']}")
+
+        # Read prompt
+        prompt = slide["prompt_file"].read_text(encoding="utf-8")
+
+        # Generate slide
+        if generate_slide(client, types, args.model, prompt, slide["output_file"]):
+            success_count += 1
+        else:
+            failed_slides.append(slide["name"])
+
+    print(f"\nDone! Generated {success_count}/{len(slides)} slides.")
+
+    if failed_slides:
+        print(f"\nFailed slides ({len(failed_slides)}):")
+        for name in failed_slides:
+            print(f"  - {name}")
+
+    # List all slides in output directory
+    all_slides = sorted(slides_dir.glob("*.png"))
+    print(f"\nTotal slides in output: {len(all_slides)}")
+    for slide in all_slides:
+        size_kb = slide.stat().st_size / 1024
+        print(f"  - {slide.name} ({size_kb:.1f} KB)")
+
+if __name__ == "__main__":
+    main()

+ 116 - 0
skills/research-skills/paper-slide-deck/scripts/merge-to-pdf.ts

@@ -0,0 +1,116 @@
+import { existsSync, readdirSync, readFileSync } from "fs";
+import { join, basename } from "path";
+import { PDFDocument, rgb } from "pdf-lib";
+
+interface SlideInfo {
+  filename: string;
+  path: string;
+  index: number;
+  promptPath?: string;
+}
+
+function parseArgs(): { dir: string; output?: string } {
+  const args = process.argv.slice(2);
+  let dir = "";
+  let output: string | undefined;
+
+  for (let i = 0; i < args.length; i++) {
+    if (args[i] === "--output" || args[i] === "-o") {
+      output = args[++i];
+    } else if (!args[i].startsWith("-")) {
+      dir = args[i];
+    }
+  }
+
+  if (!dir) {
+    console.error("Usage: bun merge-to-pdf.ts <slide-deck-dir> [--output filename.pdf]");
+    process.exit(1);
+  }
+
+  return { dir, output };
+}
+
+function findSlideImages(dir: string): SlideInfo[] {
+  if (!existsSync(dir)) {
+    console.error(`Directory not found: ${dir}`);
+    process.exit(1);
+  }
+
+  const files = readdirSync(dir);
+  const slidePattern = /^(\d+)-slide-.*\.(png|jpg|jpeg)$/i;
+  const promptsDir = join(dir, "prompts");
+  const hasPrompts = existsSync(promptsDir);
+
+  const slides: SlideInfo[] = files
+    .filter((f) => slidePattern.test(f))
+    .map((f) => {
+      const match = f.match(slidePattern);
+      const baseName = f.replace(/\.(png|jpg|jpeg)$/i, "");
+      const promptPath = hasPrompts ? join(promptsDir, `${baseName}.md`) : undefined;
+
+      return {
+        filename: f,
+        path: join(dir, f),
+        index: parseInt(match![1], 10),
+        promptPath: promptPath && existsSync(promptPath) ? promptPath : undefined,
+      };
+    })
+    .sort((a, b) => a.index - b.index);
+
+  if (slides.length === 0) {
+    console.error(`No slide images found in: ${dir}`);
+    console.error("Expected format: 01-slide-*.png, 02-slide-*.png, etc.");
+    process.exit(1);
+  }
+
+  return slides;
+}
+
+async function createPdf(slides: SlideInfo[], outputPath: string) {
+  const pdfDoc = await PDFDocument.create();
+  pdfDoc.setAuthor("paper-slide-deck");
+  pdfDoc.setSubject("Generated Slide Deck");
+
+  for (const slide of slides) {
+    const imageData = readFileSync(slide.path);
+    const ext = slide.filename.toLowerCase();
+    const image = ext.endsWith(".png")
+      ? await pdfDoc.embedPng(imageData)
+      : await pdfDoc.embedJpg(imageData);
+
+    const { width, height } = image;
+    const page = pdfDoc.addPage([width, height]);
+
+    page.drawImage(image, {
+      x: 0,
+      y: 0,
+      width,
+      height,
+    });
+
+    console.log(`Added: ${slide.filename}${slide.promptPath ? " (prompt available)" : ""}`);
+  }
+
+  const pdfBytes = await pdfDoc.save();
+  await Bun.write(outputPath, pdfBytes);
+
+  console.log(`\nCreated: ${outputPath}`);
+  console.log(`Total pages: ${slides.length}`);
+}
+
+async function main() {
+  const { dir, output } = parseArgs();
+  const slides = findSlideImages(dir);
+
+  const dirName = basename(dir) === "slide-deck" ? basename(join(dir, "..")) : basename(dir);
+  const outputPath = output || join(dir, `${dirName}.pdf`);
+
+  console.log(`Found ${slides.length} slides in: ${dir}\n`);
+
+  await createPdf(slides, outputPath);
+}
+
+main().catch((err) => {
+  console.error("Error:", err.message);
+  process.exit(1);
+});

+ 137 - 0
skills/research-skills/paper-slide-deck/scripts/merge-to-pptx.ts

@@ -0,0 +1,137 @@
+import { existsSync, readdirSync, readFileSync } from "fs";
+import { join, basename, extname } from "path";
+import PptxGenJS from "pptxgenjs";
+
+interface SlideInfo {
+  filename: string;
+  path: string;
+  index: number;
+  promptPath?: string;
+}
+
+function parseArgs(): { dir: string; output?: string } {
+  const args = process.argv.slice(2);
+  let dir = "";
+  let output: string | undefined;
+
+  for (let i = 0; i < args.length; i++) {
+    if (args[i] === "--output" || args[i] === "-o") {
+      output = args[++i];
+    } else if (!args[i].startsWith("-")) {
+      dir = args[i];
+    }
+  }
+
+  if (!dir) {
+    console.error("Usage: bun merge-to-pptx.ts <slide-deck-dir> [--output filename.pptx]");
+    process.exit(1);
+  }
+
+  return { dir, output };
+}
+
+function findSlideImages(dir: string): SlideInfo[] {
+  if (!existsSync(dir)) {
+    console.error(`Directory not found: ${dir}`);
+    process.exit(1);
+  }
+
+  const files = readdirSync(dir);
+  const slidePattern = /^(\d+)-slide-.*\.(png|jpg|jpeg)$/i;
+  const promptsDir = join(dir, "prompts");
+  const hasPrompts = existsSync(promptsDir);
+
+  const slides: SlideInfo[] = files
+    .filter((f) => slidePattern.test(f))
+    .map((f) => {
+      const match = f.match(slidePattern);
+      const baseName = f.replace(/\.(png|jpg|jpeg)$/i, "");
+      const promptPath = hasPrompts ? join(promptsDir, `${baseName}.md`) : undefined;
+
+      return {
+        filename: f,
+        path: join(dir, f),
+        index: parseInt(match![1], 10),
+        promptPath: promptPath && existsSync(promptPath) ? promptPath : undefined,
+      };
+    })
+    .sort((a, b) => a.index - b.index);
+
+  if (slides.length === 0) {
+    console.error(`No slide images found in: ${dir}`);
+    console.error("Expected format: 01-slide-*.png, 02-slide-*.png, etc.");
+    process.exit(1);
+  }
+
+  return slides;
+}
+
+function findBasePrompt(): string | undefined {
+  const scriptDir = import.meta.dir;
+  const basePromptPath = join(scriptDir, "..", "references", "base-prompt.md");
+  if (existsSync(basePromptPath)) {
+    return readFileSync(basePromptPath, "utf-8");
+  }
+  return undefined;
+}
+
+async function createPptx(slides: SlideInfo[], outputPath: string) {
+  const pptx = new PptxGenJS();
+
+  pptx.layout = "LAYOUT_16x9";
+  pptx.author = "paper-slide-deck";
+  pptx.subject = "Generated Slide Deck";
+
+  const basePrompt = findBasePrompt();
+  let notesCount = 0;
+
+  for (const slide of slides) {
+    const s = pptx.addSlide();
+    const imageData = readFileSync(slide.path);
+    const base64 = imageData.toString("base64");
+    const ext = extname(slide.filename).toLowerCase().replace(".", "");
+    const mimeType = ext === "png" ? "image/png" : "image/jpeg";
+
+    s.addImage({
+      data: `data:${mimeType};base64,${base64}`,
+      x: 0,
+      y: 0,
+      w: "100%",
+      h: "100%",
+      sizing: { type: "cover", w: "100%", h: "100%" },
+    });
+
+    if (slide.promptPath) {
+      const slidePrompt = readFileSync(slide.promptPath, "utf-8");
+      const fullNotes = basePrompt ? `${basePrompt}\n\n---\n\n${slidePrompt}` : slidePrompt;
+      s.addNotes(fullNotes);
+      notesCount++;
+    }
+
+    console.log(`Added: ${slide.filename}${slide.promptPath ? " (with notes)" : ""}`);
+  }
+
+  await pptx.writeFile({ fileName: outputPath });
+  console.log(`\nCreated: ${outputPath}`);
+  console.log(`Total slides: ${slides.length}`);
+  if (notesCount > 0) {
+    console.log(`Slides with notes: ${notesCount}${basePrompt ? " (includes base prompt)" : ""}`);
+  }
+}
+
+async function main() {
+  const { dir, output } = parseArgs();
+  const slides = findSlideImages(dir);
+
+  const dirName = basename(dir) === "slide-deck" ? basename(join(dir, "..")) : basename(dir);
+  const outputPath = output || join(dir, `${dirName}.pptx`);
+
+  console.log(`Found ${slides.length} slides in: ${dir}\n`);
+
+  await createPptx(slides, outputPath);
+}
+
+main().catch((err) => {
+  console.error("Error:", err.message);
+  process.exit(1);
+});

+ 899 - 0
skills/research-skills/paper-slide-deck/scripts/package-lock.json

@@ -0,0 +1,899 @@
+{
+  "name": "scripts",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "dependencies": {
+        "canvas": "^3.2.1",
+        "pdf-lib": "^1.17.1",
+        "pdfjs-dist": "^5.4.530",
+        "pptxgenjs": "^4.0.1"
+      }
+    },
+    "node_modules/@napi-rs/canvas": {
+      "version": "0.1.88",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.88.tgz",
+      "integrity": "sha512-/p08f93LEbsL5mDZFQ3DBxcPv/I4QG9EDYRRq1WNlCOXVfAHBTHMSVMwxlqG/AtnSfUr9+vgfN7MKiyDo0+Weg==",
+      "license": "MIT",
+      "optional": true,
+      "workspaces": [
+        "e2e/*"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      },
+      "optionalDependencies": {
+        "@napi-rs/canvas-android-arm64": "0.1.88",
+        "@napi-rs/canvas-darwin-arm64": "0.1.88",
+        "@napi-rs/canvas-darwin-x64": "0.1.88",
+        "@napi-rs/canvas-linux-arm-gnueabihf": "0.1.88",
+        "@napi-rs/canvas-linux-arm64-gnu": "0.1.88",
+        "@napi-rs/canvas-linux-arm64-musl": "0.1.88",
+        "@napi-rs/canvas-linux-riscv64-gnu": "0.1.88",
+        "@napi-rs/canvas-linux-x64-gnu": "0.1.88",
+        "@napi-rs/canvas-linux-x64-musl": "0.1.88",
+        "@napi-rs/canvas-win32-arm64-msvc": "0.1.88",
+        "@napi-rs/canvas-win32-x64-msvc": "0.1.88"
+      }
+    },
+    "node_modules/@napi-rs/canvas-android-arm64": {
+      "version": "0.1.88",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.88.tgz",
+      "integrity": "sha512-KEaClPnZuVxJ8smUWjV1wWFkByBO/D+vy4lN+Dm5DFH514oqwukxKGeck9xcKJhaWJGjfruGmYGiwRe//+/zQQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@napi-rs/canvas-darwin-arm64": {
+      "version": "0.1.88",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.88.tgz",
+      "integrity": "sha512-Xgywz0dDxOKSgx3eZnK85WgGMmGrQEW7ZLA/E7raZdlEE+xXCozobgqz2ZvYigpB6DJFYkqnwHjqCOTSDGlFdg==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@napi-rs/canvas-darwin-x64": {
+      "version": "0.1.88",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.88.tgz",
+      "integrity": "sha512-Yz4wSCIQOUgNucgk+8NFtQxQxZV5NO8VKRl9ePKE6XoNyNVC8JDqtvhh3b3TPqKK8W5p2EQpAr1rjjm0mfBxdg==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@napi-rs/canvas-linux-arm-gnueabihf": {
+      "version": "0.1.88",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.88.tgz",
+      "integrity": "sha512-9gQM2SlTo76hYhxHi2XxWTAqpTOb+JtxMPEIr+H5nAhHhyEtNmTSDRtz93SP7mGd2G3Ojf2oF5tP9OdgtgXyKg==",
+      "cpu": [
+        "arm"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@napi-rs/canvas-linux-arm64-gnu": {
+      "version": "0.1.88",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.88.tgz",
+      "integrity": "sha512-7qgaOBMXuVRk9Fzztzr3BchQKXDxGbY+nwsovD3I/Sx81e+sX0ReEDYHTItNb0Je4NHbAl7D0MKyd4SvUc04sg==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@napi-rs/canvas-linux-arm64-musl": {
+      "version": "0.1.88",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.88.tgz",
+      "integrity": "sha512-kYyNrUsHLkoGHBc77u4Unh067GrfiCUMbGHC2+OTxbeWfZkPt2o32UOQkhnSswKd9Fko/wSqqGkY956bIUzruA==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@napi-rs/canvas-linux-riscv64-gnu": {
+      "version": "0.1.88",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-0.1.88.tgz",
+      "integrity": "sha512-HVuH7QgzB0yavYdNZDRyAsn/ejoXB0hn8twwFnOqUbCCdkV+REna7RXjSR7+PdfW0qMQ2YYWsLvVBT5iL/mGpw==",
+      "cpu": [
+        "riscv64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@napi-rs/canvas-linux-x64-gnu": {
+      "version": "0.1.88",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.88.tgz",
+      "integrity": "sha512-hvcvKIcPEQrvvJtJnwD35B3qk6umFJ8dFIr8bSymfrSMem0EQsfn1ztys8ETIFndTwdNWJKWluvxztA41ivsEw==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@napi-rs/canvas-linux-x64-musl": {
+      "version": "0.1.88",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.88.tgz",
+      "integrity": "sha512-eSMpGYY2xnZSQ6UxYJ6plDboxq4KeJ4zT5HaVkUnbObNN6DlbJe0Mclh3wifAmquXfrlgTZt6zhHsUgz++AK6g==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@napi-rs/canvas-win32-arm64-msvc": {
+      "version": "0.1.88",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-arm64-msvc/-/canvas-win32-arm64-msvc-0.1.88.tgz",
+      "integrity": "sha512-qcIFfEgHrchyYqRrxsCeTQgpJZ/GqHiqPcU/Fvw/ARVlQeDX1VyFH+X+0gCR2tca6UJrq96vnW+5o7buCq+erA==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@napi-rs/canvas-win32-x64-msvc": {
+      "version": "0.1.88",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.88.tgz",
+      "integrity": "sha512-ROVqbfS4QyZxYkqmaIBBpbz/BQvAR+05FXM5PAtTYVc0uyY8Y4BHJSMdGAaMf6TdIVRsQsiq+FG/dH9XhvWCFQ==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@pdf-lib/standard-fonts": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz",
+      "integrity": "sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==",
+      "license": "MIT",
+      "dependencies": {
+        "pako": "^1.0.6"
+      }
+    },
+    "node_modules/@pdf-lib/upng": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/@pdf-lib/upng/-/upng-1.0.1.tgz",
+      "integrity": "sha512-dQK2FUMQtowVP00mtIksrlZhdFXQZPC+taih1q4CvPZ5vqdxR/LKBaFg0oAfzd1GlHZXXSPdQfzQnt+ViGvEIQ==",
+      "license": "MIT",
+      "dependencies": {
+        "pako": "^1.0.10"
+      }
+    },
+    "node_modules/@types/node": {
+      "version": "22.19.7",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.7.tgz",
+      "integrity": "sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw==",
+      "license": "MIT",
+      "dependencies": {
+        "undici-types": "~6.21.0"
+      }
+    },
+    "node_modules/base64-js": {
+      "version": "1.5.1",
+      "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+      "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "license": "MIT"
+    },
+    "node_modules/bl": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+      "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+      "license": "MIT",
+      "dependencies": {
+        "buffer": "^5.5.0",
+        "inherits": "^2.0.4",
+        "readable-stream": "^3.4.0"
+      }
+    },
+    "node_modules/buffer": {
+      "version": "5.7.1",
+      "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+      "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "license": "MIT",
+      "dependencies": {
+        "base64-js": "^1.3.1",
+        "ieee754": "^1.1.13"
+      }
+    },
+    "node_modules/canvas": {
+      "version": "3.2.1",
+      "resolved": "https://registry.npmjs.org/canvas/-/canvas-3.2.1.tgz",
+      "integrity": "sha512-ej1sPFR5+0YWtaVp6S1N1FVz69TQCqmrkGeRvQxZeAB1nAIcjNTHVwrZtYtWFFBmQsF40/uDLehsW5KuYC99mg==",
+      "hasInstallScript": true,
+      "license": "MIT",
+      "dependencies": {
+        "node-addon-api": "^7.0.0",
+        "prebuild-install": "^7.1.3"
+      },
+      "engines": {
+        "node": "^18.12.0 || >= 20.9.0"
+      }
+    },
+    "node_modules/chownr": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+      "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+      "license": "ISC"
+    },
+    "node_modules/core-util-is": {
+      "version": "1.0.3",
+      "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+      "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+      "license": "MIT"
+    },
+    "node_modules/decompress-response": {
+      "version": "6.0.0",
+      "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+      "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+      "license": "MIT",
+      "dependencies": {
+        "mimic-response": "^3.1.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/deep-extend": {
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+      "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=4.0.0"
+      }
+    },
+    "node_modules/detect-libc": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
+      "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
+      "license": "Apache-2.0",
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/end-of-stream": {
+      "version": "1.4.5",
+      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz",
+      "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==",
+      "license": "MIT",
+      "dependencies": {
+        "once": "^1.4.0"
+      }
+    },
+    "node_modules/expand-template": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+      "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
+      "license": "(MIT OR WTFPL)",
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/fs-constants": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+      "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+      "license": "MIT"
+    },
+    "node_modules/github-from-package": {
+      "version": "0.0.0",
+      "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+      "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
+      "license": "MIT"
+    },
+    "node_modules/https": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz",
+      "integrity": "sha512-4EC57ddXrkaF0x83Oj8sM6SLQHAWXw90Skqu2M4AEWENZ3F02dFJE/GARA8igO79tcgYqGrD7ae4f5L3um2lgg==",
+      "license": "ISC"
+    },
+    "node_modules/ieee754": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+      "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "license": "BSD-3-Clause"
+    },
+    "node_modules/image-size": {
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz",
+      "integrity": "sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw==",
+      "license": "MIT",
+      "dependencies": {
+        "queue": "6.0.2"
+      },
+      "bin": {
+        "image-size": "bin/image-size.js"
+      },
+      "engines": {
+        "node": ">=16.x"
+      }
+    },
+    "node_modules/immediate": {
+      "version": "3.0.6",
+      "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
+      "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==",
+      "license": "MIT"
+    },
+    "node_modules/inherits": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+      "license": "ISC"
+    },
+    "node_modules/ini": {
+      "version": "1.3.8",
+      "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+      "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+      "license": "ISC"
+    },
+    "node_modules/isarray": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+      "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+      "license": "MIT"
+    },
+    "node_modules/jszip": {
+      "version": "3.10.1",
+      "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz",
+      "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
+      "license": "(MIT OR GPL-3.0-or-later)",
+      "dependencies": {
+        "lie": "~3.3.0",
+        "pako": "~1.0.2",
+        "readable-stream": "~2.3.6",
+        "setimmediate": "^1.0.5"
+      }
+    },
+    "node_modules/jszip/node_modules/readable-stream": {
+      "version": "2.3.8",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+      "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+      "license": "MIT",
+      "dependencies": {
+        "core-util-is": "~1.0.0",
+        "inherits": "~2.0.3",
+        "isarray": "~1.0.0",
+        "process-nextick-args": "~2.0.0",
+        "safe-buffer": "~5.1.1",
+        "string_decoder": "~1.1.1",
+        "util-deprecate": "~1.0.1"
+      }
+    },
+    "node_modules/jszip/node_modules/safe-buffer": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+      "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+      "license": "MIT"
+    },
+    "node_modules/jszip/node_modules/string_decoder": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+      "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+      "license": "MIT",
+      "dependencies": {
+        "safe-buffer": "~5.1.0"
+      }
+    },
+    "node_modules/lie": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz",
+      "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
+      "license": "MIT",
+      "dependencies": {
+        "immediate": "~3.0.5"
+      }
+    },
+    "node_modules/mimic-response": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+      "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/minimist": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+      "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+      "license": "MIT",
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/mkdirp-classic": {
+      "version": "0.5.3",
+      "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+      "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
+      "license": "MIT"
+    },
+    "node_modules/napi-build-utils": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz",
+      "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==",
+      "license": "MIT"
+    },
+    "node_modules/node-abi": {
+      "version": "3.87.0",
+      "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.87.0.tgz",
+      "integrity": "sha512-+CGM1L1CgmtheLcBuleyYOn7NWPVu0s0EJH2C4puxgEZb9h8QpR9G2dBfZJOAUhi7VQxuBPMd0hiISWcTyiYyQ==",
+      "license": "MIT",
+      "dependencies": {
+        "semver": "^7.3.5"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/node-addon-api": {
+      "version": "7.1.1",
+      "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
+      "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
+      "license": "MIT"
+    },
+    "node_modules/once": {
+      "version": "1.4.0",
+      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+      "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+      "license": "ISC",
+      "dependencies": {
+        "wrappy": "1"
+      }
+    },
+    "node_modules/pako": {
+      "version": "1.0.11",
+      "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+      "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
+      "license": "(MIT AND Zlib)"
+    },
+    "node_modules/pdf-lib": {
+      "version": "1.17.1",
+      "resolved": "https://registry.npmjs.org/pdf-lib/-/pdf-lib-1.17.1.tgz",
+      "integrity": "sha512-V/mpyJAoTsN4cnP31vc0wfNA1+p20evqqnap0KLoRUN0Yk/p3wN52DOEsL4oBFcLdb76hlpKPtzJIgo67j/XLw==",
+      "license": "MIT",
+      "dependencies": {
+        "@pdf-lib/standard-fonts": "^1.0.0",
+        "@pdf-lib/upng": "^1.0.1",
+        "pako": "^1.0.11",
+        "tslib": "^1.11.1"
+      }
+    },
+    "node_modules/pdfjs-dist": {
+      "version": "5.4.530",
+      "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-5.4.530.tgz",
+      "integrity": "sha512-r1hWsSIGGmyYUAHR26zSXkxYWLXLMd6AwqcaFYG9YUZ0GBf5GvcjJSeo512tabM4GYFhxhl5pMCmPr7Q72Rq2Q==",
+      "license": "Apache-2.0",
+      "engines": {
+        "node": ">=20.16.0 || >=22.3.0"
+      },
+      "optionalDependencies": {
+        "@napi-rs/canvas": "^0.1.84"
+      }
+    },
+    "node_modules/pptxgenjs": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/pptxgenjs/-/pptxgenjs-4.0.1.tgz",
+      "integrity": "sha512-TeJISr8wouAuXw4C1F/mC33xbZs/FuEG6nH9FG1Zj+nuPcGMP5YRHl6X+j3HSUnS1f3at6k75ZZXPMZlA5Lj9A==",
+      "license": "MIT",
+      "dependencies": {
+        "@types/node": "^22.8.1",
+        "https": "^1.0.0",
+        "image-size": "^1.2.1",
+        "jszip": "^3.10.1"
+      }
+    },
+    "node_modules/prebuild-install": {
+      "version": "7.1.3",
+      "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz",
+      "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==",
+      "license": "MIT",
+      "dependencies": {
+        "detect-libc": "^2.0.0",
+        "expand-template": "^2.0.3",
+        "github-from-package": "0.0.0",
+        "minimist": "^1.2.3",
+        "mkdirp-classic": "^0.5.3",
+        "napi-build-utils": "^2.0.0",
+        "node-abi": "^3.3.0",
+        "pump": "^3.0.0",
+        "rc": "^1.2.7",
+        "simple-get": "^4.0.0",
+        "tar-fs": "^2.0.0",
+        "tunnel-agent": "^0.6.0"
+      },
+      "bin": {
+        "prebuild-install": "bin.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/process-nextick-args": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+      "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+      "license": "MIT"
+    },
+    "node_modules/pump": {
+      "version": "3.0.3",
+      "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz",
+      "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==",
+      "license": "MIT",
+      "dependencies": {
+        "end-of-stream": "^1.1.0",
+        "once": "^1.3.1"
+      }
+    },
+    "node_modules/queue": {
+      "version": "6.0.2",
+      "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz",
+      "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==",
+      "license": "MIT",
+      "dependencies": {
+        "inherits": "~2.0.3"
+      }
+    },
+    "node_modules/rc": {
+      "version": "1.2.8",
+      "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+      "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+      "license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
+      "dependencies": {
+        "deep-extend": "^0.6.0",
+        "ini": "~1.3.0",
+        "minimist": "^1.2.0",
+        "strip-json-comments": "~2.0.1"
+      },
+      "bin": {
+        "rc": "cli.js"
+      }
+    },
+    "node_modules/readable-stream": {
+      "version": "3.6.2",
+      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+      "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+      "license": "MIT",
+      "dependencies": {
+        "inherits": "^2.0.3",
+        "string_decoder": "^1.1.1",
+        "util-deprecate": "^1.0.1"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
+    "node_modules/safe-buffer": {
+      "version": "5.2.1",
+      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "license": "MIT"
+    },
+    "node_modules/semver": {
+      "version": "7.7.3",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+      "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+      "license": "ISC",
+      "bin": {
+        "semver": "bin/semver.js"
+      },
+      "engines": {
+        "node": ">=10"
+      }
+    },
+    "node_modules/setimmediate": {
+      "version": "1.0.5",
+      "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+      "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
+      "license": "MIT"
+    },
+    "node_modules/simple-concat": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+      "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "license": "MIT"
+    },
+    "node_modules/simple-get": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
+      "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
+      "funding": [
+        {
+          "type": "github",
+          "url": "https://github.com/sponsors/feross"
+        },
+        {
+          "type": "patreon",
+          "url": "https://www.patreon.com/feross"
+        },
+        {
+          "type": "consulting",
+          "url": "https://feross.org/support"
+        }
+      ],
+      "license": "MIT",
+      "dependencies": {
+        "decompress-response": "^6.0.0",
+        "once": "^1.3.1",
+        "simple-concat": "^1.0.0"
+      }
+    },
+    "node_modules/string_decoder": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+      "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+      "license": "MIT",
+      "dependencies": {
+        "safe-buffer": "~5.2.0"
+      }
+    },
+    "node_modules/strip-json-comments": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+      "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/tar-fs": {
+      "version": "2.1.4",
+      "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz",
+      "integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==",
+      "license": "MIT",
+      "dependencies": {
+        "chownr": "^1.1.1",
+        "mkdirp-classic": "^0.5.2",
+        "pump": "^3.0.0",
+        "tar-stream": "^2.1.4"
+      }
+    },
+    "node_modules/tar-stream": {
+      "version": "2.2.0",
+      "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+      "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+      "license": "MIT",
+      "dependencies": {
+        "bl": "^4.0.3",
+        "end-of-stream": "^1.4.1",
+        "fs-constants": "^1.0.0",
+        "inherits": "^2.0.3",
+        "readable-stream": "^3.1.1"
+      },
+      "engines": {
+        "node": ">=6"
+      }
+    },
+    "node_modules/tslib": {
+      "version": "1.14.1",
+      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+      "license": "0BSD"
+    },
+    "node_modules/tunnel-agent": {
+      "version": "0.6.0",
+      "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+      "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+      "license": "Apache-2.0",
+      "dependencies": {
+        "safe-buffer": "^5.0.1"
+      },
+      "engines": {
+        "node": "*"
+      }
+    },
+    "node_modules/undici-types": {
+      "version": "6.21.0",
+      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+      "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
+      "license": "MIT"
+    },
+    "node_modules/util-deprecate": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+      "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+      "license": "MIT"
+    },
+    "node_modules/wrappy": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+      "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+      "license": "ISC"
+    }
+  }
+}

+ 8 - 0
skills/research-skills/paper-slide-deck/scripts/package.json

@@ -0,0 +1,8 @@
+{
+  "dependencies": {
+    "canvas": "^3.2.1",
+    "pdf-lib": "^1.17.1",
+    "pdfjs-dist": "^5.4.530",
+    "pptxgenjs": "^4.0.1"
+  }
+}

+ 219 - 0
skills/research-skills/references/DOMAINS.md

@@ -0,0 +1,219 @@
+# AI/ML 研究领域方法分类知识
+
+综述选题时参考此文件设计分类框架。
+
+---
+
+## 1. Computer Vision (cs.CV)
+
+### Image Classification
+- CNN 系列: ResNet, EfficientNet, ConvNeXt
+- Vision Transformer: ViT, DeiT, Swin Transformer
+- MLP 系列: MLP-Mixer, gMLP
+- 高效架构: MobileNet, ShuffleNet, EfficientFormer
+
+### Object Detection
+- Anchor-based: Faster R-CNN, RetinaNet, YOLO 系列
+- Anchor-free: CenterNet, FCOS, CornerNet
+- Transformer-based: DETR, Deformable DETR, DINO
+- 开放集检测: OWL-ViT, Grounding DINO
+
+### Image Segmentation
+- 语义分割: FCN, DeepLab, SegFormer
+- 实例分割: Mask R-CNN, SOLOv2, Mask2Former
+- 全景分割: Panoptic FPN, kMaX-DeepLab
+- 通用分割: SAM, Segment Everything Everywhere
+
+### Image Generation
+- GAN 系列: StyleGAN, BigGAN, GigaGAN
+- Diffusion Models: DDPM, LDM/Stable Diffusion, DALL-E
+- Autoregressive: VQGAN, Parti, LlamaGen
+- Flow Matching: Rectified Flow, Stable Diffusion 3
+
+### Video Understanding
+- Action Recognition: SlowFast, TimeSformer, VideoMAE
+- Video Generation: Sora, CogVideo, Gen-3
+- Video-Language: VideoCLIP, VideoLLaVA
+
+---
+
+## 2. Natural Language Processing (cs.CL)
+
+### Language Models
+- Encoder: BERT, RoBERTa, DeBERTa
+- Decoder: GPT 系列, LLaMA, Mistral, Qwen
+- Encoder-Decoder: T5, BART, UL2
+- Mixture of Experts: Mixtral, Switch Transformer
+
+### Reasoning & Agents
+- Chain-of-Thought: CoT, Tree of Thoughts, Graph of Thoughts
+- Tool Use: Toolformer, Gorilla, ToolLLM
+- Agent: ReAct, AutoGPT, Voyager
+- Planning: SayCan, Inner Monologue
+
+### Retrieval-Augmented Generation (RAG)
+- Dense Retrieval: DPR, Contriever, E5
+- RAG 架构: RAG, RETRO, Atlas
+- 长上下文: RoPE 扩展, Ring Attention
+
+### Alignment & Safety
+- RLHF: InstructGPT, PPO, DPO
+- Constitutional AI
+- Red Teaming & Jailbreak Defense
+
+---
+
+## 3. Vision-Language Models (cs.CV + cs.CL)
+
+### Image-Text Pretraining
+- Contrastive: CLIP, ALIGN, SigLIP
+- Generative: Flamingo, BLIP-2, LLaVA
+- Unified: CoCa, PaLI, Qwen-VL
+
+### Visual Question Answering
+- VQA 模型: mPLUG, InstructBLIP
+- Chart/Doc Understanding: Pix2Struct, DocPedia
+
+### Image Captioning & Generation
+- Caption: CoCa, GIT, BLIP-2
+- Text-to-Image: DALL-E, Stable Diffusion, Midjourney
+
+---
+
+## 4. Graph Neural Networks (cs.LG)
+
+### 基础架构
+- Message Passing: GCN, GAT, GraphSAGE
+- Spectral: ChebNet, GNN-FiLM
+- Expressivity: GIN, k-WL GNN
+
+### 应用领域
+- 分子性质预测: SchNet, DimeNet, GemNet
+- 推荐系统: LightGCN, PinSage
+- 知识图谱: R-GCN, CompGCN
+
+### 可扩展性
+- 采样: GraphSAGE, ClusterGCN
+- 分布式: DistDGL, P3
+
+---
+
+## 5. Reinforcement Learning (cs.LG + cs.AI)
+
+### 基础方法
+- Value-based: DQN, Rainbow, C51
+- Policy Gradient: PPO, SAC, TD3
+- Model-based: Dreamer, MBPO, TD-MPC
+
+### 离线 RL
+- Conservative: CQL, IQL
+- Decision Transformer 系列
+
+### Multi-Agent RL
+- CTDE: QMIX, MAPPO
+- Communication: CommNet, TarMAC
+
+---
+
+## 6. Generative Models (cs.LG + cs.CV)
+
+### Diffusion Models
+- 基础: DDPM, Score Matching
+- 加速: DDIM, DPM-Solver, Consistency Models
+- 条件生成: Classifier-Free Guidance
+- 架构: U-Net, DiT, U-ViT
+
+### Flow Models
+- Normalizing Flows: RealNVP, Glow
+- Continuous: FFJORD, Flow Matching
+- Rectified Flow
+
+### VAE 系列
+- 基础 VAE, β-VAE
+- VQ-VAE, dVAE
+- Hierarchical VAE
+
+---
+
+## 7. Self-Supervised Learning (cs.LG + cs.CV)
+
+### Contrastive Learning
+- SimCLR, MoCo, BYOL, DINO
+- Barlow Twins, VICReg
+
+### Masked Prediction
+- 视觉: MAE, BEiT, iBOT
+- 语言: MLM (BERT), CLM (GPT)
+- 多模态: MultiMAE
+
+### Foundation Models
+- 视觉: DINOv2, SAM, SegGPT
+- 语言: GPT-4, Claude, Gemini
+- 多模态: GPT-4V, Gemini, LLaVA
+
+---
+
+## 8. Efficient AI (cs.LG + cs.AR)
+
+### 模型压缩
+- 剪枝: Structured/Unstructured Pruning
+- 量化: INT8, INT4, GPTQ, AWQ
+- 蒸馏: Knowledge Distillation
+
+### 高效架构
+- Linear Attention: Linformer, Performer
+- State Space: Mamba, S4, H3
+- Mixture of Experts
+
+### 高效训练
+- LoRA, QLoRA, Adapter
+- Mixed Precision, Gradient Checkpointing
+- Distributed: FSDP, DeepSpeed, Megatron
+
+---
+
+## 9. AI for Science (cs.LG + physics/bio/chem)
+
+### 蛋白质
+- AlphaFold, ESMFold, RFdiffusion
+- Protein Language Models: ESM-2, ProtTrans
+
+### 药物发现
+- 分子生成: MolGPT, REINVENT
+- 对接: DiffDock, EquiBind
+
+### 天气/气候
+- FourCastNet, Pangu-Weather, GenCast
+
+### 数学推理
+- AlphaProof, Lean, Isabelle
+- Mathematical Reasoning in LLMs
+
+---
+
+## 10. Robotics & Embodied AI (cs.RO + cs.AI)
+
+### 操控
+- 模仿学习: ACT, Diffusion Policy
+- 强化学习: SAC, PPO for Manipulation
+
+### 导航
+- Visual Navigation: CLIP-Nav
+- Embodied QA: EQA, MP3D
+
+### Foundation Models for Robotics
+- RT-2, Octo, OpenVLA
+- Language-Conditioned Policies
+
+---
+
+## 通用评估指标
+
+| 领域 | 常用指标 |
+|------|----------|
+| 分类 | Accuracy, Top-5 Acc, F1 |
+| 检测 | AP, AP50, AP75, mAP |
+| 分割 | Dice, IoU, HD95, ASSD |
+| 生成 | FID, IS, CLIP Score |
+| NLP | BLEU, ROUGE, BERTScore |
+| RL | Cumulative Reward, Success Rate |

+ 127 - 0
skills/research-skills/references/QUALITY_CHECKLIST.md

@@ -0,0 +1,127 @@
+# 综述论文质量检查清单
+
+各 Agent 在阶段交接时使用此清单验证输出质量。
+
+---
+
+## Phase 2 门控: 文献收集 (文献侦查员 → 论文分析师)
+
+### 数量
+- [ ] 总文献量达到目标量的 80%+
+- [ ] 每个主要分类 ≥ 5 篇
+- [ ] 新兴分类 ≥ 2 篇(标注"新兴方向")
+
+### 质量
+- [ ] 近 3 年文献占 50%+
+- [ ] 包含领域经典/奠基论文
+- [ ] 包含最新 SOTA 方法
+
+### 多样性
+- [ ] 多源覆盖(Exa + Semantic Scholar + ArXiv)
+- [ ] 涵盖多种方法路线
+- [ ] 包含理论和应用论文
+
+### 组织
+- [ ] Top 20 核心论文已标注并说明理由
+- [ ] 分类与 IMPLEMENTATION_PLAN.md 框架一致
+- [ ] 文献矩阵 YAML frontmatter 统计准确
+- [ ] 检索日志完整
+
+---
+
+## Phase 3 门控: 深度分析 (论文分析师 → 论文撰写员)
+
+### 分析卡片
+- [ ] Top 20 核心论文全部有分析卡片
+- [ ] 每张卡片所有字段填写完整
+- [ ] 一句话总结准确凝练
+- [ ] 方法描述足以理解核心创新
+- [ ] 实验数据已交叉核实
+
+### 对比表
+- [ ] 方法总览对比表覆盖所有主要方法
+- [ ] 性能对比表按数据集组织
+- [ ] 数据来源可追溯(标注出处)
+- [ ] 方法特征对比维度有意义
+
+### 趋势分析
+- [ ] 技术演进趋势有数据支撑
+- [ ] 研究空白已标注
+- [ ] 与综述创新点关联
+
+---
+
+## Phase 4 门控: 章节撰写 (论文撰写员 → 质量编辑员)
+
+### 结构
+- [ ] 大纲中的所有章节均已撰写
+- [ ] Key Points 部分存在(3-5 条)
+- [ ] Abstract 存在且 150-250 词
+- [ ] Introduction 包含贡献列表
+- [ ] 每个方法类别有对比表
+
+### 内容
+- [ ] 所有主要方法分类已覆盖
+- [ ] 每类有: 概述 → 方法描述 → 对比 → 小结
+- [ ] 局限性和未来方向具体
+- [ ] 引用覆盖文献矩阵中的核心论文
+
+### 语言
+- [ ] 使用 hedging language
+- [ ] 无绝对化表述
+- [ ] 每个论断有引用
+- [ ] 段落结构规范
+
+### 形式
+- [ ] 引用编号连续
+- [ ] 表格编号连续
+- [ ] 参考文献 60-120 篇
+- [ ] 缩写首次定义
+
+---
+
+## Phase 5 门控: 审校打磨 (质量编辑员 → 研究主管)
+
+### 审校报告
+- [ ] 所有 5 个检查维度均已覆盖
+- [ ] 每个问题有具体位置和修改建议
+- [ ] 严重度分级合理
+- [ ] 统计摘要准确
+
+### 修正
+- [ ] 低风险问题已自动修正
+- [ ] 需判断的问题已标注(不擅自修改)
+- [ ] 修正前后对照可查
+
+---
+
+## Phase 6 门控: 终审定稿 (研究主管)
+
+### 整体质量
+- [ ] 全文连贯,叙事清晰
+- [ ] 创新点和贡献充分体现
+- [ ] 摘要、引言、结论一致
+- [ ] 无遗漏的重要方法或文献
+
+### 审校问题处理
+- [ ] 所有「高严重度」问题已修正
+- [ ] 「中严重度」问题已处理或有理由保留
+- [ ] 审校报告已归档
+
+### 最终检查
+- [ ] 术语全文一致
+- [ ] 参考文献格式统一
+- [ ] 表格/图表编号连续
+- [ ] 60-120 篇参考文献
+- [ ] 无拼写/语法错误
+- [ ] 稿件可直接投稿
+
+---
+
+## 严重度定义
+
+| 等级 | 定义 | 处理 |
+|------|------|------|
+| 高 | 影响学术可信度(数据错误、引用缺失、方法描述错误)| 必须修正 |
+| 中 | 影响阅读体验(术语不一致、过渡生硬、格式问题)| 建议修正 |
+| 低 | 可改进但不影响质量(措辞优化、细节补充)| 可选改进 |

+ 209 - 0
skills/research-skills/references/SOURCES.md

@@ -0,0 +1,209 @@
+# 文献检索工具与策略指南
+
+## 工具总览
+
+| 工具 | 最适合 | 访问方式 | 速率限制 |
+|------|--------|----------|----------|
+| Exa Search | 语义搜索、ArXiv 论文 | exa-search MCP tool | 高 |
+| Semantic Scholar | 引用分析、影响力评估 | REST API | 100次/5分钟 |
+| ArXiv API | 按分类精确检索 | REST API | 无硬限制 |
+| Papers With Code | SOTA 排行、代码可用性 | Exa/WebFetch | N/A |
+
+---
+
+## 1. Exa Search(首选工具)
+
+### 使用方法
+通过 `exa-search` MCP tool 调用。
+
+### 学术论文搜索策略
+
+```javascript
+// 基础学术搜索
+{
+  query: "recent advances in vision-language models 2024",
+  includeDomains: ["arxiv.org"],
+  startPublishedDate: "2024-01-01",
+  numResults: 20,
+  contents: {
+    text: { maxCharacters: 1000 },
+    highlights: true
+  }
+}
+
+// 特定领域搜索
+{
+  query: "diffusion models for protein structure generation",
+  category: "research paper",
+  numResults: 15,
+  contents: {
+    text: true,
+    summary: true
+  }
+}
+
+// 多查询搜索(一次最多 5 个附加查询)
+{
+  query: "transformer architecture improvements efficiency",
+  additionalQueries: [
+    "linear attention mechanisms",
+    "state space models mamba",
+    "mixture of experts scaling"
+  ],
+  includeDomains: ["arxiv.org"],
+  numResults: 10
+}
+```
+
+### 最佳实践
+- 用自然语言描述主题,Exa 擅长语义理解
+- `includeDomains: ["arxiv.org"]` 限定学术来源
+- 使用 `startPublishedDate` 控制时间范围
+- `contents.summary` 可快速获取论文摘要
+- 分多轮搜索,每轮聚焦一个子主题
+
+---
+
+## 2. Semantic Scholar API
+
+### 端点
+
+```
+搜索: GET https://api.semanticscholar.org/graph/v1/paper/search
+  ?query={keywords}
+  &fields=title,authors,year,citationCount,abstract,externalIds,venue
+  &limit=50
+
+论文详情: GET https://api.semanticscholar.org/graph/v1/paper/{paper_id}
+  ?fields=title,authors,year,citationCount,abstract,references,citations
+
+批量查询: POST https://api.semanticscholar.org/graph/v1/paper/batch
+  Body: {"ids": ["ArXiv:2301.00001", ...]}
+  ?fields=title,authors,year,citationCount
+```
+
+### 查询技巧
+
+```bash
+# 按关键词搜索
+curl "https://api.semanticscholar.org/graph/v1/paper/search?query=vision+language+model&fields=title,year,citationCount&limit=20"
+
+# 按 ArXiv ID 查单篇
+curl "https://api.semanticscholar.org/graph/v1/paper/ArXiv:2301.12597?fields=title,authors,abstract,citationCount,references"
+
+# 获取论文的引用列表
+curl "https://api.semanticscholar.org/graph/v1/paper/{id}/citations?fields=title,year,citationCount&limit=50"
+```
+
+### 影响力筛选标准
+| 等级 | 引用数 | 用途 |
+|------|--------|------|
+| 核心论文 | ≥ 50 | 必须精读 |
+| 重要论文 | ≥ 20 | 应该引用 |
+| 新兴论文 | 近1年,≥ 5 | 关注趋势 |
+| 普通论文 | < 5 | 补充覆盖 |
+
+### 速率限制
+- 无 API Key: 100 次/5 分钟
+- 有 API Key: 更高限额
+- 建议每次请求间隔 3 秒
+- Key 通过 Header `x-api-key` 传递
+
+---
+
+## 3. ArXiv API
+
+### 端点
+
+```
+搜索: GET http://export.arxiv.org/api/query
+  ?search_query={query}
+  &start=0
+  &max_results=50
+  &sortBy=submittedDate
+  &sortOrder=descending
+```
+
+### 常用分类号
+
+| 分类 | 代码 | 描述 |
+|------|------|------|
+| Computer Vision | cs.CV | 图像、视频、3D |
+| NLP | cs.CL | 自然语言处理 |
+| Machine Learning | cs.LG | 通用机器学习 |
+| AI | cs.AI | 人工智能 |
+| ML (Stats) | stat.ML | 统计机器学习 |
+| Robotics | cs.RO | 机器人学 |
+
+### 查询语法
+
+```
+# 标题和摘要搜索
+search_query=ti:transformer%20AND%20abs:vision
+
+# 分类限定
+search_query=cat:cs.CV%20AND%20ti:diffusion
+
+# 作者搜索
+search_query=au:vaswani
+
+# 组合查询
+search_query=(ti:attention%20AND%20abs:efficient)%20AND%20cat:cs.LG
+```
+
+### 注意事项
+- 返回 Atom XML 格式,需解析
+- URL 中空格用 `%20` 编码
+- AND/OR 用 `%20AND%20` / `%20OR%20`
+- 建议用 Exa 替代,除非需要特定分类号精确检索
+
+---
+
+## 4. Papers With Code
+
+### 访问方式
+通过 Exa 搜索 paperswithcode.com:
+
+```javascript
+{
+  query: "state of the art object detection benchmark",
+  includeDomains: ["paperswithcode.com"],
+  numResults: 10,
+  contents: { text: true }
+}
+```
+
+### 有用信息
+- SOTA 排行榜:各任务/数据集的最佳方法
+- 代码实现:论文对应的 GitHub 仓库
+- 数据集:基准数据集详情
+- 方法趋势:随时间的方法演进
+
+---
+
+## 综合检索策略
+
+### 对每个综述项目
+
+1. **Exa 广度搜索** (Phase 1)
+   - 每个子主题 2-3 个语义查询
+   - 目标: 初步候选 100-200 篇
+
+2. **Semantic Scholar 深度挖掘** (Phase 2)
+   - 从核心论文出发追踪引用链
+   - 筛选高影响力论文
+   - 目标: 补充 20-30 篇
+
+3. **ArXiv 精确补充** (Phase 3)
+   - 按分类号检索特定子领域
+   - 目标: 填补覆盖度空白
+
+4. **Papers With Code 对标** (Phase 4)
+   - 确认 SOTA 方法是否已覆盖
+   - 补充遗漏的重要基准方法
+
+### 去重流程
+1. ArXiv ID 精确匹配
+2. DOI 匹配
+3. 标题归一化后匹配(转小写、去标点、90% 相似度)
+4. 多源条目合并时保留信息最完整的版本

+ 342 - 0
skills/research-skills/references/TEMPLATES.md

@@ -0,0 +1,342 @@
+# 项目文件模板
+
+## 项目目录结构
+
+```
+{space}/{project-name}/
+├── AGENTS.md                    # 项目级规则
+├── IMPLEMENTATION_PLAN.md       # 分阶段执行计划
+├── literature_matrix.md         # 文献矩阵
+├── paper_analyses/              # 逐篇分析
+│   ├── {arxiv-id-1}.md
+│   └── ...
+├── comparison_tables.md         # 对比表汇总
+├── manuscript_draft.md          # 综述草稿
+├── review_report.md             # 审校报告
+└── manuscript_final.md          # 终稿
+```
+
+---
+
+## AGENTS.md 模板(项目级规则)
+
+```markdown
+# [项目名] — 写作规范
+
+## 术语统一
+
+| 统一用语 | 避免使用 |
+|---------|---------|
+| [term1] | [variant1], [variant2] |
+| [term2] | [variant1], [variant2] |
+
+## 写作风格
+- 学术严谨,使用 hedging language
+  - 推荐: may, suggests, appears to, has shown promising results
+  - 禁止: is the best, proves, definitely, always
+- 每个论断需引用支撑
+- 段落结构: 主题句 → 支撑证据 → 分析 → 过渡
+
+## 方法描述模板
+[Author] et al. [ref] proposed [method], which [innovation].
+The key components include: (1) [comp1]; (2) [comp2].
+Evaluated on [dataset], the method achieves [metric] of [value].
+
+## 引用格式
+- 数据引用: "...achieved 0.89 [23]"
+- 方法引用: "Gu et al. [45] proposed..."
+- 多引用: "Several studies [12, 15, 23]"
+- 对比引用: "While [12] focused on..., [15] addressed..."
+
+## Agent 交接协议
+- 完成阶段后更新 IMPLEMENTATION_PLAN.md 状态
+- 在输出文件末尾 @mention 下一位 Agent
+- 如遇问题 @mention 研究主管
+```
+
+---
+
+## IMPLEMENTATION_PLAN.md 模板
+
+```markdown
+# Implementation Plan: [综述标题]
+
+## 项目概览
+- **选题**: [具体主题]
+- **范围**: [时间范围] | [目标顶会] | [子领域]
+- **目标文献量**: [N] 篇
+- **分类框架**: [简述]
+
+---
+
+## Phase 1: 项目初始化 ✅
+**负责人**: 研究主管
+**状态**: 已完成
+**输出**: 本文件 + AGENTS.md
+
+---
+
+## Phase 2: 文献收集
+**负责人**: [@文献侦查员](mention://agent/177704336830000)
+**状态**: 待启动
+**输入**: 本计划中的检索策略
+**输出**: literature_matrix.md
+
+### 质量门控
+- [ ] 总文献量 ≥ [N] 篇
+- [ ] 每个分类 ≥ 5 篇(新兴 ≥ 2 篇)
+- [ ] 近 3 年占比 ≥ 50%
+- [ ] 多源覆盖
+
+### 检索策略
+
+#### 关键词
+- [keyword1]
+- [keyword2]
+- [keyword3]
+
+#### Exa 语义查询
+1. "[natural language query 1]" (includeDomains: arxiv.org)
+2. "[natural language query 2]"
+3. "[natural language query 3]"
+
+#### ArXiv 分类
+- cs.XX, cs.YY
+
+#### Semantic Scholar
+- 核心查询: "[keywords]"
+- 引用追踪起点: [seed papers]
+
+---
+
+## Phase 3: 深度分析
+**负责人**: [@论文分析师](mention://agent/177704340589000)
+**状态**: 待启动
+**输入**: literature_matrix.md
+**输出**: paper_analyses/ + comparison_tables.md
+
+### 质量门控
+- [ ] Top 20 核心论文精读完成
+- [ ] 每篇分析卡片完整
+- [ ] 对比表覆盖所有主要方法
+
+---
+
+## Phase 4: 章节撰写
+**负责人**: [@论文撰写员](mention://agent/177704343200000)
+**状态**: 待启动
+**输入**: paper_analyses/ + comparison_tables.md + 本文件大纲
+**输出**: manuscript_draft.md
+
+### 质量门控
+- [ ] 所有章节完成
+- [ ] 每个方法类别有对比表
+- [ ] 引用覆盖核心论文
+- [ ] 学术写作规范
+
+---
+
+## Phase 5: 审校打磨
+**负责人**: [@质量编辑员](mention://agent/177704346680000)
+**状态**: 待启动
+**输入**: manuscript_draft.md
+**输出**: review_report.md
+
+### 质量门控
+- [ ] 术语一致性通过
+- [ ] 引用完整性通过
+- [ ] 语言规范性通过
+
+---
+
+## Phase 6: 终审定稿
+**负责人**: [@研究主管](mention://agent/177704332823000)
+**状态**: 待启动
+**输入**: review_report.md + manuscript_draft.md
+**输出**: manuscript_final.md
+
+---
+
+## 论文大纲
+
+### 标题: [Title]: A Comprehensive Survey
+
+1. **Abstract** (150-250 words)
+2. **Introduction**
+   - 1.1 背景与动机
+   - 1.2 现有综述的局限
+   - 1.3 本文贡献
+3. **Background**
+   - 2.1 问题定义
+   - 2.2 基础技术
+   - 2.3 评估指标
+4. **Taxonomy of Methods**
+   - 3.1 [Category 1]
+   - 3.2 [Category 2]
+   - 3.3 [Category 3]
+   - 3.4 [Category 4]
+5. **Experimental Comparison**
+   - 4.1 数据集与基准
+   - 4.2 方法对比 (Table)
+   - 4.3 分析与讨论
+6. **Applications**
+   - 5.1 [Application 1]
+   - 5.2 [Application 2]
+7. **Challenges and Future Directions**
+   - 6.1 当前局限
+   - 6.2 未来方向
+8. **Conclusion**
+9. **References**
+```
+
+---
+
+## literature_matrix.md 模板
+
+```markdown
+---
+stats:
+  total_collected: 0
+  after_screening: 0
+  by_category: {}
+  top20_ready: false
+---
+
+# Literature Matrix: [综述标题]
+
+## 概览
+- 检索日期: YYYY-MM-DD
+- 总收集: N 篇
+- 筛选后: N 篇
+- 来源分布: Exa N% | ArXiv N% | S2 N% | PwC N%
+
+## 分类汇总
+
+| 分类 | 子分类 | 论文数 | 核心论文 |
+|------|--------|--------|----------|
+| [Cat1] | [Sub1] | N | [paper1], [paper2] |
+
+## 详细文献列表
+
+### [Category 1]
+
+| # | 标题 | 作者 | 年份 | 来源 | 引用数 | ArXiv ID | 类别标签 |
+|---|------|------|------|------|--------|----------|----------|
+| 1 | | | | | | | |
+
+## Top 20 核心论文
+
+| 排名 | 标题 | 理由 |
+|------|------|------|
+| 1 | | |
+
+## 覆盖度分析
+
+| 分类 | 目标 | 实际 | 状态 |
+|------|------|------|------|
+| [Cat1] | ≥5 | N | ✅/⚠️ |
+
+## 检索日志
+
+| 工具 | 查询 | 结果数 | 筛选后 |
+|------|------|--------|--------|
+| | | | |
+```
+
+---
+
+## 论文分析卡片模板
+
+```markdown
+# {Paper Title}
+
+## 基本信息
+- **作者**: 
+- **年份**: 
+- **来源**: 
+- **ArXiv ID**: 
+- **引用数**: 
+- **代码**: 
+
+## 一句话总结
+
+## 问题定义
+- **任务**: 
+- **挑战**: 
+- **动机**: 
+
+## 方法
+### 核心思路
+### 关键组件
+### 技术细节
+
+## 实验
+### 数据集
+### 主要结果
+### 消融实验要点
+
+## 优势与局限
+### 优势
+### 局限
+
+## 与综述的关联
+- **所属分类**: 
+- **在综述中的位置**: 
+- **与其他论文的关系**: 
+```
+
+---
+
+## 对比表模板
+
+### 方法总览对比
+```markdown
+| 方法 | 年份 | 类别 | 核心创新 | 数据集 | 主要指标 | 代码 |
+|------|------|------|----------|--------|----------|------|
+```
+
+### 性能对比(按数据集)
+```markdown
+| 方法 | [Metric1] | [Metric2] | 参数量 | 推理速度 |
+|------|-----------|-----------|--------|----------|
+```
+
+### 方法特征对比
+```markdown
+| 方法 | 预训练 | 多模态 | 可解释性 | 计算成本 | 数据需求 |
+|------|--------|--------|----------|----------|----------|
+```
+
+---
+
+## review_report.md 模板
+
+```markdown
+# Review Report: [综述标题]
+
+## 审校概览
+- **审校日期**: YYYY-MM-DD
+- **稿件版本**: v1.0
+- **总体评价**: [优秀/良好/需修订/需大改]
+
+## 统计摘要
+| 检查项 | 状态 | 问题数 |
+|--------|------|--------|
+| 术语一致性 | | |
+| 引用完整性 | | |
+| 结构完整性 | | |
+| 语言规范 | | |
+| 数据准确性 | | |
+
+## 详细问题列表
+### 术语一致性
+### 引用完整性
+### 结构完整性
+### 语言规范
+### 数据准确性
+
+## 修订建议摘要
+### 必须修改 (高)
+### 建议修改 (中)
+### 可选改进 (低)
+```

+ 164 - 0
skills/research-skills/references/WORKFLOW.md

@@ -0,0 +1,164 @@
+# 6-Phase Multi-Agent Survey Workflow
+
+## Overview
+
+```
+Phase 1: 项目初始化 (研究主管)
+  → Phase 2: 文献收集 (文献侦查员)
+    → Phase 3: 深度分析 (论文分析师)
+      → Phase 4: 章节撰写 (论文撰写员)
+        → Phase 5: 审校打磨 (质量编辑员)
+          → Phase 6: 终审定稿 (研究主管)
+```
+
+---
+
+## Phase 1: 项目初始化
+
+**负责人**: 研究主管
+**输入**: 用户选题需求
+**输出**: 项目目录 + IMPLEMENTATION_PLAN.md + AGENTS.md
+
+### 动作
+1. 分析选题,确定综述范围、目标文献量、分类框架
+2. 创建项目目录结构(见 TEMPLATES.md)
+3. 创建 AGENTS.md(术语统一表 + 写作风格 + 引用格式 + 交接协议)
+4. 创建 IMPLEMENTATION_PLAN.md(6 阶段计划 + 检索策略 + 论文大纲)
+5. @mention 文献侦查员,启动 Phase 2
+
+### 质量门控
+- [ ] 选题范围明确
+- [ ] 分类框架合理(MECE)
+- [ ] 检索策略具体可执行
+- [ ] 大纲结构符合顶会标准
+
+---
+
+## Phase 2: 文献收集
+
+**负责人**: 文献侦查员
+**输入**: IMPLEMENTATION_PLAN.md(检索策略 + 分类框架)
+**输出**: literature_matrix.md
+
+### 动作
+1. 按检索策略从多源收集文献(Exa + ArXiv + Semantic Scholar + Papers With Code)
+2. 去重与质量筛选
+3. 按分类框架组织文献
+4. 覆盖度分析,必要时补充检索
+5. 生成 literature_matrix.md
+6. @mention 论文分析师,启动 Phase 3
+
+### 质量门控
+- [ ] 总文献量达标(目标量的 80%+)
+- [ ] 每个分类 ≥ 5 篇(新兴方向 ≥ 2 篇)
+- [ ] 近 3 年文献占 50%+
+- [ ] 多源覆盖
+- [ ] Top 20 核心论文已标注
+
+---
+
+## Phase 3: 深度分析
+
+**负责人**: 论文分析师
+**输入**: literature_matrix.md + IMPLEMENTATION_PLAN.md
+**输出**: paper_analyses/ + comparison_tables.md
+
+### 动作
+1. 精读 Top 20 核心论文,生成分析卡片
+2. 快速扫描其余论文,提取关键信息
+3. 构建跨论文对比表
+4. 分析技术趋势和研究空白
+5. @mention 论文撰写员,启动 Phase 4
+
+### 质量门控
+- [ ] Top 20 核心论文全部精读
+- [ ] 每篇分析卡片完整(方法、实验、优势、局限)
+- [ ] 对比表覆盖所有主要方法
+- [ ] 趋势分析有数据支撑
+
+---
+
+## Phase 4: 章节撰写
+
+**负责人**: 论文撰写员
+**输入**: paper_analyses/ + comparison_tables.md + IMPLEMENTATION_PLAN.md(大纲)
+**输出**: manuscript_draft.md
+
+### 动作
+1. 按大纲逐节撰写
+2. 整合论文分析到叙事结构
+3. 生成对比表和汇总表
+4. 管理引用编号
+5. @mention 质量编辑员,启动 Phase 5
+
+### 质量门控
+- [ ] 所有章节完成
+- [ ] 每个方法类别有对比表
+- [ ] 引用覆盖核心论文
+- [ ] 学术写作规范
+- [ ] 60-120 篇参考文献
+
+---
+
+## Phase 5: 审校打磨
+
+**负责人**: 质量编辑员
+**输入**: manuscript_draft.md + literature_matrix.md + AGENTS.md
+**输出**: review_report.md + 修订后的 manuscript_draft.md
+
+### 动作
+1. 术语一致性检查
+2. 引用完整性检查
+3. 结构完整性检查
+4. 语言规范检查
+5. 数据准确性抽查
+6. 生成审校报告
+7. 自动修正明确的低风险问题
+8. @mention 研究主管,启动 Phase 6
+
+### 质量门控
+- [ ] 术语一致性通过
+- [ ] 引用完整性通过
+- [ ] 无遗漏的大纲章节
+- [ ] 语言规范性通过
+
+---
+
+## Phase 6: 终审定稿
+
+**负责人**: 研究主管
+**输入**: review_report.md + manuscript_draft.md
+**输出**: manuscript_final.md
+
+### 动作
+1. 通读全文,评估整体连贯性
+2. 核查审校报告中所有问题是否已修正
+3. 验证创新点和贡献充分体现
+4. 检查摘要、引言、结论一致性
+5. 确认参考文献格式统一
+6. 生成 manuscript_final.md
+7. 通知用户终稿完成
+
+### 质量门控
+- [ ] 审校报告所有高严重度问题已修正
+- [ ] 全文连贯、叙事清晰
+- [ ] 贡献点充分体现
+- [ ] 参考文献格式统一
+- [ ] 终稿可直接提交
+
+---
+
+## 异常处理
+
+### 阶段不合格
+- 负责 Agent @mention 研究主管说明问题
+- 研究主管决定:打回修订 / 调整要求 / 跳过
+
+### Agent 无响应
+- 研究主管在 IMPLEMENTATION_PLAN.md 中重新 @mention
+- 或手动执行该阶段
+
+### 需求变更
+- 用户随时可通知研究主管
+- 研究主管更新 IMPLEMENTATION_PLAN.md
+- 通知当前阶段 Agent 注意变更

+ 573 - 0
skills/research-skills/research-proposal/SKILL.md

@@ -0,0 +1,573 @@
+---
+name: research-proposal
+description: >
+  Generate academic research proposals for PhD applications.
+  Use when user asks to "write a research proposal", "create PhD proposal",
+  "generate research plan", "撰写研究计划", "写博士申请", "doctoral proposal",
+  or mentions specific research topics for PhD application. Supports STEM,
+  humanities, and social sciences with field-specific adaptations.
+  Follows Nature Reviews-style academic writing conventions.
+  Supports both English and Chinese output based on user preference.
+metadata:
+  author: user
+  version: "1.0.0"
+allowed-tools:
+  - WebSearch
+  - Read
+  - Write
+  - Edit
+  - AskUserQuestion
+  - Task
+  - Glob
+  - Grep
+  - mcp__zotero__zotero_search_items
+  - mcp__zotero__zotero_get_item_metadata
+  - mcp__zotero__zotero_get_item_fulltext
+  - mcp__zotero__zotero_get_annotations
+  - mcp__zotero__zotero_get_notes
+  - mcp__zotero__zotero_search_notes
+  - mcp__zotero__zotero_semantic_search
+  - mcp__zotero__zotero_advanced_search
+---
+
+# Research Proposal Generator
+
+Generate high-quality academic research proposals for PhD applications following Nature Reviews-style academic writing conventions.
+
+## Overview
+
+This skill guides the generation of research proposals through a structured 5-phase workflow:
+
+1. **Requirements Gathering** - Collect research topic, domain, language preferences
+2. **Literature Collection** - Gather relevant literature from multiple sources
+3. **Outline Generation** - Create structured outline for user approval
+4. **Content Writing** - Generate full proposal based on approved outline
+5. **Output & Review** - Deliver Markdown file with quality checklist
+
+**Target Output**: 2,000-4,000 words (default ~3,000 words) for PhD applications.
+
+---
+
+## Phase 1: Requirements Gathering
+
+Use `AskUserQuestion` to collect the following information:
+
+### Required Information
+
+1. **Research Topic/Direction**
+   - What is the core research question or area?
+   - Any specific problems to address?
+
+2. **Academic Domain**
+   - STEM (Science, Technology, Engineering, Mathematics)
+   - Humanities (History, Philosophy, Literature, Languages)
+   - Social Sciences (Sociology, Psychology, Economics, Political Science)
+
+3. **Output Language**
+   - English
+   - 中文 (Chinese)
+
+4. **Target Word Count**
+   - Default: 3,000 words
+   - Range: 2,000-4,000 words (humanities may extend to 10,000)
+
+### Optional Information
+
+5. **Target Institution(s)**
+   - University/research group names
+   - Specific faculty members of interest
+
+6. **Existing Materials**
+   - User's prior research or publications
+   - Relevant literature already collected in Zotero
+
+### Example Questions
+
+```
+Questions to ask the user:
+
+1. "What is your research topic or direction? Please describe the core question or problem you want to investigate."
+
+2. "Which academic domain does your research belong to?"
+   - STEM (Science, Technology, Engineering, Mathematics)
+   - Humanities (History, Philosophy, Literature)
+   - Social Sciences (Sociology, Psychology, Economics)
+
+3. "What language should the proposal be written in?"
+   - English
+   - 中文 (Chinese)
+
+4. "Do you have a target word count? (Default: ~3,000 words)"
+
+5. "Are you applying to specific institutions or working with particular faculty?"
+
+6. "Have you uploaded relevant literature to your Zotero library that I should reference?"
+```
+
+---
+
+## Phase 2: Literature Collection
+
+### Literature Sources Strategy
+
+```
+┌─────────────────────────────────────────────────────────┐
+│                    Literature Sources                    │
+├─────────────────────────────────────────────────────────┤
+│  General Info    →  WebSearch (trends, news, reviews)   │
+│  Open Access     →  arXiv, PubMed (preprints, OA papers)│
+│  Closed Access   →  Zotero MCP (user's uploaded papers) │
+└─────────────────────────────────────────────────────────┘
+```
+
+### Using WebSearch
+
+Search for:
+- Recent review articles and meta-analyses
+- Research trends and emerging topics
+- News about breakthroughs in the field
+- Methodological advances
+
+Example searches:
+```
+"{topic} systematic review 2024 2025"
+"{topic} research trends future directions"
+"{topic} methodology recent advances"
+```
+
+### Using Zotero MCP
+
+**IMPORTANT**: Remind users to upload relevant closed-access literature to Zotero before starting.
+
+#### Search User's Library
+
+```
+# Search by topic keywords
+Use: mcp__zotero__zotero_search_items
+Parameters: query = "{research topic keywords}"
+
+# Advanced search with filters
+Use: mcp__zotero__zotero_advanced_search
+Parameters: conditions based on author, title, year, tags
+
+# Semantic search for related papers
+Use: mcp__zotero__zotero_semantic_search
+Parameters: query = "{research question}"
+```
+
+#### Retrieve Paper Content
+
+```
+# Get full text content
+Use: mcp__zotero__zotero_get_item_fulltext
+Parameters: item_key = "{item key from search}"
+
+# Get user's annotations and highlights
+Use: mcp__zotero__zotero_get_annotations
+Parameters: item_key = "{item key}"
+
+# Get user's notes
+Use: mcp__zotero__zotero_get_notes
+Parameters: item_key = "{item key}"
+```
+
+### Literature Organization
+
+Organize collected literature into categories:
+1. **Background/Context** - Foundational papers establishing the field
+2. **Current State** - Recent advances and state-of-the-art
+3. **Research Gap** - Papers identifying limitations or open questions
+4. **Methodology** - Papers with relevant methods to adopt/adapt
+5. **Related Work** - Adjacent research areas for comparison
+
+---
+
+## Phase 3: Outline Generation
+
+### Proposal Structure by Domain
+
+Read the reference file for domain-specific guidance:
+- `references/STRUCTURE_GUIDE.md` - Detailed section guidelines
+- `references/DOMAIN_TEMPLATES.md` - STEM vs Humanities differences
+
+### Standard Outline Template
+
+```markdown
+# [Research Title]
+
+## Abstract (150-300 words, 5-10%)
+- Research problem summary
+- Research questions/objectives
+- Methodology overview
+- Expected significance
+
+## 1. Introduction (500-800 words, 15-20%)
+### 1.1 Background and Context
+### 1.2 Problem Statement
+### 1.3 Research Questions/Objectives
+### 1.4 Scope and Delimitations
+
+## 2. Literature Review (500-1000 words, 20-25%)
+### 2.1 Theoretical Framework
+### 2.2 Current State of Research
+### 2.3 Research Gap Analysis
+### 2.4 Positioning of This Study
+
+## 3. Methodology (500-800 words, 20-25%)
+### 3.1 Research Design
+### 3.2 Data Collection Methods
+### 3.3 Data Analysis Approach
+### 3.4 Validity and Limitations
+
+## 4. Timeline (200-300 words, 5-10%)
+### 4.1 Research Phases
+### 4.2 Key Milestones
+### 4.3 Gantt Chart (optional)
+
+## 5. Significance and Expected Contributions (200-400 words, 10-15%)
+### 5.1 Theoretical Contributions
+### 5.2 Practical Implications
+### 5.3 Broader Impact
+
+## References (minimum 40 references)
+```
+
+**Note**: Do NOT include Appendix sections. All essential content should be integrated into the main body.
+
+### User Confirmation
+
+**CRITICAL**: Present the outline to the user and wait for confirmation before proceeding to content generation.
+
+```
+Present the generated outline and ask:
+
+"Here is the proposed outline for your research proposal:
+
+[Display outline with section titles and estimated word counts]
+
+Please review and let me know:
+1. Is the overall structure acceptable?
+2. Would you like to add, remove, or modify any sections?
+3. Should any section receive more/less emphasis?
+
+I will proceed with content generation once you approve the outline."
+```
+
+---
+
+## Phase 4: Content Writing
+
+### Writing Style Guidelines
+
+Read and apply: `references/WRITING_STYLE_GUIDE.md`
+
+#### Key Principles
+
+1. **Academic Register**
+   - Formal tone, avoid colloquialisms
+   - Third person preferred, limited first person plural ("we")
+   - Precise terminology
+
+2. **Prose-Based Writing Style** (CRITICAL)
+
+   **AVOID point-by-point enumeration.** Academic proposals should read as flowing, connected prose rather than bulleted lists or numbered items. Use transitional phrases and coherent paragraphs to present ideas.
+
+   | Avoid | Use Instead |
+   |-------|-------------|
+   | Bullet points listing objectives | Integrated paragraph describing objectives with transitions |
+   | Numbered lists of contributions | Narrative prose explaining contributions in context |
+   | Tables for methodology steps | Flowing description of research design |
+
+   **When lists ARE appropriate** (use sparingly):
+   - Research questions/objectives (as a focused set of 2-4 items)
+   - Timeline milestones (where tabular format aids clarity)
+   - Technical specifications that require precise enumeration
+
+   **Example transformation:**
+
+   ❌ Poor (point-by-point):
+   ```
+   The contributions include:
+   - Novel segmentation algorithm
+   - Multi-modal fusion framework
+   - Clinical validation study
+   ```
+
+   ✓ Good (prose-based):
+   ```
+   This research is expected to advance the field through several interconnected
+   contributions. First, the development of a novel segmentation algorithm will
+   enable automated plaque detection with accuracy surpassing current methods.
+   Building on this foundation, a multi-modal fusion framework will integrate
+   complementary imaging data to capture plaque characteristics inaccessible to
+   any single modality. Finally, rigorous clinical validation will establish
+   the prognostic value of these computational biomarkers for predicting
+   cardiovascular events.
+   ```
+
+3. **Hedging Language** (Academic Caution)
+
+   | Avoid | Use Instead |
+   |-------|-------------|
+   | "will prove" | "aims to demonstrate" |
+   | "definitely" | "likely", "potentially" |
+   | "is obvious" | "evidence suggests" |
+   | "proves" | "indicates", "demonstrates" |
+
+3. **Sentence Templates**
+
+   **Introducing Background:**
+   - "Over the past decade, [X] has emerged as a critical area of..."
+   - "Recent advances in [X] have opened new possibilities for..."
+
+   **Identifying Gaps:**
+   - "However, [X] remains poorly understood."
+   - "Despite these advances, significant challenges persist in..."
+   - "A critical gap exists in our understanding of..."
+
+   **Stating Objectives:**
+   - "This research aims to address [X] by..."
+   - "The primary objective of this study is to..."
+   - "This proposal seeks to investigate..."
+
+   **Methodology Justification:**
+   - "Building on previous work, this study proposes to..."
+   - "This approach was selected because..."
+   - "[Method] offers several advantages for studying [X]..."
+
+   **Expected Contributions:**
+   - "This work has the potential to advance..."
+   - "The findings may contribute to..."
+   - "This research could provide insights into..."
+
+4. **Transitions and Connectors**
+   - Addition: Moreover, Furthermore, In addition, Additionally
+   - Contrast: However, Nevertheless, Conversely, On the other hand
+   - Causation: Therefore, Consequently, As a result, Thus
+   - Emphasis: Importantly, Notably, Of particular significance
+   - Sequence: First, Subsequently, Finally, Following this
+
+5. **Paragraph Structure**
+   ```
+   Topic Sentence → Supporting Evidence (with citations) → Synthesis/Implications
+   ```
+   - 4-8 sentences per paragraph
+   - Clear logical progression
+   - Explicit transitions between paragraphs
+
+### Citation Formatting
+
+Based on domain:
+- **STEM**: APA style (Author, Year)
+- **Humanities**: MLA or Chicago style
+- **Social Sciences**: APA or Chicago style
+
+First mention of abbreviations: "coronary CT angiography (CCTA)"
+
+Integrate citations into text: "Recent studies (Smith et al., 2023; Jones, 2024) have demonstrated..."
+
+### Figure Suggestions
+
+**IMPORTANT**: Include suggestions for figures at appropriate locations throughout the proposal. Figures significantly enhance readability and demonstrate the applicant's ability to communicate complex ideas visually.
+
+#### Figure Placement Guidelines
+
+Insert figure suggestions using the following format:
+
+```markdown
+> **[Figure 1 Suggestion]** *Title: Overview of the proposed research framework*
+> Content: A flowchart or schematic diagram illustrating the three-phase research
+> design, showing data flow from imaging modalities through AI processing to
+> clinical outcomes. Include icons for CCTA/IVUS/OCT inputs, deep learning
+> modules, and output predictions.
+> Recommended style: Clean vector graphics with consistent color scheme.
+```
+
+#### Recommended Figure Types by Section
+
+| Section | Suggested Figure Type |
+|---------|----------------------|
+| **Introduction** | Conceptual diagram showing research scope and positioning |
+| **Literature Review** | Timeline of key developments; Taxonomy/classification of existing methods |
+| **Methodology** | Research framework flowchart; Network architecture diagram; Data processing pipeline |
+| **Timeline** | Gantt chart showing research phases and milestones |
+| **Significance** | Impact diagram showing theoretical and practical contributions |
+
+#### Figure Suggestion Principles
+
+1. **Strategic placement**: Suggest 3-5 figures for a 3,000-word proposal
+2. **Self-explanatory**: Each figure should convey key information without requiring extensive caption reading
+3. **Consistent style**: Recommend unified visual language (colors, fonts, icons)
+4. **Professional quality**: Suggest tools (e.g., Adobe Illustrator, draw.io, BioRender for biomedical)
+5. **Accessibility**: Recommend colorblind-friendly palettes and sufficient contrast
+
+### Language-Specific Considerations
+
+#### English Output
+- Follow standard academic English conventions
+- Use British or American English consistently
+- Maintain formal register throughout
+
+#### Chinese Output (中文)
+- 使用规范学术中文
+- 适当使用 hedging 语言:
+  - "本研究旨在探讨..." (not "本研究将证明...")
+  - "研究结果可能表明..." (not "研究结果必定显示...")
+  - "有望推进..." (not "肯定会推进...")
+- 保持正式学术语体
+- 参考文献格式遵循 GB/T 7714
+
+---
+
+## Phase 5: Output and Review
+
+### File Generation
+
+Generate the proposal as a Markdown file:
+
+```
+proposal_{topic_slug}_{YYYY-MM-DD}.md
+```
+
+Save to user's working directory or specified location.
+
+### Quality Checklist
+
+Read and apply: `references/QUALITY_CHECKLIST.md`
+
+Verify:
+
+#### Structure
+- [ ] All required sections present
+- [ ] Word counts within specified ranges
+- [ ] Logical flow between sections
+- [ ] Clear section headings
+
+#### Content
+- [ ] Research questions clearly stated
+- [ ] Literature review identifies specific gap
+- [ ] Methodology appropriate for research questions
+- [ ] Timeline realistic and detailed
+- [ ] Significance clearly articulated
+
+#### Academic Style
+- [ ] Formal academic tone throughout
+- [ ] Appropriate hedging language used
+- [ ] Smooth transitions between sections
+- [ ] No colloquialisms or informal expressions
+- [ ] **Prose-based writing** (minimal bullet points/lists)
+- [ ] Lists used ONLY where truly necessary (e.g., research questions, timeline)
+
+#### Figures
+- [ ] **3-5 figure suggestions** included at appropriate locations
+- [ ] Figure suggestions include title, content description, and style recommendations
+- [ ] Figures distributed across sections (not clustered)
+- [ ] Each figure serves a clear communicative purpose
+
+#### Citations
+- [ ] All claims supported by references
+- [ ] Citation format consistent
+- [ ] **Minimum 40 references** for PhD proposals
+- [ ] Recent literature included (~60% from last 5 years)
+- [ ] Seminal/foundational works cited where appropriate
+- [ ] Balance across different research groups/institutions
+
+#### Technical
+- [ ] No grammatical errors
+- [ ] Abbreviations defined on first use
+- [ ] Consistent terminology
+- [ ] Proper markdown formatting
+
+### Format Conversion Guidance
+
+Provide user with conversion instructions:
+
+```bash
+# Convert to Word document
+pandoc proposal.md -o proposal.docx
+
+# Convert to PDF (requires LaTeX)
+pandoc proposal.md -o proposal.pdf
+
+# Convert to PDF with custom styling
+pandoc proposal.md -o proposal.pdf --template=academic.latex
+```
+
+---
+
+## Reference Files
+
+This skill uses the following reference documents:
+
+| File | Purpose |
+|------|---------|
+| `references/STRUCTURE_GUIDE.md` | Detailed section-by-section writing guide |
+| `references/DOMAIN_TEMPLATES.md` | STEM vs Humanities structural differences |
+| `references/WRITING_STYLE_GUIDE.md` | Nature Reviews academic writing style |
+| `references/QUALITY_CHECKLIST.md` | Complete quality verification checklist |
+| `references/LITERATURE_WORKFLOW.md` | Literature collection workflow details |
+| `assets/proposal_scaffold_en.md` | English template scaffold |
+| `assets/proposal_scaffold_zh.md` | Chinese template scaffold |
+
+---
+
+## Workflow Summary
+
+```
+┌──────────────────────────────────────────────────────────────────┐
+│                    Research Proposal Generation                   │
+├──────────────────────────────────────────────────────────────────┤
+│                                                                  │
+│  Phase 1: Requirements    [Interactive]                          │
+│     │     └─ Topic, Domain, Language, Word Count                 │
+│     ▼                                                            │
+│  Phase 2: Literature      [Automatic]                            │
+│     │     └─ WebSearch + Zotero MCP                              │
+│     ▼                                                            │
+│  Phase 3: Outline         [Interactive - User Approval Required] │
+│     │     └─ Generate outline → User confirms → Proceed          │
+│     ▼                                                            │
+│  Phase 4: Content         [Automatic - One-shot Generation]      │
+│     │     └─ Write all sections based on approved outline        │
+│     ▼                                                            │
+│  Phase 5: Output          [Delivery]                             │
+│           └─ Markdown file + Quality checklist + Conversion tips │
+│                                                                  │
+└──────────────────────────────────────────────────────────────────┘
+```
+
+---
+
+## Error Handling
+
+### No Zotero Literature Found
+If user's Zotero library has no relevant papers:
+1. Inform user of the limitation
+2. Rely more heavily on WebSearch for open-access sources
+3. Suggest user upload relevant papers and retry
+
+### Insufficient Information
+If topic is too vague:
+1. Ask clarifying questions about specific aspects
+2. Suggest narrowing the research scope
+3. Provide examples of well-defined research questions
+
+### Word Count Constraints
+If content exceeds target:
+1. Prioritize essential sections (Introduction, Methodology)
+2. Condense literature review to key points
+3. Offer expanded version as separate file
+
+---
+
+## Notes
+
+- This skill is designed specifically for **PhD applications**
+- Default output is approximately **3,000 words**
+- Always **confirm outline with user** before content generation
+- Follow **Nature Reviews-style** academic writing conventions
+- Support **both English and Chinese** output
+- **Minimum 40 references** required for comprehensive literature coverage
+- **Include figure suggestions** at appropriate locations (3-5 figures recommended)
+- **NO appendices** in the output - keep all content in main body sections
+- **Prefer flowing prose** over bullet points and numbered lists

+ 323 - 0
skills/research-skills/research-proposal/assets/proposal_scaffold_en.md

@@ -0,0 +1,323 @@
+# [Research Title: Include Key Concepts, Research Object, and Approach]
+
+**Degree Program:** Doctor of Philosophy (PhD)
+**Field/Department:** [Your Field]
+**Target Institution:** [University/Institution Name]
+**Date:** [Month Year]
+**Word Count:** [Approximately 3,000 words]
+
+---
+
+## Abstract
+
+[Write 150-300 words summarizing the entire proposal. Include:]
+
+[Background: 1-2 sentences establishing the field and its importance]
+
+[Problem: 1-2 sentences identifying the specific gap or issue]
+
+[Objectives: 1-2 sentences stating what this research aims to achieve]
+
+[Methodology: 2-3 sentences briefly describing the research approach]
+
+[Significance: 1-2 sentences on expected contributions and impact]
+
+**Keywords:** [keyword 1], [keyword 2], [keyword 3], [keyword 4], [keyword 5]
+
+---
+
+## 1. Introduction
+
+### 1.1 Background and Context
+
+[150-250 words]
+
+[Opening sentence: Establish the broader field and its importance]
+
+[Paragraph developing the context: Recent developments, trends, and why this area matters]
+
+[Key statistics or facts that demonstrate significance]
+
+[Narrow focus toward your specific topic area]
+
+### 1.2 Problem Statement
+
+[150-200 words]
+
+[Identify the specific problem or gap in current knowledge/practice]
+
+[Explain why this problem matters and what consequences it has]
+
+[Describe limitations of current approaches to addressing this problem]
+
+[Establish urgency or timeliness of addressing this gap]
+
+### 1.3 Research Questions and Objectives
+
+[100-150 words]
+
+The primary research question guiding this study is:
+
+**RQ:** [State your overarching research question clearly]
+
+To address this question, the following specific objectives have been formulated:
+
+1. **Objective 1:** To [verb] [specific goal]
+2. **Objective 2:** To [verb] [specific goal]
+3. **Objective 3:** To [verb] [specific goal]
+
+[Optional: For STEM, include hypotheses]
+
+### 1.4 Scope and Delimitations
+
+[100-150 words]
+
+[Define the boundaries of your research]
+
+[Explain what aspects are NOT included and why]
+
+[Acknowledge any limitations in scope upfront]
+
+> **[Figure 1 Suggestion]** *Title: Conceptual overview of research scope*
+>
+> Content: A diagram illustrating the research focus area within the broader field,
+> showing what is included and excluded from the study scope. Use nested shapes
+> or a Venn diagram to visually communicate boundaries.
+>
+> Recommended style: Clean, simple vector graphics with clear labels.
+
+---
+
+## 2. Literature Review
+
+### 2.1 Theoretical Framework
+
+[150-250 words]
+
+[Introduce the key theories that underpin your research]
+
+[Explain how these theories relate to your research questions]
+
+[Identify which aspects of existing theories you will use or extend]
+
+[If developing a new framework, explain its conceptual basis]
+
+### 2.2 Current State of Research
+
+[200-400 words]
+
+[Summarize major findings and advances in the field]
+
+[Organize thematically, chronologically, or methodologically]
+
+[Identify key researchers and seminal works]
+
+[Trace the evolution of understanding in this area]
+
+[Example paragraph structure:]
+> [Topic sentence introducing a theme]. [Supporting evidence with citation (Author, Year)]. [Additional evidence (Author, Year; Author, Year)]. [Synthesis of what these findings mean]. [Transition to next theme or gap identification].
+
+### 2.3 Research Gap Analysis
+
+[100-200 words]
+
+[Synthesize limitations identified across the literature]
+
+Despite significant progress in [area], several critical gaps remain:
+
+1. **Gap 1:** [Specific knowledge/methodological/population gap]
+2. **Gap 2:** [Another specific gap]
+3. **Gap 3:** [Another specific gap, if applicable]
+
+[Explain why these gaps matter and warrant investigation]
+
+### 2.4 Positioning of This Study
+
+[100-150 words]
+
+[Explain how your research addresses the identified gaps]
+
+[Articulate what makes your approach novel or distinctive]
+
+[Connect your study to the theoretical framework established earlier]
+
+[Clarify your contribution to the existing body of knowledge]
+
+---
+
+## 3. Methodology
+
+### 3.1 Research Design
+
+[100-150 words]
+
+[State your overall approach: quantitative, qualitative, or mixed methods]
+
+[Explain the specific research design type]
+
+[Justify why this design is appropriate for your research questions]
+
+This study employs a [quantitative/qualitative/mixed methods] approach, specifically utilizing a [design type] design. This approach is appropriate because [justification linked to research questions].
+
+> **[Figure 2 Suggestion]** *Title: Research framework and methodology overview*
+>
+> Content: A flowchart illustrating the overall research design, showing the
+> relationship between data sources, processing methods, and outputs. Include
+> the main phases of the research with arrows indicating data flow and dependencies.
+>
+> Recommended style: Flowchart with consistent shapes (rectangles for processes,
+> parallelograms for data, diamonds for decisions). Use a coherent color scheme.
+
+### 3.2 Data Collection Methods
+
+[150-250 words]
+
+**Data Sources:**
+[Describe what data you will collect]
+
+**Sampling Strategy:**
+[Explain your sampling approach and sample size]
+
+**Instruments/Tools:**
+[Describe surveys, interview protocols, equipment, datasets, etc.]
+
+**Procedure:**
+[Step-by-step description of data collection process]
+
+**Ethical Considerations:**
+[Address informed consent, confidentiality, ethics approval if applicable]
+
+### 3.3 Data Analysis Approach
+
+[150-250 words]
+
+[Describe your analytical methods]
+
+[For quantitative: statistical tests, software, significance levels]
+
+[For qualitative: coding approach, analysis framework, software]
+
+[Explain how analysis addresses each research question/objective]
+
+| Research Question | Analysis Method |
+|-------------------|-----------------|
+| RQ1 / Objective 1 | [Analysis approach] |
+| RQ2 / Objective 2 | [Analysis approach] |
+| RQ3 / Objective 3 | [Analysis approach] |
+
+### 3.4 Validity, Reliability, and Limitations
+
+[100-150 words]
+
+**Ensuring Quality:**
+[Describe measures to ensure validity/reliability/trustworthiness]
+
+**Anticipated Limitations:**
+[Acknowledge potential limitations of your methodology]
+
+**Mitigation Strategies:**
+[Explain how you will address or minimize these limitations]
+
+---
+
+## 4. Timeline
+
+### 4.1 Research Phases
+
+[Describe each major phase of your research]
+
+| Phase | Duration | Key Activities | Deliverables |
+|-------|----------|----------------|--------------|
+| **Phase 1:** [Name] | Months 1-[X] | [Activities] | [Outputs] |
+| **Phase 2:** [Name] | Months [X]-[Y] | [Activities] | [Outputs] |
+| **Phase 3:** [Name] | Months [Y]-[Z] | [Activities] | [Outputs] |
+| **Phase 4:** [Name] | Months [Z]-[Final] | [Activities] | [Outputs] |
+
+### 4.2 Key Milestones
+
+- **Month [X]:** [Milestone 1]
+- **Month [Y]:** [Milestone 2]
+- **Month [Z]:** [Milestone 3]
+- **Month [Final]:** Thesis submission
+
+### 4.3 Contingency Considerations
+
+[Brief note on flexibility and alternative approaches if challenges arise]
+
+> **[Figure 3 Suggestion]** *Title: Research timeline and milestones*
+>
+> Content: A Gantt chart showing the four research phases across the PhD duration,
+> with overlapping periods for parallel activities. Include diamond markers for
+> key milestones (e.g., proposal defense, data collection completion, thesis submission).
+>
+> Recommended style: Horizontal bar chart with color-coded phases, clear date/month
+> markers along the x-axis, and milestone annotations. Consider using distinct
+> colors for each phase to improve readability.
+
+---
+
+## 5. Significance and Expected Contributions
+
+### 5.1 Theoretical Contributions
+
+[100-150 words]
+
+[Describe the new knowledge this research will generate]
+
+[Explain how findings will advance theory in the field]
+
+[Note any methodological innovations]
+
+This research is expected to contribute to [field] by:
+1. [Theoretical contribution 1]
+2. [Theoretical contribution 2]
+
+### 5.2 Practical Implications
+
+[100-150 words]
+
+[Describe applications to practice, policy, or industry]
+
+[Explain who will benefit from this research]
+
+[Connect to real-world problems or needs]
+
+The findings may have implications for:
+- [Stakeholder/domain 1]: [How they benefit]
+- [Stakeholder/domain 2]: [How they benefit]
+
+### 5.3 Broader Impact
+
+[50-100 words]
+
+[Connect your research to larger societal challenges]
+
+[Discuss interdisciplinary relevance if applicable]
+
+[Articulate your vision for the long-term impact of this work]
+
+---
+
+## References
+
+[Follow appropriate citation style: APA, MLA, or Chicago]
+
+**[Minimum 40 references for PhD proposal]**
+
+[Include mix of foundational works (~40%) and recent publications (last 5 years, ~60%)]
+
+[Ensure balance across different research groups and institutions]
+
+<!-- Example APA format entries: -->
+
+Author, A. A., & Author, B. B. (Year). Title of article. *Journal Name*, *Volume*(Issue), pages. https://doi.org/xxxxx
+
+Author, A. A. (Year). *Title of book*. Publisher.
+
+Author, A. A., Author, B. B., & Author, C. C. (Year). Title of chapter. In E. E. Editor (Ed.), *Title of book* (pp. xx-xx). Publisher.
+
+---
+
+*Total Word Count: [~3,000 words excluding references]*
+
+**Note:** Do NOT include Appendix sections. All essential content should be integrated into the main body of the proposal.

+ 346 - 0
skills/research-skills/research-proposal/assets/proposal_scaffold_zh.md

@@ -0,0 +1,346 @@
+# [研究题目:包含核心概念、研究对象与研究路径]
+
+**学位类型:** 博士研究生
+**学科/院系:** [所属学科]
+**目标院校:** [大学/研究机构名称]
+**日期:** [年月]
+**字数:** [约3,000字]
+
+---
+
+## 摘要
+
+[撰写150-300字,概述整个研究计划。包含:]
+
+[背景:1-2句确立研究领域及其重要性]
+
+[问题:1-2句指出具体的研究空白或问题]
+
+[目标:1-2句陈述本研究的目标]
+
+[方法:2-3句简要描述研究方法]
+
+[意义:1-2句说明预期贡献和影响]
+
+**关键词:** [关键词1];[关键词2];[关键词3];[关键词4];[关键词5]
+
+---
+
+## 一、引言
+
+### 1.1 研究背景
+
+[150-250字]
+
+[开头句:确立研究领域的重要性]
+
+[展开段落:近年发展趋势,为何该领域值得关注]
+
+[关键数据或事实,证明研究的必要性]
+
+[逐步聚焦到具体研究主题]
+
+### 1.2 问题陈述
+
+[150-200字]
+
+[指出当前知识/实践中的具体问题或空白]
+
+[解释该问题的重要性及其影响]
+
+[描述现有方法的局限性]
+
+[说明研究的紧迫性或时代性]
+
+### 1.3 研究问题与目标
+
+[100-150字]
+
+本研究拟解决的核心问题是:
+
+**核心问题:** [清晰陈述主要研究问题]
+
+为解决上述问题,本研究设定以下具体目标:
+
+1. **目标一:** [动词][具体目标]
+2. **目标二:** [动词][具体目标]
+3. **目标三:** [动词][具体目标]
+
+[可选:对于理工科研究,可补充研究假设]
+
+### 1.4 研究范围与边界
+
+[100-150字]
+
+[界定研究边界]
+
+[说明哪些方面不在研究范围内及原因]
+
+[预先承认研究范围的局限性]
+
+> **[图1建议]** *标题:研究范围概念图*
+>
+> 内容:展示本研究在整个领域中的定位,明确研究边界和排除范围。
+> 可采用嵌套图形或韦恩图形式直观呈现研究聚焦点。
+>
+> 建议风格:简洁的矢量图形,清晰的标注说明。
+
+---
+
+## 二、文献综述
+
+### 2.1 理论框架
+
+[150-250字]
+
+[介绍支撑本研究的核心理论]
+
+[阐明这些理论与研究问题的关联]
+
+[说明将使用或扩展现有理论的哪些方面]
+
+[如构建新框架,解释其概念基础]
+
+### 2.2 研究现状
+
+[200-400字]
+
+[总结该领域的主要发现和进展]
+
+[按主题、时间或方法进行组织]
+
+[指出关键学者和里程碑式成果]
+
+[追溯该领域认识的演变过程]
+
+[段落结构示例:]
+> [主题句引出一个主题]。[支撑证据及引用(作者,年份)]。[更多证据(作者,年份;作者,年份)]。[综合阐述这些发现的意义]。[过渡到下一主题或指出研究空白]。
+
+### 2.3 研究空白分析
+
+[100-200字]
+
+[综合文献中发现的局限性]
+
+尽管[领域]已取得显著进展,但仍存在以下关键空白:
+
+1. **空白一:** [具体的知识/方法/研究对象空白]
+2. **空白二:** [另一具体空白]
+3. **空白三:** [如有,另一具体空白]
+
+[解释这些空白为何值得研究]
+
+### 2.4 本研究的定位
+
+[100-150字]
+
+[说明本研究如何填补上述空白]
+
+[阐明本研究的创新之处]
+
+[将研究与前文的理论框架相连接]
+
+[明确本研究对现有知识体系的贡献]
+
+---
+
+## 三、研究方法
+
+### 3.1 研究设计
+
+[100-150字]
+
+[陈述总体研究路径:定量、定性或混合方法]
+
+[说明具体的研究设计类型]
+
+[论证该设计为何适合本研究问题]
+
+本研究采用[定量/定性/混合]方法,具体运用[设计类型]设计。选择该方法的原因在于[与研究问题相关的论证]。
+
+> **[图2建议]** *标题:研究框架与方法论概览*
+>
+> 内容:流程图形式展示整体研究设计,包括数据来源、处理方法和输出结果
+> 之间的关系。标明研究的主要阶段,用箭头表示数据流向和各阶段依赖关系。
+>
+> 建议风格:采用统一的图形符号(矩形表示处理过程,平行四边形表示数据,
+> 菱形表示决策点),使用协调的配色方案。
+
+### 3.2 数据收集方法
+
+[150-250字]
+
+**数据来源:**
+[描述将收集的数据]
+
+**抽样策略:**
+[说明抽样方法和样本规模]
+
+**研究工具:**
+[描述问卷、访谈提纲、设备、数据集等]
+
+**研究程序:**
+[分步描述数据收集流程]
+
+**伦理考量:**
+[说明知情同意、保密措施、伦理审批(如适用)]
+
+### 3.3 数据分析方法
+
+[150-250字]
+
+[描述分析方法]
+
+[定量研究:统计检验、软件、显著性水平]
+
+[定性研究:编码方法、分析框架、软件]
+
+[说明分析如何回应各研究问题/目标]
+
+| 研究问题 | 分析方法 |
+|----------|----------|
+| 问题1/目标一 | [分析方法] |
+| 问题2/目标二 | [分析方法] |
+| 问题3/目标三 | [分析方法] |
+
+### 3.4 效度、信度与局限性
+
+[100-150字]
+
+**质量保障措施:**
+[描述确保效度/信度/可信性的措施]
+
+**预期局限性:**
+[承认方法论的潜在局限]
+
+**应对策略:**
+[说明如何解决或减轻这些局限]
+
+---
+
+## 四、研究进度安排
+
+### 4.1 研究阶段
+
+[描述研究的主要阶段]
+
+| 阶段 | 时间 | 主要工作 | 预期成果 |
+|------|------|----------|----------|
+| **第一阶段:** [名称] | 第1-[X]月 | [工作内容] | [产出] |
+| **第二阶段:** [名称] | 第[X]-[Y]月 | [工作内容] | [产出] |
+| **第三阶段:** [名称] | 第[Y]-[Z]月 | [工作内容] | [产出] |
+| **第四阶段:** [名称] | 第[Z]-[末]月 | [工作内容] | [产出] |
+
+### 4.2 关键节点
+
+- **第[X]月:** [里程碑1]
+- **第[Y]月:** [里程碑2]
+- **第[Z]月:** [里程碑3]
+- **第[末]月:** 提交学位论文
+
+### 4.3 应急预案
+
+[简要说明如遇困难时的灵活安排和替代方案]
+
+> **[图3建议]** *标题:研究进度甘特图*
+>
+> 内容:展示四个研究阶段在博士学习期间的时间安排,包括并行开展的活动。
+> 用菱形标记关键里程碑(如开题答辩、数据收集完成、论文提交等)。
+>
+> 建议风格:横向条形图,X轴标注月份/年份,各阶段用不同颜色区分,
+> 清晰标注里程碑节点。
+
+---
+
+## 五、研究意义与预期贡献
+
+### 5.1 理论贡献
+
+[100-150字]
+
+[描述本研究将产生的新知识]
+
+[说明研究发现将如何推进该领域的理论发展]
+
+[如有方法论创新,予以说明]
+
+本研究预期将在以下方面为[学科]做出贡献:
+1. [理论贡献一]
+2. [理论贡献二]
+
+### 5.2 实践意义
+
+[100-150字]
+
+[描述对实践、政策或产业的应用价值]
+
+[说明哪些群体将从本研究中受益]
+
+[与现实问题或需求相联系]
+
+研究结果可能对以下领域产生启示:
+- [利益相关者/领域1]:[受益方式]
+- [利益相关者/领域2]:[受益方式]
+
+### 5.3 社会影响
+
+[50-100字]
+
+[将研究与更宏观的社会挑战相联系]
+
+[如适用,讨论跨学科意义]
+
+[阐述对本研究长期影响的愿景]
+
+---
+
+## 参考文献
+
+[遵循相应的引用格式:GB/T 7714、APA或其他]
+
+**[博士研究计划至少包含40篇参考文献]**
+
+[兼顾经典文献(约40%)和近五年新成果(约60%)]
+
+[确保引用来源的多样性,避免过度依赖单一研究团队]
+
+<!-- GB/T 7714格式示例: -->
+
+[1] 作者. 题名[J]. 刊名, 年, 卷(期): 起止页码.
+
+[2] 作者. 书名[M]. 出版地: 出版者, 出版年.
+
+[3] 作者. 题名[C]//编者. 文集名. 出版地: 出版者, 出版年: 起止页码.
+
+[4] 作者. 题名[D]. 保存地: 保存单位, 年份.
+
+---
+
+*总字数:[约3,000字,不含参考文献]*
+
+**注意:** 研究计划正文中不应包含附录部分。所有核心内容应整合在正文各章节中。
+
+---
+
+## 学术中文写作要点
+
+### 常用学术表达
+
+| 功能 | 推荐表达 |
+|------|----------|
+| 引出背景 | 近年来...日益受到关注;随着...的发展 |
+| 指出问题 | 然而,...仍存在以下问题;尽管如此,...仍面临挑战 |
+| 陈述目标 | 本研究旨在...;本文拟探讨... |
+| 方法说明 | 采用...方法,对...进行分析 |
+| 谦逊表达 | 可能表明;有望揭示;在一定程度上 |
+| 预期贡献 | 研究结果将有助于...;有望为...提供参考 |
+
+### 避免的表达
+
+| 避免 | 改为 |
+|------|------|
+| 肯定会证明 | 有望表明、可能揭示 |
+| 彻底解决 | 有助于解决、为...提供新思路 |
+| 完全正确 | 基本合理、大体上 |
+| 我认为 | 本研究认为、研究表明 |
+| 口语化表达 | 规范书面语 |

+ 518 - 0
skills/research-skills/research-proposal/references/DOMAIN_TEMPLATES.md

@@ -0,0 +1,518 @@
+# Domain-Specific Templates
+
+Guidance for adapting research proposals to different academic domains.
+
+---
+
+## Overview: Domain Differences
+
+| Dimension | STEM | Humanities | Social Sciences |
+|-----------|------|------------|-----------------|
+| **Length** | Shorter (2,000-3,000) | Longer (3,000-10,000) | Medium (2,500-4,000) |
+| **Focus** | Methodology, experiments | Theory, interpretation | Methods + theory |
+| **Hypothesis** | Explicit, testable | Research questions | Both used |
+| **Literature** | Recent (5 years) | Broader historical | Mix |
+| **Citations** | APA | MLA/Chicago | APA/Chicago |
+| **Voice** | Passive preferred | Active acceptable | Mixed |
+
+---
+
+## STEM Domain (Science, Technology, Engineering, Mathematics)
+
+### Structural Emphasis
+
+```
+STEM Proposal Structure (~2,500 words)
+
+Abstract                    150-200 words   (6%)
+Introduction               400-500 words   (18%)
+  - Background/Motivation  150 words
+  - Problem Statement      150 words
+  - Objectives/Hypotheses  100 words
+Literature Review          400-500 words   (18%)
+  - State of the Art       300 words
+  - Research Gap           200 words
+Methodology                600-800 words   (28%)    ← HEAVY EMPHASIS
+  - Research Design        150 words
+  - Materials/Equipment    150 words
+  - Experimental Protocol  200 words
+  - Data Analysis          200 words
+  - Validation             100 words
+Timeline                   200 words       (8%)
+Expected Outcomes          300 words       (12%)
+  - Scientific Contribution 150 words
+  - Publications Plan       100 words
+  - Potential Applications  50 words
+References                 30-50 citations
+```
+
+### Key Characteristics
+
+**Hypothesis-Driven**
+- State clear, testable hypotheses
+- Define variables (independent, dependent, controlled)
+- Specify expected outcomes
+
+```markdown
+**Hypothesis 1:** [Independent variable] will [effect] [dependent variable]
+when [conditions].
+
+**Hypothesis 2:** The proposed [method] will achieve [metric] performance
+compared to [baseline].
+```
+
+**Technical Precision**
+- Exact specifications for equipment/software
+- Detailed protocols with parameters
+- Quantifiable success metrics
+
+**Preliminary Results**
+- If available, include pilot study data
+- Demonstrate feasibility
+- Show you have necessary skills
+
+### Methodology Section Template (STEM)
+
+```markdown
+## 3. Methodology
+
+### 3.1 Research Design
+
+This research employs a [quantitative/experimental/computational] approach
+to investigate [research questions]. The study comprises [N] phases:
+[Phase 1], [Phase 2], and [Phase 3].
+
+### 3.2 Materials and Equipment
+
+The following resources are required:
+- **Hardware**: [specific equipment, models, specifications]
+- **Software**: [programs, versions, licenses]
+- **Materials**: [reagents, samples, datasets]
+- **Facilities**: [lab access, computing resources]
+
+### 3.3 Experimental Protocol
+
+**Phase 1: [Name]**
+1. [Step 1 with parameters]
+2. [Step 2 with parameters]
+3. [Expected output]
+
+**Phase 2: [Name]**
+[Similar detailed steps]
+
+### 3.4 Data Analysis
+
+Data will be analyzed using [software/method]. Specifically:
+- [Analysis 1]: [technique] to measure [metric]
+- [Analysis 2]: [statistical test] to evaluate [hypothesis]
+
+Statistical significance will be set at p < 0.05.
+
+### 3.5 Validation
+
+To ensure validity:
+- [Validation method 1]
+- [Validation method 2]
+- Comparison with [benchmark/baseline]
+```
+
+### STEM-Specific Language
+
+**Technical verbs:**
+- analyze, characterize, synthesize, optimize
+- validate, calibrate, quantify, measure
+- implement, develop, deploy, integrate
+
+**Precision phrases:**
+- "with a precision of ±X%"
+- "under controlled conditions of [parameters]"
+- "achieving [metric] > [threshold]"
+- "statistically significant at p < 0.05"
+
+---
+
+## Humanities Domain (History, Philosophy, Literature, Languages, Arts)
+
+### Structural Emphasis
+
+```
+Humanities Proposal Structure (~4,000 words)
+
+Abstract                    250-300 words   (7%)
+Introduction               600-800 words   (18%)
+  - Context/Significance   300 words
+  - Central Argument       200 words
+  - Research Questions     200 words
+Literature Review          1000-1500 words (30%)    ← HEAVY EMPHASIS
+  - Theoretical Framework  400 words
+  - Historiography/Field   600 words
+  - Positioning            300 words
+Methodology                400-600 words   (12%)
+  - Sources/Archives       200 words
+  - Analytical Approach    200 words
+  - Interpretive Framework 200 words
+Chapter Outline            400-500 words   (12%)    ← UNIQUE TO HUMANITIES
+Timeline                   200-300 words   (6%)
+Significance               400-500 words   (12%)
+References                 50-100 citations
+```
+
+### Key Characteristics
+
+**Argument-Driven**
+- Central thesis or argument
+- Research questions, not hypotheses
+- Interpretive rather than predictive
+
+```markdown
+**Central Argument:**
+This dissertation argues that [thesis statement]. By examining [sources/texts],
+this research demonstrates how [phenomenon] reveals [insight] about [broader
+significance].
+
+**Research Questions:**
+1. How did [historical actors/texts] [action/represent] [phenomenon]?
+2. What [factors/discourses] shaped [development/interpretation]?
+3. In what ways does [case study] illuminate [broader theoretical issue]?
+```
+
+**Theoretical Sophistication**
+- Engage with major theorists
+- Position within intellectual traditions
+- Critical analysis of theory itself
+
+**Source-Based**
+- Primary sources (archives, texts, artifacts)
+- Language requirements
+- Access and travel considerations
+
+### Literature Review Template (Humanities)
+
+```markdown
+## 2. Literature Review
+
+### 2.1 Theoretical Framework
+
+This research draws on [theoretical tradition] as articulated by [key
+theorists]. [Theorist A]'s concept of [concept] provides a framework for
+understanding [aspect of research]. However, [Theorist B] offers a
+complementary perspective, arguing that [alternative view].
+
+Building on these foundations, this study employs [specific theoretical
+lens] to analyze [research focus]. This approach is particularly suited
+to [justification] because [reasons].
+
+### 2.2 Historiography / State of the Field
+
+Scholarly attention to [topic] has evolved considerably over the past
+[timeframe]. Early studies, such as [Author (Year)], focused primarily
+on [aspect], establishing [finding/interpretation].
+
+The field underwent significant transformation with [Author (Year)]'s
+influential work, which challenged [previous assumption] by demonstrating
+[new insight]. Subsequent scholars have built on this foundation,
+exploring [development 1], [development 2], and [development 3].
+
+More recently, scholars have turned to [new approach/topic]. [Author
+(Year)] examines [specific focus], while [Author (Year)] investigates
+[related area]. These studies reveal [emerging themes/debates].
+
+### 2.3 Research Gap and Positioning
+
+Despite this rich body of scholarship, significant questions remain
+unexplored. First, [gap 1]. Second, [gap 2]. Third, [gap 3].
+
+This dissertation addresses these gaps by [approach]. Unlike previous
+studies that [limitation], this research [differentiation]. By [method],
+this study offers new insights into [contribution].
+```
+
+### Chapter Outline (Unique to Humanities)
+
+```markdown
+## Provisional Chapter Outline
+
+**Chapter 1: Introduction**
+Introduces the central argument, contextualizes the study, and outlines
+the dissertation structure.
+
+**Chapter 2: [Thematic Title]**
+Examines [topic/period/text] to establish [foundational argument].
+Primary sources: [list key sources]
+
+**Chapter 3: [Thematic Title]**
+Analyzes [topic/period/text] to demonstrate [developing argument].
+Primary sources: [list key sources]
+
+**Chapter 4: [Thematic Title]**
+Investigates [topic/period/text] to explore [complicating factors].
+Primary sources: [list key sources]
+
+**Chapter 5: Conclusion**
+Synthesizes findings, articulates contributions, and suggests directions
+for future research.
+```
+
+### Humanities-Specific Language
+
+**Interpretive verbs:**
+- argue, contend, posit, suggest
+- examine, analyze, interrogate, explore
+- illuminate, reveal, demonstrate, trace
+
+**Analytical phrases:**
+- "close reading of [text] reveals..."
+- "situating [phenomenon] within [context] allows us to see..."
+- "this analysis complicates the prevailing narrative by..."
+- "reading [source] against [context] demonstrates..."
+
+---
+
+## Social Sciences Domain (Sociology, Psychology, Economics, Political Science)
+
+### Structural Emphasis
+
+```
+Social Sciences Proposal Structure (~3,000 words)
+
+Abstract                    200-250 words   (7%)
+Introduction               500-600 words   (18%)
+  - Background             200 words
+  - Problem Statement      200 words
+  - Research Questions     150 words
+Literature Review          600-800 words   (22%)
+  - Theoretical Framework  250 words
+  - Empirical Review       350 words
+  - Research Gap           200 words
+Methodology                600-800 words   (25%)    ← BALANCED EMPHASIS
+  - Research Design        150 words
+  - Sampling/Participants  150 words
+  - Data Collection        200 words
+  - Data Analysis          200 words
+  - Ethics                 100 words
+Timeline                   200-250 words   (7%)
+Significance               300-400 words   (12%)
+References                 40-60 citations
+```
+
+### Key Characteristics
+
+**Question-Driven with Theoretical Grounding**
+- Clear research questions
+- Hypotheses when appropriate (quantitative)
+- Theory guides but doesn't dominate
+
+```markdown
+**Research Questions:**
+1. What is the relationship between [variable A] and [variable B] among
+   [population]?
+2. How do [participants] experience/perceive [phenomenon]?
+3. To what extent does [factor] mediate/moderate the relationship between
+   [X] and [Y]?
+
+**Hypotheses (if quantitative):**
+H1: [Variable A] is positively/negatively associated with [Variable B].
+H2: The relationship between [X] and [Y] is moderated by [Z].
+```
+
+**Mixed Methods Common**
+- Often combines quantitative and qualitative
+- Sequential or concurrent designs
+- Triangulation valued
+
+**Ethical Emphasis**
+- Human subjects considerations
+- IRB/ethics approval process
+- Informed consent, confidentiality
+
+### Methodology Template (Social Sciences)
+
+```markdown
+## 3. Methodology
+
+### 3.1 Research Design
+
+This study employs a [quantitative/qualitative/mixed methods] design.
+[If mixed: The study follows a [sequential/concurrent] [explanatory/
+exploratory] design, beginning with [phase 1] followed by [phase 2].]
+
+The [design type] approach is appropriate because [justification based
+on research questions].
+
+### 3.2 Participants and Sampling
+
+**Population:** [Define target population]
+
+**Sample:** [N] participants will be recruited using [sampling strategy].
+Inclusion criteria: [list]. Exclusion criteria: [list].
+
+**Sample size justification:** Based on [power analysis/saturation
+principle/similar studies], [N] participants are required to [detect
+effect/achieve saturation].
+
+### 3.3 Data Collection
+
+**Quantitative:** [Surveys/experiments/secondary data]
+- Instrument: [name/description]
+- Variables measured: [list with operationalization]
+- Procedure: [step-by-step process]
+
+**Qualitative:** [Interviews/focus groups/observation]
+- Protocol: [semi-structured/structured, duration]
+- Topics covered: [list]
+- Recording: [audio/video, transcription process]
+
+### 3.4 Data Analysis
+
+**Quantitative analysis:**
+- Descriptive statistics for [variables]
+- [Statistical test] to examine [hypothesis 1]
+- [Statistical test] to examine [hypothesis 2]
+- Software: [SPSS/R/Stata]
+
+**Qualitative analysis:**
+- [Thematic/content/discourse] analysis
+- Coding approach: [inductive/deductive/hybrid]
+- Software: [NVivo/Atlas.ti/manual]
+
+### 3.5 Ethical Considerations
+
+This research will be conducted in accordance with [ethical guidelines].
+IRB/Ethics approval will be obtained from [institution].
+
+Key considerations:
+- **Informed consent:** [process]
+- **Confidentiality:** [data storage, anonymization]
+- **Potential risks:** [identified risks and mitigation]
+- **Vulnerable populations:** [if applicable, special protections]
+```
+
+### Social Sciences-Specific Language
+
+**Research verbs:**
+- investigate, examine, explore, assess
+- compare, evaluate, measure, test
+- understand, interpret, explain, predict
+
+**Methodological phrases:**
+- "using a [design] approach"
+- "drawing on a [sampling] sample of [N] participants"
+- "employing [analysis method] to identify..."
+- "controlling for [confounding variables]"
+
+---
+
+## Citation Style Quick Reference
+
+### APA (7th Edition) - STEM, Social Sciences
+
+**Journal article:**
+```
+Author, A. A., & Author, B. B. (Year). Title of article. Journal Name,
+Volume(Issue), pages. https://doi.org/xxxxx
+```
+
+**Book:**
+```
+Author, A. A. (Year). Title of work: Subtitle. Publisher.
+```
+
+**In-text:**
+- (Author, Year) or Author (Year)
+- (Author et al., Year) for 3+ authors
+
+### MLA (9th Edition) - Humanities (Literature, Languages)
+
+**Journal article:**
+```
+Author Last, First. "Article Title." Journal Name, vol. #, no. #, Year,
+pp. #-#.
+```
+
+**Book:**
+```
+Author Last, First. Title of Book. Publisher, Year.
+```
+
+**In-text:**
+- (Author page) or Author argues "quote" (page)
+
+### Chicago (17th Edition) - History, some Humanities
+
+**Notes-Bibliography (Humanities):**
+```
+Footnote: Author First Last, Title of Book (Place: Publisher, Year), page.
+Bibliography: Author Last, First. Title of Book. Place: Publisher, Year.
+```
+
+**Author-Date (Sciences):**
+```
+(Author Year, page)
+Author, First. Year. Title. Place: Publisher.
+```
+
+---
+
+## Language Output Considerations
+
+### English Proposals
+
+- Maintain consistent British or American English
+- Formal academic register
+- Active voice acceptable, passive common in methods
+- "We" for multi-author, "This study" for distance
+
+### Chinese Proposals (中文)
+
+**学术语体特征:**
+- 使用书面语,避免口语化表达
+- 适当使用四字成语和学术术语
+- 保持客观语气,避免主观判断词
+- 使用"本研究"而非"我"
+
+**常用学术表达:**
+
+| 功能 | 中文表达 |
+|------|----------|
+| 引出背景 | 随着...的发展,...日益受到关注 |
+| 指出问题 | 然而,...仍存在以下问题 |
+| 陈述目标 | 本研究旨在...;本文拟探讨... |
+| 方法说明 | 采用...方法,对...进行分析 |
+| 预期贡献 | 研究结果将有助于...;有望为...提供参考 |
+
+**参考文献格式 (GB/T 7714-2015):**
+```
+期刊: 作者. 题名[J]. 刊名, 年, 卷(期): 起止页码.
+专著: 作者. 书名[M]. 出版地: 出版者, 出版年.
+```
+
+---
+
+## Domain-Specific Checklist
+
+### STEM Checklist
+- [ ] Hypotheses are specific and testable
+- [ ] Variables clearly defined and operationalized
+- [ ] Methods section includes specific parameters
+- [ ] Equipment/software versions specified
+- [ ] Validation approach described
+- [ ] Preliminary data included (if available)
+- [ ] Realistic within lab capabilities
+
+### Humanities Checklist
+- [ ] Central argument clearly stated
+- [ ] Theoretical framework articulated
+- [ ] Engagement with key scholars demonstrated
+- [ ] Primary sources identified and accessible
+- [ ] Chapter outline provided
+- [ ] Language requirements addressed
+- [ ] Archive/field access confirmed
+
+### Social Sciences Checklist
+- [ ] Research questions linked to theory
+- [ ] Sampling strategy justified
+- [ ] Instruments described or referenced
+- [ ] Analysis appropriate for question type
+- [ ] Ethics considerations addressed
+- [ ] Limitations acknowledged
+- [ ] Practical significance articulated

+ 529 - 0
skills/research-skills/research-proposal/references/LITERATURE_WORKFLOW.md

@@ -0,0 +1,529 @@
+# Literature Collection Workflow
+
+Guide for gathering relevant literature during research proposal generation.
+
+---
+
+## Overview
+
+```
+┌─────────────────────────────────────────────────────────────────────────┐
+│                      Literature Source Strategy                          │
+├─────────────────────────────────────────────────────────────────────────┤
+│                                                                         │
+│  ┌──────────────┐   ┌──────────────────┐   ┌─────────────────────────┐ │
+│  │  WebSearch   │   │   Open Access    │   │    Zotero MCP           │ │
+│  │              │   │                  │   │    (User Library)       │ │
+│  │  • Trends    │   │  • arXiv         │   │                         │ │
+│  │  • News      │   │  • PubMed        │   │  • Full-text papers     │ │
+│  │  • Reviews   │   │  • bioRxiv       │   │  • User annotations     │ │
+│  │  • General   │   │  • SSRN          │   │  • User notes           │ │
+│  │    info      │   │  • Google Scholar│   │  • Organized refs       │ │
+│  └──────────────┘   └──────────────────┘   └─────────────────────────┘ │
+│         │                    │                         │               │
+│         └────────────────────┴─────────────────────────┘               │
+│                              │                                          │
+│                    ┌─────────▼─────────┐                               │
+│                    │  Synthesize into  │                               │
+│                    │  Proposal Sections│                               │
+│                    └───────────────────┘                               │
+└─────────────────────────────────────────────────────────────────────────┘
+```
+
+---
+
+## Phase 1: Initial Reconnaissance with WebSearch
+
+### Purpose
+- Understand current landscape
+- Identify key researchers and institutions
+- Find recent reviews and meta-analyses
+- Discover emerging trends
+
+### Search Strategies
+
+#### Broad Overview Searches
+```
+Queries:
+- "{topic} systematic review 2024 2025"
+- "{topic} state of the art"
+- "{topic} research trends"
+- "{topic} future directions"
+```
+
+#### Finding Key Papers
+```
+Queries:
+- "{topic} seminal paper"
+- "{topic} landmark study"
+- "{topic} highly cited"
+- "best papers {topic} {year}"
+```
+
+#### Identifying Gaps
+```
+Queries:
+- "{topic} limitations"
+- "{topic} challenges"
+- "{topic} open problems"
+- "{topic} future research"
+```
+
+#### Methodology Discovery
+```
+Queries:
+- "{topic} methodology"
+- "{topic} research methods"
+- "how to study {phenomenon}"
+- "{method} for {topic}"
+```
+
+### Extracting Information from Web Results
+
+When processing web search results, extract:
+1. **Key findings** - Main results and conclusions
+2. **Authors/Institutions** - Who is working on this
+3. **Timeline** - When major advances occurred
+4. **Terminology** - Field-specific vocabulary
+5. **Controversies** - Debates and disagreements
+6. **Open questions** - Identified gaps
+
+---
+
+## Phase 2: Open Access Sources
+
+### arXiv (STEM, CS, Physics, Math)
+```
+Access: https://arxiv.org/
+Search: https://arxiv.org/search/?query={topic}
+
+Categories:
+- cs.AI - Artificial Intelligence
+- cs.LG - Machine Learning
+- cs.CV - Computer Vision
+- stat.ML - Statistics/ML
+- physics.* - Various physics
+- math.* - Various math
+```
+
+### PubMed (Biomedical, Life Sciences)
+```
+Access: https://pubmed.ncbi.nlm.nih.gov/
+Search: https://pubmed.ncbi.nlm.nih.gov/?term={topic}
+
+Filters useful:
+- Free full text
+- Review articles
+- Publication date range
+- Article type
+```
+
+### bioRxiv/medRxiv (Biology/Medicine Preprints)
+```
+Access: https://www.biorxiv.org/ and https://www.medrxiv.org/
+Note: Preprints, not peer-reviewed
+Use for: Most recent findings, ongoing research
+```
+
+### SSRN (Social Sciences, Economics)
+```
+Access: https://www.ssrn.com/
+Strength: Working papers, business/economics/law
+```
+
+### Google Scholar
+```
+Access: https://scholar.google.com/
+Features:
+- Citation counts
+- Related articles
+- Author profiles
+- "Cited by" links
+```
+
+### Open Access Journals
+```
+PLOS ONE: https://journals.plos.org/plosone/
+Nature Communications: https://www.nature.com/ncomms/
+Scientific Reports: https://www.nature.com/srep/
+```
+
+---
+
+## Phase 3: Zotero MCP Integration
+
+### Prerequisites
+- User must have Zotero installed and configured
+- Zotero MCP server must be running
+- User should have uploaded relevant papers to their library
+
+### Initial Reminder to User
+
+```
+Before we proceed with literature collection, please ensure:
+
+1. Your Zotero library contains relevant papers for this research topic
+2. If you have specific papers you want referenced, please add them to Zotero
+3. Papers with full-text PDFs attached will be most useful
+
+If you haven't prepared your Zotero library yet, I can proceed with open-access
+sources and web searches, then you can add Zotero papers later.
+```
+
+### Zotero MCP Tool Usage
+
+#### Search User's Library
+
+**Basic Keyword Search:**
+```
+Tool: mcp__zotero__zotero_search_items
+Parameters:
+  query: "{research topic keywords}"
+
+Example:
+  query: "deep learning medical imaging"
+```
+
+**Advanced Search:**
+```
+Tool: mcp__zotero__zotero_advanced_search
+Parameters:
+  conditions: based on:
+    - title contains {keyword}
+    - author contains {name}
+    - date > {year}
+    - tag is {tag}
+
+Example:
+  conditions: [
+    {"field": "title", "operator": "contains", "value": "transformer"},
+    {"field": "date", "operator": ">", "value": "2022"}
+  ]
+```
+
+**Semantic Search (if indexed):**
+```
+Tool: mcp__zotero__zotero_semantic_search
+Parameters:
+  query: "{natural language research question}"
+
+Example:
+  query: "What methods are used for detecting cardiac abnormalities in ECG signals?"
+```
+
+#### Retrieve Paper Content
+
+**Get Full Text:**
+```
+Tool: mcp__zotero__zotero_get_item_fulltext
+Parameters:
+  item_key: "{key from search results}"
+
+Returns: Full text content of the paper (if PDF attached)
+```
+
+**Get Metadata:**
+```
+Tool: mcp__zotero__zotero_get_item_metadata
+Parameters:
+  item_key: "{key from search results}"
+
+Returns: Title, authors, abstract, journal, year, DOI, etc.
+```
+
+**Get User Annotations:**
+```
+Tool: mcp__zotero__zotero_get_annotations
+Parameters:
+  item_key: "{key from search results}"
+
+Returns: User's highlights and annotations on the paper
+```
+
+**Get User Notes:**
+```
+Tool: mcp__zotero__zotero_get_notes
+Parameters:
+  item_key: "{key from search results}"
+
+Returns: Any notes the user has attached to the paper
+```
+
+### Zotero Workflow Example
+
+```
+Step 1: Search for papers on the topic
+> zotero_search_items(query="machine learning cardiac diagnosis")
+
+Step 2: From results, identify most relevant papers (by title, year)
+
+Step 3: Get full text of key papers
+> zotero_get_item_fulltext(item_key="ABC123")
+
+Step 4: Check for user insights
+> zotero_get_annotations(item_key="ABC123")
+> zotero_get_notes(item_key="ABC123")
+
+Step 5: Get metadata for citation
+> zotero_get_item_metadata(item_key="ABC123")
+```
+
+---
+
+## Phase 4: Literature Organization
+
+### Categorization Framework
+
+Organize collected literature into these categories:
+
+#### 1. Background/Context Papers
+```
+Purpose: Establish the research field
+Content:
+- Historical development
+- Foundational concepts
+- Widely-accepted theories
+Typical age: Can include older seminal works
+```
+
+#### 2. State-of-the-Art Papers
+```
+Purpose: Show current capabilities and methods
+Content:
+- Recent advances
+- Current best practices
+- Latest methodologies
+Typical age: Last 5 years
+```
+
+#### 3. Gap-Identifying Papers
+```
+Purpose: Support the research gap argument
+Content:
+- Limitations identified by others
+- Calls for future research
+- Reviews noting missing areas
+Typical age: Recent (last 3-5 years)
+```
+
+#### 4. Methodology Papers
+```
+Purpose: Justify and detail methods
+Content:
+- Original method descriptions
+- Validation studies
+- Application examples
+Typical age: Varies; cite original sources
+```
+
+#### 5. Comparative/Related Work
+```
+Purpose: Position the research
+Content:
+- Similar approaches
+- Alternative solutions
+- Adjacent research areas
+Typical age: Recent preferred
+```
+
+### Documentation Template
+
+```markdown
+## Literature Collection Summary
+
+### Background/Context (n papers)
+| Citation | Key Points | Use In |
+|----------|------------|--------|
+| Author (Year) | Main finding | Introduction |
+
+### State-of-the-Art (n papers)
+| Citation | Key Points | Use In |
+|----------|------------|--------|
+| Author (Year) | Current best method | Lit Review |
+
+### Gap-Identifying (n papers)
+| Citation | Identified Gap | Use In |
+|----------|----------------|--------|
+| Author (Year) | "Future work should..." | Lit Review |
+
+### Methodology (n papers)
+| Citation | Method | Use In |
+|----------|--------|--------|
+| Author (Year) | Description of approach | Methodology |
+
+### Related Work (n papers)
+| Citation | Relation | Use In |
+|----------|----------|--------|
+| Author (Year) | Similar but different scope | Lit Review |
+```
+
+---
+
+## Phase 5: Citation Preparation
+
+### Information to Collect
+
+For each paper, capture:
+
+```
+- Authors (full names)
+- Year of publication
+- Title
+- Journal/Conference/Publisher
+- Volume/Issue (if applicable)
+- Pages (if applicable)
+- DOI or URL
+- Key findings (for citing)
+- Relevant quotes (with page numbers)
+```
+
+### Citation Format Examples
+
+#### APA 7th Edition
+```
+Smith, J. A., & Jones, B. C. (2024). Title of article in sentence case.
+    Journal Name in Title Case, 15(3), 123-145. https://doi.org/10.xxxx
+
+Multi-author (3+):
+Chen, X., Wang, Y., Liu, Z., & Zhang, W. (2024). Article title.
+    Journal, 10(2), 45-67. https://doi.org/10.xxxx
+
+In-text:
+(Smith & Jones, 2024)
+(Chen et al., 2024)
+```
+
+#### MLA 9th Edition
+```
+Smith, John A., and Barbara C. Jones. "Article Title Here." Journal Name,
+    vol. 15, no. 3, 2024, pp. 123-145.
+
+In-text:
+(Smith and Jones 128)
+```
+
+#### Chicago Author-Date
+```
+Smith, John A., and Barbara C. Jones. 2024. "Article Title Here."
+    Journal Name 15 (3): 123-145. https://doi.org/10.xxxx
+
+In-text:
+(Smith and Jones 2024, 128)
+```
+
+---
+
+## Handling Different Scenarios
+
+### Scenario 1: Rich Zotero Library
+```
+User has extensive Zotero collection relevant to topic.
+
+Strategy:
+1. Start with Zotero semantic search
+2. Get annotations/notes for user insights
+3. Supplement with web search for recent news/trends
+4. Use user's existing organization (collections, tags)
+```
+
+### Scenario 2: Empty or Sparse Zotero Library
+```
+User has no relevant papers in Zotero.
+
+Strategy:
+1. Inform user of limitation
+2. Rely on WebSearch and open-access sources
+3. Provide clear citations for open-access papers
+4. Suggest key papers user might add to Zotero
+```
+
+### Scenario 3: Very New Topic
+```
+Limited existing literature available.
+
+Strategy:
+1. Focus on foundational/adjacent literature
+2. Emphasize why topic is emerging
+3. Include recent conference papers/preprints
+4. Frame proposal as pioneering work
+```
+
+### Scenario 4: Interdisciplinary Topic
+```
+Topic spans multiple fields.
+
+Strategy:
+1. Search across domain-specific databases
+2. Identify bridging papers
+3. Balance literature from each field
+4. Address methodological borrowing
+```
+
+---
+
+## Quality Checks for Literature
+
+### Coverage Check
+- [ ] Seminal/foundational works included
+- [ ] Recent papers (last 5 years) represented
+- [ ] Multiple perspectives/approaches covered
+- [ ] Key researchers in field cited
+- [ ] Geographic/institutional diversity (if relevant)
+
+### Relevance Check
+- [ ] Each paper directly supports a claim
+- [ ] No tangential citations
+- [ ] Gap papers specifically identify the gap
+- [ ] Method papers describe the methods used
+
+### Balance Check
+- [ ] Not over-reliant on single author/lab
+- [ ] Mix of empirical and theoretical works
+- [ ] Both supporting and challenging views
+- [ ] Appropriate review-to-primary ratio
+
+### Recency Check
+- [ ] ~80% from last 5 years
+- [ ] Latest advances included
+- [ ] No outdated methods cited as current
+- [ ] Historical context appropriately old
+
+---
+
+## Troubleshooting
+
+### "No results found in Zotero"
+```
+Solutions:
+1. Try broader search terms
+2. Check if papers have been uploaded with full text
+3. Verify MCP connection is working
+4. Ask user to add relevant papers
+```
+
+### "WebSearch returns low-quality results"
+```
+Solutions:
+1. Add site filters (site:nature.com, site:arxiv.org)
+2. Use more specific terminology
+3. Include author names if known
+4. Add year constraints
+```
+
+### "Cannot access full text"
+```
+Solutions:
+1. Check open-access repositories (arXiv, PubMed Central)
+2. Use metadata/abstract only
+3. Ask user to obtain and add to Zotero
+4. Note limitation in proposal
+```
+
+### "Too much literature found"
+```
+Solutions:
+1. Prioritize by citation count
+2. Filter by publication venue quality
+3. Focus on most recent within each category
+4. Limit to papers directly supporting claims
+```

+ 325 - 0
skills/research-skills/research-proposal/references/QUALITY_CHECKLIST.md

@@ -0,0 +1,325 @@
+# Quality Checklist for Research Proposals
+
+Use this checklist to verify the quality of generated research proposals.
+
+---
+
+## Structure Verification
+
+### Overall Document
+- [ ] Title is concise (10-15 words) and informative
+- [ ] All required sections present
+- [ ] Sections in logical order
+- [ ] Word counts within specified ranges
+- [ ] Consistent formatting throughout
+- [ ] Page numbers included (if applicable)
+
+### Section Completeness
+
+#### Abstract (150-300 words)
+- [ ] Background/context provided
+- [ ] Research problem clearly stated
+- [ ] Objectives/questions articulated
+- [ ] Methodology briefly described
+- [ ] Expected significance mentioned
+- [ ] No citations in abstract
+- [ ] No undefined abbreviations
+
+#### Introduction (500-800 words)
+- [ ] Background establishes context
+- [ ] Problem statement is specific
+- [ ] Research questions/objectives clear
+- [ ] Scope defined appropriately
+- [ ] Logical flow from broad to specific
+
+#### Literature Review (500-1000 words)
+- [ ] Theoretical framework established
+- [ ] Current research state summarized
+- [ ] Research gap clearly identified
+- [ ] Study positioned within literature
+- [ ] Synthesis, not just summary
+- [ ] Recent sources included (last 5 years)
+
+#### Methodology (500-800 words)
+- [ ] Research design justified
+- [ ] Data collection methods described
+- [ ] Analysis approach explained
+- [ ] Limitations acknowledged
+- [ ] Ethical considerations addressed (if applicable)
+
+#### Timeline (200-300 words)
+- [ ] Major phases identified
+- [ ] Milestones specified
+- [ ] Timeline realistic for PhD duration
+- [ ] Dependencies considered
+
+#### Significance (200-400 words)
+- [ ] Theoretical contributions stated
+- [ ] Practical implications described
+- [ ] Broader impact discussed
+- [ ] Claims appropriately hedged
+
+#### References
+- [ ] **Minimum 40 citations** for PhD proposal
+- [ ] Citation format consistent
+- [ ] Mix of foundational and recent works (~40% classic, ~60% recent 5 years)
+- [ ] All in-text citations have matching references
+- [ ] No orphan references (cited but not referenced)
+- [ ] Balance across different research groups/institutions
+
+#### Figures (3-5 suggested)
+- [ ] Figure suggestions included at appropriate locations
+- [ ] Each suggestion includes: title, content description, style recommendation
+- [ ] Figures distributed across sections (Introduction, Methodology, Timeline)
+- [ ] No figure in Abstract
+- [ ] Each figure serves clear communicative purpose
+
+---
+
+## Content Quality
+
+### Research Design
+- [ ] Research questions are answerable
+- [ ] Questions align with methodology
+- [ ] Scope achievable within PhD timeframe
+- [ ] Original contribution evident
+- [ ] Builds on existing research appropriately
+
+### Argumentation
+- [ ] Claims supported by evidence
+- [ ] Logic is sound and traceable
+- [ ] Counterarguments acknowledged
+- [ ] Gap justifies proposed research
+- [ ] Conclusions follow from premises
+
+### Literature Engagement
+- [ ] Key works in field cited
+- [ ] Seminal papers included
+- [ ] Recent developments covered
+- [ ] Critical analysis present
+- [ ] Theoretical framework appropriate
+
+### Methodology Rigor
+- [ ] Methods match research questions
+- [ ] Data collection feasible
+- [ ] Analysis approach appropriate
+- [ ] Validity/reliability addressed
+- [ ] Limitations honestly stated
+
+---
+
+## Academic Writing Quality
+
+### Writing Style (CRITICAL)
+- [ ] **Prose-based writing** - content flows as connected paragraphs
+- [ ] **Minimal bullet points** - lists used ONLY where truly necessary
+- [ ] Appropriate list usage limited to: research questions, timeline milestones, technical specs
+- [ ] No point-by-point enumeration of ideas that should be narrated
+- [ ] Smooth transitions between ideas within paragraphs
+- [ ] **No appendix sections** - all content in main body
+
+### Language and Tone
+- [ ] Formal academic register
+- [ ] No colloquialisms or slang
+- [ ] Consistent tense usage
+- [ ] Appropriate voice (active/passive)
+- [ ] Technical terms defined
+
+### Hedging
+- [ ] No absolute claims without evidence
+- [ ] Modal verbs used appropriately (may, might, could)
+- [ ] Tentative language for predictions
+- [ ] Phrases like "suggests," "indicates" for findings
+- [ ] No overstatement of significance
+
+### Sentence Structure
+- [ ] Topic sentences clear
+- [ ] Varied sentence length
+- [ ] Complex ideas broken down
+- [ ] No run-on sentences
+- [ ] No sentence fragments
+
+### Paragraph Structure
+- [ ] One main idea per paragraph
+- [ ] 4-8 sentences typical length
+- [ ] Clear topic sentence
+- [ ] Supporting evidence present
+- [ ] Smooth transitions
+
+### Transitions
+- [ ] Logical flow between paragraphs
+- [ ] Appropriate connectors used
+- [ ] Signposting for reader
+- [ ] No abrupt topic changes
+- [ ] Section transitions explicit
+
+---
+
+## Technical Accuracy
+
+### Citations
+- [ ] Format matches discipline standard (APA/MLA/Chicago)
+- [ ] In-text citations correct
+- [ ] Reference list complete
+- [ ] DOIs/URLs included where available
+- [ ] Author names accurate
+
+### Abbreviations and Terms
+- [ ] All abbreviations defined at first use
+- [ ] Acronyms used consistently
+- [ ] Technical terms explained
+- [ ] Discipline-specific jargon appropriate
+- [ ] No unexplained symbols
+
+### Numbers and Data
+- [ ] Consistent number formatting
+- [ ] Units specified correctly
+- [ ] Statistics reported properly
+- [ ] Percentages calculated correctly
+- [ ] Sample sizes justified
+
+### Formatting
+- [ ] Heading hierarchy consistent
+- [ ] Font and spacing uniform
+- [ ] Lists formatted properly
+- [ ] Tables/figures labeled (if any)
+- [ ] Markdown syntax correct
+
+---
+
+## Domain-Specific Checks
+
+### STEM Proposals
+- [ ] Hypotheses specific and testable
+- [ ] Variables operationally defined
+- [ ] Equipment/software specified
+- [ ] Protocols detailed
+- [ ] Validation approach described
+- [ ] Preliminary data included (if applicable)
+- [ ] Reproducibility considered
+
+### Humanities Proposals
+- [ ] Central argument clear
+- [ ] Theoretical sophistication demonstrated
+- [ ] Primary sources identified
+- [ ] Archive/field access addressed
+- [ ] Chapter outline provided
+- [ ] Language requirements noted
+- [ ] Interpretive framework justified
+
+### Social Sciences Proposals
+- [ ] Research questions theory-linked
+- [ ] Sampling strategy justified
+- [ ] Instruments described
+- [ ] Ethics approval pathway identified
+- [ ] Mixed methods rationale (if applicable)
+- [ ] Generalizability discussed
+- [ ] Practical significance clear
+
+---
+
+## Language-Specific Checks
+
+### English Proposals
+- [ ] British/American English consistent
+- [ ] Grammar correct
+- [ ] Spelling accurate
+- [ ] Punctuation proper
+- [ ] Articles (a/an/the) used correctly
+- [ ] Subject-verb agreement
+
+### Chinese Proposals (中文)
+- [ ] 学术语体规范
+- [ ] 无口语化表达
+- [ ] 标点符号正确
+- [ ] 适当使用连接词
+- [ ] Hedging 表达适当
+- [ ] 引用格式符合 GB/T 7714
+
+---
+
+## Final Review
+
+### Coherence
+- [ ] Title matches content
+- [ ] Abstract summarizes accurately
+- [ ] Research questions answered by methodology
+- [ ] Timeline matches scope
+- [ ] Significance matches contributions
+
+### Completeness
+- [ ] All sections address their purpose
+- [ ] No placeholder text remaining
+- [ ] All [brackets] filled in
+- [ ] No "TBD" or similar markers
+- [ ] No missing references
+
+### Readability
+- [ ] Clear for intended audience
+- [ ] Jargon explained or minimized
+- [ ] Logical progression
+- [ ] Key points emphasized
+- [ ] Conclusion satisfying
+
+### Professionalism
+- [ ] Free of typos
+- [ ] Consistent formatting
+- [ ] Appropriate length
+- [ ] Citations complete
+- [ ] Ready for submission
+
+---
+
+## Scoring Guide
+
+### Rating Scale
+- **Excellent (5)**: Meets all criteria, publication-ready quality
+- **Good (4)**: Minor improvements needed
+- **Satisfactory (3)**: Several areas need attention
+- **Needs Work (2)**: Major revisions required
+- **Inadequate (1)**: Fundamental issues present
+
+### Section Weights
+
+| Section | Weight |
+|---------|--------|
+| Research Questions | 15% |
+| Literature Review | 20% |
+| Methodology | 25% |
+| Academic Writing | 20% |
+| Overall Coherence | 10% |
+| Technical Accuracy | 10% |
+
+### Minimum Standards
+- No section rated below 3
+- Overall weighted average ≥ 3.5
+- No critical errors in citations or methodology
+- Appropriate hedging throughout
+
+---
+
+## Quick Reference
+
+### Critical Requirements (Must Pass)
+1. Research questions are clear and answerable
+2. Gap in literature identified
+3. Methodology matches questions
+4. No absolute claims without evidence
+5. All citations present and correct
+6. Word count within range (±10%)
+
+### Common Issues to Check
+1. Vague research questions
+2. Literature review as list, not synthesis
+3. Methodology-question mismatch
+4. Overstated significance
+5. Missing or inconsistent citations
+6. Informal language
+7. Lack of hedging
+8. Poor transitions
+9. Undefined abbreviations
+10. Unrealistic timeline
+11. **Excessive bullet points** instead of flowing prose
+12. **Insufficient references** (must be ≥40)
+13. **Missing figure suggestions**
+14. **Appendix included** (should not have appendix)

+ 398 - 0
skills/research-skills/research-proposal/references/STRUCTURE_GUIDE.md

@@ -0,0 +1,398 @@
+# Research Proposal Structure Guide
+
+Detailed writing guidance for each section of a PhD research proposal.
+
+---
+
+## Title
+
+### Purpose
+Capture the essence of your research in a concise, informative phrase.
+
+### Guidelines
+- **Length**: 10-15 words maximum
+- **Include**: Key concepts, research object, methodological approach
+- **Avoid**: Abbreviations (unless universally known), questions, clever wordplay
+
+### Structure Template
+```
+[Method/Approach] for [Research Object/Problem] in [Context/Domain]
+```
+
+### Examples
+
+**Good Titles:**
+- "Deep Learning Approaches for Early Detection of Cardiac Arrhythmias in Wearable ECG Signals"
+- "Sustainable Urban Development: A Comparative Analysis of Green Infrastructure Policies in Asian Megacities"
+- "Narrative Identity Formation in Digital Spaces: A Longitudinal Study of Young Adult Bloggers"
+
+**Avoid:**
+- "A Study of Machine Learning" (too vague)
+- "Can AI Save Healthcare?" (question format)
+- "The Future of Cities" (too broad)
+
+---
+
+## Abstract (150-300 words, 5-10%)
+
+### Purpose
+Provide a complete overview of your proposal that can stand alone.
+
+### Required Elements
+1. **Context/Background** (1-2 sentences)
+   - Why this research matters
+   - Current state of the field
+
+2. **Research Problem** (1-2 sentences)
+   - Specific gap or issue addressed
+   - Why existing solutions are insufficient
+
+3. **Research Questions/Objectives** (1-2 sentences)
+   - Clear statement of what you will investigate
+   - Primary and secondary objectives
+
+4. **Methodology** (2-3 sentences)
+   - Research design approach
+   - Key methods for data collection/analysis
+
+5. **Expected Significance** (1-2 sentences)
+   - Anticipated contributions
+   - Potential impact
+
+### Writing Tips
+- Write the abstract LAST (after completing all sections)
+- Use present tense for established facts
+- Use future tense for proposed work
+- Avoid citations in abstract
+- No undefined abbreviations
+
+### Template (English)
+```
+[Background sentence establishing the field]. [Problem statement identifying the gap].
+This research aims to [primary objective] by [approach]. Specifically, this study
+will [specific objective 1] and [specific objective 2]. Using [methodology], the
+research will [data collection approach] and [analysis approach]. The findings
+are expected to contribute to [theoretical contribution] and may have implications
+for [practical application].
+```
+
+### Template (中文)
+```
+[背景句,确立研究领域]。[问题陈述,指出研究空白]。本研究旨在通过[方法路径]
+[主要研究目标]。具体而言,本研究将[具体目标1]并[具体目标2]。采用[研究方法],
+本研究将[数据收集方法]和[分析方法]。研究结果预期将为[理论贡献]做出贡献,
+并可能对[实践应用]具有启示意义。
+```
+
+---
+
+## 1. Introduction (500-800 words, 15-20%)
+
+### Purpose
+Establish context, articulate the problem, and present research objectives.
+
+### Section Structure
+
+#### 1.1 Background and Context (150-250 words)
+- Broad overview of the field
+- Recent developments and trends
+- Why this area matters (societal, scientific, economic importance)
+
+**Opening Sentence Strategies:**
+- Historical perspective: "Over the past two decades, [field] has undergone..."
+- Current state: "Recent advances in [area] have transformed..."
+- Problem framing: "[Issue] affects millions of people worldwide..."
+- Statistical hook: "According to recent data, [statistic]..."
+
+#### 1.2 Problem Statement (150-200 words)
+- Identify the specific problem or gap
+- Explain why this problem matters
+- Describe limitations of current approaches
+- Establish urgency or timeliness
+
+**Gap Identification Phrases:**
+- "Despite significant advances, [X] remains poorly understood."
+- "Current approaches fail to address..."
+- "A critical limitation of existing methods is..."
+- "The relationship between [A] and [B] has not been systematically examined."
+
+#### 1.3 Research Questions/Objectives (100-150 words)
+- State primary research question clearly
+- List 2-4 specific objectives
+- Ensure questions are answerable within PhD timeframe
+
+**Research Question Formulation:**
+
+| Type | Example |
+|------|---------|
+| Descriptive | "What are the characteristics of [X]?" |
+| Comparative | "How does [A] compare to [B] in terms of [C]?" |
+| Correlational | "What is the relationship between [X] and [Y]?" |
+| Causal | "What effect does [X] have on [Y]?" |
+| Exploratory | "How do [participants] experience [phenomenon]?" |
+
+**Objective Statement Format:**
+```
+The primary objective of this research is to [verb] [what] [how/why].
+
+Specific objectives include:
+1. To [verb] [specific outcome 1]
+2. To [verb] [specific outcome 2]
+3. To [verb] [specific outcome 3]
+```
+
+#### 1.4 Scope and Delimitations (100-150 words)
+- Define boundaries of the research
+- Explain what is NOT included and why
+- Acknowledge limitations upfront
+
+---
+
+## 2. Literature Review (500-1000 words, 20-25%)
+
+### Purpose
+Demonstrate knowledge of the field, identify research gap, and position your study.
+
+### Section Structure
+
+#### 2.1 Theoretical Framework (150-250 words)
+- Key theories underlying your research
+- Conceptual models you will use or develop
+- How theories relate to your research questions
+
+#### 2.2 Current State of Research (200-400 words)
+- Summarize major findings in the field
+- Identify key researchers and seminal works
+- Trace evolution of understanding
+- Note methodological approaches used
+
+**Organization Strategies:**
+- Chronological: Trace development over time
+- Thematic: Group by topic or theme
+- Methodological: Group by research approach
+- Conceptual: Group by theoretical perspective
+
+#### 2.3 Research Gap Analysis (100-200 words)
+- Synthesize limitations identified in literature
+- Clearly articulate what is missing
+- Explain why this gap matters
+
+**Gap Types:**
+- **Knowledge gap**: "No studies have examined..."
+- **Methodological gap**: "Previous research has relied on [method], which limits..."
+- **Population gap**: "Most studies focus on [group], overlooking..."
+- **Theoretical gap**: "Existing theories fail to account for..."
+
+#### 2.4 Positioning of This Study (100-150 words)
+- How your research addresses the identified gap
+- What makes your approach novel
+- How you build on existing work
+
+### Citation Density
+- Aim for 15-30 citations in literature review
+- Balance classic works with recent publications (last 5 years)
+- Cite primary sources when possible
+
+---
+
+## 3. Methodology (500-800 words, 20-25%)
+
+### Purpose
+Explain HOW you will conduct the research and justify your choices.
+
+### Section Structure
+
+#### 3.1 Research Design (100-150 words)
+- Overall approach (quantitative, qualitative, mixed methods)
+- Research paradigm (positivist, interpretivist, pragmatic)
+- Justification for chosen design
+
+**Design Types:**
+
+| Approach | Use When | Examples |
+|----------|----------|----------|
+| Experimental | Testing causal relationships | RCTs, lab experiments |
+| Quasi-experimental | Natural experiments | Pre-post studies |
+| Survey | Measuring attitudes/behaviors | Cross-sectional, longitudinal |
+| Case Study | In-depth understanding | Single or multiple cases |
+| Ethnographic | Cultural understanding | Fieldwork, participant observation |
+| Grounded Theory | Theory development | Iterative data collection/analysis |
+
+#### 3.2 Data Collection Methods (150-250 words)
+- What data will you collect?
+- How will you collect it?
+- Sampling strategy and sample size
+- Tools/instruments to be used
+- Ethical considerations
+
+**STEM Focus:**
+- Experimental procedures
+- Equipment and materials
+- Protocols and standards
+- Data formats and storage
+
+**Humanities/Social Sciences Focus:**
+- Interview/survey design
+- Participant recruitment
+- Document/archive sources
+- Observation protocols
+
+#### 3.3 Data Analysis Approach (150-250 words)
+- Analysis techniques and software
+- Step-by-step analytical process
+- How analysis addresses research questions
+
+**Quantitative Analysis:**
+- Statistical tests planned
+- Software (SPSS, R, Python)
+- Significance levels
+
+**Qualitative Analysis:**
+- Coding approach (inductive, deductive)
+- Analysis framework (thematic, content, discourse)
+- Software (NVivo, Atlas.ti)
+
+#### 3.4 Validity and Limitations (100-150 words)
+- How you will ensure validity/reliability
+- Anticipated limitations
+- Mitigation strategies
+
+---
+
+## 4. Timeline (200-300 words, 5-10%)
+
+### Purpose
+Demonstrate feasibility and planning competence.
+
+### Section Structure
+
+#### 4.1 Research Phases
+- Break project into 3-5 major phases
+- Define clear deliverables for each phase
+
+#### 4.2 Key Milestones
+- Important checkpoints and deadlines
+- Publication targets (if applicable)
+- Review/assessment points
+
+### Timeline Format Options
+
+**Table Format:**
+```markdown
+| Phase | Duration | Activities | Deliverables |
+|-------|----------|------------|--------------|
+| 1 | Months 1-6 | Literature review, Design | Review paper |
+| 2 | Months 7-18 | Data collection | Dataset |
+| 3 | Months 19-30 | Analysis | Draft chapters |
+| 4 | Months 31-36 | Writing, Revision | Thesis |
+```
+
+**Gantt Chart Description:**
+If including visual, describe key overlaps and dependencies.
+
+### Standard PhD Timeline (36-48 months)
+
+| Phase | Typical Duration |
+|-------|-----------------|
+| Literature Review & Design | 6-9 months |
+| Data Collection | 12-18 months |
+| Analysis | 6-12 months |
+| Writing | 9-12 months |
+| Revision & Defense | 3-6 months |
+
+---
+
+## 5. Significance (200-400 words, 10-15%)
+
+### Purpose
+Articulate why your research matters and what it will contribute.
+
+### Section Structure
+
+#### 5.1 Theoretical Contributions (100-150 words)
+- New knowledge generated
+- Theory development or refinement
+- Methodological innovations
+
+**Contribution Types:**
+- Confirming/refuting existing theories
+- Extending theories to new contexts
+- Developing new theoretical frameworks
+- Creating new methodological approaches
+
+#### 5.2 Practical Implications (100-150 words)
+- Applications to practice
+- Policy implications
+- Industry relevance
+- Societal benefits
+
+#### 5.3 Broader Impact (50-100 words)
+- Connection to global challenges
+- Interdisciplinary relevance
+- Long-term vision
+
+### Language for Significance
+
+**Avoid overpromising:**
+- ❌ "This research will revolutionize..."
+- ✓ "This research has the potential to contribute to..."
+
+**Be specific:**
+- ❌ "This will help society."
+- ✓ "The findings may inform clinical guidelines for early detection of..."
+
+---
+
+## References
+
+### Purpose
+Demonstrate scholarly engagement and enable verification.
+
+### Formatting Guidelines
+
+**APA Style (STEM, Social Sciences):**
+```
+Author, A. A., & Author, B. B. (Year). Title of article. Journal Name, Volume(Issue), pages. https://doi.org/xxxxx
+```
+
+**MLA Style (Humanities):**
+```
+Author Last, First. "Article Title." Journal Name, vol. #, no. #, Year, pp. #-#.
+```
+
+**Chicago Style (History, some Humanities):**
+```
+Author Last, First. "Article Title." Journal Name Volume, no. Issue (Year): pages.
+```
+
+### Reference Count Guidelines
+- PhD Proposal: 30-50 references minimum
+- Balance: ~60% from last 5 years, ~40% foundational works
+- Include variety: journals, books, conference papers, reports
+
+---
+
+## Common Mistakes to Avoid
+
+### Structure
+- Sections that don't connect logically
+- Missing or underdeveloped sections
+- Inconsistent depth across sections
+
+### Content
+- Vague or unmeasurable research questions
+- Literature review that lists but doesn't synthesize
+- Methodology that doesn't match research questions
+- Overly ambitious scope for PhD timeframe
+
+### Style
+- Informal language or colloquialisms
+- Absolute claims without hedging
+- Excessive jargon without explanation
+- Inconsistent citation formatting
+
+### Technical
+- Missing or incorrect citations
+- Undefined abbreviations
+- Grammatical errors
+- Formatting inconsistencies

+ 661 - 0
skills/research-skills/research-proposal/references/WRITING_STYLE_GUIDE.md

@@ -0,0 +1,661 @@
+# Academic Writing Style Guide
+
+Based on Nature Reviews journal conventions and academic writing best practices.
+
+---
+
+## Core Principles
+
+### 1. Prose-Based Writing (CRITICAL)
+
+**Academic proposals must read as flowing, connected prose—not as bulleted lists or enumerated points.**
+
+The hallmark of excellent academic writing is the ability to present complex ideas through coherent paragraphs with smooth transitions. Point-by-point enumeration (bullet points, numbered lists) should be used sparingly and only where truly necessary.
+
+**When lists ARE appropriate:**
+- Research questions/objectives (a focused set of 2-4 items)
+- Timeline milestones (where tabular format genuinely aids clarity)
+- Technical specifications requiring precise enumeration
+
+**When to avoid lists:**
+- Describing contributions (narrate them in context instead)
+- Explaining methodology (use flowing prose with transitions)
+- Presenting background information (integrate into paragraphs)
+- Discussing implications (weave into coherent narrative)
+
+**Transformation example:**
+
+*Poor (point-by-point):*
+> The main contributions include:
+> - A novel segmentation algorithm
+> - A multi-modal fusion framework
+> - Clinical validation results
+
+*Better (prose-based):*
+> This research is expected to advance the field through several interconnected contributions. The development of a novel segmentation algorithm will enable automated plaque detection with accuracy surpassing current methods. Building on this foundation, a multi-modal fusion framework will integrate complementary imaging data to capture plaque characteristics inaccessible to any single modality. Finally, rigorous clinical validation will establish the prognostic value of these computational biomarkers for predicting cardiovascular events.
+
+### 2. Precision Over Impression
+- Say exactly what you mean
+- Avoid vague language
+- Define terms clearly
+- Quantify when possible
+
+### 3. Evidence-Based Claims
+- Support assertions with citations
+- Distinguish fact from interpretation
+- Acknowledge uncertainty appropriately
+
+### 4. Logical Flow
+- Clear paragraph structure
+- Explicit transitions
+- Coherent argumentation
+
+### 5. Reader-Centered
+- Anticipate reader questions
+- Provide necessary context
+- Guide through complexity
+
+---
+
+## Hedging Language (学术谦逊表达)
+
+### Why Hedging Matters
+Academic writing requires appropriate epistemic humility. Hedging:
+- Reflects genuine uncertainty in research
+- Protects against overgeneralization
+- Maintains scholarly credibility
+- Invites scholarly dialogue
+
+### Hedging Strategies
+
+#### Modal Verbs
+| Strength | Verbs | Example |
+|----------|-------|---------|
+| Strong | will, must | Rarely appropriate |
+| Medium | would, should, can | "This approach can improve..." |
+| Weak | may, might, could | "Results might indicate..." |
+
+#### Hedging Verbs
+```
+Strong claim:  "X proves Y"
+Hedged:        "X suggests/indicates/implies Y"
+               "X appears to demonstrate Y"
+               "X provides evidence for Y"
+```
+
+**Recommended hedging verbs:**
+- suggest, indicate, imply
+- appear, seem, tend
+- propose, hypothesize, speculate
+
+#### Hedging Adverbs
+```
+Strong:  "X is important"
+Hedged:  "X is potentially/possibly/arguably important"
+         "X may be particularly significant"
+```
+
+**Recommended adverbs:**
+- possibly, potentially, perhaps
+- apparently, seemingly
+- generally, typically, often
+- largely, mostly, primarily
+
+#### Hedging Phrases
+```
+"It is possible that..."
+"Evidence suggests that..."
+"This finding indicates that..."
+"The data appear to show..."
+"One interpretation is that..."
+"It could be argued that..."
+```
+
+### Hedging Examples by Section
+
+**Introduction:**
+```
+Too strong:  "AI will transform healthcare."
+Hedged:      "AI has the potential to transform healthcare."
+
+Too strong:  "This gap must be addressed."
+Hedged:      "This gap warrants further investigation."
+```
+
+**Methodology:**
+```
+Too strong:  "This method will produce accurate results."
+Hedged:      "This method is expected to yield reliable results."
+
+Too strong:  "We will prove the hypothesis."
+Hedged:      "We aim to test the hypothesis."
+```
+
+**Results/Expected Outcomes:**
+```
+Too strong:  "The results will show..."
+Hedged:      "The results are anticipated to reveal..."
+             "We expect the findings to indicate..."
+
+Too strong:  "This proves that..."
+Hedged:      "This provides evidence that..."
+             "This suggests that..."
+```
+
+**Significance:**
+```
+Too strong:  "This research will revolutionize..."
+Hedged:      "This research has the potential to advance..."
+             "This work may contribute to..."
+
+Too strong:  "The findings will definitely impact..."
+Hedged:      "The findings could have implications for..."
+```
+
+### Chinese Hedging (中文学术谦逊表达)
+
+| 过强表达 | 适当表达 |
+|----------|----------|
+| 必将证明 | 有望表明、可能揭示 |
+| 肯定会 | 预期将、有可能 |
+| 彻底解决 | 有助于解决、为...提供新思路 |
+| 完全正确 | 基本合理、大体上 |
+| 已经证实 | 研究表明、证据显示 |
+
+**常用谦逊表达:**
+- 初步探讨、尝试分析
+- 可能存在、似乎表明
+- 在一定程度上、从某种意义上说
+- 有待进一步研究、需要更多证据支持
+
+---
+
+## Sentence Structure
+
+### Topic Sentence First
+Every paragraph should begin with a clear topic sentence stating the main point.
+
+```
+Good:
+"Recent advances in transformer architectures have significantly improved
+natural language processing capabilities. [Evidence 1]. [Evidence 2].
+[Synthesis]."
+
+Avoid:
+"[Evidence 1]. [Evidence 2]. Therefore, recent advances in transformer
+architectures have significantly improved NLP capabilities."
+```
+
+### Sentence Templates by Function
+
+#### Introducing Background/Context
+```
+English:
+- "Over the past decade, [X] has emerged as a critical area of research in [field]."
+- "Recent advances in [X] have opened new possibilities for [application]."
+- "[Field] has witnessed remarkable progress in [area], driven by [factors]."
+- "The importance of [X] has been increasingly recognized in [context]."
+
+中文:
+- "近年来,[X]已成为[领域]研究的热点问题。"
+- "随着[X]的快速发展,[Y]日益受到学界关注。"
+- "[领域]在[方面]取得了显著进展,主要体现在[具体表现]。"
+```
+
+#### Identifying Problems/Gaps
+```
+English:
+- "However, [X] remains poorly understood."
+- "Despite these advances, significant challenges persist in [area]."
+- "A critical gap exists in our understanding of [phenomenon]."
+- "Current approaches fail to adequately address [issue]."
+- "The relationship between [A] and [B] has not been systematically examined."
+
+中文:
+- "然而,[X]仍缺乏系统深入的研究。"
+- "尽管如此,[领域]仍面临[问题]的挑战。"
+- "目前研究对[问题]的关注相对不足。"
+- "[A]与[B]之间的关系尚未得到充分探讨。"
+```
+
+#### Stating Objectives
+```
+English:
+- "This research aims to address [X] by [approach]."
+- "The primary objective of this study is to [verb] [what]."
+- "This proposal seeks to investigate [question] through [method]."
+- "Specifically, this study will [objective 1], [objective 2], and [objective 3]."
+
+中文:
+- "本研究旨在通过[方法]探讨[问题]。"
+- "本文的主要目标是[动词][内容]。"
+- "具体而言,本研究将:第一,...;第二,...;第三,..."
+```
+
+#### Justifying Methodology
+```
+English:
+- "Building on previous work, this study proposes to [approach]."
+- "This approach was selected because [justification]."
+- "[Method] offers several advantages for studying [phenomenon]."
+- "[Method] is particularly suited to [research question] because [reasons]."
+
+中文:
+- "在前人研究基础上,本研究拟采用[方法]。"
+- "选择该方法的原因在于:[理由]。"
+- "[方法]对于研究[现象]具有以下优势:..."
+```
+
+#### Describing Expected Contributions
+```
+English:
+- "This work has the potential to advance [field/understanding]."
+- "The findings may contribute to [theoretical/practical area]."
+- "This research could provide insights into [phenomenon]."
+- "The results are expected to have implications for [application]."
+
+中文:
+- "本研究有望推进[领域]的发展。"
+- "研究结果可能为[理论/实践]提供新的视角。"
+- "本研究预期将为[问题]的理解提供新的启示。"
+```
+
+### Sentence Variety
+
+**Vary sentence length:**
+- Mix short (10-15 words) and longer (20-30 words) sentences
+- Use short sentences for key points
+- Use longer sentences for complex relationships
+
+**Vary sentence structure:**
+- Simple: Subject-Verb-Object
+- Compound: Clause + Conjunction + Clause
+- Complex: Main clause + Subordinate clause
+- Periodic: Build to main point at end
+
+---
+
+## Transitions and Connectors
+
+### Addition
+- Moreover, Furthermore, In addition, Additionally
+- Also, Besides, Equally important
+- 此外,另外,同时,与此同时
+
+### Contrast
+- However, Nevertheless, Nonetheless
+- Conversely, On the other hand, In contrast
+- Yet, Still, Although, While
+- 然而,但是,尽管如此,相反
+
+### Causation
+- Therefore, Consequently, As a result, Thus
+- Hence, Accordingly, For this reason
+- 因此,由此可见,正因如此
+
+### Emphasis
+- Importantly, Notably, Significantly
+- Of particular note, It is worth noting
+- Indeed, In fact, Particularly
+- 值得注意的是,尤其重要的是,特别是
+
+### Sequence
+- First, Second, Third, Finally
+- Initially, Subsequently, Eventually
+- Following this, Prior to, After
+- 首先,其次,最后,随后
+
+### Example
+- For example, For instance, Specifically
+- Such as, Including, Namely
+- To illustrate, As demonstrated by
+- 例如,具体而言,以...为例
+
+### Summary
+- In summary, To summarize, In conclusion
+- Overall, In brief, To conclude
+- 综上所述,总之,概言之
+
+### Using Transitions Effectively
+
+**Start of paragraph:**
+```
+"Moreover, recent studies have shown..."
+"However, this approach has limitations..."
+"In addition to these theoretical contributions..."
+```
+
+**Mid-paragraph:**
+```
+"This finding is particularly important because..."
+"Consequently, researchers have begun to..."
+```
+
+**Between paragraphs:**
+```
+"Building on these observations, the next section..."
+"Having established the theoretical framework, we now turn to..."
+```
+
+---
+
+## Paragraph Structure
+
+### The PEEL Structure
+```
+P - Point (topic sentence)
+E - Evidence (supporting data/citations)
+E - Explanation (analysis of evidence)
+L - Link (connection to next idea or main argument)
+```
+
+### Example Paragraph
+
+```
+[Point] Machine learning approaches have shown considerable promise for
+medical image analysis. [Evidence] Recent studies have demonstrated that
+convolutional neural networks can achieve diagnostic accuracy comparable
+to expert radiologists in detecting certain conditions (Smith et al., 2023;
+Jones, 2024). [Evidence] Furthermore, these systems have been successfully
+deployed in clinical settings, with one large-scale trial reporting a 15%
+reduction in diagnostic errors (Chen et al., 2024). [Explanation] These
+advances suggest that AI-assisted diagnosis could address the growing
+shortage of medical imaging specialists while maintaining high standards
+of care. [Link] However, significant challenges remain in ensuring the
+generalizability of these systems across diverse patient populations.
+```
+
+### Paragraph Length
+- Academic writing: 4-8 sentences per paragraph
+- Aim for 100-200 words per paragraph
+- One main idea per paragraph
+
+### Paragraph Cohesion Techniques
+
+**Repetition of key terms:**
+```
+"The study examined neural network architectures. These architectures..."
+```
+
+**Pronouns:**
+```
+"Researchers proposed a new framework. They demonstrated that it..."
+```
+
+**Synonyms and related terms:**
+```
+"...machine learning algorithms. These computational approaches..."
+```
+
+**Transitional phrases:**
+```
+"Building on this foundation... In light of these findings..."
+```
+
+---
+
+## Citation Integration
+
+### Citation Styles in Text
+
+**Integral citations** (author as subject):
+```
+"Smith et al. (2023) demonstrated that..."
+"According to Jones (2024), the relationship between..."
+"As Chen and colleagues (2024) argue, ..."
+```
+
+**Non-integral citations** (parenthetical):
+```
+"Recent studies have shown significant improvements (Smith et al., 2023)."
+"This relationship has been well-documented (Jones, 2024; Chen, 2024)."
+```
+
+### Reporting Verbs by Strength
+
+| Strength | Verbs | Use When |
+|----------|-------|----------|
+| Strong | demonstrate, establish, prove | Well-supported findings |
+| Medium | show, indicate, suggest, reveal | Typical research findings |
+| Weak | propose, speculate, claim, argue | Contested or preliminary |
+| Neutral | report, describe, state, note | Describing without evaluation |
+
+### Citation Density Guidelines
+- Introduction: Moderate (support key claims)
+- Literature Review: High (comprehensive coverage)
+- Methodology: Low-Moderate (cite established methods)
+- Discussion: Moderate (compare with prior work)
+
+### Synthesizing Multiple Sources
+
+**Agreement:**
+```
+"Multiple studies have confirmed this relationship (Smith, 2022; Jones,
+2023; Chen, 2024)."
+
+"Researchers consistently report that... (Author1, Year; Author2, Year)."
+```
+
+**Disagreement:**
+```
+"While Smith (2022) argues that X, Jones (2023) presents evidence for Y."
+
+"The evidence is mixed, with some studies supporting X (Author1, Year)
+and others finding Y (Author2, Year)."
+```
+
+**Building on prior work:**
+```
+"Extending the work of Smith (2022), this study..."
+
+"Building on Jones's (2023) framework, we propose..."
+```
+
+---
+
+## Academic Vocabulary
+
+### Words to Avoid
+
+| Avoid | Use Instead |
+|-------|-------------|
+| a lot of | numerous, considerable, substantial |
+| big | significant, substantial, major |
+| get | obtain, acquire, achieve |
+| thing | factor, element, aspect, component |
+| good | effective, beneficial, advantageous |
+| bad | detrimental, adverse, problematic |
+| very | highly, particularly, considerably |
+| really | significantly, substantially |
+| kind of / sort of | somewhat, to some extent |
+| basically | fundamentally, essentially |
+
+### Precision in Word Choice
+
+**Quantity:**
+```
+Vague:    "many studies"
+Precise:  "numerous studies" / "several studies" / "a substantial body of research"
+```
+
+**Degree:**
+```
+Vague:    "very important"
+Precise:  "crucial" / "essential" / "fundamental"
+```
+
+**Time:**
+```
+Vague:    "recently"
+Precise:  "in the past five years" / "since 2020"
+```
+
+### Academic Verb Choices
+
+| Purpose | Strong Verbs |
+|---------|--------------|
+| Showing | demonstrate, illustrate, reveal |
+| Arguing | contend, assert, maintain |
+| Analyzing | examine, investigate, assess |
+| Comparing | contrast, differentiate, distinguish |
+| Explaining | elucidate, clarify, account for |
+| Increasing | enhance, augment, amplify |
+| Decreasing | diminish, reduce, attenuate |
+
+---
+
+## Common Errors to Avoid
+
+### Informal Language
+```
+Avoid:    "Scientists have been looking into this problem."
+Better:   "Researchers have investigated this problem."
+
+Avoid:    "This method is way better than the old one."
+Better:   "This method demonstrates significant improvements over previous approaches."
+```
+
+### Absolute Claims
+```
+Avoid:    "This proves that X causes Y."
+Better:   "This provides evidence that X may influence Y."
+
+Avoid:    "It is obvious that..."
+Better:   "Evidence suggests that..."
+```
+
+### Colloquialisms
+```
+Avoid:    "at the end of the day" / "in a nutshell"
+Better:   "ultimately" / "in summary"
+
+Avoid:    "a game-changer"
+Better:   "a significant advancement"
+```
+
+### Redundancy
+```
+Avoid:    "past history" / "future plans" / "basic fundamentals"
+Better:   "history" / "plans" / "fundamentals"
+
+Avoid:    "in order to"
+Better:   "to"
+```
+
+### Anthropomorphism (attributing human qualities to non-human things)
+```
+Avoid:    "The data wants to show..."
+Better:   "The data indicate..."
+
+Avoid:    "This study tries to..."
+Better:   "This study aims to..."
+```
+
+### First Person Overuse
+```
+Avoid:    "I think this is important because..."
+Better:   "This is significant because..."
+
+Acceptable: "We propose..." / "Our study..."
+```
+
+---
+
+## Writing Checklist
+
+### Before Writing
+- [ ] Research question clearly defined
+- [ ] Key literature identified
+- [ ] Outline prepared
+- [ ] Target audience understood
+
+### During Writing
+- [ ] Topic sentence for each paragraph
+- [ ] Evidence supports all claims
+- [ ] Hedging used appropriately
+- [ ] Transitions connect ideas
+- [ ] Citations integrated smoothly
+
+### After Writing
+- [ ] Formal academic tone throughout
+- [ ] No colloquialisms or informal language
+- [ ] Appropriate hedging (not over-claiming)
+- [ ] Clear logical flow
+- [ ] Consistent citation format
+- [ ] Abbreviations defined on first use
+- [ ] No grammatical errors
+- [ ] Word count within target range
+- [ ] **Prose-based writing** (minimal bullet points)
+- [ ] **Figure suggestions included** (3-5 for typical proposal)
+- [ ] **No appendix sections**
+
+---
+
+## Figure Suggestions
+
+### Purpose of Figures in Proposals
+
+Figures significantly enhance research proposals by:
+- Communicating complex ideas visually
+- Breaking up dense text for improved readability
+- Demonstrating the applicant's communication skills
+- Providing concrete visualization of methodology
+
+### Figure Suggestion Format
+
+Include figure suggestions at appropriate locations using this format:
+
+```markdown
+> **[Figure 1 Suggestion]** *Title: Overview of the proposed research framework*
+>
+> Content: A flowchart illustrating the three-phase research design, showing
+> data flow from imaging modalities (CCTA, IVUS, OCT) through AI processing
+> modules to clinical outcome predictions. Include distinct visual elements
+> for each phase with connecting arrows indicating data flow.
+>
+> Recommended style: Clean vector graphics using a consistent color palette
+> (e.g., blues for data inputs, greens for processing, oranges for outputs).
+> Consider using icons for different imaging modalities.
+```
+
+### Recommended Figures by Section
+
+| Section | Figure Type | Example |
+|---------|-------------|---------|
+| **Introduction** | Conceptual diagram | Research scope and positioning within the field |
+| **Literature Review** | Timeline or taxonomy | Evolution of methods; Classification of approaches |
+| **Methodology** | Flowchart/Architecture | Research framework; Network architecture; Data pipeline |
+| **Timeline** | Gantt chart | Research phases with milestones and dependencies |
+| **Significance** | Impact diagram | Connections between contributions and beneficiaries |
+
+### Figure Suggestion Principles
+
+1. **Strategic placement**: 3-5 figures for a 3,000-word proposal
+2. **No figure in Abstract**: Abstract should stand alone without visual elements
+3. **Self-explanatory**: Each figure should convey key information clearly
+4. **Consistent style**: Unified visual language throughout
+5. **Professional tools**: Suggest appropriate tools (Illustrator, draw.io, BioRender)
+6. **Accessibility**: Colorblind-friendly palettes, sufficient contrast
+
+### Example Figure Suggestions
+
+**For Methodology Section:**
+> **[Figure 2 Suggestion]** *Title: Deep learning architecture for multimodal plaque analysis*
+>
+> Content: A schematic showing the neural network architecture with three parallel
+> encoder branches (one for each imaging modality), a cross-modal attention fusion
+> module in the center, and multiple output heads for segmentation, classification,
+> and risk prediction tasks.
+>
+> Style: Technical diagram with layer representations, dimension annotations,
+> and data flow arrows. Use consistent shapes for similar operations.
+
+**For Timeline Section:**
+> **[Figure 3 Suggestion]** *Title: Research timeline and milestones*
+>
+> Content: Gantt chart showing four research phases across 48 months, with
+> overlapping periods for parallel activities. Include diamond markers for
+> key milestones (model completion, validation study, thesis submission).
+>
+> Style: Horizontal bar chart with color-coded phases, clear date markers,
+> and milestone annotations.

+ 201 - 0
skills/research-skills/skills/literature-scout/SKILL.md

@@ -0,0 +1,201 @@
+---
+name: literature-scout
+description: >
+  文献猎手 (Literature Scout) — 负责多源文献检索、筛选和分类,构建文献矩阵。
+  当被研究主管指派收集文献时激活。使用 Exa、ArXiv API、Semantic Scholar 等工具
+  进行系统化文献检索。
+metadata:
+  author: 研究主管
+  version: "1.0.0"
+  role: literature-scout
+---
+
+# Literature Scout Skill — 文献猎手
+
+系统化检索、筛选和组织 AI/ML 领域学术文献。
+
+## 角色定位
+
+核心职责:
+1. **多源检索** — 从 ArXiv、Semantic Scholar、Papers With Code 等多个来源收集文献
+2. **质量筛选** — 按相关性、影响力、新颖性筛选论文
+3. **分类组织** — 按方法分类框架组织文献
+4. **覆盖度分析** — 确保各分类文献充足
+
+## 检索工具与策略
+
+### 1. Exa 语义搜索(首选)
+
+最适合:自然语言描述的主题检索
+
+```
+搜索策略:
+- 用自然语言描述研究主题
+- 限定 arxiv.org 域名:includeDomains: ["arxiv.org"]
+- 限定时间:startPublishedDate / endPublishedDate
+- 提取摘要:contents.text = true
+- 每次 10-20 条结果,多轮检索
+```
+
+示例查询:
+- "recent advances in vision-language models 2024 2025"
+- "large language model reasoning chain of thought"
+- "diffusion models for image generation survey"
+
+### 2. ArXiv API
+
+最适合:按分类号和关键词精确检索
+
+```
+API 端点: http://export.arxiv.org/api/query
+常用分类:
+  - cs.CV (Computer Vision)
+  - cs.CL (Computation and Language)
+  - cs.LG (Machine Learning)
+  - cs.AI (Artificial Intelligence)
+  - stat.ML (Machine Learning - Statistics)
+
+URL 编码注意事项:
+  - 使用 %20AND%20 连接条件
+  - 使用 %28 %29 表示括号
+  - 返回 Atom XML 格式
+```
+
+### 3. Semantic Scholar API
+
+最适合:引用关系分析、影响力评估
+
+```
+搜索端点: https://api.semanticscholar.org/graph/v1/paper/search
+字段: title,authors,year,citationCount,abstract,externalIds
+速率限制: 100 次/5 分钟(无 Key),建议每次请求间隔 3 秒
+```
+
+通过引用数筛选高影响力论文:
+- 核心论文: citationCount ≥ 50
+- 重要论文: citationCount ≥ 20
+- 新兴论文: 近 1 年发表,citationCount ≥ 5
+
+### 4. Papers With Code
+
+最适合:获取 SOTA 排行和代码可用性
+
+通过 Exa 搜索 paperswithcode.com 获取:
+- SOTA 方法排名
+- 基准数据集信息
+- 代码实现链接
+
+## 检索流程
+
+### Step 1: 理解任务
+
+从 IMPLEMENTATION_PLAN.md 获取:
+- 综述主题和范围
+- 分类框架
+- 目标文献量
+- 关键词列表
+- 时间范围
+
+### Step 2: 多源检索
+
+按优先级执行:
+1. **Exa 广度搜索** — 每个分类 2-3 个语义查询,获取初步文献集
+2. **ArXiv 精确检索** — 补充 Exa 可能遗漏的特定分类论文
+3. **Semantic Scholar 引用追踪** — 从核心论文出发,沿引用链发现相关工作
+4. **Papers With Code** — 补充 SOTA 方法和基准数据
+
+### Step 3: 去重与筛选
+
+去重优先级:
+1. ArXiv ID 精确匹配
+2. DOI 匹配
+3. 标题模糊匹配(相似度 > 90%)
+
+多源保留规则:同一论文在多个来源出现时,保留信息最完整的版本
+
+筛选标准:
+- **相关性**: 与综述主题直接相关
+- **质量**: 顶会/顶刊发表 或 引用数高
+- **时效性**: 近 3 年优先
+- **多样性**: 覆盖各方法类别
+
+### Step 4: 分类与组织
+
+按 IMPLEMENTATION_PLAN.md 中的分类框架将文献归类,构建文献矩阵。
+
+### Step 5: 覆盖度分析
+
+检查每个分类的文献数量:
+- **成熟类别**: ≥ 5 篇
+- **新兴类别**: ≥ 2 篇(标注"新兴方向")
+- **总量**: 达到目标文献量的 80% 以上
+
+不足时执行补充检索。
+
+### Step 6: 输出文献矩阵
+
+## literature_matrix.md 格式
+
+```markdown
+---
+stats:
+  total_collected: N
+  after_screening: N
+  by_category:
+    category_a: N
+    category_b: N
+  top20_ready: true/false
+---
+
+# Literature Matrix: [综述标题]
+
+## 概览
+- 检索日期: YYYY-MM-DD
+- 总收集: N 篇
+- 筛选后: N 篇
+- 来源分布: Exa N% | ArXiv N% | S2 N% | PwC N%
+
+## 分类汇总
+
+| 分类 | 子分类 | 论文数 | 核心论文 |
+|------|--------|--------|----------|
+| [Cat1] | [Sub1] | N | [paper1], [paper2] |
+
+## 详细文献列表
+
+### [Category 1]
+
+| # | 标题 | 作者 | 年份 | 来源 | 引用数 | ArXiv ID | 类别标签 |
+|---|------|------|------|------|--------|----------|----------|
+| 1 | [Title] | [Authors] | YYYY | [Venue] | N | XXXX.XXXXX | [tag] |
+
+### [Category 2]
+...
+
+## Top 20 核心论文
+
+按影响力和相关性排序的 20 篇必读论文:
+
+| 排名 | 标题 | 理由 |
+|------|------|------|
+| 1 | [Title] | [为什么是核心论文] |
+
+## 覆盖度分析
+
+| 分类 | 目标 | 实际 | 状态 |
+|------|------|------|------|
+| [Cat1] | ≥5 | N | ✅/⚠️ |
+
+## 检索日志
+
+| 工具 | 查询 | 结果数 | 筛选后 |
+|------|------|--------|--------|
+| Exa | "[query]" | N | N |
+```
+
+## 交接
+
+完成后:
+1. 更新 IMPLEMENTATION_PLAN.md Phase 2 状态为「已完成」
+2. 在 literature_matrix.md 末尾 @mention 论文分析师
+3. 如遇问题 @mention 研究主管

+ 183 - 0
skills/research-skills/skills/paper-analyst/SKILL.md

@@ -0,0 +1,183 @@
+---
+name: paper-analyst
+description: >
+  论文分析师 (Paper Analyst) — 负责精读论文、提取方法细节、构建对比表。
+  当被研究主管或文献侦查员指派分析论文时激活。对 Top 20 核心论文进行结构化分析,
+  生成论文分析卡片和跨论文对比表。
+metadata:
+  author: 研究主管
+  version: "1.0.0"
+  role: paper-analyst
+---
+
+# Paper Analyst Skill — 论文分析师
+
+精读论文、提取方法细节、构建结构化对比表。
+
+## 角色定位
+
+核心职责:
+1. **论文精读** — 深入理解核心论文的方法、实验、贡献
+2. **结构化提取** — 按统一模板提取方法信息
+3. **对比分析** — 构建跨论文对比表,发现技术趋势
+4. **知识凝练** — 总结各类方法的共性和差异
+
+## 分析流程
+
+### Step 1: 理解任务
+
+从以下文件获取上下文:
+- `IMPLEMENTATION_PLAN.md` — 综述范围、分类框架、大纲
+- `AGENTS.md` — 术语规范
+- `literature_matrix.md` — 文献列表和分类
+
+### Step 2: 确定分析范围
+
+- **精读对象**: Top 20 核心论文(literature_matrix.md 中标注)
+- **快速扫描**: 其余论文的摘要和关键结果
+- 优先级: 核心论文 > 高引论文 > 最新论文
+
+### Step 3: 论文精读
+
+对每篇核心论文,通过以下方式获取内容:
+1. **Exa 搜索** — 获取 ArXiv 页面的文本内容
+2. **WebFetch** — 访问论文 URL 提取详情
+3. **Semantic Scholar** — 获取引用关系和元数据
+
+提取以下信息填入分析卡片。
+
+### Step 4: 填写分析卡片
+
+每篇论文生成一个分析文件: `paper_analyses/{arxiv-id}.md`
+
+### Step 5: 构建对比表
+
+跨论文对比,生成 `comparison_tables.md`
+
+## 论文分析卡片模板
+
+```markdown
+# {Paper Title}
+
+## 基本信息
+- **作者**: [Authors]
+- **年份**: YYYY
+- **来源**: [Venue/ArXiv]
+- **ArXiv ID**: XXXX.XXXXX
+- **引用数**: N
+- **代码**: [URL or N/A]
+
+## 一句话总结
+[用一句话概括这篇论文的核心贡献]
+
+## 问题定义
+- **任务**: [具体任务]
+- **挑战**: [该论文要解决的核心挑战]
+- **动机**: [为什么现有方法不够好]
+
+## 方法
+
+### 核心思路
+[2-3 段描述方法的核心创新]
+
+### 关键组件
+1. **[Component 1]**: [描述]
+2. **[Component 2]**: [描述]
+3. **[Component 3]**: [描述]
+
+### 技术细节
+- 模型架构: [描述]
+- 损失函数: [描述]
+- 训练策略: [描述]
+
+## 实验
+
+### 数据集
+| 数据集 | 规模 | 任务 |
+|--------|------|------|
+| [Name] | [Size] | [Task] |
+
+### 主要结果
+| 指标 | 本文方法 | 基线最优 | 提升 |
+|------|----------|----------|------|
+| [Metric] | X.XX | X.XX | +X.X% |
+
+### 消融实验要点
+- [关键发现1]
+- [关键发现2]
+
+## 优势与局限
+
+### 优势
+1. [Strength 1]
+2. [Strength 2]
+
+### 局限
+1. [Limitation 1]
+2. [Limitation 2]
+
+## 与综述的关联
+- **所属分类**: [Category > Subcategory]
+- **在综述中的位置**: [Section X.X]
+- **与其他论文的关系**: [互补/竞争/改进自...]
+```
+
+## 对比表模板
+
+### comparison_tables.md 格式
+
+```markdown
+# Comparison Tables
+
+## Table 1: 方法总览对比
+
+| 方法 | 年份 | 类别 | 核心创新 | 数据集 | 主要指标 | 代码 |
+|------|------|------|----------|--------|----------|------|
+| [Name] | YYYY | [Cat] | [Innovation] | [Data] | [Score] | ✅/❌ |
+
+## Table 2: 性能对比(按数据集)
+
+### Dataset: [Name]
+
+| 方法 | [Metric1] | [Metric2] | [Metric3] | 参数量 | 推理速度 |
+|------|-----------|-----------|-----------|--------|----------|
+| [Method] | X.XX | X.XX | X.XX | XM | X ms |
+
+## Table 3: 方法特征对比
+
+| 方法 | 预训练 | 多模态 | 可解释性 | 计算成本 | 数据需求 |
+|------|--------|--------|----------|----------|----------|
+| [Method] | ✅/❌ | ✅/❌ | 高/中/低 | 高/中/低 | 高/中/低 |
+
+## 趋势分析
+
+### 技术演进
+- [趋势1]: [描述]
+- [趋势2]: [描述]
+
+### 研究空白
+- [Gap1]: [描述]
+- [Gap2]: [描述]
+```
+
+## 分析质量标准
+
+### 每篇分析卡片
+- [ ] 所有字段填写完整
+- [ ] 一句话总结准确凝练
+- [ ] 方法描述足以让读者理解核心创新
+- [ ] 实验数据准确(交叉核实)
+- [ ] 优势局限分析客观
+
+### 对比表
+- [ ] 覆盖所有主要方法
+- [ ] 指标数据来源可追溯
+- [ ] 对比维度全面且有意义
+- [ ] 趋势分析有数据支撑
+
+## 交接
+
+完成后:
+1. 更新 IMPLEMENTATION_PLAN.md Phase 3 状态为「已完成」
+2. 在 comparison_tables.md 末尾 @mention 论文撰写员
+3. 如遇问题 @mention 研究主管

+ 175 - 0
skills/research-skills/skills/quality-editor/SKILL.md

@@ -0,0 +1,175 @@
+---
+name: quality-editor
+description: >
+  质量编辑 (Quality Editor) — 负责综述论文的术语一致性、引用完整性和
+  整体质量审校。当被研究主管或论文撰写员指派审校时激活。生成审校报告
+  并修正发现的问题。
+metadata:
+  author: 研究主管
+  version: "1.0.0"
+  role: quality-editor
+---
+
+# Quality Editor Skill — 质量编辑
+
+审校综述论文的术语一致性、引用完整性和整体质量。
+
+## 角色定位
+
+核心职责:
+1. **术语审校** — 检查全文术语使用一致性
+2. **引用审校** — 验证引用完整性和格式规范
+3. **结构审校** — 检查论文结构完整性和逻辑性
+4. **语言审校** — 学术英语写作规范检查
+5. **修订建议** — 生成审校报告并提出具体修改建议
+
+## 审校流程
+
+### Step 1: 准备
+
+从以下文件获取上下文:
+- `AGENTS.md` — 术语表、写作规范
+- `IMPLEMENTATION_PLAN.md` — 论文大纲和要求
+- `manuscript_draft.md` — 待审稿件
+- `literature_matrix.md` — 文献矩阵(引用核查)
+- `comparison_tables.md` — 对比表数据(数据核查)
+
+### Step 2: 术语一致性检查
+
+1. 提取 AGENTS.md 中的术语统一表
+2. 全文检索每个术语的所有变体
+3. 标注不一致之处
+4. 检查缩写首次出现时是否有定义
+
+检查项:
+- [ ] 所有术语与 AGENTS.md 统一表一致
+- [ ] 缩写首次使用时有全称
+- [ ] 同一概念全文使用同一表述
+- [ ] 专有名词拼写正确
+
+### Step 3: 引用完整性检查
+
+1. 提取所有引用标记 [N]
+2. 与参考文献列表交叉核实
+3. 检查文献矩阵中的核心论文是否都被引用
+4. 验证引用编号连续性
+
+检查项:
+- [ ] 每个 [N] 在参考文献列表中有对应条目
+- [ ] 参考文献列表中的每篇在正文中被引用
+- [ ] 引用编号连续(无跳号)
+- [ ] 核心论文(Top 20)全部被引用
+- [ ] 引用格式统一
+
+### Step 4: 结构完整性检查
+
+1. 对照 IMPLEMENTATION_PLAN.md 中的大纲
+2. 检查各节是否完整
+3. 验证表格和图表编号
+
+检查项:
+- [ ] 大纲中的所有节均已撰写
+- [ ] Key Points 部分存在(3-5 条)
+- [ ] Abstract 存在且符合字数要求
+- [ ] 每个方法类别有对比表
+- [ ] 表格编号连续
+- [ ] 图表编号连续
+- [ ] 每节有过渡段落
+
+### Step 5: 语言规范检查
+
+检查项:
+- [ ] 使用 hedging language(may, suggests, appears to)
+- [ ] 无绝对化表述(best, proves, definitely)
+- [ ] 每个论断有引用支撑
+- [ ] 段落结构规范(主题句→证据→分析→过渡)
+- [ ] 段落长度适中(100-200 词)
+- [ ] 无语法错误
+- [ ] 学术语域恰当
+
+### Step 6: 数据准确性抽查
+
+从 paper_analyses/ 中随机抽取 5-10 篇,核查:
+- [ ] 引用的性能数据与分析卡片一致
+- [ ] 方法描述与分析卡片一致
+- [ ] 作者名拼写正确
+
+### Step 7: 生成审校报告
+
+## review_report.md 格式
+
+```markdown
+# Review Report: [综述标题]
+
+## 审校概览
+- **审校日期**: YYYY-MM-DD
+- **稿件版本**: v1.0
+- **总体评价**: [优秀/良好/需修订/需大改]
+
+## 统计摘要
+| 检查项 | 状态 | 问题数 |
+|--------|------|--------|
+| 术语一致性 | ✅/⚠️/❌ | N |
+| 引用完整性 | ✅/⚠️/❌ | N |
+| 结构完整性 | ✅/⚠️/❌ | N |
+| 语言规范 | ✅/⚠️/❌ | N |
+| 数据准确性 | ✅/⚠️/❌ | N |
+
+## 详细问题列表
+
+### 术语一致性
+| # | 位置 | 问题 | 建议修改 | 严重度 |
+|---|------|------|----------|--------|
+| 1 | Section X.X | "XXX" 应为 "YYY" | 替换为统一术语 | 低/中/高 |
+
+### 引用完整性
+| # | 位置 | 问题 | 建议修改 | 严重度 |
+|---|------|------|----------|--------|
+| 1 | Section X.X | 缺少引用 | 添加 [ref] | 中 |
+
+### 结构完整性
+| # | 位置 | 问题 | 建议修改 | 严重度 |
+|---|------|------|----------|--------|
+| 1 | Section X | 缺少对比表 | 补充 Table N | 高 |
+
+### 语言规范
+| # | 位置 | 问题 | 建议修改 | 严重度 |
+|---|------|------|----------|--------|
+| 1 | Section X.X, Para Y | 绝对化表述 | 改为 hedging | 中 |
+
+### 数据准确性
+| # | 位置 | 问题 | 建议修改 | 严重度 |
+|---|------|------|----------|--------|
+| 1 | Table N | 数据不一致 | 核实并修正 | 高 |
+
+## 修订建议摘要
+
+### 必须修改 (高严重度)
+1. [Issue]
+2. [Issue]
+
+### 建议修改 (中严重度)
+1. [Issue]
+2. [Issue]
+
+### 可选改进 (低严重度)
+1. [Issue]
+2. [Issue]
+```
+
+## 自动修正
+
+对于明确的低风险问题,直接在 manuscript_draft.md 中修正:
+- 术语替换(有明确统一规则的)
+- 缩写补充定义
+- 引用编号修正
+- 明显拼写错误
+
+对于需要判断的问题,只在报告中标注,不自行修改。
+
+## 交接
+
+完成后:
+1. 更新 IMPLEMENTATION_PLAN.md Phase 5 状态为「已完成」
+2. 在 review_report.md 末尾 @mention 研究主管
+3. 标注哪些已自动修正、哪些需研究主管决定

+ 122 - 0
skills/research-skills/skills/survey-director/SKILL.md

@@ -0,0 +1,122 @@
+---
+name: survey-director
+description: >
+  综述总监 (Survey Director) — 负责AI/ML前沿综述论文的选题规划、大纲设计、
+  任务分配与终审。当用户提出综述写作需求时激活。协调 5 个 Agent 完成从选题到终稿的全流程。
+metadata:
+  author: 研究主管
+  version: "1.0.0"
+  role: survey-director
+---
+
+# Survey Director Skill — 综述总监
+
+协调 5 个 AI Agent 协作完成顶会级 AI/ML 综述论文写作。
+
+## 角色定位
+
+核心职责:
+1. **选题规划** — 分析研究热点、确定综述范围和创新点
+2. **大纲设计** — 设计论文结构、定义各章节内容要求
+3. **任务分配** — 按工作流调度各 Agent,确保交接顺畅
+4. **质量把控** — 每阶段输出审查 + 终审定稿
+
+## 协作团队
+
+| 角色 | Agent | ID |
+|------|-------|----|
+| 综述总监 (我) | 研究主管 | 177704332823000 |
+| 文献猎手 | 文献侦查员 | 177704336830000 |
+| 论文分析师 | 论文分析师 | 177704340589000 |
+| 综述写手 | 论文撰写员 | 177704343200000 |
+| 质量编辑 | 质量编辑员 | 177704346680000 |
+
+## 工作流程
+
+### Phase 1: 项目初始化 (我负责)
+
+**输入**: 用户选题需求
+**输出**: 项目目录 + IMPLEMENTATION_PLAN.md + AGENTS.md
+
+步骤:
+1. 分析选题(范围、目标文献量、方法分类框架、创新点)
+2. 创建项目目录结构
+3. 创建 AGENTS.md(术语统一 + 写作风格 + 引用格式 + 交接协议)
+4. 创建 IMPLEMENTATION_PLAN.md(6 阶段计划 + 检索策略 + 论文大纲)
+5. @mention 文献侦查员启动 Phase 2
+
+### Phase 2-5: 调度与审查
+
+每阶段:
+- 检查上一阶段输出是否满足质量门控
+- 不满足则打回修订
+- 满足则 @mention 下一位 Agent
+
+### Phase 6: 终审定稿 (我负责)
+
+终审流程:
+1. 通读全文,评估整体连贯性
+2. 核查 review_report.md 中所有问题是否已修正
+3. 验证创新点和贡献是否充分体现
+4. 检查摘要、引言、结论的一致性
+5. 确认参考文献格式统一
+6. 生成 manuscript_final.md
+
+## 选题分析框架
+
+### 1. 领域定位
+- AI 子领域归属
+- 目标顶会(NeurIPS / ICML / ICLR / CVPR / ACL / AAAI)
+- 现有综述差异化分析
+
+### 2. 范围界定
+- 时间范围(近 2-3 年为主)
+- 方法范围
+- 应用范围
+
+### 3. 分类框架设计
+- 参考 references/DOMAINS.md
+- 设计 2-3 层分类体系
+- 确保 MECE(互斥且完整)
+
+### 4. 文献检索策略
+- 核心关键词列表
+- ArXiv 分类号
+- Semantic Scholar / Exa 查询策略
+- Papers With Code 任务/数据集对应
+
+## 项目文件结构
+
+```
+{space}/{project-name}/
+├── AGENTS.md                    # 项目级规则
+├── IMPLEMENTATION_PLAN.md       # 分阶段执行计划
+├── literature_matrix.md         # 文献矩阵
+├── paper_analyses/              # 逐篇分析
+├── comparison_tables.md         # 对比表汇总
+├── manuscript_draft.md          # 综述草稿
+├── review_report.md             # 审校报告
+└── manuscript_final.md          # 终稿
+```
+
+## 模板
+
+详见 references/TEMPLATES.md。
+
+## 质量检查清单(终审用)
+
+### 结构完整性
+- [ ] 摘要、引言、结论一致
+- [ ] 所有分类均已覆盖
+- [ ] 每节有过渡段
+
+### 内容质量
+- [ ] 方法描述准确公正
+- [ ] 对比分析有深度
+- [ ] 局限性和未来方向具体可行
+
+### 形式规范
+- [ ] 术语一致,缩写首次定义
+- [ ] 参考文献格式统一
+- [ ] 表格和图表编号连续
+- [ ] 60-120 篇参考文献

+ 200 - 0
skills/research-skills/skills/survey-writer/SKILL.md

@@ -0,0 +1,200 @@
+---
+name: survey-writer
+description: >
+  综述写手 (Survey Writer) — 负责按模板撰写综述论文各章节。
+  当被研究主管或论文分析师指派写作时激活。基于论文分析卡片和对比表,
+  按学术写作规范撰写完整的综述论文。
+metadata:
+  author: 研究主管
+  version: "1.0.0"
+  role: survey-writer
+---
+
+# Survey Writer Skill — 综述写手
+
+按学术规范撰写顶会级 AI/ML 综述论文各章节。
+
+## 角色定位
+
+核心职责:
+1. **章节撰写** — 按大纲和模板撰写各章节
+2. **文献整合** — 将论文分析融入叙事结构
+3. **表格生成** — 生成各类对比表和汇总表
+4. **引用管理** — 确保每个论断有引用支撑
+
+## 写作流程
+
+### Step 1: 理解任务
+
+从以下文件获取上下文:
+- `IMPLEMENTATION_PLAN.md` — 论文大纲、各章节内容要求
+- `AGENTS.md` — 术语规范、写作风格、引用格式
+- `paper_analyses/` — 逐篇论文分析卡片
+- `comparison_tables.md` — 对比表数据
+
+### Step 2: 写作准备
+
+1. 精读 AGENTS.md 中的术语表和写作规范
+2. 浏览所有论文分析卡片,建立知识图谱
+3. 确认论文大纲各节的内容深度要求
+4. 规划每节的叙事结构和论文引用分配
+
+### Step 3: 分节写作
+
+按大纲顺序,逐节撰写。每节写作遵循以下流程:
+1. 写段落大纲(每段的主题句)
+2. 扩展为完整段落
+3. 插入引用和数据
+4. 添加过渡句
+5. 自查该节的完整性
+
+### Step 4: 整合
+
+1. 检查全文连贯性
+2. 统一术语和符号
+3. 调整引用编号
+4. 补充缺失的过渡
+
+## 写作规范
+
+### 学术语言
+
+**使用 hedging language:**
+- "may", "might", "could"
+- "suggests", "indicates", "appears to"
+- "has shown promising results"
+- "one possible explanation is..."
+
+**禁止绝对化表述:**
+- "is the best method" → "achieves state-of-the-art performance"
+- "proves that" → "provides evidence that"
+- "definitely" → "likely"
+- "always" → "typically" / "in most cases"
+
+### 段落结构
+
+```
+主题句 (main claim)
+  → 支撑证据 (citations + data)
+  → 分析评价 (critical evaluation)
+  → 过渡句 (transition to next paragraph)
+```
+
+每个段落 100-200 词,聚焦一个论点。
+
+### 引用模式
+
+```markdown
+# 数据引用
+"...achieved a Dice score of 0.89 [23]."
+
+# 方法引用
+"Gu et al. [45] proposed a novel approach that..."
+
+# 多引用
+"Several studies have demonstrated the effectiveness of this approach [12, 15, 23]."
+
+# 对比引用
+"While [12] focused on spatial features, [15] addressed temporal dynamics."
+```
+
+### 方法描述模板
+
+```markdown
+**[Method Name]** [Author] et al. [ref] proposed [method name], which [core innovation].
+The key components include: (1) [component 1]; (2) [component 2]; (3) [component 3].
+Evaluated on [dataset], the method achieves [metric] of [value],
+representing a [X%] improvement over [baseline].
+However, [limitation].
+```
+
+## 各章节写作指南
+
+### Abstract (150-250 词)
+- 背景 (1-2 句)
+- 现有问题 (1 句)
+- 本文贡献 (2-3 句)
+- 主要发现 (2-3 句)
+- 结论 (1 句)
+
+### 1. Introduction
+- 1.1 背景与动机: 领域重要性 + 技术发展历程
+- 1.2 现有综述的局限: 对比说明我们的差异化
+- 1.3 本文贡献: 明确列出 3-5 点贡献
+- 1.4 组织结构: 简述各章内容
+
+### 2. Background
+- 2.1 问题定义: 形式化描述
+- 2.2 基础技术: 必要的技术背景
+- 2.3 评估指标: 定义所有使用的指标
+
+### 3. Taxonomy of Methods (主体)
+对每个方法类别:
+- 类别概述 (1-2 段)
+- 代表性方法描述 (每篇 1 段)
+- 方法对比表
+- 小结 (优势、局限、趋势)
+
+### 4. Experimental Comparison
+- 数据集描述表
+- 跨方法性能对比表
+- 结果分析与讨论
+
+### 5. Applications
+- 各应用场景描述
+- 实际部署案例
+
+### 6. Challenges and Future Directions
+- 当前局限 (具体、有数据支撑)
+- 未来方向 (具体、可操作)
+
+### 7. Conclusion
+- 总结主要发现
+- 重申贡献
+- 展望
+
+## 输出格式
+
+### manuscript_draft.md
+
+```markdown
+# [Title]: A Comprehensive Survey
+
+## Key Points
+- [Bullet 1]
+- [Bullet 2]
+- [Bullet 3]
+
+## Abstract
+[150-250 words]
+
+## 1. Introduction
+...
+
+## References
+[1] Author et al., "Title," Venue, Year.
+[2] ...
+```
+
+## 写作质量标准
+
+### 每节检查
+- [ ] 主题句清晰
+- [ ] 每个论断有引用
+- [ ] 数据准确
+- [ ] 过渡自然
+- [ ] 术语一致(对照 AGENTS.md)
+
+### 全文检查
+- [ ] 各节长度均衡
+- [ ] 叙事连贯
+- [ ] 无遗漏的重要方法
+- [ ] 引用编号连续
+- [ ] 表格编号连续
+
+## 交接
+
+完成后:
+1. 更新 IMPLEMENTATION_PLAN.md Phase 4 状态为「已完成」
+2. 在 manuscript_draft.md 末尾 @mention 质量编辑员
+3. 如遇问题 @mention 研究主管