> ## Documentation Index
> Fetch the complete documentation index at: https://docs.runwita.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Topics

> Threads of discussion that span engagements, with their own state.

Topics are where Runwita stops being a notes app and starts being something else. A topic is a recurring thread, a thing that comes up in multiple conversations, that you want to track over time. *"Licensing model"*, *"Phase 2 timeline"*, *"Onboarding flow redesign"*. Each topic has a state (open, blocked, resolved), a category, and a chronological log of touchpoints across engagements.

## 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.

That's the value: the question *"where did we land on the licensing question?"* is one click, not a search.

## 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).

It decides: *does this section continue an existing topic, or is it a new thread?* If it's continuing, the section becomes a new touchpoint on that topic. If it's new, a new topic is created.

A few rules the matcher follows:

* **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:

1. **Resolved is terminal.** Once a topic is resolved, it stays resolved unless you explicitly reopen it.
2. **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*.

This is intentional. Real blockers don't dissolve because the topic got mentioned again. *"We're still waiting on legal"* doesn't unblock anything; *"Legal signed off"* (a progressed or decided touchpoint) does.

### 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.

The category is set by the AI on creation. You can edit it on the topic detail page if it's wrong.

## 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*).

Scroll the timeline and you read the arc of the topic, not the engagements.

## 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).

Stale-after-days is also editable per topic. Some topics move weekly, some are quarterly. The auto-stale threshold isn't one-size-fits-all.

## 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:

1. 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.
2. Give your topics more distinctive titles. *"Licensing"* matches everything; *"Annual licensing renewal terms"* matches only its actual thread.

## What's next

<Card title="AI tiers" icon="brain" href="/concepts/ai-tiers">
  Frontier and Workhorse, and which one runs topic matching.
</Card>
