# Quickstart: Display Initiative ## Overview Add initiative display to creature stat blocks. Three layers touched: 1. **Domain**: New `calculateInitiative` pure function + `initiativeProficiency` field on `Creature` 2. **Adapter**: Parse `initiative.proficiency` from raw 5etools JSON 3. **UI**: Show "Initiative +X (Y)" next to AC in stat block header ## Key Files | File | Change | |------|--------| | `packages/domain/src/creature-types.ts` | Add `initiativeProficiency: number` to `Creature` | | `packages/domain/src/initiative.ts` | New file: `calculateInitiative`, `formatInitiativeModifier` | | `packages/domain/src/index.ts` | Export new function/types | | `packages/domain/src/__tests__/initiative.test.ts` | New file: unit tests | | `apps/web/src/adapters/bestiary-adapter.ts` | Parse `initiative.proficiency` from raw JSON | | `apps/web/src/components/stat-block.tsx` | Display initiative in header | ## Implementation Order 1. Add `initiativeProficiency` to `Creature` type 2. Create `calculateInitiative` + `formatInitiativeModifier` in domain with tests 3. Update bestiary adapter to parse initiative proficiency 4. Update stat block component to display initiative ## Verification ```bash pnpm check # Must pass — knip + format + lint + typecheck + test ``` Spot-check: Aboleth should display "Initiative +7 (17)".