Skip to article
← The Ideaflow manifesto · The pieces
DRAFT · World Issue Tracker, generalized · Not built

A Commitment Layer

Who promised what to whom, by when, and whether it happened. World Issue Tracker, generalized to promises and time.

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. It is positioned as a generalization of World Issue Tracker: commitments and asks are issues, many of them time-bounded, and the first concrete proposal is a calendar view inside World Issue Tracker. The open questions at the bottom are real and undecided.

This is World Issue Tracker, generalized

World Issue Tracker already has most of what a commitment needs. An issue has an author, a person responsible for it, people who follow it, boards it sits on, a status, and the original text it was written in. What it does not have is a counterparty, the person the promise is made to, which is different from the person who does the work; a due time; and the outcomes released and renegotiated next to open and done. Add those three things and an issue is a commitment. An ask is an issue nobody has claimed yet.

Most commitments carry a date, and today an issue in World Issue Tracker has no date field at all. So the first concrete proposal is small: give issues a due time, and give World Issue Tracker a calendar view of its time-bounded items. RSVPs, promised intros, claimed tasks with a date, asks with a deadline, all on one calendar, with the same two filters as everything else here: what I owe, and what I’m owed.

Gestalts, the lightweight capture front for World Issue Tracker, is where most of these would be written down in the first place: “I’ll intro Sam this week” is a gestalt on your board, and handing it over makes the counterparty explicit.

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 22 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

A commitment is a World Issue Tracker issue, and World Issue Tracker already stores its issues natively in Noos, the graph the Ideaflow apps share. So the node already exists. What gets added is the counterparty, the due time, the two extra outcomes, and edges to the source object and the ask or event it relates to. Status and history live on the issue. Each app surfaces the same issues 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 TrackerEvery commitment is an issue here. The calendar view shows the time-bounded ones; a claimed task is a commitment to the issue.Set a due time, mark done, release it back to the issue with a note.
GestaltsThe line you captured, on your board, with the person you handed it to.Capture in one line, hand it over, which names the counterparty, and close it.

Nothing here needs a new database or a new node type. It needs three fields on an issue, a calendar view, 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. Is a calendar view enough? A calendar answers “what is due when.” It does not by itself answer “what do I owe this person,” which is a lens over the same issues. Whether that lens lives in World Issue Tracker, in Gestalts, or in both is open.
  5. 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.