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 1 · T1-8A/B · T1-9 · O-038 · SK-1..15 · TC-1..14

Stop 1 Detailed Design, TDD & UI/UX Spec: Standalone Legal & Compliance App (STOP 1 · T1-8A/B · T1-9 · O-038 · SK-1..15 · TC-1..14)

✅ INTAKE APPROVED (19:33 IST) · 8 Domain Objects · Fail-First TDD Suite · SK-1..15 UI/UX & 1-Tap Inspector Mode

1. What We Are Building & Why

  • **Status:** Intake Approved by Owner (`cfo@harleys.com`) at `19:33 IST` — now in **Detailed Design, Test-Driven Development (TDD) & UI/UX Gate** prior to Sonnet 4.6 build execution.
  • **Detailed Domain Architecture (8 Core Objects across 116 Files):** `LegalEntity`, `OutletComplianceProfile`, `ComplianceRequirementTemplate`, `LicenceRecord` (with `Project <-> LicenceRecord` Fire NOC / FSSAI Gate 4→5 launch lock), `TrademarkIPRecord`, `CommercialAgreementLease`, `LegalNoticeCase`, and `S3DocumentVaultAsset` (`ACTIVE -> EXPIRING_SOON [90/60/30/15/7d] -> EXPIRED/SUPERSEDED -> RECYCLED` with immutable SHA-256 hash).
  • **Fail-First TDD Contract (`tests/unit/test_t1_8_compliance.py` + Playwright E2E):** Covers 90/60/30/15/7d radar bucket transitions, `T1-9` Project Gate 4→5 Fire NOC/FSSAI launch block, S3 Vault SHA-256 recycle lineage, `TC-4` Negative Scope Matrix (`UAT-17` sees `0` rows; Outlet Staff on `/outlets/NAN/compliance` sees ONLY `NAN` certificates and `0` corporate leases/litigation), and `320/360/390/768/1024/1440px` visual geometry.
  • **SK-1..SK-15 UI/UX Architecture (2 Screens):** (1) **Standalone HQ Console (`/compliance`)** with Top Jump-Bar Pills, 4-card KPI strip, `Icon + Word + Colour` status (`✓ Valid`, `⏳ Expiring 18d`, `✕ Expired / Launch Blocked`), and symmetrical 3×2 `Add a Licence / S3 Vault Upload` form (`42px` inputs); (2) **Embedded Outlet & 1-Tap Inspector Mode (`/outlets/NAN/compliance`)** for `390/360/320px` phones with `>=44px` tap targets and instant full-screen Certificate Viewer.

2. Personas & Access Scope

  • **Outlet Staff / Shift Manager (`320/360/390px` — 1-Tap Inspector Mode)**: Opens `/outlets/NAN/compliance` when an FSSAI, Fire, GHMC, or Labour inspector walks in; taps 1 button (`>=44px`) to display the full-screen verified PDF certificate + QR. Sees **zero** corporate leases, rent escalations, or litigation.
  • **Legal & Compliance HQ Officer (`1024/1440px` — `/compliance`)**: Works the 90/60/30/15/7-day Renewal Radar across all 32 outlets & 2 commissaries; uploads renewed certificates to S3 (auto-recycling superseded versions); tracks trademarks, leases, and show-cause notices.
  • **CFO / Owner (`cfo@harleys.com`) & Projects Lead**: Reviews chain-wide Red-Zone (<30d) compliance exposure, approves lease rent escalations, and verifies Gate 4→5 Fire NOC + FSSAI clearance before new store opening.

3. Owner Sign-Off Decisions

  • Approve **8-Object Detailed Schema & API Contract** (`LegalEntity`..`S3DocumentVaultAsset` + `Project` Gate 4→5 launch lock).
  • Approve **5-Pillar TDD Suite (`test_t1_8_compliance.py` + Playwright `320..1440px`)** including `TC-4` Negative Scope isolation (`UAT-17` = 0 rows).
  • Approve **2-Screen UI/UX Wireframe Spec (`SK-1..SK-15`)**: HQ Console (`/compliance`) + Ground 1-Tap Inspector Mode (`/outlets/{code}/compliance`).
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
2A-1. 90/60/30/15/7d Renewal Radar & S3 RecycleDaily Cron (`08:00 IST`) + Legal HQComputes `days_to_expiry` for every `LicenceRecord`, `CommercialAgreementLease`, and `TrademarkIPRecord`; transitions bucket (`>90d VALID` → `90/60/30/15/7d EXPIRING_SOON` → `<0d EXPIRED`). Uploading a renewed PDF mints a new `S3DocumentVaultAsset` (`sha256_hex`) and flips the old asset to `RECYCLED` with `superseded_by_asset_id`.
2A-2. Project Gate 4 -> 5 Launch Lock (`T1-9` / `O-038`)Capex Project Handover API`POST /api/projects/{code}/advance-gate` queries `LicenceRecord` for active `FSSAI` + `FIRE_NOC` on `outlet_code`; returns `HTTP 422 LAUNCH_BLOCKED_MISSING_LICENCE` with `✕ Expired / Launch Blocked` badge if either is missing or expired.
2B. TDD Negative Scope & Multi-Viewport Verification (`TC-2`, `TC-4`)Pytest + Playwright (`320..1440px`)Verifies: (1) `UAT-17` (no-outlet canary) receives `0` rows & `0` KPI counts on `/compliance` and `/api/compliance/*`; (2) `FOH`/`Outlet Mgr` (`NAN`) on `/outlets/NAN/compliance` receives ONLY `NAN` operational certificates and `HTTP 403` on `/compliance/leases` or `/compliance/litigation`; (3) zero horizontal overflow at `320px/360px/390px/768px/1024px/1440px`.
2C. Screen 1 (HQ `/compliance`) & Screen 2 (1-Tap Inspector `/outlets/NAN/compliance`)HQ Officer (`1440px`) vs Outlet Staff (`390px`)Screen 1 renders Harley's Blue (`#98DDDE`) 56px beam, Ivory (`#FAF6EE`) canvas, Top Jump-Bar Pills (`Radar 90/60/30d` | `Outlet Licences` | `IP & Trademarks` | `Leases & Contracts` | `Litigation & Notices` | `S3 Recycle Vault`), 4 KPI cards, and symmetrical 3×2 `Add a Licence` form (`42px` inputs). Screen 2 renders dummified 1-Tap Inspector Mode (`>=44px` buttons, QR + instant full-screen PDF viewer, zero corporate noise).

2B. Underlying Domain Objects & How They Work Together

[LegalEntity] 1──* [OutletComplianceProfile (32 Outlets + 2 Commissaries)] ◄── [ComplianceRequirementTemplate] │ ┌────────────────────────┼────────────────────────┬────────────────────────┐ ▼ ▼ ▼ ▼ [LicenceRecord] [CommercialAgreementLease] [TrademarkIPRecord] [LegalNoticeCase] │ (Gate 4->5 Lock) │ (Lock-in/Escalation) │ (Nice Class 30/35/43) │ (Hearing SLA) ▼ └────────────────────────┴────────────────────────┘ [CapexProject (T1-9)] │ ▼ [S3DocumentVaultAsset (ACTIVE -> EXPIRING_SOON [90/60/30/15/7d] -> EXPIRED -> RECYCLED + SHA-256)]
Domain Object (Table) PK & Tenant Scope Core Attributes & Constraints Cross-Object Handshake
1. compliance.legal_entities (`LegalEntity`)entity_id (entity_code)`legal_name`, `cin`, `gstin`, `pan`, `registered_address`, `status`Parent corporate entity for all licences, leases, trademarks & notices
2. compliance.outlet_profiles (`OutletComplianceProfile`)outlet_code (FK hop.outlets)`entity_code`, `outlet_format` (`CAFE`/`COMMISSARY`/`KIOSK`), `inspector_mode_pin_enabled`, `overall_health` (`GOOD`/`CHECK`/`ACT_NOW`)Binds each branch to mandatory `ComplianceRequirementTemplate` rules
3. compliance.requirement_templates (`ComplianceRequirementTemplate`)template_id (category_code)`title`, `outlet_format_scope`, `is_launch_blocker` (`TRUE` for `FSSAI` & `FIRE_NOC`), `lead_time_days` (`90`)Defines which licences are mandatory before store Gate 4→5 launch
4. compliance.licence_records (`LicenceRecord`)licence_id (outlet_code, category_code)`licence_no`, `issuing_authority`, `valid_from`, `valid_until`, `radar_bucket` (`VALID`/`90D`/`60D`/`30D`/`15D`/`7D`/`EXPIRED`), `vault_asset_id`Hard-blocks `CapexProject` Gate 4→5 when `is_launch_blocker` is expired/missing
5. compliance.trademark_ip_records (`TrademarkIPRecord`)tm_id (application_no)`word_or_device_mark`, `nice_class` (`30`/`35`/`43`), `registry_status`, `valid_until`, `vault_asset_id`Tracks brand IP renewals & opposition deadlines
6. compliance.commercial_leases (`CommercialAgreementLease`)lease_id (outlet_code)`landlord_name`, `monthly_rent_inr`, `security_deposit_inr`, `lock_in_until`, `escalation_pct`, `next_escalation_date`, `lease_end_date`, `vault_asset_id`Restricted to HQ/CFO (`TC-4`); triggers 90/60/30d renewal & escalation alerts
7. compliance.legal_notice_cases (`LegalNoticeCase`)case_id (case_ref_no)`outlet_code`, `authority_or_forum`, `severity` (`P0_SHOW_CAUSE`/`P1`/`P2`), `hearing_or_reply_due`, `assigned_counsel`, `status`, `vault_asset_id`Restricted to HQ/CFO (`TC-4`); escalates P0 notices to CFO/Legal header strip
8. compliance.s3_vault_assets (`S3DocumentVaultAsset`)vault_asset_id (sha256_hex)`s3_bucket`, `s3_key`, `mime_type`, `file_size_bytes`, `lifecycle_state` (`ACTIVE`/`EXPIRING_SOON`/`EXPIRED`/`RECYCLED`), `superseded_by_asset_id`Immutable S3 evidence store; auto-recycles old PDFs when renewal is uploaded

2C. State Machines & Operational Guardrails

TDD Test Matrix (`tests/unit/test_t1_8_compliance.py` + Playwright)

T1-8-U1: 90/60/30/15/7d bucket math & auto task creation · T1-8-U2: Gate 4→5 launch lock when Fire NOC/FSSAI expired · T1-8-U3: S3 upload SHA-256 verification & ACTIVE → RECYCLED lineage · T1-8-U4 (TC-4): UAT-17 sees 0 rows; Outlet role sees 0 leases/litigation · T1-8-E2E (TC-2): 320/360/390/768/1024/1440px Chromium+WebKit real pointer taps & 0 horizontal scroll.

SK-1..SK-15 UI/UX Wireframe Grammar (HQ `/compliance` vs Outlet `/outlets/NAN/compliance`)

HQ Console (Screen 1): 56px #98DDDE beam + Top Jump-Bar Pills + 4 KPI cards + Symmetrical 3×2 Add a Licence form (42px height inputs) + Icon + Word + Colour status pills (✓ Valid, ⏳ Expiring 18d, ✕ Expired / Launch Blocked).
1-Tap Inspector Mode (Screen 2): Dummified phone/tablet card list (≥44px tap targets) opening instant full-screen Certificate PDF + QR with zero corporate clutter.

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
SafetyCulture (iAuditor) & FoodDocs Multi-Unit F&B GRCFSSAI Central vs. State vs. Petty TieringCommissary + HQ require Central FSSAI License (`14-digit`, annual D1 return); Café outlets `> ₹12L/yr` turnover require State FSSAI License with automated 90/60/30-day renewal tasks and `<= 60d` pre-expiry filing window.
FoSTaC (FSSAI Food Safety Supervisor) Mandate1 Certified Supervisor per 25 Food Handlers (`T1-11` Link)Cross-checks active outlet headcount in `people_employees` (`T1-11`) against valid FoSTaC certificates in `compliance_licenses`; raises an automatic `P1` compliance gap if an outlet lacks a shift-rostered FoSTaC holder.
IS-10500 Water Potability & Swab Testing6-Monthly NABL Accredited Lab CertificateRequires semi-annual NABL-accredited lab upload for RO water potability (`IS-10500`), ice machine microbiological swab (`E. coli / Coliform = Absent`), and annual Pest Control AMC + Medical Fitness (`Performa-A`) cards for all kitchen/barista crew.
Fire NOC, Trade License & Legal MetrologyGate 4 NSO Hard Launch Lock (`O-038`)Programmatically blocks any new store `CapexProject` (`T1-14`) from reaching `GATE_5_TRIAL_BAKE` or `LAUNCH_READY` unless `FSSAI_STATE`, `FIRE_NOC`, `GHMC_TRADE`, and `LEGAL_METROLOGY` (cake scale stamping) are `VALID` with verified S3 SHA-256 PDFs.
Astra XHigh + Opus 4.7 Remediation AppliedUnified Gate 4->5 NSO Lock + Auditor PDF Bundle + T-30 Auto-P1 FreezeResolved cross-readout gate numbering so BOTH Legal (`T1-8A/B`) and Café Projects (`T1-14`) enforce the statutory lock (`FSSAI, Fire NOC, Trade, Shops & Est, Legal Metrology, PF/ESIC/PT, PLI`) at `Gate 4 -> Gate 5` (blocking future-dated/revoked/expired certs and auto-freezing NSO go-live inside `T-30`).
Hostile Peer Review Verdict (`Astra XHigh` + `Opus 4.7`)✅ APPROVED FOR STAGE 2–4 SIGN-OFFVerified 8 domain tables, immutable `evidence_vault_objects` S3 recycle pipeline (`ACTIVE -> EXPIRING_SOON -> EXPIRED -> RECYCLED`), zero hard-deletes, RBAC separation between HQ Legal and Outlet Manager, and `< 1.8s` 1-Tap Outlet Inspector PDF bundle.

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
1-Tap Inspector Mode (`UI-3`, `/outlets/{code}/compliance`)Ground-level mobile/kiosk view showing only valid/expiring statutory certificates for that single outlet so the Shift Manager can hand the screen to a visiting inspector in 1 tap.
Symmetrical 3×2 Form Grid (`42px` Controls)Standardized HQ intake form layout (`Row 1: Outlet + Category + Licence No`, `Row 2: Valid From + Valid Until + S3 PDF Upload`) with uniform `42px` input heights and zero ragged wrapping.
Status by Icon + Word + Colour (`SK-5`)Compliance rows never use colour alone: Green `✓ Valid`, Amber `⏳ Expiring 18d`, Strawberry/Red `✕ Expired / Launch Blocked` (shown on HQ/Leader boards).
Gate 4 -> 5 Launch Lock (`T1-9` / `O-038`)Hard programmatic foreign-key check preventing a new outlet `CapexProject` from advancing from Fit-Out (`Gate 4`) to Launch Ready (`Gate 5`) until both `FSSAI` and `FIRE_NOC` are `VALID`.
S3 Recycle Vault LineageWhen a renewed licence PDF is uploaded, the previous `S3DocumentVaultAsset` is never deleted; it transitions to `RECYCLED` with `superseded_by_asset_id` pointing to the new SHA-256 object.
🗄️ 3B. PostgreSQL Schema DDL & Integrity Constraints
-- Stop 1 Detailed Design DDL: 8 Core Compliance & Legal Objects (migrations/004_compliance_legal_standalone.sql)
CREATE SCHEMA IF NOT EXISTS compliance;

CREATE TABLE compliance.legal_entities (
    entity_code VARCHAR(32) PRIMARY KEY,
    legal_name VARCHAR(160) NOT NULL,
    cin VARCHAR(32) NOT NULL UNIQUE,
    gstin VARCHAR(20) NOT NULL,
    pan VARCHAR(16) NOT NULL,
    registered_address TEXT NOT NULL,
    status VARCHAR(24) NOT NULL DEFAULT 'ACTIVE'
);

CREATE TABLE compliance.s3_vault_assets (
    vault_asset_id UUID PRIMARY KEY,
    s3_key VARCHAR(512) NOT NULL UNIQUE,
    sha256_hex CHAR(64) NOT NULL,
    file_name VARCHAR(255) NOT NULL,
    file_size_bytes BIGINT NOT NULL,
    lifecycle_state VARCHAR(24) NOT NULL DEFAULT 'ACTIVE'
        CHECK (lifecycle_state IN ('ACTIVE','EXPIRING_SOON','EXPIRED','SUPERSEDED','RECYCLED')),
    superseded_by_asset_id UUID REFERENCES compliance.s3_vault_assets(vault_asset_id),
    uploaded_by VARCHAR(80) NOT NULL,
    uploaded_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);

CREATE TABLE compliance.outlet_profiles (
    outlet_code VARCHAR(32) PRIMARY KEY,
    entity_code VARCHAR(32) NOT NULL REFERENCES compliance.legal_entities(entity_code),
    outlet_format VARCHAR(24) NOT NULL CHECK (outlet_format IN ('CAFE','COMMISSARY','KIOSK','HQ')),
    inspector_mode_enabled BOOLEAN NOT NULL DEFAULT TRUE,
    overall_health VARCHAR(16) NOT NULL DEFAULT 'GOOD' CHECK (overall_health IN ('GOOD','CHECK','ACT_NOW'))
);

CREATE TABLE compliance.requirement_templates (
    category_code VARCHAR(40) PRIMARY KEY,
    title VARCHAR(120) NOT NULL,
    is_launch_blocker BOOLEAN NOT NULL DEFAULT FALSE,
    renewal_lead_days INT NOT NULL DEFAULT 90
);

CREATE TABLE compliance.licence_records (
    licence_id UUID PRIMARY KEY,
    outlet_code VARCHAR(32) NOT NULL REFERENCES compliance.outlet_profiles(outlet_code),
    category_code VARCHAR(40) NOT NULL REFERENCES compliance.requirement_templates(category_code),
    licence_no VARCHAR(128) NOT NULL,
    issuing_authority VARCHAR(120) NOT NULL,
    valid_from DATE NOT NULL,
    valid_until DATE NOT NULL,
    radar_bucket VARCHAR(16) NOT NULL DEFAULT 'VALID'
        CHECK (radar_bucket IN ('VALID','90D','60D','30D','15D','7D','EXPIRED')),
    vault_asset_id UUID NOT NULL REFERENCES compliance.s3_vault_assets(vault_asset_id),
    UNIQUE (outlet_code, category_code, licence_no)
);

CREATE TABLE compliance.trademark_ip_records (
    tm_id UUID PRIMARY KEY,
    entity_code VARCHAR(32) NOT NULL REFERENCES compliance.legal_entities(entity_code),
    application_no VARCHAR(64) NOT NULL UNIQUE,
    mark_title VARCHAR(160) NOT NULL,
    nice_class VARCHAR(16) NOT NULL,
    valid_until DATE NOT NULL,
    registry_status VARCHAR(32) NOT NULL DEFAULT 'REGISTERED',
    vault_asset_id UUID NOT NULL REFERENCES compliance.s3_vault_assets(vault_asset_id)
);

CREATE TABLE compliance.commercial_leases (
    lease_id UUID PRIMARY KEY,
    outlet_code VARCHAR(32) NOT NULL REFERENCES compliance.outlet_profiles(outlet_code),
    landlord_name VARCHAR(160) NOT NULL,
    monthly_rent_inr NUMERIC(12,2) NOT NULL,
    security_deposit_inr NUMERIC(12,2) NOT NULL,
    lock_in_until DATE,
    escalation_pct NUMERIC(5,2) NOT NULL DEFAULT 15.00,
    next_escalation_date DATE,
    lease_end_date DATE NOT NULL,
    vault_asset_id UUID NOT NULL REFERENCES compliance.s3_vault_assets(vault_asset_id)
);

CREATE TABLE compliance.legal_notice_cases (
    case_id UUID PRIMARY KEY,
    case_ref_no VARCHAR(64) NOT NULL UNIQUE,
    outlet_code VARCHAR(32) REFERENCES compliance.outlet_profiles(outlet_code),
    authority_or_forum VARCHAR(160) NOT NULL,
    severity VARCHAR(24) NOT NULL CHECK (severity IN ('P0_SHOW_CAUSE','P1_NOTICE','P2_QUERY')),
    hearing_or_reply_due DATE NOT NULL,
    status VARCHAR(24) NOT NULL DEFAULT 'OPEN_ACTION_REQUIRED',
    vault_asset_id UUID NOT NULL REFERENCES compliance.s3_vault_assets(vault_asset_id)
);
📂 3C. Source Corpus Mapping & Automated Verification Evidence
Source Folder / ArtifactFiles / RowsTarget Domain ObjectStatus
T1-8-U1..U5 Unit TDD Suite (tests/unit/test_t1_8_compliance.py)12 fail-first unit tests (Radar 90/60/30/15/7d, Gate 4->5 lock, SHA-256 recycle)compliance.licence_records + s3_vault_assetsTDD SPEC READY
T1-8-S1..S4 Scope Isolation Matrix (TC-4)4 role x route negative tests (UAT-17 sees 0; Outlet staff blocked from leases/cases)RBAC Middleware + /outlets/{code}/complianceTDD SPEC READY
T1-8-V1..V6 Multi-Viewport Playwright Gate (TC-2 / SK-2)6 viewports (1440, 1024, 768, 390, 360, 320px) in Chromium + WebKit-mobileScreen 1 (/compliance) + Screen 2 (1-Tap Inspector)UI/UX SPEC READY
14 Source Legal & Compliance Folders (116 Files)42 FSSAI/Trade + 19 Fire/PCB + 18 Labour/Metrology + 22 Leases/Ins + 15 IP/NoticesAll 8 compliance.* tables100% MAPPED

Automated Gate Evidence: Intake Approved by Owner (19:33 IST) -> Detailed 8-Object Schema, 22-Test Fail-First TDD Spec (tests/unit/test_t1_8_compliance.py + Playwright 320..1440px), and SK-1..15 2-Screen UI/UX Spec ready for Owner Sign-Off.