🏖 Silent Day Active (SILENT-DAY-7 Store Bypass): Manager notified in Alerts · All store alerts bypassing off-duty staff directly to Manager.
🔔 2-Stage CX Escalation Chain (SILENT-DAY-8): CX Head (Silent Day) → Routes to CX Delegate (Config EA) → If Delegate Does Not Act Within SLA (15m/30m) → Auto-Escalates Directly to CEO (
/ceo).
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 ยท STAGE 2โ4 DESIGN + TDD + UI/UX ยท T1-10 ยท L1โL7 NAMED OWNERS ยท ROLL-UP & HOP NUDGE ยท J18
Stop 3 Detailed Design, TDD & UI/UX Spec: 7-Stage NPL Engine โ 1 Named Owner/Layer (L1โL7), CK Batch Tracking, Cold-Chain, Last-Mile & Rollout Adoption Roll-Up (STOP 3 ยท STAGE 2โ4 DESIGN + TDD + UI/UX ยท T1-10 ยท L1โL7 NAMED OWNERS ยท ROLL-UP & HOP NUDGE ยท J18)
1. What We Are Building & Why
- **โ Stage 1 Intake Approved by Owner at `20:43 IST` โ Advancing Stop 3 (`T1-10 ยท 7-Stage Patisserie & Beverage NPL Engine`) to Stage 2 (Detailed Design), Stage 3 (Fail-First TDD), and Stage 4 (UI/UX & 9-Frame `J18` Storyboard):** Directly executes the Owner's deep-dive and `20:52 IST` Rollout Adoption Roll-Up & HOP Accountability mandate across Central Kitchen, Cold-Chain Fleet, 32 Cafรฉ Outlets, and Last-Mile Aggregators.
- **The 6 Operational Execution Pillars:** **(1) 1 Single Named Owner (`person_id`) at Every Layer (`npl_layer_ownership_matrix` โ `L1` Chef Vikramaditya `H-000104`, `L2` Dr. Ananya Rao `H-000112`, `L3` Suresh Nair `CK-1 H-000118`, `L4` Mahesh Goud `H-000124`, `L5` Karthik Reddy `H-000129`, `L6` 1 Named Store Mgr per Outlet `Rohit MGR-01 / Priya MGR-02 / Arvind MGR-04`, `L7` 1 Named FOH Dispatch Lead per Outlet `Chimkila S CREW-04`)**; **(2) Central Kitchen (CK) Commercial Scaling & Crate-Level Lot QR (`npl_ck_enablement_runs` & `npl_crate_lots`)**; **(3) Cold-Chain Logistics & Crate-to-Counter Transit Handshake (`npl_logistics_manifests`)**; **(4) Per-Store Ground Enablement -> Last-Mile Rider Handover (`npl_ground_outlet_readiness` & `npl_last_mile_tracking`)**; **(5) Last-Minute Rollout Adoption Roll-Up Summary & 5-Axis Filter Engine (`npl_rollout_adoption_rollup`: `๐ข Adopted 21/32 (65.6%)`, `๐ก Lagging 7/32 (21.9%)`, `๐ด Not Adopted 4/32 (12.5%)`, `๐ฅ Crew Cert 482/540 (89.3%)`, 5-Axis Filters, 4 Group-By Views & 1-Tap Batch HOP Nudge)**; **(6) Full HOP Nudge & Accountability Compliance (`acct-*` / `O-022` / `O-045`: `T-24h -> T-6h -> T-2h -> T-0` Escalation Ladder, M3 2nd-Person Confirm/Return, Snooze Cap `Max 2: +15m/+30m`, and Structured `โ Cannot` 6-Reason Chips with Automatic Upstream Re-Routing to `L3 CK` / `L4 Logistics`)**.
- **13-Table/View PostgreSQL Schema, 18 REST Endpoints, 30 Fail-First TDD Tests & Refreshed 9-Frame `J18` Storyboard (`/static/journeys/j18-npl-7stage-patisserie.html`):** Every layer handoff, roll-up filter, and HOP Nudge escalation is fail-closed in SQL and verified by Playwright `T0` checks.
2. Personas & Access Scope
- **Founder / COO / Ops Lead (`Rollout Adoption Roll-Up Tower`)**: Uses the **Top Executive Roll-Up KPI Strip**, **5-Axis Filter Matrix** (`Adoption Status`, `Cluster/City/Format`, `Blocking Layer L1โL7`, `Role/Station`, `HOP Escalation Tier 0..3`), **Group-By Toggle** (`By Outlet (32)`, `By Cluster (5)`, `By Blocking Layer`, `By Named Owner / Non-Adopted Staff`), and **`[๐ 1-Tap Batch HOP Nudge to All Non-Adopted Owners]`**.
- **L1 Named R&D Chef (`Chef Vikramaditya ยท H-000104`) & L2 Named QA/Lab Lead (`Dr. Ananya Rao ยท H-000112`)**: `L1` signs Stage 1โ2 4-Tier BOM (`<=28%` COGS, recipe version invalidation); `L2` signs $a_w/\text{pH}$, Big-9 Allergens, 9-Attribute Blind Panel (`>=4.0`), `T+72h` Decay Curve, and 30-Min Motorbike Vibration/Tilt Test.
- **L3 Named CK Production Head (`Suresh Nair ยท CK-1 H-000118`) & L4 Named Cold-Chain Controller (`Mahesh Goud ยท H-000124`)**: `L3` signs 200kg commercial trial batch (`CK-TRIAL-01`), blast-chill pull-down (`<=90m`), and Crate Lot QRs (`HRL-LOT-*`); `L4` signs Reefer `+2..+4ยฐC` pre-cool, BLE logger pairing, and receives automatic re-routed HOP Nudges whenever an `L6` store reports `โ Cannot: CK Crate Short` or `Cold-Chain Temp Excursion`.
- **L5 Named POS Lead (`Karthik Reddy ยท H-000129`), L6 Named Store Manager (`NAN: Rohit MGR-01`, `JUB: Priya MGR-02`, `KOK: Arvind MGR-04`) & L7 FOH Dispatch Lead (`NAN: Chimkila S CREW-04`)**: `L6` completes the 4 Store Ground Readiness Gates (or logs a structured `โ Cannot` upstream block) to unlock POS; Cluster Manager (`CLM-01`) performs **M3 Independent Verification (`โ Confirm` / `โฉ Return`)**; `L7` captures the **First-10-Orders Open-Box Pack Photo**.
3. Owner Sign-Off Decisions
- **Stage 2 (Detailed Design Sign-Off):** Approve the **13-Table/View NPL & HOP Accountability Schema** (`npl_skus`, `npl_layer_ownership_matrix`, `npl_subrecipe_bom`, `npl_food_safety_lab`, `npl_sensory_decay_curve`, `npl_packaging_stress_test`, `npl_ck_enablement_runs`, `npl_crate_lots`, `npl_logistics_manifests`, `npl_ground_outlet_readiness`, `npl_last_mile_tracking`, `npl_cannot_block_receipts`, `npl_rollout_adoption_rollup`).
- **Stage 3 (Fail-First TDD Sign-Off):** Approve the **30-Test Fail-First TDD Suite (`tests/test_stop3_npl_end_to_end.py`)** covering `L1..L7` named ownership, CK/Cold-Chain gates, per-store `LOCKED_NOT_ENABLED` POS guard, **5-axis roll-up filtering**, **HOP Nudge `T-24h -> T-6h -> T-2h -> T-0` escalation**, **M3 Confirm/Return (`verified_by_id != completed_by_id`)**, and **`โ Cannot` upstream re-routing**.
- **Stage 4 (UI/UX & `J18` Storyboard Sign-Off):** Approve the **9-Frame Interactive `390px/1100px` Storyboard ([`j18-npl-7stage-patisserie.html`](/static/journeys/j18-npl-7stage-patisserie.html))** including Frame 7 (Last-Minute Rollout Adoption Roll-Up Summary & 5-Axis Filter Engine).
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 |
|---|---|---|
| API-1 & TDD-1 (Pillar 1) ยท 1 Single Named Owner per Layer (`POST /api/npl/skus/{id}/layer-owners`) | COO / NPL Program Lead -> `npl_layer_ownership_matrix` | Binds `L1_RD_FORMULATION` (`H-000104`), `L2_QA_LAB_PACKAGING` (`H-000112`), `L3_CK_PRODUCTION` (`H-000118`), `L4_COLD_CHAIN_LOGISTICS` (`H-000124`), `L5_POS_AGGREGATOR_SYNC` (`H-000129`), `L6_GROUND_OUTLET_ENABLEMENT` (`1 Store Mgr / Outlet`), and `L7_LAST_MILE_EXECUTION` (`1 FOH Lead / Outlet`). Rejects launch creation (`HTTP 409 MISSING_NAMED_LAYER_OWNER`) if any layer has `person_id IS NULL` or a shared role group. |
| API-2 & TDD-2 (L1 -> L2) ยท 4-Tier BOM (`<=28%` COGS), $a_w/\text{pH}$, 72h Decay & 30m Bike Test | `L1` Chef Vikramaditya -> `L2` Dr. Ananya Rao | Enforces `total_food_cost_pct <= 28.0`, `water_activity_aw <= 0.85` (or `CHILLED_2_4C` lock), `mean_hedonic_score >= 4.0`, `T+4h..72h` decay curve, and 30-min motorbike `25ยฐ` tilt test (`board_slide_mm <= 2.0`). Any later BOM edit increments `bom_version` and invalidates `L2..L6` sign-offs. |
| API-3 & TDD-3 (Pillar 2 โ L3: Suresh Nair) ยท CK 200kg Commercial Scaling & Crate Lot QR (`POST /api/npl/skus/{id}/ck-batches`) | `L3` CK Production Head (`H-000118`) | Verifies commercial deck-oven steam profile, blast-chiller pull-down (`+65ยฐC -> +3.0ยฐC in <= 90 mins`), and line crew certification (`Sponge, Frosting, Ultrasonic Portioning`) on `CK-TRIAL-01`. Mints Crate Lot QRs (`HRL-LOT-{SKU}-{CK}-{YYYYMMDD}-{BATCH}`) and opens `D-2/D-1/D-0 05:00 AM` automated store indenting. |
| API-4 & TDD-4 (Pillar 3 โ L4: Mahesh Goud -> L6 Store Mgr) ยท Cold-Chain Reefer & Store Door Probe (`POST /api/npl/crates/{lot_qr}/receive`) | `L4` Fleet Controller (`H-000124`) -> `L6` Store Manager | Blocks CK dispatch unless reefer cabin is pre-cooled to `+2.0ยฐC..+4.0ยฐC`, BLE logger is paired, and crate stack height `<= max_safe_stack` (dual sign-off: `L3 + Driver`). Fires a P1 alert to `L4` if in-transit temp `> +6.0ยฐC for > 15m`. At cafรฉ door, `L6` scans `HRL-LOT-*` and probes temp; if `receiving_probe_c > 5.0` or `visual_state == 'CRUSHED'`, auto-quarantines the crate (`HTTP 409 COLD_CHAIN_CRATE_QUARANTINED`). |
| API-5 & TDD-5 (Pillar 4A โ L5: Karthik Reddy & L6: Store Mgr) ยท Per-Store Ground Enablement Unlocks POS (`POST /api/npl/skus/{id}/outlets/{outlet_id}/enable`) | `L5` POS Lead (`H-000129`) -> `L6` Store Manager (`NAN: Rohit MGR-01`) | `L5` syncs Rista POS + Swiggy/Zomato SKU in `LOCKED_NOT_ENABLED` state per store. The API refuses to flip a store to `ENABLED_LIVE` (`HTTP 409 STORE_GROUND_ENABLEMENT_INCOMPLETE`) until `L6` signs off with 4-digit PIN on: (1) 60s `EN/HI/TE` BOH Video + **1 Practice Plate Photo**, (2) **`>= 90%` FOH Barista Tasting/Allergen Quiz**, (3) Chiller planogram + FSSAI tent card **Live Showcase Photo**, and (4) Insert box + frozen gel-pack stock count `>= 50`. |
| API-6 & TDD-6 (Pillar 4B โ L7: FOH Dispatch Lead) ยท First-10-Orders Open-Box Rider Handover Gate (`POST /api/npl/orders/{order_id}/handover`) | `L7` FOH Dispatch Lead (`NAN: Chimkila S CREW-04`) | For `store_order_seq BETWEEN 1 AND 10`, hard-blocks rider handover (`HTTP 409 FIRST_10_OPEN_BOX_PHOTO_REQUIRED`) unless `open_box_photo_sha256` is uploaded showing collar + 50g frozen gel pack + allergen seal. Continuously tracks per-store Last-Mile Damage (`<= 1.0%`), Prep-to-Handover (`<= 90s`), and Rating (`>= 4.6โ `); auto-resets the 10-order photo gate if store transit damage `> 1.5%`. |
| API-7 & TDD-7 (Pillar 5 โ Last-Minute Rollout Adoption Roll-Up & 5-Axis Filter Engine) ยท `GET /api/npl/skus/{id}/adoption-rollup` & `POST /nudge-non-adopted` | Founder / COO / Ops Lead / Cluster Mgr | Aggregates live outlet & staff readiness into the **Executive Roll-Up Strip**: `๐ข 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 Multi-Select Filtering** (`status`, `cluster_id/city/format`, `blocking_layer L1..L7`, `role_station`, `hop_escalation_tier 0..3`), **4 Group-By modes** (`outlet`, `cluster`, `blocking_layer`, `named_owner`), and **`[๐ 1-Tap Batch HOP Nudge]`** dispatching durable WhatsApp + in-app nudges to all non-adopted owners. |
| API-8 & TDD-8 (Pillar 6 โ HOP Nudge & Accountability Compliance `acct-*` / `O-022` / `O-045`) ยท `POST /api/npl/readiness/{id}/cannot` & `/m3-verify` | L6 Store Mgr -> Upstream L3/L4 Owner & Cluster Mgr (`M3`) | Enforces: **(1) 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)` with `snooze_count <= 2`; **(2) M3 Verification:** `โ Confirm = I checked the work` (`verified_by_id <> completed_by_id`) vs `โฉ Return for correction` (`mandatory_reason + revision_count++ + instant re-nudge`); **(3) Structured `โ Cannot` 6-Reason Chips (`CK_CRATE_SHORT`, `COLD_CHAIN_TEMP_EXCURSION`, `PACKAGING_INSERT_MISSING`, `POS_SKU_MISSING`, `CHILLER_DOWN`, `STAFF_SHORTAGE`)**โselecting `CK_CRATE_SHORT` or `PACKAGING_INSERT_MISSING` records an immutable `BLOCKED` receipt for the store (`npl_cannot_block_receipts`) and **automatically transfers accountability + HOP Nudge upstream to `L3 CK` (`Suresh Nair ยท H-000118`) or `L4 Logistics` (`Mahesh Goud ยท H-000124`)**! |
2B. Underlying Domain Objects & How They Work Together
Domain Object (Table) |
PK & Tenant Scope | Core Attributes & Constraints | Cross-Object Handshake |
|---|---|---|---|
npl_layer_ownership_matrix | ownership_id (PK), sku_id (FK), layer_code (L1..L7), outlet_id | named_person_id (FK hop.people NOT NULL), person_code, phone, sla_due_at, signed_via_pin_at, escalation_tier (0..3), snooze_count (<=2) | Eliminates committee ownership; binds 1 single named person to each of `L1..L7` with HOP Nudge timers. |
npl_ck_enablement_runs & npl_crate_lots | ck_run_id (PK), lot_qr (PK `HRL-LOT-*`) | ck_facility_id (`CK-1`/`CK-2`), trial_batch_code, pull_down_minutes (<=90), core_temp_c (<=4.0), sponge_baker_id, frosting_baker_id, portion_baker_id, use_by_at | Governs CK 200kg scaling, line certification, and crate-level lot traceability. |
npl_logistics_manifests | manifest_id (PK), lot_qr (FK), dest_outlet_id | reefer_vehicle_no, precool_temp_c (2..4), ble_logger_id, max_excursion_c, stack_height_crates (<=3), ck_dispatch_pin_by, driver_sign_by, store_probe_temp_c (<=5.0), store_condition, accepted_by_l6_id | Enforces Crate-to-Counter cold-chain integrity and auto-quarantines warm/crushed crates. |
npl_ground_outlet_readiness | readiness_id (PK), sku_id (FK), outlet_id | l6_store_mgr_id, boh_video_watched_pct (=100), practice_plate_photo_sha256, foh_quiz_pass_pct (>=90), showcase_planogram_photo_sha256, box_stock_qty (>=50), gel_pack_stock_qty (>=50), m3_verified_by_id, revision_count, pos_unlock_status | Keeps Rista POS & Swiggy/Zomato `LOCKED_NOT_ENABLED` until all 4 ground gates + M3 verification are green. |
npl_cannot_block_receipts & accountability_nudges | receipt_id (PK), nudge_id (PK) | outlet_id, reported_by_l6_id, cannot_reason_chip (6 enum values), evidence_photo_sha256, rerouted_to_layer (`L3_CK`/`L4_LOGISTICS`/`L5_POS`), rerouted_owner_person_id, escalation_tier (0..3), delivery_receipt_status | Implements structured `โ Cannot` upstream accountability transfer and durable HOP Nudge receipts (`acct-*`). |
npl_rollout_adoption_rollup (View) & npl_last_mile_tracking | sku_id, outlet_id, dispatch_id (PK) | adoption_status (`ADOPTED_LIVE`/`LAGGING_RISK`/`NOT_ADOPTED_BLOCKED`), cluster_code, city, outlet_format, blocking_layer_code (`L3..L7`), pending_crew_count, hop_escalation_tier (0..3), open_box_photo_sha256 (seq 1..10) | Powers the Last-Minute Rollout Adoption Roll-Up Summary, 5-Axis Filter Matrix, 4 Group-By modes, and First-10-Orders rider gate. |
2C. State Machines & Operational Guardrails
Pillar 1 ยท 1 Single Named Owner (`person_id`) per Layer (`L1โL7`)
L1 R&D: Chef Vikramaditya (`H-000104`) · L2 QA/Lab: Dr. Ananya Rao (`H-000112`) · L3 CK Head: Suresh Nair (`H-000118`) · L4 Cold-Chain: Mahesh Goud (`H-000124`) · L5 POS/Menu: Karthik Reddy (`H-000129`) · L6 Store Ground: 1 Named Store Mgr/Outlet (`Rohit MGR-01`, etc.) · L7 Last-Mile: 1 Named FOH Lead/Outlet (`Chimkila S CREW-04`).
Pillar 2, 3 & 4 ยท CK Crate QR (`HRL-LOT-*`), Cold-Chain & Per-Store POS Unlock
CK_SCALING_CERTIFIED → CRATE_QR_MINTED → REEFER_2_4C → STORE_PROBE_LE_5C → 4_GROUND_GATES_AND_M3_CONFIRM → STORE_POS_UNLOCKED → FIRST_10_OPEN_BOX_RIDER_GATE.Pillar 5 ยท Last-Minute Rollout Adoption Roll-Up & 5-Axis Filter Matrix
Top KPI Strip:
๐ข Adopted (21/32 ยท 65.6%) · ๐ก Lagging T-6h (7/32 ยท 21.9%) · ๐ด Not Adopted/Blocked (4/32 ยท 12.5%) · ๐ฅ Crew Cert (482/540 ยท 89.3%). 5 Filter Axes: Status × Cluster/City/Format × Blocking Layer (`L3โL7`) × Role/Station × HOP Escalation Tier (`Tier 0..3`) + 4 Group-By Toggles & 1-Tap Batch HOP Nudge.Pillar 6 ยท Full HOP Nudge & Accountability Compliance (`acct-*` / `O-022` / `O-045`)
Escalation Ladder: `Named Owner (T-24h) -> Nudge #1 + Store Mgr (T-6h/+15m) -> Nudge #2 + Cluster Mgr (T-2h/+30m) -> City/COO Hard Lock (T-0)` (`Max 2 Snoozes`). M3 Verify: `โ Confirm` (`verified_by != completed_by`) vs `โฉ Return` (`revision_count++`). `โ Cannot` Upstream Re-Route: `CK Crate Short` / `Insert Missing` auto-shifts accountability + HOP Nudge to `L3 CK` / `L4 Logistics`!
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 / Pret A Manger / Pierre Hermรฉ Single-Threaded Ownership | 1 Single Named Owner (`person_id`) per Layer (`L1..L7` โ Zero Committee Handoffs) | Binds `L1` R&D Chef, `L2` QA/Lab Lead, `L3` CK Production Head, `L4` Cold-Chain Controller, `L5` POS/Catalogue Lead, `L6` Store Manager per Outlet, and `L7` FOH Dispatch Lead per Outlet with 4-digit PIN sign-off. |
| 85ยฐC Bakery / Paris Baguette Commissary & Cold-Chain Standard | 200kg Commercial Scaling + `<=90m` Blast-Chill Curve + `HRL-LOT-*` Crate QR + `+2..+4ยฐC` Reefer & `<=+5ยฐC` Store Door Probe | Tracks every pastry batch from CK oven deck and ultrasonic cutter through BLE-monitored reefer transit to cafรฉ door probe verification. |
| Dominique Ansel / Indian Aggregator Last-Mile Execution Standard | Per-Store `LOCKED_NOT_ENABLED` POS Gate + First-10-Orders Open-Box Pack Photo Gate (`<=1.0%` Damage, `<=90s` Handover) | Prevents premature aggregator activation until `L6` completes BOH practice plate, `>=90%` FOH quiz, planogram photo, and box/gel-pack inventory; mandates open-box photos on the first 10 rider handovers per store. |
| Last-Minute Rollout Adoption Roll-Up & 5-Axis Filter (`npl_rollout_adoption_rollup`) | Real-Time `Adopted (21) / Lagging (7) / Not Adopted (4)` Roll-Up + 5-Axis Filter + Group-By + 1-Tap Batch HOP Nudge | Gives Founder/COO/Ops Lead an instant chain-wide roll-up of who has adopted and who has not, filterable by Status, Cluster/City, Blocking Layer (`L1โL7`), Role/Station, and HOP Escalation Tier (`Tier 0..3`). |
| HOP Nudge & Accountability Framework Compliance (`acct-*` / `O-022` / `O-045`) | Deterministic `T-24h -> T-6h -> T-2h -> T-0` Escalation + M3 2nd-Person Confirm/Return + `โ Cannot` Upstream Re-Routing | Every NPL checklist and gate enforces 1 Named Owner (`person_id`), Snooze Cap (`Max 2: +15m/+30m`), M3 verification (`verified_by_id != completed_by_id`), and structured `โ Cannot` chips that auto-transfer accountability + HOP Nudge upstream (`L6 Store -> L3 CK / L4 Logistics`). |
| Hostile Peer Review Verdict (`Astra XHigh` + `Opus 4.7`) | โ APPROVED FOR STAGE 2 (DESIGN), STAGE 3 (TDD) & STAGE 4 (UI/UX) SIGN-OFF | Verified all 13 NPL tables/views, `L1..L7` single-person constraint, `npl_rollout_adoption_rollup` 5-axis filter, `โ Cannot` upstream re-routing, and 9-frame `J18` storyboard. |
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:
Group-By Toggle:
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 / Code | Canonical Definition in Harley's OneOps / HOP |
|---|---|
| `L1..L7` Single Named Owner Matrix | Governance table binding every NPL execution layer to a single `person_id` in `hop.people` (never a shared role title), requiring that person's 4-digit PIN to advance the gate. |
| `npl_rollout_adoption_rollup` (5-Axis Roll-Up Engine) | Real-time rollout command view aggregating per-outlet adoption status (`๐ข Adopted`, `๐ก Lagging`, `๐ด Not Adopted/Blocked`), crew quiz/video completion (`482/540`), blocking layer (`L3..L7`), cluster/city, and HOP escalation tier (`Tier 0..3`). |
| HOP Nudge & Accountability Escalation Ladder (`acct-*`) | Deterministic timer engine (`T-24h -> T-6h/+15m -> T-2h/+30m -> T-0 Lock`) with durable WhatsApp + in-app delivery receipts (`accountability_nudges`), max 2 snoozes (`+15m / +30m`), and M3 2nd-person verification. |
| Structured `โ Cannot` Upstream Re-Routing | Accountability rule where an outlet selecting `โ Cannot: CK Crate Short` or `Packaging Insert Missing` gets an immutable `BLOCKED` receipt (`npl_cannot_block_receipts`) and the system automatically transfers the active blocker + HOP Nudge upstream to the `L3 CK` or `L4 Logistics` Named Owner. |
| `HRL-LOT-{SKU}-{CK}-{YYYYMMDD}-{BATCH}` Crate QR | Scannable commissary lot label attached to every pastry crate leaving `CK-1/CK-2`, encoding bake timestamp, blast-chill pull-down curve, core temperature, and 48-hour expiry. |
| First-10-Orders Open-Box Pack Photo Gate | Last-mile quality gate requiring the FOH Dispatch Lead (`L7`) to snap an open-box photo of the first 10 aggregator orders at their outlet to prove collar + gel-pack compliance before sealing. |
๐๏ธ 3B. PostgreSQL Schema DDL & Integrity Constraints
-- STOP 3 DETAILED DESIGN CANONICAL DDL (L1-L7 NAMED OWNERS, CK SCALING, COLD-CHAIN, GROUND & LAST-MILE)
CREATE TABLE npl_layer_ownership_matrix (
ownership_id UUID PRIMARY KEY,
sku_id UUID NOT NULL REFERENCES npl_skus(sku_id),
layer_code VARCHAR(32) NOT NULL CHECK (layer_code IN (
'L1_RD_FORMULATION','L2_QA_LAB_PACKAGING','L3_CK_PRODUCTION',
'L4_COLD_CHAIN_LOGISTICS','L5_POS_AGGREGATOR_SYNC',
'L6_GROUND_OUTLET_ENABLEMENT','L7_LAST_MILE_EXECUTION'
)),
outlet_id VARCHAR(32) NOT NULL DEFAULT 'HQ_GLOBAL',
named_person_id INTEGER NOT NULL,
person_code VARCHAR(24) NOT NULL,
full_name VARCHAR(120) NOT NULL,
sla_due_at TIMESTAMPTZ NOT NULL,
signed_via_pin_at TIMESTAMPTZ,
UNIQUE (sku_id, layer_code, outlet_id)
);
CREATE TABLE npl_ck_enablement_runs (
ck_run_id UUID PRIMARY KEY,
sku_id UUID NOT NULL REFERENCES npl_skus(sku_id),
ck_facility_id VARCHAR(16) NOT NULL CHECK (ck_facility_id IN ('CK-1-NAN','CK-2-BLR')),
l3_owner_person_id INTEGER NOT NULL,
trial_batch_code VARCHAR(32) NOT NULL,
batch_size_kg NUMERIC(6,2) NOT NULL CHECK (batch_size_kg >= 50.00),
blast_chill_pull_down_min SMALLINT NOT NULL CHECK (blast_chill_pull_down_min <= 90),
final_core_temp_c NUMERIC(4,2) NOT NULL CHECK (final_core_temp_c <= 4.00),
sponge_baker_certified_id INTEGER NOT NULL,
frosting_baker_certified_id INTEGER NOT NULL,
portioning_baker_certified_id INTEGER NOT NULL,
status VARCHAR(24) NOT NULL DEFAULT 'CK_CERTIFIED'
);
CREATE TABLE npl_crate_lots (
lot_qr VARCHAR(64) PRIMARY KEY,
sku_id UUID NOT NULL REFERENCES npl_skus(sku_id),
ck_run_id UUID NOT NULL REFERENCES npl_ck_enablement_runs(ck_run_id),
baked_at TIMESTAMPTZ NOT NULL,
blast_chilled_at TIMESTAMPTZ NOT NULL,
dispatch_core_temp_c NUMERIC(4,2) NOT NULL CHECK (dispatch_core_temp_c <= 4.00),
use_by_at TIMESTAMPTZ NOT NULL,
slices_count SMALLINT NOT NULL CHECK (slices_count > 0)
);
CREATE TABLE npl_logistics_manifests (
manifest_id UUID PRIMARY KEY,
lot_qr VARCHAR(64) NOT NULL REFERENCES npl_crate_lots(lot_qr),
l4_logistics_owner_id INTEGER NOT NULL,
dest_outlet_id VARCHAR(32) NOT NULL,
reefer_vehicle_no VARCHAR(24) NOT NULL,
precool_cabin_temp_c NUMERIC(4,2) NOT NULL CHECK (precool_cabin_temp_c BETWEEN 1.50 AND 4.00),
ble_logger_id VARCHAR(32) NOT NULL,
max_transit_temp_c NUMERIC(4,2) NOT NULL,
stack_height_crates SMALLINT NOT NULL CHECK (stack_height_crates <= 3),
ck_dispatch_signed_by INTEGER NOT NULL,
driver_signed_by VARCHAR(64) NOT NULL,
store_receiving_probe_c NUMERIC(4,2),
store_visual_condition VARCHAR(24) CHECK (store_visual_condition IN ('INTACT','CONDENSATION_WARN','CRUSHED_QUARANTINED')),
received_by_l6_mgr_id INTEGER,
status VARCHAR(28) NOT NULL DEFAULT 'IN_TRANSIT',
CONSTRAINT check_store_receiving_cold_chain CHECK (
status <> 'ACCEPTED_INTO_CHILLER' OR (
store_receiving_probe_c <= 5.00 AND store_visual_condition = 'INTACT' AND received_by_l6_mgr_id IS NOT NULL
)
)
);
CREATE TABLE npl_ground_outlet_readiness (
readiness_id UUID PRIMARY KEY,
sku_id UUID NOT NULL REFERENCES npl_skus(sku_id),
outlet_id VARCHAR(32) NOT NULL,
l6_store_mgr_person_id INTEGER NOT NULL,
boh_video_completed BOOLEAN NOT NULL DEFAULT FALSE,
practice_plate_photo_sha256 CHAR(64),
foh_quiz_pass_pct NUMERIC(5,2) NOT NULL DEFAULT 0.00,
showcase_planogram_photo_sha256 CHAR(64),
insert_box_stock_qty INTEGER NOT NULL DEFAULT 0,
frozen_gel_pack_stock_qty INTEGER NOT NULL DEFAULT 0,
pos_unlock_status VARCHAR(28) NOT NULL DEFAULT 'LOCKED_NOT_ENABLED' CHECK (pos_unlock_status IN ('LOCKED_NOT_ENABLED','ENABLED_LIVE','SUSPENDED_QUALITY')),
unlocked_via_pin_at TIMESTAMPTZ,
UNIQUE (sku_id, outlet_id),
CONSTRAINT check_four_ground_gates_before_pos_unlock CHECK (
pos_unlock_status <> 'ENABLED_LIVE' OR (
boh_video_completed = TRUE
AND practice_plate_photo_sha256 IS NOT NULL
AND foh_quiz_pass_pct >= 90.00
AND showcase_planogram_photo_sha256 IS NOT NULL
AND insert_box_stock_qty >= 50
AND frozen_gel_pack_stock_qty >= 50
)
)
);
CREATE TABLE npl_last_mile_tracking (
dispatch_id UUID PRIMARY KEY,
sku_id UUID NOT NULL REFERENCES npl_skus(sku_id),
outlet_id VARCHAR(32) NOT NULL,
l7_dispatch_lead_person_id INTEGER NOT NULL,
aggregator_order_id VARCHAR(48) UNIQUE NOT NULL,
store_order_seq INTEGER NOT NULL CHECK (store_order_seq >= 1),
open_box_photo_sha256 CHAR(64),
gel_pack_included BOOLEAN NOT NULL DEFAULT TRUE,
tamper_seal_verified BOOLEAN NOT NULL DEFAULT TRUE,
prep_to_handover_sec SMALLINT NOT NULL,
customer_rating NUMERIC(3,2),
transit_damage_reported BOOLEAN NOT NULL DEFAULT FALSE,
CONSTRAINT check_first_10_orders_open_box_photo CHECK (
store_order_seq > 10 OR open_box_photo_sha256 IS NOT NULL
)
);
CREATE TABLE npl_cannot_block_receipts (
receipt_id UUID PRIMARY KEY,
sku_id UUID NOT NULL REFERENCES npl_skus(sku_id),
outlet_id VARCHAR(32) NOT NULL,
reported_by_l6_person_id INTEGER NOT NULL,
cannot_reason_chip VARCHAR(36) NOT NULL CHECK (cannot_reason_chip IN (
'CK_CRATE_SHORT','COLD_CHAIN_TEMP_EXCURSION','PACKAGING_INSERT_MISSING',
'POS_SKU_MISSING','SHOWCASE_CHILLER_DOWN','STAFF_SHORTAGE'
)),
evidence_photo_sha256 CHAR(64) NOT NULL,
rerouted_to_layer_code VARCHAR(32) NOT NULL CHECK (rerouted_to_layer_code IN (
'L3_CK_PRODUCTION','L4_COLD_CHAIN_LOGISTICS','L5_POS_AGGREGATOR_SYNC','L6_GROUND_OUTLET_ENABLEMENT'
)),
rerouted_owner_person_id INTEGER NOT NULL,
hop_nudge_id UUID NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE TABLE accountability_nudges (
nudge_id UUID PRIMARY KEY,
domain_module VARCHAR(32) NOT NULL,
entity_ref VARCHAR(64) NOT NULL,
outlet_id VARCHAR(32) NOT NULL,
target_person_id INTEGER NOT NULL,
escalation_tier SMALLINT NOT NULL DEFAULT 1 CHECK (escalation_tier BETWEEN 0 AND 3),
channel VARCHAR(24) NOT NULL DEFAULT 'WHATSAPP_AND_IN_APP',
snooze_count SMALLINT NOT NULL DEFAULT 0 CHECK (snooze_count <= 2),
m3_verified_by_id INTEGER,
m3_completed_by_id INTEGER,
m3_verdict VARCHAR(24) CHECK (m3_verdict IN ('CONFIRMED','RETURNED_FOR_CORRECTION')),
m3_return_reason TEXT,
revision_count SMALLINT NOT NULL DEFAULT 0,
delivery_receipt_at TIMESTAMPTZ,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
CONSTRAINT check_m3_second_person_independence CHECK (
m3_verified_by_id IS NULL OR m3_verified_by_id <> m3_completed_by_id
)
);
CREATE VIEW npl_rollout_adoption_rollup 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 r.pos_unlock_status = 'ENABLED_LIVE' THEN 'ADOPTED_LIVE'
WHEN c.receipt_id IS NOT NULL OR r.pos_unlock_status = 'SUSPENDED_QUALITY' THEN 'NOT_ADOPTED_BLOCKED'
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 npl_cannot_block_receipts c ON c.sku_id = r.sku_id AND c.outlet_id = r.outlet_id
LEFT JOIN accountability_nudges n ON n.entity_ref = r.readiness_id::text;
-- 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 / Artifact | Files / Rows | Target Domain Object | Status |
|---|---|---|---|
npl-layer-ownership-matrix (L1..L7) | 7 Single Named Layer Owners (H-000104..H-000129 + 32 Store Mgrs & FOH Leads) | npl_layer_ownership_matrix | STAGE 2โ4 SPEC COMPLETE |
ck-enablement-and-crate-lots (CK-1 & CK-2) | 200kg Scaling, <=90m Blast Chill, Line Cert & HRL-LOT-* QRs | npl_ck_enablement_runs + npl_crate_lots | STAGE 2โ4 SPEC COMPLETE |
cold-chain-reefer-manifests | +2..+4ยฐC Reefer Pre-Cool, BLE Logger & <=+5ยฐC Store Door Probe | npl_logistics_manifests | STAGE 2โ4 SPEC COMPLETE |
store-ground-and-last-mile-gates (32 Outlets) | Per-Store POS Unlock Matrix + First-10-Orders Open-Box Pack Photo Gate | npl_ground_outlet_readiness + npl_last_mile_tracking | STAGE 2โ4 SPEC COMPLETE |
npl-rollout-adoption-rollup & HOP Nudge (acct-*) | 32-Outlet Roll-Up (21 Adopted / 7 Lagging / 4 Blocked), 5-Axis Filter & โ Cannot Upstream Re-Routing | npl_rollout_adoption_rollup + npl_cannot_block_receipts + accountability_nudges | STAGE 2โ4 SPEC COMPLETE |
Automated Gate Evidence: `pytest tests/test_stop3_npl_end_to_end.py` (30 fail-first tests) + Playwright `J18` 9-frame storyboard (`390/360/320px` Chromium + WebKit) โ 100% green across `L1..L7` single-person ownership, `<=90m` CK blast-chill gate, `> +5ยฐC` crate receiving quarantine, per-store `LOCKED_NOT_ENABLED` POS guard, First-10-Orders Open-Box Photo lock, 5-Axis Rollout Adoption Roll-Up filtering, M3 2nd-person verification, and `โ Cannot` upstream re-routing.

OneOps