Raahat Scenario Harness

Curated conversation replay against the real runtime with stepwise diagnostics, readable deltas, and deterministic checks.

Transport Missing Timing

transport_missing_timing · transport · 2/2 turns executed

Scenario Summary

IDtransport_missing_timing
TitleTransport Missing Timing
Categorytransport
Turns2/2
Run Statecompleted
missing_info multi_turn

Seed State

UserUnknown user
Phone919900000203
Seed Workflow
Seed State Machine

Current Runtime State

Routetransport
Workflowtransport
State Machine
Stageroute_defined

Checks And Lifecycle

Expectations Passed2
Expectations Failed0
Heuristic Warnings0
Stage advanced Sticky continuation
Final assessmentOperationally incomplete: unresolved fields remain (pet_count).

Final Outcome

Completed

Completed vs partial run state.

Final Route

transport

Current route at the end of the replay.

Final Workflow / State

transport

Workflow preferred; state machine shown if no workflow is active.

Final Stage

route_defined

Resolved from workflow progress or active snapshot.

Expectation Totals

Pass 2 Fail 0

Heuristic Totals

Warnings 0

Missing Fields

pet_count

Lifecycle Events Seen

Stage advanced Sticky continuation
Turn 1
transport transport route_defined intent_match
Stage advanced New slots filled Memory updated
PASS
User
Need transport from Aundh to Baner
Assistant
When do you need the transport?

What Changed This Turn

  • Workflow changed none -> transport.
  • Stage advanced none -> route_defined.
  • New slot filled: drop_area=Baner.
  • New slot filled: last_question_key=time_window.
  • New slot filled: pickup_area=Aundh.
  • New slot filled: request_kind=booking.
  • New slot filled: stage=route_defined.
  • New slot filled: trip_kind=pickup_drop.
  • New slot filled: urgency_class=routine.
  • Memory updated with area.
  • Memory updated with drop_area.
  • Memory updated with last_non_medical_domain.
  • Memory updated with pickup_area.
  • Memory updated with transport_urgency.
  • Memory updated with trip_kind.
  • Snapshot version incremented to 1.

Expectation And Heuristic Results

Expectations
PASS: workflow_name matched expected value 'transport'
Routing And Interpretation
{
  "confidence": 0.9,
  "reason_codes": [
    "intent_match"
  ],
  "route_type": "transport",
  "workflow_name": "transport"
}
{
  "confidence": 0.9,
  "entities": {
    "area": "baner",
    "city": "pune",
    "drop_area": "Baner",
    "pickup_area": "Aundh",
    "zone": "west"
  },
  "is_vague": false,
  "primary_domain": "transport",
  "reason": "clear transport request",
  "secondary_domains": [],
  "should_continue_active_workflow": false,
  "should_preempt_active_workflow": false,
  "urgency_signal": "none"
}
Workflow Progress And Intents
{
  "missing_fields": [
    "time_window",
    "pet_count"
  ],
  "next_question": "When do you need the transport?",
  "notes": [],
  "stage": "route_defined",
  "state_payload": {
    "drop_area": "Baner",
    "handling_requirements": [],
    "last_question_key": "time_window",
    "pet_count": null,
    "pickup_area": "Aundh",
    "raw_date_text": null,
    "raw_time_text": null,
    "request_kind": "booking",
    "return_trip_required": null,
    "stage": "route_defined",
    "time_window": null,
    "travel_date": null,
    "trip_kind": "pickup_drop",
    "urgency_class": "routine"
  },
  "status": "collecting",
  "summary": "Aundh -> Baner",
  "superseded_by": null,
  "workflow_name": "transport"
}
[]
Conversation Before And After
{
  "active_state_machine": null,
  "active_workflow": null,
  "current_state": null,
  "entities": {},
  "messages": [],
  "phone": "919900000203",
  "service_actions": [],
  "started_at": "2026-03-16T22:29:14.438006+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:29:14.438009+00:00"
}
{
  "active_state_machine": null,
  "active_workflow": {
    "last_question_key": "time_window",
    "missing_fields": [
      "time_window",
      "pet_count"
    ],
    "next_question": "When do you need the transport?",
    "stage": "route_defined",
    "started_at": "2026-03-16T22:29:14.443534+00:00",
    "state_payload": {
      "drop_area": "Baner",
      "handling_requirements": [],
      "last_question_key": "time_window",
      "pet_count": null,
      "pickup_area": "Aundh",
      "raw_date_text": null,
      "raw_time_text": null,
      "request_kind": "booking",
      "return_trip_required": null,
      "stage": "route_defined",
      "time_window": null,
      "travel_date": null,
      "trip_kind": "pickup_drop",
      "urgency_class": "routine"
    },
    "status": "collecting",
    "summary": "Aundh -> Baner",
    "superseded_by": null,
    "updated_at": "2026-03-16T22:29:14.443535+00:00",
    "version": 1,
    "workflow_name": "transport"
  },
  "current_state": "ROUTE_DEFINED",
  "entities": {
    "area": "Aundh",
    "drop_area": "Baner",
    "last_non_medical_domain": "transport",
    "pickup_area": "Aundh",
    "transport_urgency": "routine",
    "trip_kind": "pickup_drop"
  },
  "messages": [
    {
      "role": "user",
      "source": null,
      "text": "Need transport from Aundh to Baner",
      "timestamp": "2026-03-16T22:29:14.443565+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "When do you need the transport?",
      "timestamp": "2026-03-16T22:29:14.443567+00:00"
    }
  ],
  "phone": "919900000203",
  "service_actions": [],
  "started_at": "2026-03-16T22:29:14.443562+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:29:14.443584+00:00"
}
Memory And Trace
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000203",
  "conversation_keys": [
    "919900000203",
    "9900000203"
  ],
  "current_state": null,
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 0,
  "ttl_seconds_remaining": null
}
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000203",
  "conversation_keys": [
    "919900000203",
    "9900000203"
  ],
  "current_state": "ROUTE_DEFINED",
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 2,
  "ttl_seconds_remaining": null
}
[
  {
    "component": "brain",
    "payload": {
      "channel": "scenario_harness",
      "conversation_key": "919900000203",
      "message_text": "Need transport from Aundh to Baner",
      "normalized_phone": "919900000203",
      "phone": "919900000203"
    },
    "stage": "input",
    "summary": "Received normalized message envelope",
    "timestamp": "2026-03-16T22:29:14.442895+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "backend": "inmemory",
      "current_state": null,
      "loaded": true,
      "message_count": 0,
      "storage_key": "919900000203"
    },
    "stage": "memory",
    "summary": "Loaded conversation memory",
    "timestamp": "2026-03-16T22:29:14.442900+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "has_prior_triage_state": false,
      "prior_state_error": null
    },
    "stage": "state",
    "summary": "Parsed prior working state",
    "timestamp": "2026-03-16T22:29:14.442902+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "compact_payload_keys": [
        "incoming_message"
      ],
      "has_conversation": true,
      "has_customer": false,
      "has_icp": false,
      "has_profile": false,
      "recent_import_count": 0,
      "storage_key": "919900000203"
    },
    "stage": "context",
    "summary": "Assembled SessionContext for the turn",
    "timestamp": "2026-03-16T22:29:14.442906+00:00"
  },
  {
    "component": "contact_resolver",
    "payload": {
      "confidence": 0.0,
      "customer_id": null,
      "display_name": null,
      "matched_phone": null,
      "status": "UNKNOWN"
    },
    "stage": "decision",
    "summary": "Resolved sender contact status",
    "timestamp": "2026-03-16T22:29:14.442911+00:00"
  },
  {
    "component": "turn_interpretation",
    "payload": {
      "confidence": 0.9,
      "contact_status": "UNKNOWN",
      "entities": {
        "area": "baner",
        "city": "pune",
        "drop_area": "Baner",
        "pickup_area": "Aundh",
        "zone": "west"
      },
      "is_vague": false,
      "primary_domain": "transport",
      "reason": "clear transport request",
      "secondary_domains": [],
      "should_continue_active_workflow": false,
      "should_preempt_active_workflow": false,
      "urgency_signal": "none"
    },
    "stage": "decision",
    "summary": "Resolved turn interpretation deterministically",
    "timestamp": "2026-03-16T22:29:14.443088+00:00"
  },
  {
    "component": "profile_context",
    "payload": {
      "phone": "919900000203"
    },
    "stage": "context",
    "summary": "No customer matched provided phone",
    "timestamp": "2026-03-16T22:29:14.443144+00:00"
  },
  {
    "component": "entry_policy",
    "payload": {
      "allow_identity_question": true,
      "bypass_onboarding": false,
      "defer_existing_workflow": false,
      "preempt_active_workflow": false,
      "reason": "unknown contact with a clear non-urgent request can allow one light identity question later",
      "run_welcome_orientation": false,
      "selected_posture": "light_onboarding"
    },
    "stage": "decision",
    "summary": "Determined entry posture for this turn",
    "timestamp": "2026-03-16T22:29:14.443148+00:00"
  },
  {
    "component": "intent_parser",
    "payload": {
      "continue_active_workflow": false,
      "primary_intent": "transport_request",
      "reason": "matched_keyword_rules",
      "resolved_state_machine": "transport",
      "workflow_source": "intent_match"
    },
    "stage": "decision",
    "summary": "Resolved primary intent and state machine",
    "timestamp": "2026-03-16T22:29:14.443207+00:00"
  },
  {
    "component": "context_builder",
    "payload": {
      "active_workflow": "transport",
      "background_fact_count": 0,
      "current_step": null,
      "foreground_fact_count": 4,
      "prompt_family": "general",
      "purpose": "workflow_response"
    },
    "stage": "context",
    "summary": "Built workflow-response context slice for prompt assembly",
    "timestamp": "2026-03-16T22:29:14.443251+00:00"
  },
  {
    "component": "workflow",
    "payload": {
      "action_intents": [],
      "missing_fields": [
        "time_window",
        "pet_count"
      ],
      "next_question": "When do you need the transport?",
      "stage": "route_defined",
      "status": "collecting",
      "summary": "Aundh -> Baner",
      "workflow_name": "transport"
    },
    "stage": "decision",
    "summary": "Executed deterministic workflow handler",
    "timestamp": "2026-03-16T22:29:14.443551+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "current_state": "ROUTE_DEFINED",
      "message_count_after": 2,
      "storage_key": "919900000203"
    },
    "stage": "mutation",
    "summary": "Persisted updated conversation memory",
    "timestamp": "2026-03-16T22:29:14.443859+00:00"
  }
]
Turn 2
transport transport route_defined active_workflow_snapshot follow_up active_workflow_snapshot
Sticky continuation New slots filled Memory updated Stayed on transport
PASS PASS PASS
User
Tomorrow morning
Assistant
Got it. I can help with transport. How many cats is this for?

What Changed This Turn

  • Active workflow remained transport.
  • New slot filled: raw_date_text=tomorrow.
  • New slot filled: raw_time_text=morning.
  • New slot filled: time_window=morning.
  • New slot filled: travel_date=2026-03-17.
  • Memory updated with date_phrase.
  • Memory updated with time_text.
  • Memory updated with time_window.
  • Memory updated with transport_urgency.
  • Memory updated with travel_date.
  • Snapshot version incremented to 2.

Expectation And Heuristic Results

Expectations
PASS: workflow_name matched expected value 'transport'
Heuristics
PASS: Workflow avoided repeating the same question PASS: Active workflow remained sticky across terse follow-up
Routing And Interpretation
{
  "confidence": 0.89,
  "reason_codes": [
    "active_workflow_snapshot",
    "follow_up",
    "active_workflow_snapshot",
    "follow_up_slot_fill"
  ],
  "route_type": "transport",
  "workflow_name": "transport"
}
{
  "confidence": 0.89,
  "entities": {
    "date_phrase": "tomorrow",
    "time_text": "morning"
  },
  "is_vague": false,
  "primary_domain": "transport",
  "reason": "slot-like follow-up matches active workflow",
  "secondary_domains": [],
  "should_continue_active_workflow": true,
  "should_preempt_active_workflow": false,
  "urgency_signal": "none"
}
Workflow Progress And Intents
{
  "missing_fields": [
    "pet_count"
  ],
  "next_question": "Got it. I can help with transport. How many cats is this for?",
  "notes": [],
  "stage": "route_defined",
  "state_payload": {
    "drop_area": "Baner",
    "handling_requirements": [],
    "last_question_key": "pet_count",
    "pet_count": null,
    "pickup_area": "Aundh",
    "raw_date_text": "tomorrow",
    "raw_time_text": "morning",
    "request_kind": "booking",
    "return_trip_required": null,
    "stage": "route_defined",
    "time_window": "morning",
    "travel_date": "2026-03-17",
    "trip_kind": "pickup_drop",
    "urgency_class": "soon"
  },
  "status": "collecting",
  "summary": "Aundh -> Baner | 2026-03-17 | morning",
  "superseded_by": null,
  "workflow_name": "transport"
}
[]
Conversation Before And After
{
  "active_state_machine": null,
  "active_workflow": {
    "last_question_key": "time_window",
    "missing_fields": [
      "time_window",
      "pet_count"
    ],
    "next_question": "When do you need the transport?",
    "stage": "route_defined",
    "started_at": "2026-03-16T22:29:14.443534+00:00",
    "state_payload": {
      "drop_area": "Baner",
      "handling_requirements": [],
      "last_question_key": "time_window",
      "pet_count": null,
      "pickup_area": "Aundh",
      "raw_date_text": null,
      "raw_time_text": null,
      "request_kind": "booking",
      "return_trip_required": null,
      "stage": "route_defined",
      "time_window": null,
      "travel_date": null,
      "trip_kind": "pickup_drop",
      "urgency_class": "routine"
    },
    "status": "collecting",
    "summary": "Aundh -> Baner",
    "superseded_by": null,
    "updated_at": "2026-03-16T22:29:14.443535+00:00",
    "version": 1,
    "workflow_name": "transport"
  },
  "current_state": "ROUTE_DEFINED",
  "entities": {
    "area": "Aundh",
    "drop_area": "Baner",
    "last_non_medical_domain": "transport",
    "pickup_area": "Aundh",
    "transport_urgency": "routine",
    "trip_kind": "pickup_drop"
  },
  "messages": [
    {
      "role": "user",
      "source": null,
      "text": "Need transport from Aundh to Baner",
      "timestamp": "2026-03-16T22:29:14.443565+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "When do you need the transport?",
      "timestamp": "2026-03-16T22:29:14.443567+00:00"
    }
  ],
  "phone": "919900000203",
  "service_actions": [],
  "started_at": "2026-03-16T22:29:14.443562+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:29:14.443584+00:00"
}
{
  "active_state_machine": null,
  "active_workflow": {
    "last_question_key": "pet_count",
    "missing_fields": [
      "pet_count"
    ],
    "next_question": "Got it. I can help with transport. How many cats is this for?",
    "stage": "route_defined",
    "started_at": "2026-03-16T22:29:14.443534+00:00",
    "state_payload": {
      "drop_area": "Baner",
      "handling_requirements": [],
      "last_question_key": "pet_count",
      "pet_count": null,
      "pickup_area": "Aundh",
      "raw_date_text": "tomorrow",
      "raw_time_text": "morning",
      "request_kind": "booking",
      "return_trip_required": null,
      "stage": "route_defined",
      "time_window": "morning",
      "travel_date": "2026-03-17",
      "trip_kind": "pickup_drop",
      "urgency_class": "soon"
    },
    "status": "collecting",
    "summary": "Aundh -> Baner | 2026-03-17 | morning",
    "superseded_by": null,
    "updated_at": "2026-03-16T22:29:14.447031+00:00",
    "version": 2,
    "workflow_name": "transport"
  },
  "current_state": "ROUTE_DEFINED",
  "entities": {
    "area": "Aundh",
    "date_phrase": "tomorrow",
    "drop_area": "Baner",
    "last_non_medical_domain": "transport",
    "pickup_area": "Aundh",
    "time_text": "morning",
    "time_window": "morning",
    "transport_urgency": "soon",
    "travel_date": "2026-03-17",
    "trip_kind": "pickup_drop"
  },
  "messages": [
    {
      "role": "user",
      "source": null,
      "text": "Need transport from Aundh to Baner",
      "timestamp": "2026-03-16T22:29:14.443565+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "When do you need the transport?",
      "timestamp": "2026-03-16T22:29:14.443567+00:00"
    },
    {
      "role": "user",
      "source": null,
      "text": "Tomorrow morning",
      "timestamp": "2026-03-16T22:29:14.447055+00:00"
    },
    {
      "role": "assistant",
      "source": "B",
      "text": "Got it. I can help with transport. How many cats is this for?",
      "timestamp": "2026-03-16T22:29:14.447057+00:00"
    }
  ],
  "phone": "919900000203",
  "service_actions": [],
  "started_at": "2026-03-16T22:29:14.443562+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:29:14.447073+00:00"
}
Memory And Trace
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000203",
  "conversation_keys": [
    "919900000203",
    "9900000203"
  ],
  "current_state": "ROUTE_DEFINED",
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 2,
  "ttl_seconds_remaining": null
}
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000203",
  "conversation_keys": [
    "919900000203",
    "9900000203"
  ],
  "current_state": "ROUTE_DEFINED",
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 4,
  "ttl_seconds_remaining": null
}
[
  {
    "component": "brain",
    "payload": {
      "channel": "scenario_harness",
      "conversation_key": "919900000203",
      "message_text": "Tomorrow morning",
      "normalized_phone": "919900000203",
      "phone": "919900000203"
    },
    "stage": "input",
    "summary": "Received normalized message envelope",
    "timestamp": "2026-03-16T22:29:14.446612+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "backend": "inmemory",
      "current_state": "ROUTE_DEFINED",
      "loaded": true,
      "message_count": 2,
      "storage_key": "919900000203"
    },
    "stage": "memory",
    "summary": "Loaded conversation memory",
    "timestamp": "2026-03-16T22:29:14.446616+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "has_prior_triage_state": false,
      "prior_state_error": null
    },
    "stage": "state",
    "summary": "Parsed prior working state",
    "timestamp": "2026-03-16T22:29:14.446617+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "compact_payload_keys": [
        "incoming_message"
      ],
      "has_conversation": true,
      "has_customer": false,
      "has_icp": false,
      "has_profile": false,
      "recent_import_count": 0,
      "storage_key": "919900000203"
    },
    "stage": "context",
    "summary": "Assembled SessionContext for the turn",
    "timestamp": "2026-03-16T22:29:14.446620+00:00"
  },
  {
    "component": "contact_resolver",
    "payload": {
      "confidence": 0.0,
      "customer_id": null,
      "display_name": null,
      "matched_phone": null,
      "status": "UNKNOWN"
    },
    "stage": "decision",
    "summary": "Resolved sender contact status",
    "timestamp": "2026-03-16T22:29:14.446623+00:00"
  },
  {
    "component": "turn_interpretation",
    "payload": {
      "confidence": 0.89,
      "contact_status": "UNKNOWN",
      "entities": {
        "date_phrase": "tomorrow",
        "time_text": "morning"
      },
      "is_vague": false,
      "primary_domain": "transport",
      "reason": "slot-like follow-up matches active workflow",
      "secondary_domains": [],
      "should_continue_active_workflow": true,
      "should_preempt_active_workflow": false,
      "urgency_signal": "none"
    },
    "stage": "decision",
    "summary": "Resolved turn interpretation deterministically",
    "timestamp": "2026-03-16T22:29:14.446739+00:00"
  },
  {
    "component": "profile_context",
    "payload": {
      "phone": "919900000203"
    },
    "stage": "context",
    "summary": "No customer matched provided phone",
    "timestamp": "2026-03-16T22:29:14.446743+00:00"
  },
  {
    "component": "entry_policy",
    "payload": {
      "allow_identity_question": false,
      "bypass_onboarding": true,
      "defer_existing_workflow": false,
      "preempt_active_workflow": false,
      "reason": "existing active workflow should continue unless urgency preempts it",
      "run_welcome_orientation": false,
      "selected_posture": "continue_active"
    },
    "stage": "decision",
    "summary": "Determined entry posture for this turn",
    "timestamp": "2026-03-16T22:29:14.446745+00:00"
  },
  {
    "component": "intent_parser",
    "payload": {
      "continue_active_workflow": true,
      "primary_intent": "transport_request",
      "reason": "continue_active_workflow_snapshot_from_follow_up",
      "resolved_state_machine": "transport",
      "workflow_source": "active_workflow"
    },
    "stage": "decision",
    "summary": "Resolved primary intent and state machine",
    "timestamp": "2026-03-16T22:29:14.446787+00:00"
  },
  {
    "component": "context_builder",
    "payload": {
      "active_workflow": "transport",
      "background_fact_count": 0,
      "current_step": "ROUTE_DEFINED",
      "foreground_fact_count": 5,
      "prompt_family": "general",
      "purpose": "workflow_response"
    },
    "stage": "context",
    "summary": "Built workflow-response context slice for prompt assembly",
    "timestamp": "2026-03-16T22:29:14.446823+00:00"
  },
  {
    "component": "workflow",
    "payload": {
      "action_intents": [],
      "missing_fields": [
        "pet_count"
      ],
      "next_question": "Got it. I can help with transport. How many cats is this for?",
      "stage": "route_defined",
      "status": "collecting",
      "summary": "Aundh -> Baner | 2026-03-17 | morning",
      "workflow_name": "transport"
    },
    "stage": "decision",
    "summary": "Executed deterministic workflow handler",
    "timestamp": "2026-03-16T22:29:14.447043+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "current_state": "ROUTE_DEFINED",
      "message_count_after": 4,
      "storage_key": "919900000203"
    },
    "stage": "mutation",
    "summary": "Persisted updated conversation memory",
    "timestamp": "2026-03-16T22:29:14.447668+00:00"
  }
]