# Daily Paper Reading

> Use when Wyatt asks for daily AI paper reading, arXiv/Hugging Face Daily Papers triage, Zotero Daily Paper collection sync, Obsidian paper briefs, semantic DailyPapers filenames, adopted-paper dedupe, llm-for-zotero note actions, research profile filtering, Chinese-first paper digests, or no-interruption literature reading workflow.

- Skill: `wyattjy/daily-paper-reading` (Agent Skill)
- Install (CLI): `npx skillmds@latest add wyattjy/daily-paper-reading`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wyattjy/daily-paper-reading/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: WyattJY (https://skillmd.com/u/wyattjy)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/wyattjy/daily-paper-reading

---


# Daily Paper Reading

## Overview

Use this skill to run Wyatt's local daily paper reading cockpit. The goal is Chinese-first, core-only triage: collect daily feeds, select papers against Wyatt's research profile, sync selected items to Zotero when possible, and generate an Obsidian Markdown brief with on-demand Zotero note links.

## Local Paths

| Purpose | Path |
| --- | --- |
| Workflow root | `/Volumes/T7/paper-reading-workflow` |
| Upstream repo | `/Volumes/T7/paper-reading-workflow/upstream` |
| Wyatt profile | `/Volumes/T7/paper-reading-workflow/config/research_profile.yaml` |
| Paper Easy starter | `/Volumes/T7/paper-reading-workflow/bin/start_paper_easy.sh` |
| Default MiMo runner | `/Volumes/T7/paper-reading-workflow/bin/run_daily_paper_mimo.sh` |
| Wrapper script | `/Volumes/T7/paper-reading-workflow/bin/run_daily_paper_pipeline.sh` |
| Work files | `/Volumes/T7/paper-reading-workflow/work` |
| Obsidian output | `/Volumes/T7/obsidian/jiangyu/多模态论文/DailyPapers` |

## When Starting a Daily Run

1. Use Asia/Shanghai dates.
2. By default, run `/Volumes/T7/paper-reading-workflow/bin/run_daily_paper_mimo.sh --date YYYY-MM-DD`. MiMo owns feed triage, profile-based selection, and the internal Chinese draft.
3. The runner starts Paper Easy through `/Volumes/T7/paper-reading-workflow/bin/start_paper_easy.sh` if `http://127.0.0.1:5174/api/health` is not healthy.
4. Prefer Paper Easy HTTP APIs as the feed source: `/api/papers`, `/api/huggingface-papers`, and `/api/author-papers`. MCP remains available at `/mcp` but should not receive secret values in prompts.
5. Keep raw Paper Easy paper objects intact when available. Do not rewrite `title`, `summary`, or `translations` unnecessarily.
6. Do not synthesize `https://huggingface.co/papers/<arxiv_id>` for ordinary arXiv papers. Include a Hugging Face Daily Paper link only when the paper came from `/api/huggingface-papers` or the URL was explicitly present and verified as a real HF Daily Paper page.
7. Record `codeUrl`, `githubUrl`, or `projectUrl` only when the paper metadata/arXiv/HF page explicitly exposes a real code or project link. Do not infer a repository from the paper title.
8. Before selection, build a dedupe set from prior `DailyPapers` notes and the adopted-paper ledger below. Do not re-adopt a paper that already appeared in a previous note's selected/interesting section.
9. Select only papers matching `config/research_profile.yaml`. Do not fill quotas with weak matches.
10. The official Markdown must be generated by `automation/outputs/04_daily_paper_brief.py` or the local wrapper. MiMo may write `work/mimo/YYYY-MM-DD/daily_paper_brief_YYYY-MM-DD_mimo_draft.md`, but it must not write into the user-facing `DailyPapers` directory and must not directly write the official `daily_paper_brief_YYYY-MM-DD.md`.
11. Keep `daily_paper_brief_YYYY-MM-DD.md` as the canonical wrapper artifact. It must contain Zotero `zotero://select` links and `daily-paper-note://` links whenever selected papers were synced.
12. After the canonical brief validates, create or refresh a sibling semantic Obsidian entry file for reading. Use `YYYY-MM-DD_<主题1>-<主题2>-<主题3>.md`, copy the canonical brief, and change only the H1 to `# YYYY-MM-DD｜主题1、主题2与主题3`. Keep the canonical file; do not rename it away. Prefer 2-4 compact Chinese themes from the selected papers, e.g. `2026-06-20_排序驱动检索-缓存证据排序-持久状态核.md`.
13. Final user-facing output should point to the semantic Obsidian entry file first, while mentioning the canonical `daily_paper_brief_YYYY-MM-DD.md` as the reproducible wrapper artifact.

## Selection Standard

Rank papers by:

- fit to Wyatt's current research and internship direction
- novelty over prior known papers
- actionable implementation or experiment value
- relevance to multimodal retrieval, reranker, agent memory, coding agents, VLM/MLLM, world models, embodied AI, or spatial memory

Each selected entry should include a Chinese reason in `relevance`. Prefer 3-8 high-signal papers over a long generic list.

## Adopted Paper Deduplication

Before choosing papers for a new daily note, scan existing notes under `/Volumes/T7/obsidian/jiangyu/多模态论文/DailyPapers` and exclude already adopted papers.

Rules:

- Treat a paper as adopted only when it appears under the note's selected/interesting section (`## 感兴趣论文`, `## 必读论文`, or equivalent), before source-only sections such as `## Hugging Face Daily Papers` or appendices.
- Match duplicates by arXiv ID first, then by normalized English title.
- Source-only listings do not count as adoption. A paper may be selected later if it only appeared in a Hugging Face/source appendix and was not selected.
- If an important candidate was already adopted, do not select it again. Mention it only as `已在 YYYY-MM-DD 采用` if context is useful.
- After generating the note, add the day's selected paper IDs/titles to this ledger when the user asks to persist the dedupe state in the skill.

Known adopted papers:

| Date | Semantic note | arXiv ID | English title |
| --- | --- | --- | --- |
| 2026-06-21 | `2026-06-21_高效重排-上下文工程-持久记忆世界模型.md` | `2606.11700` | CompRank: Efficient LLM Reranking via Token-Level Compression and Decoding-Free Scoring |
| 2026-06-21 | `2026-06-21_高效重排-上下文工程-持久记忆世界模型.md` | `2606.08979` | EviProp: Seeded Relevance Diffusion on Chunk-Page Graphs for Long Multimodal Document Retrieval |
| 2026-06-21 | `2026-06-21_高效重排-上下文工程-持久记忆世界模型.md` | `2606.20515` | S-Agent: Spatial Tool-Use Elicits Reasoning for Spatial Intelligence |
| 2026-06-21 | `2026-06-21_高效重排-上下文工程-持久记忆世界模型.md` | `2606.14066` | FastContext: Training Efficient Repository Explorer for Coding Agents |
| 2026-06-21 | `2026-06-21_高效重排-上下文工程-持久记忆世界模型.md` | `2606.10209` | Less Context, Better Agents: Efficient Context Engineering for Long-Horizon Tool-Using LLM Agents |
| 2026-06-21 | `2026-06-21_高效重排-上下文工程-持久记忆世界模型.md` | `2606.06036` | Memory is Reconstructed, Not Retrieved: Graph Memory for LLM Agents |
| 2026-06-21 | `2026-06-21_高效重排-上下文工程-持久记忆世界模型.md` | `2606.20562` | MemoryWAM: Efficient World Action Modeling with Persistent Memory |
| 2026-06-21 | `2026-06-21_高效重排-上下文工程-持久记忆世界模型.md` | `2606.19980` | ENPIRE: Agentic Robot Policy Self-Improvement in the Real World |

## Commands

Smoke-test local scripts:

```bash
cd /Volumes/T7/paper-reading-workflow/upstream
python3 -m py_compile automation/outputs/*.py
bash -n scripts/*.sh
```

Start or restart Paper Easy:

```bash
/Volumes/T7/paper-reading-workflow/bin/start_paper_easy.sh --restart
```

Default daily run through MiMo:

```bash
/Volumes/T7/paper-reading-workflow/bin/run_daily_paper_mimo.sh --date YYYY-MM-DD
```

Dry-run the MiMo entrypoint:

```bash
/Volumes/T7/paper-reading-workflow/bin/run_daily_paper_mimo.sh --date YYYY-MM-DD --dry-run
```

Generate a brief from an existing raw JSON:

```bash
/Volumes/T7/paper-reading-workflow/bin/run_daily_paper_pipeline.sh YYYY-MM-DD /path/to/daily_paper_brief_raw_YYYY-MM-DD.json
```

The wrapper sets:

```bash
OBSIDIAN_VAULT=/Volumes/T7/obsidian/jiangyu
OBSIDIAN_DAILY_PAPERS_DIR=多模态论文/DailyPapers
```

## Output Shape

The Obsidian Markdown should lead with:

- 今日结论: 3-6 bullets in Chinese
- 必读论文: selected papers grouped by topic
- 观察但不读: notable but lower-priority papers
- Hugging Face Daily Papers: full or summarized HF source section
- Zotero / PDF / arXiv links
- A final appendix named `附录：深读入口、代码状态与空主题`, containing on-demand `daily-paper-note://` links, code/project link status, and empty-topic notices. Do not place long LM for Zotero action lists inside each paper entry.

## Semantic Filename Rule

The wrapper writes a stable canonical file named `daily_paper_brief_YYYY-MM-DD.md`. That is not the final Obsidian reading handle. After validation, create a semantic sibling note in the same `DailyPapers` directory:

```text
YYYY-MM-DD_<主题1>-<主题2>-<主题3>.md
```

Rules:

- Derive themes from the actual selected papers, not generic topic labels.
- Keep the semantic filename short, Chinese-first, and scan-friendly.
- Change only the first Markdown heading in the semantic copy; the rest should match the canonical brief so Zotero and `daily-paper-note://` links stay identical.
- Verify the semantic file exists, its H1 is semantic, and `diff` against the canonical file shows only the first heading changed.
- If the selected-paper set changes, regenerate both the canonical file through the wrapper and the semantic sibling file.

## Zotero Boundaries

- Do not modify Zotero SQLite directly.
- Use Zotero local API, Connector, Better BibTeX, and llm-for-zotero runtime scripts only.
- If Zotero is closed or the local API fails, still generate the Obsidian brief without Zotero links, then report the missing Zotero step.

## Common Failures

| Symptom | Action |
| --- | --- |
| Paper Easy unavailable | Let the MiMo runner use public arXiv/Hugging Face sources; report feed source clearly. |
| MiMo writes only a draft | Treat it as incomplete unless `--allow-draft-only` was intentional; rerun or create raw JSON before claiming the official workflow completed. |
| MiMo draft has no Zotero links | Expected: the internal draft is written before Zotero sync. Use the official `daily_paper_brief_YYYY-MM-DD.md`; if that lacks links, treat the run as failed. |
| Hugging Face link opens 404 | Treat it as a source bug: HF paper pages are not automatic for every arXiv ID. Remove the HF link unless the paper is from Hugging Face Daily Papers or the URL returns a real page. |
| Better BibTeX collection/citekey verification warns | Non-fatal if the sync report has Zotero item keys and the official brief contains `zotero://select`; report the warning but keep the links. |
| Zotero sync fails | Continue Markdown generation without Zotero links; preserve sync log path. |
| Brief feels generic | Tighten selection against `research_profile.yaml`; reduce count and strengthen Chinese relevance reasons. |
| Same paper appears again in a later note | Rebuild the selection after scanning `DailyPapers`; remove adopted arXiv IDs/titles from `selected`, then rerun the wrapper. |
| Brief filename is still `daily_paper_brief_YYYY-MM-DD.md` | Keep it as the canonical artifact, then create the semantic sibling note and point the user to that file. |
| Obsidian file missing | Check wrapper env vars and `04_daily_paper_brief.py --output`. |

