Mildred Ops Page — design spec (v1)
Date: 2026-06-01 · Session 41 (overnight) · Claude Code (Opus 4.8, 1M)
Canonical visual: outputs/mockups/2026-05-31_stitch/2026-06-01_mildred-ops-home.png
(+ .html for reference). Generated via Stitch in the Hook Street house design system.
Status: DESIGN LOCKED (Sam: "whichever way you can figure it out go for it"). Build = next session.
What it is
The next audience-scoped view of the existing portal (the Chanie PWA is the
prototype; DESIGN_SYSTEM §2 = one source → many scoped views). NOT a new app.
Mildred's work surface: she sees what she owns + what Sam pushed, acts on it, and
sends notes back — all through the command-inbox. "Give her the info she wants,
not Sam reacting to her."
Decisions locked (Sam, 2026-05-31/06-01)
- Primary job: two-way work surface (she reads AND acts: Done / Note-back).
- Layout: Bento home → list drill (tap a tile → filtered card list).
- v1 lanes: STR ops (9312/9332) · Flag-to-Sam · Schedule + weekly rollup · From-Sam (push).
- Push: v1 INCLUDES it — Sam pushes via inbox
MILDRED <item>→ lands on her page. - (Eden admin + Transport A/R deferred to v2.)
URL / auth
ops.hookstreetservices.com/mildred.html, Cloudflare Access — add
mildred@hookstreetcapital.com to the Access policy. Same family as Chanie/home.
Look
House bones, forced-light, navy/gold header band, בס״ד, bubbly white cards, 8px
status dots, tabular numerals, mobile-first dense. Greeting by name + today +
current/next work window ("Tuesday · 10 AM–4 PM · 2 due before 1 PM").
(Sam may later want her own accent color vs Sam's navy — optional, not v1-blocking.)
Layout — Bento home (per the locked screenshot)
- From Sam (large, blue dot) — count pushed today → tap → list.
- STR Ops (green dot) — open 9312/9332 vendor/cleaner/reimburse items → list.
- Flag to Sam (amber dot) — items she surfaces but does NOT execute (HOA deadline etc.).
- This Window (wide) — items due before her next window (the "windows imply turnaround" rule); checkable.
- Weekly Rollup — the Friday consolidation to Sam; tap → compose/view.
- My Schedule — Mon/Tue/Wed/Fri windows, Thu off.
- Bottom tabs: Home · Tasks · Schedule · Rollup.
Drill-in (list view, build per the home's design language)
Tap a tile → filtered list of cards (Chanie-style item cards). Each card: title ·
lane · due · status dot. Two actions per card:
- Done → POST to inbox → marks the Action_Queue row complete.
- Note back to Sam → short note → flows to Sam via inbox/Telegram (so it's
her→Sam comms inside the system, not scattered WhatsApp).
Data model (already exists — big de-risk)
command-inbox Action_Queue already has: Lane, Owner, Assigned_To,
Visibility, Sensitive_Flag, Mildred_Allowed, Related_URL, plus a
MILDRED_OPS lane and an isSensitiveLane_() guard. Mildred's feed =
filter rows where (Mildred_Allowed = true OR Assigned_To = Mildred OR
Lane = MILDRED_OPS) AND NOT Sensitive_Flag AND NOT sensitive lane.
⚠ OFF-LIMITS — non-negotiable, server-side
The Mildred JSON feed NEVER includes family / wife / mother / finance-private /
MIS-trading / private-dates lanes. Enforced by the feed filter (server-side),
NOT by hiding in CSS. Verify the feed excludes every sensitive lane BEFORE her
email touches the Access policy. (Per feedback_mildred_scope_model OWN/FLAG/OFF-LIMITS
+ start-here.gs sensitiveLanes.)
Push-in (MILDRED command)
Confirm/extend the existing inbox MILDRED command so MILDRED <item> writes an
Action_Queue row with Assigned_To=Mildred, Mildred_Allowed=true,
Lane=MILDRED_OPS, Source=push. Appears in her "From Sam" tile on next load.
Build sequence (each step ships usable — anti-80%)
- Static
mildred.html— Bento + list in hand house-CSS (NOT Stitch's Tailwind;
build toward the screenshot). Mock data first. - Mildred-scoped read feed — endpoint that filters Action_Queue → her JSON
(reuse the inbox STATE-style read; add the Mildred filter + sensitive exclusion). - Push-in — confirm/extend
MILDREDcommand writes the assigned card. - Write-back — Done + Note buttons POST to the inbox secret endpoint
(same mechanism as Start-Here / obligations buttons). - CF Access add
mildred@hookstreetcapital.com→ deploy → verify off-limits
filter live before sharing the URL.
Realistic for the "by tomorrow" bumper: steps 1–3 solid, step 4 right behind.
Don't big-bang it.
Guardrails
Off-limits filter server-side (privacy-critical) · build in house CSS not Stitch
Tailwind (Stitch = anchor) · one data source (Action_Queue), don't fork ·
windows imply turnaround time.