Skip to article
← The Ideaflow manifesto · The pieces
DRAFT · Not built · Open for decision

A Commitment Layer

Who promised what to whom, by when, and whether it happened.

By Jacob Cole · October 11, 2026 · Working draft

This is a draft

Nothing on this page exists yet. It is a design for one possible component of a more conscious internet, written down so it can be argued with. The open questions at the bottom are real and undecided.

A commitment is a shared object

We make commitments everywhere: an RSVP, an “I’ll intro you” in a group chat, a note to ourselves that says “I’m going to…”, a task we claimed on an issue tracker, an ask we said yes to. Right now each of those lives in a different app, and most of them live in nobody’s memory but ours.

The idea is simple. A commitment made anywhere becomes a first-class shared object that records:

  1. Who promised, and to whom. One of those can be yourself.
  2. What was promised, in the words it was promised in.
  3. By when, if a time was given or implied.
  4. The source: a link back to the message, note, RSVP, or task where it was made.
  5. Status: open, done, released, or renegotiated.

Both sides see the same object. If I promised you an intro, you see it in what you’re owed and I see it in what I owe, with the same source link and the same status. There is no separate copy that drifts.

Where commitments come from

Agents capture them with no extra step. You keep writing and talking the way you already do, and the commitment appears.

In OpenChat: “I’ll intro you to Sam this week.” → open, owed to you, due in a week, linked to the message.

In a note: “I’m going to send the deck to the investors on Friday.” → open, owed to yourself, due Friday, linked to the note.

On an event page: RSVP “going” → open, owed to the host, due at the event, linked to the RSVP.

On World Issue Tracker: you claim a task → open, owed to the issue, linked to the task.

On Unlinked: you say yes to someone’s ask → open, owed to them, linked to the ask.

Events feed it in both directions. An RSVP is a commitment to show up. What you say at the event, and what you promise there, becomes the next set.

One view: what I owe, what I’m owed

That’s the whole interface, or most of it. Two lists, sorted by when. Each item shows who, what, the due time, and a link to where it was said. Tap it to mark done, release it, or change the terms.

The same objects show up inside the apps where they were made: next to the message in OpenChat, on the person’s page in Unlinked, in the note in Vision, on the event page. Whether there is also a standalone view is one of the open questions below.

Agents close the loop

A commitment that nobody looks at is a to-do list. The point of having agents is that the loop gets closed. Your agent can:

  1. Nudge. “You told Sam you’d intro them this week. It’s Thursday.”
  2. Draft. “Here’s the intro message. Send it?”
  3. Do. For things the agent can do itself, with your standing permission, it does them and marks the commitment done, with the source of what it did.

The other side’s agent sees the same object, so it can answer “did Jacob ever send that intro?” without asking Jacob.

Letting go gracefully

Most broken promises aren’t malice; they’re things that quietly became impossible and nobody said so. So a commitment can be released, by either side, with a handoff: a short note, and optionally a suggestion of who else could do it. It can also be renegotiated: new date, new scope, same object, with the history kept.

Release is a normal outcome, not a failure state. The record shows that you said so, and when.

Asks become commitments, and commitments fulfill asks

An ask is a commitment waiting for someone. When you say yes to an ask, a commitment is created and linked to it. When the commitment is marked done, the ask is fulfilled. The two are halves of one thing: what someone needs, and who said they’d help.

This is how the asks and offers in piece 21 stop being a matching exercise and start being a record of what actually happened.

Follow-through as a signal, private by default

Over time the record says something true about a person: how often they do what they said, how they handle it when they can’t. That is a reputation signal, and it is the honest kind, because it comes from commitments both sides agreed to and can see.

It is private by default. You see your own follow-through. Whether you ever show it to anyone, and to whom, is your choice. It should never be computed about someone who didn’t opt in, and it should decay, so an old lapse doesn’t follow you forever. This is one input to the open reputation aside on the manifesto, not a public score.

How it would be built

Commitment nodes in Noos, the graph the Ideaflow apps share, with edges to the two people, the source object, and the ask or event it relates to. Status and history live on the node. Each app surfaces the same nodes in its own way:

Where a commitment would appear
SurfaceWhat you seeWhat you can do
Thoughtstream Vision“I’m going to…” lines recognized in your notes, with the commitment attached to the line.Confirm, edit the terms, mark done, release.
OpenChatPromises recognized in messages, shown next to the message for both people.Confirm, let your agent draft the follow-through, mark done.
UnlinkedOn a person’s page: what you owe them and what they owe you. Your own follow-through, visible only to you.Say yes to an ask (creates a commitment), release with a handoff.
Events navigatorRSVPs as commitments; promises made at the event, linked to it.Change an RSVP, capture what you promised there.
World Issue TrackerA claimed task is a commitment to the issue.Release it back to the issue with a note.

Nothing here needs a new database. It needs one node type, the agents that already read these surfaces, and a consistent way to show status.

Open questions

These are undecided. The page will change when they are.

  1. Standalone view, or in-app only? Is “what I owe / what I’m owed” its own place, or does it only appear inside Vision, OpenChat, Unlinked and the events navigator? A standalone view is simpler to explain and easier to ignore. In-app only keeps it close to the source and makes it harder to see the whole picture.
  2. Auto-detect, or confirm? Should an agent create a commitment the moment it recognizes “I’ll intro you”, or propose it and wait for a tap? Auto-detect is the no-extra-step promise. Confirm avoids a commitment nobody meant to make, and keeps the record trustworthy enough to be a reputation signal.
  3. What counts as a commitment? “Let’s get coffee sometime” is not one. The threshold needs a rule people can predict, and the ability to say “that wasn’t a promise” without friction.
  4. Who can see what. Both parties see the object. Does a third person who was in the group chat? Does the host see every guest’s promises to each other? Default to the two parties only, and decide the rest later.