How do you share a grocery list without everyone buying the same thing?
A household list works when the list is shared but the people are not flattened into one profile.
Use one shared kitchen list with clear ownership and live updates. Keep personal dislikes, dietary needs and preferences attached to individuals, while pantry stock and agreed purchases stay shared.

actual people.
What belongs to the household and what belongs to the person?
Pantry stock, common shopping items and shared meal plans belong to the kitchen. Preferences, restrictions and individual taste belong to people.
Preferences.
Likes, dislikes, dietary constraints and personal history.
One state.
Pantry, agreed meal plan, shopping list and household inventory.
Still a person.
Different taste can coexist with the same kitchen state.
How should a shared grocery list prevent duplicate buying?
Updates need to be visible quickly, quantities need to be clear, and checking an item off should represent the shared list—not one person's private copy.
Build the delta.
Compare the plan with what is already in Pantry so the list starts smaller.
Sync the state.
When one person gets milk, everyone else should stop seeing milk as outstanding.
Feed Pantry.
Receipt or manual confirmation should close the loop instead of leaving Shop disconnected.
Why is this more than a shared checklist?
Because the useful household system knows what the kitchen needs, not just what somebody typed into a list.

Share the kitchen.
Not one personality.
4DK can keep Pantry and Shop shared while preserving individual people inside The House. The goal is coordination without flattening everyone into one preference profile.
See The House + Shop →What questions naturally follow shared grocery lists?
Family meal planning, pantry tracking, household preferences and grocery-list automation are the strongest next routes.