Skip to content
Authoring Stories
AutoXXS (320px)XS (375px)SM (640px)MD (768px)LG (1024px)XL (1280px)XXL (1536px)
SketchMaterialiOSTamagui
DataInjectionKeyPatternsServiceTransactionProcessResearchProductQualityPerformanceSpecDomainFunctionTechnologyArchitectureConfigMiddlewareDataDatabaseDrizzleMigrationModelop-sqliteSchemaSQLState ManagementDraftKeystoneMergePatchPatchesPersistenceReactiveRedoStoreUndoTestingDeviceFactoryIsolationTypeScriptZodTopicsCommunicationBidsNVCDesignDesign ImplicationsEducationPedagogyFoundationsPsychologyAttachmentFloodingRelatingAuthentic RelatingUIEditorReact Native

Authoring Stories

Fragment reference Authoring Stories
tags
guidestory

The mental model

A story is a narrative walkthrough β€” a short, readable account of how a specific person accomplishes a goal using the system. It answers: β€œWhat does this experience feel like from the user’s perspective?”

Stories are not user stories in the Agile β€œAs a X, I want Y, so that Z” sense β€” though they may start that way. They are richer: a paragraph or two of narrative that connects a role to one or more features, describing the journey in human terms.

Why stories exist

Features describe capabilities. Flows describe sequences. But neither captures the holistic experience β€” the motivation, the context, the emotional arc of using the system. Stories fill this gap.

They serve three audiences:

  1. Designers β€” understand the user’s mindset and context
  2. Developers β€” see the big picture beyond individual features
  3. Stakeholders β€” validate that the system serves real needs in plain language

How stories connect the spec

A story explicitly links three concepts:

  • role β€” the actor experiencing the journey (via the role attribute)
  • features β€” the capabilities being used (via the features attribute)
  • flows β€” implicitly referenced by describing the same sequences in narrative form
{% story id="save-bookmark" role="user" features="feature/add-bookmark feature/tag-bookmark" %}

The compiler generates cross-reference links from the story to its related features and the role definition.

When to create a story

Create a story when:

  • A user journey spans multiple features and you need to communicate how they fit together
  • Stakeholders need to validate the experience without reading technical specs
  • The interaction has emotional or contextual nuance that flows cannot capture
  • You want to test whether your features actually compose into a coherent experience

Do not create a story for every feature. Stories are for multi-step journeys where the connections between features matter as much as the features themselves.

Writing good narrative

Write stories in present tense, third person (or first person from the role’s perspective). Keep the language concrete and specific:

Good: β€œShe pastes the URL into the sidebar. The title auto-fills from the page metadata. She adds two tags from her recent history and confirms.”

Weak: β€œThe user can save bookmarks with tags.”

Include sensory details that reveal design assumptions: where does this happen on screen, what feedback does the system give, how long does it take?

Scope and length

A story should be 3-8 sentences of narrative prose. It is a scenario, not a novel. If your story exceeds a paragraph, consider whether you are actually writing a flow in prose form β€” if so, extract the flow and keep the story as a high-level summary.

Common mistakes

MistakeWhy it hurts
Too granularOne story per feature creates noise. Stories should span multiple features to show how they compose.
Duplicating flow contentIf you write step-by-step instructions with branching logic, you are writing a flow. Stories are narrative, not procedural.
Missing role attributionA story without a role attribute has no actor. Every narrative needs a protagonist.
Vague narrative”The user does things and is happy” communicates nothing. Be specific about actions and outcomes.
Feature list masquerading as storyListing features a user can access is not a narrative walkthrough. Tell the journey, not the inventory.
No features referencedA story that does not declare its features cannot be cross-referenced. The compiler needs these links.

Evolution

Stories evolve as the product vision clarifies. When features change significantly, review the stories that reference them. When new features are added that affect an existing journey, update the story to incorporate them. Stories may also span milestones β€” a journey imagined in milestone 1 might only become fully realizable in milestone 3.