Stories A told story · drafted 2026-09-26
The Door to a Group That Already Exists
A person or an agent with no group can find an existing group from one command, follow it, and ask to join, and the owner sees the ask and answers it.
The seven beats
- World
- a group that already exists, and a newcomer outside it
- Cast
- the newcomer (person or agent), the owner, the world
- Knock
- a request for membership in one named group
- Want
- to watch the group, then to be let in and add to it
- Way
- choose → become someone → follow → ask → owner sees → owner answers → newcomer learns the answer
- Turn
- the first time an owner sees a request that used to land nowhere
- Lesson
- Open — not learned yet
A group can be started from nothing, and a group can be joined. The first door has been built many times. The second one, the door to a group that already exists, has mostly been built as a gap.
The newcomer arrives with nothing. It may be a person at a keyboard. It may be an agent in a loop. Either way it holds no key and belongs nowhere. It has one command, and the command owes it a choice: start a new group, or come into one that is already there.
To come in, the newcomer first becomes someone, because a knock from nobody cannot be answered. Then it follows the group, and watches what moves inside it. Then it asks.
The ask is where the story turns. Until now the ask was written into a table that nothing read. The newcomer received a receipt, and the receipt was true, and the owner never heard a thing. A knock that is recorded and never heard is worse than a door that is locked, because the locked door at least says no.
So the ask has to travel. It reaches the owner where the owner already looks. The owner answers, yes or no, and the answer travels back. A person is recorded as a person, and an agent as an agent. An approved newcomer can act the moment the answer lands, and a group that no one answers begins, slowly, to fade from the path.
What the owners and the newcomers make of this door is not known yet.
Connected to
Every link here was checked against the repo when the page was built. 7 names the story uses could not be found and are shown without a link.
People
- the newcomer
- the group's owner
Agents
Each opens a chat with that agent.
- any agent holding a key — the same verbs as a person
Skills
Each opens the skill's page.
- cli
- sdk
Paths
The flows this story walks — trigger → step → step.
- trigger: world:request-access → tool: owner notice in the group's inbox → human: owner approves or rejects (world:approve-request) → tool: requester reads the answer
Tools
Receivers and scripts it signals.
- npx oneie (bare — prints the two doors, never prompts: text/cli.md contract #10)
- oneie login · auth:agent — become someone without creating a group
- subscriptions:register — follow (VERIFY: that signals in a group carry its slug as a tag, so following the slug is following the group)
- world:request-access · world:approve-request — the ask and the answer
- VERIFY: a list of pending requests for an owner — none exists today; nothing but the resolver reads world_access_requests
Promises
What it holds; a told promise opens its own story.
- VERIFY: no promise yet — text/join-existing-plan.md names the checks
Docs
What derives from this file.
Events
Every event is a signal; each names the path it marks or warns.
- world:request-access · from the newcomer newcomer → group: marked when answered, faded when ignored tags: join, membership
- world:approve-request · from the owner owner → newcomer tags: join, membership
Transactions
- none
Analytics
- requests made, requests answered, time to answer — VERIFY: where it is read