← Skills

story

story

Tell it once. When a person or an agent has a story and wants it made real — "here is my story", "I want to build", "tell your story", "what happened was", "once upon a time", or any sentence that names a world, people, a want and a turn — use this skill to shape it into the seven beats (World · Cast · Knock · Want · Way · Turn · Lesson), file it as a story on the board, and let the story-intake workflow mint the promise the AI signs. For the promise's terms and proof see promise-make; for building the deliverables see the factory; for the framework itself see text/story.md and text/dictionary.md § Once.

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.