#587 by GitHub stars
juliye2025/evil-read-arxiv
Claude Code+Obsidian,邪修读论文就是快
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
conf-papers/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
ef3a59484108 → ef3a59484108
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → ef3a59484108
No earlier version was observed for comparison.
extract-paper-images/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
ef3a59484108 → ef3a59484108
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → ef3a59484108
No earlier version was observed for comparison.
paper-analyze/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
ef3a59484108 → ef3a59484108
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → ef3a59484108
No earlier version was observed for comparison.
paper-search/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
ef3a59484108 → ef3a59484108
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → ef3a59484108
No earlier version was observed for comparison.
start-my-day/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
ef3a59484108 → ef3a59484108
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → ef3a59484108
No earlier version was observed for comparison.
Verified commit ef3a594841081703259545c828c98b52af835817
git clone --filter=blob:none --no-checkout https://github.com/juliye2025/evil-read-arxiv.git .hotskills/juliye2025-evil-read-arxiv && git -C .hotskills/juliye2025-evil-read-arxiv checkout --detach ef3a594841081703259545c828c98b52af835817
# Copy each selected skill directory from .hotskills/juliye2025-evil-read-arxiv into .agents/skills/<skill-name>/Heat
4.8- Star growth, last 7 daysAhead of 83% of tracked repositories
- Star growth, last 24 hoursAhead of 71% of tracked repositories
- Rank movement, last 7 daysAhead of 22% of tracked repositories
- Commits, last 30 daysAhead of 0% 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
- conf-papers
conf-papers - extract-paper-images
extract-paper-images - paper-analyze
paper-analyze - paper-search
paper-search - start-my-day
start-my-day
How it works
conf-papers
When your agent uses it
通过 DBLP 与 Semantic Scholar 搜索 CVPR、ICCV、ECCV、ICLR、AAAI、NeurIPS、ICML 等顶会论文,评分后生成 Obsidian 年度推荐笔记。Use when the user asks for a conference/year paper list, top-conference recommendations, or papers filtered by venue.
What it loads into context
Frontmatter
78 tokensAlways available to the agent
SKILL.md
4,387 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 工作流程概述
- 配置说明
- 步骤1:解析参数
- 步骤2:扫描已有笔记构建索引
- 步骤3:搜索顶会论文
- 步骤4:读取筛选结果
- 步骤5:生成推荐笔记
- 步骤6:关键词链接
- conf-papers (本skill)
- start-my-day (每日推荐)
- 自动执行流程
- 临时文件清理
- 依赖项
Scripts executed separately
scripts/search_conf_papers.py
Files
SKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesSKILL.mdcore15,206 bytesagents/openai.yamlasset212 bytesconf-papers.yamlasset764 bytesscripts/search_conf_papers.pyruns29,017 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubextract-paper-images
When your agent uses it
从 arXiv ID/link、公开直接 PDF URL 或本地论文 PDF 提取架构图、方法图和实验图,保存到 Obsidian images 目录并生成索引。Use when the user asks to extract figures or another research skill needs embeddable images.
What it loads into context
Frontmatter
67 tokensAlways available to the agent
SKILL.md
535 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 输入识别
- 执行
- 验证
- 失败处理
Scripts executed separately
scripts/extract_images.py
Files
SKILL.mdcore1,967 bytesagents/openai.yamlasset257 bytesscripts/extract_images.pyruns19,866 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubpaper-analyze
When your agent uses it
深度分析 arXiv 论文、公开 PDF URL、本地 PDF、研究项目页、技术博客或普通网页,自动识别来源类型并生成带证据与图片的 Obsidian 笔记。Use when the user provides an arXiv ID/link、public PDF URL、company research page、blog URL、local PDF or existing note and asks for analysis, summary, evaluation, or knowledge-base capture.
What it loads into context
Frontmatter
97 tokensAlways available to the agent
SKILL.md
1,188 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 解析路径
- 识别来源
- 获取与查重
- 图片
- 生成笔记
- 格式与证据规则
Scripts executed separately
scripts/generate_note.pyscripts/resolve_source.pyscripts/update_graph.py
Files
SKILL.mdcore4,637 bytesagents/openai.yamlasset264 bytesscripts/generate_note.pyruns12,327 bytesscripts/resolve_source.pyruns21,855 bytesscripts/update_graph.pyruns4,851 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubpaper-search
When your agent uses it
在本地 Obsidian Vault 的论文笔记中按标题、作者、关键词、标签、领域或 arXiv ID 搜索并排序结果。Use when the user asks to find, filter, or revisit papers already captured in local notes; do not use for downloading new papers.
What it loads into context
Frontmatter
67 tokensAlways available to the agent
SKILL.md
1,019 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 步骤1:解析搜索查询
- 步骤2:执行搜索
- 步骤3:处理搜索结果
- 步骤4:展示结果
- 重要规则
- 使用说明
Scripts executed separately
scripts/paper_hunter.py
Files
SKILL.mdcore3,589 bytesSKILL.mdcore3,589 bytesagents/openai.yamlasset202 bytesscripts/paper_hunter.pyruns7,662 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubstart-my-day
When your agent uses it
生成每日 arXiv 与 Semantic Scholar 论文推荐并写入 Obsidian Vault。Use when the user asks to start the day, create today's paper brief, or generate recommendations for a specified date.
What it loads into context
Frontmatter
51 tokensAlways available to the agent
SKILL.md
7,809 tokensWhen the skill is activated
Reference documents
0 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Language Detection
- 工作流程概述
- 步骤1:收集上下文(静默)
- 步骤2:搜索论文
- 步骤3:读取筛选结果
- 步骤4:生成今日推荐笔记
- 步骤5:自动链接关键词(可选)
- start-my-day (本skill)
- paper-analyze (深度分析skill)
- 自动执行流程
- 临时文件清理
- 依赖项
- 脚本说明
Scripts executed separately
scripts/common_words.pyscripts/link_keywords.pyscripts/scan_existing_notes.pyscripts/search_arxiv.py
Files
SKILL.mdcore27,884 bytesSKILL.mdcore27,884 bytesSKILL.mdcore27,884 bytesSKILL.mdcore27,884 bytesSKILL.mdcore27,884 bytesSKILL.mdcore27,884 bytesSKILL.mdcore27,884 bytesSKILL.mdcore27,884 bytesSKILL.mdcore27,884 bytesSKILL.mdcore27,884 bytesSKILL.mdcore27,884 bytesSKILL.mdcore27,884 bytesSKILL.mdcore27,884 bytesSKILL.mdcore27,884 bytesSKILL.mdcore27,884 bytesSKILL.mdcore27,884 bytesSKILL.mdcore27,884 bytesagents/openai.yamlasset218 bytesscripts/common_words.pyruns1,600 bytesscripts/link_keywords.pyruns10,068 bytesscripts/scan_existing_notes.pyruns8,885 bytesscripts/search_arxiv.pyruns43,951 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubSkills included
- conf-papers
- extract-paper-images
- paper-analyze
- paper-search
- start-my-day
Repository facts
- License
- No license detected
- Created
- Mar 3, 2026
- Last pushed
- Sep 15, 2026
- Forks
- 173
- Open issues
- 12
- Project activity
- Active
Rank over the last 12 weeks
Now #587 · best #439 · down 74 in 30 days
- #575 on Nov 2
- #578 on Nov 3
- #581 on Nov 4
- #583 on Nov 5
- #584 on Nov 6
- #587 since Nov 7
75 earlier periods
- #416 on Aug 2
- #427 on Aug 8
- #425 on Aug 9
- #442 on Aug 10
- #440 on Aug 11
- #438 on Aug 12
- #447 on Aug 13
- #438 on Aug 15
- #441 on Aug 16
- #449 on Aug 17
- #454 on Aug 18
- #452 on Aug 19
- #449 on Aug 20
- #454 on Aug 21
- #439 on Aug 22
- #460 on Aug 25
- #453 on Aug 26
- #461 on Aug 27
- #458 on Aug 28
- #449 on Aug 29
- #444 on Aug 30
- #463 on Aug 31
- #468 on Sep 1
- #462 on Sep 2
- #470 on Sep 3
- #455 from Sep 4 to Sep 5
- #463 on Sep 6
- #466 on Sep 7
- #484 on Sep 8
- #476 on Sep 9
- #479 on Sep 10
- #473 on Sep 11
- #471 from Sep 12 to Sep 13
- #487 on Sep 14
- #480 on Sep 15
- #490 on Sep 16
- #481 on Sep 17
- #473 on Sep 19
- #483 on Sep 20
- #484 on Sep 21
- #493 on Sep 22
- #487 on Sep 23
- #479 on Sep 24
- #475 on Sep 26
- #490 on Sep 27
- #495 on Sep 28
- #504 on Sep 29
- #499 on Sep 30
- #491 on Oct 1
- #490 on Oct 2
- #477 on Oct 3
- #483 on Oct 5
- #499 on Oct 6
- #498 on Oct 7
- #513 on Oct 8
- #512 on Oct 9
- #506 on Oct 10
- #509 on Oct 11
- #520 on Oct 12
- #518 on Oct 13
- #520 on Oct 14
- #517 on Oct 15
- #521 on Oct 16
- #511 on Oct 17
- #518 on Oct 18
- #531 on Oct 19
- #532 on Oct 20
- #538 on Oct 21
- #529 on Oct 22
- #525 on Oct 23
- #512 on Oct 24
- #561 on Oct 25
- #569 from Oct 28 to Oct 29
- #572 from Oct 30 to Oct 31
- #574 on Nov 1
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 3, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 28 notes
conf-papers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedconf-papers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedconf-papers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedconf-papers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedconf-papers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedconf-papers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedconf-papers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedconf-papers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedconf-papers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedconf-papers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedconf-papers/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedpaper-search/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedstart-my-day/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedstart-my-day/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedstart-my-day/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedstart-my-day/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedstart-my-day/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedstart-my-day/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedstart-my-day/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedstart-my-day/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 69 network referencesin 6 files: start-my-day/scripts/search_arxiv.py:42 conf-papers/scripts/search_conf_papers.py:101 extract-paper-images/scripts/extract_images.py:53 and 3 more
- No hidden or obfuscated text
- No instruction overrides
- 10 executable scriptsin 10 files: conf-papers/scripts/search_conf_papers.py:1 extract-paper-images/scripts/extract_images.py:1 paper-analyze/scripts/generate_note.py:1 and 7 more
- 12 references to secretsin 5 files: start-my-day/scripts/search_arxiv.py:105 conf-papers/scripts/search_conf_papers.py:105 paper-analyze/scripts/generate_note.py:31 and 2 more
- No requests to vote in Hot
Show all 91 signals by file
conf-papers/scripts/search_conf_papers.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 101
S2_API_URL = "https://api.semanticscholar.org/graph/v1/paper/search" - Network accessline 102
S2_PAPER_URL = "https://api.semanticscholar.org/graph/v1/paper" - Network accessline 103
[Credential-related source omitted] - Network accessline 104
S2_BATCH_URL = "https://api.semanticscholar.org/graph/v1/paper/batch" - Access to secretsline 105
[Credential-related source omitted] - Network accessline 108
DBLP_API_URL = "https://dblp.org/search/publ/api" - Network accessline 164
try: if HAS_REQUESTS: resp = requests.get(url, headers={"User-Agent": "ConfPapers/1.0"}, timeout=60) - Network accessline 165
if HAS_REQUESTS: resp = requests.get(url, headers={"User-Agent": "ConfPapers/1.0"}, timeout=60) resp.raise_for_status() - Network accessline 166
resp = requests.get(url, headers={"User-Agent": "ConfPapers/1.0"}, timeout=60) - Network accessline 168
data = resp.json() else: req = urllib.request.Request(url, headers={"User-Agent": "ConfPapers/1.0"}) - Network accessline 169
else: req = urllib.request.Request(url, headers={"User-Agent": "ConfPapers/1.0"}) with urllib.request.urlopen(req, timeout=60) as response: - Network accessline 170
req = urllib.request.Request(url, headers={"User-Agent": "ConfPapers/1.0"}) - Network accessline 171
with urllib.request.urlopen(req, timeout=60) as response: - Access to secretsline 406
[Credential-related source omitted] - Access to secretsline 407
[Credential-related source omitted] - Network accessline 431
for attempt in range(max_retries): try: response = requests.get(S2_API_URL, params=params, headers=headers, timeout=15) - Network accessline 432
try: response = requests.get(S2_API_URL, params=params, headers=headers, timeout=15) if response.status_code == 429: - Network accessline 433
response = requests.get(S2_API_URL, params=params, headers=headers, timeout=15)
extract-paper-images/scripts/extract_images.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 53
source_url = f"https://arxiv.org/e-print/{arxiv_id}" - Network accessline 56
try: if HAS_REQUESTS: response = requests.get(source_url, timeout=60) - Network accessline 57
if HAS_REQUESTS: response = requests.get(source_url, timeout=60) content = response.content if response.status_code == 200 else None - Network accessline 58
response = requests.get(source_url, timeout=60) - Network accessline 61
else: try: req = urllib.request.urlopen(source_url, timeout=60) - Network accessline 62
try: req = urllib.request.urlopen(source_url, timeout=60) content = req.read() - Network accessline 63
req = urllib.request.urlopen(source_url, timeout=60) - Network accessline 136
try: if HAS_REQUESTS: with requests.get( - Network accessline 137
if HAS_REQUESTS: with requests.get( pdf_url, - Network accessline 138
with requests.get( - Network accessline 161
raise ValueError(f'URL返回的不是PDF (Content-Type: {content_type or "--"})') else: req = urllib.request.urlopen(pdf_url, timeout=90) - Network accessline 162
else: req = urllib.request.urlopen(pdf_url, timeout=90) content = req.read(max_bytes + 1) - Network accessline 163
req = urllib.request.urlopen(pdf_url, timeout=90) - Network accessline 182
return download_public_pdf(f"https://arxiv.org/pdf/{arxiv_id}", temp_dir)
paper-analyze/scripts/generate_note.py
- Executable scriptline 1
#!/usr/bin/env python3 - Access to secretsline 31
[Credential-related source omitted] - Network accessline 93
def source_links(source_type, source_url, paper_id, language): if source_type == "arxiv" and paper_id: abs_url = source_url or f"https://arxiv.org/abs/{paper_id}" - Network accessline 94
if source_type == "arxiv" and paper_id: abs_url = source_url or f"https://arxiv.org/abs/{paper_id}" pdf_url = f"https://arxiv.org/pdf/{paper_id}" - Network accessline 95
abs_url = source_url or f"https://arxiv.org/abs/{paper_id}" - Network accessline 96
pdf_url = f"https://arxiv.org/pdf/{paper_id}"
paper-analyze/scripts/resolve_source.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 296
headers = {"User-Agent": USER_AGENT, "Accept": "text/html,application/pdf;q=0.9,*/*;q=0.5"} with requests.get(url, headers=headers, stream=True, timeout=(15, 90), allow_redirects=True) as response: - Network accessline 297
with requests.get(url, headers=headers, stream=True, timeout=(15, 90), allow_redirects=True) as response: - Network accessline 414
if arxiv_id: base_id = re.sub(r"v\d+$", "", arxiv_id, flags=re.IGNORECASE) pdf_url = f"https://arxiv.org/pdf/{arxiv_id}" - Network accessline 415
base_id = re.sub(r"v\d+$", "", arxiv_id, flags=re.IGNORECASE) pdf_url = f"https://arxiv.org/pdf/{arxiv_id}" result = { - Network accessline 416
pdf_url = f"https://arxiv.org/pdf/{arxiv_id}" - Network accessline 418
"source_type": "arxiv", "original_input": original_input, "source_url": f"https://arxiv.org/abs/{arxiv_id}", - Network accessline 419
"original_input": original_input, "source_url": f"https://arxiv.org/abs/{arxiv_id}", "canonical_url": f"https://arxiv.org/abs/{arxiv_id}", - Network accessline 420
"source_url": f"https://arxiv.org/abs/{arxiv_id}", - Network accessline 421
"canonical_url": f"https://arxiv.org/abs/{arxiv_id}",
paper-analyze/scripts/update_graph.py
paper-search/scripts/paper_hunter.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 91
logger.info(f"Downloading PDF from {paper_data['source']}: {paper_data['title'][:50]}...") try: r = requests.get(paper_data['pdf_url'], timeout=30) - Network accessline 92
try: r = requests.get(paper_data['pdf_url'], timeout=30) if r.status_code == 200 and b'%PDF' in r.content[:100]: - Network accessline 93
r = requests.get(paper_data['pdf_url'], timeout=30) - Network accessline 178
"date": str(article.publication_date) if hasattr(article, 'publication_date') else "Unknown", "abstract": article.abstract if hasattr(article, 'abstract') else "No abstract", "url": f"https://pubmed.ncbi.nlm.nih.gov/ - Network accessline 179
"abstract": article.abstract if hasattr(article, 'abstract') else "No abstract", "url": f"https://pubmed.ncbi.nlm.nih.gov/{pmid}/" if pmid else "", "pdf_url": "", - Network accessline 180
"url": f"https://pubmed.ncbi.nlm.nih.gov/{pmid}/" if pmid else "",
start-my-day/scripts/common_words.py
- Executable scriptline 1
Executable file
start-my-day/scripts/link_keywords.py
- Executable scriptline 1
#!/usr/bin/env python3
start-my-day/scripts/scan_existing_notes.py
start-my-day/scripts/search_arxiv.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 42
ARXIV_NS = { 'atom': 'http://www.w3.org/2005/Atom', - Network accessline 43
'atom': 'http://www.w3.org/2005/Atom', - Network accessline 44
'arxiv': 'http://arxiv.org/schemas/atom' - Network accessline 47
SEMANTIC_SCHOLAR_API_URL = "https://api.semanticscholar.org/graph/v1/paper/search" - Access to secretsline 105
[Credential-related source omitted] - Access to secretsline 124
[Credential-related source omitted] - Access to secretsline 125
[Credential-related source omitted] - Network accessline 198
url = ( f"https://export.arxiv.org/api/query?" - Network accessline 199
f"https://export.arxiv.org/api/query?" - Network accessline 209
for attempt in range(max_retries): try: with urllib.request.urlopen(url, timeout=60) as response: - Network accessline 210
try: with urllib.request.urlopen(url, timeout=60) as response: xml_content = response.read().decode('utf-8') - Network accessline 211
with urllib.request.urlopen(url, timeout=60) as response: - Network accessline 271
url = ( f"https://export.arxiv.org/api/query?" f"search_query={urllib.parse.quote(full_query, safe='+:')}&" - Network accessline 272
f"https://export.arxiv.org/api/query?" f"search_query={urllib.parse.quote(full_query, safe='+:')}&" f"max_results={max_results}&" - Network accessline 282
for attempt in range(max_retries): try: with urllib.request.urlopen(url, timeout=60) as response: - Network accessline 283
try: with urllib.request.urlopen(url, timeout=60) as response: xml_content = response.read().decode('utf-8') - Network accessline 284
with urllib.request.urlopen(url, timeout=60) as response: - Access to secretsline 335
[Credential-related source omitted] - Access to secretsline 336
[Credential-related source omitted] - Network accessline 342
try: if HAS_REQUESTS: response = requests.get( - Network accessline 343
if HAS_REQUESTS: response = requests.get( SEMANTIC_SCHOLAR_API_URL, - Network accessline 344
response = requests.get( - Network accessline 354
query_string = urllib.parse.urlencode(params) url = f"{SEMANTIC_SCHOLAR_API_URL}?{query_string}" req = urllib.request.Request(url, headers=headers) - Network accessline 355
url = f"{SEMANTIC_SCHOLAR_API_URL}?{query_string}" req = urllib.request.Request(url, headers=headers) with urllib.request.urlopen(req, timeout=15) as response: - Network accessline 356
req = urllib.request.Request(url, headers=headers) - Network accessline 357
with urllib.request.urlopen(req, timeout=15) as response: - Access to secretsline 950
[Credential-related source omitted]
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.
No combined signals at this commit.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md conf-papers/SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest web/AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md conf-papers/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md conf-papers/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md conf-papers/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md conf-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/juliye2025-evil-read-arxiv/)