Why topics exist
In conventional notes apps, every conversation is a flat island. You search for “licensing” and you get five separate transcripts, each with their own context, and you have to mentally stitch the arc back together. The thread isn’t first-class. In Runwita, the thread is the object. The engagements are how the thread accumulates new state. When you scroll a topic, you see:- The current state (e.g. Open or Blocked).
- Every prior touchpoint, in order, with the engagement it came from and what was said about the topic in that conversation.
- A category (technical, commercial, governance, planning, relationship).
- A status timeline, when it became blocked, when it cleared, when it was resolved.
How topics get created
You don’t create topics manually. They’re created by the AI during the topic-matching step that runs when you save an engagement. For each section in your extracted engagement, the AI looks at:- The section’s heading and body.
- The journey’s existing topics (their titles, statuses, categories).
- Substance, not section title. “License discussion” and “Annual licensing renewal” are the same topic, not two. The matcher looks at content overlap.
- No fragmenting. A topic only appears once per engagement, even if multiple sections discussed it. The matcher merges them into one touchpoint.
- Logistics aren’t topics. Greetings, scheduling the next conversation, off-topic chitchat don’t get topics. Only substantive recurring threads do.
- 2 to 6 topics per engagement. That’s the matcher’s target band. Not every section needs its own topic.
Topic state
Each topic has a status that reflects where it stands. The status is derived from the chronological history of touchpoints on the topic, ordered by engagement date.| State | What it means |
|---|---|
| Open | Active discussion, no impediment. The default state for any new topic and any topic that’s moving forward. |
| Blocked | An impediment was raised and not yet cleared. “We can’t proceed until legal signs off.” |
| Resolved | The topic is complete, no more discussion expected. Terminal. |
| Stale | No touchpoint in a long time (configurable per topic). Auto-flagged so the journey doesn’t quietly leak attention. |
The blocked-is-sticky rule
Status follows two simple rules:- Resolved is terminal. Once a topic is resolved, it stays resolved unless you explicitly reopen it.
- Blocked is sticky. Once a touchpoint marks a topic blocked, the topic stays blocked until a later touchpoint actively clears it. A bare discussed touchpoint after blocked does not clear the block. The block is only cleared by a touchpoint with state progressed, decided, or resolved.
How touchpoint states map
The states a touchpoint can carry are slightly richer than the topic states themselves:| Touchpoint state | Effect on topic status |
|---|---|
discussed | Stays as-is. Won’t clear a blocked topic. Sets a fresh topic to open. |
progressed | Sets to open. Clears blocked. |
decided | Sets to open. Clears blocked. The decision itself is recorded as a Decision on the engagement. |
blocked | Sets to blocked. |
resolved | Sets to resolved (terminal). |
Out-of-order processing
Topic status is computed from the touchpoints’ engagement dates, not the order in which you processed them. If you process an Apr 22 conversation first and then later push a back-dated Apr 10 one, the older one doesn’t clobber the newer state. The system always reads the chronological tail, regardless of when you got around to processing each piece.Categories
Each topic has a category, used for filtering and visual grouping on the journey page. Five categories:- Technical, architecture, integration, infrastructure, data.
- Commercial, pricing, licensing, contracts, terms.
- Governance, compliance, security, privacy, audit.
- Planning, timelines, milestones, scope, capacity.
- Relationship, stakeholder dynamics, communication patterns, escalations.
Reading the topic timeline
Click any topic on a journey page to see its touchpoint history. Each row is one engagement that touched the topic, with:- The date of that engagement.
- The state at that touchpoint.
- A brief note (one to two sentences from the AI summarising what was said about this topic in that conversation).
Editing topics
Topics are editable. From a topic’s detail page you can:- Rename the topic.
- Change its category.
- Manually flip its status (e.g. mark something resolved before the next engagement confirms it).
- Edit individual touchpoint notes.
- Delete the topic (which removes all its touchpoints; the underlying engagements stay intact).
When topics go wrong
Topic matching is imperfect. The two failure modes you’ll see: Over-fragmentation. The matcher creates a new topic when it should have continued an existing one. Usually because the engagement section was worded differently from the existing topic’s title. Fix: open both topics, edit one to match, and either re-run extraction (Reprocess with AI) or manually move touchpoints. Over-merging. The matcher attaches a section to the wrong existing topic because the surface words overlap but the substance is different. Less common but harder to spot, you usually catch it weeks later. Fix: split the touchpoint off into a new topic from the topic detail page. If you find the matcher is consistently off on a journey, two levers help:- Use a sharper, more capable model on the workhorse tier. Claude Haiku 4.5 and gpt-5 do better than gpt-5-nano on this task.
- Give your topics more distinctive titles. “Licensing” matches everything; “Annual licensing renewal terms” matches only its actual thread.
What’s next
AI tiers
Frontier and Workhorse, and which one runs topic matching.

