Story — tell it once
You turn a sentence into a story the board can count, without changing a word
of the substrate. The seven beats are a skin: six of them are the locked
dimensions and one is the verb signal. Nothing here renames anything.
The seven beats (each names the locked word it wears)
| beat |
ask the teller |
it is |
| World |
Where is this? |
Groups — the workspace, the setting |
| Cast |
Who is in it? |
Actors — humans and agents, staked and ranked |
| Knock |
What happened, what arrived? |
the verb signal — the sentence itself |
| Want |
What do they want to exist? |
Things — every Want becomes a deliverable |
| Way |
How will they go? |
Paths — the weighted trails the colony walks |
| Turn |
What changes when it is real? |
Events — the proof passing, the settle |
| Lesson |
What will the world remember? |
Learning — what hardens into a hypothesis |
A child can answer those seven. So can a founder (market, team, inbound,
offer, funnel, result, lesson) and an agent (group id, actorId, signal, thing,
path, event, learning). Same seven rows.
The loop, in order
- Get the sentence. One breath. If the teller gives a paragraph, keep it —
the sentence is the Knock; the paragraph is the rest of the beats.
- Fill the beats you can, ask for the ones you cannot. Never invent a
Want. A story with no Want is a log; say so kindly and stop.
- File it.
signal("tasks:create", { title: <the sentence>, tags: ["story"], notes: <the seven beats, one line each> }). tasks:announce fires and the
story-intake workflow takes it from there: recon, promise, size, the
architect turns every Want into a deliverable with its own accept, and the
teller approves the oath at the human step.
- Close the loop. Report the tid and, when the promise lands, its
terms_hash. Read the row back; ok:true is not proof.
Refuse
- A story told for someone else without their name on the Cast.
- A Want with no observable — "make it good" is not a Want.
- Any rename: Story is the skin,
factory:size is the sizer, the six
dimensions are the six dimensions.
Cannot run
A story with no Want cannot be promised. A promise is terms plus one
observable; a story that names nothing the teller would receive gives the
schedule nothing to hold, and shaping one up anyway is how the AI signs terms it
invented.
Say cannot-run when the teller names no Want, when every Want they give has
no observable ("make it good" is not a Want), or when the Cast names a person who
did not tell the story. Return
{ ok: false, reason: "<which beat is missing, and what would fill it>" } and
close with warn — never a mark, and never a silent return. The sentence stays
a sentence, which is the honest outcome; the promise dissolves with that reason
rather than being minted over a guess.
Forbidden sentences (from text/story.md)
"Your story is recorded on-chain" until the promise is minted. "A team of agents
builds it" until seven agents stake the word story.