yuan1z0825/nature-skills已通过检查
SKILL DETAIL
nature-literature-pipeline
yuan1z0825/nature-skills/nature-literature-pipeline
Nature Literature Pipeline 是一个完整的、经过生产测试的自动化文献流水线。它不仅仅是“搜索论文”,而是一个结构化的引擎,每天对研究论文进行评分、分类、阅读、推送和归档。 该流水线由定时任务(如每天 08:30)触发,依次执行五个步骤:① 从 arXiv、OpenAlex、Crossref、Semantic Scholar 等多源搜索约 30 篇候选论文(支持自动降级);② 通过六维评分(主题匹配 ×35、方法论 ×20、期刊质量 ×15、网络相关性 ×10、应用价值 ×10、归档价值 ×10)进行粗筛,选出前 5 篇;③ 对前 5 篇进行摘要级或全文级精读,并标记来源级别(全文/仅摘要/仅元数据);④ 将格式化摘要推送到飞书、Telegram 等平台,包含排名、标题、期刊、评分、一句话总结、方法、关键结果和评论;⑤ 通过 DOI/arXiv 去重、分类、写笔记并更新索引进行归档。 该技能分为引擎层和应用层:引擎层包含评分系统、差距分析和笔记模板;应用层包含推送格式、定时任务设置和综述汇编工作流。所有领域特定内容均可配置,包括关键词、评分权重、分类规则、推送目标和归档路径。内置安全措施包括分数验证、三重去重、优雅降级和只读归档(仅写入 raw/ 目录,不修改知识库)。
安装量 · 144查看来源
Installation
npx skills add https://github.com/yuan1z0825/nature-skills --skill nature-literature-pipeline
技能文件
SKILL.md
最近同步 · 2026年8月27日
agents/openai.yaml›
interface:
display_name: "Nature Literature Pipeline"
short_description: "Run scored literature discovery and reading pipelines"
default_prompt: "Use $nature-literature-pipeline to build a scored literature discovery, reading, and archiving pipeline for this topic."
manifest.yaml›
name: nature-literature-pipeline
version: 1.0.1
description: >
Declarative manifest for the automated literature-discovery pipeline. SKILL.md
uses this to keep the default cron/search/deliver/archive workflow concise
while loading scoring, gap-analysis, digest, and archival details only when
the task reaches that stage.
# Design note: the pipeline has stable stages (search -> coarse filter -> fine
# read -> deliver -> archive). Configuration and examples are large enough to be
# loaded on demand instead of for every invocation.
always_load:
- SKILL.md
templates:
on_demand:
- condition: configuring keywords, scoring weights, delivery target, archive path, or a reusable daily push profile
path: templates/literature-push-template.md
references:
on_demand:
- condition: ranking candidates, checking score arithmetic, changing dimension weights, or explaining the six-dimension scoring system
path: references/scoring-system.md
- condition: identifying research gaps, building a review map, or turning discoveries into a research direction
path: references/gap-analysis.md
- condition: writing or validating archived literature notes with YAML frontmatter
path: references/note-template.md
- condition: formatting daily digest messages for Feishu, Telegram, email, or chat delivery
path: references/push-format.md
- condition: creating, updating, debugging, or documenting the recurring cron job
path: references/cron-setup.md
- condition: compiling multiple daily notes into a literature review, related-work section, or concentrated reading report
path: references/review-compilation-workflow.md
README_EN.md›
# `nature-literature-pipeline` Skill
[中文说明](README.md)
`nature-literature-pipeline` builds a recurring literature-discovery pipeline: multi-source retrieval, six-dimension scoring, deep-reading summaries, delivery, and archiving.
## What To Use It For
- Set up automated literature monitoring for a fixed research topic.
- Collect candidate papers from arXiv, OpenAlex, Crossref, Semantic Scholar, and related sources.
- Score candidates by topic match, methodological value, journal quality, network relation, engineering value, and archive value.
- Turn top papers into Chinese or English deep-reading digests for delivery.
- Maintain DOI, arXiv ID, topic tags, and read status to reduce duplicate reading.
## Relationship With `nature-academic-search`
`nature-academic-search` is for one-off search and citation checks; `nature-literature-pipeline` is for continuous subscription and periodic delivery. The former answers "find papers now"; the latter answers "keep watching this area."
## Typical Requests
- "Track new papers on marine concrete chloride diffusion and machine learning every morning."
- "Create a weekly literature pipeline for this keyword set."
- "Score papers from the last seven days, keep the Top 5, and archive them."
## What You Need To Provide
- Research topic, keywords, exclusion terms, priority journals, or priority authors.
- Delivery frequency, number of candidates per run, and number of deep-read papers.
- Output target, such as Markdown directory, Feishu/Telegram interface, or local archive folder.
## Outputs
- Candidate-paper table and deduplicated Top list.
- Deep-reading card for each key paper: problem, method, key data, limitations, and relation to your project.
- Reusable pipeline configuration, archive index, and failure/degradation notes.
## Boundaries
- Automatic delivery depends on local cron, messaging interfaces, or the user's configured scheduler.
- When full text is unavailable, the output is marked as `Abstract only` or `Metadata only`.
- Scores are not final judgments of paper quality; high-scoring candidates still need human reading.
## Related Skills
- `nature-academic-search`: one-off multi-source search, citation metrics, and strict external-citation audit.
- `nature-reader`: turn candidate papers into full Chinese-English reading materials.
README.md›
# `nature-literature-pipeline` 技能
[English](README_EN.md)
`nature-literature-pipeline` 用于搭建持续运行的文献发现管线:多源检索、六维评分、精读摘要、推送和归档,适合每天或每周跟踪一个研究方向。
## 适合用它做什么
- 为固定主题建立自动化文献监测。
- 从 arXiv、OpenAlex、Crossref、Semantic Scholar 等来源收集候选论文。
- 对候选文献按方向匹配、方法价值、期刊质量、网络关联、工程价值和归档价值打分。
- 把 Top 文献整理成可推送的中文/英文精读摘要。
- 维护 DOI、arXiv ID、主题标签和已读状态,减少重复阅读。
## 与 `nature-academic-search` 的关系
`nature-academic-search` 适合一次性检索和引用核查;`nature-literature-pipeline` 适合持续订阅和周期性推送。前者回答“现在帮我找”,后者回答“持续帮我盯”。
## 典型请求
- “每天早上帮我跟踪海洋混凝土氯离子扩散和机器学习方向的新论文。”
- “为这个关键词组建一条每周推送的文献管线。”
- “把过去 7 天候选论文按六维评分筛到 Top 5,并归档。”
## 你需要提供
- 研究主题、关键词、排除词、重点期刊或重点作者。
- 推送频率、每次候选数量和最终精读数量。
- 输出位置,例如 Markdown 目录、飞书/Telegram 接口或本地归档文件夹。
## 产出
- 候选文献表和去重后的 Top 列表。
- 每篇重点论文的精读卡片:问题、方法、关键数据、局限和与你课题的关系。
- 可复用的管线配置、归档索引和失败/降级说明。
## 边界
- 自动推送依赖本机 cron、消息接口或用户配置的调度器。
- 无法访问全文时,会明确标注 `Abstract only` 或 `Metadata only`。
- 不会把评分当作论文质量的最终判断;高分候选仍需要人工阅读确认。
## 相关技能
- `nature-academic-search`:一次性多源检索、引用指标和严格他引审计。
- `nature-reader`:把候选论文做成全文中英对照阅读材料。
references/cron-setup.md›
# Scheduled literature delivery: verification and recovery
This synthetic example shows how to verify a one-shot or recurring literature-delivery job and recover when a scheduled run does not appear. All identifiers, dates, targets, and paths below are placeholders.
## Scenario
A user reports that a scheduled literature digest was not delivered at the expected time.
Example job configuration:
- job ID: `<JOB_ID>`
- name: `literature-digest`
- schedule: `<SCHEDULE>`
- delivery target: `<DELIVERY_TARGET>`
## Verification sequence
1. List scheduled jobs and confirm that `<JOB_ID>` exists in the current profile.
2. Inspect the job's schedule, repeat policy, delivery target, and enabled state.
3. Run the job manually in a test mode.
4. Verify delivery independently from archival.
5. Confirm that the archive contains the expected note and deduplication marker.
A successful create response is not sufficient: always read the stored job back from the scheduler.
## Recovery path
If the job is missing or cannot run:
1. Recreate it from the intended configuration.
2. Run a reduced retrieval query manually.
3. Deliver a short test digest to `<DELIVERY_TARGET>`.
4. Archive the result under a generic project-relative path.
5. Re-list the scheduler and record the new job ID outside the public template.
Example retrieval themes:
- `topic keyword method`
- `material property application`
- `author institution research question`
Example result set:
1. Study A — monitoring method for a representative system.
2. Study B — processing route and performance evaluation.
3. Study C — continuous purification or separation method.
4. Study D — electrochemical characterization workflow.
5. Study E — modeling study for a generic alloy system.
## Placeholder delivery record
- target: `<DELIVERY_TARGET>`
- chat ID: `<CHAT_ID>`
- message ID: `<MESSAGE_ID>`
Never publish real chat IDs, message IDs, group names, scheduler IDs, or delivery logs in an example.
## Placeholder archive layout
```text
<ARCHIVE_ROOT>/literature/
├── core/
│ ├── study-a.md
│ └── study-b.md
├── supporting/
│ └── study-c.md
└── references.ris
```
Use project-relative placeholders in public documentation. Keep machine-specific home, mount, vault, and organization paths in private configuration.
## Operational lessons
- Verify every created job by listing it from the same profile and runtime.
- Test retrieval, delivery, and archival as separate stages.
- For time-sensitive digests, restore delivery first and investigate the scheduler second.
- Recurring jobs need a manual-run check, delivery check, archive check, deduplication check, and failure alert.
- Document troubleshooting as a synthetic scenario rather than publishing a real incident transcript.
references/gap-analysis.md›
# Literature Gap Analysis Methodology
## When to use
When the user asks to confirm whether a specific research topic has been explored:
- "搜一下 XX 体系有没有人做过"
- "确认这个方向是不是空白"
- "看看这个四元系有没有文献"
## Workflow (4 steps)
### Step 1: Multi-source search
Search the exact topic string across at least 3 sources:
- Web search with exact phrase match (e.g., `"MgCl2-KCl-NaCl-ZnCl2"`)
- Broader search with key components (e.g., `material A material B compound`)
- Adjacent/related terms (e.g., `compound A thermal storage application`)
→ Record hit counts per query.
### Step 2: Decompose and classify
If direct hits = 0, decompose the system into sub-systems:
| Sub-system | Search | Status |
|------------|--------|--------|
| MgCl₂-KCl-NaCl (ternary) | keyword | studied / not studied |
| NaCl-KCl-ZnCl₂ (ternary) | keyword | studied / not studied |
| MgCl₂-KCl-ZnCl₂ (ternary) | keyword | studied / not studied |
| MgCl₂-NaCl-ZnCl₂ (ternary) | keyword | studied / not studied |
Classify hits into three tiers:
- **直接相关**: exact quaternary system → if 0, confirmed gap
- **边缘相关**: contains 2-3 of 4 components → extract key data (method, salt composition, findings)
- **无关**: only 1 component → skip
### Step 3: Extract edge papers
For each 边缘相关 paper, extract:
- Full citation (authors, journal, year, DOI if available)
- Salt composition used
- Method (CV, DSC, XRD, simulation, etc.)
- Key finding relevant to the gap topic
- What can be borrowed for the user's work
### Step 4: Output gap report
Write to `outputs/literature/<topic>_gap_report.md` with these sections:
1. **核心结论** — one sentence: confirmed gap or partial overlap
2. **子体系文献全景** — table per sub-system with representative works
3. **边缘相关文献** — extracted details from edge papers
4. **空白分析** — why nobody did it + why it's worth doing
5. **论文 gap statement 草稿** — English paragraph ready for introduction
6. **建议下一步** — concrete experimental/computational next steps
7. **搜索方法论记录** — all search terms and hit counts (for reproducibility)
### Cost control
- Search: ≤4 parallel web_search calls per decomposition level
- Extract: only edge papers (≤5), not every hit
- No browser: use web_extract, skip paywalled pages silently
- Aim for ≤6 tool calls total
references/note-template.md›
# Literature Note Template (v2 — 2026-06-03)
## Contents
- [Standardized Frontmatter](#standardized-frontmatter)
- [Body Structure (6 sections)](#body-structure-6-sections)
- [核心主张](#核心主张)
- [方法](#方法)
- [关键发现](#关键发现)
- [批判](#批判)
- [Connection to Research](#connection-to-research)
- [下一步](#下一步)
- [File Naming Convention](#file-naming-convention)
- [Directory Discipline](#directory-discipline)
- [Bulk Standardization](#bulk-standardization)
> Standardized template for literature notes. Use for all new vault literature notes.
> Replaces the v1 template (date/建议分类/是否值得全文精读 format).
## Standardized Frontmatter
```yaml
---
title: "Original English Title"
authors: "Last1, F.; Last2, F."
year: 2024
journal: "Full Journal Name"
doi: "10.xxxx/..."
classification: "A_核心主线"
tags: [中文关键词1, 关键词2, 关键词3]
date_read: 2026-06-03
---
```
### Field Rules
| Field | Format | Example |
|-------|--------|---------|
| `title` | Original English, double-quoted | `"Corrosion of Alloys and Metals by Molten Nitrates"` |
| `authors` | `Last, F.; Last, F.` — comma+semicolon separated, >3 use `et al.` | `"Smith, J.A.; Jones, R.B."` |
| `year` | 4-digit integer, no quotes | `2004` |
| `journal` | Full name or report ID, double-quoted | `"Journal of Materials Engineering and Performance"` |
| `doi` | Full DOI string starting with `10.` | `"10.1016/j.solmat.2019.02.012"` |
| `classification` | **Must be full Chinese name** — one of: `A_核心主线`, `B_章节支撑`, `C_工程背景`, `D_方法借鉴`, `E_暂存低优先` | `"A_核心主线"` |
| `tags` | YAML list, 3-5 specific Chinese keywords | `[硝酸盐, 腐蚀, 氧离子, 综述]` |
| `date_read` | ISO date of first detailed reading | `2026-06-03` |
**Anti-patterns (do NOT use)**: `date` (use `year`), `建议分类` (use `classification`), `是否值得全文精读` (covered by classification), `source_urls` (extraneous), `note_date` (use `date_read`).
## Body Structure (6 sections)
```markdown
## 核心主张
[1-3 sentences. Mark evidence strength: 成熟共识 / 学界共识 / 争议 / 推测]
## 方法
[Key methods, advantages, limitations]
## 关键发现
[Bullet points of key data/findings/quantitative results]
## 批判
[Strengths, weaknesses, relevance gaps, evidence reliability]
## Connection to Research
[How this connects to the user's thesis: NO2-/NO3- ratio, CV fingerprint, atmosphere control, Hitec purification, material selection, experimental design]
## 下一步
[Actionable: cite in which chapter, follow up which reference, design which experiment, what to verify]
```
**Note**: No `# Heading` title line before the sections — the frontmatter `title` field serves that role. Avoid duplicate H1 headers.
## File Naming Convention
Format: `{FirstAuthorLast}{Year}_{中文核心关键词}.md`
- **First author**: last name only, title-cased. For hyphenated names preserve the hyphen (e.g., `Encinas-Sánchez`).
- **Year**: 4 digits, no space after author name.
- **Keywords**: 2-4 Chinese words connected by underscores, derived from the paper's core contribution (not generic like `文献`).
### Examples
| Good | Bad |
|------|-----|
| `Goods2004_商业硝酸盐_304_316_长期腐蚀.md` | `goodscorrosionofstainlesssteelscarbon2004.md` |
| `Author2018_topic_method.md` | `authortopicmethodology2018.md` |
| `Kruizenga2011_316SS失效分析_氧覆盖.md` | `kruizengastainlesssteelcorrosion2011.md` |
| `Author2025_topic_application.md` | `author2025topicengineeringapplication.md` |
## Directory Discipline
Subagents frequently create short directory names (`A/笔记/`, `B/笔记/`). Always verify and correct to full names:
- `A_核心主线/笔记/`
- `B_章节支撑/笔记/`
- `C_工程背景/笔记/`
- `D_方法借鉴/笔记/`
- `E_暂存低优先/笔记/`
## Bulk Standardization
When standardizing a batch of existing notes, the Python script pattern is:
1. Inventory all `.md` files across A-E directories
2. Parse existing frontmatter → extract known fields
3. Infer missing fields from body content (year regex, author regex, title from H1)
4. Generate standardized frontmatter + remove body H1 duplicates
5. Generate new filename from `AuthorYear + Chinese keywords`
6. Write to same directory, rename + collision-check
7. Save rename mapping CSV for rollback
Key extraction patterns:
- Year: `(19|20)\d{2}` in filename or frontmatter
- Authors: `\*\*([^*]+?)\s*\((\d{4})\)\*\*` in body for old-format notes
- Title: frontmatter `title` field or body `# Heading`
- Classification: normalize `A`/`B`/`C`/`D` → full Chinese names, default to directory name
- Tags: keyword pattern matching on title + body[:1000] against a Chinese tech-term map
references/push-format.md›
# Feishu Push Format
> Daily literature digest template delivered to the dedicated Feishu group.
> The `{placeholder}` values are filled by the fine-reading stage.
## Template
```markdown
📅 {YYYY-MM-DD} 文献日报 | Research Field Daily
━━━━━━━━━━━━━━━━━━━━
🏅 #{N} | {Title}
{Journal/Source}, {Year} | {Authors} et al. | {Institution} | ⭐ {score}/10 | 分流:{A-E tier}
DOI: {doi if available} | arXiv: {arxiv_id if available}
💡 一句话:{one-line takeaway — why this paper matters or why it is only deferred}
🔬 方法:{experiment/simulation, salt system, temperature, alloy/coating, characterization/electrochemical techniques}
📊 关键结果:{specific data or conclusions, with units and test conditions; no vague summaries}
🧭 点评:{value to the research mainline, limitations, whether worth full-text reading}
📎 {best available link: DOI / arXiv / PDF / repository}
━━━━━━━━━━━━━━━━━━━━
🏅 #{N+1} | ...
```
Daily pushes should NOT include a fixed "与 vault 的关联" field or forced wiki links; that's low-information. Vault/wiki connections belong in archival notes and later manual wiki integration. If a paper clearly hits a tracked author/network, mention it naturally in the commentary.
## Field Guidelines
| Field | Principle |
|-------|-----------|
| 💡 一句话 | 15秒可判断是否值得点开原文。抓核心贡献,不要泛泛描述 |
| 🔬 方法 | 实验/模拟?什么盐体系?什么表征(CV/EIS/SEM/XRD/TEM)?什么合金? |
| 📊 关键结果 | 必须是具体数据或明确结论。禁止"有重要发现""提供了新的视角"等空泛表述 |
| 🧭 点评 | 说明对研究主线的实际价值、局限、是否值得全文精读;不机械写 vault 关联 |
| ⭐ 评分 | 粗筛综合得分(0-10),帮助判断优先级;内部六维评分仍用 0-100 并校验各维度上限 |
## Example
All papers, identifiers, dates, and numerical results in this example are synthetic.
```markdown
📅 YYYY-MM-DD 文献日报 | Research Field Daily
━━━━━━━━━━━━━━━━━━━━
🏅 #1 | Electrochemical monitoring of impurity X in compound A-B-C system via advanced voltammetry
Electrochimica Acta, 2026 | Zhang, Li, Wang et al. | CAS Institute | ⭐ 9.2/10 | 分流:A_核心主线
DOI: <DOI> | arXiv: <ARXIV_ID>
💡 一句话:First application of method X to system Y for impurity quantification, detection limit improved ~5× over prior art。
🔬 方法:500°C MgCl₂-KCl-NaCl;Pt 工作电极,Ag/AgCl 参比;Ar + 不同 H₂O 分压;SWV 定量 MgOHCl,同时用滴定交叉验证。
📊 关键结果:
· SWV 检测限 8 ppm O(vs. prior art CV method ~39 ppm)
· 峰电流与 MgOHCl 浓度线性 R²=0.997(0-200 ppm 范围)
· 200 h 稳定性测试中峰位漂移 <5 mV
🧭 点评:A 类候选。价值在于把杂质监测灵敏度从 CV 推到 SWV,直接服务监测-控制-验证闭环;需要全文核查参比电极稳定性和标定方法。
📎 https://example.org/paper
━━━━━━━━━━━━━━━━━━━━
🏅 #2 | ...
```
## Delivery
```python
send_message(
target="feishu:<chat_id>",
message="<formatted_digest>"
)
```
Use `send_message(action='list')` to discover the chat_id if unknown. The target must be a group the Hermes bot has been added to as a member (Feishu group settings → bots → add).
references/review-compilation-workflow.md›
# 手工综述编译工作流
## Contents
- [阶段1: 盘点存量](#阶段1-盘点存量)
- [阶段2: 空白填补](#阶段2-空白填补)
- [阶段3: 观众过滤](#阶段3-观众过滤)
- [阶段4: 架构设计](#阶段4-架构设计)
- [阶段5: 图表规划](#阶段5-图表规划)
- [阶段6: BibTeX导出](#阶段6-bibtex导出)
- [附: 硝酸盐氧化膜综述实例数据](#附-硝酸盐氧化膜综述实例数据)
从"零库存→投稿"的完整综述写作流程,适用于已确定主题方向后的文献整合阶段。与每日自动化pipeline互补——pipeline管日常发现,本文件管集中编撰。
## 阶段1: 盘点存量
### 1.1 从Vault提取
- 用 `gbrain_query` 搜主题关键词(中英文各一次)
- 用 `gbrain_search` 搜最宽泛关键词(如 `corrosion`)捕捉漏网
- 精读核心页面(如综述章节草稿),提取引用列表
### 1.2 从Zotero提取
- `zotero_search_items` 搜主题关键词,`qmode=everything`
- 去重(与vault内容交叉核对)
- 按相关性分级(A=直接相关/B=部分相关/C=背景)
### 1.3 汇总评估
- 生成文献数量估计,判断是否需要补搜
- 对照综述框架,识别薄弱子方向
## 阶段2: 空白填补
### 2.1 识别空白
常见空白类型:
- 特定盐体系(如NaNO₂含量影响)文献不足
- 特定机理角度(如定量剥落判据)数据稀缺
- 特定时间尺度(>10000h)系统空白——标注为领域gap而非继续检索
- 特定研究团队的工作遗漏
### 2.2 定向搜索
- `web_search` 英文+中文各搜一次,覆盖不同关键词组合
- 追踪关键论文的引用链(谁引用了领域奠基论文?)
- 中国团队的CNKI/中文期刊论文——对国内合作者信息增量高
### 2.3 提取与筛选
- `web_extract` 拉取关键论文全文/摘要
- 按空白→文献映射记录
- 再次评估文献总量是否达标(综述目标期刊通常80-150条引用)
## 阶段3: 观众过滤
对于合作者审阅版,应用观众相关过滤原则:
| 原则 | 操作 |
|------|------|
| Audience's domain | Remove papers the audience already knows well |
| 对方不熟悉的领域 | 保留该方向的定量数据论文——是信息增量 |
| 偏离主线太远 | 砍纯方法学/涂覆/缓蚀/碳钢论文 |
| 低信息增量 | 砍中文中文期刊论文(对国外合作者) |
| 保留对方团队工作 | 同一机构的相关论文应保留(如给某作者保留其机构系列工作) |
典型砍留比:90→50篇。
## 阶段4: 架构设计
### 4.1 总体叙事
- 一条因果链贯穿:环境化学→结构形成→失效模式→工程控制
- 避免材料A→B→C的目录式罗列
- 核心章节(失效模式)占全文~30%篇幅
### 4.2 典型7节结构
```
§1 Introduction (~8% 字数, 低引用密度)
§2 化学环境 (~13%, 中)
§3 形成/结构/动力学 (~17%, 中高)
§4 失效模式 ★核心 (~27%, 高)
§5 调控因素 (~13%, 中高)
§6 方法学 (~10%, 中)
§7 工程启示+展望 (~10%, 低)
```
引用分布:核心章节约占50条中的16条。
## 阶段5: 图表规划
### 5.1 A类图(自绘)
不需要原始数据,用concept-diagrams skill绘制:
- 结构示意图(如氧化膜双层)
- 因果流程图(如material chemistry → failure chain)
- 机理对比图(如四种失效模式)
- 概念相图(如T-pO²⁻稳定性分区)
- 方法论对比表
典型数量:8-10张。
### 5.2 B类图(引用)
需要从已发表论文截取,注明"adapted from":
- SEM截面(氧化膜实证图像)
- 定量关系曲线(如O²⁻-腐蚀速率)
- 对比柱状图(如等温/热循环/热冲击)
优先从领域标杆论文选取:领域奠基系列、代表性综述、最新突破。
## 阶段6: BibTeX导出
- 在 `outputs/literature/` 下创建 `.bib` 文件
- 每条包含:title, author, journal, volume, pages, year, doi, abstract(简短标注)
- 用 `%` 注释分行分组
- 用户拖入Zotero后统一打标签
## 附: 硝酸盐氧化膜综述实例数据
本文件基于2026-06-23的会话总结,以下为该综述的具体参数供参考:
- 主题:material oxidation and failure in high-temperature environments
- 文献总量:90→50篇(针对受众精简版)
- A类图:8张(fig1-fig8,见 `outputs/figures/`)
- B类图需求:3-4张(SEM截面/定量曲线/Au示踪)
- 篇幅:~30,000中文字 → 排版后~36-40页
- 目标期刊候选:《中国腐蚀与防护学报》《储能科学与技术》
references/scoring-system.md›
# Six-Dimension Scoring System
Used in the coarse-filtering stage (30 → 5 papers). Each paper is scored 0-100 across six weighted dimensions.
## Dimensions
| # | Dimension | Weight | What It Measures |
|---|-----------|:------:|------------------|
| 1 | Topic Match | 35 | How closely the paper aligns with core research questions |
| 2 | Methodological Value | 20 | Quality and applicability of methods (experimental design, analysis techniques) |
| 3 | Journal/Source Quality | 15 | Venue prestige, citation impact, credibility |
| 4 | Research Network Relevance | 10 | Connections to tracked authors, institutions, or active collaborations |
| 5 | Applied/Engineering Value | 10 | Practical utility: protocols, datasets, benchmarks, engineering insights |
| 6 | Archival Value | 10 | Long-term reference value: review potential, foundational status, teaching utility |
## Scoring Rules
1. Each dimension is capped at its weight — no overshooting
2. Total score must equal the sum of all six dimensions — recalculate, don't trust subagent arithmetic
3. Dimension 1 is the gate: papers scoring <10 on Topic Match are auto-rejected regardless of other scores
## Subagent Prompt Template
```
Score each of the following 30 papers on six dimensions (0-100 total):
1. Topic Match (max 35): [insert your research questions]
2. Methodological Value (max 20)
3. Journal Quality (max 15)
4. Network Relevance (max 10): [insert tracked authors/institutions]
5. Applied Value (max 10)
6. Archival Value (max 10)
For each paper, output:
{
"title": "...",
"scores": {"topic": X, "method": X, "journal": X, "network": X, "applied": X, "archival": X},
"total": X,
"rationale": "one sentence"
}
Return the top 5 papers by total score, sorted descending.
```
## Common Pitfalls
- Subagents may inflate Dimension 1 scores for well-known papers that aren't actually relevant — always verify
- Papers from prestigious journals can score high on Dimension 3 but be irrelevant (low Dimension 1) — the gate rule catches this
- The "Network Relevance" dimension is NOT about fame — it's about specific tracked authors/institutions the user cares about
## Calibration
After 2-3 pipeline runs, review the score distribution with the user:
- If top papers consistently score 90+, the rubric is too loose
- If no paper breaks 60, keywords may be too narrow or the field is sparse
- Adjust weights based on user feedback (e.g., if applied value matters more than journal prestige for their work)
SKILL.md›
---
name: nature-literature-pipeline
description: |
Complete automated literature discovery pipeline: multi-source search → six-dimension scoring → fine reading → formatted delivery → archival.
Combines a configurable engine with daily cron-driven application layer. Works with Feishu, Telegram, or any messaging platform.
license: MIT
metadata:
author: Jiahao8595
hermes:
tags: [research, literature, pipeline, cron, automation, discovery]
related_skills: [nature-academic-search, nature-citation, arxiv, zotero]
---
# Nature Literature Pipeline
A complete, production-tested automated literature pipeline. Not just "search for papers" — it's a structured engine that scores, classifies, reads, delivers, and archives research papers daily.
## What It Does
```
Cron (daily trigger, e.g. 08:30)
│
├─ ① SEARCH (30 candidates)
│ arXiv / OpenAlex / Crossref / Semantic Scholar (auto-degradation)
│
├─ ② COARSE FILTER (30 → 5)
│ Six-dimension scoring: topic match × 35 + methodology × 20
│ + journal quality × 15 + network relevance × 10
│ + applied value × 10 + archival value × 10
│
├─ ③ FINE READ (top 5)
│ Abstract-level or full-text. Source level tagged:
│ Full-text / Abstract only / Metadata only
│
├─ ④ DELIVER
│ Formatted digest to Feishu/Telegram/etc.
│ 🏅 rank | title | journal | ⭐ score | 💡 one-liner
│ 🔬 methods | 📊 key results | 🧭 commentary
│
└─ ⑤ ARCHIVE
DOI/arXiv de-dup → classify → write notes → update index
```
## Quick Start
After installing, tell your agent:
```
My research area is [X], keywords: [Y], deliver to [feishu group name], archive to [path]
```
The agent will configure keywords, delivery target, and archive path automatically.
Then set up a daily cron job:
```
Set up a daily literature push at 08:30 Beijing time, 30 candidates, top 5 delivered
```
## Architecture
The skill is organized in two layers:
| Layer | Purpose | Files |
|-------|---------|-------|
| **Engine** | Scoring, classification, note templates, gap analysis | `references/scoring-system.md`, `references/gap-analysis.md`, `references/note-template.md` |
| **Application** | Daily cron pipeline, delivery formatting, archival workflow | `references/push-format.md`, `references/cron-setup.md`, `references/review-compilation-workflow.md` |
## Configuration
All domain-specific content is configurable:
- **Keywords** — your research keywords (English + Chinese)
- **Scoring weights** — adjust the six dimensions for your field
- **Classification rules** — define your own tier system (A-E or custom)
- **Delivery target** — Feishu group, Telegram channel, email, etc.
- **Archive path** — local vault/wiki directory
A config template is provided in `templates/literature-push-template.md`.
## Built-in Safeguards
- **Score validation**: Each dimension capped, total recalculated — no 11/10 allowed
- **Triple de-duplication**: DOI / arXiv ID / OpenAlex ID
- **Graceful degradation**: Semantic Scholar down → auto-switch to OpenAlex + Crossref + arXiv
- **Read-only archive**: Daily pipeline writes to `raw/` literature directory only; never modifies wiki/knowledge base without user approval
## Related Skills
- `nature-academic-search` — ad-hoc literature search (complementary; this skill adds structured daily automation)
- `nature-citation` — CNS citation export (for importing pipeline discoveries into manuscripts)
- `zotero` — library management (for long-term organization of pipeline outputs)
- `arxiv` — arXiv API (used as a search source)
## References
| Reference | Purpose |
|-----------|---------|
| `references/scoring-system.md` | Six-dimension scoring rubric with weights, caps, and evaluation logic |
| `references/gap-analysis.md` | Methodology for identifying research gaps through systematic literature survey |
| `references/note-template.md` | Standardized literature note format with YAML frontmatter |
| `references/push-format.md` | Daily digest message template with field guidelines and example |
| `references/cron-setup.md` | Cron job creation, verification, and manual fallback procedures |
| `references/review-compilation-workflow.md` | End-to-end workflow for concentrated literature review writing |
## Pitfalls
1. **Keyword drift**: Review keywords monthly — research directions evolve
2. **Score inflation**: Subagents may inflate scores; always validate arithmetic
3. **Duplicate creep**: Classic papers will reappear; maintain a dedup index
4. **Wiki safety**: Pipeline writes to `raw/` only; wiki integration is manual
5. **Cron locality**: Hermes cron is local, not cloud — machine must be running
templates/literature-push-template.md›
---
name: literature-push-template
description: "Use when building or running a customizable academic literature push workflow: search multiple scholarly sources, filter candidates, summarize top papers, deliver a concise daily/weekly digest, and optionally archive notes. Designed as a generic template for any research field, including LLM research."
version: 1.0.0
author: Hermes Agent
license: MIT
metadata:
hermes:
tags: [research, literature, monitoring, papers, digest, cron]
related_skills: [arxiv, literature-pipeline]
---
# Literature Push Template
## Overview
Generic literature monitoring workflow to copy and customize for a research field such as LLMs, agents, alignment, evaluation, retrieval, multimodal systems, or any other domain.
Workflow: search scholarly sources → build candidate pool → deduplicate → score/filter → summarize top papers → deliver a concise digest → optionally archive raw notes.
This template intentionally contains no private chat IDs, API keys, local vault paths, or user-specific research context.
## Configuration To Customize
```yaml
research_profile:
field: "LLM research"
subtopics:
- "language model agents"
- "LLM evaluation"
- "reasoning and planning"
- "alignment and post-training"
- "RAG and long-context systems"
- "efficient inference and serving"
search:
candidate_pool_size: 30
final_selection_count: 5
lookback_days: 7
sources: [arxiv, openalex, crossref, semantic_scholar_optional]
keywords:
include:
- "large language model"
- "LLM agent"
- "language model reasoning"
- "LLM evaluation"
- "retrieval augmented generation"
- "long context language model"
- "post-training language model"
- "preference optimization"
- "tool use language model"
- "multi-agent language models"
exclude:
- "CHANGE_ME"
important_authors_or_orgs:
- "OpenAI"
- "Anthropic"
- "Google DeepMind"
- "Meta AI"
- "Stanford"
- "Berkeley"
- "CMU"
- "Tsinghua"
- "Peking University"
delivery:
target: "CHANGE_ME" # e.g. feishu:group, telegram, discord:#channel, local
format: "short_digest"
archive:
enabled: false
root: "CHANGE_ME"
write_wiki: false
```
## Source Priority
Use arXiv, OpenAlex, Crossref, and Semantic Scholar if available. Degrade gracefully if Semantic Scholar has no key or rate-limits.
## Deduplication
Deduplicate by DOI, arXiv ID, OpenAlex ID, then normalized title. Prefer the richer metadata record while preserving all stable links.
## Scoring Rubric
| Dimension | Weight |
|---|---:|
| Topic fit | 35 |
| Novelty / contribution | 20 |
| Method quality | 15 |
| Source / author signal | 10 |
| Practical value | 10 |
| Archive value | 10 |
Rules: no dimension exceeds its weight; total is the sum; display as `⭐ 8.7/10`; never output impossible scores like `11/10`.
## Reading Depth Labels
Every paper must show one of: Full text read, Abstract only, Metadata only, Project page / GitHub read.
## Digest Format
```markdown
📚 Literature Digest | {date} | {research field}
Candidate pool: {M} → selected: {N}
🏅 #{rank} | {title}
{venue/source}, {year} | {authors} | ⭐ {score}/10 | Reading: {reading_depth}
ID: {doi/arxiv/openalex if available}
💡 One-line takeaway: {why this matters}
🔬 What they did: {method, dataset, benchmark, system, or theory}
📊 Key result: {specific result if available; otherwise say what is missing}
🧭 Research value: {how this helps the configured research direction; include limitations}
📎 Link: {best stable link}
```
For LLM papers, note model family/scale, training or post-training method, benchmarks, baselines, code/data/model availability, serving constraints, and evaluation weaknesses or contamination risks.
## Cron Prompt Skeleton
```text
Run the literature-push-template workflow for {FIELD}.
Research focus:
- {SUBTOPICS}
Search:
- Look back {LOOKBACK_DAYS} days.
- Use arXiv, OpenAlex, Crossref, and Semantic Scholar if available.
- Build a candidate pool of up to {CANDIDATE_POOL_SIZE} papers.
- Deduplicate by DOI, arXiv ID, OpenAlex ID, and normalized title.
Filter:
- Score by topic fit 35, novelty 20, method quality 15, source/author signal 10, practical value 10, archive value 10.
- Select up to {FINAL_SELECTION_COUNT} papers.
- If fewer are worth reading, send fewer.
Output:
- Send a concise digest to {DELIVERY_TARGET}.
- Include reading-depth label for each paper.
- Do not modify any curated wiki or knowledge base.
- If archive is enabled, write raw paper notes only to {ARCHIVE_PATH}.
```
## Verification Checklist
- [ ] Research field, keywords, exclusions, and delivery target are configured.
- [ ] Candidates are deduplicated.
- [ ] Scores obey the 100-point rubric.
- [ ] Every paper has a stable link where possible and a reading-depth label.
- [ ] No private paths, chat IDs, API keys, or unrelated personal context are included.
- [ ] No curated wiki was modified unless explicitly requested.