Stories A told story · drafted 2026-09-30
The Job Before the Name
ONE is a plugin a personal agent platform can pick, call and complete a job through — and every pick, call and completion is a mark or a warn on a route ONE can read.
The seven beats
- World
- Groups
- Cast
- Actors
- Knock
- signal
- Want
- Things
- Way
- Paths
- Turn
- Events
- Lesson
- Learning — open until someone has learned it
At ten past four on a Tuesday, a man in a parked van asks his phone to get a permit fixed.
He does not say who should do it. He does not know who does it. He says what he wants in the words he would use with a cousin.
Behind the glass, a picker that is not a person reads the sentence. It has a shelf of small tools, each with a paragraph of description, and no time to think about any of them. It takes one.
Nobody is told why. The picker does not explain itself. A tool chosen a thousand times and a tool passed over a thousand times look the same from the inside. Quiet.
The group has spent months building doors. One for asking. One for marking a thing that worked. One for warning against a thing that did not. One for being paid. Every door opens.
None of them is on the shelf.
The want is small, and it is hard.
To be chosen for the job before the man knows the name. To finish it while he is still in the van.
Three things stand in the way. The shelf belongs to someone else. The description is the only argument the group is allowed to make. And the choice leaves nothing behind, so a permit that gets filed and a permit that does not come back looking the same.
The group has one habit, and it is the only one that travels.
A thing arrives, so it is a signal. A signal ends in a mark or a warning, so nothing ends quietly. The route that carried the work gets stronger. The route that carried it nowhere gets weaker. A route nobody takes is not punished. It fades.
Inside the house this is old. Outside, on someone else's shelf, it has never been tried.
The first call is not the turn. A call is only a call.
The turn is the first result that comes back with its reason attached. The words in the description that got the tool picked. The step where the job stopped. Until then the group was guessing at a shelf. After, it is reading one.
It is not a victory. The permit may still not be filed. But a route now has a weight, and a weight can be followed.
The man is still in the van. Somebody is already working.
Where the metaphor stops being true
The telling is looser than the code in six places.
The picker is a claim, not a reading. The story says the platform chooses among tools and that a choice can be marked. Both come from a host's account of the platform (see sources:), not from its documentation. ONE sees only the calls that arrive. What was passed over is invisible unless ONE fires probes of its own, or the platform gives telemetry. VERIFY which.
The doors. world:route, human:notify, human:resolve, checkout:create and thread:append are receivers (packages/sdk/src/receivers.ts). signal and ask are the two doors that reach them. That is what "every door opens" means, and it means only that.
The shelf. Nothing puts ONE on it. packages/mcp/src/serve.ts:109 connects a stdio transport, and a platform plugin needs a remote one. There is no manifest under one.ie/web/public/.well-known. Neither was found in the tree on 2026-09-30.
The weight. A mark increments path.strength on a path that exists. No path runs from an intent to a plugin call today. VERIFY: whether it is a new thing-type or a tag on an existing route — the answer is almost never a new entity (text/taxonomy.md).
The money. text/100.md card 10 holds the checkout leg, as ACP, and reads red: its test did not exist when written. VERIFY the current state before saying money moves.
The login. The story leaves it out. The platform lets a person sign in with an account they already have. ONE's key is a passkey and a paper phrase, and no bridge is built. That is a decision for Tony, not a step.
Dead names appear only in their plain sense. Group is used for the container, never space or workspace.
The family this story generates
None of these exist yet. Create one when the reader needs it, not before.
| File | Technology | What it holds |
|---|---|---|
text/dots.md |
the story | this file. At PROMISE it becomes the promise and keeps beats: and story_shape: (template-story.md § The promise's telling) |
text/dots-plan.md |
plan | the adapter, the remote transport, the manifest, the probe that fires as the platform would |
text/dots-todo.md |
cycles | rows tagged dots, copied from template-todo.md |
one.ie/web/tests/unit/dots/ |
vitest | one assert per row that RUNS a call and reads the mark back, with the property removed to see it go red |
Sentences that would be false if shipped
- "ONE is available in ChatGPT." Nothing is listed, and the transport cannot be reached from a platform.
- "ONE is chosen for a given share of requests." Nothing counts a pick, and passed-over calls are unseen.
- "Sign in with a platform account signs a person into ONE." No bridge exists between OAuth and the passkey key.
- "The platform tells ONE why it was picked." Unverified. Only the calls that arrive are visible.
- "A person can pay ONE inside the chat." The checkout leg is red as written in
text/100.mdcard 10. - "About 1.2 billion people can reach ONE." That is the host's figure for the platform's weekly users. It is not ONE's reach.
- "Every call closes with a mark or a warn." True inside ONE. Unproven across a platform boundary.
The story shape
The fourteen parts, the chain they walk and the three rules every lifecycle obeys are defined once in text/template-story.md § The story shape. The frontmatter above fills them. It restates none of them.
Where this sits
text/100.md card 10 ("Sell where the buyer is", rows 74–76) is the money leg and comes first: a feed a machine can read, then ACP, then naming the agent that asks. This story is the leg before it — being picked at all — and it reuses card 10 rather than repeating it.
The order that follows from the SWOT of 2026-09-30 is one thing: a thin adapter over signal and ask, a remote transport for it, and a probe that marks what it reads. The story names no more than that.
Connected to
Every link here was checked against the repo when the page was built. 6 names the story uses could not be found and are shown without a link.
People
- Tony — settles the promise
- the stranger who asked
Agents
Each opens a chat with that agent.
Skills
Each opens the skill's page.
- receiver
- mcp
- sdk
- sell
- planning
Paths
The flows this story walks — trigger → step → step.
- trigger: a job arrives from the platform → skill: read the job, world:route → agent: do the work → condition: completed? → tool: mark on the route, or warn
- trigger: the job needs money → sell: checkout:create (suspends) → human: consent, human:notify then human:resolve → tool: mark
- trigger: a synthetic probe on a timer → tool: signal the adapter as the platform would → condition: was ONE picked? → tool: mark or warn the route the probe read
Tools
Receivers and scripts it signals.
- signal, ask — the two doors that already reach every receiver
- world:route, human:notify, human:resolve, checkout:create, thread:append — verified in packages/sdk/src/receivers.ts
- packages/mcp — stdio only today (serve.ts:109 StdioServerTransport); VERIFY: a platform plugin needs a remote transport, and none exists
- api.one.ie — the HTTP gateway; VERIFY: whether it can carry the plugin's calls unchanged
- VERIFY: the platform's login handoff. ONE's key is passkey PRF plus BIP39, not OAuth (one-ie/CLAUDE.md); nothing bridges the two
Promises
What it holds; a told promise opens its own story.
- VERIFY: none made. The first is written at PROMISE, from the first row that runs a call through an adapter.
Events
Every event is a signal; each names the path it marks or warns.
- VERIFY: no receiver names a platform pick. Ask first whether endpoint:register or a workflow already does it (skill: receiver). · from the adapter, on every call it receives intent → plugin call — strengthened by mark when the call completes, weakened by warn when it does not tags: dots, pick
- world:route · from the adapter the job → the actor who can do it tags: dots
- checkout:create · from a sell step the job → a paid completion tags: dots, money-path
Transactions
- credits or x402 at the call — VERIFY
- checkout:create for a purchase — exists
- Sell in ChatGPT via ACP — text/100.md card 10, rows 74–76, red as written
Analytics
- calls arrived per intent — countable from what ONE receives
- completed over arrived — countable from marks and warns
- picked over passed-over — VERIFY: ONE sees only the calls that arrive; the passed-over half needs probes ONE fires itself, or telemetry the platform may not give
- read at /u/one/in, on the thread the meeting opens