Raahat Scenario Harness

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

Changing Topic Midstream

continuity_topic_change_midstream · continuity · 1/1 turns executed

Scenario Summary

IDcontinuity_topic_change_midstream
TitleChanging Topic Midstream
Categorycontinuity
Turns1/1
Run Statecompleted
topic_reset

Seed State

UserUnknown user
Phone919900000402
Seed Workflowboarding
Seed State Machine

Current Runtime State

Routemedical_triage
Workflowboarding
State Machinemedical_triage
Stagequalifying

Checks And Lifecycle

Expectations Passed1
Expectations Failed0
Heuristic Warnings0
Medical supersession
Final assessmentScenario completed cleanly with no flagged issues.

Final Outcome

Completed

Completed vs partial run state.

Final Route

medical_triage

Current route at the end of the replay.

Final Workflow / State

boarding

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

Final Stage

qualifying

Resolved from workflow progress or active snapshot.

Expectation Totals

Pass 1 Fail 0

Heuristic Totals

Warnings 0

Missing Fields

No unresolved workflow fields.

Lifecycle Events Seen

Medical supersession
Turn 1
medical_triage medical_triage preempt_to_medical urgent_medical_preemption
Medical supersession Stayed on boarding
PASS PASS PASS
User
Also my cat is not breathing properly
Assistant

What Changed This Turn

  • Active workflow remained boarding.
  • Active workflow was superseded by medical triage.
  • Snapshot version incremented to 2.

Expectation And Heuristic Results

Expectations
PASS: route_type matched expected value 'medical_triage'
Heuristics
PASS: Urgent medical reply kept question count low PASS: Active non-medical workflow was superseded by medical triage
Routing And Interpretation
{
  "confidence": 1.0,
  "reason_codes": [
    "preempt_to_medical",
    "urgent_medical_preemption"
  ],
  "route_type": "medical_triage",
  "workflow_name": "medical_triage"
}
{
  "confidence": 0.98,
  "entities": {
    "symptom_phrases": [
      "not breathing",
      "breathing"
    ]
  },
  "is_vague": false,
  "primary_domain": "medical",
  "reason": "urgent medical emergency phrase",
  "secondary_domains": [],
  "should_continue_active_workflow": false,
  "should_preempt_active_workflow": true,
  "urgency_signal": "urgent"
}
Workflow Progress And Intents
null
[]
Conversation Before And After
{
  "active_state_machine": null,
  "active_workflow": {
    "last_question_key": null,
    "missing_fields": [],
    "next_question": null,
    "stage": "qualifying",
    "started_at": "2026-03-16T22:27:47.732422+00:00",
    "state_payload": {
      "pet_count": 1,
      "raw_date_text": "next weekend"
    },
    "status": "collecting",
    "summary": null,
    "superseded_by": null,
    "updated_at": "2026-03-16T22:27:47.732426+00:00",
    "version": 1,
    "workflow_name": "boarding"
  },
  "current_state": null,
  "entities": {},
  "messages": [],
  "phone": "919900000402",
  "service_actions": [],
  "started_at": "2026-03-16T22:27:47.732498+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:27:47.732498+00:00"
}
{
  "active_state_machine": "medical_triage",
  "active_workflow": {
    "last_question_key": null,
    "missing_fields": [],
    "next_question": null,
    "stage": "qualifying",
    "started_at": "2026-03-16T22:27:47.732422+00:00",
    "state_payload": {
      "pet_count": 1,
      "raw_date_text": "next weekend"
    },
    "status": "superseded",
    "summary": null,
    "superseded_by": "medical_triage",
    "updated_at": "2026-03-16T22:27:48.050224+00:00",
    "version": 2,
    "workflow_name": "boarding"
  },
  "current_state": null,
  "entities": {},
  "messages": [
    {
      "role": "user",
      "source": null,
      "text": "Also my cat is not breathing properly",
      "timestamp": "2026-03-16T22:27:48.050216+00:00"
    }
  ],
  "phone": "919900000402",
  "service_actions": [],
  "started_at": "2026-03-16T22:27:48.050212+00:00",
  "triage_state": null,
  "updated_at": "2026-03-16T22:27:48.050232+00:00"
}
Memory And Trace
{
  "active_state_machine": null,
  "backend": "inmemory",
  "conversation_key_used": "919900000402",
  "conversation_keys": [
    "919900000402",
    "9900000402"
  ],
  "current_state": null,
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 0,
  "ttl_seconds_remaining": null
}
{
  "active_state_machine": "medical_triage",
  "backend": "inmemory",
  "conversation_key_used": "919900000402",
  "conversation_keys": [
    "919900000402",
    "9900000402"
  ],
  "current_state": null,
  "loaded": true,
  "ping_ok": null,
  "redis_enabled": false,
  "thread_message_count": 1,
  "ttl_seconds_remaining": null
}
[
  {
    "component": "brain",
    "payload": {
      "channel": "scenario_harness",
      "conversation_key": "919900000402",
      "message_text": "Also my cat is not breathing properly",
      "normalized_phone": "919900000402",
      "phone": "919900000402"
    },
    "stage": "input",
    "summary": "Received normalized message envelope",
    "timestamp": "2026-03-16T22:27:47.744947+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": null,
      "backend": "inmemory",
      "current_state": null,
      "loaded": true,
      "message_count": 0,
      "storage_key": "919900000402"
    },
    "stage": "memory",
    "summary": "Loaded conversation memory",
    "timestamp": "2026-03-16T22:27:47.744963+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:27:47.744968+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": "919900000402"
    },
    "stage": "context",
    "summary": "Assembled SessionContext for the turn",
    "timestamp": "2026-03-16T22:27:47.744975+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:27:47.745006+00:00"
  },
  {
    "component": "turn_interpretation",
    "payload": {
      "confidence": 0.98,
      "contact_status": "UNKNOWN",
      "entities": {
        "symptom_phrases": [
          "not breathing",
          "breathing"
        ]
      },
      "is_vague": false,
      "primary_domain": "medical",
      "reason": "urgent medical emergency phrase",
      "secondary_domains": [],
      "should_continue_active_workflow": false,
      "should_preempt_active_workflow": true,
      "urgency_signal": "urgent"
    },
    "stage": "decision",
    "summary": "Resolved turn interpretation deterministically",
    "timestamp": "2026-03-16T22:27:47.745474+00:00"
  },
  {
    "component": "profile_context",
    "payload": {
      "phone": "919900000402"
    },
    "stage": "context",
    "summary": "No customer matched provided phone",
    "timestamp": "2026-03-16T22:27:47.745506+00:00"
  },
  {
    "component": "entry_policy",
    "payload": {
      "allow_identity_question": false,
      "bypass_onboarding": true,
      "defer_existing_workflow": true,
      "preempt_active_workflow": true,
      "reason": "urgent medical risk overrides active workflow continuity",
      "run_welcome_orientation": false,
      "selected_posture": "preempt_to_medical"
    },
    "stage": "decision",
    "summary": "Determined entry posture for this turn",
    "timestamp": "2026-03-16T22:27:47.745508+00:00"
  },
  {
    "component": "entry_policy",
    "payload": {
      "forced_primary_intent": "medical_issue",
      "forced_selected_workflow": "medical_triage",
      "original_primary_intent": "medical_issue",
      "original_selected_workflow": "medical_triage",
      "reason": "urgent medical risk overrides active workflow continuity",
      "selected_posture": "preempt_to_medical"
    },
    "stage": "decision",
    "summary": "Entry posture overrode the initial route to force medical handling",
    "timestamp": "2026-03-16T22:27:47.745647+00:00"
  },
  {
    "component": "intent_parser",
    "payload": {
      "continue_active_workflow": false,
      "primary_intent": "medical_issue",
      "reason": "urgent medical risk overrides active workflow continuity",
      "resolved_state_machine": "medical_triage",
      "workflow_source": "intent_match"
    },
    "stage": "decision",
    "summary": "Resolved primary intent and state machine",
    "timestamp": "2026-03-16T22:27:47.745651+00:00"
  },
  {
    "component": "context_builder",
    "payload": {
      "active_workflow": "medical_triage",
      "background_fact_count": 0,
      "current_step": "qualifying",
      "foreground_fact_count": 3,
      "prompt_family": "medical",
      "purpose": "workflow_response"
    },
    "stage": "context",
    "summary": "Built workflow-response context slice for prompt assembly",
    "timestamp": "2026-03-16T22:27:47.745791+00:00"
  },
  {
    "component": "brain",
    "payload": {
      "current_state_before": null,
      "reason": "intent matched a registered state machine",
      "state_machine": "medical_triage"
    },
    "stage": "decision",
    "summary": "Executing state machine path",
    "timestamp": "2026-03-16T22:27:47.745923+00:00"
  },
  {
    "component": "medical_triage",
    "payload": {
      "compact_payload": {
        "incoming_message": "Also my cat is not breathing properly",
        "prompt_family": "medical",
        "workflow_response_context": {
          "active_workflow": "medical_triage",
          "background_facts": [],
          "current_step": "qualifying",
          "entities": {
            "symptom_phrases": [
              "not breathing",
              "breathing"
            ]
          },
          "foreground_facts": [
            {
              "confidence": 1.0,
              "freshness": "current_turn",
              "key": "active_workflow",
              "source": "routing",
              "use_mode": "direct",
              "value": "medical_triage"
            },
            {
              "confidence": 0.95,
              "freshness": "recent_thread",
              "key": "current_step",
              "source": "conversation.current_state",
              "use_mode": "direct",
              "value": "qualifying"
            },
            {
              "confidence": 0.9,
              "freshness": "current_turn",
              "key": "symptom_phrases",
              "source": "turn_interpretation.entities",
              "use_mode": "direct",
              "value": [
                "not breathing",
                "breathing"
              ]
            }
          ],
          "icp_guidance": {},
          "instruction_hints": [
            "Continue medical_triage at qualifying. Prioritize the current symptom report, urgency, and recent thread details before any older profile history.",
            "Use direct facts from the active workflow and recent thread confidently.",
            "Treat confirm facts as historical references that must be verified before you assert them."
          ],
          "llm_required": true,
          "prompt_family": "medical",
          "purpose": "workflow_response",
          "recent_turns": [],
          "relationship_context": {},
          "service_history_context": {},
          "task_hint": "Continue medical_triage at qualifying. Prioritize the current symptom report, urgency, and recent thread details before any older profile history."
        }
      },
      "current_state_before": null,
      "model": "gpt-5.4",
      "prior_triage_state": null,
      "prompt_family": "medical"
    },
    "stage": "llm_request",
    "summary": "Prepared medical triage prompt using current machine state, prior triage state, and compact customer context",
    "timestamp": "2026-03-16T22:27:48.050142+00:00"
  },
  {
    "component": "state_machine",
    "payload": {
      "clinic_routing_triggered": false,
      "current_state": null,
      "next_state": null,
      "service_action_count": 0
    },
    "stage": "response",
    "summary": "State machine produced response",
    "timestamp": "2026-03-16T22:27:48.050197+00:00"
  },
  {
    "component": "memory_store",
    "payload": {
      "active_state_machine": "medical_triage",
      "current_state": null,
      "message_count_after": 1,
      "storage_key": "919900000402"
    },
    "stage": "mutation",
    "summary": "Persisted updated conversation memory",
    "timestamp": "2026-03-16T22:27:48.050487+00:00"
  }
]