Stories A promise's telling

Navigation

A stranger, a CYP, a shop and an agency walk one graph from the logo, at the depth their group's rows have earned, and never hit a dead end.

The seven beats

World
Three navigations that never met — a flat sidebar with three unlabelled groups, a dock of nineteen words, and a view registry of sixteen kinds that three different switchers each cut down. Fourteen console routes reachable by nobody. A Types screen with a beautiful TQL graph that no door opens.
Cast
A young person with a plan, a shop owner, an agency, an engineer — and the agents that meet each of them at the door. The operator, who wants a stranger and an agent to walk the same graph.
Knock
The operator asks for one thing: show me the navigation from the logo, simple to complex, and make it impossible to hit a dead end.
Want
The eye starts at the logo. One door for a stranger. One tab strip. One switcher. One dock. A panel that always knows whose story you are in. Every row a door. Every door a tag. Every tag a signal the world learns from.
Way
text/navigation.md — thirty deliverables, each composing a receiver or a registry that already ships: DOORS, VIEWS, world:route, event:track, pages:create, the page chat pack. Nothing new invented; the work is the wiring and the deletion of every second copy.
Turn
Card by card the walk closes — the zones label themselves and the types merge, the switcher becomes one, a view lands on a page as itself, a row opens as anything and goes to anyone, and Next under the logo starts being right.
Lesson
Navigation is not a menu. It is the six verbs, pointed at where people go — and a door that nobody opens fades on its own.

This story carries its beats but no written telling yet — text/navigation.md has no “The story” section.

Connected to

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

People

  • a young person with a plan (CYP)
  • a professional
  • a small business
  • an ecommerce store
  • an agency
  • a creator
  • a marketer
  • an engineer
  • a school · a university
  • an enterprise · a government
  • the operator

Agents

Each opens a chat with that agent.

Paths

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

  1. ui:dock / ui:views:switcher / ui:puck:block-view → event:track → outcome check → mark()/warn() on (tags → door)
  2. presence on a row set → human: message them → entity:reply | human:notify
  3. Send to… on a row → human:notify · agent:run · world:route · workflow:run

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.

  • event:track · from the page, via /p/one.js marks or warns the (tags → door) path, by whether the door reached the outcome tags: navigation
  • ui:puck:block-view · from PageFunnelScript.astro, when half a block is on screen a stage reached in the page's funnel; the block where people leave is warned tags: navigation
  • chat:send · from a starter card, as a tagged message marks the (tags → door) path the card came from when it leads somewhere tags: navigation
  • human:notify · from the operator, from the presence pill (dry run first) the route that recovers the person gets marked tags: navigation
  • checkout:create · from VERIFY: the document names the paid checkout, not who sends it mark(amount × 10) on the whole route tags: navigation
  • pages:review · from any key-holder, from the queue each verdict marks or warns the page; a warn files a task tags: navigation

Transactions

  • checkout:create paid → world:create-group, with mark(amount × 10) on the whole route
  • at PROMISE, bun pay/tools/promise-chain.ts mint navigation mints the Promise object on Sui (testnet); at /close, do-promise-settle.sh runs this file's proof: and, exit 0, settles kept on chain — promise:make and promise:settle are the RUNTIME rail and do neither (promise:settle refuses a shell proof like this one)
  • an agent's spend stops at its cap — VERIFY: the on-chain cap is not enforced while WORKER_CAP_ID_SUI is unset
  • access by reputation read from settled Promise objects on Sui — BLOCKED on an independent judge: today ONE holds both the maker and the oracle key, so that reputation would be self-certified (deliverable 30)

Analytics

  • block views per section become a funnel per page, per EHC case, per campaign, with the drop-off block named, read at /analytics/realtime
  • who is on which section now, read live on the row set
  • the (tags → door) path strength and resistance, read by nav:next from the snapshot
  • every generation carries the tag set it was made under, and the outcome marks or warns that combination's path