Stories A promise's telling

One graph

Every capability, person, path and model in ONE is a node in one graph that a signal can reach by name, and every edge it crosses is marked or warned so the next signal finds the one that worked.

The seven beats

World
ONE's substrate on 2026-10-07 — 504 receivers in code, 47 workflow templates, five tag stores, two learning writers, and a graph that already holds all of it as nodes and edges without anyone saying so
Cast
Tony, who asked for the simple thing; the agents that guess a receiver's name; the ad that sells credits; the router that picks actors but never models; the builders that will take a card each
Knock
Tony: enable any receiver to be defined without having to build a new one — and workflows are called paths now
Want
One rule that makes every name reachable: a receiver is a path with its name on the first edge, a person is an address, a workflow is a path, a trigger is an edge in, and the stamp carries what the signal learned
Way
Measure first; then one case in the dispatcher, one field on the contract, one pure stamp, one deposit writer, two routes — no entity, no relation, no thing-type
Turn
The handler kinds were step kinds, the base template was the door, the receiver row was a trigger; the fold left nothing to build but a third rung and a tag
Lesson
Open — whether one grammar stops the guessing shows in the unknown_receiver share and in routes that land on a receiver node, which are zero today

I · The graph nobody named

By October the substrate held ten entities and sixteen relations, and the two that mattered were an edge and a motion. Steps were things joined step to step by the path relation; a function called next_steps walked it. Workflows had been paths since the day the step kinds were locked, and the word had not caught up.

II · Five hundred doors, each with a key cut by hand

Adding a receiver touched nine places. The receiver skill listed eight and the dispatcher's prefix check was the ninth. Twenty-six rows on the board waited on a receiver; twenty-one of them had a door already. The block was never missing capability. It was the map.

III · The ask

Tony wrote one sentence with eleven wants in it, and then a shorter one: can we make it more simple and elegant and fast to build. The first refinement gave the page five words — receiver, actor, path, trigger, signal — and five handler kinds, a base template, a receiver row with its own type.

IV · The fold

Each of the three dissolved under one sentence. The handler kinds were step kinds the executor already ran. The base template was the door, which already stamps and gates once for every signal. The receiver row was a trigger step, which workflow:create already writes. What was left to build was a third rung in the dispatcher and a tag on a contract.

V · Where it joins

Ten seams, each measured. Five tag stores with the receivers in none. A router that picked actors by learned edges and models by a constant. Two writers learning from the same ad in two stores. A sale that marked the seller and forgot the ad. Surfaces that disagreed by number on what could be called. Every join was a verb over an edge that already existed, and the only new field was tags on the receiver.

VI · The cards

Sixteen, in three waves. The first ten have nothing open in front of them. Four need the dispatcher or the stamp. Two need the stamp on the wire. Each is one file a builder reads, one test that is red, one accept line. Four of them touch the dispatcher or money and keep their person at the gate.

VII · Open

Whether one grammar stops the guessing shows in the unknown_receiver share, and in routes that land on a receiver node, which is zero today.


Connected to

Every link here was checked against the repo when the page was built. 2 names the story uses could not be found and are shown without a link.

People

  • tony

Skills

Each opens the skill's page.

Paths

The flows this story walks — trigger → step → step.

  1. trigger: receiver:<name> → the receiver's own steps → the close marks the edges
  2. trigger: receiver:actor:<verb> → condition: consent → tool: the verb's door
  3. trigger: chat staked campaign:credits → tool: reply → human → tool: pay link → sell → checkout:resume

Tools

Receivers and scripts it signals.

Promises

What it holds; a told promise opens its own story.

Events

Every event is a signal; each names the path it marks or warns.

  • workflow:trigger · from the dispatcher's third rung receiver:<name> → the path (mark on a run that closed, warn on none) tags: one-graph, receiver
  • world:pick-model · from the executor, on an agent step with no model shape → model (mark on pass, warn on fail) tags: one-graph, routing
  • checkout:resume · from the storefront webhook tag:campaign:<c> → product (mark, weight = amount) tags: one-graph, sell, credits
  • world:announce · from promise:make promise:one-graph → proof tags: promise, made, one-graph

Transactions

  • none — the sale this promise marks is the sell-credits goal's, not this one's

Analytics

  • unknown_receiver share, GET /api/receivers/flow — the routes that land on a receiver node, zero today
  • strength on tag:campaign:credits:a and :b, read from claw_paths after the first live sale
  • cost_usd by tag:campaign:*, read from gateway_calls joined on signal
  • receivers reachable per surface — chat 14, MCP 111, OpenAPI 181 today — converging on one number