Research · Note #1

Message Activity ≠ Decision Progress

A conversation-state framework for AI-assisted work communication.

Email software is very good at telling us that something happened. A message arrived. Someone replied. A thread became recent again.

Work is usually asking a harder question: did anything actually move?

A prospect can reply without making a decision. A collaborator can say “let me check and get back to you” without taking the next step. A thread can stay busy for two weeks while the underlying commitment quietly expires.

That gap became one of the central problems behind Sidekick Log.

The default model is too shallow

Most inbox systems treat message activity as a useful proxy for progress. Newer threads rise. Unread messages remain visible. A reply often makes a conversation feel complete.

But recency and progress are different variables.

A reply tells you that the thread changed. It does not tell you that the work moved.

This matters because a large amount of professional work lives between explicit tasks. Someone owes an introduction. A customer is waiting for an answer. A proposal has been sent but not decided. A candidate said they would confirm. None of these states are well represented by “read,” “unread,” or “replied.”

What we examined

The framework came out of product development rather than an academic study. Across the development period, Sidekick Log processed roughly 95,000 Gmail threads. We built a 500-thread evaluation set and ran an internal annotation exercise that produced 0.81 Cohen’s κ. Separately, we stress-tested the scanning architecture at up to 20,000 threads.

Those numbers answered two different questions. The stress tests told us the engine could survive real inbox volume. The evaluation work told us whether the states were coherent enough to use operationally.

Neither proves that the framework is universal. The data is proprietary, the sample is internal and beta-stage, and the classifier has not been independently validated. The useful result was narrower: the same failure mode kept appearing often enough that reply/no-reply stopped being a satisfactory model.

A state model for unfinished work

We began modelling a conversation around two things: who owns the next move, and whether the underlying decision or commitment progressed.

waiting_on_me means the other party requires something from the user. waiting_on_them means the user acted and the next move sits elsewhere. placeholder_commitment captures replies that defer action without resolving it. changed means something material shifted. resolved means the loop actually closed. in_orbit means the conversation is worth remembering, but not worth interrupting the user about yet.

The labels are less important than the distinction underneath them. A system should not confuse activity with movement.

Three observations changed the product

Placeholder commitments are almost invisible to recency.

“Let me check with finance and get back to you” looks healthy to a recency-based system. A reply arrived. The thread is active. But the decision has not advanced; a new obligation has simply been created.

Waiting-on-me accumulates quietly.

Once an email is opened, the inbox often stops telling you that another person is still waiting. Newer messages arrive. The thread falls down the list. Nothing technically breaks. The obligation simply loses visual presence.

Busy sales threads can still be stalled.

A deal can contain multiple polite replies, scheduling notes, forwarded documents, and “circling back” messages without moving closer to a decision. Activity can create the feeling of momentum while the commercial state stays unchanged.

This is why Sidekick Log moved away from treating a message as the unit of work. The more useful unit was the unfinished state carried by the conversation.

Why this matters more as agents get better

AI makes the activity problem easier to hide.

An agent can summarize a thread beautifully. It can draft a persuasive reply. It can identify sentiment, extract a deadline, and generate a next step. None of that guarantees it understands whether the conversation actually progressed.

If the state model is wrong, better generation can make the mistake more confident. An agent can push when patience is appropriate, treat a placeholder as resolution, overlook a commitment that is still waiting on the user, or repeatedly summarize a thread whose real problem is that nothing moved.

Before software acts on work communication, it should know what state the work is in.

The harder problem turned out to be judgment

Conversation state solved only part of the problem.

Once a system can remember unfinished work, it still has to decide what deserves attention. Not every waiting thread is important. Not every changed thread is consequential. Not every dormant relationship should be revived.

That pushed the current Sidekick Log experiment one level higher: forgotten obligations, latent opportunities, and eventually patterns across weak signals the user did not know to search for.

The goal is not to produce more AI output. It is to make fewer, better interruptions.

Limits

This note describes an internal product framework, not an independently validated scientific result. The evaluation data comes from Sidekick Log’s proprietary classifier and beta inbox analysis. The state categories are useful working abstractions, not a claim that all professional communication can be reduced to six labels.

The most important open question is behavioral: whether surfacing these states repeatedly causes people to notice something consequential earlier than they would have otherwise—and whether acting on that signal produces a better outcome.

Where the research goes next

The next question is no longer simply “whose move is it?”

It is: what is worth interrupting you for before you know to look for it?

Suggested citation: Nguyen, Hien. “Message Activity ≠ Decision Progress: A Conversation-State Framework for AI-Assisted Work Communication.” Sidekick Log Research Note #1, Screate Labs, 2026.