| name | journey-bottles |
| description | Maintains BabyPickr bottle journey filters, boost scoring, and catalog flags so journey answers match breastfeeding, newborn, anti-colic, and family-stage needs. Use when adding or editing bottles in data/bottles.ts, lib/filters/bottles.ts, lib/journeyStorage.ts (bottle paths), journey tests, or when journey combinations zero out or surface the wrong bottles. |
Bottle journey filters
Read this skill before changing bottle catalog data or journey filter logic.
Testing (required)
Run tests yourself after any edit here. Do not finish with failing tests or ask the user to run them unless shell is unavailable.
| When | Command |
|---|
| Bottle / journey filter work | npm test -- lib/filters/journey-matrix.test.ts |
| Before done (any related change) | npm test |
Blog bottle guides are covered by lib/blog/blogPages.test.ts in the full suite. Fix failures before marking complete.
Design principle (critical)
breastfeeding-mom is the only situation that hard-filters bottles (graceful subset to breastfeedingFriendly === true). Other situations (city-apartment, travel-often, etc.) do not remove SKUs today — they are unused for bottles except newborn-focus and value-matters.
When a parent selects Breastfeeding / Pumping in step 2, the journey UI auto-adds Bottles to step 3 if it was missing (mergeBreastfeedingCategory in lib/journeyStorage.ts).
Source of truth (edit in this order)
- Catalog flags —
data/bottles.ts (breastfeedingFriendly, isNewbornReady, antiColic, easyToAssemble, isGiftable, nippleFlow, materialType, …)
- Journey → filter mapping —
applyJourneySituationsToBottleFilters in lib/journeyStorage.ts
- Hard filters + sort —
filterBottles in lib/filters/bottles.ts
- Ranking only —
bottleJourneyBoost in lib/journeyStorage.ts
- Banner copy —
journeyExplanationsForCategory("bottles", …)
- Badges —
bottleBadge in lib/journeyBadge.ts
Filter effect types
| Type | Meaning | Example |
|---|
| HARD | Removes products (graceful fallback) | breastfeeding-mom → breast-friendly only |
| SORT | Order only | priority: value / top-rated |
| BOOST | Tie-breaker | breastfeeding-mom → +4 if breastfeedingFriendly |
| COPY | Banner only | cross-category line on strollers when breastfeeding selected |
Journey type × bottle behavior
| Journey type | HARD | SORT | BOOST |
|---|
| first-baby | — | best-match | isNewbornReady +3; antiColic +2 |
| upgrading | — | best-match | glass / stainless-steel +3 |
| second-child | — | best-match | easyToAssemble +3 |
| gift | — | best-match | isGiftable +3; mid tier +1 |
Situation × bottle behavior
| Situation | HARD | SORT | BOOST |
|---|
| breastfeeding-mom | breast-friendly only* | sets priority: breastfeeding | breast-friendly +4 |
| newborn-focus | newborn-ready only* | — | newborn-ready +4; anti-colic +2 |
| value-matters | — | priority: value | budget tier +1 |
| city-apartment | — | — | unused |
| house-suburbs | — | — | unused |
| travel-often | — | — | unused |
| compact-car | — | — | unused |
| tall-parent | — | — | unused |
| active-lifestyle | — | — | unused |
* Graceful degradation: if the subset is empty, full catalog returns.
Flag setting guide (new SKU)
| Flag | Set true when… | Journey use |
|---|
breastfeedingFriendly | Wide/slow breast-shaped nipple, NaturalWave-style, combo-feeding design | breastfeeding-mom HARD + BOOST |
isNewbornReady | Ships with newborn-flow nipple | newborn-focus HARD + BOOST; first-baby B |
antiColic | Vent system or anti-colic valve | first-baby B; newborn-focus B |
easyToAssemble | Few parts, quick assembly | second-child B |
isGiftable | Set packaging / popular gift | gift B |
nippleFlow | Honest catalog value | banner + blog copy |
Do not mark narrow-neck colic-only bottles as breastfeedingFriendly unless the nipple is genuinely breast-shaped and accepted for combo feeding.
Adding a new bottle (checklist)
- Set material, flow, and anti-colic from real product behavior.
- Set journey booleans from nipple shape and use case (not brand halo).
- Spot-check rankings:
breastfeeding-mom + first-baby → Natural Response, Lansinoh, Comotomo, Pigeon rise
newborn-focus → newborn-flow SKUs rise; still non-zero with breastfeeding
second-child → easy-assembly bottles rise
gift → giftable sets rise
- Add/adjust tests in
lib/filters/journey-matrix.test.ts.
- Run tests (see Testing above); end with
npm test.
Regression tests to keep green
breastfeeding-mom → all results breastfeedingFriendly
breastfeeding-mom + newborn-focus → never zero results
mergeBreastfeedingCategory adds bottles to narrow category lists
- Cross-category banner when breastfeeding selected on non-bottle pages
Registry checklist integration
See registry-checklist skill.
- Slots:
min-feeding, comf-diapers-feeding, prem-bottles.
- Browse deep links: minimum →
budget=budget; comfortable/premium scale with tier.
- Profile: breastfeeding → suggest fewer bottles; formula → include formula starter external slot.
- Auto-picks: reuse
filterBottles; breastfeeding-mom situation when profile selects breastfeeding.
Related files
- Page wiring:
app/bottles/page.tsx
- Blog guide:
app/blog/best-baby-bottles-breastfeeding/page.tsx
- Parallel skills:
journey-strollers, journey-car-seats, journey-cribs, journey-high-chairs, journey-baby-monitors, registry-checklist