ワンクリックで
start-my-day
论文阅读工作流启动 - 生成今日论文推荐笔记 / Paper reading workflow starter - Generate daily paper recommendations
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
论文阅读工作流启动 - 生成今日论文推荐笔记 / Paper reading workflow starter - Generate daily paper recommendations
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | start-my-day |
| description | 论文阅读工作流启动 - 生成今日论文推荐笔记 / Paper reading workflow starter - Generate daily paper recommendations |
This skill supports both Chinese and English reports. The language is determined by the language field in your config file:
language: "zh" in configlanguage: "en" in configThe config file should be located at: $OBSIDIAN_VAULT_PATH/99_System/Config/research_interests.yaml
At the start of execution, read the config file to detect the language setting:
# Resolve OBSIDIAN_VAULT_PATH if not set in the current session
# Claude Code bash sessions do not source ~/.zshrc automatically
if [ -z "$OBSIDIAN_VAULT_PATH" ]; then
[ -f "$HOME/.zshrc" ] && source "$HOME/.zshrc" 2>/dev/null || true
[ -f "$HOME/.bash_profile" ] && source "$HOME/.bash_profile" 2>/dev/null || true
fi
# Resolve Python from paper conda environment
# Read conda_env from config; default to "paper"
CONDA_ENV=$(grep -E "^\s+conda_env:" "$OBSIDIAN_VAULT_PATH/99_System/Config/research_interests.yaml" | awk '{print $2}' | tr -d '"')
if [ -z "$CONDA_ENV" ]; then CONDA_ENV="paper"; fi
PYTHON="$HOME/anaconda3/envs/$CONDA_ENV/bin/python"
if [ ! -f "$PYTHON" ]; then
echo "Warning: conda env '$CONDA_ENV' not found, falling back to system python"
PYTHON="python"
fi
# Read language from config
LANGUAGE=$(grep -E "^\s*language:" "$OBSIDIAN_VAULT_PATH/99_System/Config/research_interests.yaml" | awk '{print $2}' | tr -d '"')
# Default to Chinese if not set
if [ -z "$LANGUAGE" ]; then
LANGUAGE="zh"
fi
# Set note filename suffix based on language
if [ "$LANGUAGE" = "en" ]; then
NOTE_SUFFIX="paper-recommendations"
else
NOTE_SUFFIX="论文推荐"
fi
Then use this language setting throughout the workflow:
--language $LANGUAGE to scripts帮助用户开启他们的研究日,搜索最近一个月和最近一年的极火、极热门、极优质论文,生成推荐笔记。
核心原则:Semantic Scholar 为主 + CNKI 为辅 + arXiv 补充,确保论文与研究领域高度相关。
搜索源优先级:
配置文件 research_interests.yaml 中的 search_strategy 字段控制搜索行为:
order: 搜索源优先级s2_queries: 每个领域的 S2 查询模板arxiv_search_mode: arXiv 搜索模式(keyword 或 category)本 skill 使用 Python 脚本调用 Semantic Scholar API(主)和 arXiv API(补)搜索论文,解析结果并根据研究兴趣进行筛选和评分。CNKI 搜索通过 chrome-devtools MCP 执行。
获取今日日期
读取研究配置
$OBSIDIAN_VAULT_PATH/99_System/Config/research_interests.yaml(注意:文件名是 interests 不是 interest)获取研究领域扫描现有笔记构建索引
论文笔记/ 目录下的所有 .md 文件按配置文件中的 search_strategy.order 依次搜索:
Semantic Scholar(主)
s2_queries 的领域查询模板CNKI(辅) — 通过 chrome-devtools MCP 执行
cnki-search skill 搜索中文期刊arXiv(补)
使用 scripts/search_arxiv.py 脚本完成 S2 + arXiv 搜索、解析和筛选:
# 使用 Python 脚本搜索、解析和筛选论文
# 首先切换到 skill 目录,然后执行脚本
cd "$SKILL_DIR"
$PYTHON scripts/search_arxiv.py \
--config "$OBSIDIAN_VAULT_PATH/99_System/Config/research_interests.yaml" \
--output arxiv_filtered.json \
--max-results 200 \
--top-n 10 \
--categories "physics.ao-ph,cs.AI,cs.LG,cs.CV" \
--target-date "{目标日期}"
脚本功能:
Step 1: Semantic Scholar 领域查询(主)
s2_queries 查询模板Step 2: arXiv 关键词搜索(补充)
Step 3: 合并、去重和评分
输出:
arxiv_filtered.json - 筛选后的论文列表(JSON 格式)从 arxiv_filtered.json 中读取筛选和评分后的论文列表:
# 读取筛选结果
cat arxiv_filtered.json
结果包含:
total_found: 搜索到的总论文数total_filtered: 筛选后的论文数top_papers: 前10篇高评分论文,每篇包含:
综合多个维度的评分:
推荐评分 =
相关性评分: 40%
新近性评分: 20%
热门度评分: 30%
质量评分: 10%
评分细则:
相关性评分 (40%)
新近性评分 (20%)
热门度评分 (30%)
质量评分 (10%)
最终推荐评分 = 相关性(40%) + 新近性(20%) + 热门度(30%) + 质量(10%)
从 arxiv_filtered.json 中读取筛选后的论文列表:
创建推荐笔记文件
language: "zh"):Daily_paper/YYYY-MM-DD论文推荐.mdlanguage: "en"):Daily_paper/YYYY-MM-DD-paper-recommendations.mdDaily_paper/YYYY-MM-DD${NOTE_SUFFIX}.md(其中 NOTE_SUFFIX 在语言检测阶段已设置)keywords: 当天推荐论文的关键词(逗号分隔,从论文标题和摘要中提取)tags: ["llm-generated", "daily-paper-recommend"]检查论文是否值得详细写
检查论文是否已有笔记
论文笔记/ 目录笔记文件结构如下:
---
keywords: [关键词1, 关键词2, ...]
tags: ["llm-generated", "daily-paper-recommend"]
---
[具体论文推荐列表...]
在论文列表之前,添加一个概览部分,总结今日推荐论文的整体情况。
根据 $LANGUAGE 设置选择语言:
English (language: "en"):
## Today's Overview
Today's {paper_count} recommended papers focus on **{direction1}**, **{direction2}**, and **{direction3}**.
- **Overall Trends**: {summary of research trends}
- **Quality Distribution**: Scores range from {min}-{max}, {quality assessment}.
- **Research Hotspots**:
- **{hotspot1}**: {description}
- **{hotspot2}**: {description}
- **{hotspot3}**: {description}
- **Reading Suggestions**: {reading order recommendations}
Chinese (language: "zh"):
## 今日概览
今日推荐的{论文数量}篇论文主要聚焦于**{主要研究方向1}**、**{主要研究方向2}**和**{主要研究方向3}**等前沿方向。
- **总体趋势**:{总结今日论文的整体研究趋势}
- **质量分布**:今日推荐的论文评分在 {最低分}-{最高分} 之间,{整体质量评价}。
- **研究热点**:
- **{热点1}**:{简要描述}
- **{热点2}**:{简要描述}
- **{热点3}**:{简要描述}
- **阅读建议**:{给出阅读顺序建议}
说明:
所有论文按评分从高到低排列,使用统一格式
根据 $LANGUAGE 设置选择标签语言:
English (language: "en"):
### [[Note_Filename|Paper Title as Displayed]]
- **Authors**: [author list]
- **Affiliation**: [institution names, extracted from paper source or arXiv page]
- **Links**: [DOI](url)
- **Source**: [journal name]
- **Zotero**: -- ← fill with zotero://select/items/0_{key} after manual import
- **Note**: [[existing_note_path|short title]] or --
**One-line Summary**: [one sentence summarizing the core contribution]
**Core Contributions**:
- [contribution 1]
- [contribution 2]
- [contribution 3]
**Key Results**: [most important results from abstract]
---
Chinese (language: "zh"):
### [[Note_Filename|论文标题显示名]]
- **作者**:[作者列表]
- **机构**:[机构名称,从论文源码或 arXiv 页面提取]
- **链接**:[DOI](链接)
- **来源**:[期刊名]
- **Zotero**:-- ← 手动导入后填写 zotero://select/items/0_{key}
- **笔记**:[[已有笔记路径|简称]] 或 --
**一句话总结**:[一句话概括论文的核心贡献]
**核心贡献/观点**:
- [贡献点1]
- [贡献点2]
- [贡献点3]
**关键结果**:[从摘要中提取的最重要结果]
---
重要格式规则:
[[File_Name|Display Title]],不要使用 bare [[File_Name]](下划线会直接显示,影响阅读)![[filename.png|600]],禁止使用  格式(URL 编码在 Obsidian 中不工作)\author 或 \affiliation 字段提取;若 arXiv API 未提供,从下载的源码包读取--- 作为"无数据"占位符:使用 -- 代替(三个短横线会被 Obsidian 解析为分隔线)对于前3篇论文(评分最高的3篇):
步骤0:检查论文是否已有笔记
# 在 论文笔记/ 目录中搜索已有笔记
# 搜索方式:
# 1. 按论文ID搜索(如 2602.23351)
# 2. 按论文标题搜索(模糊匹配)
# 3. 按论文标题关键词搜索
步骤1:根据检查结果决定处理方式
如果已有笔记:
extract-paper-images如果没有笔记:
extract-paper-images 提取图片paper-analyze 生成详细报告步骤2:在推荐笔记中插入图片和链接
如果已有笔记:
### [[已有论文名称]]
- **作者**:[作者列表]
- **机构**:[机构名称]
- **链接**:[DOI](链接)
- **来源**:[期刊名]
- **Zotero**:-- ← 用户手动导入后填写 zotero://select/items/0_{key}
- **笔记**:[[已有笔记路径|简称]]
**一句话总结**:[一句话概括论文的核心贡献]
![[existing_image_filename.png|600]]
**核心贡献/观点**:
...
如果没有笔记:
### [[Note_Filename|Paper Title Display Name]]
- **作者**:[作者列表]
- **机构**:[机构名称]
- **链接**:[DOI](链接)
- **来源**:[期刊名]
- **Zotero**:-- ← 用户手动导入后填写 zotero://select/items/0_{key}
- **笔记**:[[论文笔记/[domain]/[note_filename]|Short Title]] (自动生成)
**一句话总结**:[一句话概括论文的核心贡献]
![[paperID_fig1.png|600]]
**核心贡献/观点**:
...
注意:如果论文PDF无法下载(付费墙),则跳过图片插入,不显示 ![[...]] 行。
图片格式规则(重要!):
![[filename.png|600]]%20, %26)在 Obsidian 中不工作2603.24124_fig1.png详细报告说明:
论文笔记/[论文分类]/[note_filename].mdnote_filename 字段拼接 wikilink[[论文笔记/[domain]/[note_filename]|Short Title]]
[[论文笔记/大模型/Hypothesis-Conditioned_Query_Rewriting|Hypothesis-Conditioned Query Rewriting]][[论文笔记/大模型/Hypothesis-Conditioned_Query_Rewriting_for_Decision-Useful_Retrieval]](下划线直接显示,不美观)paper-analyze 自动生成机构/Affiliation 提取:
.tar.gz)中的 .tex 文件提取 \author 和 \affiliation 字段--(使用两个短横线,不要用三个 ---,因为 Obsidian 会将其解析为分隔线)在生成推荐笔记后,自动链接关键词到现有笔记:
# 步骤1:扫描现有笔记
cd "$SKILL_DIR"
$PYTHON scripts/scan_existing_notes.py \
--vault "$OBSIDIAN_VAULT_PATH" \
--output existing_notes_index.json
# 步骤2:生成推荐笔记(正常流程)
# ... 使用 search_arxiv.py 搜索论文 ...
# 步骤3:链接关键词(新增步骤)
$PYTHON scripts/link_keywords.py \
--index existing_notes_index.json \
--input "Daily_paper/YYYY-MM-DD${NOTE_SUFFIX}.md" \
--output "Daily_paper/YYYY-MM-DD${NOTE_SUFFIX}_linked.md"
注意:
Daily_paper/YYYY-MM-DD${NOTE_SUFFIX}.md 格式(中文:论文推荐,英文:paper-recommendations)[[论文名字]]paper-analyze 生成详细报告--,用户手动通过浏览器 Connector 导入后填写 zotero://select/items/0_{key}BLIP → [[BLIP]][[论文名字]]paper-analyze 生成详细报告/paper-analyze [论文ID] 或论文标题当用户输入 "start my day" 时,按以下步骤执行:
日期参数支持:
/start-my-day 2026-02-27获取目标日期
扫描现有笔记构建索引
# 扫描 vault 中现有的论文笔记
cd "$SKILL_DIR"
$PYTHON scripts/scan_existing_notes.py \
--vault "$OBSIDIAN_VAULT_PATH" \
--output existing_notes_index.json
论文笔记/ 目录搜索和筛选论文(S2 为主 + arXiv 补充)
# 使用 Python 脚本搜索、解析和筛选论文
# 首先切换到 skill 目录,然后执行脚本
# 如果有目标日期参数(如 2026-02-21),传递给 --target-date
cd "$SKILL_DIR"
$PYTHON scripts/search_arxiv.py \
--config "$OBSIDIAN_VAULT_PATH/99_System/Config/research_interests.yaml" \
--output arxiv_filtered.json \
--max-results 200 \
--top-n 10 \
--categories "physics.ao-ph,cs.AI,cs.LG,cs.CV" \
--target-date "{目标日期}" # 如果用户指定了日期,替换为实际日期
CNKI 搜索中文论文(辅)
cnki-search skill 搜索中文期刊读取筛选结果
arxiv_filtered.json 中读取筛选结果前3篇论文导入 Zotero(已移除)
Zotero: -- 占位符供用户填写生成推荐笔记(包含关键词链接)
Daily_paper/YYYY-MM-DD${NOTE_SUFFIX}.md(使用目标日期,NOTE_SUFFIX 依语言设置)[[论文名字]]--,用户手动导入后填写existing_notes_index.json 进行匹配BLIP → [[BLIP]]对前三篇论文执行深度分析
论文笔记/ 目录(用于扫描现有笔记和保存详细报告)extract-paper-images skill(用于提取论文图片,仅当PDF可下载时)paper-analyze skill(用于生成详细报告)cnki-search skill(用于搜索中文期刊论文)位于 scripts/search_arxiv.py,功能包括:
arxiv_domain_queries 配置的 AND-logic 查询--cnki-results 参数注入外部CNKI结果arxiv_filtered.json配置文件 research_interests.yaml 中的 search_strategy 字段控制搜索行为:
s2_queries: 每个领域的 S2 查询模板(如 "marine heatwave fishery impact")s2_recent_days: S2 近期窗口天数(默认30天)s2_mid_days: S2 中期窗口天数(默认365天)s2_hot_days: S2 高引用窗口天数(默认730天)arxiv_domain_queries: 每个领域的 arXiv AND-logic 查询(如 "marine heatwave AND fishery")arxiv_search_mode: arXiv 搜索模式(keyword 或 category)评分规则:
位于 scripts/scan_existing_notes.py,功能包括:
论文笔记/ 下所有 .md 文件existing_notes_index.json使用方法:
cd "$SKILL_DIR"
$PYTHON scripts/scan_existing_notes.py \
--vault "$OBSIDIAN_VAULT_PATH" \
--output existing_notes_index.json
输出格式:
{
"notes": [
{
"path": "论文笔记/多模态技术/BLIP_Bootstrapping-Language-Image-Pre-training.md",
"filename": "BLIP_Bootstrapping-Language-Image-Pre-training.md",
"title": "BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation",
"title_keywords": ["BLIP", "Bootstrapping", "Language-Image", "Pre-training", "Unified", "Vision-Language", "Understanding", "Generation"],
"tags": ["Vision-Language-Pre-training", "Multimodal-Encoder-Decoder", "Bootstrapping", "Image-Captioning", "Image-Text-Retrieval", "VQA"]
}
],
"keyword_to_notes": {
"blip": ["论文笔记/多模态技术/BLIP_Bootstrapping-Language-Image-Pre-training.md"],
"bootstrapping": ["论文笔记/多模态技术/BLIP_Bootstrapping-Language-Image-Pre-training.md"],
"vision-language": ["论文笔记/多模态技术/BLIP_Bootstrapping-Language-Image-Pre-training.md"]
}
}
位于 scripts/link_keywords.py,功能包括:
existing_notes_index.json 加载笔记映射[[BLIP]])使用方法:
# 首先切换到 skill 目录,然后执行脚本
cd "$SKILL_DIR"
$PYTHON scripts/link_keywords.py \
--index existing_notes_index.json \
--input "input.txt" \
--output "output.txt"
匹配示例:
原始文本:
"这篇论文使用了BLIP和CLIP作为基线方法。"
处理后:
"这篇论文使用了[[BLIP]]和[[CLIP]]作为基线方法。"
使用方法:
# 步骤1:扫描现有笔记
cd "$SKILL_DIR"
$PYTHON scripts/scan_existing_notes.py \
--vault "$OBSIDIAN_VAULT_PATH" \
--output existing_notes_index.json
# 步骤2:生成推荐笔记(正常流程)
# ... 使用 search_arxiv.py 搜索论文 ...
# 步骤3:链接关键词(新增步骤)
$PYTHON scripts/link_keywords.py \
--index existing_notes_index.json \
--input "Daily_paper/YYYY-MM-DD${NOTE_SUFFIX}.md" \
--output "Daily_paper/YYYY-MM-DD${NOTE_SUFFIX}_linked.md"
关键特性:
此脚本已不再自动调用。用户通过浏览器 Zotero Connector 插件手动导入论文,笔记中保留 Zotero: -- 占位符供用户填写 zotero://select/items/0_{key}。
功能概述: 在生成每日推荐笔记后,自动扫描现有笔记,将文本中的关键词(如BLIP、CLIP等)替换为wikilink(如[[BLIP]])。
实现流程:
扫描现有笔记:扫描 论文笔记/ 目录
生成推荐笔记:正常生成推荐笔记内容
链接关键词:处理生成的笔记
使用方法:
# 步骤1:扫描现有笔记
cd "$SKILL_DIR"
$PYTHON scripts/scan_existing_notes.py \
--vault "$OBSIDIAN_VAULT_PATH" \
--output existing_notes_index.json
# 步骤2:生成推荐笔记(正常流程)
# ... 使用 search_arxiv.py 搜索论文 ...
# 步骤3:链接关键词(新增步骤)
$PYTHON scripts/link_keywords.py \
--index existing_notes_index.json \
--input "Daily_paper/YYYY-MM-DD${NOTE_SUFFIX}.md" \
--output "Daily_paper/YYYY-MM-DD${NOTE_SUFFIX}_linked.md"
关键特性: