The research graph is the heart of Thesis. Instead of storing your work in chat histories or flat note files, Thesis represents every hypothesis, experiment, insight, and source summary as a node in a directed graph. Nodes connect through parent–child edges, so you can trace exactly how one idea led to another, and branch off in new directions without overwriting what came before.

Nodes: the building blocks

Every piece of research in Thesis lives in a node. A node has a title, a summary (the core claim or plan), optional long-form content, and a kind that describes what type of research unit it represents.
Nodes are the atomic unit of research in Thesis. Everything, hypotheses, experiments, insights, source summaries, is a node.

Node kinds

  • Untyped. A general-purpose node. Use it for notes, source summaries, follow-up directions, or anything that doesn’t fit neatly into a specific category yet.
  • Empirical. An experiment node. Empirical nodes carry an 8-section blueprint with a hypothesis, falsification criterion, method, expected outcomes, baseline, metrics, data config, and rigor review. They also have a status: drafted, awaiting_approval, in_progress, completed, or failed.
  • Insight. A synthesized finding. Use insight nodes to record conclusions drawn from experiments or sources, things you’ve determined to be true and want to preserve as durable knowledge.

Staged vs. committed

Every node exists in one of two lifecycle states:
StateEditablePurpose
StagedYesWorking draft. You can update the title, content, kind, and summary freely.
CommittedNoDurable history. A committed node is frozen, it can never be edited, only branched from.
This distinction is deliberate. When you commit a node, you’re saying: “this finding is stable enough to build on.” Future work branches from committed nodes instead of rewriting them, which gives you a reliable audit trail.
Committing a node is permanent. If you need to revise a committed finding, create a new branch node as its child.

Edges: how nodes relate

Nodes are connected by parent–child edges. A child node descends from one or more parents, and a parent can have many children. This lets the graph represent:
  • a hypothesis branching into several competing tests
  • a failed experiment leading to a revised setup
  • multiple source summaries merging into a single insight
  • an experiment result spawning the next frontier of investigation
You can add or remove parent edges on staged nodes at any time. Once a node is committed, its position in the graph is fixed, but you can still attach new children to it.

Branching and merging

1

Branch from a committed node

When you want to explore a new direction without disturbing stable work, branch from a committed node. The new node starts staged and inherits context from its parent.
2

Work in the staged state

Edit, annotate, and iterate on the staged node. Run searches, attach artifacts, let the agent write log entries. Nothing is locked yet.
3

Commit when findings are stable

Once you’re confident in a result or finding, commit the node. It becomes durable history, a fixed point in your research timeline.
4

Merge multiple nodes

If several parallel experiments or source summaries converge on the same conclusion, merge them into a single insight node. The merge preserves the ancestry of all contributing nodes.

The core workflow

The typical rhythm in Thesis follows this pattern:
create staged node → add content → commit → branch for next step
For experiments, the agent extends this with a proposal and approval step:
agent stages empirical node → blueprint appears as proposal card → you approve → compute runs → results attached → commit
You don’t have to commit nodes immediately. Keep nodes staged while work is in progress. Commit only when a finding is stable enough to become part of your permanent research record.

Why this structure matters

Most research tools treat notes as mutable documents and chat as the memory layer. Both break down quickly: documents get overwritten, and chat history becomes unreliable after a few sessions. Thesis’s graph gives you something more durable:
Every node traces back to its ancestors. You can always answer: “where did this idea come from?”, by walking the parent edges to the original hypothesis or source.
Because committed nodes are frozen, branching never destroys what you’ve already established. Dead ends are recorded, not erased.
The graph is structured data, not prose. The Thesis agent can read the full project graph, understand what’s been tried, and plan the next step without relying on chat history.
Subgraphs can be shared with collaborators or exported as JSON, markdown, or PDF, making handoffs and reproducibility packages straightforward.