Status: Canon baseline
Checkpoint: hybrid intent assist layer and weather context utility validation snapshot Branch:build/engine-v0.1.3.5-focus-ops-v0.2
Validation:47/47strict eval pass
Primary runtime owner:engine-v0.1.3.5-focus-ops-v0.2/src/lucia/operatorFocusBrain.js
Purpose
The Lucia Intent Layer is the first explicit runtime layer responsible for helping Lucia understand what the operator means, not merely what phrase the operator typed. This matters because Lucia is not a generic chatbot and not a dashboard wrapper. Lucia must combine:- Operational intelligence — route the operator toward the right work.
- Emotional containment — reduce pressure, preserve calm, and avoid making the operator feel managed by a machine.
- Truth-state discipline — never claim facts, weather, actions, or completion states beyond what the system actually knows.
Core doctrine
Lucia should understand the user’s goal before deciding the response posture. The correct loop is:user languagedeterministic routingsemantic assist when ambiguousconfidence / arbitrationsafe routeoperational, human, or clarification response
The wrong loop is:
hard-code every phrase the user might sayhope enough phrases were anticipatedfall back to generic capability copy when not
Phrase lists may exist as scaffolding, but they are not Lucia’s mind.
What changed in v1
This checkpoint added a hybrid intent-assist layer to Focus Ops. Lucia now has:-
Deterministic routing remains primary
- Strong known cases still route without model interpretation.
- Hard off-role boundaries still win.
- Known operational categories still use explicit routing.
-
Semantic assist for ambiguous cases
- Model-assisted intent classification runs only when deterministic routing is weak or follow-up context is unresolved.
- The assist layer uses structured JSON, not free-form prose.
- The output is sanitized and arbitrated before it can affect runtime behavior.
-
Confidence-gated arbitration
- Lucia accepts semantic assist only when confidence is high enough for the class of decision.
- Low-confidence assist does not override deterministic behavior.
-
Context hints
follow_upsocial_recentfresh
-
Bounded weather-context utility
- Weather is no longer treated as generic unrelated chat.
- Weather is treated as potentially operational because it can affect arrivals, concierge, weddings, outdoor plans, maintenance, and guest readiness.
- Lucia clarifies whether the user means their current location or a managed property.
- Lucia does not invent or provide forecast data in this pass.
-
Safe social language handling
- Greetings, check-ins, gratitude, jokes within bounds, and valedictions are valid human utility interactions.
- Lucia no longer treats benign human language as misuse.
Runtime files
Primary behavior owner
- deterministic routing
- human utility routing
- follow-up state
- intent-assist schema
- confidence thresholds
- arbitration
- weather-context utility response
- debug export for intent assist
Route entry point
Model gateway
- OpenAI client creation
- JSON task calls
- diagnostics-capable JSON task path
Model config
Eval harness
- loads
.envdirectly - runs the hybrid intent-assist path
- supports shared
session_group - supports synthetic time movement through
advance_ms
Debug harness
- deterministic classification
- pending follow-up state
- deterministic strength
- context hint
- gateway diagnostics
- raw assist JSON
- sanitized assist result
- arbitration decision
- final routed intent
Deterministic strength model
Lucia assigns deterministic confidence before asking for semantic help.Strong
Examples:- hard off-role prompts
- clear human utility
- tiny factual
- explicit operational lanes like payment risk, arrivals, maintenance, concierge
Medium
Examples:- broad general focus prompts
- weaker but still operational signals
Weak
Examples:- generic off-role fallback
- ambiguous follow-up language
- short compressed launch phrases
- semantic property-context questions
Intent-assist schema
The assist layer returns strict JSON with fields like:Supported intent types
Supported follow-up choices
Supported operational intents
Supported utility intents
Arbitration principles
Semantic assist is not allowed to freely steer Lucia. The arbiter decides whether assist output can affect routing.Hard boundaries
If the prompt matches a hard true off-role category, that boundary remains intact. Examples:- sports news
- recipes
- stock market
- unrelated creative requests
Follow-up acceptance
If a pending follow-up exists and the user responds with compressed intent like:- “Let’s do this”
- “All right, let’s begin”
- “Start me there”
- “Take me into it”
Social recent / soft-entry
When a recent human/social moment exists, Lucia may treat natural launch language as a soft entry into operations, but only within the allowed window and confidence rules.Weather-context utility
Weather is not open-domain chat in Lucia. Weather is treated as a bounded property-context utility when the user asks about:- weather conditions
- rain
- outdoor plans
- ceremony/dinner viability
- guest readiness implications
- arrival/concierge planning
Weather-context doctrine
Weather can be operationally relevant. Lucia should not answer weather requests as generic weather chat yet. Lucia should ask a bounded clarification such as:Weather behavior allowed now
- classify weather and implied outdoor viability as
property_context_utility - clarify location/property scope
- avoid generic off-topic fallback
- preserve boundedness
Weather behavior not yet allowed
- inventing forecasts
- providing weather data without a source/tool
- implying integrated weather API execution
- treating unrelated weather trivia as operational fact
Human utility doctrine
Lucia should be able to handle safe human language naturally. Examples:- “Good morning”
- “How are you?”
- “Thanks Lucia”
- “Nice to see you”
- “Good night”
- “Sleep well”
- “See you tomorrow”
- “Tell me a joke” within bounded hospitality context
What this layer does not mean
This layer does not make Lucia a general-purpose chatbot. Lucia still should not drift into:- generic open-domain assistant behavior
- unrestricted weather answers
- sports/news/recipe/trivia mode
- fake operational certainty
- fake action completion
- model-driven behavior without arbitration
Observability standard
Intent work must be observable. Every ambiguous or semantic-routing failure should be diagnosed through:- Was the model enabled?
- Did the gateway return
ok,api_error,parse_error, orclient_disabled? - What raw JSON did the model return?
- Did sanitization preserve it?
- Did arbitration accept or reject it?
- What final intent was routed?
Validation snapshot
At this validation checkpoint, Lucia passed:- social follow-up compression
- valedictions
- weather-context utility
- hard off-role preservation
- semantic property/weather prompts
- strict eval harness using the hybrid route
Known follow-up improvements
These are not blockers for the checkpoint, but should be tracked.1. Stronger eval expectation grouping
The current eval harness does not support multiple required-any groups. Weather evals currently use a looser singlerequired_summary_any_terms list.
Future improvement:
- require one user-location phrase
- require one property phrase
- keep these as separate expectation groups
2. Admin session IDs
Admin currently posts prompts to Engine. Multi-turn behavior is improved by explicitx-operator-session support. Future work should ensure the Admin UI passes stable session IDs so live testing is deterministic.

