Skip to content

TEST_CASES TASK_MANAGEMENT

Joo edited this page Oct 8, 2026 · 4 revisions

테스트 케이스 — 태스크 관리 (실데이터 기준)

작성일 2026-09-12. 운영 서버에 실제 저장된 데이터를 기준으로 작성한 태스크 관리(장소·태스크·이벤트·스토어·디바이스) 테스트 케이스. 데이터는 코드가 아니라 운영 브로커·로그에서 직접 수집했다 (수집 방법은 §0).

0. 데이터 출처와 한계

출처 내용 비고
MQTT retained orchestration/{sid}/dashboard 270세션 장소·태스크·선택지·준비물·디바이스·상품 매핑 세션마다 장소 4곳·태스크 3개씩 샘플링되므로 전체 카탈로그의 합집합 = 102 태스크
orchestration/store/list · devices/list · ai-companion/list · user-meta-prompt/list 상품 12 · 디바이스 16 · AI 동반자 5 · 메타 프롬프트 13 서버가 retained 발행하는 전체 목록
robot/spot-01/{waypoints,scenarios,estop,fault} SPOT 현재 상태 2026-09-12 01:30 UTC 기준
Loki (/grafana/) 최근 4일 서버 로그 이벤트 발행 실적, 요청 토픽 9/8 배포 이후분만 있음
orchestration-server/sql/seed_planning.sql 이벤트 24종·선택지 정의 운영 DB와 동일 ID(EVT-21 발행 로그로 교차 확인)

직접 확인 못 한 것 (백오피스에서 재확인 필요): 이벤트별 is_active·category(normal/sudden) 실제 값, 도착 자동화 규칙, 상품 카테고리, 장소별 콘텐츠(has_children 분기) 설정, 태스크의 description_prompt·is_active. DB 직접 조회는 접근 제한으로 못 했다.

1. 테스트 데이터 스냅샷

1.1 장소

장소 역할 CCTV short_summary 예 (LLM 생성)
집 (시작, id …993d40668bfe) STEP1 고정 cam_51, diorama_01 / content.type=cctv 외출 준비중, 출근 준비중, 등원 준비중
집 (종료, id …badea24d7812) STEP4 고정 cam_51, diorama_01 귀가 후 정리중, 장본 물품 정리중
마트 STEP2/3 셔플 풀 cam_52, diorama_01 장보는 중
공원 STEP2/3 셔플 풀 cam_52, diorama_01 운동중, 운동하는 중
차 STEP2/3 셔플 풀 cam_51, diorama_01 이동중, 차량 점검중

집이 시작/종료 두 개의 별도 장소 레코드라는 점에 주의(테스트에서 "집" 이름만으로 매칭하면 안 됨). 테스트 세션용 구형 집 레코드(id …5e0deea846b1, …f344140c0881, CCTV 없음)도 44세션에 남아 있다.

1.2 관측된 경로 (PLANNING R01~R06와 일치)

경로 관측 세션 수
집 → 차 → 마트 → 집 117
집 → 공원 → 마트 → 집 97
집 → 차 → 공원 → 집 85
집 → 마트 → 공원 → 집 62
집 → 공원 → 차 → 집 44
집 → 마트 → 차 → 집 37
집 → 차량 → 공원 → 집 7

1.3 태스크 — 집 (STEP1·STEP4 공용 풀)

태스크 타입 기획ID 예정시각 연계 이벤트 특수 필드 세션수
내일 일정 알림 basic 19:00 385
아이와 숙제하기 detailed 19:01 385
마트 장봐온 물품 정리 basic 19:02 385
외출 준비 물품 체크 packing 07:05 준비물: 우산(슬롯3), 텀블러(슬롯5) 264
컨디션 기반 하루 브리핑 DAY_BRIEFING_BY_CONDITION HOME-04 07:01 - 선택지: 정지; 디바이스: Diorama-CCTV#2 262
영양제 챙겨주기 basic HOME-13 07:18 - 232
아이 등원 준비물 체크 packing 07:10 선택지: 에스코트해줘 (구독 필요: Spot 동행·에스코트 100pt) / 내가 알아서 가기; 준비물: 도시락통(슬롯1), 유치원가방(슬롯4) 152
출근 준비물 체크 packing 08:01 준비물: 사원증(슬롯2), 텀블러(슬롯5); 디바이스: 반려로봇 134
홈 발렛 모드 basic 08:00 디바이스: 반려로봇; 첨부 55
빈 집 확인 basic 09:00 선택지: 알아서 걷기; 디바이스: Space-CCTV#1 46
간식/물병 준비 (없음·구형) 디바이스: 반려로봇 41
여벌 옷 준비 (없음·구형) 디바이스: 반려로봇 17
아이 가방 챙기기 (없음·구형) 디바이스: 반려로봇 16
아이와 공원 외출 준비 packing 준비물: 우산(슬롯3), 도시락통(슬롯1); 디바이스: 반려로봇 14
외출 전 집 상태 점검 basic 디바이스: 반려로봇 14
간식/물병 준비 (없음·구형) 11
여벌 옷 준비 (없음·구형) 11
[TEST] LG 가전 전원 켜기 테스트 basic 08:01 10
[EPI-01] AI 하루 여정 회고 (없음·구형) EPI-01 - 디바이스: Physical AI Hub 10
[EPI-02] 새 하드웨어 설정·기억 이전 (없음·구형) EPI-02 EVT-01 디바이스: Physical AI Hub 10
반려동물 이상 상황 알림 (없음·구형) HOME-07 EVT-04 디바이스: 체험 태블릿 8
반려동물과 하루 회고 (없음·구형) HOME-14 - 디바이스: 가정용 로봇 8
식후 움직임 유도 (없음·구형) HOME-12 - 디바이스: 가정용 로봇 8
아이와 귀가 맞이 (없음·구형) HOME-10 - 디바이스: 가정용 로봇 7
[HOME-05] 불 꺼진 거실 확인 (없음·구형) HOME-05 - 디바이스: 가정용 로봇 6
[HOME-06] 가전기사 방문 대응 (없음·구형) HOME-06 EVT-05 디바이스: 체험 태블릿 6
[HOME-08] 냉장고 재고 확인 (없음·구형) HOME-08 EVT-06 디바이스: 체험 태블릿 6
[HOME-09] 이사 후 로봇 대청소 (없음·구형) HOME-09 EVT-07 디바이스: Physical AI Hub 6
[HOME-11] 구매물품 정리 안내 (없음·구형) HOME-11 - 디바이스: 가정용 로봇 6
[HOME-15] 부모님 상태 확인 및 대응 (없음·구형) HOME-15 EVT-03 디바이스: 체험 태블릿 6
[HOME-16] 홈 발렛 모드 실행 (없음·구형) HOME-16 EVT-05 디바이스: Physical AI Hub 6
[HOME-17] Spot 에스코트 서비스 (없음·구형) HOME-17 - 디바이스: Spot 로봇 6
오늘의 가족 일정·이동 브리핑 detailed 디바이스: 반려로봇 5
구매물품 정리 안내 (없음·구형) 디바이스: CCTV 4
아이와 귀가 맞이 (없음·구형) 디바이스: CCTV 4
식후 움직임 유도 (없음·구형) 디바이스: 반려로봇 4
영양제 챙겨주기 (없음·구형) 디바이스: 반려로봇 4
귀가 후 가족 상태 확인 basic 1

1.4 태스크 — 마트

태스크 타입 기획ID 예정시각 연계 이벤트 특수 필드 세션수
오늘의 메뉴·재료 선택 basic MART-06 10:18 EVT-19 206
반려동물 케어 상품 추천 basic MART-08 18:15 EVT-20 100
타임세일 상품 비교 detailed MART-04 10:10 EVT-10 90
부모님 케어 상품 추천 basic MART-10 10:55 EVT-21 69
직접 픽업 동선 안내 basic MART-02 10:30 EVT-18 65
Spot 밀키트 번들 수령 basic MART-07 18:12 EVT-19 65
Spot 펫케어 키트 수령 basic MART-09 18:25 EVT-20 55
비 오는 날 귀가 준비 상품 선택 basic MART-12 18:27 EVT-08, EVT-22 50
Spot 냉장고 보충 번들 수령 basic MART-03 07:48 EVT-18 44
냉장고 부족 재료 확인 basic MART-01 EVT-06, EVT-18 디바이스: Physical AI Hub 36
Spot 타임세일 번들 수령 basic MART-05 18:00 EVT-10 28
빈 집 확인 basic 디바이스: 반려로봇 22
홈파티 메뉴·상품 구성 basic MART-14 10:25 EVT-23 20
Spot 부모님 케어 패키지 수령 basic MART-11 18:20 EVT-21 18
[MART-17] AUM 드론 긴급배송 basic MART-17 EVT-24 디바이스: Physical AI Hub 15
[MART-16] 마트 재고 부족 확인 basic MART-16 EVT-24 디바이스: Physical AI Hub 13
Spot 귀가 준비 키트 수령 basic MART-13 10:25 EVT-08, EVT-22 10
[MART-15] Spot 파티 바구니 수령 basic MART-15 EVT-23 7
냉장고 보충 번들 수령 (없음·구형) 디바이스: spot 3
Spot 냉장고 보충 번들 수령 (없음·구형) 디바이스: spot 3
냉장고 보충 번들 수령 (없음·구형) 디바이스: spot 3

1.5 태스크 — 공원

태스크 타입 기획ID 예정시각 연계 이벤트 특수 필드 세션수
맞춤형 운동 루틴 basic PARK-01 09:00 EVT-09 138
비전 자세 코칭 basic PARK-03 09:08 EVT-09 103
Spot 페이스메이커 basic PARK-02 18:46 EVT-09 87
희귀동물 관찰 basic PARK-08 12:13 EVT-14 71
Spot 보물 힌트 basic PARK-06 08:36 EVT-13 58
희귀동물 도감 등록 basic PARK-09 10:08 EVT-14 52
플로깅 수거 인증 basic PARK-05 18:00 EVT-11 45
플로깅 지점 안내 basic PARK-04 09:16 EVT-11 41
AR 크리처 포획 basic PARK-11 12:11 EVT-15 38
Spot 크리처 탐색 동행 basic PARK-10 08:13 EVT-15 선택지: [테스트] 임의의 선택지 (구독 필요: 코트 컨시어지 2000pt) / 알아서 따라가기 34
AR 보물상자 탐색 basic PARK-07 10:16 EVT-13 24
브랜드 리워드 지점 안내 basic PARK-12 09:16 EVT-16 21
[TEST] SPOT 테스트용임~~ basic 18:30 선택지: 그냥 해 좀!! / 그냥 기본으로 걷기; 디바이스: spot 21
집 안 환기 basic 09:00 선택지: 기본으로 진행; 디바이스: LG퓨리케어 360 19
Spot 희귀자원 탐사 안내 basic PARK-14 12:33 EVT-17 16
갑작스러운 비 대응 basic PARK-16 09:09 EVT-08 14
광고 콘텐츠 참여·리워드 수령 basic PARK-13 08:16 EVT-16 11
AR 자원 카드 획득 basic PARK-15 09:31 EVT-17 11
페이스메이커 (없음·구형) 디바이스: spot 3
플로깅 수거 인증 (없음·구형) 디바이스: CCTV 3
희귀동물 관찰 (없음·구형) 디바이스: spot 3
쇼핑하기 (없음·구형) 디바이스: 반려로봇 3

1.6 태스크 — 차

태스크 타입 기획ID 예정시각 연계 이벤트 특수 필드 세션수
이동 일정 브리핑 detailed VEH-01 08:10 - 177
차량 상태·주행 점검 basic VEH-03 09:06 EVT-12 170
여행자님의 맞춤 신차 견적이 준비되었습니다 quote_briefing 09:00 차량옵션 4개; issue: 여행자 맞춤 혜택 안내 80
도착/귀가 연계 브리핑 basic 디바이스: 차량 69
수소 충전 hydrogen_charging 디바이스: 차량 58
[VEH-06] 스마트 충전·주차 계획 basic VEH-06 - 디바이스: 자율주행 차량 디스플레이 45
가족과 떠날 준비, 새 차가 기다립니다 vehicle_ready 08:36 디바이스: 차량; 개인화옵션 1개; issue: 이전 차량 설정이 그대로 이어집니다 41
차량 관리 예약 basic 디바이스: 차량 33
출장지 업무 지원 basic 디바이스: 차량 28
여행자님, 오늘 출장 일정 확인하세요 business_trip_briefing 09:00 issue: 출장 필수 체크사항 21
[VEH-04] 정비 예약·경로 연결 basic VEH-04 EVT-12 디바이스: 자율주행 차량 디스플레이 14
[TEST] LG 가전 공기청정기 실행 basic 08:30 13
나를 위한 신차 출고 READY_TO_CAR_DELIVERY 10
에스코트 basic 선택지: 에스코트 동행! (구독 필요: Spot 동행·에스코트 100pt) / 그냥 너가 걸어가기 5
[VEH-02] 아이 픽업·병원 경로 변경 (없음·구형) VEH-02 EVT-02 디바이스: 자율주행 차량 디스플레이 4
[VEH-05] 차량 서브스텝 이동 승인 (없음·구형) VEH-05 - 디바이스: 자율주행 차량 디스플레이 4
출장지 이동 (없음·구형) 디바이스: 차량 2
운전 최적화 코칭 (없음·구형) 디바이스: 차량 2
정비 예약·경로 연결 (없음·구형) 디바이스: 차량 2

1.7 이벤트 24종 (seed_planning 기준, 선택지 포함)

이벤트 선택지 연계 태스크(기획ID)
[EVT-01] 새 하드웨어 전환·기억 이전 새 하드웨어와 이전할 데이터 범위를 확인 / 승인 에필로그
[EVT-02] 어린이집 알림 대응안과 변경 경로를 선택 / 승인 VEH-02
[EVT-03] 부모님 낙상 상태 확인 / 연락 / 응급 대응 승인 —
[EVT-04] 반려동물 이상 감지 상태 확인 / 대응 방법 선택 —
[EVT-05] 가전케어 서비스 방문 방문자 확인 / 출입과 작업 범위 승인 홈 발렛 모드
[EVT-06] 냉장고 재고 확인 보충할 품목을 확인 / 선택 MART-01
[EVT-07] 이사 후 홈 리셋 정리 범위와 구매 / 실행할 스킬 선택 —
[EVT-08] 갑작스러운 비 대응안과 다음 이동을 선택 PARK-16, MART-12, MART-13
[EVT-09] 맞춤형 운동 코칭 운동 시작 / 난이도 선택 / 동작 수행 PARK-01·02·03
[EVT-10] 타임세일 장보기 상품 추가 여부와 수령 방식 선택 MART-04·05
[EVT-11] 플로깅 미션 지점 이동 / 수거 / 인증 PARK-04·05
[EVT-12] 차량 정비 점검 / 예약 여부 선택 VEH-03·04
[EVT-13] 보물찾기 힌트 확인 / 이동 / AR 보물 획득 PARK-06·07
[EVT-14] 희귀동물 관찰 관찰 지점 확인 / 도감 등록 PARK-08·09
[EVT-15] AR 크리처 탐색 탐색 / 조준 / 포획 PARK-10·11
[EVT-16] 브랜드 리워드 미션 참여 여부 선택 / 콘텐츠 시청 / 응답 PARK-12·13
[EVT-17] 희귀자원 탐사 지점 이동 / 스캔 / 획득 PARK-14·15
[EVT-18] 냉장고 보충 장보기 보충 품목과 수령 방식 선택 MART-01·02·03
[EVT-19] 오늘의 메뉴 장보기 메뉴와 수령 방식 선택 MART-06·07
[EVT-20] 반려동물 케어 장보기 상품과 수령 방식 선택 MART-08·09
[EVT-21] 부모님 케어 장보기 상품과 수령 방식 선택 MART-10·11
[EVT-22] 비 오는 날 귀가 준비 준비 품목과 수령 방식 선택 MART-12·13
[EVT-23] 홈파티 장보기 메뉴 / 상품 세트와 수령 방식 선택 MART-14·15
[EVT-24] 마트 재고 부족·드론 긴급배송 대체품 / 드론 배송 선택 MART-16·17

1.8 스토어 상품 12종 (orchestration/store/list)

상품 포인트 기획ID 디바이스 설명
Spot 동행·에스코트 100 SVC-01 spot 목적지 동행, 공원 페이스메이커
안심 귀갓길 동행 1000 spot
코트 컨시어지 2000 spot
가족 안심 케어 100 SVC-03 가족 일정·귀가·케어 상품 추천 자동화
반려동물 케어 100 SVC-04 맞춤 장보기와 하루 회고 — 이상 알림은 기본 제공
홈 발렛·로봇 홈케어 100 SVC-05 반려로봇 부재 중 홈 발렛, 청소·정리 자동화 — 방문 확인은 기본 제공
웰니스 코치 100 SVC-06 자세 코칭, 운동·영양제 루틴 관리
Spot 장보기 러너 100 SVC-07 보충·타임세일·키트 상품 번들 서빙
AR 어드벤처 팩 100 SVC-08 보물·크리처·희귀자원 탐색
에코·네이처 미션 100 SVC-09 플로깅과 희귀동물 관찰·도감
스마트 모빌리티 케어 100 SVC-10 정비 예약과 충전·주차 계획 최적화
집 컨디션 체크 0 spot 이사가기 전 혹은 공사 후 등 제대로 시공되어있는지 파악

1.9 디바이스 16종 (orchestration/devices/list)

디바이스 type robot_id cctv_key 장소 매핑
LG퓨리케어 360 device O
Hub_자율주행차1 device
Hub_드론스테이션 device O
Hub_AI tree device
Hub_수소충전소 device O
Hub_스마트팩토리 device O
Diorama-CCTV#4 cctv diorama_04
Diorama-CCTV#3 cctv diorama_03
Diorama-CCTV#2 cctv diorama_02
Space-CCTV#2 cctv cam_52 O
Diorama-CCTV#1 cctv diorama_01 O
Space-CCTV#1 cctv cam_51 O
Space-CCTV#3 cctv cctv_obj_tracking O
차량 device O
반려로봇 robot O
spot spot spot-01 O

1.10 AI 동반자 5종 (orchestration/ai-companion/list)

AI 동반자 요약 prompt 앞부분
장난스러운 친구 예전부터 알고 지낸 AI친구 너는 오래 알고 지낸 친구처럼 편하고 장난스럽게 대화하는 AI다. 가벼운 농담, 티키타카, 적당한 놀림을 자…
자상한 연인 뭐든지 잘 받아주고 이해해주는 자상한 연인 너는 다정하고 세심한 연인처럼 대화하는 AI다. 사용자의 감정과 말투 변화를 자연스럽게 살피고, 부담스럽지 …
어릴적 키우던 강아지 지금은 하늘나라에 갔지만 내 어릴적 베프 강아지 너는 내가 어릴 적 함께 자란 강아지처럼, 오랜만에 다시 만난 나를 반갑고 익숙하게 대하는 AI다. 말은 서…
피카츄 아몰랑 포켓몬스터의 피카츄이다 우리말을 하지 못한다 정말 포켓몬의 피카츄다…
똑똑한 비서 마치 비서처럼 내 일거수 일투족을 챙겨줌 너는 빠뜨리는 것 없이 세심하게 챙기는 꼼꼼한 비서형 AI다. 일정, 해야 할 일, 중요한 조건과 예외사항을…

메타 프롬프트 13문항(orchestration/user-meta-prompt/list, 전부 objective):

태스크 타입 분포: basic 51, (없음) 37, packing 4, detailed 4, business_trip_briefing 1, hydrogen_charging 1, DAY_BRIEFING_BY_CONDITION 1, vehicle_ready 1, quote_briefing 1, READY_TO_CAR_DELIVERY 1


2. 테스트 케이스

표기: 전제 = 사용할 실데이터, 절차 = 태블릿/백오피스/MQTT 조작, 확인 = 어디서 결과를 보는지. 세션 ID는 create-persona/response.session_id. 로그 확인은 /grafana/ 세션 타임라인 대시보드에 세션 ID를 넣어 mqtt.request/mqtt.publish 순서를 본다.

A. 세션 생성과 여정 구성

ID 목적 전제 절차 기대 결과 확인
A-01 정상 로그인 시 4 STEP 여정 생성 AI 동반자 "똑똑한 비서", 메타 응답 "바쁜 직장인" orchestration/{deviceId}/create-persona 발행 dashboard retained에 장소 4곳, visit_order 1·4 = 집, 2·3은 마트/공원/차 중 서로 다른 2곳. 장소당 태스크 3개 dashboard 페이로드, §1.2 6경로 중 하나
A-02 6개 허용 경로만 나오는지 세션 12개 이상 생성 A-01 반복 집→차→마트→집 등 §1.2의 6종만 관측. 집→집 연속이나 같은 장소 2회 없음 dashboard 모음
A-03 STEP1·4 집이 서로 다른 장소 ID A-01 dashboard의 visit_order 1·4 id 비교 시작 집 …993d40668bfe, 종료 집 …badea24d7812. 태스크 풀도 다름(STEP1: 외출/출근/등원 준비, STEP4: 내일 일정 알림·아이와 숙제하기·마트 장봐온 물품 정리) dashboard
A-04 short_summary 생성 A-01 로그인 직후와 5초 후 dashboard 비교 각 장소에 10자 이내 상황 요약("외출 준비중" 등). 비어 있으면 실패 dashboard.locations[].short_summary
A-05 로그인 발행 순서 A-01 Loki 세션 타임라인 point(1000) → me → dashboard → store/owned → future-car/request(plan) → create-persona/response 순. 그 뒤 ai/summary source=intro Loki mqtt.publish
A-06 프로필 반영 메타 응답 "아이를 키워요"+"워킹 대디/맘" create-persona 후 me 확인 has_children=true, description에 두 문장 포함. 자녀 있는 세션에 아이 등원 준비물/아이와 숙제하기 태스크가 우선 배정되는지 me, dashboard
A-07 페르소나 없음/잘못된 ID persona_id 빈 값 create-persona 발행 create-persona/response {ok:false} 즉시, 다른 토픽 발행 없음 response, Loki
A-08 같은 디바이스 중복 요청 잠금 같은 deviceId로 1초 내 2회 create-persona 2회 두 번째는 무시 또는 실패 응답, 세션 1개만 생성 Loki, 백오피스 세션 목록

B. 태스크 상태 전이와 포인트

ID 목적 전제 절차 기대 결과 확인
B-01 시작 → 완료 STEP1 "영양제 챙겨주기"(basic, 07:18) task/start {task_id} → task/complete {task_id} dashboard 재발행: status pending→in_progress→completed, completed_at 채워짐. point +100(1000→1100) dashboard, point
B-02 건너뛰기 STEP1 "내일 일정 알림" task/skip status=skipped(관측값 중 skip도 있음 → 표기 통일 확인), 포인트 변동 없음 dashboard, point
B-03 시작 없이 완료 아무 태스크 task/complete만 발행 서버 정책대로 완료 처리 또는 거부. 어느 쪽이든 응답/로그 명확 Loki mqtt.handled dur_ms
B-04 완료된 태스크 재완료 B-01 후 task/complete 재발행 포인트 중복 지급 없음(1100 유지) point
B-05 다른 세션 태스크 ID 세션 A에서 세션 B 태스크 ID task/start 거부, 세션 B dashboard 변화 없음 양쪽 dashboard
B-06 장소 3개 태스크 모두 종료 시 이동 게이트 STEP1 태스크 3개 완료/건너뜀 순차 처리 이동 승인 팝업 조건 충족(태블릿), 서버는 STEP 완료를 별도 발행하지 않음을 확인 태블릿
B-07 상태 변경 시 내레이션 B-01 각 전이 후 ai/summary 수신 source=task_status, task_id, status=started/completed/skipped, 본문 2~3문장에 뒤 일정 언급 ai/summary
B-08 태스크 내레이션 리스트 B-01 task/narration retained tasks[]에 지금 장소 태스크 전부(장소 도착 시 교체) — 내레이션 생긴 항목은 4문장·최신 갱신이 맨 앞, 나머지는 제목만+status task/narration
B-09 태스크 리포트 STEP4까지 진행 task/report/request task/report/response에 완료/건너뜀/진행중/대기 분류, 개수 합계 = 12 response

C. 태스크 선택지와 구독 잠금

ID 목적 전제 절차 기대 결과 확인
C-01 무료 선택지 선택 집 "아이 등원 준비물 체크" 선택지 "내가 알아서 가기" task/option/select {task_id, option_id} 선택 응답 ok, dashboard 선택 반영 response, dashboard
C-02 구독 필요 선택지 — 미보유 같은 태스크 "에스코트해줘"(Spot 동행·에스코트 100pt), store/owned 빈 배열 선택 발행 거부 응답(상품 미보유), 옵션의 required_product.owned=false 유지 response
C-03 구독 후 선택 해금 C-02 → store/purchase Spot 동행·에스코트 구매 후 dashboard 재조회 → 선택 required_product.owned=true로 재발행, 선택 성공. SPOT 에스코트 명령이 robot/spot-01/command로 나감(next_location 해석: 이 장소 다음 visit_order) dashboard, Loki robot/ 발행
C-04 고가 구독 잠금 공원 "Spot 크리처 탐색 동행" — "[테스트] 임의의 선택지"(코트 컨시어지 2000pt) 포인트 1000 상태에서 구매 시도 포인트 부족 실패, 선택지 잠금 유지 point 응답
C-05 선택지 1개뿐인 태스크 공원 "집 안 환기"(기본으로 진행 / LG퓨리케어 360) 선택 선택 성공 + LG 가전 자동화 명령(HA) 발화 로그 Loki, 자동화 실행 로그
C-06 차량 옵션 태스크 차 "여행자님의 맞춤 신차 견적이 준비되었습니다"(quote_briefing, vehicle_options 다수) dashboard 확인 vehicle_options[]에 name/type(기본형·구독형)/description, issue_title 존재 dashboard
C-07 개인화 옵션 태스크 차 "가족과 떠날 준비, 새 차가 기다립니다"(vehicle_ready) dashboard 확인 personalization_options[]와 issue_* 필드 dashboard

D. 준비물(packing) 태스크와 CCTV

ID 목적 전제 절차 기대 결과 확인
D-01 준비물 목록 내려감 집 "외출 준비 물품 체크"(우산 슬롯3, 텀블러 슬롯5) dashboard packing_items[] name·cctv_slot. Vision 미수신이면 cctv_state 생략 또는 unknown, picked 없음/false dashboard
D-02 챙김 반영 Vision cctv/item/state I3 in_zone→out_of_zone 백오피스 CCTV 관리에서 우산=슬롯3 매핑 확인 후 발행 dashboard 재발행, 우산 picked=true, cctv_state=out_of_zone dashboard
D-03 다시 내려놓기 D-02 후 I3 out_of_zone→in_zone 발행 picked=false로 되돌아감(잠금 없음). 항목은 목록에 남음 dashboard
D-04 잘못된 물건 슬롯2(사원증)가 이 태스크 목록에 없음 I2 in→out wrong_item 트리거 자동화 발화(있다면), 반려로봇 say 문장에 물건 이름 포함 Loki, 자동화 실행 로그
D-05 여러 준비물 태스크 슬롯 공유 "외출 준비 물품 체크"와 "아이와 공원 외출 준비" 모두 우산 슬롯3 두 태스크가 같은 세션에 있을 때 I3 out 두 태스크 모두 picked 갱신 dashboard
D-06 매핑 없는 준비물 "아이 등원 준비물 체크"의 물통(슬롯 없음) dashboard 물통 항목에 cctv_slot/picked 필드 없음(판정 불가 표시) dashboard

E. 스토어와 보유 상품

ID 목적 전제 절차 기대 결과 확인
E-01 상품 목록 — orchestration/store/list 구독 12상품, point_price·display_order·devices. "집 컨디션 체크" 0pt, "안심 귀갓길 동행" 1000pt, "코트 컨시어지" 2000pt 확인 store/list
E-02 정상 구매 포인트 1000, "가족 안심 케어"(100pt) store/purchase {product_ids:[…]} point {ok:true, point_balance:900} → store/owned 재발행: product_ids 포함 + products[]에 title/point_price/is_active/purchased_at/devices point, store/owned
E-03 포인트 부족 포인트 900, "코트 컨시어지" 2000pt 구매 point {ok:false, error:"포인트가 부족합니다"}, owned 변화 없음 point
E-04 무료 상품 "집 컨디션 체크" 0pt 구매 성공, 포인트 그대로, owned에 추가 owned
E-05 중복 구매 E-02 상품 재구매 구매 정책 확인: 재차감 여부. owned의 product_ids는 중복 없이 1개, products[].purchased_at은 최초 시각 유지 owned
E-06 동시 구매 이중 차감 방지 같은 세션에서 100ms 간격 2회 구매 2회 한 건은 "이미 처리 중" 오류, 포인트는 1회만 차감 point, Loki
E-07 여러 상품 한 번에 product_ids 3개(합 300pt) 구매 잔액 -300, owned에 3개 point, owned
E-08 비활성 상품 보유 관리자가 구매한 상품 비활성화 store/list와 store/owned 비교 list에서 사라지고 owned.products에 is_active=false로 남음 둘 다
E-09 디바이스 매핑 상품 "Spot 동행·에스코트"(spot), "홈 발렛·로봇 홈케어"(반려로봇) store/list devices[]에 id/name/image_url/icon_url store/list

F. 이벤트 매핑과 발행

ID 목적 전제 절차 기대 결과 확인
F-01 로그인 시 이벤트 매핑 A-01 백오피스 세션 상세(user_locations) STEP2에 normal 1건, STEP3에 sudden 1건 매핑, STEP1·4 없음. 발행은 아직 안 됨 백오피스
F-02 도착 시 발행 판단 STEP2 마트 도착(cctv/person/zone 또는 위치 테스트) 도착 event_last_decision에 trigger=arrival 기록. LLM이 publish=true면 orchestration/{sid}/event 1회(retain 없음) 백오피스, Loki
F-03 태스크 트리거 재판단 F-02에서 보류된 상태 마트 태스크 task/start trigger=task_started로 재판단. 보류 3회 초과 시 강제 발행(forced=true) 백오피스 event_last_decision
F-04 LLM 끄고 즉시 발행 앱 설정 event_timing_llm_enabled=0 STEP3 도착 도착 즉시 sudden 이벤트 발행 event
F-05 이벤트 페이로드 [EVT-21] 부모님 케어 장보기 발행(9/8 로그에서 확인됨) 수신 event_id, title, type=choice, category, options[] (label "상품과 수령 방식 선택") event
F-06 선택지 선택 F-05 event/option/select {event_id, option_id} event/option/select/response ok, 후속 태스크 연결이 있으면 dashboard 변화(MART-10·11) response, dashboard
F-07 프리미엄 옵션 이벤트 옵션에 required_product가 붙은 이벤트(백오피스에서 설정) 미보유 상태로 선택 거부. 구매 후 선택 성공 response
F-08 장소 이동 후 미발행 이벤트 STEP2에서 이벤트 못 받은 채 STEP3 도착 진행 STEP2 이벤트는 영영 미발행, STEP3 이벤트만 판단 백오피스
F-09 수동 발행 백오피스 이벤트 → 발행 POST /admin/events/:id/publish 지정 세션에 즉시 event 도착 event
F-10 돌발 7종 카테고리 EVT-02·03·04·05·08·12·24 백오피스 이벤트 목록 category=sudden으로 설정돼 있는지, 나머지는 normal 백오피스

G. 내레이션·AI 채팅

ID 목적 전제 절차 기대 결과 확인
G-01 intro 브리핑 경로 집→마트→차→집, 차에 "여행자님, 오늘 출장 일정 확인하세요"(09:00) 배정된 세션 로그인 ai/summary source=intro 본문에 뒤 일정(출장)을 이유로 마트 준비를 연결. 태스크 개수 나열 없음 ai/summary
G-02 도착 내레이션 STEP2 도착 위치 변경 source=arrival, 직전 장소와 다음 장소 언급 ai/summary
G-03 차량 스텝 내레이션 차 STEP, 미래차 route/state arrived 스텝 진행 source=car_step, step 필드, 스텝 의미(이동/UAM/충전/다음 이동) 반영 ai/summary
G-04 페르소나 말투 "어릴적 키우던 강아지" 세션 ai/request 텍스트 답변에 *별표* 행동 묘사 없음(공통 프롬프트 적용 확인), 말투는 페르소나 ai/response
G-05 요약 요청 ai/summarize {context} 발행 ai/summary 평문 2~4문장, source 없음, context_id 동일 ai/summary
G-06 제안 칩 G-04 ai/response 직후 ai/suggestions 2개 suggestions
G-07 car 모드 잠금 ai/mode {mode:car} retained ai/request 발행 채팅 대신 STT만, 응답 정책대로 Loki

H. 미래차(차 장소) 4 스텝

ID 목적 전제 절차 기대 결과 확인
H-01 플랜 발행 차가 STEP2/3인 세션 로그인 future-car/request type=plan retained, stops 6개(factory, charging_station, park, mart, drone, home), persona 포함 request
H-02 탑승 future-car/request {type:enter} 발행 future-car/response state phase=waiting, ai/mode car ttl 1800, ai/response "출발 할까요?" response, ai/*
H-03 스텝 진행과 태스크 차 basic 태스크(예: "차량 상태·주행 점검") 발화 → route → step → 렌더 완료 task/start → dashboard in_progress → 렌더 완료 시 task/complete → completed, point +100 dashboard, point
H-04 basic 아닌 타입 제외 차에 hydrogen_charging/quote_briefing/vehicle_ready 태스크 스텝 진행 미래차가 수행하지 않음(태블릿 돋보기 모달에서 완료) dashboard
H-05 하차 step4 arrived next=exit → {type:exit} 발행 state done, ai/mode chat response, ai/mode
H-06 서버 재시작 시 retained state 재전달 서버 재배포 Loki future-car/response idle state가 세션마다 mqtt.request로 1회 찍힘, car_step 내레이션은 중복 발행되지 않음 Loki

I. 로봇·디바이스 연계 태스크

ID 목적 전제 절차 기대 결과 확인
I-01 SPOT 시나리오 실행 robot/spot-01/scenarios에 market_load(마트 적재) 1개 spot/command {action:run_scenario, scenario_id:market_load} spot/command/response 큐 등록, spot/ack 릴레이 response, ack
I-02 SPOT waypoints 비어 있음 현재 waypoints:[] (map_0906_1028) navigate_to 요청 거부 사유 명확("waypoint 없음") response
I-03 SPOT estop 상태 robot/spot-01/estop active=true(9/6 이후 유지) 명령 요청 거부 또는 큐 보류, orchestration/spot/spot-01/estop 릴레이 response
I-04 SPOT fault fault BATTERY_LOW 15% 명령 요청 정책 확인(거부/경고), 백오피스 SPOT 테스트 화면에 표시 백오피스
I-05 반려로봇 태스크 집 "홈 발렛 모드"(디바이스 반려로봇, 첨부 있음) task/start 도착 자동화 규칙 있으면 robot/REX/command 발행 Loki
I-06 LG 가전 태스크 차 "[TEST] LG 가전 공기청정기 실행"(lg_entity/lg_option 메타) task/start HA 호출 로그, 실패 시 태스크 상태는 유지 Loki
I-07 Hub 태스크 마트 "[MART-17] AUM 드론 긴급배송"(Physical AI Hub) 선택·시작 diorama/{device}/request 발행 여부 Loki
I-08 태스크 device 필드 "빈 집 확인"(Space-CCTV#1), "컨디션 기반 하루 브리핑"(Diorama-CCTV#2) dashboard device{id,name}이 devices/list와 일치 둘 비교

J. 백오피스 태스크 관리 → 발행 반영

ID 목적 전제 절차 기대 결과 확인
J-01 태스크 생성 마트에 basic 태스크 신규 백오피스 저장 이후 새 세션에서 후보로 등장. 기존 세션 dashboard는 변화 없음(세션 시딩 1회) 새 세션 dashboard
J-02 태스크 수정(제목·설명) 기존 태스크 수정 활성 세션 dashboard 재발행 여부 정책 확인, description_prompt 변경은 다음 LLM 생성부터 dashboard
J-03 준비물 편집 packing 태스크 항목 추가 저장 packing_items_json 반영, CCTV 매핑 이름과 일치해야 슬롯 붙음 dashboard
J-04 선택지에 상품 연결 옵션 required_product 설정 저장 dashboard 옵션에 required_product{title,point_price,owned} dashboard
J-05 태스크 비활성/삭제 세션이 쓰고 있는 태스크 비활성 새 세션에서 제외, 기존 세션 상태 전이는 계속 가능해야 함(또는 정책 명시) dashboard
J-06 상품 변경 즉시 반영 가격 수정 저장 store/list 즉시 재발행 store/list
J-07 디바이스 변경 디바이스 비활성 저장 devices/list 재발행, 활성만 포함 devices/list
J-08 앱 설정 프롬프트 journey_narrative_prompt 수정 저장 후 태스크 전이 다음 내레이션부터 반영(재시작 불필요) ai/summary
J-09 이벤트 선택지 편집 EVT-08 옵션 추가 저장 다음 발행 페이로드 options에 반영 event
J-10 위치 테스트 사용자 상세 "위치 테스트" 탭 장소 선택 실제 도착과 동일하게 이벤트 판단·자동화·arrival 내레이션 발화 Loki

K. 관측·로그

ID 목적 전제 절차 기대 결과 확인
K-01 세션 타임라인 임의 세션 Grafana 세션 타임라인에 세션 ID 입력 request→handled→publish가 시간순, dur_ms 존재 /grafana/
K-02 고빈도 토픽 제외 Vision 연결 로그 검색 cctv/, vision/, /position, /state는 타임라인에 없음 /grafana/
K-03 페이로드 미리보기 dashboard 발행 로그 펼치기 payload 600자에서 "…"로 잘림, JSON 필드 파싱됨 /grafana/

3. 테스트 전 정리 권고 (데이터 품질)

수집 데이터에서 보인 항목. 그대로 두면 TC 판정이 흐려진다.

  • 타입 없는 구형 태스크 37개(예: 공원 "페이스메이커", 마트 "냉장고 보충 번들 수령" 중복 3건, 집 "간식/물병 준비"). 3~41세션에 남아 있음. 비활성 처리 권고.
  • 테스트 잔재: "[TEST] SPOT 테스트용임~~"(설명 "하하하하…"), "[TEST] LG 가전 공기청정기 실행", 선택지 "[테스트] 임의의 선택지", "그냥 해 좀!!", AI 동반자 "피카츄"(summary "아몰랑"), 메타 프롬프트 "[TEST] 차 너무 좋아해", 상품 "안심 귀갓길 동행"(1000pt, 설명 없음)·"코트 컨시어지"(2000pt).
  • 태스크 17개 달린 장소 11세션, 16개 3세션 — 테스트 세션. 만료 처리 권고.
  • packing 태스크 전부 cctv_state: unknown — Vision cctv/item/state가 최근 안 들어오고 있음. D-02~D-05는 Vision 가동 후에만 유효.
  • SPOT: estop active(9/6 06:53 이후 해제 기록 없음), fault BATTERY_LOW 15%, waypoints 비어 있음. I-01~I-04는 로봇팀 확인 후.
  • 상태값 표기 불일치: 관측된 status에 skipped 대신 skip 2건. B-02에서 표준값 확정 필요.
  • 차 STEP 태스크의 scheduled_time 대부분 비어 있음 — 내레이션(G-01)이 "오후 출장" 같은 시간 표현을 쓰려면 scheduled_time 입력 필요(현재 "여행자님, 오늘 출장 일정 확인하세요" 09:00만 있음).
  • 집 시작/종료 장소가 별도 레코드이므로 백오피스 필터·TC 전제에 ID로 지정할 것.

4. 수집 방법 (재현용)

# retained 목록 (FE_MQTT_* 자격증명, devops CONFIG 변수)
mosquitto_sub -h machine.tail69930a.ts.net -p 1883 -u $U -P $P -t 'orchestration/+/dashboard' -W 10 -F '%t\t%p'
mosquitto_sub … -t orchestration/store/list -t orchestration/devices/list -t orchestration/ai-companion/list -t orchestration/user-meta-prompt/list -C 4
mosquitto_sub … -t 'robot/spot-01/+' -W 6
# 이벤트 발행 실적 (Loki, OCI VM에서)
curl -G http://localhost:8090/grafana/api/datasources/proxy/uid/loki/loki/api/v1/query_range \
  --data-urlencode 'query={container="orchestration-server"} | json | msg="mqtt.publish" | topic=~".*/event$"'

Clone this wiki locally