From a thesis to a map of where to focus
The analysis engine already exists as a Python pipeline (it produced the RRLM example). This prototype shows the product around it with every stage simulated. The table lists what each stage does now and what it will do once the engine is wired in.
Say it roughly
Type a half-formed thought. The chat finishes it into three detailed directions; pick one or edit it.
Scope
It proposes up to eight areas with their search queries, as a card you edit in the conversation.
Collect
Thousands of candidates from OpenAlex, arXiv and Semantic Scholar, with citations and trend counts.
Read
Agents read every selected abstract against a fixed schema: relevance, method, signal, open problem.
Analyse
A landscape map, citation links, growth per area, rising phrases and the gap matrix.
Decide
Evidence-backed findings and ranked opportunities, each with a first experiment and a kill criterion.
| Stage | In this prototype | In the product | Engine file |
|---|---|---|---|
| Scope | Real: Claude on Bedrock interviews the researcher and proposes the areas as an editable card in the chat. | The same conversation, plus trend queries and verified seed papers per area, in the topic-config format the engine reads. | web/src/lib/chat.ts |
| Collect | Simulated from the example's counts. | OpenAlex title/abstract search, arXiv relevance and newest-first search, Semantic Scholar batch for citations, arXiv hit counts per quarter for trends. All responses are cached; 3–6k unique candidates. | pipeline/scripts/collect.py |
| Score & select | Simulated. | TF-IDF fit to each area and to the thesis, citation velocity, citations and recency as percentiles. A balanced set per area, 30% reserved for the newest nine months, plus a priority pattern for thesis-central papers. | pipeline/scripts/select_papers.py |
| Annotate | Simulated agent progress; the annotations shown are the example's real ones. | Six parallel Claude agents read every abstract against a fixed schema: relevance 0–5, problem, learning signal, techniques, benchmarks, cost reporting, trace evaluation, open problem, link to the thesis. A validator rejects malformed output. | pipeline/references/annotation-schema.md |
| Analyse | Precomputed for the example. | Landscape map (TF-IDF → SVD → t-SNE), in-corpus citation graph, share of AI submissions per quarter, rising and fading phrases, the problem × signal gap matrix. | pipeline/scripts/analyze.py |
| Synthesise | The example's hand-checked synthesis. | Claude writes the headline, 4–6 findings with evidence ids and 6–10 opportunities scored on a fixed rubric, each with a first experiment and a kill criterion. Every cited id and score is validated. | pipeline/references/synthesis-format.md |
API contract (already used by the prototype)
POST /api/chat conversation turn → NDJSON stream POST /api/atlases thesis, areas, settings → id GET /api/atlases/:id/events server-sent pipeline events GET /api/atlases/:id record + data.json when ready GET /api/atlases library
Read the numbers with care
- Trend lines count arXiv abstracts matching keyword queries: they measure vocabulary, not the size of a field.
- Annotations come from abstracts, so shares like "reports cost" are lower bounds.
- Opportunity scores are judgements on a stated rubric, not measurements.