$38
Conduct systematic academic literature surveys and manage a local paper database.
papers/
{doi-safe-id}/
info.json ← bibliographic data + tags + relationships
paper.pdf ← if downloaded
notes.md ← structured analysis (Japanese)
surveys/
{survey-name}/
config.json ← survey metadata
overview.md ← full-field summary + subfield map
paper-list.md ← all-paper comparison table
subfields/
{subfield-name}.md
DOI → safe directory ID: replace / with - and . with -
(10.1234/foo.bar → 10-1234-foo-bar)
No DOI fallback: arxiv-{id} for arXiv papers, title-slug-{year} otherwise
(e.g. my-paper-title-2024).
Read the user's message and decide immediately:
If ambiguous, ask: "特定の論文を登録したいですか?それとも分野全体のサーベイを行いますか?"
Ask the user for:
dialogue-user-profiling)Create surveys/{survey-name}/config.json:
{
"name": "...",
"description": "...",
"created": "YYYY-MM-DD",
"query_field": "...",
"year_range": "20XX-20XX",
"anchor_papers": [],
"searches_performed": []
}
Decompose the field into 5–10 sub-queries covering:
Show the query plan to the user. Wait for approval before proceeding.
Record approved queries in config.json under searches_performed.
For each approved query, search in this order. Stop accumulating when 30+ high-relevance results are collected.
search_semantic_scholar — best for citation counts + structured abstractssearch_arxiv — preprints, essential for NLP/ML/HCIsearch_crossref — broad DOI coverage for published paperssearch_google_scholar — fallback for hard-to-find papersFor specialized fields also try: search_pubmed (biomedical), search_springer, search_scopus.
After all searches: deduplicate by DOI, then by title similarity (>85% match = same paper). Report the deduplicated list count to the user before proceeding.
For each unique paper in the deduplicated list:
Compute doi-safe-id. Check if papers/{doi-safe-id}/ already exists.
surveys list in info.json and continue.Write info.json with all available bibliographic fields.
Leave tags.method, tags.dataset, tags.evaluation_metrics empty for now.
Set "surveys": ["{survey-name}"].
Attempt PDF download (try in order, stop at first success):
download_paper with platform: "arxiv" if arXiv ID is knowndownload_paper with platform: "scihub" using DOIdownload_paper with platform: "semantic" if Semantic Scholar paper ID available
Set savePath to the paper directory (papers/{doi-safe-id}/).
On failure: set pdf_path: null, record pdf_url from search result if available.Generate notes.md using the template in references/templates.md.
PDF未取得のため詳細不明config.json specifies otherwise.⚠️ STOP after all papers are registered. Do NOT assign tags yet — tags are assigned globally in Step 5.
With the full set of papers now visible, do ONE pass across all papers:
info.json and abstracts / notes in memory.references/tag-taxonomy.md to each paper:
tags.method — primary methods/models usedtags.dataset — datasets used for training or evaluationtags.evaluation_metrics — evaluation metrics reportedtags.has_user_study — true if the paper recruited real users for evaluationtags.language — ["ja"] for Japanese venue, ["en"] for English, ["ja","en"] for bilingualinfo.json for every paper.Apply tags consistently: if three papers use BERT, all three must use the same tag string "BERT".
If a method isn't in the taxonomy, add it to references/tag-taxonomy.md first, then use it.
Scan all papers in this survey:
Same-paper duplicates: papers with identical DOI, title similarity >90%, or
same first author + same year + substantially overlapping abstract.
→ Set duplicate_papers in each paper's info.json pointing to the other DOI(s).
Key case: Japanese domestic workshop paper + extended English journal version by same author.
Research group clustering: group papers sharing first/last authors or institutional keywords.
→ Set research_group (e.g. "Kyoto-NLP-Lab") and same_research_group list.
Cross-references: for each paper, identify other papers in this survey that it would
likely cite or be cited by. → Set related_papers.
Before writing, report detected clusters to the user for confirmation: "以下の論文が同一研究グループと判定されました: ..."
Do NOT pre-define subfields. Instead:
info.json under a new subfields key.surveys/{survey-name}/subfields/{subfield-name}.md (one per subfield):
# {Subfield Name}
## 概要
[What this subfield addresses, 2-3 sentences]
## 歴史的流れ
[Oldest → newest papers; note when key ideas emerged]
## 論文比較表
| 論文 | 年 | 手法 | データセット | 主要結果 | 備考 |
|------|----|----- |------------|---------|------|
## 他サブフィールドとの関係
## 未解決問題・今後の方向性
surveys/{survey-name}/overview.md:
# {Survey Name} サーベイ概要
## エグゼクティブサマリー
## サブフィールドマップ
[各サブフィールドと相互関係]
## 全体的なトレンド(時系列)
## 初学者向け推奨読書順序
surveys/{survey-name}/paper-list.md:
Full comparison table sorted by year:
| 論文 | 年 | 手法 | データセット | User Study | 評価指標 | サブフィールド |
|------|----|----- |------------|-----------|---------|-------------|
Extract DOI, title, authors from user input (BibTeX / plain text / PDF path / URL).
If DOI available: call get_paper_by_doi to fetch full metadata.
If only title/authors: call search_semantic_scholar with title; show top match to user for confirmation.
Compute doi-safe-id. Check if papers/{doi-safe-id}/ exists.
papers/{doi-safe-id}/.info.json from fetched metadata.pdf_path (absolute path).download_paper (arxiv → scihub → semantic).notes.md from abstract and any available full text.references/tag-taxonomy.md to info.json.Read all surveys/*/config.json. For each survey, check if this paper's tags and topic match the survey's query_field. Suggest:
"この論文は以下のサーベイに関連しそうです: [X, Y]. 追加しますか?"
If added: update info.json surveys list and append paper row to paper-list.md.
Full templates are in references/templates.md.
Tag vocabulary is in references/tag-taxonomy.md.
| Situation | Action |
|---|---|
| DOI not found | Use title-slug ID; set "doi": null in info.json |
| PDF download fails (all platforms) | Set "pdf_path": null; note in notes.md: PDF未取得のため詳細不明 |
| Search returns 0 results | Reformulate query (broader terms / Japanese alternates); report to user if still empty |
| Conflicting metadata from sources | Prefer Semantic Scholar > CrossRef > arXiv |
| Rate limit on search platform | Use get_platform_status to check; switch to next platform in the priority order |
papers/ entries. Updates are always additive.notes.md unless user explicitly requests re-analysis.references/tag-taxonomy.md; add new terms there before using them.config.json (default: Japanese).overview.md is always the last document written — it synthesizes all subfield docs.