#706 by GitHub stars
huangkiki/dailypaper-skills
Agent skills for daily paper discovery, critical reviews, and connected research notes. Supports English and Chinese.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/daily-papers/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
e23912942bd1 → 39cb775faed9
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → e23912942bd1
No earlier version was observed for comparison.
skills/daily-papers-fetch/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
e23912942bd1 → 39cb775faed9
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → e23912942bd1
No earlier version was observed for comparison.
skills/daily-papers-notes/SKILL.md
Week of Nov 2, 2026 · +4 / −3 lines
Before Network or broad shell → After Network or broad shell
e23912942bd1 → 39cb775faed9
- 91 - 行数 >= 100 且包含 `## 关键公式` / `## Key equations` 和 `## 关键图表` / `## Figures and tables` 的才算合格,可以跳过
+ 91 - 行数 >= 100 且包含 `## 关键公式` / `## Key equations` 和 `## 关键图表` / `## Figures and tables` 后,还需检查标题后第一节是否为基于证据的独立锐评(新意、最强证据、关键缺口或边界、明确判决);标题不同但内容等价也可通过。缺少时补充、后置时前移完整锐评,保留有效内容与用户批注;用户指定其他顺序时遵循其要求,不能仅因篇幅够长就跳过
- 108 笔记质量由 paper-reader skill 自身保证(模板、公式、图片、概念链接等规则均在 paper-reader 中定义)。
+ 108 笔记质量由 paper-reader skill 自身保证(模板、公式、图片、概念链接及独立锐评等规则均在 paper-reader 中定义)。推荐页的短评不能代替全文阅读后的研究判断。
- 117 5. 若检查未通过,对照原论文修复并复核;保留已有有效内容。行数只是骨架筛查,不能为凑行数、公式或图片数量编造内容;原论文本身没有某类内容时明确注明。
+ 117 5. 独立锐评位于标题后第一节(用户指定其他顺序除外),包含新意、最强证据、关键缺口或边界与明确判决,关键判断能定位到来源;仅有标题、开头一句判决或泛泛优缺点不算通过
+ 118 6. 若检查未通过,对照原论文修复并复核;保留已有有效内容。行数只是骨架筛查,不能为凑行数、公式或图片数量编造内容;原论文本身没有某类内容时明确注明。
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → e23912942bd1
No earlier version was observed for comparison.
skills/daily-papers-review/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
e23912942bd1 → 39cb775faed9
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → e23912942bd1
No earlier version was observed for comparison.
skills/generate-mocs/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
e23912942bd1 → 39cb775faed9
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → e23912942bd1
No earlier version was observed for comparison.
skills/github-trending/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
e23912942bd1 → 39cb775faed9
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → e23912942bd1
No earlier version was observed for comparison.
skills/paper-reader/SKILL.md
Week of Nov 2, 2026 · +60 / −34 lines
Before Network or broad shell → After Network or broad shell
e23912942bd1 → 39cb775faed9
- 4 Use when user asks to "read paper", "analyze paper", "summarize paper",
- 5 "读论文", "分析文献", "帮我看一下这篇paper", "论文笔记", or provides a PDF file
- 6 that appears to be an academic paper. Specialized for CV/DL papers.
- 7
- 8 Also supports Zotero integration: "读一下这篇论文 ...", "快速看一下这篇论文 ...",
- 9 "批判性分析这篇论文 ...", "读一下 Zotero 里的 XXX", "批量读一下 Zotero 里 VLA 分类下的论文"
- 10
- 11 **重要触发词**: "读一下 XXX"、"读一下这篇"、"帮我读" → 必须调用此 skill
+ 4 Read academic papers from a bare arXiv abs/pdf/html URL, a PDF, a paper title,
+ 5 or Zotero. Use for "read this paper", "analyze this paper", "读一下 XXX",
+ 6 "读一下这篇", "帮我读", "看一下这篇论文", "论文笔记", quick summaries,
+ 7 critiques, and Zotero collection reading. A standalone arXiv link or ordinary
+ 8 reading request defaults to full reading and automatic note saving in the
+ 9 configured Obsidian/Markdown library. Honor explicit depth, destination, and
+ 10 no-save requests; a citation used for another task does not trigger reading.
+ 29
+ 30 ## 默认执行约定
+ 31
+ 32 - 单独发送 arXiv 论文链接(`/abs/`、`/pdf/`、`/html/`,含版本号或 `.pdf` 后缀)就是完整阅读请求,无需补说“读一下”或“保存”。链接仅作为其他任务的引用、示例或背景时,按该任务处理。
+ 33 - “读一下 XXX”“读一下这篇”“帮我读”“看一下这篇论文”“分析这篇论文”默认执行:获取全文 → 完整解析与独立锐评 → 生成正式笔记 → 写入配置的 Obsidian/Markdown 库 → 补概念与按配置刷新索引 → 反馈核心判断与实际笔记路径。不要停在聊天摘要、计划或“要不要保存”的询问。
+ 34 - 用户明确要求快速摘要、批判分析或公式提取时,保留该阅读深度,并默认保存相应模式的笔记;“只在聊天里回答”“不要保存”或指定其他输出位置优先,不额外归档到 Obsidian。
+ 35 - 仅有论文名时先用当前上下文、Zotero 或标题检索定位来源;同名论文无法确定时只澄清论文身份。笔记库配置缺失、根目录不存在、仍是未初始化的示例路径或不可写时,只询问/报告实际缺失项,不假装已保存,也不擅自另建一个笔记库。
- 59 | arXiv 链接 | `https://arxiv.org/abs/xxxx` | WebFetch |
+ 65 | arXiv 链接(可单独发送) | `https://arxiv.org/abs/xxxx`、`/pdf/xxxx`、`/html/xxxx` | 解析 ID/版本 → 优先获取 HTML 全文,失败回退 PDF → 完整阅读并保存 |
+ 69
+ 70 从 arXiv 链接保留论文 ID 与用户指定的版本,去掉查询参数或 `.pdf` 后缀后定位同一篇论文;HTML 和 PDF 回退不能偷偷换版本。笔记记录实际阅读的来源链接与版本。先检查已有笔记中的来源 ID/标题,命中同一论文时优先补充原文件并保留用户批注,不因链接形式不同重复建档;快速模式不得用短摘要覆盖已有完整笔记。全文无法获取时明确标记阅读范围和缺失部分,不把仅摘要笔记报告为完整精读。
- 79 | **完整解析** | "详细分析"、默认 | 结构化笔记(用模板) |
- 80 | **批判分析** | "批判性分析"、"critique" | 方法论优缺点评估 |
+ 87 | **完整解析** | 裸 arXiv 链接、“读一下”“帮我读”、“详细分析”、默认 | 完整结构化笔记(用模板)+ 独立锐评,自动保存 |
+ 88 | **批判分析** | "批判性分析"、"critique" | 以独立锐评为主体的方法与证据评估 |
- 85 **模板**: 严格遵循 `assets/paper-note-template.md`,不可自行简化。
+ 93 完整解析使用 `assets/paper-note-template.md`,不可自行降级为摘要。下方完整覆盖要求适用于完整解析;明确要求快速摘要、批判分析或知识提取时,按对应模式组织笔记,保留标题、来源链接、日期、阅读模式与实际阅读范围,不强行扩展为完整精读。所有模式默认保存,除非用户明确要求不保存。
+ 104
+ 105 ### 独立锐评(完整解析与批判分析默认包含)
+ 106
+ 107 单篇阅读也要给出自己的研究判断,不依赖 `daily-papers-review` 先跑过。笔记的独立“锐评”紧接标题,作为正文第一节,先给判决,再给依据;元信息、摘要、方法和实验放在其后,YAML frontmatter 仍保留在文件最顶部。最终聊天答复同样以简短锐评开头;复述摘要、罗列优缺点或只报告存档状态都不能替代它。
+ 108
+ 109 这是展示顺序:先完成阅读和证据核对,再形成并前置判断。更新已有笔记时,将原有完整锐评移到标题后,保留来源与用户批注,不仅在开头复制一句判决而把实质锐评留在文末。用户明确指定其他顺序时遵循其要求。
+ 110
+ 111 - **真正的新意**:对照具体前作,说明新增的是机制、组合、数据、规模还是工程取舍;无法核实前作时标明新颖性判断的范围。
+ 112 - **最强证据**:指出最有说服力的结果及比较条件,解释它实际支持哪条主张,不能只说“效果好”。
+ 113 - **关键缺口或边界**:检查最影响结论的混杂因素、消融、基线公平性、成本或泛化范围。区分“证据不足以支持”与“已经证明无效”;没有发现可靠缺陷时说明已验证的适用边界,不为显得尖锐编造问题。
+ 114 - **明确判决**:给出值得精读、值得借鉴但需补证、增量有限或暂不推荐等判断,并解释最值得学什么、是否值得复现及原因。可用 🔥 / 👀 / ⚠<U+FE0F> / 🫠 等标签,但标签不能替代理由。
+ 115
+ 116 语气直接、有态度,夸与质疑都落在方法和证据上。关键判断就近指向章节、图表、公式或已核查的代码位置;区分作者主张、论文证据与自己的推断。指责“没有消融/真实实验/基线”前先核对相应章节和可得补充材料;未读到应写“尚未核实”。涉及代码时注明静态审查或实际运行范围,不能把代码存在当作复现成功。
+ 117
+ 118 快速摘要、公式提取和明确“只总结、不评价”的请求不强制增加完整锐评。仅“不要保存”不改变阅读深度,完整解析仍在聊天里给出锐评。全文不可得时给出限定于已读材料的暂定判断,列明待核实项,不把未获取的实验当作缺失。
+ 158 将笔记实际写入文件,并读回确认标题、来源和本次内容。未写入成功不能报告“已保存”。默认保存不需要再次征求确认;用户明确选择其他目录或不保存时遵循该选择,明确不保存时跳过笔记与持久附件写入、概念库写入、索引和 Git;输出到其他目录时只写该目标所需产物,不修改配置的 Obsidian 库。第 5 节概念维护仅适用于保存到该库的笔记。
+ 159
- 143 按 Zotero 分类层级:`{NOTES_PATH}/{zotero_collection_path}/{方法名}.md`
+ 168 优先按 Zotero 分类层级:`{NOTES_PATH}/{zotero_collection_path}/{方法名}.md`。
+ 169
+ 170 裸 arXiv / PDF / 论文名没有 Zotero 分类时,扫描 `{NOTES_PATH}` 的现有分类,按论文主题选择最匹配目录;无法可靠分类时使用 `_待整理/`(已确认的库内缺少该子目录时可创建),不因缺少 Zotero 分类而停止保存。保持已有文件名和内部链接,`zotero_collection` 记录实际相对目录。
- 163 ### 保存后自动执行
- 164
- 165 1. 只有在 `AUTO_REFRESH_INDEXES=true` 时才刷新目录页:
+ 190 ### 概念补齐后自动执行
+ 191
+ 192 先完成第 5 节概念维护和笔记/图片检查,再处理索引与 Git:
+ 193
+ 194 1. 只有在 `AUTO_REFRESH_INDEXES=true` 时刷新目录页:
- 170 2. 只有在 `GIT_COMMIT_ENABLED=true` 时才做 git:
- 171 - 先确认 `VAULT_PATH/.git` 存在
- 172 - `git add {新增文件} {paper_notes_folder}/` 后必须真的有 staged changes
- 173 - 满足条件后再执行:
- 174 ```bash
- 175 cd {VAULT_PATH} && git add {新增文件} {paper_notes_folder}/ && git commit -m "add paper note: {方法名}"
- 176 ```
- 177 - 只有在 `GIT_PUSH_ENABLED=true` 且仓库已配置远端时才 push
- 178
- 179 ## 5. 概念库维护(每篇论文必做)
+ 199 2. Git 按有效配置和用户已有授权执行;明确的长期或当次授权优先,不重复询问。没有已有授权时不把自动保存等同于自动发布。使用 `git -C "{VAULT_PATH}" rev-parse --show-toplevel` 确认仓库(兼容 worktree)。
+ 200 3. 仅暂存本次新增/修改的笔记、必要附件、概念和索引,先检查暂存差异;不得使用整个论文目录的 `git add` 混入其他任务变更。存在本次变更时再 commit;push 还需要启用/已授权、已配置远端,且不会带入无关本地提交。遇到分叉或其他改动时按已有工作流隔离整合,不强推。
+ 201 4. 分别报告保存、索引、commit、push 的实际结果;同步失败不能把本地 commit 报告为 push 成功。
+ 202
+ 203 ## 5. 概念库维护(保存到笔记库时执行)
- 198 - [ ] 所有 Figure 都在笔记中(数量与论文一致)?
- 199 - [ ] 所有公式都在笔记中(变量一致、无冲突)?
- 200 - [ ] 所有 Table 完整保留(所有行列)?
+ 222 - [ ] 已按请求模式写入并读回实际笔记文件(明确不保存除外),来源链接和阅读范围准确?
+ 223 - [ ] 完整解析时:所有 Figure 都在笔记中(数量与论文一致)?
+ 224 - [ ] 完整解析时:所有公式都在笔记中(变量一致、无冲突)?
+ 225 - [ ] 完整解析时:所有 Table 完整保留(所有行列)?
+ 226 - [ ] 完整解析/批判分析时(用户明确不评价除外):笔记标题后第一节和最终答复开头是否为独立锐评,说明新意、最强证据、关键缺口或边界与明确判决?不保存时检查聊天答复;用户指定其他顺序时按其要求。
+ 227 - [ ] 锐评的关键判断有来源定位,作者主张与自己的推断分开,未核实内容没有写成已证实缺陷?
- 205 ## 7. 交互式功能
- 206
- 207 完成解析后询问:深入解释?对比其他论文?保存到 Obsidian?
- 208 保存后自动创建缺失概念笔记,报告新增概念数量。
+ 232 ## 7. 完成后反馈
+ 233
+ 234 先完成阅读、保存和配置启用的后处理。完整解析与批判分析的最终答复以独立的简短锐评开头:明确判决、关键依据及最影响结论的边界;随后按需解释核心方法,最后报告笔记实际路径、新增概念数量及未解决的阅读/保存/同步问题。不能用“已读完/已保存”开场替代锐评,不能因为完整锐评已写入笔记就从聊天答复中省略,也不能把锐评留成“需要的话下次补充”。其他模式及用户明确不评价或指定顺序的请求按其要求反馈;不要再询问是否保存,也不要用后续建议代替本次交付。
- 212 支持 Zotero 分类批量处理(默认递归子分类)。流程:递归获取论文 → 去重 → 跳过已有笔记 → 依次处理 → 汇总。
+ 238 支持 Zotero 分类批量处理(默认递归子分类)。流程:递归获取论文 → 去重 → 检查已有笔记的覆盖与锐评,补齐缺项并保留用户批注 → 依次处理剩余论文 → 汇总。
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → e23912942bd1
No earlier version was observed for comparison.
Heat
6.5- Star growth, last 7 daysAhead of 84% of tracked repositories
- Star growth, last 24 hoursAhead of 86% of tracked repositories
- Rank movement, last 7 daysAhead of 37% of tracked repositories
- Commits, last 30 daysAhead of 79% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- daily-papers
skills/daily-papers - daily-papers-fetch
skills/daily-papers-fetch - daily-papers-notes
skills/daily-papers-notes - daily-papers-review
skills/daily-papers-review - generate-mocs
skills/generate-mocs - github-trending
skills/github-trending - paper-reader
skills/paper-reader
How it works
daily-papers
When your agent uses it
Recommend today’s papers or papers from the past N days/week; run discovery, review, and priority-paper notes. English triggers: "recommend papers", "daily papers", "papers from the past week". 每日论文推荐的一句话总入口。用户说“今日论文推荐”“过去3天论文推荐”“过去一周论文推荐” “最近3天论文”“看看这周有啥论文”时使用。 内部会自动串联论文抓取、推荐生成、重点论文笔记三步,无需用户手动拆开。
What it loads into context
Frontmatter
125 tokensAlways available to the agent
SKILL.md
657 tokensWhen the skill is activated
Reference documents
11,412 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Language / 语言
- 执行环境
- 执行原则
- 重要约束
- 自动化
Scripts executed separately
download_note_images.pyenrich_papers.pyextract_affiliations.pyfetch_and_score.pyparse_arxiv.py
Files
../_shared/agent-runtime.mddoc3,332 bytes../_shared/language.mddoc3,613 bytes../daily-papers-fetch/SKILL.mddoc9,710 bytes../daily-papers-notes/SKILL.mddoc10,667 bytes../daily-papers-review/SKILL.mddoc13,014 bytesSKILL.en.mddoc1,459 bytesSKILL.mdcore2,540 bytesdownload_note_images.pyruns10,518 bytesenrich_papers.pyruns24,142 bytesextract_affiliations.pyruns13,413 bytesfetch_and_score.pyruns21,011 bytesparse_arxiv.pyruns2,676 bytes
Read SKILL.md
## Language / 语言
First resolve `OUTPUT_LANGUAGE` using [language selection](../_shared/language.md).
For an English request (or an explicit request for English), read and follow
[the English workflow](SKILL.en.md) instead of the Chinese body below.
中文请求继续执行下文;用户明确指定的语言优先。内部阶段继承语言,不从论文或工具输出重新判断。
## 执行环境
开始前读取 [Agent 运行约定](../_shared/agent-runtime.md),解析当前 Skill 目录、有效配置和 `TEMP_DIR`,再执行下文。
# 每日论文推荐
这是面向用户的一句话入口。对用户来说,正常只需要说一次:View the complete source on GitHubdaily-papers-fetch
When your agent uses it
Fetch, rank, and enrich recent arXiv and Hugging Face papers. English triggers: "fetch papers", "fetch papers from the last three days". This is pipeline stage 1. 论文抓取(3 步流水线的第 1 步)。抓取 arXiv + HuggingFace 最新论文,打分筛选,富化信息, 输出 daily_papers_enriched.json 到共享临时目录,供后续 skill 使用。 触发词:"论文抓取"、"跑一下论文抓取" 支持多天模式:"过去3天论文推荐"、"过去一周论文推荐"、"过去一周的论文"、"抓 3 天的论文"、"最近5天"
What it loads into context
Frontmatter
171 tokensAlways available to the agent
SKILL.md
2,682 tokensWhen the skill is activated
Reference documents
2,994 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Language / 语言
- 执行环境
- Step 0: 读取共享配置
- 解析天数
- 配置来源
- 工作流程
- 输出
- 注意事项
Scripts executed separately
../_shared/agent_ranker.py../_shared/user_config.py../_shared/user_config.py../daily-papers/enrich_papers.py../daily-papers/fetch_and_score.py../daily-papers/fetch_and_score.py
Files
../_shared/agent-runtime.mddoc3,332 bytes../_shared/agent_ranker.pyruns6,951 bytes../_shared/language.mddoc3,613 bytes../_shared/user_config.pyruns10,079 bytes../_shared/user_config.pyruns10,079 bytesSKILL.en.mddoc5,874 bytesSKILL.mdcore9,710 bytesSKILL.mdcore9,710 bytesSKILL.mdcore9,710 bytesSKILL.mdcore9,710 bytesSKILL.mdcore9,710 bytes../daily-papers/enrich_papers.pyruns24,142 bytes../daily-papers/fetch_and_score.pyruns21,011 bytes../daily-papers/fetch_and_score.pyruns21,011 bytes
Read SKILL.md
## Language / 语言
First resolve `OUTPUT_LANGUAGE` using [language selection](../_shared/language.md).
For an English request (or an explicit request for English), read and follow
[the English workflow](SKILL.en.md) instead of the Chinese body below.
中文请求继续执行下文;用户明确指定的语言优先。内部阶段继承语言,不从论文或工具输出重新判断。
## 执行环境
开始前读取 [Agent 运行约定](../_shared/agent-runtime.md),解析当前 Skill 目录、有效配置和 `TEMP_DIR`,再执行下文。
> **开始前**: 先说一声 "开始抓取论文 🐕" 并告知今天日期。如果是多天模式,告知抓取范围。
# 论文抓取 (Fetch + Score + Enrich)View the complete source on GitHubdaily-papers-notes
When your agent uses it
Generate full notes for must-read recommendations, maintain concepts, and backfill links. English triggers: "generate paper notes", "batch paper notes". This is pipeline stage 3. 论文笔记生成(3 步流水线的第 3 步)。补充概念库,为推荐论文生成完整笔记, 链接回填到推荐文件;目录页默认自动刷新,git 自动化默认关闭。 触发词:"批量笔记"、"跑一下论文笔记"
What it loads into context
Frontmatter
121 tokensAlways available to the agent
SKILL.md
3,013 tokensWhen the skill is activated
Reference documents
7,806 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Language / 语言
- 执行环境
- Step 0: 读取共享配置
- 前置检查
- 工作流程
- 输出
- 注意事项
Scripts executed separately
../_shared/generate_concept_mocs.py../_shared/generate_paper_mocs.py../_shared/generate_paper_mocs.py../_shared/user_config.py../_shared/user_config.pybackfill_links.py
Files
../_shared/agent-runtime.mddoc3,332 bytes../_shared/generate_concept_mocs.pyruns1,101 bytes../_shared/generate_paper_mocs.pyruns1,204 bytes../_shared/generate_paper_mocs.pyruns1,204 bytes../_shared/language.mddoc3,613 bytes../_shared/user_config.pyruns10,079 bytes../_shared/user_config.pyruns10,079 bytesSKILL.en.mddoc4,524 bytesSKILL.mdcore10,667 bytesSKILL.mdcore10,667 bytesSKILL.mdcore10,667 bytesbackfill_links.pyruns7,089 bytes../paper-reader/SKILL.mddoc16,277 bytes../paper-reader/references/concept-categories.mddoc2,043 bytes
Read SKILL.md
## Language / 语言
First resolve `OUTPUT_LANGUAGE` using [language selection](../_shared/language.md).
For an English request (or an explicit request for English), read and follow
[the English workflow](SKILL.en.md) instead of the Chinese body below.
中文请求继续执行下文;用户明确指定的语言优先。内部阶段继承语言,不从论文或工具输出重新判断。
## 执行环境
开始前读取 [Agent 运行约定](../_shared/agent-runtime.md),解析当前 Skill 目录、有效配置和 `TEMP_DIR`,再执行下文。
> **开始前**: 先说一声 "开始整理笔记 📝" 并告知今天日期。
# 论文笔记 (Concepts + Notes + Backfill)View the complete source on GitHubdaily-papers-review
When your agent uses it
Review fetched papers and write evidence-based recommendations with reading priorities. English triggers: "review fetched papers", "generate paper recommendations". This is pipeline stage 2. 论文点评(3 步流水线的第 2 步)。读取富化后的论文数据,扫描笔记库,生成有态度的推荐点评, 保存推荐文件到 Obsidian,更新 history;git 自动化默认关闭。 触发词:"论文点评"、"跑一下论文点评"
What it loads into context
Frontmatter
114 tokensAlways available to the agent
SKILL.md
3,696 tokensWhen the skill is activated
Reference documents
2,840 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Language / 语言
- 执行环境
- Step 0: 读取共享配置
- 前置检查
- 工作流程
- 输出
- 注意事项
Scripts executed separately
../_shared/user_config.py../_shared/user_config.pyupdate_history.py
Files
../_shared/agent-runtime.mddoc3,332 bytes../_shared/language.mddoc3,613 bytes../_shared/user_config.pyruns10,079 bytes../_shared/user_config.pyruns10,079 bytesSKILL.en.mddoc5,269 bytesSKILL.mdcore13,014 bytesSKILL.mdcore13,014 bytesSKILL.mdcore13,014 bytesupdate_history.pyruns5,923 bytes
Read SKILL.md
## Language / 语言
First resolve `OUTPUT_LANGUAGE` using [language selection](../_shared/language.md).
For an English request (or an explicit request for English), read and follow
[the English workflow](SKILL.en.md) instead of the Chinese body below.
中文请求继续执行下文;用户明确指定的语言优先。内部阶段继承语言,不从论文或工具输出重新判断。
## 执行环境
开始前读取 [Agent 运行约定](../_shared/agent-runtime.md),解析当前 Skill 目录、有效配置和 `TEMP_DIR`,再执行下文。
> **开始前**: 先说一声 "开始点评论文 🔪" 并告知今天日期。
# 论文点评 (Review + Save)View the complete source on GitHubgenerate-mocs
When your agent uses it
Refresh paper and concept indexes (maps of content). English triggers: "refresh indexes", "update paper and concept indexes", "refresh MOCs". 重新生成 Obsidian 里的目录页 / 导航页(MOC)。 当用户说“更新索引”“更新论文和概念目录”“刷新论文和概念目录”“刷新MOC”时使用。
What it loads into context
Frontmatter
88 tokensAlways available to the agent
SKILL.md
679 tokensWhen the skill is activated
Reference documents
1,892 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Language / 语言
- 执行环境
- Step 0: 读取共享配置
- 执行步骤
- git 自动化
- 结果要求
Scripts executed separately
../_shared/generate_concept_mocs.py../_shared/generate_paper_mocs.py../_shared/user_config.py../_shared/user_config.py
Files
../_shared/agent-runtime.mddoc3,332 bytes../_shared/generate_concept_mocs.pyruns1,101 bytes../_shared/generate_paper_mocs.pyruns1,204 bytes../_shared/language.mddoc3,613 bytes../_shared/user_config.pyruns10,079 bytes../_shared/user_config.pyruns10,079 bytesSKILL.en.mddoc962 bytesSKILL.mdcore2,550 bytesSKILL.mdcore2,550 bytesSKILL.mdcore2,550 bytes
Read SKILL.md
## Language / 语言
First resolve `OUTPUT_LANGUAGE` using [language selection](../_shared/language.md).
For an English request (or an explicit request for English), read and follow
[the English workflow](SKILL.en.md) instead of the Chinese body below.
中文请求继续执行下文;用户明确指定的语言优先。内部阶段继承语言,不从论文或工具输出重新判断。
## 执行环境
开始前读取 [Agent 运行约定](../_shared/agent-runtime.md),解析当前 Skill 目录、有效配置和 `TEMP_DIR`,再执行下文。
# 更新目录页
这个 skill 用于手动补刷 Obsidian 里的目录页 / 导航页(MOC)。View the complete source on GitHubgithub-trending
When your agent uses it
Discover trending GitHub repositories and research-related project updates. English triggers: "weekly GitHub trending", "daily GitHub trending", "monthly GitHub trending". 抓取 GitHub 上 star 涨得最快的项目(Trending 榜),打分标注是否与研究方向相关, 生成 Obsidian 笔记到 GitHubTrending 文件夹。默认周榜。 触发词:"GitHub 周榜"、"star 涨得最快"、"过去一周 GitHub 热门"、"GitHub trending"、 "看看这周 GitHub 上火了什么"、"GitHub 日榜"、"GitHub 月榜"
What it loads into context
Frontmatter
154 tokensAlways available to the agent
SKILL.md
1,445 tokensWhen the skill is activated
Reference documents
2,276 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Language / 语言
- 执行环境
- Step 0: 读取共享配置
- 解析周期与语言
- 工作流程
- 输出
- 注意事项
Scripts executed separately
../_shared/user_config.py../_shared/user_config.pydiscover_projects.pyfetch_trending.pywrite_trending_note.py
Files
../_shared/agent-runtime.mddoc3,332 bytes../_shared/language.mddoc3,613 bytes../_shared/user_config.pyruns10,079 bytes../_shared/user_config.pyruns10,079 bytesSKILL.en.mddoc2,763 bytesSKILL.mdcore5,377 bytesSKILL.mdcore5,377 bytesSKILL.mdcore5,377 bytesSKILL.mdcore5,377 bytesdiscover_projects.pyruns4,607 bytesfetch_trending.pyruns6,221 byteswrite_trending_note.pyruns8,221 bytes
Read SKILL.md
## Language / 语言
First resolve `OUTPUT_LANGUAGE` using [language selection](../_shared/language.md).
For an English request (or an explicit request for English), read and follow
[the English workflow](SKILL.en.md) instead of the Chinese body below.
中文请求继续执行下文;用户明确指定的语言优先。内部阶段继承语言,不从论文或工具输出重新判断。
## 执行环境
开始前读取 [Agent 运行约定](../_shared/agent-runtime.md),解析当前 Skill 目录、有效配置和 `TEMP_DIR`,再执行下文。
> **开始前**: 先说一声 "开始抓 GitHub 榜单 🐙" 并告知今天日期与抓取周期(默认周榜)。
# GitHub Trending 抓取View the complete source on GitHubpaper-reader
When your agent uses it
Read academic papers from a bare arXiv abs/pdf/html URL, a PDF, a paper title, or Zotero. Use for "read this paper", "analyze this paper", "读一下 XXX", "读一下这篇", "帮我读", "看一下这篇论文", "论文笔记", quick summaries, critiques, and Zotero collection reading. A standalone arXiv link or ordinary reading request defaults to full reading and automatic note saving in the configured Obsidian/Markdown library. Honor explicit depth, destination, and no-save requests; a citation used for another task does not trigger reading.
What it loads into context
Frontmatter
145 tokensAlways available to the agent
SKILL.md
4,533 tokensWhen the skill is activated
Reference documents
16,901 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Language / 语言
- 执行环境
- 默认执行约定
- Step 0: 读取共享配置
- 1. 接收论文
- 2. 阅读模式
- 3. 笔记生成
- 4. Obsidian 保存
- 5. 概念库维护(保存到笔记库时执行)
- 6. 完成后自检(合并 checklist)
- 7. 完成后反馈
- 8. 批量处理
- 参考文件(按需查阅)
Scripts executed separately
../_shared/generate_concept_mocs.py../_shared/generate_paper_mocs.py../_shared/generate_paper_mocs.py../_shared/user_config.py../_shared/user_config.py../daily-papers/download_note_images.pyassets/reorganize_notes.pyassets/zotero_helper.pypaper_daemon.py
Files
../_shared/agent-runtime.mddoc3,332 bytes../_shared/generate_concept_mocs.pyruns1,101 bytes../_shared/generate_paper_mocs.pyruns1,204 bytes../_shared/generate_paper_mocs.pyruns1,204 bytes../_shared/language.mddoc3,613 bytes../_shared/user_config.pyruns10,079 bytes../_shared/user_config.pyruns10,079 bytes../daily-papers/download_note_images.pyruns10,518 bytesSKILL.en.mddoc12,756 bytesSKILL.mdcore16,277 bytesSKILL.mdcore16,277 bytesSKILL.mdcore16,277 bytesassets/concept-note-template.en.mddoc554 bytesassets/paper-note-template.en.mddoc4,697 bytesassets/paper-note-template.mddoc5,559 bytesassets/reorganize_notes.pyruns15,461 bytesassets/zotero_helper.pyruns14,973 bytespaper_daemon.pyruns26,533 bytesreferences/concept-categories.mddoc2,043 bytesreferences/cv-dl-terminology.mddoc18,154 bytesreferences/image-troubleshooting.mddoc3,710 bytesreferences/quality-standards.mddoc2,935 bytesreferences/zotero-guide.mddoc3,022 bytes
Read SKILL.md
## Language / 语言
First resolve `OUTPUT_LANGUAGE` using [language selection](../_shared/language.md).
For an English request (or an explicit request for English), read and follow
[the English workflow](SKILL.en.md) instead of the Chinese body below.
中文请求继续执行下文;用户明确指定的语言优先。内部阶段继承语言,不从论文或工具输出重新判断。
## 执行环境
开始前读取 [Agent 运行约定](../_shared/agent-runtime.md),解析当前 Skill 目录、有效配置和 `TEMP_DIR`,再执行下文。
> **开始前**: 先跟用户打个招呼 🐕
# 学术论文阅读助手 (Paper Reader)View the complete source on GitHubSkills included
- daily-papers
- daily-papers-fetch
- daily-papers-notes
- daily-papers-review
- generate-mocs
- github-trending
- paper-reader
Repository facts
- License
- Apache-2.0
- Created
- Feb 26, 2026
- Last pushed
- Nov 2, 2026
- Forks
- 106
- Open issues
- 8
- Project activity
- Active
Rank over the last 12 weeks
Now #706 · best #513 · down 91 in 30 days
- #699 on Nov 2
- #700 on Nov 3
- #701 on Nov 4
- #705 on Nov 5
- #703 on Nov 6
- #706 since Nov 7
76 earlier periods
- #508 on Aug 2
- #501 on Aug 8
- #503 on Aug 9
- #523 on Aug 10
- #521 on Aug 11
- #517 on Aug 12
- #520 on Aug 13
- #521 on Aug 14
- #513 on Aug 16
- #518 on Aug 17
- #534 on Aug 18
- #526 on Aug 19
- #523 on Aug 20
- #515 on Aug 22
- #534 on Aug 23
- #536 on Aug 24
- #546 on Aug 25
- #533 on Aug 26
- #545 on Aug 27
- #544 on Aug 28
- #516 on Aug 30
- #545 on Aug 31
- #550 on Sep 1
- #541 on Sep 2
- #545 on Sep 3
- #527 on Sep 4
- #523 on Sep 5
- #540 on Sep 6
- #545 on Sep 7
- #560 on Sep 8
- #546 on Sep 9
- #551 on Sep 10
- #543 on Sep 11
- #538 on Sep 12
- #540 on Sep 13
- #561 on Sep 14
- #547 on Sep 15
- #557 on Sep 17
- #561 on Sep 18
- #548 on Sep 19
- #558 on Sep 20
- #566 on Sep 21
- #573 on Sep 22
- #574 on Sep 23
- #548 on Sep 25
- #549 on Sep 26
- #572 on Sep 27
- #574 on Sep 28
- #595 on Sep 29
- #567 on Oct 1
- #576 on Oct 2
- #566 on Oct 4
- #587 on Oct 6
- #589 on Oct 7
- #615 on Oct 8
- #600 on Oct 9
- #584 on Oct 10
- #587 on Oct 11
- #598 on Oct 12
- #601 on Oct 13
- #614 on Oct 14
- #608 on Oct 15
- #616 on Oct 16
- #602 on Oct 17
- #595 on Oct 18
- #618 on Oct 19
- #628 on Oct 20
- #637 on Oct 21
- #619 on Oct 22
- #615 on Oct 23
- #604 on Oct 24
- #679 on Oct 25
- #688 on Oct 28
- #691 on Oct 29
- #693 on Oct 30
- #695 from Oct 31 to Nov 1
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 4, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 24 notes
skills/_shared/user_config.py:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/daily-papers-fetch/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/daily-papers-fetch/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/daily-papers-fetch/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/daily-papers-fetch/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/daily-papers/fetch_and_score.py:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/_shared/generate_paper_mocs.py:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/_shared/user_config.py:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/daily-papers-notes/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/daily-papers-notes/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/_shared/user_config.py:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/daily-papers-review/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/daily-papers-review/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/_shared/user_config.py:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/generate-mocs/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/generate-mocs/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/_shared/user_config.py:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/github-trending/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/github-trending/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/github-trending/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 1 dangerous shell commandin 1 file: daily-papers/parse_arxiv.py:8
- 190 network referencesin 13 files: daily-papers/enrich_papers.py:17 daily-papers/fetch_and_score.py:50 skills/paper-reader/SKILL.md:63 and 10 more
- No hidden or obfuscated text
- 3 instruction override signalsin 1 file: paper-reader/paper_daemon.py:573
- 38 executable scriptsin 17 files: skills/_shared/user_config.py:1 skills/_shared/generate_paper_mocs.py:1 skills/_shared/generate_concept_mocs.py:1 and 14 more
- 45 references to secretsin 6 files: skills/_shared/user_config.py:19 daily-papers/fetch_and_score.py:478 skills/daily-papers-fetch/SKILL.md:112 and 3 more
- No requests to vote in Hot
Show all 277 signals by file
skills/_shared/agent_ranker.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/_shared/generate_concept_mocs.py
skills/_shared/generate_paper_mocs.py
skills/_shared/user_config.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Access to secretsline 19
[Credential-related source omitted] - Access to secretsline 19
[Credential-related source omitted] - Access to secretsline 19
[Credential-related source omitted] - Access to secretsline 19
[Credential-related source omitted] - Access to secretsline 19
[Credential-related source omitted] - Access to secretsline 19
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Access to secretsline 162
[Credential-related source omitted] - Access to secretsline 162
[Credential-related source omitted] - Access to secretsline 162
[Credential-related source omitted] - Access to secretsline 162
[Credential-related source omitted] - Access to secretsline 162
[Credential-related source omitted] - Access to secretsline 162
[Credential-related source omitted] - Access to secretsline 172
[Credential-related source omitted] - Access to secretsline 172
[Credential-related source omitted] - Access to secretsline 172
[Credential-related source omitted] - Access to secretsline 172
[Credential-related source omitted] - Access to secretsline 172
[Credential-related source omitted] - Access to secretsline 172
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Access to secretsline 191
[Credential-related source omitted] - Access to secretsline 192
[Credential-related source omitted] - Access to secretsline 192
[Credential-related source omitted] - Access to secretsline 192
[Credential-related source omitted] - Access to secretsline 192
[Credential-related source omitted] - Access to secretsline 192
[Credential-related source omitted] - Access to secretsline 192
[Credential-related source omitted]
skills/daily-papers-fetch/SKILL.en.md
- Access to secretsline 47
[Credential-related source omitted]
skills/daily-papers-fetch/SKILL.md
- Access to secretsline 112
[Credential-related source omitted] - Access to secretsline 112
[Credential-related source omitted] - Network accessline 141
- 合并优先级(脚本内部处理): - figure_url: HTML curl - affiliations: PDF > HTML > abs fallback > Phase 1 data - Network accessline 141
- 合并优先级(脚本内部处理): - figure_url: HTML curl - affiliations: PDF > HTML > abs fallback > Phase 1 data - Network accessline 142
- figure_url: HTML curl - affiliations: PDF > HTML > abs fallback > Phase 1 data - authors: HTML > abs fallback > Phase 1 data - Network accessline 142
- figure_url: HTML curl - affiliations: PDF > HTML > abs fallback > Phase 1 data - authors: HTML > abs fallback > Phase 1 data
skills/daily-papers-notes/backfill_links.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/daily-papers-review/SKILL.md
- Network accessline 177
### N. 论文标题 - **链接**: [arXiv](https://arxiv.org/abs/XXXX) | [PDF](https://arxiv.org/pdf/XXXX) - Network accessline 177
### N. 论文标题 - **链接**: [arXiv](https://arxiv.org/abs/XXXX) | [PDF](https://arxiv.org/pdf/XXXX) - Network accessline 178
- **链接**: [arXiv](https://arxiv.org/abs/XXXX) | [PDF](https://arxiv.org/pdf/XXXX) - Network accessline 178
- **链接**: [arXiv](https://arxiv.org/abs/XXXX) | [PDF](https://arxiv.org/pdf/XXXX) - Network accessline 191
- **作者**: 完整作者列表(优先使用富化的 authors 字段,其次用原始 authors 字段) - **机构**: 从富化的 affiliations 字段获取,列出所有机构。如果 affiliations 为空,再检查原始 affiliations 字段。都没有则写"未知" - **链接**: [arXiv](https://arxiv.org/abs/XXXX) | [PDF](https://arxiv.org/pdf/XXXX) - Network accessline 191
- **作者**: 完整作者列表(优先使用富化的 authors 字段,其次用原始 authors 字段) - **机构**: 从富化的 affiliations 字段获取,列出所有机构。如果 affiliations 为空,再检查原始 affiliations 字段。都没有则写"未知" - **链接**: [arXiv](https://arxiv.org/abs/XXXX) | [PDF](https://arxiv.org/pdf/XXXX) - Network accessline 192
- **机构**: 从富化的 affiliations 字段获取,列出所有机构。如果 affiliations 为空,再检查原始 affiliations 字段。都没有则写"未知" - **链接**: [arXiv](https://arxiv.org/abs/XXXX) | [PDF](https://arxiv.org/pdf/XXXX) - **来源**: {见下方来源格式} - Network accessline 192
- **机构**: 从富化的 affiliations 字段获取,列出所有机构。如果 affiliations 为空,再检查原始 affiliations 字段。都没有则写"未知" - **链接**: [arXiv](https://arxiv.org/abs/XXXX) | [PDF](https://arxiv.org/pdf/XXXX) - **来源**: {见下方来源格式} - Network accessline 193
- **链接**: [arXiv](https://arxiv.org/abs/XXXX) | [PDF](https://arxiv.org/pdf/XXXX) - Network accessline 193
- **链接**: [arXiv](https://arxiv.org/abs/XXXX) | [PDF](https://arxiv.org/pdf/XXXX)
skills/daily-papers-review/update_history.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/daily-papers/download_note_images.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 7
For each external image link : - Network accessline 7
For each external image link : - Network accessline 30
_DUPE_PATH_RE = re.compile( r"(https://arxiv\.org/html/)(\d{4}\.\d{4,5}v\d+)/\2/" - Network accessline 30
_DUPE_PATH_RE = re.compile( r"(https://arxiv\.org/html/)(\d{4}\.\d{4,5}v\d+)/\2/" - Network accessline 31
r"(https://arxiv\.org/html/)(\d{4}\.\d{4,5}v\d+)/\2/" - Network accessline 31
r"(https://arxiv\.org/html/)(\d{4}\.\d{4,5}v\d+)/\2/" - Network accessline 154
proc = await asyncio.create_subprocess_exec( "curl", "-sL", "--max-time", "30", "-o", pdf_path, f"https://arxiv.org/pdf/{arxiv_id}.pdf", - Network accessline 154
proc = await asyncio.create_subprocess_exec( "curl", "-sL", "--max-time", "30", "-o", pdf_path, f"https://arxiv.org/pdf/{arxiv_id}.pdf", - Network accessline 155
"curl", "-sL", "--max-time", "30", "-o", pdf_path, f"https://arxiv.org/pdf/{arxiv_id}.pdf", stdout=asyncio.subprocess.DEVNULL, - Network accessline 155
"curl", "-sL", "--max-time", "30", "-o", pdf_path, f"https://arxiv.org/pdf/{arxiv_id}.pdf", stdout=asyncio.subprocess.DEVNULL, - Network accessline 156
"-o", pdf_path, f"https://arxiv.org/pdf/{arxiv_id}.pdf", - Network accessline 156
"-o", pdf_path, f"https://arxiv.org/pdf/{arxiv_id}.pdf",
skills/daily-papers/enrich_papers.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 17
Architecture: - asyncio + subprocess curl for concurrent HTTP requests - Network accessline 17
Architecture: - asyncio + subprocess curl for concurrent HTTP requests - Network accessline 18
- asyncio + subprocess curl for concurrent HTTP requests - Network accessline 18
- asyncio + subprocess curl for concurrent HTTP requests - Network accessline 19
- Semaphore(10) to avoid hammering arXiv - Pure regex HTML parsing (no WebFetch / no external deps) - Per-request timeout via curl --max-time (no Python-level per-paper timeout) - Network accessline 19
- Semaphore(10) to avoid hammering arXiv - Pure regex HTML parsing (no WebFetch / no external deps) - Per-request timeout via curl --max-time (no Python-level per-paper timeout) - Network accessline 20
- Pure regex HTML parsing (no WebFetch / no external deps) - Per-request timeout via curl --max-time (no Python-level per-paper timeout) """ - Network accessline 20
- Pure regex HTML parsing (no WebFetch / no external deps) - Per-request timeout via curl --max-time (no Python-level per-paper timeout) """ - Network accessline 21
- Per-request timeout via curl --max-time (no Python-level per-paper timeout) - Network accessline 21
- Per-request timeout via curl --max-time (no Python-level per-paper timeout) - Network accessline 106
"""Fetch URL content using curl subprocess with retry. Returns empty string on failure.""" - Network accessline 106
"""Fetch URL content using curl subprocess with retry. Returns empty string on failure.""" - Network accessline 143
url = fig if url.startswith("/"): url = "https://arxiv.org" + url - Network accessline 143
url = fig if url.startswith("/"): url = "https://arxiv.org" + url - Network accessline 144
if url.startswith("/"): url = "https://arxiv.org" + url elif not url.startswith("http"): - Network accessline 144
if url.startswith("/"): url = "https://arxiv.org" + url elif not url.startswith("http"): - Network accessline 145
url = "https://arxiv.org" + url - Network accessline 145
url = "https://arxiv.org" + url - Network accessline 146
elif not url.startswith("http"): if re.match(r"\d{4}\.\d{4,5}v\d+/", url): url = "https://arxiv.org/html/" + url - Network accessline 146
elif not url.startswith("http"): if re.match(r"\d{4}\.\d{4,5}v\d+/", url): url = "https://arxiv.org/html/" + url - Network accessline 147
if re.match(r"\d{4}\.\d{4,5}v\d+/", url): url = "https://arxiv.org/html/" + url else: - Network accessline 147
if re.match(r"\d{4}\.\d{4,5}v\d+/", url): url = "https://arxiv.org/html/" + url else: - Network accessline 148
url = "https://arxiv.org/html/" + url - Network accessline 148
url = "https://arxiv.org/html/" + url - Network accessline 149
else: url = f"https://arxiv.org/html/{arxiv_id}/" + url return url - Network accessline 149
else: url = f"https://arxiv.org/html/{arxiv_id}/" + url return url - Network accessline 150
url = f"https://arxiv.org/html/{arxiv_id}/" + url - Network accessline 150
url = f"https://arxiv.org/html/{arxiv_id}/" + url - Network accessline 344
try: cmd = ( f'curl -sL --max-time {CURL_TIMEOUT} "https://arxiv.org/pdf/{arxiv_id}"' - Network accessline 344
try: cmd = ( f'curl -sL --max-time {CURL_TIMEOUT} "https://arxiv.org/pdf/{arxiv_id}"' - Network accessline 345
cmd = ( f'curl -sL --max-time {CURL_TIMEOUT} "https://arxiv.org/pdf/{arxiv_id}"' f" | pdftotext -l 2 - -" - Network accessline 345
cmd = ( f'curl -sL --max-time {CURL_TIMEOUT} "https://arxiv.org/pdf/{arxiv_id}"' f" | pdftotext -l 2 - -" - Network accessline 346
f'curl -sL --max-time {CURL_TIMEOUT} "https://arxiv.org/pdf/{arxiv_id}"' - Network accessline 346
f'curl -sL --max-time {CURL_TIMEOUT} "https://arxiv.org/pdf/{arxiv_id}"' - Network accessline 388
html_url = f"https://arxiv.org/html/{arxiv_id}" - Network accessline 388
html_url = f"https://arxiv.org/html/{arxiv_id}" - Network accessline 413
abs_affiliations = [] if not html_authors or not html_affiliations: abs_url = f"https://arxiv.org/abs/{arxiv_id}" - Network accessline 413
abs_affiliations = [] if not html_authors or not html_affiliations: abs_url = f"https://arxiv.org/abs/{arxiv_id}" - Network accessline 414
if not html_authors or not html_affiliations: abs_url = f"https://arxiv.org/abs/{arxiv_id}" abs_html = await curl_fetch(abs_url, sem) - Network accessline 414
if not html_authors or not html_affiliations: abs_url = f"https://arxiv.org/abs/{arxiv_id}" abs_html = await curl_fetch(abs_url, sem) - Network accessline 415
abs_url = f"https://arxiv.org/abs/{arxiv_id}" - Network accessline 415
abs_url = f"https://arxiv.org/abs/{arxiv_id}" - Network accessline 430
# figure_url: HTML curl > keep existing - Network accessline 430
# figure_url: HTML curl > keep existing
skills/daily-papers/extract_affiliations.py
skills/daily-papers/fetch_and_score.py
- Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
#!/usr/bin/env python3 - Executable scriptline 1
Executable file; content unavailable - Network accessline 50
ATOM_NS = { "atom": "http://www.w3.org/2005/Atom", - Network accessline 50
ATOM_NS = { "atom": "http://www.w3.org/2005/Atom", - Network accessline 51
"atom": "http://www.w3.org/2005/Atom", - Network accessline 51
"atom": "http://www.w3.org/2005/Atom", - Network accessline 52
"arxiv": "http://arxiv.org/schemas/atom", - Network accessline 52
"arxiv": "http://arxiv.org/schemas/atom", - Network accessline 153
"affiliations": "", "abstract": p.get("summary", ""), "url": f"https://arxiv.org/abs/{arxiv_id}", - Network accessline 153
"affiliations": "", "abstract": p.get("summary", ""), "url": f"https://arxiv.org/abs/{arxiv_id}", - Network accessline 154
"abstract": p.get("summary", ""), "url": f"https://arxiv.org/abs/{arxiv_id}", "pdf": f"https://arxiv.org/pdf/{arxiv_id}", - Network accessline 154
"abstract": p.get("summary", ""), "url": f"https://arxiv.org/abs/{arxiv_id}", "pdf": f"https://arxiv.org/pdf/{arxiv_id}", - Network accessline 155
"url": f"https://arxiv.org/abs/{arxiv_id}", - Network accessline 155
"url": f"https://arxiv.org/abs/{arxiv_id}", - Network accessline 156
"pdf": f"https://arxiv.org/pdf/{arxiv_id}", - Network accessline 156
"pdf": f"https://arxiv.org/pdf/{arxiv_id}", - Network accessline 179
while d <= end_date: date_str = d.isoformat() endpoint = f"https://huggingface.co/api/daily_papers?date={date_str}&limit=100" - Network accessline 179
while d <= end_date: date_str = d.isoformat() endpoint = f"https://huggingface.co/api/daily_papers?date={date_str}&limit=100" - Network accessline 180
date_str = d.isoformat() endpoint = f"https://huggingface.co/api/daily_papers?date={date_str}&limit=100" print(f" Fetching hf-daily {date_str}...", file=sys.stderr) - Network accessline 180
date_str = d.isoformat() endpoint = f"https://huggingface.co/api/daily_papers?date={date_str}&limit=100" print(f" Fetching hf-daily {date_str}...", file=sys.stderr) - Network accessline 181
endpoint = f"https://huggingface.co/api/daily_papers?date={date_str}&limit=100" - Network accessline 181
endpoint = f"https://huggingface.co/api/daily_papers?date={date_str}&limit=100" - Network accessline 199
endpoint = "https://huggingface.co/api/daily_papers?limit=50" - Network accessline 199
endpoint = "https://huggingface.co/api/daily_papers?limit=50" - Network accessline 216
endpoint = "https://huggingface.co/api/daily_papers?sort=trending&limit=50" - Network accessline 216
endpoint = "https://huggingface.co/api/daily_papers?sort=trending&limit=50" - Network accessline 239
cats = "+OR+".join(f"cat:{c}" for c in ARXIV_CATEGORIES) url = ( f"https://export.arxiv.org/api/query?" - Network accessline 239
cats = "+OR+".join(f"cat:{c}" for c in ARXIV_CATEGORIES) url = ( f"https://export.arxiv.org/api/query?" - Network accessline 240
url = ( f"https://export.arxiv.org/api/query?" f"search_query=({cats})" - Network accessline 240
url = ( f"https://export.arxiv.org/api/query?" f"search_query=({cats})" - Network accessline 241
f"https://export.arxiv.org/api/query?" - Network accessline 241
f"https://export.arxiv.org/api/query?" - Network accessline 304
"abstract": abstract, "url": entry_url, "pdf": f"https://arxiv.org/pdf/{arxiv_id}" if arxiv_id else "", - Network accessline 304
"abstract": abstract, "url": entry_url, "pdf": f"https://arxiv.org/pdf/{arxiv_id}" if arxiv_id else "", - Network accessline 305
"url": entry_url, "pdf": f"https://arxiv.org/pdf/{arxiv_id}" if arxiv_id else "", "date": date, - Network accessline 305
"url": entry_url, "pdf": f"https://arxiv.org/pdf/{arxiv_id}" if arxiv_id else "", "date": date, - Network accessline 306
"pdf": f"https://arxiv.org/pdf/{arxiv_id}" if arxiv_id else "", - Network accessline 306
"pdf": f"https://arxiv.org/pdf/{arxiv_id}" if arxiv_id else "", - Network accessline 453
parser = argparse.ArgumentParser() parser.add_argument("--date", help="Target date YYYY-MM-DD (default: today)") parser.add_argument("--days", type=int, default=1, help="Number of days to fetch (default: 1)") - Network accessline 453
parser = argparse.ArgumentParser() parser.add_argument("--date", help="Target date YYYY-MM-DD (default: today)") parser.add_argument("--days", type=int, default=1, help="Number of days to fetch (default: 1)") - Network accessline 454
parser.add_argument("--date", help="Target date YYYY-MM-DD (default: today)") parser.add_argument("--days", type=int, default=1, help="Number of days to fetch (default: 1)") parser.add_argument("--output", type=Path, help="Write UTF - Network accessline 454
parser.add_argument("--date", help="Target date YYYY-MM-DD (default: today)") parser.add_argument("--days", type=int, default=1, help="Number of days to fetch (default: 1)") parser.add_argument("--output", type=Path, help="Write UTF - Network accessline 455
parser.add_argument("--days", type=int, default=1, help="Number of days to fetch (default: 1)") - Network accessline 455
parser.add_argument("--days", type=int, default=1, help="Number of days to fetch (default: 1)") - Access to secretsline 478
[Credential-related source omitted] - Access to secretsline 478
[Credential-related source omitted] - Access to secretsline 479
[Credential-related source omitted] - Access to secretsline 479
[Credential-related source omitted]
skills/daily-papers/parse_arxiv.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 7
用法: curl -s "https://export.arxiv.org/api/query?..." | python3 parse_arxiv.py - Dangerous shell operationline 8
curl -s "https://export.arxiv.org/api/query?..." | python3 parse_arxiv.py - Network accessline 8
curl -s "https://export.arxiv.org/api/query?..." | python3 parse_arxiv.py - Network accessline 15
NS = { "atom": "http://www.w3.org/2005/Atom", - Network accessline 16
"atom": "http://www.w3.org/2005/Atom", - Network accessline 17
"arxiv": "http://arxiv.org/schemas/atom", - Network accessline 63
"abstract": abstract, "url": url, "pdf": f"https://arxiv.org/pdf/{arxiv_id}" if arxiv_id else "", - Network accessline 64
"url": url, "pdf": f"https://arxiv.org/pdf/{arxiv_id}" if arxiv_id else "", "date": date, - Network accessline 65
"pdf": f"https://arxiv.org/pdf/{arxiv_id}" if arxiv_id else "",
skills/github-trending/discover_projects.py
- Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 23
[Credential-related source omitted] - Network accessline 24
[Credential-related source omitted] - Network accessline 25
headers["Authorization"] = f"Bearer {token}" url = "https://api.github.com/search/repositories?" + urlencode( {"q": query, "sort": "stars", "order": "desc", "per_page": 10}) - Network accessline 26
url = "https://api.github.com/search/repositories?" + urlencode(
skills/github-trending/fetch_trending.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 90
"owner": owner, "name": name, "url": f"https://github.com/{full}", - Network accessline 91
"name": name, "url": f"https://github.com/{full}", "description": description, - Network accessline 92
"url": f"https://github.com/{full}", - Network accessline 134
url = f"https://github.com/trending?since={args.since}"
skills/github-trending/write_trending_note.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/paper-reader/SKILL.en.md
skills/paper-reader/SKILL.md
- Network accessline 63
|----------|------|----------| | PDF 路径 | `/path/to/paper.pdf` | 直接 Read | | arXiv 链接(可单独发送) | `https://arxiv.org/abs/xxxx`、`/pdf/xxxx`、`/html/xxxx` | 解析 ID/版本 → 优先获取 HTML 全文,失败回退 PDF → 完整阅读并保存 | - Network accessline 63
|----------|------|----------| | PDF 路径 | `/path/to/paper.pdf` | 直接 Read | | arXiv 链接(可单独发送) | `https://arxiv.org/abs/xxxx`、`/pdf/xxxx`、`/html/xxxx` | 解析 ID/版本 → 优先获取 HTML 全文,失败回退 PDF → 完整阅读并保存 | - Network accessline 64
| PDF 路径 | `/path/to/paper.pdf` | 直接 Read | | arXiv 链接(可单独发送) | `https://arxiv.org/abs/xxxx`、`/pdf/xxxx`、`/html/xxxx` | 解析 ID/版本 → 优先获取 HTML 全文,失败回退 PDF → 完整阅读并保存 | | Zotero 分类 | "VLA 分类的论文" | 查询数据库 → 列出 → 用户选择 | - Network accessline 64
| PDF 路径 | `/path/to/paper.pdf` | 直接 Read | | arXiv 链接(可单独发送) | `https://arxiv.org/abs/xxxx`、`/pdf/xxxx`、`/html/xxxx` | 解析 ID/版本 → 优先获取 HTML 全文,失败回退 PDF → 完整阅读并保存 | | Zotero 分类 | "VLA 分类的论文" | 查询数据库 → 列出 → 用户选择 | - Network accessline 65
| arXiv 链接(可单独发送) | `https://arxiv.org/abs/xxxx`、`/pdf/xxxx`、`/html/xxxx` | 解析 ID/版本 → 优先获取 HTML 全文,失败回退 PDF → 完整阅读并保存 | - Network accessline 65
| arXiv 链接(可单独发送) | `https://arxiv.org/abs/xxxx`、`/pdf/xxxx`、`/html/xxxx` | 解析 ID/版本 → 优先获取 HTML 全文,失败回退 PDF → 完整阅读并保存 | - Network accessline 75
2. 按优先级获取:arXiv HTML > arXiv PDF > DOI > WebSearch 标题 3. 判断 arXiv ID:从 URL / Zotero extra 字段 / 标题搜索 4. 推荐直接 WebFetch `https://arxiv.org/html/{arxiv_id}`,无需下载 - Network accessline 75
2. 按优先级获取:arXiv HTML > arXiv PDF > DOI > WebSearch 标题 3. 判断 arXiv ID:从 URL / Zotero extra 字段 / 标题搜索 4. 推荐直接 WebFetch `https://arxiv.org/html/{arxiv_id}`,无需下载 - Network accessline 76
3. 判断 arXiv ID:从 URL / Zotero extra 字段 / 标题搜索 4. 推荐直接 WebFetch `https://arxiv.org/html/{arxiv_id}`,无需下载 5. 跳过条件:既无 PDF 也无在线来源 / 非论文内容 - Network accessline 76
3. 判断 arXiv ID:从 URL / Zotero extra 字段 / 标题搜索 4. 推荐直接 WebFetch `https://arxiv.org/html/{arxiv_id}`,无需下载 5. 跳过条件:既无 PDF 也无在线来源 / 非论文内容 - Network accessline 77
4. 推荐直接 WebFetch `https://arxiv.org/html/{arxiv_id}`,无需下载 - Network accessline 77
4. 推荐直接 WebFetch `https://arxiv.org/html/{arxiv_id}`,无需下载 - Network accessline 124
1. WebSearch `"{论文标题} arxiv"` 获取 arXiv ID 2. **来源 A — arXiv HTML**(首选): - WebFetch `https://arxiv.org/html/{arxiv_id}` 提取所有 `<figure>` 的标题与 img src URL - Network accessline 124
1. WebSearch `"{论文标题} arxiv"` 获取 arXiv ID 2. **来源 A — arXiv HTML**(首选): - WebFetch `https://arxiv.org/html/{arxiv_id}` 提取所有 `<figure>` 的标题与 img src URL - Network accessline 125
2. **来源 A — arXiv HTML**(首选): - WebFetch `https://arxiv.org/html/{arxiv_id}` 提取所有 `<figure>` 的标题与 img src URL - 统计论文 Figure 总数,确认提取数量是否完整 - Network accessline 125
2. **来源 A — arXiv HTML**(首选): - WebFetch `https://arxiv.org/html/{arxiv_id}` 提取所有 `<figure>` 的标题与 img src URL - 统计论文 Figure 总数,确认提取数量是否完整 - Network accessline 126
- WebFetch `https://arxiv.org/html/{arxiv_id}` 提取所有 `<figure>` 的标题与 img src URL - Network accessline 126
- WebFetch `https://arxiv.org/html/{arxiv_id}` 提取所有 `<figure>` 的标题与 img src URL - Network accessline 133
5. 笔记中用 `` 外链嵌入 6. 验证:外链可加载 / 本地文件 >10KB 7. **URL 去重(必做)**:写入前检查每个 URL,如果 `https://arxiv.org/html/` 后出现了连续两段相同的 arxiv_id(如 `2607.04988v1/2607.04988v1/`),删除重复段。这是高频 bug,详见 `references/image-troubleshooting.md` - Network accessline 133
5. 笔记中用 `` 外链嵌入 6. 验证:外链可加载 / 本地文件 >10KB 7. **URL 去重(必做)**:写入前检查每个 URL,如果 `https://arxiv.org/html/` 后出现了连续两段相同的 arxiv_id(如 `2607.04988v1/2607.04988v1/`),删除重复段。这是高频 bug,详见 `references/image-troubleshooting.md` - Network accessline 134
6. 验证:外链可加载 / 本地文件 >10KB 7. **URL 去重(必做)**:写入前检查每个 URL,如果 `https://arxiv.org/html/` 后出现了连续两段相同的 arxiv_id(如 `2607.04988v1/2607.04988v1/`),删除重复段。这是高频 bug,详见 `references/image-troubleshooting.md` - 原因:arXiv HTML 中 img src 已含 `{id}v1/` 前缀,拼接 - Network accessline 134
6. 验证:外链可加载 / 本地文件 >10KB 7. **URL 去重(必做)**:写入前检查每个 URL,如果 `https://arxiv.org/html/` 后出现了连续两段相同的 arxiv_id(如 `2607.04988v1/2607.04988v1/`),删除重复段。这是高频 bug,详见 `references/image-troubleshooting.md` - 原因:arXiv HTML 中 img src 已含 `{id}v1/` 前缀,拼接 - Network accessline 135
7. **URL 去重(必做)**:写入前检查每个 URL,如果 `https://arxiv.org/html/` 后出现了连续两段相同的 arxiv_id(如 `2607.04988v1/2607.04988v1/`),删除重复段。这是高频 bug,详见 `references/image-troubleshooting.md` - Network accessline 135
7. **URL 去重(必做)**:写入前检查每个 URL,如果 `https://arxiv.org/html/` 后出现了连续两段相同的 arxiv_id(如 `2607.04988v1/2607.04988v1/`),删除重复段。这是高频 bug,详见 `references/image-troubleshooting.md` - Network accessline 136
- 原因:arXiv HTML 中 img src 已含 `{id}v1/` 前缀,拼接时不要再加一次 - 正确:`https://arxiv.org/html/` + src(如 `https://arxiv.org/html/2607.04988v1/x1.png`) - 错误:`https://arxiv.org/html/2607.04988v1/` + src(导致路径重复,返回 404) - Network accessline 136
- 原因:arXiv HTML 中 img src 已含 `{id}v1/` 前缀,拼接时不要再加一次 - 正确:`https://arxiv.org/html/` + src(如 `https://arxiv.org/html/2607.04988v1/x1.png`) - 错误:`https://arxiv.org/html/2607.04988v1/` + src(导致路径重复,返回 404) - Network accessline 137
- 正确:`https://arxiv.org/html/` + src(如 `https://arxiv.org/html/2607.04988v1/x1.png`) - Network accessline 137
- 正确:`https://arxiv.org/html/` + src(如 `https://arxiv.org/html/2607.04988v1/x1.png`) - Network accessline 138
- 错误:`https://arxiv.org/html/2607.04988v1/` + src(导致路径重复,返回 404) - Network accessline 138
- 错误:`https://arxiv.org/html/2607.04988v1/` + src(导致路径重复,返回 404)
skills/paper-reader/assets/reorganize_notes.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/paper-reader/assets/zotero_helper.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/paper-reader/paper_daemon.py
- Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 47
[Credential-related source omitted] - Network accessline 424
if arxiv_id: source_lines.append(f"arXiv ID: {arxiv_id}") source_lines.append(f"arXiv 页面: https://arxiv.org/abs/{arxiv_id}") - Network accessline 425
source_lines.append(f"arXiv ID: {arxiv_id}") source_lines.append(f"arXiv 页面: https://arxiv.org/abs/{arxiv_id}") source_lines.append(f"arXiv PDF: https://arxiv.org/pdf/{arxiv_id}.pdf") - Network accessline 426
source_lines.append(f"arXiv 页面: https://arxiv.org/abs/{arxiv_id}") - Network accessline 427
source_lines.append(f"arXiv PDF: https://arxiv.org/pdf/{arxiv_id}.pdf") - Network accessline 428
source_lines.append(f"arXiv HTML (图片): https://arxiv.org/html/{arxiv_id}") - Network accessline 429
if paper_source.get('doi'): source_lines.append(f"DOI: {paper_source['doi']}") source_lines.append(f"DOI 链接: https://doi.org/{paper_source['doi']}") - Network accessline 430
source_lines.append(f"DOI: {paper_source['doi']}") source_lines.append(f"DOI 链接: https://doi.org/{paper_source['doi']}") if paper_source.get('url'): - Network accessline 431
source_lines.append(f"DOI 链接: https://doi.org/{paper_source['doi']}") - Network accessline 444
fallback_steps.extend( [ f"1. **arXiv HTML 版本**(推荐): 用 WebFetch 读取 https://arxiv.org/html/{arxiv_id},可直接获取图片 URL", - Network accessline 445
[ f"1. **arXiv HTML 版本**(推荐): 用 WebFetch 读取 https://arxiv.org/html/{arxiv_id},可直接获取图片 URL", f"2. **arXiv 摘要页**: 用 WebFetch 读取 https://arxiv.org/abs/{arxiv_id}", - Network accessline 446
f"1. **arXiv HTML 版本**(推荐): 用 WebFetch 读取 https://arxiv.org/html/{arxiv_id},可直接获取图片 URL", - Network accessline 447
f"2. **arXiv 摘要页**: 用 WebFetch 读取 https://arxiv.org/abs/{arxiv_id}", - Network accessline 448
f"3. **arXiv PDF**: 下载 https://arxiv.org/pdf/{arxiv_id}.pdf 到本地后用 Read 读取", - Network accessline 450
) if paper_source.get('doi'): fallback_steps.append(f"{len(fallback_steps) + 1}. **DOI 页面**: 跳转到 https://doi.org/{paper_source['doi']} 读取") - Network accessline 451
if paper_source.get('doi'): fallback_steps.append(f"{len(fallback_steps) + 1}. **DOI 页面**: 跳转到 https://doi.org/{paper_source['doi']} 读取") if paper_source.get('url'): - Network accessline 452
fallback_steps.append(f"{len(fallback_steps) + 1}. **DOI 页面**: 跳转到 https://doi.org/{paper_source['doi']} 读取") - Instruction override signalline 573
try: result = subprocess.run( ['claude', '-p', prompt, '--model', 'opus', '--permission-mode', 'acceptEdits', '--dangerously-skip-permissions'], - Instruction override signalline 574
result = subprocess.run( ['claude', '-p', prompt, '--model', 'opus', '--permission-mode', 'acceptEdits', '--dangerously-skip-permissions'], capture_output=True, - Instruction override signalline 575
['claude', '-p', prompt, '--model', 'opus', '--permission-mode', 'acceptEdits', '--dangerously-skip-permissions'],
skills/paper-reader/references/image-troubleshooting.md
- Network accessline 21
### 来源 A: arXiv HTML(首选) - WebFetch `https://arxiv.org/html/{arxiv_id}` → 提取 `<figure>` 的 img src - Network accessline 22
- WebFetch `https://arxiv.org/html/{arxiv_id}` → 提取 `<figure>` 的 img src - Network accessline 34
curl -L -o "{TEMP_DIR}/paper.pdf" "https://arxiv.org/pdf/{arxiv_id}.pdf" - Network accessline 67
| src 值 | 正确拼接 | 错误拼接 | |--------|----------|----------| | `2607.04988v1/x1.png` | `https://arxiv.org/html/` + src | `https://arxiv.org/html/2607.04988v1/` + src | - Network accessline 68
|--------|----------|----------| | `2607.04988v1/x1.png` | `https://arxiv.org/html/` + src | `https://arxiv.org/html/2607.04988v1/` + src | | `figures/fig1.png` | `https://arxiv.org/html/2607.04988v1/` + src | — | - Network accessline 69
| `2607.04988v1/x1.png` | `https://arxiv.org/html/` + src | `https://arxiv.org/html/2607.04988v1/` + src | - Network accessline 70
| `figures/fig1.png` | `https://arxiv.org/html/2607.04988v1/` + src | — | - Network accessline 72
**铁律**: 1. 如果 src 以 `2` 开头(含 arxiv_id 前缀),base = `https://arxiv.org/html/` - Network accessline 73
1. 如果 src 以 `2` 开头(含 arxiv_id 前缀),base = `https://arxiv.org/html/` - Network accessline 74
2. 如果 src 不含 arxiv_id 前缀(如 `figures/`),base = `https://arxiv.org/html/{arxiv_id}v1/` - Network accessline 78
✗ https://arxiv.org/html/2607.04988v1/2607.04988v1/x1.png ← 路径重复,404 - Network accessline 79
✓ https://arxiv.org/html/2607.04988v1/x1.png ← 正确 - Network accessline 86

How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 4 facts
- Contacts www.w3.org, which SKILL.md, the README and the plugin manifest do not mentionskills/daily-papers/fetch_and_score.py:51High confidence
- Contacts huggingface.co, which SKILL.md, the README and the plugin manifest do not mentionskills/daily-papers/fetch_and_score.py:181High confidence
- Contacts www.w3.org, which SKILL.md, the README and the plugin manifest do not mentiondaily-papers/parse_arxiv.py:16High confidence
- Contacts doi.org, which SKILL.md, the README and the plugin manifest do not mentionpaper-reader/paper_daemon.py:431High confidence
Signal confidence: 277 facts
- Executable script in code of a file that runsskills/_shared/agent_ranker.py:1High confidence
- Executable script in code of a file that runsskills/_shared/generate_concept_mocs.py:1High confidence
- Executable script in code of a file that runsskills/_shared/generate_concept_mocs.py:1High confidence
- Executable script in code of a file that runsskills/_shared/generate_concept_mocs.py:1High confidence
- Executable script in code of a file that runsskills/_shared/generate_paper_mocs.py:1High confidence
- Executable script in code of a file that runsskills/_shared/generate_paper_mocs.py:1High confidence
- Executable script in code of a file that runsskills/_shared/generate_paper_mocs.py:1High confidence
- Executable script in code of a file that runsskills/_shared/generate_paper_mocs.py:1High confidence
- Executable script in code of a file that runsskills/_shared/generate_paper_mocs.py:1High confidence
- Executable script in code of a file that runsskills/_shared/user_config.py:1High confidence
- Executable script in code of a file that runsskills/_shared/user_config.py:1High confidence
- Executable script in code of a file that runsskills/_shared/user_config.py:1High confidence
- Executable script in code of a file that runsskills/_shared/user_config.py:1High confidence
- Executable script in code of a file that runsskills/_shared/user_config.py:1High confidence
- Executable script in code of a file that runsskills/_shared/user_config.py:1High confidence
- Executable script in code of a file that runsskills/_shared/user_config.py:1High confidence
- Executable script in code of a file that runsskills/_shared/user_config.py:1High confidence
- Executable script in code of a file that runsskills/_shared/user_config.py:1High confidence
- Executable script in code of a file that runsskills/_shared/user_config.py:1High confidence
- Executable script in code of a file that runsskills/_shared/user_config.py:1High confidence
- Executable script in code of a file that runsskills/_shared/user_config.py:1High confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:19Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:19Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:19Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:19Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:19Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:19Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:20Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:20Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:20Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:20Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:20Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:20Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:162Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:162Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:162Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:162Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:162Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:162Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:172Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:172Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:172Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:172Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:172Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:172Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:191Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:191Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:191Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:191Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valueskills/_shared/user_config.py:191Low confidence
and 227 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md skills/daily-papers/SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/daily-papers/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/daily-papers/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/daily-papers/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/daily-papers/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/daily-papers/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/huangkiki-dailypaper-skills/)