# 테스트 시나리오 — `ubisam-deliverable-rebuild` 정상 흐름 1건 + 에러 흐름 1건. 하네스를 고친 뒤 이 두 경로를 따라가 완주 여부를 확인한다. ## 정상 흐름 — 타사 xlsx 재생산 대상: `Doc/산출물문서/23. SW 점검 결과_PTOP_UBISAM_260616_….xlsx` 1. **analyst** 가 `openpyxl` 로 시트 10개를 읽어 문서 전체의 **주(主) 단계를 1줄로 선언**하고, 시트별로 근거와 함께 슬롯에 매핑한다: | 시트 | 배치 슬롯 | |---|---| | FlowChart · Device · Sequence · IO List · Motor List | 2.설계 | | Overall | 3.제작 | | Pos Teaching | 4.셋업 (티칭 좌표는 HW 점검 슬롯) | | SW Version | 5.양산 | | Gantt | 01.분석협의·마스터플랜 (일정 산출물) | | `[작업일지]` | 작업일지 | → **10/10 배치, 누락 0.** 동시에 타설비 잔재를 식별한다. 2. **producer** 가 Ubisam 양식 시트로 재배치하고 값마다 출처 주석을 기입한다. 3. **qa** 가 enum · 슬롯 · 잔재 · 출처를 전수 대조 → Critical 0건 → 통과 보고. > 검증 통과 기준은 "시트 수가 맞다"가 아니라 **매핑표 ↔ 산출물 ↔ 원본 3자 대조**다. > 검색으로 0건이 나오면 결함 없음이 아니라 검색식·`.gitignore` 를 먼저 의심한다 > (`ubisam-qa.md` 작업 원칙 5 참조). ## 에러 흐름 — 대상 xlsx가 Excel에서 열려 쓰기 잠김 1. **producer** 가 잠금을 감지하고 작업 사본으로 생성한 뒤 **"원본 미반영"** 을 로그에 남긴다. 2. **qa** 가 원본 미반영을 **Major** 로 표기한다 — 산출물은 만들어졌으나 반영되지 않았으므로 침묵하면 통과로 오해된다. 3. 사용자에게 **"원본을 닫고 재실행해야 함"** 을 명시해 보고한다. > 이 흐름의 핵심은 "실패했다"가 아니라 **부분 성공을 부분 성공으로 보고하는 것**이다. > `00_rebuild_summary.md` 의 누락·미검증 절이 그 종착지다.