AC · Case Study 04
--:--NYC
AI · Founder · End-to-End Product Ownership

BLACK
LOTUS UX

RoleFounder, Designer
& Builder
EntityBlack Lotus Group LLC
Brooklyn, NY
Agents6 Active
Deployed
DeliveryPlaywright PDF
+ Live Dashboard
InfrastructureLocal LLMs · n8n
Supabase · Slack
OriginThe Problem

UX Intelligence
Should Not Take
Weeks to Deliver.

Enterprise UX audits are expensive, slow, and inconsistent. A WCAG review, competitive analysis, and synthetic user research — done manually — costs weeks of senior designer time and still arrives without systematic rigor. Built in parallel with a Fortune 500 design lead role, Black Lotus UX is the answer: a fully automated UX intelligence service where six specialized AI agents handle the entire delivery stack.

Every agent runs locally — no client data leaves the machine. A single Slack command triggers the pipeline. Hikaru, the report engine, renders a fully branded PDF via Playwright. Reports ship overnight.

blacklotusux.com
blacklotusux.comIntelligence that moves products.
The Meta Case Study

Black Lotus UX is itself a UX artifact — designed with the same systems rigor applied to client work. The service architecture, agent pipeline, scoring model, pricing structure, and legal documents all reflect the same design thinking that defines the rest of this portfolio.

The SystemSix Agents

Specialized.
Local.
Deterministic.

Every agent has a defined, non-overlapping scope. All LLM inference runs locally via Ollama — Mistral 7B for fast tasks, Llama 3 70B for analysis and synthesis. Zero client data leaves the machine.

Julia
WCAG & Performance Auditor
axe-core live URL scans with CLS/LCP via Chrome DevTools Protocol. SEO health across 5 checks. Per-page WCAG breakdown, CSS selectors per finding, and performance deep dive (page weight, third-party scripts, load timing). WCAG score is formula-locked — LLM cannot override.
axe-coreCDPFormula-lockedSEO health
Rion
Competitive Intelligence
Crawls client and competitor sites across desktop and mobile viewports. Scores 6 UX dimensions at temperature 0 for deterministic output. Produces composite scores, base64 screenshots, mobile vs desktop comparison, site architecture assessment, Flesch-Kincaid readability, interaction/dead zone map, and Mermaid.js flow diagrams.
6 DimensionsTemp 0Mermaid flowsReadability
Anri
Synthetic Persona Simulation
Runs quarterly (Jan/Apr/Jul/Oct). Simulates 100 AI personas across client user flows — generating 3 individual journey narratives (success, failure, partial) with name, age, device, segment, and outcome. Produces friction analysis, quarterly trend data, and segment deep dives.
100 personasQuarterlyJourney narratives
Hitomi
Figma DS Audit
Walks the Figma file tree via REST API. Audits component coverage, documented percentage, detached instances, and hardcoded values. Feeds design system health data into Full Stack tier reports — component count, token coverage, and documentation gaps.
Figma REST APIFull Stack tierToken audit
Hikaru
Report Engine — PDF Delivery
The primary delivery mechanism. Assembles all agent output into a ~2,050-line Jinja2 HTML template. Playwright opens the HTML via file:// URL, waits 5 seconds for Mermaid.js to render, then captures the full branded PDF. Generates LLM strategic recommendations. Fires score drop alerts via email and Slack.
Jinja2Playwright PDFMermaid.jsScore alerts
Aimi
Outreach & Lead Management
Site scanner collects WCAG violations and design system signals for lead qualification. Role-adaptive outreach routing by job title — 4 distinct message angles. Hallucination prevention: LLM cannot fabricate statistics. Posts drafts to #outreach-review. Manual intake via /bl-lead. /bl-approve sends via Gmail SMTP.
Role-adaptive/bl-leadAnti-hallucination
ArchitectureHow It Runs

One Command.
Branded PDF.
Overnight.

The pipeline is orchestrated by n8n and a local HTTP server (pipeline_server.py on port 9100). A Slack command triggers the run. Agents execute sequentially — safe for the local Ollama stack. Hikaru closes the loop by rendering the final PDF via Playwright and posting delivery confirmation back to Slack.

01Trigger
/bl-run [client] in Slack → Slack Bot → HTTP POST to pipeline_server.py:9100 → n8n workflow activated. Client config (URLs, tier, competitors, segments) read from Supabase.
02Audit
Julia runs axe-core scan across all client URLs with CDP for CLS/LCP, SEO health check, and performance deep dive. WCAG score calculated via locked formula: 100 − (critical×15 + serious×8 + moderate×3 + minor×1). LLM cannot override.
03Intelligence
Rion crawls client and competitor sites at temperature 0. Scores 6 UX dimensions, captures screenshots, maps site architecture, scores readability, detects dead zones, generates Mermaid.js flow diagrams. Client UX score dampened: displayed = (current × 0.7) + (previous × 0.3).
04Personas
Anri runs quarterly only (Jan/Apr/Jul/Oct). 100 AI personas simulated through client user flows, generating journey narratives, friction analysis, and quarterly trend data for Intelligence and Full Stack tiers.
05Render PDF
Hikaru assembles all agent output into the Jinja2 HTML template. Playwright opens the rendered HTML via file:// URL, waits 5 seconds for Mermaid.js flow diagrams to render, then captures the complete branded PDF. LLM generates strategic UX recommendations (180s timeout).
06Deliver
PDF written to output/reports/. Report payload stored in Supabase. If UX or WCAG score drops, alert fires to client contact via email + Slack. Dashboard at reports.blacklotusux.com updates with new score trend and PDF download link.
n8n — active workflow list
n8n — Active WorkflowsAimi Weekly · Pulse Monthly · Run Single Client (Manual)
Slack — BL Agents report completion
Slack — BL Agents · Pipeline Delivery ConfirmationsReport ready · Score · PDF filename · Critical + Serious issue counts
The DeliverableReport Structure

A Report That
Reads Like a
Product.

Every PDF is generated from a single Jinja2 template (~2,050 lines) that conditionally renders sections based on the client's service tier. One template. Four tiers. No duplication.

All Tiers
Summary Page
UX Usability Score (dampened) · WCAG Compliance Score (formula-locked) · Issue breakdown · Key Win · Key Risk
All Tiers
WCAG Audit
Top 5 LLM-enhanced findings · CSS selectors + instance counts per finding · Per-page breakdown table · CLS/LCP metrics
All Tiers
Usability Findings
6-dimension scoring grid (Nav, Onboarding, Mobile, A11y, Content, Conversion) · Mobile vs desktop comparison · Site architecture · Readability · Dead zone map
All Tiers
Technical Health
SEO health score (5-check) · Performance deep dive · Page weight · Resource breakdown · Third-party scripts · Load timing
All Tiers + Competitors
Competitive Landscape
Client vs competitors table · Composite + 6 dimension scores · Mermaid.js UX flow diagrams per competitor · Month-over-month change detection
All Tiers
Recommendations
LLM-generated UX opportunities · WCAG compliance fixes · Strategic priorities · Next review date
Intelligence + Full Stack
Persona Intelligence
100 simulated personas · 3 segment deep dives · 3 journey narratives (success / failure / partial) · Friction heatmap · Quarterly trend
Full Stack
Design System Health
Component count + documented % · Token coverage · Detached instances · Hardcoded values · Monthly DS health dashboard
Score Integrity

WCAG score is formula-locked: 100 − (critical×15 + serious×8 + moderate×3 + minor×1). The LLM cannot override this number.

UX dimension scoring runs at temperature 0 for deterministic output. The displayed UX score is dampened — (current × 0.7) + (previous × 0.3) — to prevent month-over-month volatility. Raw scores stored separately in Supabase for future trend tracking.

reports.blacklotusux.com — live dashboard
reports.blacklotusux.com — Live Client DashboardUX Health Score · WCAG Issues · Core Web Vitals · Score Trend
SupplementaryFigma Delivery

When the Client
Needs Figma.

For Sprint tier clients or when a Figma deliverable is specified, a custom plugin handles report population directly into branded Figma template frames. It reads structured report data from Supabase and writes it into pre-built layouts via the Figma REST API — Pulse, Intelligence, Full Stack, and Sprint frames all covered in a single file.

Black Lotus UX Report Writer — Figma plugin
Black Lotus UX — Report Writer (Figma Plugin)Supabase data → Figma template frames · All four service tiers
Service ModelFour Tiers

Priced Like
a Product.

Each tier maps directly to an agent configuration and report depth. Pricing reflects the scope of automation — not hours billed.

UX Pulse
$2,500 – $3,500 / mo
Julia + Rion → Hikaru
Monthly WCAG audit, competitor intelligence (3–5 competitors), UX flow diagrams, and a branded PDF report. Dashboard available as $500/mo add-on after 3 months.
UX Intelligence
$4,500 – $6,500 / mo
Julia + Rion + Anri (quarterly) → Hikaru
Pulse plus quarterly synthetic user testing — 100 AI personas, journey narratives, friction analysis, and segment deep dives. Dashboard included.
Full Stack UX
$8,000 – $12,000 / mo
Julia + Rion + Hitomi + Anri (quarterly) → Hikaru
Intelligence plus monthly Figma design system health monitoring — component coverage, token audit, detached instances, and monthly DS health score. Full dashboard.
Design System Sprint
$8,000 – $18,000 flat
Julia (Figma mode) + Hitomi → Hikaru
Fixed-scope design system engagement: Figma audit, gap analysis, component library build, token architecture. 3–4 week project, not a retainer.
InfrastructureHow It's Built

Built to Run
Unattended.

The entire agency operates from a single self-hosted machine. Auto-start services via Task Scheduler mean the pipeline is ready every morning without intervention. Operations managed entirely from Slack on a dedicated work phone.

Hardware
Minisforum MS-S1 Max

AMD Ryzen AI Max+ 395 · 128GB LPDDR5x · 2TB NVMe. All LLM inference runs locally via Ollama. Mistral 7B for fast tasks. Llama 3 70B (q4 and q8) for analysis and synthesis. Zero third-party LLM APIs. Zero client data leaves the machine.

Orchestration
n8n + Pipeline Server

pipeline_server.py on port 9100 accepts POST /run, POST /run-all, and POST /run-aimi. n8n sends HTTP requests to trigger monthly runs on the 1st at 6AM, or on-demand from any Slack command.

Data
Supabase

Tables: clients, audit_runs, agent_logs (UX score dampening events), report_payloads, delivery_receipts, leads, client_users. RLS enabled. Supabase JS powers the dashboard. Magic link auth for client access.

Delivery
Cloudflare + Google Workspace

Dashboard on Cloudflare Pages. Cloudflare Tunnel for pipeline server access. Cloudflare Access for security. Gmail SMTP (App Password) for outreach and score drop alert emails to client contacts.

OutcomeCurrent Status

Operational.
Not a Concept.

6AI agents
deployed and active
11Report enhancement
tasks completed
LiveClient dashboard with
score trend + PDF export
0Client data sent
to external APIs

As of March 2026, the full pipeline is operational and tested across all four service tiers. The Jinja2 report template covers all report sections. Playwright PDF rendering with Mermaid.js flow diagrams runs end-to-end. The client dashboard is live with score trend tracking, PDF downloads, and automatic score drop alerts to client contacts.

All 11 report enhancement tasks complete: per-page WCAG breakdown, CSS selector locations, screenshot comparisons, mobile vs desktop card, site architecture assessment, readability scoring, SEO health, performance deep dive, persona journey narratives, interaction/dead zone analysis, and a fully locked score consistency system.

What This Demonstrates

Black Lotus UX is proof of systems thinking applied at every layer — the agent architecture, the scoring model, the report template, the service tiers, the legal documents, and the banking infrastructure were all designed with the same intentionality. A senior designer saw an inefficiency, built the system to fix it, and shipped it — while holding a Fortune 500 design lead role in parallel.