Stories A promise's telling
The oracle
Every settle that moves reputation or money is signed by a judge ONE cannot impersonate, and every route is a receipt.
The seven beats
- World
- A drawer with two keys in it, and a chain that cannot tell them apart. Every settle so far is true the way a diary is true.
- Cast
- The maker who builds and wants the answer to be yes. The judge who is asked. A machine that can only say what it saw. The operator, who wants a verdict a stranger can trust.
- Knock
- A page answered in under a second and did not contain the sentence. The runner said no. That was the correct answer, and nobody had to believe it.
- Want
- A verdict nobody can fake, the one who made the promise least of all. A route nobody has to take the router's word for.
- Way
- Run the thing, report what was seen, sign nothing else. Put the looker in a sealed machine; write the machine's hash into the terms; let the chain refuse every other hand. A wrong signature costs the signer.
- Turn
- A key minted inside a sealed machine, never leaves it, dies with it. Nothing is defeated — the chain still cannot tell two keys apart and no longer needs to. The sentence 'the oracle signed it' starts to mean something.
- Lesson
- Open — a Lesson is learned by someone, and this one is not written yet.
This story carries its beats but no written telling yet — text/oracle.md has no “The story” section.
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
- tony
- every maker of a promise
- a stranger reading a reputation
Agents
Each opens a chat with that agent.
- oracle (card 2 — does not exist yet; actor-type "oracle" is declared at schema/sui.tql:41 and nothing instantiates it)
- security-auditor
- test-engineer
- trailkeeper
- release-manager
Skills
Each opens the skill's page.
- oracle
- promise-make
- promise-settle
Paths
The flows this story walks — trigger → step → step.
- promise:make tagged promise → proof.sh --attested → exit 0 | 1 | 3 → do-promise-settle.sh (kept | broken) | human: person:tony (could not look)
- any tagged signal → world:route from RAM → signed route receipt → mark()/warn() on (tag → receiver) by outcome
- a kept settle re-run red → warn on the oracle's path → human: person:tony when toxic
Tools
Receivers and scripts it signals.
- proof.sh
- do-promise-settle.sh
- do-promise-lint.sh
- oracle-audit.sh
- promise-chain.ts
- promise:settle
- world:route
- agent:run
- human:notify
- human:resolve
- mark
- warn
- VERIFY: the on-chain attestation verifier — Sui Nautilus is the candidate; its status is unchecked
Promises
What it holds; a told promise opens its own story.
- oracle
- promise-evidence
- navigation (card 30 waits on this file's card 15)
Events
Every event is a signal; each names the path it marks or warns.
- promise:settle · from the oracle actor — never the maker promise:<slug> → proof — mark on kept, warn on broken, nothing on could-not-look tags: promise, settlement
- world:announce · from the resolver, after every settle the stakers on those tags receive it in their inbox Space tags: promise, settlement
- world:route · from any actor with a tagged signal tag → receiver, strength minus resistance, read from RAM; the receipt is signed tags: oracle, route
- agent:run · from any caller the receipt names persona.model; a twin pinned to a nonexistent id fails tags: oracle, attested
- warn · from whoever shows a signed verdict was wrong — oracle-audit.sh, or a re-run proof the oracle's own path — a judge is an actor and its reputation moves too tags: oracle
- human:notify · from do-promise-settle.sh on exit 3, or the audit on a toxic oracle the person's answer resumes the run through human:resolve tags: oracle
Transactions
- none in wave 1
- a settle fee per verdict — designed here, not scheduled; VERIFY: rate and who pays
- at PROMISE, bun pay/tools/promise-chain.ts mint oracle mints the Promise object on Sui testnet with --self-oracle, because no sealed key exists — and the lint prints SELF-JUDGED on chain for this very promise until card 8 is green
Analytics
- settles by judge kind (exit-code · oracle · person · maker), read from the promises rows — VERIFY: no page counts this today
- oracle-audit.sh — independent vs self-signed settles feeding reputation
- route receipts: delivered vs matched, per tag, read from the snapshot
- do-promise-lint.sh --evidence-report — 1,047 presence-only rows at 2026-09-25, and the ratchet that keeps it falling