Focus Ops is Lucia’s primary operator-facing intelligence surface. It turns operational noise into a calm, ranked next move.
Definition
Focus Ops is not a search box.
Focus Ops is not a generic assistant.
Focus Ops is the operator relief layer.
It answers:
What matters most?
What should I do first?
What can wait?
What should I know before something becomes urgent?
Current Runtime Behavior
Focus Ops receives operator prompts through the Admin UI and routes them to the Engine.
Current canonical Focus Ops route:
Eval Labs should validate v0.1.3.6 against:
https://api-dev.hellolucia.ai/admin/operator-focus
v0.1.3.6 is not promoted to staging yet. Staging promotion waits until the Eval Labs dev baseline is captured and reviewed.
The Engine returns a stable response contract:
Core data includes:
intent
tone
summary
priority_level
items
recommended_action
defer
Lucia Engine v0.1.3.6 uses GPT-5.5 as the default model, with Lucia JSON gateway calls running through the OpenAI Responses API.
06 - Semantic Conversational Intent Assist is live in Focus Ops. It is semantic lightweight utility and conversational intent classification, not phrase patching.
Current live-dev runtime evidence:
The live-dev topbar displays Admin and Engine build identity.
Admin identity is injected at Admin build time.
Engine identity is fetched from the Engine root endpoint.
Strict brain quality eval: 178/178 after workspace-context awareness
Payment truth live-dev proof: Harper Quinn #29110012 confirmed-paid state suppresses payment blocker attention
The current product pillar is:
Workspace OS / context-aware operator companion
Calendar-rooted operating intelligence
Signal → Action → Save → Reminder loop
Guest signal → Operator review/link/action loop
Focus Ops now participates in the full Admin/Engine loop:
Calendar / booking spine
→ Booking Pulse
→ Signal Stream
→ Lucia Workspace / Focus with Lucia
→ real reminder persistence
→ due resurfacing
→ Open Reminder
→ Got it / re-remind / dismiss / move-to-top
→ newest meaningful attention event wins
→ Resolver Matrix
→ Dynamic Action Workspace
Calendar booking click
→ Full Booking Page for booking record/review
Guest-facing Lucia
→ signed operational_signal v0
→ Admin Signal Stream review/link language
→ Focus Ops context when safe
Calendar and Booking Pulse provide booking-time reality. Signal Stream provides active attention context. Focus Ops reasons over that verified context and explains the safest operator-facing next move.
Current payment attention boundary:
Stripe movement truth can suppress confirmed-paid payment blockers.
Durable property payment policy truth is not implemented yet.
Policy-aware due/overdue/final-balance judgment is not claimed yet.
Signal Stream is not yet wired to LIEA.
Focus Ops is now shared across Dashboard embedded mode and Lucia Workspace Sidebar mode.
Current Development truth:
Lucia Workspace remains open across route changes
Workspace open/closed state persists across refresh
Lucia sidebar width persists between 260px and 460px
Signal Stream Chat seeds the shared Lucia conversation
Reset clears the shared conversation and context
Workspace context is sent through active_context.workspace
The operator should be able to keep the same Lucia conversation alive while moving through Dashboard, Calendar, Signal Stream, DAW, Full Booking, Bookings, Maintenance, Concierge, Tasks, and Reconciliation.
Workspace Context Awareness
Engine normalizes active_context.workspace safely and uses it to answer workspace-orientation and next-step prompts.
Supported prompt families include:
What am I looking at?
What should I do here?
What matters for this booking?
What should I pay attention to here?
Now what?
Explicit prompt subject still wins over page context. If the operator asks about Nora’s payment from Calendar, Nora’s payment remains the subject; Calendar context should not overwrite it.
Lucia must not expose raw metadata language to the operator:
active_context
current_surface
payload
metadata
Calendar-Rooted Context
Focus Ops is not a chatbot bolted onto Admin.
Focus Ops is the reasoning/conversation layer above booking reality:
arrivals
departures
stay windows
booking IDs
payment state
Stripe financial truth
task status
active Signal Stream context
prior verified recommendation context
The deterministic layer owns those facts. GPT-5.5 may interpret them, explain them, and soften the operator-facing language, but it must not invent them.
Primary Output Goal
Focus Ops should produce:
one clear, operator-safe next move
It may include supporting context, but it must not bury the lead.
Focus Ops CTA Handoff Contract
- Workflow-specific Focus Ops CTAs must route to the exact workflow surface where the work gets completed.
- Engine owns the recommended_action destination contract.
- recommended_action.label, recommended_action.path, recommended_action.destination.path, destination.kind, and destination.action_view must stay aligned.
- Workflow CTAs should resolve through the Dynamic Action Workspace contract.
- CTA label is copy. Structured action intent and metadata are routing truth.
- Every structured Focus Ops CTA should route to a focused operator action workspace.
/ops/actions is the default universal Dynamic Action Workspace.
- Default route:
- structured Focus Ops action →
/ops/actions
- Specialized pages may remain available as supporting or future-specialized surfaces, but they are not the default Focus Ops CTA destination.
- Generic booking overview is fallback only.
- The operator should never click a Lucia CTA and have to hunt for the work.
Resolver Matrix
The Resolver Matrix is the safety/routing mechanism that proves messy, infinite CTA possibilities resolve into structured, actionable workspace destinations.
Plain-language definition:
Infinite CTA languageResolver Matrixfinite Action Workspaceoperator can actually do the thing
The Resolver Matrix protects against a common failure: the label sounds specific, but the route lands somewhere generic or unusable. Resolver proof must check the structured destination, not just the CTA text.
Dynamic Action Workspace
Dynamic Action Workspace is the universal operator-facing workspace where structured Lucia CTAs land.
Its rule:
Infinite real-world property tasks.
Finite beautiful action workspaces.
Lucia routes the human to the right one.
Dynamic Action Workspace at /ops/actions is the default destination for structured Focus Ops actions. It should render the actionable object, context, and next operator controls needed to do the work. Specialized pages may remain available as supporting or future-specialized surfaces, but they are not the default Focus Ops CTA destination.
Scoped Entity Routing
Named guest, service, or request prompts must override generic ranking.
Examples:
Yasmin's massage request
Nora's payment
Priya's Wi-Fi issue
If the operator names a concrete entity, Lucia should resolve that entity first and rank inside that scope. It should not silently substitute the current global top item.
Signal Stream Attention Rule
Signal Stream is one coherent intelligent stream shaped by:
Lucia AI / default signal logic
real operational state
operator commands
reminders
dismissals
move-to-top ordering
polling / live dashboard refresh
Newest meaningful attention event wins:
A user Move-to-top command and Lucia reminder resurfacing are both attention-shaping events.
The newest meaningful attention event owns the top of the Signal Stream unless dismissed.
Active Context and Prior Recommendation Memory
Focus Ops now supports active_context from Signal Stream Chat. When the operator starts from a Signal Stream card, the current signal can scope the conversation before generic ranking runs.
Focus Ops also keeps prior recommendation memory for short follow-ups:
Why?
Can this wait?
What should I do after that?
Short follow-ups resolve over verified prior recommendation context instead of guessing from the latest global top item.
Newest verified concrete recommendation replaces prior recommendation memory. Clarifying, informational, or non-concrete replies should not overwrite it.
Focus Ops also keeps prior offer context. A short response like “yes” should confirm the last offered action when that action is verified in context, instead of falling back to generic triage.
Filler and preamble text should not become fake entity context. “Understood? Anything after that?” must not cause Lucia to treat “Understood” as a guest or booking subject.
Next-step prompts such as “What’s next?”, “Now what?”, and “What should I handle next?” should resolve through workspace context, prior recommendation context, and saved DAW workflow state before generic ranking.
Guest Signal Boundary
Guest signals may seed Focus Ops context.
Focus Ops must preserve the identity/linkage contract before it reasons over guest-facing signals:
unlinked signal -> review/link language
candidate signal -> operator link required
verified signal -> booking-aware action may be allowed
Candidate and unlinked guest signals must not drift into similar existing bookings.
Service overlap is never identity evidence.
Airport pickup overlap must never attach an unlinked guest to Luca/Nora or any existing guest.
Focus Ops may explain the guest signal to the operator. It must not claim that the guest is verified, attached, or safe for DAW routing unless the signal is verified or operator-linked.
Saved DAW Workflow Awareness
DAW saved state can enter Focus Ops through active_context.workspace.
Lucia may recognize that a workflow step was saved, but must preserve unresolved operational truth:
saved payment review != payment resolved
saved arrival note != arrival details changed
saved workflow step != external action completed
When payment DAW has known guest identity, Lucia should use it:
Review Nora Ibrahim's payment.
not:
Review this guest's payment.
Current payment DAW proof:
Harper Quinn #29110012 payment reconciliation opens in DAW.
Header shows Payment Paid.
Lucia side chat can state that payment is paid while arrival details remain the issue.
DAW note/save behavior does not mutate payment status.
No charge, refund, mark-paid, or payment mutation control is visible.
Payment Truth Attention
Current implemented Development behavior:
LIEA receives Stripe financial truth from Engine payment records.
Confirmed-paid payment truth can suppress a payment blocker.
Payment attention distinguishes confirmed financial truth from unresolved operational issues.
Harper Quinn #29110012 remained an arrival-readiness issue after payment blocker suppression.
Deferred behavior:
LIEA does not yet consume durable property payment policy truth.
Signal Stream is not yet wired to LIEA.
Admin-local Signal Stream scoring remains a bridge.
Full policy-aware due, overdue, partial, pending-review, deposit, and final-balance judgment is not implemented.
Reminder Semantics
“Remind me” creates real Engine reminder state.
When due, Lucia resurfaces it.
“Got it” means the operator saw the reminder. It does not mean the underlying issue was resolved.
No reminder/action copy should imply handled, resolved, notified, completed, or externally acted on unless verified by system state.
Example Good Output
First priority is Ava Sterling’s reported plumbing leak in the primary suite bathroom. It needs immediate maintenance attention, with payment review still pending and check-in tomorrow.
Why it works:
- names the issue
- identifies urgency
- connects timing
- gives the operator a clear starting point
Example Bad Output
There are multiple operational items that may require review, including maintenance, payments, and guest coordination.
Why it fails:
- no priority
- no next move
- creates more cognitive load
Ranking Signals
Focus Ops may consider:
arrival timing
departure timing
stay window
maintenance severity
guest-reported issues
payment status
confirmed Stripe financial truth
booking status
concierge stage
open tasks
active requests
known mismatches
Protected Prompt Families
Focus Ops now correctly handles prompt families such as:
Time?
What time is it in Bangladesh?
Nice to see you
Let's do this
Should we keep dinner outside tomorrow?
Is outside still okay for the ceremony?
These prompts should not be forced into generic triage or rejected as off-topic simply because they are short, social, or context-light.
Lucia should read the human first, identify the purpose second, and preserve the boundary third.
Tone Requirements
Focus Ops must feel:
calm
direct
warm
specific
not robotic
not therapeutic
Focus Ops must not become open-domain ChatGPT. Even when the prompt is conversational, Lucia stays oriented toward operator guidance, scoped utility, and truthful boundaries.
Permission-Based CTA Rule
Lucia should not imply action was taken unless it actually was.
Correct:
Review Ava Sterling’s payment record.
Incorrect:
I have handled Ava Sterling’s payment issue.
Relationship to Maintenance Inbox
Maintenance Inbox creates structured maintenance signals.
Focus Ops must eventually route those signals into priority reasoning so that real-world maintenance reports affect what Lucia says matters most.
Current state:
maintenance intake works
Focus Ops integration is next-phase routing work
See Also