Files
storybook/docs/examples/25-day-in-life.md
Sienna Meridian Satterwhite 16deb5d237 release: Storybook v0.2.0 - Major syntax and features update
BREAKING CHANGES:
- Relationship syntax now requires blocks for all participants
- Removed self/other perspective blocks from relationships
- Replaced 'guard' keyword with 'if' for behavior tree decorators

Language Features:
- Add tree-sitter grammar with improved if/condition disambiguation
- Add comprehensive tutorial and reference documentation
- Add SBIR v0.2.0 binary format specification
- Add resource linking system for behaviors and schedules
- Add year-long schedule patterns (day, season, recurrence)
- Add behavior tree enhancements (named nodes, decorators)

Documentation:
- Complete tutorial series (9 chapters) with baker family examples
- Complete reference documentation for all language features
- SBIR v0.2.0 specification with binary format details
- Added locations and institutions documentation

Examples:
- Convert all examples to baker family scenario
- Add comprehensive working examples

Tooling:
- Zed extension with LSP integration
- Tree-sitter grammar for syntax highlighting
- Build scripts and development tools

Version Updates:
- Main package: 0.1.0 → 0.2.0
- Tree-sitter grammar: 0.1.0 → 0.2.0
- Zed extension: 0.1.0 → 0.2.0
- Storybook editor: 0.1.0 → 0.2.0
2026-02-13 21:52:03 +00:00

340 lines
7.4 KiB
Markdown

# Day in the Life
This example models a complete day for a baker character, showing how schedules, behaviors, and life arcs work together to create a rich daily simulation.
## The Baker
```storybook
use schema::core_enums::{Season, DayOfWeek};
use schema::beings::Human;
use schema::templates::SkilledWorker;
character Martha: Human from SkilledWorker {
age: 42
occupation: "Master Baker"
skill_level: 0.95
energy: 1.0
mood: 0.8
uses schedule: MarthaDailySchedule
uses behaviors: [
{ tree: BakerRoutine, priority: normal },
{ tree: HandleEmergency, when: emergency_detected, priority: critical }
]
---backstory
Martha has been baking since she was twelve, learning from her
grandmother. She now runs the most popular bakery in town and
is known for her sourdough bread and apple pastries.
---
}
```
## The Schedule
```storybook
schedule MarthaDailySchedule {
block wake_up {
04:00 - 04:30
action: routines::morning_wake
}
block early_baking {
04:30 - 07:00
action: baking::prepare_morning_goods
}
block open_shop {
07:00 - 07:15
action: shop::open_for_business
}
block morning_rush {
07:15 - 10:00
action: shop::serve_morning_customers
}
block midday_baking {
10:00 - 12:00
action: baking::prepare_afternoon_goods
}
block lunch_break {
12:00 - 13:00
action: social::lunch_with_family
}
block afternoon_sales {
13:00 - 16:00
action: shop::serve_afternoon_customers
}
block close_shop {
16:00 - 16:30
action: shop::close_for_day
}
block evening_prep {
16:30 - 17:30
action: baking::prepare_dough_for_tomorrow
}
block family_time {
18:00 - 21:00
action: social::family_evening
}
block sleep {
21:00 - 04:00
action: routines::sleep
}
// Saturday: Market day
recurs MarketDay on day saturday {
block market_prep {
03:00 - 05:00
action: baking::market_batch
}
block market_sales {
06:00 - 14:00
action: market::sell_at_stall
}
block market_cleanup {
14:00 - 15:00
action: market::pack_up
}
}
// Summer: Extended hours
block summer_afternoon {
13:00 - 18:00
action: shop::extended_summer_hours
on season summer
}
}
```
## Behaviors
### Morning Routine
```storybook
behavior BakerMorningRoutine {
then morning_sequence {
WakeUp
WashFace
DressInWorkClothes
// Check the sourdough starter
then check_starter {
ExamineStarter
if(starter_healthy) {
FeedStarter
}
}
WalkToKitchen
LightOven
}
}
```
### Baking Behavior
```storybook
behavior BakerRoutine {
choose baking_priority {
// Handle special orders first
then special_orders {
if(has_special_orders)
then fill_order {
ReviewOrderDetails
GatherSpecialIngredients
PrepareSpecialItem
PackageForCustomer
}
}
// Regular daily baking
then daily_bread {
then sourdough {
MixDough(recipe: "sourdough", quantity: 10)
KneadDough(duration: 15m)
FirstRise(duration: 2h)
ShapLoaves
SecondRise(duration: 1h)
BakeLoaves(temperature: 230, duration: 35m)
}
}
// Pastries if time permits
then pastries {
succeed_always {
then apple_pastries {
PrepareFillingApple
RollPastryDough
AssemblePastries
BakePastries(temperature: 200, duration: 25m)
}
}
}
}
}
```
### Customer Service
```storybook
behavior ServeCustomer {
then service_sequence {
GreetCustomer
if(customer_is_regular) {
RecallPreferences
}
choose service_type {
then take_order {
if(customer_knows_what_they_want)
AcceptOrder
PackageItem
}
then help_decide {
if(not customer_knows_what_they_want)
OfferRecommendation
ProvidesSample
AcceptOrder
PackageItem
}
}
CollectPayment
ThankCustomer
}
}
```
### Emergency Handling
```storybook
behavior HandleEmergency {
choose emergency_type {
then oven_fire {
if(oven_overheating)
TurnOffOven
GrabFireExtinguisher
ExtinguishFire
AssessDamage
}
then ingredient_shortage {
if(critical_ingredient_missing)
CheckBackupSupply
choose procurement {
SendApprenticeToMarket
SubstituteIngredient
AdjustMenu
}
}
then equipment_failure {
if(equipment_broken)
StopProduction
AttemptQuickFix
choose fallback {
UseBackupEquipment
CallRepairPerson
}
}
}
}
```
## Life Arc: Career and Energy
```storybook
life_arc MarthaEnergyLevel {
state rested {
on enter {
Martha.energy: 1.0
Martha.mood: 0.8
}
on energy < 0.5 -> tired
}
state tired {
on enter {
Martha.mood: 0.6
}
on energy < 0.2 -> exhausted
on energy > 0.7 -> rested
}
state exhausted {
on enter {
Martha.mood: 0.3
Martha.quality_output: 0.7
}
on energy > 0.5 -> tired
}
}
```
## Relationships
```storybook
relationship MarthaAndApprentice {
Martha as mentor self {
patience: 0.8
investment: 0.9
} other {
sees_potential: 0.85
}
Elena as apprentice self {
dedication: 0.9
learning_rate: 0.7
} other {
respect: 0.95
admiration: 0.8
}
bond: 0.85
years_together: 2
}
relationship MarthaAndRegularCustomer {
Martha as shopkeeper
OldManGregory as regular_customer
bond: 0.7
years_known: 15
always_orders: "sourdough_loaf"
---dynamics
Gregory has been buying Martha's bread every morning for
fifteen years. They exchange brief pleasantries about the
weather and local gossip. He is her most reliable customer.
---
}
```
## Key Takeaways
This example demonstrates:
1. **Schedule-driven daily flow**: Precise time blocks govern Martha's entire day
2. **Seasonal and weekly variations**: Summer hours and Saturday market
3. **Layered behaviors**: Emergency behavior preempts normal routine via priority
4. **Realistic action sequences**: Baking modeled step by step with parameters
5. **Energy management**: Life arc tracks fatigue affecting mood and output quality
6. **Social connections**: Relationships with apprentice and customers add depth
## Cross-References
- [Schedules Reference](../reference/14-schedules.md) - Schedule syntax
- [Behavior Trees Reference](../reference/11-behavior-trees.md) - Behavior syntax
- [Life Arcs Reference](../reference/13-life-arcs.md) - Life arc syntax