Sorting Groceries by Aisle
Sort a user's grocery list by aisle order so they can walk the store in one efficient pass, no backtracking.
When Triggered
Activate when user:
- Uploads photos of grocery store aisle signs or markers
- Provides a grocery/shopping list alongside store layout info
- Asks to sort, organize, or optimize a shopping list by aisle
- Mentions aisle numbers, store maps, or shopping routes
Inputs
Two inputs are needed. Prompt for whichever is missing:
- Aisle sign images — Photos of aisle markers, hanging signs, or endcap labels. Each typically shows an aisle number and category keywords (e.g., "Aisle 5: Coffee, Tea, Cocoa").
- Grocery list — Text, pasted note, or photo of a handwritten list. Any format.
Core Workflow
Step 1: Build the Aisle Map
Read each uploaded aisle sign image. Extract:
- Aisle number (or label like "A5", "Aisle 12")
- Category descriptions exactly as printed (e.g., "Pasta, Sauces, Canned Vegetables")
Compile into a structured map:
Aisle 1: Bread, Bakery Items, Tortillas
Aisle 2: Cereal, Breakfast, Granola Bars
Aisle 3: Pasta, Sauces, Canned Goods
...
If an image is blurry or partially unreadable, note what was legible and flag uncertainty.
Step 2: Identify Perimeter Zones
Grocery stores have perimeter sections without numbered aisles. Infer these from context or common knowledge when not covered by the uploaded signs:
| Zone |
Typical items |
| Produce |
Fresh fruits, vegetables, herbs, salad mixes |
| Deli |
Sliced meats, prepared foods, rotisserie chicken |
| Bakery |
Fresh bread, cakes, pastries (distinct from packaged bread aisle) |
| Dairy |
Milk, cheese, yogurt, butter, eggs |
| Meat & Seafood |
Fresh/frozen meat, poultry, fish |
| Frozen |
Frozen meals, ice cream, frozen vegetables |
Position perimeter zones in typical store flow: Produce → Deli/Bakery → Meat/Seafood → Dairy → Frozen (usually along the store's outer walls, counterclockwise from entrance).
If the user's aisle photos already include these sections, use the actual signage instead of defaults.
Step 3: Parse the Grocery List
Extract every item from the user's list. Normalize:
- "2 lbs chicken breast" → item: chicken breast, quantity: 2 lbs
- "eggs" → item: eggs, quantity: (unspecified)
- "parm" → item: parmesan cheese
Preserve the user's original wording alongside any normalized form.
Step 4: Match Items to Aisles
For each grocery item, find the best aisle match:
- Direct keyword match — Item name appears in or closely matches an aisle's category text (e.g., "pasta" → "Aisle 3: Pasta, Sauces")
- Category inference — Item belongs to a category listed on a sign (e.g., "marinara" → "Aisle 3: Sauces")
- Perimeter zone match — Item is a fresh/perishable product that lives on the store perimeter (e.g., "bananas" → Produce)
- Best guess with note — Item could plausibly be in multiple aisles. Assign the most likely one and add a note (e.g., "honey — Aisle 4: Baking, but may also be in Aisle 7: Condiments")
Step 5: Output the Sorted List
Present the final list grouped by aisle in store-walk order:
🛒 Sorted Shopping List — [Store Name if known]
PRODUCE
□ bananas
□ baby spinach
□ 3 avocados
AISLE 1 — Bread, Bakery Items, Tortillas
□ whole wheat bread
□ flour tortillas
AISLE 2 — Cereal, Breakfast, Granola Bars
□ oatmeal
□ granola bars
AISLE 3 — Pasta, Sauces, Canned Goods
□ spaghetti
□ marinara sauce
□ canned black beans
...
DAIRY
□ 2% milk
□ shredded mozzarella
□ eggs (1 dozen)
⚠️ COULDN'T PLACE
□ birthday candles — not enough aisle info to determine location
Output Formatting Rules
- Use checkbox format (
□) so the list is easy to use on a phone
- Include the aisle's category description next to the aisle number for quick reference
- Keep the user's quantities and notes attached to each item
- Perimeter zones go in logical store-walk order (Produce first, Frozen/Dairy last)
- Numbered aisles go in ascending order between the perimeter zones
- Unmatched items go at the end under a clear "couldn't place" heading
Multi-Aisle Items
Some items legitimately live in multiple locations. When this occurs:
- Place the item in the most common aisle for that store's layout
- Add a parenthetical note: "(also check Aisle 7)"
- Common examples: honey (baking vs condiments), tortilla chips (snacks vs Hispanic foods), butter (dairy vs baking)
Handling Ambiguity
- Blurry/unreadable signs: Note which aisles had unclear text. Ask user to confirm if critical items might be affected.
- Store-brand categories: Some stores use unusual groupings ("International Foods" might contain pasta in one store). Trust the sign text over assumptions.
- Missing aisles: If user uploaded signs for aisles 1-5 and 8-12 but not 6-7, note the gap. Items that don't match any uploaded aisle go to "couldn't place" rather than being guessed into missing aisles.
Store Layout Reuse
If the user mentions they shop at this store regularly:
- Present the aisle map as a clean reference they can save
- Suggest they can reuse it in future conversations by pasting just the map text instead of re-uploading photos
- Format the reusable map clearly:
📍 [Store Name] Aisle Map
Aisle 1: Bread, Bakery Items, Tortillas
Aisle 2: Cereal, Breakfast, Granola Bars
...
Produce | Deli/Bakery | Meat & Seafood | Dairy | Frozen
1---2name: sorting-groceries3description: Sort grocery lists by aisle order using store aisle sign photos. Build aisle maps from uploaded images, match items to aisles, and output optimized shopping routes. Use when users upload aisle sign photos, request grocery list sorting, want shopping trip optimization, need store layout mapping, or mention grocery list organization.4---5
6# Sorting Groceries by Aisle
7
8Sort a user's grocery list by aisle order so they can walk the store in one efficient pass, no backtracking.
9
10## When Triggered
11
12Activate when user:
13- Uploads photos of grocery store aisle signs or markers
14- Provides a grocery/shopping list alongside store layout info
15- Asks to sort, organize, or optimize a shopping list by aisle
16- Mentions aisle numbers, store maps, or shopping routes
17
18## Inputs
19
20Two inputs are needed. Prompt for whichever is missing:
21
221. **Aisle sign images** — Photos of aisle markers, hanging signs, or endcap labels. Each typically shows an aisle number and category keywords (e.g., "Aisle 5: Coffee, Tea, Cocoa").
232. **Grocery list** — Text, pasted note, or photo of a handwritten list. Any format.
24
25## Core Workflow
26
27### Step 1: Build the Aisle Map
28
29Read each uploaded aisle sign image. Extract:
30- **Aisle number** (or label like "A5", "Aisle 12")
31- **Category descriptions** exactly as printed (e.g., "Pasta, Sauces, Canned Vegetables")
32
33Compile into a structured map:
34
35```
36Aisle 1: Bread, Bakery Items, Tortillas
37Aisle 2: Cereal, Breakfast, Granola Bars
38Aisle 3: Pasta, Sauces, Canned Goods
39...
40```
41
42If an image is blurry or partially unreadable, note what was legible and flag uncertainty.
43
44### Step 2: Identify Perimeter Zones
45
46Grocery stores have perimeter sections without numbered aisles. Infer these from context or common knowledge when not covered by the uploaded signs:
47
48| Zone | Typical items |
49|------|---------------|
50| **Produce** | Fresh fruits, vegetables, herbs, salad mixes |
51| **Deli** | Sliced meats, prepared foods, rotisserie chicken |
52| **Bakery** | Fresh bread, cakes, pastries (distinct from packaged bread aisle) |
53| **Dairy** | Milk, cheese, yogurt, butter, eggs |
54| **Meat & Seafood** | Fresh/frozen meat, poultry, fish |
55| **Frozen** | Frozen meals, ice cream, frozen vegetables |
56
57Position perimeter zones in typical store flow: **Produce → Deli/Bakery → Meat/Seafood → Dairy → Frozen** (usually along the store's outer walls, counterclockwise from entrance).
58
59If the user's aisle photos already include these sections, use the actual signage instead of defaults.
60
61### Step 3: Parse the Grocery List
62
63Extract every item from the user's list. Normalize:
64- "2 lbs chicken breast" → item: **chicken breast**, quantity: 2 lbs
65- "eggs" → item: **eggs**, quantity: (unspecified)
66- "parm" → item: **parmesan cheese**
67
68Preserve the user's original wording alongside any normalized form.
69
70### Step 4: Match Items to Aisles
71
72For each grocery item, find the best aisle match:
73
741. **Direct keyword match** — Item name appears in or closely matches an aisle's category text (e.g., "pasta" → "Aisle 3: Pasta, Sauces")
752. **Category inference** — Item belongs to a category listed on a sign (e.g., "marinara" → "Aisle 3: Sauces")
763. **Perimeter zone match** — Item is a fresh/perishable product that lives on the store perimeter (e.g., "bananas" → Produce)
774. **Best guess with note** — Item could plausibly be in multiple aisles. Assign the most likely one and add a note (e.g., "honey — Aisle 4: Baking, but may also be in Aisle 7: Condiments")
78
79### Step 5: Output the Sorted List
80
81Present the final list grouped by aisle in store-walk order:
82
83```
84🛒 Sorted Shopping List — [Store Name if known]
85
86PRODUCE
87 □ bananas
88 □ baby spinach
89 □ 3 avocados
90
91AISLE 1 — Bread, Bakery Items, Tortillas
92 □ whole wheat bread
93 □ flour tortillas
94
95AISLE 2 — Cereal, Breakfast, Granola Bars
96 □ oatmeal
97 □ granola bars
98
99AISLE 3 — Pasta, Sauces, Canned Goods
100 □ spaghetti
101 □ marinara sauce
102 □ canned black beans
103
104...
105
106DAIRY
107 □ 2% milk
108 □ shredded mozzarella
109 □ eggs (1 dozen)
110
111⚠️ COULDN'T PLACE
112 □ birthday candles — not enough aisle info to determine location
113```
114
115## Output Formatting Rules
116
117- Use checkbox format (`□`) so the list is easy to use on a phone
118- Include the aisle's category description next to the aisle number for quick reference
119- Keep the user's quantities and notes attached to each item
120- Perimeter zones go in logical store-walk order (Produce first, Frozen/Dairy last)
121- Numbered aisles go in ascending order between the perimeter zones
122- Unmatched items go at the end under a clear "couldn't place" heading
123
124## Multi-Aisle Items
125
126Some items legitimately live in multiple locations. When this occurs:
127- Place the item in the **most common** aisle for that store's layout
128- Add a parenthetical note: "(also check Aisle 7)"
129- Common examples: honey (baking vs condiments), tortilla chips (snacks vs Hispanic foods), butter (dairy vs baking)
130
131## Handling Ambiguity
132
133- **Blurry/unreadable signs**: Note which aisles had unclear text. Ask user to confirm if critical items might be affected.
134- **Store-brand categories**: Some stores use unusual groupings ("International Foods" might contain pasta in one store). Trust the sign text over assumptions.
135- **Missing aisles**: If user uploaded signs for aisles 1-5 and 8-12 but not 6-7, note the gap. Items that don't match any uploaded aisle go to "couldn't place" rather than being guessed into missing aisles.
136
137## Store Layout Reuse
138
139If the user mentions they shop at this store regularly:
140- Present the aisle map as a clean reference they can save
141- Suggest they can reuse it in future conversations by pasting just the map text instead of re-uploading photos
142- Format the reusable map clearly:
143
144```
145📍 [Store Name] Aisle Map
146Aisle 1: Bread, Bakery Items, Tortillas
147Aisle 2: Cereal, Breakfast, Granola Bars
148...
149Produce | Deli/Bakery | Meat & Seafood | Dairy | Frozen
150```