#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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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. 若检查未通过,对照原论文修复并复核;保留已有有效内容。行数只是骨架筛查,不能为凑行数、公式或图片数量编造内容;原论文本身没有某类内容时明确注明。

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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

Compare on GitHub

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.

Compare on GitHub

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 分类批量处理(默认递归子分类)。流程:递归获取论文 → 去重 → 检查已有笔记的覆盖与锐评,补齐缺项并保留用户批注 → 依次处理剩余论文 → 汇总。

Compare on GitHub

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.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 39cb775faed95d30b5df2972f75bd30bd4712a9c

1.3kGitHub stars
14stars in 7 days
7skills in this repository
13commits in 30 days

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

Aug 2, 2026Nov 6, 20261,341

Individual skills in this repository

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 tokens

Always available to the agent

SKILL.md

657 tokens

When the skill is activated

Reference documents

11,412 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Language / 语言
  2. 执行环境
  3. 执行原则
  4. 重要约束
  5. 自动化

Scripts executed separately

  • download_note_images.py
  • enrich_papers.py
  • extract_affiliations.py
  • fetch_and_score.py
  • parse_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 bytes
  • SKILL.en.mddoc1,459 bytes
  • SKILL.mdcore2,540 bytes
  • download_note_images.pyruns10,518 bytes
  • enrich_papers.pyruns24,142 bytes
  • extract_affiliations.pyruns13,413 bytes
  • fetch_and_score.pyruns21,011 bytes
  • parse_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 GitHub

Skills 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

  1. #699 on Nov 2
  2. #700 on Nov 3
  3. #701 on Nov 4
  4. #705 on Nov 5
  5. #703 on Nov 6
  6. #706 since Nov 7
76 earlier periods
  1. #508 on Aug 2
  2. #501 on Aug 8
  3. #503 on Aug 9
  4. #523 on Aug 10
  5. #521 on Aug 11
  6. #517 on Aug 12
  7. #520 on Aug 13
  8. #521 on Aug 14
  9. #513 on Aug 16
  10. #518 on Aug 17
  11. #534 on Aug 18
  12. #526 on Aug 19
  13. #523 on Aug 20
  14. #515 on Aug 22
  15. #534 on Aug 23
  16. #536 on Aug 24
  17. #546 on Aug 25
  18. #533 on Aug 26
  19. #545 on Aug 27
  20. #544 on Aug 28
  21. #516 on Aug 30
  22. #545 on Aug 31
  23. #550 on Sep 1
  24. #541 on Sep 2
  25. #545 on Sep 3
  26. #527 on Sep 4
  27. #523 on Sep 5
  28. #540 on Sep 6
  29. #545 on Sep 7
  30. #560 on Sep 8
  31. #546 on Sep 9
  32. #551 on Sep 10
  33. #543 on Sep 11
  34. #538 on Sep 12
  35. #540 on Sep 13
  36. #561 on Sep 14
  37. #547 on Sep 15
  38. #557 on Sep 17
  39. #561 on Sep 18
  40. #548 on Sep 19
  41. #558 on Sep 20
  42. #566 on Sep 21
  43. #573 on Sep 22
  44. #574 on Sep 23
  45. #548 on Sep 25
  46. #549 on Sep 26
  47. #572 on Sep 27
  48. #574 on Sep 28
  49. #595 on Sep 29
  50. #567 on Oct 1
  51. #576 on Oct 2
  52. #566 on Oct 4
  53. #587 on Oct 6
  54. #589 on Oct 7
  55. #615 on Oct 8
  56. #600 on Oct 9
  57. #584 on Oct 10
  58. #587 on Oct 11
  59. #598 on Oct 12
  60. #601 on Oct 13
  61. #614 on Oct 14
  62. #608 on Oct 15
  63. #616 on Oct 16
  64. #602 on Oct 17
  65. #595 on Oct 18
  66. #618 on Oct 19
  67. #628 on Oct 20
  68. #637 on Oct 21
  69. #619 on Oct 22
  70. #615 on Oct 23
  71. #604 on Oct 24
  72. #679 on Oct 25
  73. #688 on Oct 28
  74. #691 on Oct 29
  75. #693 on Oct 30
  76. #695 from Oct 31 to Nov 1

Before you install

Network or broad shell

Automated 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:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/daily-papers-fetch/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/daily-papers-fetch/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/daily-papers-fetch/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/daily-papers-fetch/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/daily-papers/fetch_and_score.py:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/_shared/generate_paper_mocs.py:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/_shared/user_config.py:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/daily-papers-notes/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/daily-papers-notes/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/_shared/user_config.py:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/daily-papers-review/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/daily-papers-review/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/_shared/user_config.py:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/generate-mocs/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/generate-mocs/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/_shared/user_config.py:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/github-trending/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/github-trending/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/github-trending/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 277 signals by file

skills/_shared/agent_ranker.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/_shared/generate_concept_mocs.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3
  • Executable scriptline 1
    #!/usr/bin/env python3

skills/_shared/generate_paper_mocs.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
    #!/usr/bin/env python3
  • Executable scriptline 1
    Executable file; content unavailable

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 ![...](https://...):
  • Network accessline 7
    For each external image link ![...](https://...):
  • 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

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 4
    Usage:     curl -sL "https://arxiv.org/pdf/{arxiv_id}" | pdftotext -l 2 - - | python3 extract_affiliations.py
  • Network accessline 5
    curl -sL "https://arxiv.org/pdf/{arxiv_id}" | pdftotext -l 2 - - | python3 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

  • Network accessline 52
    1. Determine the correct arXiv ID and source figure count. 2. Prefer `https://arxiv.org/html/ID`: extract figure captions and actual image URLs.
  • Network accessline 53
    2. Prefer `https://arxiv.org/html/ID`: extract figure captions and actual image URLs.

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. 笔记中用 `![Figure X](url)` 外链嵌入 6. 验证:外链可加载 / 本地文件 >10KB 7. **URL 去重(必做)**:写入前检查每个 URL,如果 `https://arxiv.org/html/` 后出现了连续两段相同的 arxiv_id(如 `2607.04988v1/2607.04988v1/`),删除重复段。这是高频 bug,详见 `references/image-troubleshooting.md`
  • Network accessline 133
    5. 笔记中用 `![Figure X](url)` 外链嵌入 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
    ![Figure 1](https://arxiv.org/html/xxxx/x1.png)

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
Signal confidence: 277 facts

and 227 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md skills/daily-papers/SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md skills/daily-papers/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/daily-papers/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/daily-papers/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/daily-papers/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard 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.

huangkiki/dailypaper-skills: #706 on hotskills, 1.3k stars

[![huangkiki/dailypaper-skills on hotskills](https://hotskills.dev/badge/huangkiki-dailypaper-skills.svg)](https://hotskills.dev/skill/huangkiki-dailypaper-skills/)