Conventional Conversations

v0.1 — a specification

Say what kind of message you're sending, before you say it.

Text strips out tone — the same six words land calm from one reader and hostile from another. Conventional Conversations adds one small, explicit tag to the front of a message, so intent doesn't have to be guessed from mood.

require(decision):
stage the rollout? prod exposure's too high to ship as planned before Friday.
This isn't a suggestion. I need your call before we ship.

Examples

The same few words, different intents

Each message below is unambiguous the moment you read the tag — no tone to misjudge, nothing to reread at 11pm wondering if they're upset.

ask(advice):
should we ship Friday, or wait for QA?
Looking for your input. No pressure either way.
tell(decision):
shipping Friday. Rolled back the migration change.
Decision's made — letting you know, not asking.
require(feedback):
review this by EOD — need sign-off before I merge.
Not optional. I need your eyes on this today.
offer(clarification):
happy to walk through the diagram again if the arrows were confusing.
No judgment if this was unclear — I'll re-explain, just say the word.
ask(clarification):
what did you mean by "soon" — end of day, or end of week?
Genuinely uncertain what you meant, not being difficult.
tell(feeling):
this is the third time the deploy process has broken this month, and it's genuinely frustrating.
Naming it so it's not left for you to read between the lines.

Why

Tone doesn't survive the trip through text

Spoken conversation carries tone for free — pitch, pace, a raised eyebrow, a pause. Text carries none of it. So the reader supplies the missing tone themselves, usually out of their own emotional weather rather than yours. A message written calm at 2pm gets read anxious at 11pm. A one-line reply meant as efficient reads as curt.

Most fixes for this ask you to write more: soften with an exclamation point or emoji, pad the request with "just wondering," apologize before you've even asked. That adds noise without adding signal — the reader still has to infer intent, just from a longer message.

Conventional Conversations asks you to write less, but write it explicitly. State what kind of message this is before you say it. The tag carries the intent so the words don't have to perform it.

Specification

Grammar and rules

force(scope): message
  1. Every message MUST begin with a force, chosen from: ask, tell, require, offer.
  2. The force MAY be followed by a scope in parentheses naming the topic — advice, decision, feedback, info, clarification, plan, feeling, or a term specific to your context.
  3. feeling names the category, not the specific emotion — the emotion itself belongs in the message. Write tell(feeling): frustrated with this deploy process, not tell(frustrated): ...
  4. info vs feeling — the test isn't whether it's phrased as a question, it's whether the content can be produced on demand. A number, a time, a status can always be pulled up and handed over — that's info. A feeling can't be manufactured to order; it either already exists or it doesn't. "I need to know how you feel about this" is still feeling, not info, no matter how factually it's phrased.
  5. The message SHOULD add something the tag didn't already say. A scope names a category, not a script — require(plan): send me a plan by Monday is circular; require(plan): I need the approach by Monday adds the part the tag couldn't.
  6. There is no separate tag for retracting or revising a prior message — reuse the same tag as the thing being revised, and say so in the message. tell(decision): actually, holding until Monday — the migration needs another pass supersedes an earlier decision without needing new grammar.
  7. The tag MUST be followed by a colon and a space, then the message.
  8. ask signals the sender is soliciting a response and has no expectation beyond that.
  9. tell signals the sender is stating something as settled from their side — no response required. This covers declining too: "I can't take this on right now" is a decision, aimed at someone else's ask instead of your own plan, not a separate category.
  10. require signals the sender needs the named content produced or delivered. It is a call for content, never for agreement with it — require(advice) means "give me your recommendation," not "obey it."
  11. offer signals the sender is making themselves available. It carries no obligation for the recipient to accept.
  12. Scope terms SHOULD be drawn from a list shared across a team, so tags stay legible to everyone reading them. Teams MAY extend the list for domain-specific needs.
  13. A message with no natural scope MAY omit the parenthetical and use the bare force — ask: got a minute?
On "require." It reads sharper than the other three by design — that's the point of tagging urgency explicitly instead of leaving it to punctuation. Once a team knows the definition in rule 10, the word does its job without carrying blame.
On "require(feeling)." Every other scope names something that can be produced on request — a decision, a number, a plan. A feeling can't be compelled the same way, so require(feeling) reads best as an invitation to self-report, not a demand: "give me an honest read on how this landed" rather than "give me your feelings by Friday."

Reference

The full matrix

Every force paired with every scope should read naturally in plain speech. Here's all 28 — check yours against it before adding a new scope.

scope \ force ask tell require offer
advice What do you think I should do? I think you should do X. I need your recommendation. Happy to give my recommendation if it's useful.
decision Where are we landing on this? Went with X. I need your call by Friday. I can make the call.
feedback What do you think of the draft? I think the draft's clear — cut section two. Review the draft by end of day. I can review the draft if you want a second pair of eyes.
info What's the deploy time? Deploy's at 5pm. Send me the deploy time. I can send you the deploy time.
clarification What did you mean by that? What I meant was X. Walk me through this by tomorrow. Happy to walk through it again if that landed wrong.
plan How are we doing this? Here's how this is going: X. I need the approach by Monday. I can put together the approach.
feeling How are you feeling about this? I'm frustrated with this. I need an honest read on how this landed. I'm here if you want to talk through how this landed.

Scope list is illustrative, not exhaustive — see rule 12. require(feeling) is the one soft cell — see the note above.

FAQ

Questions

Isn't tagging every message awkward?

Not every message needs one. Reach for it when the cost of misread tone is highest: async threads, cross-timezone handoffs, anything you'd normally soften with three exclamation points. Face-to-face and low-stakes chat don't need it.

What if none of the seven scopes fit?

Use the bare force with no scope (rule 13), or extend the list for your context. The four forces are meant to stay closed and small; scopes are meant to grow with the team using them.

Isn't "require" harsh?

It's a defined tag, not a tone of voice — a required field on a form doesn't imply judgment about the person filling it in. Once a team knows require means "I need this content," not "obey me," the word does its job without the edge.

What if a message needs more than one tag?

It doesn't get one — pick the dominant force and let the rest live in the words. If a tagged message keeps growing long, that's usually the tell: it's covering two forces under one tag, not that it needs more explanation. Split it into two tagged messages instead, the same way a commit that wants "and" in its subject line is usually two commits.

None of this is meant to catch every subtlety of a message — it's a signal for general intent, not a full parse. Treat the tag as a heading, not a summary.

Where does this taxonomy come from?

Loosely, John Searle's speech act theory — his taxonomy of illocutionary acts, building on J.L. Austin's earlier work in How to Do Things with Words. Searle split utterances into assertives, directives, commissives, expressives, and declaratives. tell maps to assertive; ask and require both sit under directive, weak and strong ends of the same category; offer maps to commissive. feeling covers what Searle called expressive, as a scope rather than its own force. Declaratives — utterances that change reality just by being said, like "I now pronounce you..." — didn't have a place in everyday text, so there's no fifth force.