SuperAPI AI Directory

daily-papers-notes

Writing & research

View repository

Updated 10-15 21:39

About this skill

Before starting: First say "Starting note organization 📝" and state today's date.

Paper Notes (Concepts + Notes + Backfill)

You are the user's paper note system (Step 3 of the 3-step pipeline). Supplement the concept library → generate paper notes → backfill links → refresh the index page.

Step 0: Read shared config

First read ../_shared/user-config.json, if ../_shared/user-config.local.json exists, then use it to override the default values.

Explicitly generate and consistently use these variables afterwards:

  • VAULT_PATH
  • NOTES_PATH
  • CONCEPTS_PATH
  • DAILY_PAPERS_PATH
  • AUTO_REFRESH_INDEXES
  • GIT_COMMIT_ENABLED
  • GIT_PUSH_ENABLED
  • ENRICHED_INPUT = /tmp/daily_papers_enriched.json

Where:

  • NOTES_PATH = {VAULT_PATH}/{paper_notes_folder}
  • CONCEPTS_PATH = {NOTES_PATH}/{concepts_folder}
  • DAILY_PAPERS_PATH = {VAULT_PATH}/{daily_papers_folder}
  • GIT_PUSH_ENABLED Only when GIT_COMMIT_ENABLED=true can it possibly be true

Subsequent steps consistently use the above variables.

Pre-checks

  1. Check whether /tmp/daily_papers_enriched.json exists
  2. Check whether today's recommendation file {DAILY_PAPERS_PATH}/YYYY-MM-DD-论文推荐.md exists
  3. If either does not exist, tell the user they need to run the prerequisite steps first, then stop

Workflow

Step 1: Concept library supplementation

1a: Extract concept list

  1. Scan today's recommendation file, extract all [[...]] links
  2. Additionally extract from /tmp/daily_papers_enriched.json 's method_names list all method names
  3. Merge and deduplicate

1b: Filter Only keep terms of the following types (skip generic words, the papers' own names, company names, and person names):

  • Method/model names (e.g., Q-Former, Parseval Regularization, CVAE, PCM)
  • Dataset names (e.g., AMASS, LaFan1, MotionX, AndroidCode)
  • Simulator/framework names (e.g., OmniGibson, IsaacLab, Acados)
  • Technical concept names (e.g., System Level Synthesis, Consistency Model)

1c: Create missing concept notes (auto-categorize) Check whether they already exist under {CONCEPTS_PATH}/ (search all subdirectories). For missing concepts,automatically categorize them into the corresponding subdirectory based on concept type, do not dump them all into 0-待分类/。

See ../paper-reader/references/concept-categories.md

for categorization rules. See ../paper-reader/references/concept-categories.md

Step 2: Paper note generation

Generate complete paper notes for recommended papers:

  1. From today's recommendation file, read the triage table and filter out papers marked as "must-read" (do not generate notes for "worth reading" and "skippable")
  2. Quality-check existing notes(not just checking whether the file exists):
    • For papers already marked with 📒 **笔记** , use Glob to find the corresponding note file and check the line count
    • Files with < 100 lines are considered skeleton notes and must be regenerated(delete the old file, call paper-reader again)
    • Only those with >= 100 lines and containing ## 关键公式 and ## 关键图表 qualify and can be skipped
  3. For each paper that needs to be generated/regenerated, use a Task agent to call the /paper-reader skill (pass in the arXiv link)
    • Do not specify a fixed output path, let paper-reader decide the filename and category directory itself
    • paper-reader uses the method name abbreviation as the filename (e.g., DAPL.md), and automatically categorizes it into the correct subdirectory
    • After the agent finishes, use find or Glob to find the actual generated note file path and filename, and record them for Step 3 backfilling
  4. After the note is generated, paper-reader will automatically supplement the concept library, no need to repeat

Iron rule: regardless of the number of papers, the "must-read" papersallgenerate notes, not a single one can be missing. Long duration is normal, and is not an excuse for slacking off. If the context is approaching the limit, first persist the completed content to disk; only when GIT_COMMIT_ENABLED=true is it allowed to make a staged commit. Then inform the user that the remaining papers need to be continued in a new session,absolutely must not be silently skipped。

⚠️ Hard requirements for note quality

It is absolutely forbidden to hand-write a simplified version of the notes yourself. Each paper must be generated by calling the /paper-reader skill through a Task agent. Do not write a 70-line skeleton yourself to muddle through just because you "fear context overflow" or "there are too many papers." paper-reader runs in an independent Task agent and will not consume the main agent's context.

Note quality is guaranteed by the paper-reader skill itself (rules such as templates, formulas, images, and concept links are all defined in paper-reader).

🔍 Post-generation quality verification (must be performed for each paper)

After each note is generated, immediately verify:

  1. File line count >= 120 (below this value indicates incomplete content)
  2. Contains $$ or $ LaTeX formulas (at least 2 places)
  3. Contains ![ image references (at least 1)
  4. Contains ## 关键公式 and ## 实验结果 section header
  5. If any condition is not met,delete the file and regenerate it

Step 3: Backfill note links

After all paper notes are generated, backfill the note links into that day's recommendation file.

3a: Collect existing notes

Use Glob to scan {NOTES_PATH}/ all subdirectories under it (skip {CONCEPTS_PATH}), obtain the list of all .md files, and build an index of {文件名(不含.md): 相对路径} .

3b: Match papers with notes

Read that day's recommendation file {DAILY_PAPERS_PATH}/YYYY-MM-DD-论文推荐.md, and for each paper (paragraphs starting with### N. ):

  1. Extract the method name/model name from the paper title (usually the abbreviation before the colon in the title, such as "DM0", "BPP", "PA3FF")
  2. Match it against the note index from 3a (case-insensitive)
  3. Also check the enriched data's method_names(if there is residual data)

3c: Insert note links + correct the routing table

For papers matched to notes, insert a line after the - **来源**: line:

- 📒 **笔记**: [[笔记名]]

where 笔记名 is the filename without the .md suffix (Obsidian will automatically resolve it to the correct path).

  • If the paper already has a 📒 **已有笔记** or 📒 **笔记** line, skip it and do not add it again
  • Use the Edit tool to insert them one by one, ensuring that other content in the file is not damaged

3d: Synchronously correct the routing table wikilink

When paper-reader generates notes, it decides the filename itself (usually using the method name abbreviation, such as DAPL), which may differ from the one in the routing table [[wikilink]] Inconsistent (e.g., the triage table says [[Emerging Extrinsic Dexterity]]). Therefore, during backfilling you must check and correct:

  1. For each paper for which a note has been generated, obtain the actual note filename (e.g., DAPL)
  2. In the triage table (## 分流表 area), find that paper's [[...]] link
  3. If the wikilink text does not match the actual note filename, use Edit to replace it with [[实际文件名]]
  4. Also check whether there is an inconsistent wikilink below the paper review title, and correct it as well

Step 4: Refresh MOC index

Only when AUTO_REFRESH_INDEXES=true execute:

python3 ../_shared/generate_concept_mocs.py
python3 ../_shared/generate_paper_mocs.py

Under the default configuration this switch is enabled, so newly added concept and paper notes are usually automatically reflected in the category directory pages.

Step 5: Git commit

Execute only when GIT_COMMIT_ENABLED=true and you must first check:

  1. VAULT_PATH/.git exists
  2. git add -A and there are indeed staged changes afterward

Only after the conditions are met, commit:

cd {VAULT_PATH} && git add -A && git commit -m "daily papers: notes YYYY-MM-DD"

Only when GIT_PUSH_ENABLED=true and the repository has a remote configured, push.

Output

After completion, inform the user:

  • How many new concepts were created
  • How many paper notes were generated
  • How many note links were backfilled
  • The pipeline is fully complete

Notes

  • If the prerequisite files do not exist, you must first run the preceding steps
  • /paper-reader The skill will automatically handle concept library supplementation; do not create duplicates
  • Generate notes only for "must-read" papers, not for "worth reading"; the time taken is normal,not a reason to skip
  • By default, directory pages are refreshed automatically, but by default no git commit / push is done
  • Absolutely prohibitedThe following lazy behaviors:
    • Writing a 70-line skeleton note yourself instead of using paper-reader output
    • Skipping papers and not generating notes on the grounds of "context overflow"
    • Skipping when you see the file already exists, without checking quality
    • Not performing quality verification after generating notes
  • If the context is truly approaching the limit: first save the completed notes; only when GIT_COMMIT_ENABLED=true commit. Thenclearly inform the userthere are still N papers unfinished, and you need to run in a new session 跑一下论文笔记 to continue. Never silently skip