# Character Evolution - Storybook Language Guide
Comprehensive documentation for the Storybook narrative simulation language

# Character Evolution

This example models a character who evolves through multiple life stages, demonstrating how life arcs, behavior trees, and templates work together to represent growth over time.

## The Apprentice’s Journey

Elena starts as a nervous apprentice and grows into a confident master baker. Her evolution touches every aspect of her character: skills, personality, relationships, and daily routine.

### Schema

    enum SkillLevel { novice, beginner, intermediate, advanced, expert, master }

    enum Confidence { timid, uncertain, growing, steady, confident, commanding }

    template Apprentice {
        skill_level: novice
        confidence: timid
        can_work_independently: false
        recipes_mastered: 0..5
    }

    template Journeyman {
        skill_level: intermediate
        confidence: growing
        can_work_independently: true
        recipes_mastered: 10..30
    }

    template MasterBaker {
        skill_level: master
        confidence: commanding
        can_work_independently: true
        can_teach: true
        recipes_mastered: 50..200
    }

### The Character at Different Stages

    // Elena starts as an apprentice
    character Elena: Human from Apprentice {
        age: 16
        natural_talent: 0.8
        dedication: 0.9
        recipes_mastered: 2
        confidence: timid
        mentor: Martha

        ---backstory
        Elena comes from a family of farmers who could never afford to
        buy bread from the bakery. When Martha offered her an apprenticeship,
        she jumped at the chance to learn a trade.
        ---
    }

### The Evolution Life Arc

    life_arc ElenaCareer {
        ---description
        Tracks Elena's progression from nervous apprentice to
        confident master baker over several years.
        ---

        state apprentice_early {
            on enter {
                Elena.skill_level: novice
                Elena.confidence: timid
                Elena.can_work_independently: false
            }

            on recipes_mastered > 5 -> apprentice_growing

            ---narrative
            Elena's hands shake as she measures flour. She checks the
            recipe three times before adding each ingredient. Martha
            patiently corrects her technique.
            ---
        }

        state apprentice_growing {
            on enter {
                Elena.skill_level: beginner
                Elena.confidence: uncertain
            }

            on recipes_mastered > 15 -> journeyman

            ---narrative
            The shaking stops. Elena can make basic breads without
            looking at the recipe. She still doubts herself but
            Martha's encouragement is taking root.
            ---
        }

        state journeyman {
            on enter {
                Elena.skill_level: intermediate
                Elena.confidence: growing
                Elena.can_work_independently: true
            }

            on recipes_mastered > 30 and confidence is steady -> senior_journeyman

            ---narrative
            Elena runs the morning shift alone while Martha handles
            special orders. Customers start asking for "Elena's rolls."
            She begins experimenting with her own recipes.
            ---
        }

        state senior_journeyman {
            on enter {
                Elena.skill_level: advanced
                Elena.confidence: steady
            }

            on recipes_mastered > 50 and passed_master_trial -> master

            ---narrative
            Elena develops her signature recipe: rosemary olive bread
            that becomes the bakery's bestseller. She handles difficult
            customers with grace and trains new helpers.
            ---
        }

        state master {
            on enter {
                Elena.skill_level: master
                Elena.confidence: commanding
                Elena.can_teach: true
            }

            ---narrative
            Master Baker Elena. She has earned it. The guild acknowledges
            her mastery, and Martha beams with pride. Elena begins
            mentoring her own apprentice.
            ---
        }
    }

### Evolving Behaviors

Elena’s behavior changes as she progresses:

    // Early apprentice: hesitant, checks everything
    behavior Elena_ApprenticeEarly {
        then cautious_baking {
            CheckRecipeThreeTimes
            MeasureCarefully
            AskMarthaForConfirmation
            ProceedSlowly
            CheckResultAnxiously
        }
    }

    // Growing apprentice: more confident
    behavior Elena_ApprenticeGrowing {
        then competent_baking {
            ReviewRecipe
            MeasureIngredients
            MixWithConfidence
            choose problem_handling {
                then handle_alone {
                    if(confidence > 0.4)
                    AssessSituation
                    ApplyLearning
                }
                AskMarthaForHelp
            }
        }
    }

    // Journeyman: independent and creative
    behavior Elena_Journeyman {
        choose work_mode {
            then creative_mode {
                if(inspiration_high)
                ExperimentWithRecipe
                TasteTest
                if(result_good) {
                    RecordNewRecipe
                }
            }

            then production_mode {
                ExecuteRecipeFromMemory
                MonitorOvenTimings
                ManageMultipleBatches
            }

            then teaching_mode {
                if(helper_present)
                DemonstrateTeechnique
                ObserveHelper
                ProvideGentleFeedback
            }
        }
    }

    // Master: leadership and mentoring
    behavior Elena_Master {
        choose master_activity {
            then mentor_apprentice {
                if(apprentice_needs_guidance)
                AssessApprenticeProgress
                DesignLearningChallenge
                ObserveAndFeedback
            }

            then innovate {
                if(creative_energy_high)
                ResearchNewTechniques
                ExperimentWithIngredients
                DocumentFindings
            }

            then lead_production {
                PlanDailyProduction
                DelegateToTeam
                QualityCheckResults
            }
        }
    }

### Evolving Relationships

The mentor relationship changes as Elena grows:

    // Early apprenticeship
    relationship EarlyMentorship {
        Martha as mentor self {
            patience: 0.9
            teaching_intensity: 0.8
        } other {
            sees_potential: 0.8
            reminds_her_of_herself: true
        }

        Elena as apprentice self {
            gratitude: 1.0
            anxiety: 0.7
        } other {
            admiration: 0.95
            intimidated: 0.5
        }

        bond: 0.6
    }

    // Later: colleagues and friends
    relationship MaturePartnership {
        Martha as senior_partner self {
            pride_in_elena: 0.95
            ready_to_step_back: 0.6
        } other {
            sees_equal: 0.8
            trusts_judgment: 0.9
        }

        Elena as junior_partner self {
            confidence: 0.85
            gratitude: 0.9
        } other {
            respect: 0.95
            sees_as_mother_figure: 0.7
        }

        bond: 0.95
    }

### Evolving Schedules

Elena’s schedule changes as she takes on more responsibility:

    // Apprentice schedule: supervised hours
    schedule ElenaApprentice {
        block arrive {
            06:00 - 06:15
            action: routines::arrive_early
        }

        block learn_and_assist {
            06:15 - 14:00
            action: baking::assist_martha
        }

        block cleanup_duty {
            14:00 - 15:00
            action: shop::cleanup
        }

        block study {
            15:00 - 16:00
            action: learning::study_recipes
        }
    }

    // Master schedule: leadership hours
    schedule ElenaMaster extends ElenaApprentice {
        block arrive {
            04:00 - 04:15
            action: routines::open_bakery
        }

        block learn_and_assist {
            04:15 - 12:00
            action: baking::lead_production
        }

        block cleanup_duty {
            12:00 - 13:00
            action: social::lunch_with_team
        }

        block study {
            13:00 - 15:00
            action: baking::mentor_apprentice
        }

        block business {
            15:00 - 17:00
            action: management::business_planning
        }
    }

## Key Takeaways

This example demonstrates:

1. Life arcs as character development: Elena’s career progression modeled as states
2. Evolving behaviors: Different behavior trees for each stage of growth
3. Changing relationships: The mentor dynamic shifts from dependency to partnership
4. Schedule evolution: Responsibilities grow with skill level
5. Narrative prose: Each life arc state tells a story about who Elena is becoming
6. Template progression: Templates define the capability profile at each stage

## Cross-References

- Life Arcs Reference - State machine syntax
- Design Patterns - Progressive development pattern
- Best Practices - Character design guidelines