Pipeline

Every paper's position in the automated workflow. Each row is a stage; counts come from entities.db.schedule.

🔭

Discovered

stage='discovered'30min cron

Seen by paper_discovery / local-folder ingest

paper_discovery.py

1,102 done
last:
5/16/2026, 6:27:
⚖️

Triaged

stage='triaged'30min cron

Scored by paper_triage (regex + Haiku + composite)

paper_triage.py

no rows yet
last:
📥

Queued

stage='queued'manual

suggested_action ∈ {read, integrate}

/triage UI

no rows yet
last:
📄

Ingested

stage='ingested'on-demand + nightly

PDF/URL → pdftotext → entity + framings (Sonnet)

ingest_one_url.py

96 done
last:
5/16/2026, 6:27:
🔗

Refs extracted

stage='refs-extracted'at ingest + nightly backfill

OpenAlex referenced_works + S2 fallback

enrich_citations_openalex.py + enrich_citations_s2.py

30 done
last:
5/16/2026, 6:27:
🕸️

Graphified

stage='graphified'at ingest

Typed extraction: claims, findings, hypotheses, concepts, relations

extract_typed.py (DeepSeek V4 Pro)

35 done
last:
5/16/2026, 6:27:
🌐

Merged into 7-way

stage='merged'

Cross-corpus graph updated (legacy graphify path)

— (deprecated; corpus.communities used instead)

no rows yet
last:
📨

Surfaced to multica

stage='multica-surfaced'30min cron

Anton sees it in /pending

papers_to_multica.py

129 done
last:
5/16/2026, 6:27:

Next to ingest

`triaged` → `ingested`

queue empty

Community detection runs

Hybrid Leiden over Nomic vectors (cosine threshold) + edge boost from typed relations / citations. Wired into research_pipeline.sh --weekly (alongside label_communities.py). Singletons are filtered before write.

WhenMethodScopeNodesEdgesClustersMembers writtenModularityThresholdBoost
5/19/2026, 11:31
leiden_hybrid_concepts
concepts
1500238097530040.3600.72×2.0
5/19/2026, 11:31
leiden_hybrid_papers
papers
97326631780.0200.70×2.0
5/19/2026, 2:17:
leiden_hybrid_concepts
concepts
1500277354811120.8600.78×2.0
5/19/2026, 2:13:
leiden_hybrid_papers
papers
91282428740.0230.70×2.0

Cross-corpus bridges

same_concept_as edges from external markdown corpora into corpus.entities. Built by cross_corpus_bridges.py via Nomic cosine ≥ 0.78. Top bridges become essay-candidate hunting ground.

External corpusBridgesAvg cosineMax cosineLast built
aboutblank_kb
5,8380.8160.9335/19/2026, 11:46
alexander
5530.7860.9295/19/2026, 4:05:
research_notes
400.7860.8415/19/2026, 11:33
zen
60.7580.7685/19/2026, 11:33

Local reservoirs

Folders the pipeline can sweep on demand via ingest_local_folder.py.

synthesis/sources/papers/
15 PDFs · Levin-school sources (TAME, bioelectric, etc.)
synthesis/papers/cleaned/
14 markdowns · pre-extracted, ingested
alexander/papers/
28 PDFs + 29 extracted · Nature of Order Telegram shares