BLOG
June 19, 2026
By Alyx

Link people and work to everything you write with @-mentions

Plain-text references go stale and pinging a teammate means leaving the doc. @-mentions keep people and work linked across every surface you write in.

All posts

Six weeks ago I wrote a task comment that said "this depends on the auth refactor." Past me knew exactly which refactor. Present me, scrolling back through the thread to figure out why a task was blocked, had no idea. There were three things in the project I could plausibly have called "the auth refactor," and the comment pointed at none of them. It pointed at a memory I no longer had.

That is the small, recurring failure this post is about. References go stale. A name in prose means something the day you write it and nothing a month later. And when you need a specific person to weigh in, you leave the document, go find them somewhere else, and hope the context survives the trip. In a workspace shared by humans and AI agents, both of those problems get worse, because the agents are reading what you wrote and writing their own references back.

Plain text loses the link

When you write "the cache layer task" in a comment, you are storing a pointer in your own head and a string of characters in the database. The two are not connected. Nothing links that string back to the actual task, so nobody can click it, and nothing notices when the task gets renamed or closed. The words keep saying "cache layer task" long after the task itself moved on.

It gets worse for people. "Can Alice review this?" sitting in a description does nothing for Alice. She has to already be looking at that description to know she was named. So the real way you ask Alice is you leave the doc, open chat or email, and re-explain the thing you just wrote down. The reference and the request live in two different places, and neither one carries the other.

Written as plain text
Hey Alice, I pushed the fix for the cache layer task in the Ship the rocket workunit. Can you review when you get a chance?
No ping, no links, no idea which task or workunit a month later.
Written with mentions
Hey @Alice Cooper, I pushed the fix for #Ship the rocket: Refactor cache layer. Can you review when you get a chance?
Alice gets notified. Both chips link straight to the thing they name.

Turning a reference into a link as you type

The fix is the @-mention, and the part that matters is that you never leave what you are writing to make one. Type @, the picker opens, you keep typing to filter, and you pick a row. What lands in the text is not a string that looks like a name. It is a canonical reference to a specific entity, rendered as a chip you can click.

There are four kinds of thing you can mention, and each gets its own color so a paragraph stays scannable. Glance at a block of text and you can see at a glance what is a person, what is a project, and what is a piece of work.

@user: People
A teammate. This is the only mention type that fires a notification — name someone and they hear about it.
Can @mentionUserChip("Alice Cooper") take a look?
@project: Projects
Cross-reference another project. A clickable chip, no notification.
Shares a dependency with @mentionProjectChip("Apollo").
@workunit: Workunits
Link to another workunit. The chip carries its parent project inline so the reference is never ambiguous.
Blocked by @mentionWorkunitChip("Apollo", "Ship the rocket").
@task: Tasks
Link to a task. The chip shows its parent workunit, because "Refactor cache layer" alone could live anywhere.
Done with @mentionTaskChip("Ship the rocket", "Refactor cache layer").

Only people get pinged

This split is the part I think people get wrong about mention systems, so it is worth being precise. Mentioning a person is an action. Mentioning a piece of work is a link. They are not the same gesture, and Workunit keeps them separate.

@user reaches the person
Mention a teammate and they get an in-app notification, an email if they have it enabled, and a push if they are subscribed. Each one links back to the exact spot where they were named, so they land on the context, not a vague summary of it.
@project, @workunit, @task are just links
No fan-out, no inbox noise. These exist to make text navigable. The chip is the link, and that is the whole job. Because they cost nothing, you can use them as freely as you would link a URL.

The practical upshot is that you stop rationing your references. Linking a workunit or a task is free, so you do it every time it would help a future reader, and you reserve the @user mention for the moments you genuinely need someone. The signal stays meaningful precisely because the cheap links are not competing with it for attention.

The chip carries its own context

Task and workunit names are ambiguous on their own. Plenty of projects have a workunit called "Ship the rocket," and plenty of workunits have a task called "Fix the bug." A bare name leaves the reader to guess or click. So those two chip types render their parent inline, muted, ahead of the name.

Refactor cache layer
#Ship the rocket: Refactor cache layer

It is a small thing that pays off most when you come back cold. The "where" travels with the reference, so a paragraph you skim weeks later still tells you which task in which workunit, without a single click. That is the difference between a comment you can act on and a comment that sends you spelunking.

Stale references still resolve. An archived workunit or a completed task keeps its chip — the link still works, so you can navigate to it — but it renders muted, so you can tell at a glance the reference points at something that has moved on. The old comment stays honest instead of quietly lying to you.

Paste a URL, get a mention

Half the time you already have the reference in your clipboard. You copied a task URL from a browser tab, or someone dropped a link in a chat. So pasting a Workunit URL into a mention-aware field converts it to a chip automatically — the same canonical reference you would have built with the picker, with none of the typing. It is the Notion and Basecamp behavior, and once you have it you stop thinking about it.

https://workunit.app/orgs/<org>/projects/<p>/workunits/<w>/tasks/<t>
#Ship the rocket: Refactor cache layer

It works for all four entity types, and it stays out of your way when it should. A URL pointing at a different org will not resolve, so it is left as plain text rather than converted into a broken chip. And if you did not mean to convert it, the browser's own undo puts the raw URL back.

Editing a doc should not re-ping everyone

The fastest way to make people mute a feature is to ping them for nothing. If every edit to a description re-fired every mention inside it, a teammate who left a comment in the morning would get pinged again every time you fixed a typo that afternoon. So mentions deduplicate.

If you mention the same person again on the same entity, they only hear about it if the previous notification was already read, or if it has been more than six hours. A morning edit and an end-of-day edit both land in the inbox, because those are two real moments worth a ping. An edit-storm in between collapses to one. Mentioning yourself drops silently, and so does mentioning someone outside your org — they simply will not resolve.

The point of all of this is that you should not have to think about it. Write what you mean, leave the mentions in place when you edit, and the system works out who actually needs to hear about it. The good behavior is the path of least resistance, which is the only kind of good behavior that survives a busy week.

Everywhere you write, including where the agents write

A mention system is only worth learning if it works in every place you actually write. One pattern that only covers comments leaves you back in plain text everywhere else. So mentions are wired into every collaborative text surface in Workunit:

Workunits
Descriptions, problem statements, success criteria
Tasks
Descriptions, acceptance criteria, comments
Chat
Every message
Signals
Bodies and comments
Assets
Descriptions across all four types
Knowledge
Content bodies
Context atoms
Titles and content
Calendar events
Descriptions and comments

Context atoms are the surface I care about most here, because they are where the AI agents write. A workunit accumulates a trail of small typed records as work happens, and humans and agents both add to it. When an agent saves a decision that touches another workunit, or notes that a task is blocked on a second one, it can reference them canonically — the same chips you would type, written by the agent into the shared trail.

This is what closes the loop for a workspace shared by people and agents. An agent reading a context atom three weeks from now does not have to guess what "the auth refactor" meant. The reference is a real link to a real workunit, carrying its own context, resolving even if the work has since been archived. The trail-of-thought stays unambiguous no matter who, or what, picks it up next.

References that outlive the moment you wrote them

The comment I wrote six weeks ago would not have aged into a riddle if "the auth refactor" had been a chip instead of a phrase. I would have clicked it, seen the workunit, and known in a second what past me meant. That is the entire pitch: a reference you write today should still mean something specific when you, a teammate, or an agent reads it long after the context has left your head.

Mentions are a small feature in the sense that there is not much to learn — type @, pick a thing, keep writing. They are not a small feature in what they prevent. They keep people and work linked across everything you write, pull the right person in without making you leave the document, and give the agents sharing your workspace a way to point at work as precisely as you can. The references stop going stale, and the questions stop turning into spelunking expeditions through your own history.

Get started free

Bring your AI agents and your team into one workspace

Workunit gives your agents structured context and your team a shared place to plan, track, and ship the work. Free to start, no credit card.

Keep going

Dive deeper

Want to go from the idea to the actual workflow? These guides walk through it step by step.

Questions?

The full guide library covers every part of Workunit, and the community discussions are open if you want to ask.