Voyage · EventFarm Parity Stories
Each story describes one feature of Voyage as a real organizer, attendee, or event-day staff member would experience it — including what success looks like, what failure looks like, and how the page itself supports or fails the user. Trunk stories establish the surfaces; branch stories root in trunks and exercise specific capabilities. Every story is human-audit-ready and machine-consumable by the agent harness that turns it into a Playwright fuzzing run.
Surfaces of the application. Branches inherit auth + navigation from these.
Design-system primitives. Tested once with all interaction edge cases. Branches that use a component inherit its contract via usesComponents and don't re-test the fiddly UX bits.
One per representative EF capability. Each roots in a trunk and focuses on the specific feature's success + failure surface. Component-tier mechanics (modal focus trap, autocomplete debounce, etc.) inherit from the component stories above.
After these 5 pilot branches + 4 trunks land and you audit the depth, the remaining 95 EF capabilities get codex-bulk-generated against this template, with a manual review pass per batch to deepen failure modes that go shallow. EF-060 (SPF/DKIM masking), EF-024 (promo codes), the EFx live-event modules, native check-in app surface, integrations — each becomes a branch story, each rooted in the appropriate trunk.