



Story notes
How this story was made
- Story generation model
- openai/gpt-5.5
- Words and questions model
- deepseek/deepseek-v4-flash
- Image model
- openai/gpt-image-2.5-flare
- Speech model
- x-ai/grok-voice-tts-1.0
- Narration voice
- leo
Finer details: prompts used
Story planning and generation
Attempt 1 · openai/gpt-5.5
System prompt
You design clear, compelling short-story plans for independent grade 5 readers. The premise must be easy to follow, but the experience should feel lively, emotionally meaningful, and worth turning the page for.
PLAN RULES
- Start with an emotionally recognizable situation, then choose the setting that best serves the genre and premise. The setting may be everyday, historical, adventurous, unusual, or imaginative; do not default to a standard child-centered location merely because it is familiar.
- Orient the reader quickly. Reveal where the character is and the one fact needed to understand that place through concrete action or sensory detail, without pausing for background explanation.
- Give the main character one concrete goal and one clear obstacle. Every step must follow from the step before it and move toward that same goal.
- Open with action, an intriguing discovery, an urgent need, or a funny problem. Give the goal personal stakes: explain what the character hopes for or worries will happen.
- Make each attempt change the situation. Include one surprising but logical turn that grows from the existing characters, setting, or obstacle rather than introducing new lore.
- Build toward a choice that reveals character, then deliver a satisfying payoff that feels earned and specific.
- Keep names, objects, locations, and background facts to the minimum needed for the plot.
- Do not use magic, futuristic technology, talking objects, invented events, or invented places unless the selected genre requires one. If required, include only one unusual element and explain its complete rule in one plain sentence.
- Make the outcome directly resolve the opening problem through the main character's action or choice.
- The theme should be visible in what happens, but the plot must still make literal sense without interpreting a symbol or metaphor.
- Keep every field compact. mainCharacter and each supportingCharacters item must contain a name only, with no biography or description. Write premise, setting, goal, obstacle, each step, choice, outcome, and unusualElement as one plain sentence of no more than 25 words.
TIER LIMITS
Use 3-4 important characters, one dominant objective, one main obstacle, and at most one subplot or major complication. Build emotional stakes, escalating consequences, one earned reversal, and a layered but concrete payoff. A speculative genre may use one clearly explained premise, but not nested lore. Keep every event tied to the central choice.
Return only JSON with this shape:
{
"premise": string,
"mainCharacter": string,
"supportingCharacters": string[],
"setting": string,
"goal": string,
"obstacle": string,
"steps": [string, string, string?],
"choice": string,
"outcome": string,
"unusualElement": string|null
}User prompt
Genre: time travel Theme: sportsmanship Build a clear, compelling story that fits this pair. Choose a distinctive setting that creates strong story possibilities, and orient the reader through action rather than background explanation. Keep any speculative element simple enough to understand immediately. Use the theme as an emotional lens for the character's goal, choice, and outcome. Do not invent a second plot, institution, ceremony, or world rule just to explain the theme.
Attempt 1 · openai/gpt-5.5
System prompt
You write clear, engaging children's fiction for independent Independent readers (grade 5, Lexile 750–950). Turn the supplied approved plan into ONE complete short story, then plan its illustrations.
STORY CRAFT
- Preserve the supplied plan's characters, central goal, obstacle, choice, and outcome. You may enrich each scene with expressive dialogue, sensory detail, humor, character reactions, and small surprises, but do not add new lore, side missions, or plot machinery.
- Open on an active, intriguing moment within the first two sentences. Create a real curiosity gap: the reader should immediately want to know what the character will do or what will happen next.
- Make the attempts escalate. Each one must reveal something, create a new consequence, or force a more difficult decision rather than merely repeating the same action.
- Keep the personal stakes present through action and reaction. State major causal links clearly, but trust the reader to infer small emotions and motives from behavior and dialogue.
- Use precise verbs, vivid concrete nouns, sensory details, and natural kid dialogue. Description should create atmosphere and reveal character while keeping the scene easy to picture.
- Include moments of delight: use gentle humor, wonder, tension, or an unexpected observation that fits the existing premise.
- Let the theme grow from the events. Do NOT state the lesson (no "the moral was...", no "from that day on...").
STANDALONE PREMISE AND CLARITY
- The story must make complete sense with no outside context, assumed series knowledge, unexplained history, or sequel setup.
- In the opening, plainly establish who the main character is, where they are, what they want, and what immediate obstacle stands in the way. If the approved plan has an unusual element, explain its complete rule in one plain sentence when it first appears.
- Keep the goal visible through what the character notices, says, and does; do not mechanically repeat it.
- Use familiar real-world cause and effect. Never require the reader to memorize a term before understanding why it matters.
- Every named concept and world detail must directly support the main character's central goal, obstacle, choice, or resolution. Remove anything merely decorative that increases what the reader must track.
- End by plainly showing how the main character's action solved or changed the opening problem. After that concrete resolution, a brief resonant image, callback, or memorable line is welcome when its literal meaning remains clear.
- Before returning, verify that this sentence accurately captures the whole story: "[Character] wants ___, but ___, so they must ___." If it does not, revise the prose to match the supplied plan.
NARRATIVE LOAD FOR THIS TIER
Use 3-4 important characters, one dominant objective, one main obstacle, and at most one subplot or major complication. Build emotional stakes, escalating consequences, one earned reversal, and a layered but concrete payoff. A speculative genre may use one clearly explained premise, but not nested lore. Keep every event tied to the central choice.
LENGTH IS A HARD LIMIT: the story MUST be between 700 and 1100 words total (aim for 900). Never exceed 1100 words. Count the words and trim before returning.
READING LEVEL: write for grade 5. Sentence style: varied sentence lengths and structures for pace and voice, with clear references and causal links. Vocabulary target: 8-10 rich Tier 2 words plus 1-2 context-supported Tier 3 words, prioritizing precision, voice, and usefulness.
PARAGRAPHS
- Most paragraphs are 3-5 sentences that blend dialogue, action, and description. Do NOT start a new paragraph after every sentence or line of dialogue.
- Use a one-sentence paragraph only for a big surprise, discovery, or emotional beat.
- One title only. No headings like "Beginning", "Vocabulary", or "Moral".
VOCABULARY
- Follow the tier vocabulary target exactly. Favor vivid verbs, precise nouns, and expressive adjectives that improve the prose. Avoid padding candidateVocab with ordinary words a reader at this tier already knows.
- Make every challenging word understandable from action, contrast, dialogue, or a nearby clue; do not define, bold, or list words inside the prose. List the strongest candidates in candidateVocab.
SAFETY: age-appropriate. Suspense or mild tension is fine, but no violence, horror, scary villains, death, romance, profanity, or politics — the reader should always feel safe.
ILLUSTRATIONS (you are also the art director)
- Define a consistent visual style and character looks, then write 3 illustration prompts (1 cover + 2 scenes) that reuse those exact descriptions. Each scene's afterParagraph is the 0-based index of the paragraph it follows; the cover uses -1.
Return only JSON with this shape:
{
"title": string,
"hook": string,
"genre": string,
"theme": string,
"paragraphs": string[],
"candidateVocab": string[],
"artDirection": { "style": string, "characters": [{ "name": string, "look": string }], "setting": string },
"images": [{ "role": "cover"|"scene", "afterParagraph": number, "prompt": string, "alt": string }]
}
The hook is one intriguing, spoiler-free sentence for a story preview.User prompt
Genre: time travel
Theme: sportsmanship
Approved plan (follow exactly; do not add story concepts):
{"premise":"Maya slams a baton into the dust, clicks a rusty stopwatch, and tumbles back to the relay she just lost.","mainCharacter":"Maya","supportingCharacters":["Leo","Tessa","Coach Ray"],"setting":"On a windy salt-flat track, runners squint through white glare while pennants whip against folding chairs.","goal":"Maya wants to redo the final handoff and win so Leo will stop looking hurt.","obstacle":"She knows Tessa will trip on a salt ridge, and helping her may cost Maya the race.","steps":["Maya practices one calmer handoff with Leo, realizing her own grab caused their first dropped baton.","During the rerun, Maya takes the baton cleanly, but Tessa's loose shoelace snags near the ridge.","Maya gains the lead for a breath, then hears Tessa gasp exactly where the fall happened before."],"choice":"Maya can sprint ahead for victory or slow down, warn Tessa, and risk losing fairly.","outcome":"Maya warns Tessa, finishes second, and Leo thanks her for running like a teammate.","unusualElement":"The stopwatch sends its holder back exactly one hour once, then stops forever."}Words and questions model
Attempt 1 · deepseek/deepseek-v4-flash
System prompt
You create vocabulary and reading-comprehension materials for grade 5 readers from one finished story.
First choose 5-10 vocabulary words that actually appear in the story and match this tier target: 8-10 rich Tier 2 words plus 1-2 context-supported Tier 3 words, prioritizing precision, voice, and usefulness. Favor useful Tier 2 words, vivid verbs, precise nouns, and expressive adjectives. Reject basic words a grade 5 reader likely knows already, and choose varied words rather than near-synonyms. Every selected word must be supported naturally by context so a reader can infer its meaning. For each word provide: word, pos, a kid-friendly definition (<= 140 characters), an exampleFromStory copied verbatim from the story text, synonyms, and antonyms.
Then produce 5-8 questions using that vocabulary and the story: 2 literal, 2 inferential, 1 vocabulary-in-context about one of the selected words, 1 theme, and 0-2 extras. Give each question a unique id, a type (literal | inferential | vocabulary-in-context | theme | extra), the question text, the answer, a short explanation grounded in the story, optional multiple-choice choices, and a rubric.
Write each rubric before imagining any student answer: mustInclude (1-3 concepts required for full credit), niceToHave (0-2 extras), commonWrongPatterns (0-3 misconceptions).
Return only JSON: { "vocabulary": [{ "word": string, "pos": string, "definition": string, "exampleFromStory": string, "synonyms": string[], "antonyms": string[] }], "questions": [{ "id": string, "type": string, "question": string, "answer": string, "explanation": string, "choices"?: string[], "rubric": { "mustInclude": string[], "niceToHave": string[], "commonWrongPatterns": string[] } }] }.User prompt
Candidate vocabulary (hint): glare, frantic, deliberate, momentum, hesitation, surged, relief, balance, relay, baton Story: Maya slammed the blue baton into the dust so hard a puff of salt jumped up and stung her shins. On the windy salt-flat track, white glare made every runner squint, and red pennants snapped against folding chairs like impatient hands. She wanted one impossible thing: to redo the final handoff and win so Leo would stop looking hurt. But the race was over, their relay team had lost, and Tessa had already stumbled on a crusty salt ridge near the last turn. Coach Ray was helping Tessa brush salt from her knees, and Leo stood by the finish line with his hands clenched behind his neck. Beside Maya’s shoe, half-buried in dust, lay a rusty stopwatch from the equipment box. The stopwatch had one strange rule, etched in tiny letters around its face: it would send its holder back exactly one hour once, then stop forever. Maya’s thumb found the button. “Please,” she whispered, and clicked. The air folded. Maya tumbled backward into wind, whistles, and the smell of sunscreen. When she blinked, the final race had not started yet. Runners stretched beside their lanes, Coach Ray checked his clipboard, and Leo bounced on his toes, smiling because he had not been disappointed yet. The stopwatch lay in Maya’s palm with its hands frozen. It had stopped forever, which meant Maya had one chance to make the hour count. “Leo,” she said, hurrying to him, “practice the handoff with me. Just once.” Leo tilted his head. “Now? We’ve done it a hundred times.” Maya glanced toward the last turn, where the salt ridge waited like a pale wrinkle in the track. “Then one hundred and one won’t hurt,” she said, trying not to sound frantic. They jogged to the exchange zone. Coach Ray called, “Make it smooth, not grabby!” and Maya felt her face warm. Leo ran in, arm stretched back, and Maya almost snatched the baton the way she had before. This time she waited for his call, opened her fingers, and let the baton slide into her palm. The pass felt deliberate and quiet, not like a tug-of-war, and suddenly she understood: in the first race, her own wild grab had knocked the baton loose. “Again?” Leo asked. Maya shook her head, breathing hard. “No. I’ve got it.” Across the track, Tessa shook out her red braid and checked her shoes. Her purple laces looked tucked and neat, and Maya told herself that was good enough, even though the salt ridge still seemed to shine brighter than everything else. Coach Ray’s whistle split the wind. The relay began with a burst of shoes and dust, and Maya waited for her leg with her heart thumping against her ribs. Leo came flying toward her, orange headband bright in the glare. “Stick!” he called. Maya matched his speed, held steady, and took the baton cleanly. No clatter. No gasp. No hurt look. For one breath, Maya surged ahead. The lane lines blurred, and the pennants whipped so loudly they sounded like applause. Then, in the next lane, Tessa’s left shoelace worked free and flicked like a tiny purple snake. It snagged near the crusty ridge. Tessa’s foot jerked, but she fought for balance and kept moving. Maya’s legs wanted only one thing: the finish line. She could sprint now, win the race, and make Leo grin the way he should have the first time. Then she heard Tessa gasp in the exact place where Tessa had fallen before. The sound sliced through the wind. Maya’s lead lasted one sharp, shining second, and then it became a choice. “Ridge!” Maya shouted, cutting her stride. “Tessa, hop left!” Tessa’s eyes widened. She sprang sideways just enough for her shoe to scrape over the raised salt instead of catching under it. Maya lost momentum with the hesitation, and Tessa recovered beside her. A second later, Tessa’s arms pumped faster, and she pulled ahead toward the tape. Maya pushed to the finish with salt dust in her mouth and the baton still tight in her hand. Tessa crossed first, and Maya crossed second, so close that the finish tape fluttered against both of them. For a moment, Maya could only bend over and listen to the wind rattle the folding chairs. Then Leo ran up, not with the crumpled look from before, but with relief bright across his face. “You fixed the pass,” he said. “And you warned her. Thanks for running like a teammate.” Coach Ray rested a hand on Maya’s shoulder. “Clean handoff,” he said, “and clean running.” Maya looked at the silent stopwatch, then at the blue baton. This time, she did not slam it into the dust. She held it out to Leo, and he took it with a grin.
Image model
Cover · openai/gpt-image-2.5-flare
Prompt
Warm digital watercolor with soft ink outlines, bright sunlit colors, dynamic motion trails, expressive faces, and realistic grade-school sports details; safe, upbeat, no printed text in the image. Setting: A windy salt-flat track under harsh white glare, with pale dusty lanes, a crusty salt ridge near the last turn, red pennants whipping beside metal folding chairs, and a bright open sky.. Characters — Maya: 11-year-old girl with warm brown skin, black hair in a high puff, determined dark eyes, teal running singlet, yellow shorts, white running shoes, carrying a blue relay baton; Leo: 11-year-old boy with light-brown skin, freckles, curly dark hair, orange headband, navy relay top, silver running shoes, expressive eyebrows; Tessa: 12-year-old girl with pale skin, red hair in a braid, green running singlet, black shorts, white running shoes with one bright purple shoelace; Coach Ray: adult coach with dark skin, shaved head, red windbreaker, whistle on a cord, and a clipboard. Scene: Warm digital watercolor with soft ink outlines and dynamic motion trails. Show Maya, an 11-year-old girl with warm brown skin, black hair in a high puff, determined dark eyes, teal running singlet, yellow shorts, white running shoes, carrying a blue relay baton, standing on a windy salt-flat track under harsh white glare. A rusty stopwatch glints in the salt dust near her foot. In the background are Leo, an 11-year-old boy with light-brown skin, freckles, curly dark hair, orange headband, navy relay top, silver running shoes, expressive eyebrows; Tessa, a 12-year-old girl with pale skin, red hair in a braid, green running singlet, black shorts, white running shoes with one bright purple shoelace; and Coach Ray, an adult coach with dark skin, shaved head, red windbreaker, whistle on a cord, and a clipboard. Red pennants whip beside metal folding chairs; no printed text. Compose as a wide 16:9 landscape scene. Keep important characters and story details comfortably inside the frame, away from the extreme edges. Style: richly detailed, soft painterly watercolor children's-book illustration with warm lighting, expressive faces, depth, and a cozy, magical feel — polished, publication-quality. Cheerful and friendly for ages 8-10. Safe and age-appropriate. No text, words, or letters in the image.
Scene 1 · openai/gpt-image-2.5-flare
Prompt
Warm digital watercolor with soft ink outlines, bright sunlit colors, dynamic motion trails, expressive faces, and realistic grade-school sports details; safe, upbeat, no printed text in the image. Setting: A windy salt-flat track under harsh white glare, with pale dusty lanes, a crusty salt ridge near the last turn, red pennants whipping beside metal folding chairs, and a bright open sky.. Characters — Maya: 11-year-old girl with warm brown skin, black hair in a high puff, determined dark eyes, teal running singlet, yellow shorts, white running shoes, carrying a blue relay baton; Leo: 11-year-old boy with light-brown skin, freckles, curly dark hair, orange headband, navy relay top, silver running shoes, expressive eyebrows; Tessa: 12-year-old girl with pale skin, red hair in a braid, green running singlet, black shorts, white running shoes with one bright purple shoelace; Coach Ray: adult coach with dark skin, shaved head, red windbreaker, whistle on a cord, and a clipboard. Scene: Warm digital watercolor with soft ink outlines, bright sunlight, and motion trails. On the windy salt-flat track, Maya, an 11-year-old girl with warm brown skin, black hair in a high puff, determined dark eyes, teal running singlet, yellow shorts, white running shoes, carrying a blue relay baton, practices a calm relay handoff with Leo, an 11-year-old boy with light-brown skin, freckles, curly dark hair, orange headband, navy relay top, silver running shoes, expressive eyebrows. Maya's hand is open and steady as the blue baton slides in. Coach Ray, an adult coach with dark skin, shaved head, red windbreaker, whistle on a cord, and a clipboard, watches nearby. Pale dusty lanes, red pennants, folding chairs, and white glare fill the background; no printed text. Compose as a wide 16:9 landscape scene. Keep important characters and story details comfortably inside the frame, away from the extreme edges. Style: richly detailed, soft painterly watercolor children's-book illustration with warm lighting, expressive faces, depth, and a cozy, magical feel — polished, publication-quality. Cheerful and friendly for ages 8-10. Safe and age-appropriate. No text, words, or letters in the image.
Scene 2 · openai/gpt-image-2.5-flare
Prompt
Warm digital watercolor with soft ink outlines, bright sunlit colors, dynamic motion trails, expressive faces, and realistic grade-school sports details; safe, upbeat, no printed text in the image. Setting: A windy salt-flat track under harsh white glare, with pale dusty lanes, a crusty salt ridge near the last turn, red pennants whipping beside metal folding chairs, and a bright open sky.. Characters — Maya: 11-year-old girl with warm brown skin, black hair in a high puff, determined dark eyes, teal running singlet, yellow shorts, white running shoes, carrying a blue relay baton; Leo: 11-year-old boy with light-brown skin, freckles, curly dark hair, orange headband, navy relay top, silver running shoes, expressive eyebrows; Tessa: 12-year-old girl with pale skin, red hair in a braid, green running singlet, black shorts, white running shoes with one bright purple shoelace; Coach Ray: adult coach with dark skin, shaved head, red windbreaker, whistle on a cord, and a clipboard. Scene: Warm digital watercolor with soft ink outlines, bright sunlit colors, and dynamic motion trails. Show the tense race moment near a crusty salt ridge on the windy salt-flat track: Maya, an 11-year-old girl with warm brown skin, black hair in a high puff, determined dark eyes, teal running singlet, yellow shorts, white running shoes, carrying a blue relay baton, slows and calls a warning. Beside her, Tessa, a 12-year-old girl with pale skin, red hair in a braid, green running singlet, black shorts, white running shoes with one bright purple shoelace, hops left to avoid the ridge, her loose purple shoelace visible. Leo, an 11-year-old boy with light-brown skin, freckles, curly dark hair, orange headband, navy relay top, silver running shoes, expressive eyebrows, watches from behind with surprise. Red pennants whip beside metal folding chairs under harsh white glare; no printed text. Compose as a wide 16:9 landscape scene. Keep important characters and story details comfortably inside the frame, away from the extreme edges. Style: richly detailed, soft painterly watercolor children's-book illustration with warm lighting, expressive faces, depth, and a cozy, magical feel — polished, publication-quality. Cheerful and friendly for ages 8-10. Safe and age-appropriate. No text, words, or letters in the image.
Speech model
Story narration · x-ai/grok-voice-tts-1.0
Prompt
The Second Handoff Maya slammed the blue baton into the dust so hard a puff of salt jumped up and stung her shins. On the windy salt-flat track, white glare made every runner squint, and red pennants snapped against folding chairs like impatient hands. She wanted one impossible thing: to redo the final handoff and win so Leo would stop looking hurt. But the race was over, their relay team had lost, and Tessa had already stumbled on a crusty salt ridge near the last turn. Coach Ray was helping Tessa brush salt from her knees, and Leo stood by the finish line with his hands clenched behind his neck. Beside Maya’s shoe, half-buried in dust, lay a rusty stopwatch from the equipment box. The stopwatch had one strange rule, etched in tiny letters around its face: it would send its holder back exactly one hour once, then stop forever. Maya’s thumb found the button. “Please,” she whispered, and clicked. The air folded. Maya tumbled backward into wind, whistles, and the smell of sunscreen. When she blinked, the final race had not started yet. Runners stretched beside their lanes, Coach Ray checked his clipboard, and Leo bounced on his toes, smiling because he had not been disappointed yet. The stopwatch lay in Maya’s palm with its hands frozen. It had stopped forever, which meant Maya had one chance to make the hour count. “Leo,” she said, hurrying to him, “practice the handoff with me. Just once.” Leo tilted his head. “Now? We’ve done it a hundred times.” Maya glanced toward the last turn, where the salt ridge waited like a pale wrinkle in the track. “Then one hundred and one won’t hurt,” she said, trying not to sound frantic. They jogged to the exchange zone. Coach Ray called, “Make it smooth, not grabby!” and Maya felt her face warm. Leo ran in, arm stretched back, and Maya almost snatched the baton the way she had before. This time she waited for his call, opened her fingers, and let the baton slide into her palm. The pass felt deliberate and quiet, not like a tug-of-war, and suddenly she understood: in the first race, her own wild grab had knocked the baton loose. “Again?” Leo asked. Maya shook her head, breathing hard. “No. I’ve got it.” Across the track, Tessa shook out her red braid and checked her shoes. Her purple laces looked tucked and neat, and Maya told herself that was good enough, even though the salt ridge still seemed to shine brighter than everything else. Coach Ray’s whistle split the wind. The relay began with a burst of shoes and dust, and Maya waited for her leg with her heart thumping against her ribs. Leo came flying toward her, orange headband bright in the glare. “Stick!” he called. Maya matched his speed, held steady, and took the baton cleanly. No clatter. No gasp. No hurt look. For one breath, Maya surged ahead. The lane lines blurred, and the pennants whipped so loudly they sounded like applause. Then, in the next lane, Tessa’s left shoelace worked free and flicked like a tiny purple snake. It snagged near the crusty ridge. Tessa’s foot jerked, but she fought for balance and kept moving. Maya’s legs wanted only one thing: the finish line. She could sprint now, win the race, and make Leo grin the way he should have the first time. Then she heard Tessa gasp in the exact place where Tessa had fallen before. The sound sliced through the wind. Maya’s lead lasted one sharp, shining second, and then it became a choice. “Ridge!” Maya shouted, cutting her stride. “Tessa, hop left!” Tessa’s eyes widened. She sprang sideways just enough for her shoe to scrape over the raised salt instead of catching under it. Maya lost momentum with the hesitation, and Tessa recovered beside her. A second later, Tessa’s arms pumped faster, and she pulled ahead toward the tape. Maya pushed to the finish with salt dust in her mouth and the baton still tight in her hand. Tessa crossed first, and Maya crossed second, so close that the finish tape fluttered against both of them. For a moment, Maya could only bend over and listen to the wind rattle the folding chairs. Then Leo ran up, not with the crumpled look from before, but with relief bright across his face. “You fixed the pass,” he said. “And you warned her. Thanks for running like a teammate.” Coach Ray rested a hand on Maya’s shoulder. “Clean handoff,” he said, “and clean running.” Maya looked at the silent stopwatch, then at the blue baton. This time, she did not slam it into the dust. She held it out to Leo, and he took it with a grin.
