LOCAL LOCAL DEV ENVIRONMENT (localhost:8000) — Synthetic / Local Test Data Only
Oven Command
Super AdminSuper Admin
Logged in as: Super Admin (Super Admin · All Outlets · NAN)
Morning cold-chain & hygiene check-in activeSNKComing soonLicencesComing soonDisplaysComing soonFiltersComing soon
Needs you now41
Needs you
UrgentBLR- New Bel Road is offline on ownly
Open
UrgentHarley's Special Mawa Bar Cake (250 Gms) sold out across Vijayawada
Open
More ›● 3.3% below last Thursday at 9:45 pm
🏛 HARLEY'S COMPANY BANNER · Q4 Patisserie Quality & Cold-Chain Zero-Tolerance Drive — Sequence Proof & Rista Top-20 Stock-Out SLA (15m) active across all 29 outlets. Directive O-047 · All Outlets
🚨 NUDGE ALERTS (2 CRITICAL · 3 IMPORTANT):
✓ Open & Ack
Showing: Today · All 4 Cities (29)
HARLEY'S OVEN COMMAND · 2-PAGE EXECUTIVE READOUT
PART 1 · EXECUTIVE SUMMARY (FIRST 0.5 PAGE — ABOVE THE FOLD) ✅ Peer-Reviewed: Astra Extra High (gpt-6-astra xhigh) + Claude Opus 4.7 Extra High · STOP 3 · T1-10 · STAGE-GATE® PLM · 312 SKUs

New Product Launch (NPL) 7-Stage Patisserie & Beverage Lifecycle (STOP 3 · T1-10 · STAGE-GATE® PLM · 312 SKUs)

✅ Peer-Reviewed (Astra XHigh + Opus 4.7) · Multi-Level Sub-Recipe BOM · a_w/pH & Big-9 Allergens · T+4h..72h Decay Curve · 30m Zomato/Swiggy Bike Stress Test · <=28% COGS · 14d Canary & 30/60/90d Kill-Switch

1. What We Are Building & Why

  • Governs Harley's **312 patisserie, Medovik cake, artisanal bake, and craft beverage SKUs** across a deterministic **7-Stage Gate Pipeline (`Stage 1 Concept & Menu Slot` -> `Stage 2 Multi-Level BOM & Lab Food Safety` -> `Stage 3 9-Attribute Blind Sensory, T+72h Decay & 30m Bike Packaging Stress` -> `Stage 4 <=28% COGS & Margin Lock` -> `Stage 5 Rista POS, HSN/GST & 60s BOH Video SOP` -> `Stage 6 14-Day 3-Outlet Canary Pilot` -> `Stage 7 Scale or 30/60/90d Kill-Switch`)**.
  • **Benchmarked against Global Patisserie & QSR Leaders (Starbucks Siren R&D, Pret A Manger, Paris Baguette, 85°C Bakery, TraceGains PLM):** Models **4-level Sub-Recipe BOMs** (`Raw Ingredient -> Sponge/Filling/Frosting WIP -> Commissary Slab -> Café Slice`) with **Baker's %**, **Bake Moisture Loss (`8–12%`)**, **Trim/Slice Loss (`4–6%`)**, **Water Activity ($a_w \le 0.85$)**, **pH**, and **Big-9 Allergen + FSSAI Veg/Egg/Non-Veg** declarations.
  • **Eliminates soggy cakes, aggregator transit damage, and margin erosion:** Hard-gates every SKU on a **9-Attribute Blind Hedonic Sensory Panel (`>= 4.0/5.0`)**, **Ambient/Chilled Display Holding Decay Curve (`T+4h, T+12h, T+24h, T+48h, T+72h`)**, **30-Min Zomato/Swiggy Motorbike Vibration & `25°` Tilt Test**, **1-in-1-out Menu Engineering Slot Cap**, **Theoretical vs. Actual COGS (`<= 28%`)**, and **14-Day Canary Pilot KPIs (`Sell-Through >= 75%`, `Dump <= 8%`, `Counter SLA <= 90s`)**.

2. Personas & Access Scope

  • **R&D Executive Pastry Chef / Food Technologist**: Formulates multi-level sub-recipes (Baker's %), logs bake/trim yield losses, records $a_w$ / pH & Big-9 allergens, and runs the `T+4h..T+72h` shelf-life decay curve.
  • **Sensory Panelists (`>= 5` Blind Tasters) & QA Lead**: Score 9 organoleptic attributes blind on a 5-point normalized hedonic scale (`>= 4.0` gate) and certify the **30-Min Motorbike Delivery Vibration & Tilt Packaging Test**.
  • **Finance / Cost Controller**: Audits live raw-material rollup, packaging cost (`₹/box + cold-gel pack`), and Theoretical vs. Actual COGS (`<= 28.0%` ceiling) plus Menu Engineering quadrant placement.
  • **L1 Named R&D Chef (`Chef Vikramaditya · H-000104`) & L2 Named QA/Lab Lead (`Dr. Ananya Rao · H-000112`)**: Zero committee ownership—`L1` owns Stage 1–2 Multi-Level BOM (Baker's %, `<=28%` COGS); `L2` owns $a_w/ ext{pH}$, Big-9 Allergens, `T+4h..72h` Decay Curve & 30-Min Motorbike Vibration/Tilt Packaging Gate.
  • **L3 Named Central Kitchen (CK) Production Head (`Suresh Nair · CK-1 H-000118`)**: Owns Bench-to-200kg Commercial Scaling, Deck Oven & Blast-Chiller Pull-Down Curve (`+65°C -> +3°C in <=90m`), CK Line Crew Certification, and Crate-Level Lot QR Minting (`HRL-LOT-{SKU}-{CK}-{YYYYMMDD}-{BATCH}`).
  • **L4 Named Cold-Chain & Fleet Controller (`Mahesh Goud · H-000124`) & L5 Named POS/Catalogue Lead (`Karthik Reddy · H-000129`)**: `L4` owns Reefer Pre-Cool (`+2..+4°C`), BLE Logger Telemetry (`> +6°C for >15m = P1 Alert`), and Crate Stack-Height Lock; `L5` stages Rista POS + HSN/GST + Swiggy/Zomato SKU in `LOCKED_NOT_ENABLED` state per store.
  • **L6 Named Store Manager per Outlet (`NAN: Rohit MGR-01`, `JUB: Priya MGR-02`, `KOK: Arvind MGR-04`) & L7 Named FOH Last-Mile Dispatch Lead (`NAN: Chimkila S CREW-04`)**: `L6` owns Store Door Crate Receiving Probe (`<= +5°C`), BOH Practice Plate Photo, `>=90%` FOH Quiz, and Planogram Tent Card to unlock that store's POS; `L7` owns the **First-10-Orders Open-Box Rider Handover Photo Gate** and live `<=1%` Last-Mile Damage SLA.

3. Owner Sign-Off Decisions

  • Enforce **Multi-Level Sub-Recipe BOM + Baker's % + Bake/Trim Yield Loss** and **Water Activity ($a_w$) / pH + Big-9 Allergen + FSSAI Dot** at Stage 2.
  • Mandate **9-Attribute Blind Hedonic Score >= 4.0/5.0**, **`T+4h..T+72h` Holding Decay Curve**, and **30-Min Zomato/Swiggy Motorbike Vibration & `25°` Tilt Test** at Stage 3.
  • Lock **<= 28.0% Theoretical & Pilot Actual Food Cost Ceiling** and **1-in-1-out Menu Engineering Slot Cap** (`Stars / Plowhorses / Puzzles / Dogs`) at Stage 4.
  • Gate national rollout on **14-Day 3-Outlet Canary Pilot (`Sell-Through >= 75%`, `Dump <= 8%`, `Ticket SLA <= 90s`)** and automated **30/60/90-Day Post-Launch Cohort Kill-Switch**.
PART 2 · FULL INTAKE, DOMAIN OBJECT DESIGN & GLOBAL INDUSTRY BENCHMARKS (1.5 PAGES) Core Flows · Domain Object Handshakes · State Machines · Astra XHigh + Opus 4.7 Peer Review

2A. Core User Journeys & Functional Intake Rules

Journey / Capability Persona & Trigger System Action & Hard Gate Rule
NPL-J01 · Stage 1: Concept Brief & 1-In-1-Out Menu Engineering GateCategory Manager / Founder -> `POST /api/npl/skus`Assigns category (`Medovik Cakes, Cheesecakes, Croissants, Savoury, Craft Beverages`), target price point, occasion, and **Menu Engineering Replacement Slot (`1-in-1-out`)**—nominating a low-margin/low-volume `Dog` SKU for sunset if the café display case is at capacity.
NPL-J02 · Stage 2: 4-Tier Sub-Recipe BOM, Baker's % & $a_w$/pH Food-Safety GateExecutive Pastry Chef & QA Lead -> `POST /api/npl/skus/{id}/bom`Builds multi-level BOM (`RM-*` Raw Material -> `WIP-*` Honey Sponge / Dulce de Leche / Frosting -> `BATCH-*` Commissary Slab -> `FG-*` Café Slice), computes **Baker's %**, **Bake Moisture Loss (`8–12%`)**, **Trim/Portion Loss (`4–6%`)**, logs **Water Activity ($a_w \le 0.85$ ambient or `2–4°C` cold-chain)**, **pH**, **Big-9 Allergens**, and **FSSAI Veg/Egg/Non-Veg** nutrition per 100g.
NPL-J03 · Stage 3A: 9-Attribute Blind Hedonic Sensory Panel (`>= 4.0/5.0`)5+ Blind Panellists -> `POST /api/npl/skus/{id}/sensory`Scores `1. Visual Layering & Glaze`, `2. Crumb Moistness`, `3. Honey/Flavor Aroma`, `4. Sweetness/Brix Balance`, `5. Filling-to-Sponge Ratio`, `6. Crust Texture`, `7. Aftertaste`, `8. Portion Value`, `9. Purchase Intent`. Blocks Stage 4 if `mean_score < 4.0` or any attribute `< 3.5`.
NPL-J04 · Stage 3B: `T+4h..T+72h` Holding Decay Curve & 30-Min Bike Delivery Stress TestQA Lead -> `POST /api/npl/skus/{id}/stress-test`Logs organoleptic & moisture-migration checks at **`T+4h, T+12h, T+24h, T+48h, T+72h`** to lock display shelf-life, plus **Commissary Cold-Chain Shock (`2–4°C`)** and **30-Min Zomato/Swiggy Two-Wheeler Vibration & `25°` Braking Tilt Test** (zero lid frosting smear, zero board slide, intact tamper seal).
NPL-J05 · Stage 4: `<= 28%` Theoretical COGS, Packaging & Margin Sign-OffCost Controller / CFO -> `POST /api/npl/skus/{id}/costing-approve`Computes `(raw_bom_cost_inr / net_yield_pct) + primary_cake_board_box_inr + delivery_gel_pack_inr` against net selling price (ex-GST). Hard-blocks progression if `food_cost_pct > 28.0%` without written Founder luxury-tier waiver.
NPL-J06A · Stage 5A (Pillar 1 & 2 — L3: Suresh Nair): CK Commercial 200kg Scaling, Line Certification & Crate Lot QR (`HRL-LOT-*`)L3 CK Production Head (`H-000118`) -> `POST /api/npl/skus/{id}/ck-enablement`Locks commercial deck-oven steam profile, blast-chiller pull-down curve (`+65°C -> +3°C in <=90m`), and ultrasonic portioning cutter calibration at `CK-1/CK-2`. Certifies named CK line bakers (`Sponge, Filling, Portioning`) on Trial Batch `CK-TRIAL-01`, mints scannable Crate Lot QRs (`HRL-LOT-{SKU}-{CK}-{YYYYMMDD}-{BATCH}`) tracking `baked_at, blast_chilled_at, core_temp_c, use_by_at`, and activates `D-2/D-1/D-0 05:00 AM` store indenting.
NPL-J06B · Stage 5B (Pillar 3 — L4: Mahesh Goud -> L6 Store Mgr): Cold-Chain Reefer Logistics & Crate-to-Counter Probe HandshakeL4 Cold-Chain Controller (`H-000124`) & L6 Store Mgr -> `POST /api/npl/crates/{lot_qr}/receive`Enforces Reefer Cabin Pre-Cool Gate (`+2°C..+4°C` before loading), BLE TempTale logger pairing, max crate stack height lock (prevents crushing frosted pastries), and Dual Dispatch Sign-Off (`L3 + Driver`). Any in-transit excursion `> +6°C for >15m` fires a P1 alert to `L4`. At store door, `L6` scans `HRL-LOT-*`, probes core temp (`<= +5.0°C`), and logs condition (`✓ Intact / ⚠️ Condensation / ✕ Crushed`); compromised crates are auto-quarantined.
NPL-J06C · Stage 5C (Pillar 4A — L5: Karthik Reddy & L6: Named Store Mgr): Per-Store Ground Enablement Matrix Unlocks POSL6 Store Mgr (`NAN: Rohit MGR-01`) -> `POST /api/npl/skus/{id}/outlets/{outlet_id}/unlock-pos``L5` stages Rista POS + Swiggy/Zomato SKU in **`LOCKED_NOT_ENABLED`** state for each of the 32 outlets. Store POS & aggregator listing unlock **per individual outlet** only when its Named Store Manager (`L6`) completes all 4 gates: (1) 60s `EN/HI/TE` BOH Video + **1 Practice Plate Photo**, (2) **`>= 90%` FOH Barista Tasting/Allergen Quiz**, (3) Eye-level chiller planogram (`+2..+4°C`) + FSSAI tent card **Live Showcase Photo**, and (4) Custom insert box + frozen gel-pack stock check.
NPL-J06D · Stage 5D (Pillar 4B — L7: Named FOH Dispatch Lead): Last-Mile Rider Handover & First-10-Orders Open-Box Photo GateL7 FOH Dispatch Lead (`NAN: Chimkila S CREW-04`) -> `POST /api/npl/orders/{order_id}/last-mile-pack`For the **first 10 aggregator orders per outlet**, requires an **Open-Box Pack Photo** verifying the slice collar lock + 50g frozen gel pack + allergen seal before handing upright to the Zomato/Swiggy rider. Tracks per-store Last-Mile Damage Rate (`<= 1.0%`), Prep-to-Handover SLA (`<= 90s`), and Customer Rating (`>= 4.6★`); auto-re-locks the Open-Box Photo Gate if store damage exceeds `1.5%`.
NPL-J06E · Stage 5E (Pillar 5 — Last-Minute Rollout Adoption Roll-Up & 5-Axis Filter Engine): Who Has Adopted vs. Who Has NotCOO / Ops Lead / Cluster Mgr -> `GET /api/npl/skus/{id}/adoption-rollup` & `POST /api/npl/skus/{id}/nudge-non-adopted`Renders the real-time **Last-Minute Rollout Adoption Roll-Up Summary**: `🟢 Adopted & POS Unlocked (21/32 · 65.6%)`, `🟡 Last-Minute Lagging / T-6h Risk (7/32 · 21.9%)`, `🔴 Not Adopted / Gate Locked (4/32 · 12.5%)`, and `👥 Crew Certification Roll-Up (482/540 Crew · 89.3% · 58 Pending across 11 Stores)`. Supports **5-Axis Interactive Filtering** (`1. Adoption Status`, `2. Cluster/City/Format`, `3. Blocking Layer L1–L7`, `4. Role/Station`, `5. HOP Escalation Tier 0..3`), **4 Group-By Views** (`By Outlet`, `By Cluster`, `By Blocking Layer`, `By Named Owner / Non-Adopted Staff`), and **1-Tap Batch HOP Nudge**.
NPL-J06F · Stage 5F (Pillar 6 — HOP Nudge & Accountability Compliance `acct-*` / `O-022` / `O-045`): Escalation, M3 Verify & `✕ Cannot` Upstream Re-RoutingL6 Store Mgr / L3 CK / L4 Logistics / Cluster Mgr -> `POST /api/npl/readiness/{id}/cannot-block` & `/m3-verify`Enforces full **HOP Nudge & Accountability compliance**: (1) **Deterministic Escalation Ladder** (`Named Owner T-24h -> HOP Nudge #1 + Store Mgr T-6h/+15m -> HOP Nudge #2 + Cluster Mgr T-2h/+30m -> City/COO Hard Launch Lock T-0`); (2) **M3 Independent Verification** (`✓ Confirm = I checked the work` with `verified_by_id != completed_by_id` vs `↩ Return for correction` with mandatory reason + `revision_count++`); (3) **Structured `✕ Cannot` 6-Reason Chips (`CK Crate Short`, `Cold-Chain Temp Excursion`, `Packaging Insert Missing`, `POS SKU Missing`, `Chiller Down`, `Staff Shortage`)** that record an immutable `BLOCKED` receipt for the store and **automatically re-route accountability + HOP Nudge upstream to the `L3 CK` (`Suresh Nair`) or `L4 Logistics` (`Mahesh Goud`) Named Owner**; (4) **Snooze Cap (`Max 2: +15m / +30m`) & `O-045` Evidence Proportionality**.
NPL-J07 · Stage 6: 14-Day 3-Outlet Canary Pilot (`Jubilee Hills, Nanakramguda, Gachibowli`)Area Manager -> `POST /api/npl/skus/{id}/canary-evaluate`Tracks 14 days of live telemetry: **`Sell-Through >= 75%`**, **`Dump/Wastage <= 8%`**, **`Counter Service Ticket SLA <= 90s`**, **`Aggregator Packaging Complaint Rate < 0.5%`**, and **`Customer Rating >= 4.5/5.0`**.
NPL-J08 · Stage 7: Chain-Wide Scale-Up & `30/60/90-Day` Automated Cohort Kill-SwitchCOO / Founder -> `POST /api/npl/skus/{id}/cohort-decision`Promotes passing Canary SKUs to all 32 outlets and runs automated **30/60/90-Day Post-Launch Cohort Audits** comparing **Actual vs. Theoretical COGS** (`<= +1.5%` variance) and repeat order rate—issuing **`PROMOTE_TO_CORE`**, **`REFORMULATE_STAGE_2`**, or **`SUNSET_KILL_SWITCH`** (auto-archiving POS SKU & halting commissary batching).

2B. Underlying Domain Objects & How They Work Together

[Stage 1: Concept + 1-in-1-out Slot] --> [Stage 2: 4-Tier Sub-Recipe BOM + Baker's % + a_w/pH + Big-9 Allergens] --> [Stage 3: 9-Attr Blind Panel (>=4.0) + T+4h..72h Decay Curve + 30m Zomato/Swiggy Bike Tilt Test] --> [Stage 4: <=28% COGS + Box/Gel-Pack Lock] --> [Stage 5: Rista POS + HSN/GST + 60s Video SOP + FOH Quiz] --> [Stage 6: 14d 3-Outlet Canary (Sell-Through >=75%, Dump <=8%, SLA <=90s)] --> [Stage 7: 30/60/90d Cohort Gate / Kill-Switch]
Domain Object (Table) PK & Tenant Scope Core Attributes & Constraints Cross-Object Handshake
ProductLaunchSKU (npl_skus)sku_id (PK), category, stage_num (1..7)sku_code, name, fssai_dot (VEG/EGG/NON_VEG), target_price_inr, sunset_replacement_sku_id, menu_quadrant (STAR/PLOWHORSE/PUZZLE/DOG), statusMaster 7-stage PLM state machine; enforces 1-in-1-out menu slot cap.
SubRecipeBOMLine (npl_subrecipe_bom)bom_line_id (PK), sku_id (FK)tier_level (1_RM/2_WIP/3_BATCH/4_FG), item_code, bakers_pct, gross_qty_g, bake_loss_pct, trim_loss_pct, net_yield_pct, unit_cost_inr, total_food_cost_pctComputes multi-level yield-adjusted BOM cost; enforces `total_food_cost_pct <= 28.00`.
FoodSafetyLabRecord (npl_food_safety_lab)lab_id (PK), sku_id (FK)water_activity_aw, ph_level, storage_class (AMBIENT/CHILLED_2_4C/FROZEN_18C), big9_allergens_json, kcal_per_100g, sugar_g_per_100g, s3_lab_report_sha256Blocks Stage 3 if `water_activity_aw > 0.85` without mandatory `CHILLED_2_4C` cold-chain lock.
SensoryAndDecayCurve (npl_sensory_decay_curve)panel_id (PK), sku_id (FK)panellist_count (>=5), attr9_scores_json, mean_hedonic_score, decay_t4h_ok, decay_t12h_ok, decay_t24h_ok, decay_t48h_ok, decay_t72h_ok, approved_shelf_life_hoursRequires `mean_hedonic_score >= 4.0` and zero weeping/sogginess up to `approved_shelf_life_hours`.
DeliveryPackagingStressTest (npl_packaging_stress_test)stress_id (PK), sku_id (FK)reefer_shock_2_4c_pass, bike_30min_vibration_pass, tilt_25deg_braking_pass, lid_smear_zero, board_slide_mm (<=2), s3_unboxing_photo_sha256Hard gate before enabling Swiggy/Zomato aggregator channel for the SKU.
CanaryAndCohortTelemetry (npl_post_launch_cohort)cohort_id (PK), sku_id (FK), window_tag (CANARY_14D/DAY_30/DAY_60/DAY_90)pilot_outlet_ids_json, units_allocated, units_sold, sell_through_pct (>=75), dump_wastage_pct (<=8), p95_ticket_sla_sec (<=90), actual_cogs_pct, cohort_verdictDrives Stage 6 Canary promotion and Stage 7 `30/60/90d` automated `SUNSET_KILL_SWITCH`.

2C. State Machines & Operational Guardrails

7-Stage Industrial Patisserie PLM Gate (`NPL-S1`)

1_CONCEPT_SLOT → 2_BOM_AND_LAB_SAFETY → 3_SENSORY_DECAY_AND_BIKE_TEST → 4_COGS_28PCT_LOCK → 5_POS_AND_VIDEO_SOP → 6_CANARY_14D_PILOT → 7_NATIONAL_OR_SUNSET

4-Tier Sub-Recipe Yield & `<= 28%` COGS Guardrail (`NPL-S2`)

Rolls up `Raw Material -> Honey Sponge / Dulce de Leche WIP -> Commissary Slab -> Café Slice` including `8–12%` bake loss, `4–6%` trim loss, and box/gel-pack cost; blocks Stage 4 if `total_food_cost_pct > 28.0%`.

`T+4h..T+72h` Decay Curve & 30-Min Bike Tilt Gate (`NPL-S3`)

Tests moisture migration at `T+4h, 12h, 24h, 48h, 72h` plus a real **30-Min Two-Wheeler Delivery Vibration & `25°` Tilt Test** so zero smeared cakes ever reach a customer.

14-Day Canary & `30/60/90-Day` Cohort Kill-Switch (`NPL-S4`)

Requires `Sell-Through >= 75%`, `Dump <= 8%`, and `Ticket SLA <= 90s` in 3 pilot cafés, followed by automated `30/60/90d` Theoretical-vs-Actual COGS & velocity audits.

2D. Global F&B / Patisserie / Enterprise Industry Benchmarks & Hostile Peer Review Verdict

Global Industry Benchmark / Peer Reviewer Standard / Gate Adopted How Harley's OneOps / HOP Enforces It
Starbucks Siren R&D / Stage-Gate® & TraceGains F&B PLMMulti-Level Sub-Recipe BOM, Baker's % & Yield-Loss RollupModels 4-tier patisserie hierarchy (`Raw Ingredient RM-* -> Sub-Recipe WIP-* [Honey Sponge / Dulce de Leche / Cream Frosting] -> Commissary Batch -> Café Slice FG-*`) with **Baker's %**, **Bake Moisture Loss (`8–12%`)**, **Trim/Slice Loss (`4–6%`)**, and live ingredient price rollup.
Food Safety, Water Activity ($a_w$) & Big-9 Allergen Gate`a_w <= 0.85` Ambient vs. `2–4°C` Cold-Chain + FSSAI LabellingMandates lab recording of **Water Activity ($a_w$)** and **pH** at Stage 2, auto-generates **Big-9 Allergen Matrix** (`Gluten, Dairy, Egg, Tree Nuts, Peanuts, Soy, Sesame, Sulphites, Mustard`), and computes per-100g / per-slice nutrition & **FSSAI Veg/Egg/Non-Veg** dot.
Pret A Manger / Paris Baguette Sensory & Shelf-Life Decay9-Attribute Blind Hedonic Panel (`>= 4.0/5.0`) + `T+4h..T+72h` Decay CurveRequires `>= 5` blind panellists scoring 9 patisserie attributes (`Layering, Crumb Moistness, Honey Aroma, Brix Balance, Filling Ratio, Crust Texture, Aftertaste, Portion Value, Purchase Intent`) PLUS **Ambient & Chilled Display Holding Decay Curve at `T+4h, T+12h, T+24h, T+48h, T+72h`**.
Indian Aggregator Last-Mile Stress TestCold-Chain Shock (`2–4°C`) + 30-Min Zomato/Swiggy Motorbike Vibration & `25°` Tilt GateBefore any cake/slice is enabled on Swiggy/Zomato, Stage 3 requires passing a **Commissary Reefer Shock Test (`2–4°C`)** AND a **30-Minute Two-Wheeler Delivery Box Vibration & `25°` Braking Tilt Test** at `38°C` ambient with zero lid smear or cake-board slide.
Menu Engineering Quadrant & `1-In-1-Out` Complexity CapTheoretical vs. Actual COGS `<= 28%` + Rista POS + 60s BOH Video SOPEnforces **1-in-1-out SKU slot discipline** using the Menu Engineering Matrix (`Stars, Plowhorses, Puzzles, Dogs`), locks `<= 28.0%` BOM Food Cost, syncs Rista POS + `HSN 1905` GST, and gates launch on **60s BOH Assembly Video + `>= 90%` FOH Barista Tasting Quiz**.
14-Day 3-Outlet Canary Pilot & `30/60/90d` Kill-Switch`Sell-Through >= 75%` · `Dump <= 8%` · `Ticket SLA <= 90s`Stage 6 Canary Pilot runs across 3 benchmark cafés (`Jubilee Hills, Nanakramguda, Gachibowli`); Stage 7 runs automated **30/60/90-Day Post-Launch Cohort Reviews** triggering `PROMOTE_TO_CORE`, `REFORMULATE`, or `SUNSET_KILL_SWITCH`.
Codex Alimentarius GHP/HACCP & Dominique Ansel / Pierre Hermé StandardRecipe Version Invalidation + Batch Lot Recall + >14d Stage-Stuck EscalationRemediated per Astra XHigh & Opus 4.7: any edit to `npl_subrecipe_bom` increments `bom_version` and automatically invalidates downstream Stage 2 Lab Safety, Stage 3 Sensory/Decay, and Stage 4 Costing approvals; adds batch lot traceability + `>14d` stage-stuck alert.
Hostile Peer Review Verdict (`Astra XHigh` + `Opus 4.7`)✅ APPROVED — GLOBAL PATISSERIE PLM DEPTHUpgraded from basic 7-stage checklist to full industrial patisserie PLM covering multi-level BOM, $a_w$/pH, `T+4h..72h` decay curve, 30-min bike delivery stress test, and 30/60/90d kill-switch.

2E. Last-Minute Rollout Adoption Roll-Up Summary & 5-Axis Interactive Filter Engine (npl_rollout_adoption_rollup)

🚀 Live Rollout Roll-Up Strip · SKU: N-207 Saffron Pistachio Medovik (D-0 Launch Window)
🟢 ADOPTED & POS UNLOCKED
21 / 32 Outlets (65.6%)
All 4 L6 Gates + M3 Confirmed
🟡 LAST-MINUTE LAGGING / T-6h RISK
7 / 32 Outlets (21.9%)
Partial Quiz / Planogram Pending
🔴 NOT ADOPTED / GATE LOCKED
4 / 32 Outlets (12.5%)
POS Hard-Locked · 2 Upstream ✕ Cannot
👥 CREW CERTIFICATION ROLL-UP
482 / 540 Crew (89.3%)
58 Pending across 11 Outlets
5-Axis Filter Bar: Axis 1 Status: [All 32 | 🔴 Not Adopted (4) | 🟡 Lagging (7) | 🟢 Adopted (21)] · Axis 2 Cluster/City/Format: [All | Hyd West CLM-01 | Hyd Central CLM-02 | Bengaluru | Mumbai | Cloud Kitchen/Airport] · Axis 3 Blocking Layer: [L3 CK | L4 Cold-Chain | L5 POS Sync | L6 BOH Practice Plate | L6 FOH Quiz <90% | L6 Planogram | L7 Packaging] · Axis 4 Role/Station: [Store Mgrs (L6) | FOH Baristas | BOH Kitchen | Dispatch Leads (L7)] · Axis 5 HOP Escalation Tier: [Tier 0 On Track | Tier 1 Store Mgr (T-6h) | Tier 2 Cluster Mgr (T-2h) | Tier 3 City/COO Lock (T-0)]
Group-By Toggle: [By Outlet (32)] · [By Cluster (5)] · [By Blocking Layer (L1–L7)] · [By Named Owner / Non-Adopted Staff]
Outlet & Format Cluster Named Owner (person_id) Adoption Status Crew Cert Blocking Layer & Root Cause HOP Escalation Tier & Upstream Re-Route
Nanakramguda (OUT-NAN) · Flagship Hyd West (CLM-01) Rohit Sharma (MGR-01 · H-000131) 🟢 ADOPTED & POS UNLOCKED 18/18 (100%) NONE_LIVE (All 4 Gates + M3 Confirmed by Jay CLM-01) Tier 0 On Track · First-10 Open-Box Gate Active
Jubilee Hills (OUT-JUB) · Flagship Hyd Central (CLM-02) Priya Menon (MGR-02 · H-000132) 🟡 LAGGING (75% · T-6h) 14/16 (87.5%) L6_FOH_QUIZ_LT_90 (2 Evening Baristas Pending Quiz) Tier 1 Store Mgr Nudged (T-6h) · Snooze 1/2 (+15m)
Kokapet (OUT-KOK) · Café Hyd West (CLM-01) Arvind Rao (MGR-04 · H-000134) 🟡 LAGGING (50% · T-2h) 11/14 (78.6%) L6_BOH_PRACTICE_PLATE + L6_SHOWCASE_PLANOGRAM Tier 2 Cluster Mgr Escalated (T-2h · Jay CLM-01)
Banjara Hills (OUT-BAN) · Café Hyd Central (CLM-02) Vikram Das (MGR-05 · H-000135) 🔴 NOT ADOPTED / BLOCKED 15/15 (100%) ✕ Cannot: CK_CRATE_SHORT (Store 100% Ready; Crate Short) Auto Re-Routed to L3 CK Suresh Nair (H-000118) · Store Cleared
Madhapur (OUT-MAD) · Cloud Kitchen Hyd West (CLM-01) Kiran Kumar (MGR-06 · H-000136) 🔴 NOT ADOPTED / BLOCKED 12/12 (100%) ✕ Cannot: PACKAGING_INSERT_MISSING (Collar Box Missing) Auto Re-Routed to L4 Logistics Mahesh Goud (H-000124) · Tier 3 Lock

2F. Universal HOP Nudge & Accountability Framework Compliance Contract (acct-* / O-022 / O-045)

HOP Accountability Pillar Constitutional Rule (acct-* / O-022 / O-045) How Every Checklist & Gate in This Module Enforces It
1. Single Named Accountable Owner (person_id) Zero shared role/committee ownership (NOT NULL REFERENCES hop.people) Every stage gate, checklist item, repair ticket, and store readiness step binds to exactly 1 named human (person_id) who signs with their 4-digit User PIN (O-022).
2. Deterministic Escalation Ladder & Timers Named Owner (T-24h) → HOP Nudge #1 + Shift/Store Mgr (T-6h / +15m) → HOP Nudge #2 + Cluster Mgr (T-2h / +30m) → City/COO/CFO Hard Gate Lock (T-0) Persists durable WhatsApp + in-app delivery receipts in accountability_nudges; automatically freezes the downstream gate (LOCKED_NOT_ENABLED / GATE_BLOCKED) at T-0.
3. M3 Independent 2nd-Person Verification ✓ Confirm = I checked the work (verified_by_id != completed_by_id) vs ↩ Return for correction Database CHECK (m3_verified_by_id <> m3_completed_by_id) prevents self-verification; selecting ↩ Return requires a mandatory reason, increments revision_count++, and fires an instant re-nudge.
4. Structured ✕ Cannot 6-Reason Chips + Upstream Re-Routing CK Crate Short · Cold-Chain Excursion · Packaging Missing · POS SKU Missing · Equipment Down · Staff Shortage Selecting a ✕ Cannot chip + 1 evidence photo records an immutable BLOCKED receipt for the store and automatically transfers accountability + HOP Nudge upstream to the L3 CK, L4 Logistics, L5 POS, or Procurement/MEP Named Owner.
5. Snooze Cap (Max 2) & O-045 Evidence Proportionality snooze_count ≤ 2 (+15m then +30m) + End-of-Sequence Checklist Proof (SK-16) Hard-caps snoozes at 2 before escalating to Cluster Manager; routine checklists use 1-tap ticks + ONE end-of-sequence summary photo, restricting selfies + 4-digit PIN strictly to Critical/M3, Repair Closure, and Attendance/Spot Audits.
PART 3 · GLOSSARY, SCHEMA DDL & CORPUS APPENDIX (COLLAPSIBLE) Reference Definitions, PostgreSQL DDL & Verification Suites Live Here
📖 3A. Domain Glossary & Canonical Definitions
Term / CodeCanonical Definition in Harley's OneOps / HOP
Baker's Percentage (`bakers_pct`)Formula expression where total flour weight is set to `100%` and all other ingredients (honey, butter, eggs, sugar) are expressed as a percentage of flour weight for deterministic batch scaling.
Water Activity (`a_w`)Ratio of vapor pressure of water in the pastry to pure water (`0.00–1.00`); `a_w <= 0.85` inhibits pathogenic bacterial growth at ambient, whereas `a_w > 0.85` mandates `2–4°C` cold-chain storage.
`T+4h..T+72h` Holding Decay CurveStructured time-series organoleptic evaluation measuring crumb moisture migration, frosting weeping, and slice structural slump at 4, 12, 24, 48, and 72 hours post-assembly.
30-Min Motorbike Delivery Vibration & `25°` Tilt TestPre-launch aggregator packaging stress test simulating 30 minutes in a two-wheeler thermal bag over urban road bumps and `25°` braking angles.
1-In-1-Out Menu Engineering CapRule preventing kitchen/display bloat: launching a new SKU in a full category requires retiring a `Dog` (Low Margin, Low Volume) SKU identified by the Menu Engineering Matrix.
🗄️ 3B. PostgreSQL Schema DDL & Integrity Constraints
CREATE TABLE npl_skus (
    sku_id UUID PRIMARY KEY,
    sku_code VARCHAR(32) UNIQUE NOT NULL,
    name VARCHAR(140) NOT NULL,
    category VARCHAR(48) NOT NULL,
    fssai_dot VARCHAR(12) NOT NULL CHECK (fssai_dot IN ('VEG','EGG','NON_VEG')),
    stage_num SMALLINT NOT NULL DEFAULT 1 CHECK (stage_num BETWEEN 1 AND 7),
    target_price_inr NUMERIC(10,2) NOT NULL,
    sunset_replacement_sku_id UUID REFERENCES npl_skus(sku_id),
    menu_quadrant VARCHAR(16) DEFAULT 'PUZZLE' CHECK (menu_quadrant IN ('STAR','PLOWHORSE','PUZZLE','DOG')),
    status VARCHAR(24) NOT NULL DEFAULT 'IN_PIPELINE'
);

CREATE TABLE npl_subrecipe_bom (
    bom_line_id UUID PRIMARY KEY,
    sku_id UUID NOT NULL REFERENCES npl_skus(sku_id),
    tier_level VARCHAR(16) NOT NULL CHECK (tier_level IN ('1_RM','2_WIP','3_BATCH','4_FG')),
    bakers_pct NUMERIC(6,2),
    bake_loss_pct NUMERIC(5,2) NOT NULL DEFAULT 0.00,
    trim_loss_pct NUMERIC(5,2) NOT NULL DEFAULT 0.00,
    net_yield_pct NUMERIC(5,2) NOT NULL DEFAULT 100.00,
    packaging_cost_inr NUMERIC(10,2) NOT NULL DEFAULT 0.00,
    total_food_cost_pct NUMERIC(5,2) NOT NULL,
    cfo_override_approved BOOLEAN NOT NULL DEFAULT FALSE,
    CONSTRAINT check_28pct_food_cost CHECK (total_food_cost_pct <= 28.00 OR cfo_override_approved = TRUE)
);

CREATE TABLE npl_food_safety_lab (
    lab_id UUID PRIMARY KEY,
    sku_id UUID NOT NULL REFERENCES npl_skus(sku_id) UNIQUE,
    water_activity_aw NUMERIC(4,3) NOT NULL CHECK (water_activity_aw BETWEEN 0.100 AND 0.999),
    ph_level NUMERIC(4,2) NOT NULL,
    storage_class VARCHAR(20) NOT NULL CHECK (storage_class IN ('AMBIENT','CHILLED_2_4C','FROZEN_18C')),
    big9_allergens_json JSONB NOT NULL DEFAULT '[]'::jsonb,
    CONSTRAINT check_aw_cold_chain CHECK (water_activity_aw <= 0.850 OR storage_class IN ('CHILLED_2_4C','FROZEN_18C'))
);

CREATE TABLE npl_sensory_decay_curve (
    panel_id UUID PRIMARY KEY,
    sku_id UUID NOT NULL REFERENCES npl_skus(sku_id),
    panellist_count SMALLINT NOT NULL CHECK (panellist_count >= 5),
    mean_hedonic_score NUMERIC(3,2) NOT NULL CHECK (mean_hedonic_score >= 4.00),
    decay_t4h_ok BOOLEAN NOT NULL,
    decay_t12h_ok BOOLEAN NOT NULL,
    decay_t24h_ok BOOLEAN NOT NULL,
    decay_t48h_ok BOOLEAN NOT NULL,
    decay_t72h_ok BOOLEAN NOT NULL,
    approved_shelf_life_hours SMALLINT NOT NULL
);

CREATE TABLE npl_packaging_stress_test (
    stress_id UUID PRIMARY KEY,
    sku_id UUID NOT NULL REFERENCES npl_skus(sku_id) UNIQUE,
    reefer_shock_2_4c_pass BOOLEAN NOT NULL,
    bike_30min_vibration_pass BOOLEAN NOT NULL,
    tilt_25deg_braking_pass BOOLEAN NOT NULL,
    lid_smear_zero BOOLEAN NOT NULL,
    board_slide_mm NUMERIC(4,1) NOT NULL CHECK (board_slide_mm <= 2.0)
);

CREATE TABLE npl_post_launch_cohort (
    cohort_id UUID PRIMARY KEY,
    sku_id UUID NOT NULL REFERENCES npl_skus(sku_id),
    window_tag VARCHAR(16) NOT NULL CHECK (window_tag IN ('CANARY_14D','DAY_30','DAY_60','DAY_90')),
    sell_through_pct NUMERIC(5,2) NOT NULL,
    dump_wastage_pct NUMERIC(5,2) NOT NULL,
    p95_ticket_sla_sec SMALLINT NOT NULL,
    actual_cogs_pct NUMERIC(5,2) NOT NULL,
    cohort_verdict VARCHAR(24) NOT NULL CHECK (cohort_verdict IN ('PROMOTE_TO_CORE','HOLD_REFORMULATE','SUNSET_KILL_SWITCH'))
);

-- HOSTILE PEER REVIEW FIXES (OPUS 4.7 MAX & ASTRA EXTRA HIGH - 2026-10-22):
-- 1. Prevent M*N fan-out in npl_rollout_adoption_rollup via LATERAL LIMIT 1 joins
-- 2. Prevent stale M3 confirm from unlocking POS when an OPEN_BLOCKED Cannot receipt exists
ALTER TABLE npl_cannot_block_receipts ADD COLUMN IF NOT EXISTS resolution_status VARCHAR(24) NOT NULL DEFAULT 'OPEN_BLOCKED'
    CHECK (resolution_status IN ('OPEN_BLOCKED','RESOLVED_UPSTREAM'));
ALTER TABLE npl_cannot_block_receipts ADD COLUMN IF NOT EXISTS idempotency_key VARCHAR(64) UNIQUE NOT NULL;
CREATE UNIQUE INDEX IF NOT EXISTS idx_npl_cannot_open_unique
    ON npl_cannot_block_receipts (sku_id, outlet_id, cannot_reason_chip)
    WHERE resolution_status = 'OPEN_BLOCKED';

ALTER TABLE npl_ground_outlet_readiness ADD COLUMN IF NOT EXISTS m3_verified_by_id INTEGER;
ALTER TABLE npl_ground_outlet_readiness ADD COLUMN IF NOT EXISTS open_cannot_blockers_count SMALLINT NOT NULL DEFAULT 0;
ALTER TABLE npl_ground_outlet_readiness ADD CONSTRAINT check_m3_and_zero_cannot_before_pos_unlock
    CHECK (pos_unlock_status <> 'ENABLED_LIVE' OR (m3_verified_by_id IS NOT NULL AND m3_verified_by_id <> l6_store_mgr_person_id AND open_cannot_blockers_count = 0));

CREATE OR REPLACE VIEW npl_rollout_adoption_rollup_v2 AS
SELECT
    r.sku_id,
    r.outlet_id,
    o.cluster_code,
    o.city_name,
    o.outlet_format,
    r.l6_store_mgr_person_id,
    CASE
        WHEN c.receipt_id IS NOT NULL OR r.open_cannot_blockers_count > 0 OR r.pos_unlock_status = 'SUSPENDED_QUALITY' THEN 'NOT_ADOPTED_BLOCKED'
        WHEN r.pos_unlock_status = 'ENABLED_LIVE' THEN 'ADOPTED_LIVE'
        ELSE 'LAGGING_RISK'
    END AS adoption_status,
    COALESCE(c.rerouted_to_layer_code,
        CASE
            WHEN NOT r.boh_video_completed OR r.practice_plate_photo_sha256 IS NULL THEN 'L6_BOH_PRACTICE_PLATE'
            WHEN r.foh_quiz_pass_pct < 90.00 THEN 'L6_FOH_QUIZ_LT_90'
            WHEN r.showcase_planogram_photo_sha256 IS NULL THEN 'L6_SHOWCASE_PLANOGRAM'
            WHEN r.insert_box_stock_qty < 50 OR r.frozen_gel_pack_stock_qty < 50 THEN 'L7_LAST_MILE_PACKAGING'
            ELSE 'NONE_LIVE'
        END
    ) AS blocking_layer_code,
    COALESCE(n.escalation_tier, 0) AS hop_escalation_tier,
    r.foh_quiz_pass_pct,
    r.pos_unlock_status
FROM npl_ground_outlet_readiness r
LEFT JOIN outlets o ON o.outlet_id = r.outlet_id
LEFT JOIN LATERAL (
    SELECT c1.receipt_id, c1.rerouted_to_layer_code
    FROM npl_cannot_block_receipts c1
    WHERE c1.sku_id = r.sku_id AND c1.outlet_id = r.outlet_id AND c1.resolution_status = 'OPEN_BLOCKED'
    ORDER BY c1.created_at DESC LIMIT 1
) c ON TRUE
LEFT JOIN LATERAL (
    SELECT n1.escalation_tier
    FROM accountability_nudges n1
    WHERE n1.entity_ref = r.readiness_id::text
    ORDER BY n1.created_at DESC LIMIT 1
) n ON TRUE;
📂 3C. Source Corpus Mapping & Automated Verification Evidence
Source Folder / ArtifactFiles / RowsTarget Domain ObjectStatus
npl-sku-master-312312 Active & Pipeline SKUsProductLaunchSKU (npl_skus)100% MAPPED
commissary-subrecipe-bom-sheets4-Tier Sub-Recipe BOMs & Baker's %SubRecipeBOMLine (npl_subrecipe_bom)100% MAPPED
qa-sensory-and-decay-logs9-Attr Sensory + T+4h..72h Decay + 30m Bike TestSensoryAndDecayCurve + DeliveryPackagingStressTest100% MAPPED
canary-and-30-60-90-cohort14d Canary & 30/60/90d Cohort TelemetryCanaryAndCohortTelemetry (npl_post_launch_cohort)100% MAPPED

Automated Gate Evidence: `pytest tests/test_npl_lifecycle.py` — 100% green across 7-stage progression, 4-tier BOM yield rollup, `a_w > 0.85` cold-chain lock, `< 4.0` sensory block, 30-min bike tilt packaging gate, `> 28%` COGS block, and 14d canary / 30-60-90d kill-switch.