Paper Flow
Generate citation tree visualizations and Obsidian vault structure from academic paper research.
When to Use This Skill
Use when user wants to:
- •"Research paper flow for [field/topic]"
- •"Create citation tree for [paper]"
- •"Visualize development flow of [research area]"
- •"Generate paper flow diagram"
- •"Build citation network visualization"
When NOT to Use This Skill
- •General paper management tasks (use Zotero, Mendeley, etc.)
- •Simple citation tracking without visualization
- •Non-academic graph visualization tasks
- •Quick single-paper lookups without analysis
Workflow
Phase 1: Paper Discovery
Trigger: User provides research field name or seed paper title/DOI/ID
Actions:
- •Query Semantic Scholar API for papers matching search criteria
- •Query arXiv API for additional metadata (if needed)
- •Extract paper metadata: title, authors, year, venue, citation count
- •Return list of candidate papers
MCP Tools Used:
- •
search_papers(query, limit=20, filters)- Semantic Scholar + arXiv - •
get_paper_details(paper_id)- Full metadata extraction
Phase 2: Citation Network Extraction
Trigger: Papers identified from Phase 1
Actions:
- •For each paper, get forward citations (who cited this paper)
- •For each paper, get backward references (what this paper cites)
- •Build bidirectional citation graph
- •Analyze citation relationships to identify influence flow
MCP Tools Used:
- •
get_citations(paper_id, limit)- Forward citations - •
get_references(paper_id, limit)- Backward references
Phase 3: Tree Structure Analysis
Trigger: Citation network built from Phase 2
Actions:
- •Identify root paper (highest citation count or most recent influential paper)
- •Determine parent-child relationships based on citation direction
- •Apply tree layout algorithm (Reingold-Tilford for clean trees)
- •Calculate node positions (x, y coordinates)
- •Assign hierarchy levels (depth, influence metrics)
Decision Rules:
| Condition | Action |
|---|---|
| Root paper identified by user input | Use as explicit root |
| Multiple candidate roots (high citation count) | Select paper with highest influence metric |
| Disconnected components | Create separate trees, ask user to choose primary |
| Cyclic citations detected | Break cycles, use earliest dated paper as parent |
Phase 4: Visual File Generation
Trigger: Tree structure with node positions calculated
Actions:
- •
Generate Excalidraw JSON file:
- •Create text elements for paper titles
- •Add
linkproperty to each element (arXiv/DOI URL) - •Create arrow elements between parent and child nodes
- •Export to
[topic]-flow.excalidraw
- •
Generate Obsidian Canvas JSON file:
- •Create file nodes (link to
papers/{paperId}.md) - •Create text nodes for labels/groups
- •Create edges between nodes
- •Export to
[topic]-flow.canvas
- •Create file nodes (link to
Phase 5: Obsidian Note Generation
Trigger: Visual files generated
Actions:
- •For each paper, create markdown note:
markdown
# {title} **Authors**: {authors} **Year**: {year} **Venue**: {venue} **Citation Count**: {count} ## Abstract {abstract} ## Link [Open on arXiv]({url}) - •Save to
papers/{paperId}.md - •Create index note linking all papers
Output Files
The workflow produces:
- •
Excalidraw File:
[topic]-flow.excalidraw- •Hand-drawn style citation tree
- •Text nodes with paper titles + clickable links
- •Arrow elements showing citation relationships
- •
Obsidian Canvas File:
[topic]-flow.canvas- •File nodes linked to markdown notes
- •Text nodes for labels/groups
- •Edge connections between nodes
- •
Markdown Notes:
papers/*.md- •Detailed paper metadata
- •Abstracts, authors, venues
- •Links to source papers
Error Handling
| Error Type | Recovery |
|---|---|
| Semantic Scholar rate limit exceeded | Add delay, notify user of remaining quota |
| Paper ID not found | Suggest alternative search terms, check DOI format |
| No citations found | Display warning, create single-node tree |
| API connection timeout | Retry with exponential backoff (up to 3 attempts) |
| Tree layout fails | Fall back to simple hierarchical layout |
Examples
Example 1: Field Research
Input: "Research paper flow for attention mechanisms"
Workflow:
- •Search papers for "attention mechanisms" → 20 papers
- •Extract citations for key papers → 45+ papers
- •Build tree rooted at "Attention is All You Need"
- •Generate
attention-flow.excalidrawandattention-flow.canvas - •Create markdown notes in
papers/directory
Output:
- •
attention-flow.excalidraw(visual tree) - •
attention-flow.canvas(Obsidian canvas) - •
papers/*.md(paper notes)
Example 2: Seed Paper Expansion
Input: "Create citation tree for 10.1038/nature14539"
Workflow:
- •Get paper details via API
- •Get forward and backward citations
- •Build tree structure (cited-by = descendants)
- •Generate
attention-flow.excalidraw - •Generate
attention-flow.canvas - •Create paper notes
Output:
- •
attention-flow.excalidraw(visual tree) - •
attention-flow.canvas(Obsidian canvas) - •
papers/*.md(paper notes)
Example 3: Multi-Tree Comparison
Input: "Compare development flows for CNNs and RNNs"
Workflow:
- •Search papers for "CNN" → 15 papers
- •Search papers for "RNN" → 15 papers
- •Build separate trees for each field
- •Generate two side-by-side canvas files
- •Create comparison note linking both trees
Output:
- •
cnn-flow.excalidrawandcnn-flow.canvas - •
rnn-flow.excalidrawandrnn-flow.canvas - •
comparison-note.mdlinking both trees
Technical References
MCP Server Tools
- •search_papers(): Semantic Scholar + arXiv paper search
- •get_citations(): Forward citation extraction
- •get_references(): Backward reference extraction
- •get_paper_details(): Full metadata retrieval
File Generation Libraries
- •Excalidraw-Interface:
.excalidrawfile generation - •PyJSONCanvas:
.canvasfile generation - •Markdown: Paper note templates
Layout Algorithms
- •Reingold-Tilford: O(n) tree layout (preferred)
- •NetworkX layouts: Alternative layouts for complex graphs
- •Tidy tree algorithm: Parent-centered, minimal crossing
Quality Gates
Phase Completion Checklist
- • Phase 1: 5-20 relevant papers found
- • Phase 2: Citation network extracted (bidirectional)
- • Phase 3: Tree structure determined, positions calculated
- • Phase 4: Excalidraw and Canvas files generated
- • Phase 5: All paper markdown notes created
Verification Steps
- •
Excalidraw Verification:
- •Open
[topic]-flow.excalidrawin Excalidraw - •Verify all nodes render correctly
- •Verify text links are clickable
- •Verify arrows connect correct nodes
- •Open
- •
Obsidian Verification:
- •Open
[topic]-flow.canvasin Obsidian - •Verify all file nodes link to existing
.mdfiles - •Verify graph view shows connections
- •Verify clicking nodes opens paper notes
- •Open
- •
Content Verification:
- •Spot-check 3 random paper notes for accuracy
- •Verify citations match source data
- •Verify abstracts are complete
Notes
Rate Limiting Awareness
- •Semantic Scholar: 100 requests/5 minutes (free tier), higher with API key
- •arXiv: 1 request/3 seconds (strict limit)
- •Implement request queueing and delays as needed
Tree Layout Considerations
- •Variable-length paper titles require dynamic node sizing
- •Deep trees (>5 levels) may benefit from horizontal layout
- •Consider citation count as node size indicator (larger = more influential)
Obsidian Integration Best Practices
- •Use
papers/subdirectory for organization - •Include YAML frontmatter in notes for better Obsidian search
- •Create
index.mdwith all paper links for easy navigation - •Use Obsidian's graph view to discover unexpected connections