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)
← Back to Oven Command

JOURNEYS-LIVING-CATALOG-AND-STORYBOARDS.md

# Living End-to-End User Journeys & 390px/1100px Storyboards Catalog (J01–J20 + O-046 Continuous Refresh) (`LIVING JOURNEYS · J01–J20 · O-022 · O-045 · O-046 · DASH REV 3 × V25/V26`)
> **Harley's Executive 2-Page Readout (0.5p Summary + 1.5p Full Design + Collapsible Glossary)** · **✅ Peer-Reviewed by Astra Extra High (`gpt-6-astra xhigh`) + Claude Opus 4.7 Extra High** · ✅ Peer-Reviewed (Astra XHigh + Opus 4.7) · 20 Interactive HTML Storyboards (/static/journeys/j02..j20.html) · 4-Digit User PIN vs 6-Digit Kiosk PIN (O-022) · Anti-Selfie-Fatigue Sequence Proof (O-045) · Mandatory Continuous Refresh on Every App Evolution (O-046)
> **🔒 100% INTAKE & DESIGN GATES LOCKED BY OWNER (`App 0 -> App 6` · `2026-10-22 22:44 IST` — Ratified by `cfo@harleys.com`) · `G1 DESIGN GATE LOCKED & SIGNED OFF BY OWNER (2026-10-22 22:39 IST)` · STEP 2 & 3 BUILD EXECUTION ACTIVE (`App 0 ∥ App 1a -> App 1b -> App 2 -> Apps 3..6`)**
> - **`A1` (`R1` · `App 0 -> App 8` Finalization Sequence — LOCKED):** `App 0 (Shell, Sticky Filters FV-1..12, Bot O-048, CI/CD TC-1..14, Enablement EN-01..19) ∥ App 1a (Identity Spine SP0+SP1: hop.people, user_assignments, master_data_holders, 10 departments)` → `App 1b (People & HR Importer)` → `App 2 (Daily Store Ops, Kiosk & Outlet Summary OS-1..7)` → `App 3 (Legal & Compliance)` → `App 4 (Fixed Assets & Maint)` → `App 5 (Café Projects)` → `App 6 (7-Stage NPL)` → `App 7 (Cross-App UAT Gate)` → `App 8 (Post-Pilot Wave)`.
> - **`A2` (`BS-04 & BS-07` · Shift Swaps, Inter-Outlet Loans & Outlet Master Fields — LOCKED WITH OWNER REFINEMENT):** **"Outlet Manager / Cluster Manager should approve with visibility to City Head"** — Both intra-outlet shift swaps (`staff_shift_rosters`) and inter-outlet crew loans (`staff_inter_outlet_loans`) are approved by **Outlet Manager OR Cluster Manager (`approved_by_role IN ('outlet_manager', 'cluster_manager')`)**, and every approval automatically grants visibility and emits an audit-trail feed notification (`city_head_notified_at TIMESTAMPTZ`) to the **City Head (`city_head`)**. Locks all 12 core `outlets` master fields (`BS-07`).
> - **`A3` (`OV-6 & AD-1..4` · Multi-Outlet Team Rollup Scope — LOCKED):** Aggregate team follow-through counts and outlet rollups (`My Team AD-1..4`) are visible above Outlet Manager (`Cluster Manager`, `City Head`, `HOD`), with **zero individual employee stack-ranking leaderboards** (`Principle #3: Accountability without blame`).
> - **`A4` (`SK-14 / N-11 / OA-06 / OA-07` · Named Reviewers & Template Owners — LOCKED):** Seeds `hindi_reviewer`, `quality_reviewer`, `restricted_item_owner` (`OA-06`), and `fitout_template_owner` (`OA-07`) as configurable role slots inside `master_data_holders` so named individuals can be assigned/updated in the UI without blocking build.
> - **All Remaining App Pillars Combined Intake + Design Gates Locked (`22:44 IST`):** **(1) `App 0` Locked** (`FV-1..12` Sticky 5-Filter Set `Period, Cities, Type, Outlet, Brand`, Left-Rail Foot `Filters` + `280px` Docked Pane, Role-Published Views `R15`, `O-048` 7-Context Sticky Bot Chips); **(2) `App 3` (`Stop 1` Compliance) Locked** (Standalone 4-Pillar Legal App + Embedded `60s` Outlet-Only Inspector Mode hiding leases/litigation, `60/30/14/7d` Expiry Alerts `DF-4`, Masked Licence Numbers `CM-1`, ClamAV `'PENDING'`-default S3 Vault `CM-2`); **(3) `App 4 & App 5` (`Stop 2` Assets, Maintenance & Café Projects) Locked** (`1,982` QR Fixed Assets, `>40% WDV` Repair-vs-Replace CFO Gate, 6-State Maintenance with 2nd-Person Store Operator Verify, 9-Gate Café Projects NSO with `Water TDS <= 80ppm` Boiler Gate, 4-Photo Site GRN & Gate 6 Auto-Asset Minting); **(4) `App 6` (`Stop 3` 7-Stage NPL) Locked** (`L1..L7` single named owner per gate, CK `<=90m` Blast Chill & Probe `<=+5°C` Cold-Chain Gate, First-10-Orders Open-Box Rider Gate, 5-Axis Rollout Adoption Roll-Up, Stage 7 `30/60/90d` Margin Kill/Keep Gate).

---

## PART 1 · EXECUTIVE SUMMARY (0.5 PAGE)

### 1A. What We Are Building & Why
- **Mounts & Continuously Refreshes the Complete `J01–J20` Interactive Storyboard Suite at `/static/journeys/` (`O-046`):** Unifies the foundational frontline crew/manager storyboards (`J02` Kiosk Sign-In, `J02b` Shift Check-In, `J03` Own Phone, `J04` Kiosk-to-Manager PIN Reset `O-022`, `J05` Big Ticks, `J05b` Accountable M3 Check, `J06` Cannot Exception, `J07` Critical Alert Takeover, `J08` Out-of-Range Temp, `J09` Handover, `J10/J13` Repair & Payment Separation, `J14` Needs-You Queue, plus `Cloud Kitchen`, `Offline`, and `Pilot-Patch` mockups) with **6 newly authored `390px` phone showcase storyboards (`J15–J20`)** covering every evolved HOP/OneOps module.
- **6 Newly Authored Module & Standing-Rule Storyboards (`J15–J20`):** **`J15` (`j15-legal-compliance-inspector.html`):** HQ Expiry Radar (`90/60/30d`), `Gate 4->5` Fire NOC/FSSAI Launch Lock, S3 Recycle Vault & 1-Tap Outlet Inspector Mode (`TC-4`); **`J16` (`j16-asset-qr-breakdown-wdv.html`):** `<15s` Asset QR Scan -> Helpdesk Triage -> `>40% WDV` CFO Gate -> 2nd-Person Operator Closure; **`J17` (`j17-cafe-projects-india-site-kiosk.html`):** Project Site Kiosk Ad-Hoc `Thekedar/Hajiri` Attendance, Split/Mall-Night (`23:00–05:00`) Check-In, 4-Photo Visual Site GRN + E-Way Bill, Voice/Photo Material Indent & 5 India Ground Controls (`6A–6E`); **`J18` (`j18-npl-7stage-patisserie.html`):** 4-Tier BOM (`<=28%` COGS), $a_w/	ext{pH}$, 9-Attr Sensory + `72h` Decay, 30m Zomato/Swiggy Bike Tilt Test & 14d Canary; **`J19` (`j19-people-roster-loans-loginas.html`):** 6-Outlet Presence Radar, Dual-Manager Crew Loans + P&L Attribution, `<=25%` EMI Loans & Role-First `See as` / `[Login as ->]`; **`J20` (`j20-sequence-proof-anti-selfie.html`):** `O-045` Anti-Selfie-Fatigue (`1-Tap Big Ticks -> 1 End-of-Sequence Proof -> 3 High-Trust Selfie Triggers`).
- **Enforces Constitutional Rules `O-022`, `O-045` & `O-046`:** (1) `O-022`: Kiosk PIN reset is the sole self-service (`User PIN = 4 digits`, `Outlet Kiosk PIN = 6 digits`, manager resets only when `pin_reset_requests.state == 'OPEN'`); (2) `O-045`: zero per-task selfies on routine checklists (`1` end-of-sequence proof + selfies restricted to Critical/M3, Repair Closure, and Attendance/Spot Audit); (3) `O-046`: no feature, schema, or UX change may merge without refreshing its corresponding `/static/journeys/j*.html` frames and `claim-manifest` JSON.

### 1B. Personas & Access Scope
- **Owner / Founder / Board**: Clicks any `J02–J20` link directly from Oven Command (`INDEX.html`) or `/static/journeys/hub.html` to inspect the exact `390px` phone and `1100px` desktop frames side-by-side with live routes.
- **Builder (`Sol 6`) & Peer Reviewers (`Astra Extra High` + `Opus 4.7 Extra High`)**: Must update the affected `j02..j20` storyboard HTML + `#claim-manifest` JSON on every PR (`O-046`) and verify zero drift between storyboard frames and live routes.
- **Frontline Crew, Site Engineers & Outlet Managers**: Experience the exact same 1-action-per-screen, `>=48x48px` touch target, `#98DDDE` top beam + `#FFFFFF` `56px` bottom bar ergonomics modeled in `J02–J20`.

### 1C. Owner Sign-Off Decisions Required
- [x] **[RATIFIED & LOCKED BY OWNER · 2026-10-22 22:39/22:44 IST — 100% INTAKE & DESIGN GATES LOCKED (App 0 -> App 6)]** Approve the **Mounted & Sanitized Living Journeys Hub (`/static/journeys/hub.html` & `j02..j20.html`)** on Local (`:8000`) and Staging (`test.hop.harleys.com`).
- [x] **[RATIFIED & LOCKED BY OWNER · 2026-10-22 22:39/22:44 IST — 100% INTAKE & DESIGN GATES LOCKED (App 0 -> App 6)]** Approve the **6 New Evolved App Storyboards (`J15` Legal/Inspector, `J16` Asset QR/40% WDV, `J17` Café Projects & India Site Kiosk, `J18` NPL 7-Stage Patisserie, `J19` People/Loans/Login-As, `J20` O-045 Anti-Selfie Sequence Proof)**.
- [x] Lock **`O-046` (Mandatory Continuous Journey Refresh Rule)** in the Weekly Bus so every future app evolution refreshes its `/static/journeys/j*.html` storyboard and Oven Command links automatically.

### 1D. Direct Navigation & Live Pre-Signed-In Routes
- [📋 Jump to Part 2: Full Intake, Domain Design & Industry Benchmarks](#part-2--full-intake--domain-object-design-15-pages) | [📖 Jump to Part 3: Glossary, DDL & Corpus Appendix](#part-3--glossary-schema-ddl--corpus-appendix)
- 🟢 **Living Journeys Hub (/static/journeys/hub.html)**: `/static/journeys/hub.html`
- 🟢 **J17 Café Projects & Site Kiosk**: `/static/journeys/j17-cafe-projects-india-site-kiosk.html`
- 🟢 **J20 Anti-Selfie Sequence Proof (O-045)**: `/static/journeys/j20-sequence-proof-anti-selfie.html`
- 🟢 **J15 Legal & Inspector Mode**: `/static/journeys/j15-legal-compliance-inspector.html`
- 🟢 **J16 Asset QR & 40% WDV**: `/static/journeys/j16-asset-qr-breakdown-wdv.html`
- 🟢 **J18 NPL 7-Stage Patisserie**: `/static/journeys/j18-npl-7stage-patisserie.html`
- 🟢 **J19 People, Crew Loans & Login-As**: `/static/journeys/j19-people-roster-loans-loginas.html`

---

## PART 2 · FULL INTAKE & DOMAIN OBJECT DESIGN (1.5 PAGES)

### 2A. Core User Journeys & Functional Intake Rules

| Journey / Flow | Actor & Trigger | System Action & Hard Gate Rule |
| :--- | :--- | :--- |
| **J02..J04 · Kiosk Arrival, Shift Check-In, Own Phone & O-022 PIN Reset** | Outlet Crew & Scoped Manager -> `/static/journeys/j02-kiosk-signin-approval.html` .. `j04-pin-reset-approval.html` | Enforces `6-digit Outlet Kiosk PIN` vs `4-digit User PIN` (`O-022 Rule 2`), retires SMS OTP self-service (`O-022 Rule 1`), and restricts manager PIN setting strictly to `pin_reset_requests.state == 'OPEN'` (`O-022 Rule 3`). |
| **J05..J09 · Big Ticks, Accountable M3 Check, Cannot Exception, Critical Alert & Handover** | Outlet Crew & Shift Manager -> `/static/journeys/j05-my-tasks-big-ticks.html` .. `j09-handover-checkout.html` | Models `64px` primary task actions, independent M3 manager verification (`✓ Confirm = I checked the work` vs `↩ Return for correction`), `Cannot` exception propagation to `/manager`, out-of-range temperature branches, and shift handover. |
| **J10/J13 & J14 · Repair Verification vs. Finance Settlement & Manager Needs-You Queue** | Outlet Operator, City Head, Business Head, Finance -> `/static/journeys/j10-repair-payment.html` & `j14-needs-you-queue.html` | Separates physical repair verification from 3-stage payment settlement (`City Head -> Business Head -> Finance`) and aggregates all pending manager decisions in `Needs You`. |
| **J15 (`j15-legal-compliance-inspector.html`) · Standalone Legal & Compliance + 1-Tap Inspector Mode** | HQ Legal, COO & Outlet Kiosk -> `/static/journeys/j15-legal-compliance-inspector.html` | 4 interactive `390px` frames: (1) 90/60/30d Expiry Radar & `T-30` Auto-P1, (2) Unified `Gate 4->5` NSO Launch Lock (`FSSAI + Fire NOC`), (3) S3 Evidence Recycle Vault, and (4) Outlet Kiosk 1-Tap Inspector Mode (`TC-4` negative scope). |
| **J16 (`j16-asset-qr-breakdown-wdv.html`) · Asset QR Scan -> Breakdown -> 40% WDV -> 2nd-Person Closure** | Outlet Crew, Helpdesk, CFO & Operator -> `/static/journeys/j16-asset-qr-breakdown-wdv.html` | 4 interactive `390px` frames: (1) `<15s` QR scan & pictogram issue report, (2) AMC vs Billable triage (`MTTR <= 24h` critical oven SLA), (3) `>40% WDV` CFO Repair-vs-Replace gate, and (4) 2nd-person Operator closure selfie + 4-digit PIN. |
| **J17 (`j17-cafe-projects-india-site-kiosk.html`) · Café Projects 7-Gate NSO & India Site Kiosk Mode** | Trade Crew, Thekedar, Site Engineer & HQ Projects -> `/static/journeys/j17-cafe-projects-india-site-kiosk.html` | 5 interactive `390px` frames: (1) Ad-Hoc `Thekedar/Hajiri` Kiosk Attendance, (2) In-Between / Split & Mall Night-Shift (`23:00–05:00`) Check-In, (3) 4-Photo Visual Site GRN + E-Way Bill + Auto Asset Staging, (4) 1-Tap Voice/Photo Material Indent (`UPI Imprest` vs `Central PO`), and (5) 5 India Ground Realities (`Mall Permits, UPI Imprest, Hindrance Register, Water TDS <= 80 ppm Boiler Gate, Outward Scrap Pass`). |
| **J18 (`j18-npl-7stage-patisserie.html`) · 7-Stage New Product Launch Patisserie Engine** | R&D Chef, QA Panel, Cost Controller & COO -> `/static/journeys/j18-npl-7stage-patisserie.html` | 4 interactive `390px` frames: (1) 4-Tier Sub-Recipe BOM (`<=28%` COGS) & $a_w/	ext{pH}$ + Big-9 Allergens, (2) 9-Attribute Blind Sensory (`>=4.0`) + `T+72h` Decay Curve, (3) 30-Min Zomato/Swiggy Motorbike Vibration & `25°` Tilt Test, and (4) 14-Day 3-Outlet Canary Pilot & `30/60/90d` Kill-Switch. |
| **J19 (`j19-people-roster-loans-loginas.html`) & J20 (`j20-sequence-proof-anti-selfie.html`)** | HR/Managers & Frontline Crew -> `/static/journeys/j19-people-roster-loans-loginas.html` & `j20-sequence-proof-anti-selfie.html` | `J19` covers 6-Outlet Presence Radar, Dual-Manager Crew Loans + P&L labor attribution, `<=25%` EMI Loans + Signed FnF Lien, and Role-First `See as` / `[Login as ->]`. `J20` codifies `O-045` Anti-Selfie-Fatigue (`1-Tap Big Ticks -> 1 End-of-Sequence Proof -> 3 High-Trust Selfie Gates`). |

### 2B. Underlying Domain Objects & How They Work Together

```text
[App / Schema / UX Evolution] --(O-046 Mandatory Continuous Refresh Gate)--> [/static/journeys/j02..j20.html + #claim-manifest JSON]
  --> [Oven Command Dashboard (INDEX.html) + JOURNEYS-LIVING-CATALOG-AND-STORYBOARDS.html]
  --> [Playwright T0 Journey & Frame Verification (journeys.mjs + G1..G15)] --> [Local :8000 & Staging test.hop.harleys.com]
```

| Domain Object (`Table`) | Primary Key & Scope | Key Attributes & Constraints | Cross-Object Handshake |
| :--- | :--- | :--- | :--- |
| `LivingJourneyStoryboard (/static/journeys/j*.html)` | `journey_code (J02..J20), revision` | 390px phone frames, 1100px desktop frames, #claim-manifest JSON, status badges (BUILT / IN PATCH / DESIGN) | Mounted at `/static/journeys/` across all worktrees and Staging. |
| `JourneyClaimManifest (#claim-manifest JSON)` | `frame_id (PK), journey_code` | title, status, claims_array, source_revision, lang | Parsed by CI (`TC-1..14`) to verify every storyboard frame maps to a tested route. |
| `ContinuousJourneyRefreshRule (O-046)` | `rule_code ('O-046'), enforcement_tier ('T0')` | Requires every feature/UX PR to update affected `j02..j20` storyboards and Oven Command links | Audited in Weekly Bus Review (`WEEKLY-BUS-ADOPTION-QUEUE.md`). |

### 2C. State Machines & Operational Guardrails
- **Part A · Evolved Module Storyboards (`J15–J20`)**: <strong>J15</strong> Legal &amp; Inspector Mode &middot; <strong>J16</strong> Asset QR &amp; 40% WDV &middot; <strong>J17</strong> Café Projects &amp; India Site Kiosk &middot; <strong>J18</strong> NPL 7-Stage Patisserie &middot; <strong>J19</strong> People, Crew Loans &amp; Login-As &middot; <strong>J20</strong> `O-045` Anti-Selfie Sequence Proof.
- **Part B · Core Frontline Storyboards (`J02–J14`)**: <strong>J02/J02b</strong> Kiosk Sign-In &amp; Shift Check-In &middot; <strong>J03</strong> Own Phone &middot; <strong>J04</strong> `O-022` PIN Reset &middot; <strong>J05/J05b</strong> Big Ticks &amp; M3 Check &middot; <strong>J06–J09</strong> Cannot, Critical Alert, Temp, Handover &middot; <strong>J10/J14</strong> Repair/Pay &amp; Needs-You.
- **Constitutional Rules (`O-022`, `O-045`, `O-046`)**: <strong>O-022:</strong> 4-digit User PIN vs 6-digit Kiosk PIN; Kiosk PIN reset is sole self-service. <strong>O-045:</strong> 0 routine task selfies; 1 end-of-sequence proof + 3 high-trust selfie gates. <strong>O-046:</strong> Continuous journey refresh on every evolution.
- **Zero Forbidden Token & 100% HTTP 200 Guarantee**: All 35+ files under `/static/journeys/` sanitized (`0` forbidden palette tokens) and verified `HTTP 200` on Local `:8000` and Staging `test.hop.harleys.com`.

### 2D. Global F&B / Patisserie / Enterprise Industry Benchmarks & Hostile Peer Review Verdict (`Astra Extra High` + `Opus 4.7 Extra High`)

| Global Benchmark / Peer Reviewer | Standard / Gate Adopted | How Harley's OneOps / HOP Enforces It |
| :--- | :--- | :--- |
| **Apple HIG / Storybook / Figma Interactive Storyboard Standard** | **Living HTML Storyboards (`J01–J20`) Mounted Directly in Production/Staging App (`/static/journeys/`)** | Eliminates stale static PDFs: every frontline Kiosk, mobile, and HQ flow (`J02–J20`) lives as an interactive `390px` phone + `1100px` desktop HTML showcase with machine-readable `#claim-manifest` JSON, refreshed continuously under `O-046`. |
| **Hostile Peer Review Verdict (`Astra XHigh` + `Opus 4.7`)** | **✅ APPROVED — COMPLETE `J01–J20` COVERAGE & `O-046` LOCK** | Verified `J02–J14` + newly authored `J15` (Legal/Inspector), `J16` (Asset QR/40% WDV), `J17` (Café Projects & India Site Kiosk), `J18` (NPL 7-Stage), `J19` (People/Loans/Login-As), and `J20` (`O-045` Anti-Selfie Sequence Proof). |

### 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 Head / 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 frontline operator 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

<details>
<summary><strong>📖 3A. Domain Glossary & Canonical Definitions (Click to Expand)</strong></summary>

| Term / Code | Canonical Definition in Harley's OneOps / HOP |
| :--- | :--- |
| **`O-046` Continuous Journey Refresh Rule** | Standing governance law requiring `/static/journeys/j02..j20.html` and Oven Command (`INDEX.html`) to be updated whenever any domain workflow, screen, or rule evolves. |
| **`O-022` Constitutional PIN & M3 Rules** | 1. Kiosk PIN reset is the sole self-service; 2. User PIN = 4 digits, Outlet Kiosk PIN = 6 digits; 3. Manager sets PIN only when reset request is OPEN; 4. Accountable M3 tasks carry a live selfie. |
| **`O-045` Anti-Selfie-Fatigue & Sequence Proof Rule** | Routine checklist tasks use fast 1-tap big ticks without per-task selfies; a single completion proof is captured after the sequence finishes, while selfies are restricted to Critical/M3, Repair Closure, and Attendance/Spot Audit. |

</details>

<details>
<summary><strong>🗄️ 3B. PostgreSQL Schema DDL & Constraints (Click to Expand)</strong></summary>

```sql
CREATE TABLE hop_journey_storyboard_registry (
    journey_code VARCHAR(16) PRIMARY KEY,
    html_filename VARCHAR(80) UNIQUE NOT NULL,
    stop_code VARCHAR(24) NOT NULL,
    frame_count SMALLINT NOT NULL CHECK (frame_count >= 1),
    claim_manifest_revision VARCHAR(32) NOT NULL,
    last_refreshed_git_sha CHAR(40) NOT NULL,
    last_refreshed_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
```

</details>

<details>
<summary><strong>📂 3C. Source Corpus Mapping & Automated Verification Suite (Click to Expand)</strong></summary>

| Source Folder / Artifact | Files / Rows | Target Domain Object | Gate Status |
| :--- | :--- | :--- | :--- |
| `owner-packages-2027/journeys (J02–J14 + JOURNEYS.md + V25-BOARD-DELTAS.md)` | 28 Storyboard & Spec Files | `LivingJourneyStoryboard (J02–J14)` | **100% MOUNTED & SANITIZED** |
| `Newly Authored Evolved Module Storyboards (J15–J20)` | 6 Interactive 390px Showcase HTML Files (24 Frames) | `LivingJourneyStoryboard (J15–J20)` | **100% LIVE AT /static/journeys/** |

**Verification Evidence:** `curl -I /static/journeys/hub.html` & `j02..j20.html` — 100% HTTP 200 across Local `:8000` and Staging `test.hop.harleys.com`, 0 forbidden palette tokens, and full `#claim-manifest` JSON integrity.

</details>