> For the complete documentation index, see [llms.txt](https://doodara.gitbook.io/doodara-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doodara.gitbook.io/doodara-docs/getting-started/writing-a-good-story-prompt.md).

# Writing a good story prompt

The AI is good at turning a small, concrete idea into a full book. It is bad at guessing what you meant. This page is about the difference.

## The shape that works

A strong prompt has a **character**, a **problem**, and a **hint of resolution**:

> A shy little fox who learns to make friends on the first day of school.

That is three things: who, what goes wrong, where it is heading. The AI fills in the middle.

## What to leave out

You do not need to write the plot beat by beat. You do not need to specify page count, and you do not need to describe the illustrations — the art style handles the look, and the AI writes its own image descriptions for each page.

## Common ways prompts go wrong

**Too abstract.** *"A story about kindness"* gives the AI nothing to hold onto and produces a generic book. Attach it to something concrete: *"A girl who shares her umbrella with a soaked stray cat."*

**Too many characters.** Two or three named characters is the sweet spot for a picture book. Six characters in a ten-page book means nobody gets a personality.

**Two stories at once.** *"A dinosaur goes to space and also learns to swim and meets a wizard"* becomes three shallow half-stories. Pick one spine.

**Instructions instead of story.** *"Make it educational and teach the alphabet and rhyme every line"* is a brief, not a story. Describe what happens; set the age separately.

## Describing the main character's look

There is a separate field for this. Use it for physical description only:

> a fluffy white bunny in a yellow raincoat

Keep it to appearance — clothes, colour, species, one distinguishing feature. Personality belongs in the story prompt, not here.

## Match the prompt to the age

The reader's age setting does most of the work, but the prompt should not fight it. A 1–2 book cannot carry a betrayal subplot. A 6–9 book can handle a real problem with real stakes — use the room.

## If you are out of ideas

* Browse the [23 story templates](https://www.doodara.com/templates) — each is a pre-written theme designed for a specific age band.
* Look at the [public gallery](https://www.doodara.com/gallery) to see what other people wrote.
* Read [AI picture book prompt ideas](https://www.doodara.com/blog/ai-picture-book-prompt-ideas) on the blog for worked examples.
* Or skip prompting entirely and use a [template book](https://www.doodara.com/template-books), where the story is already written and your child just steps into it.

## You can always rewrite

The outline and script cost nothing to regenerate on the free model. If the first draft is not it, change one word in the prompt and run it again — that is usually faster than editing twelve pages by hand.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://doodara.gitbook.io/doodara-docs/getting-started/writing-a-good-story-prompt.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
