---
title: 표 생성 QA 결과
date: 2026-10-28T18:41:02.099Z
version: v1.0.0
status: 기존 기록 이전
project: designdatatable
type: 버그
category: 이전 기록
summary: 표 생성 QA 결과 — 당시 작업 내용과 검증 범위를 원문 기준으로 정리한 보관 기록입니다.
source: ../assets/imports/Docs/Testing/2026-10-29/table-creation-qa/History/Before-Korean-TCs-2026-10-29/QA-Report.html
source_sha256: c2e276aceaf08211bb4667300141c111c908e5c1ebfd01928176c5312606f673
record: archived
format: legacy-v1
---

> 보관 기록입니다. 아래 결과는 원문 작성 시점의 내용이며, 이번 편집에서 제품 테스트를 다시 실행하지 않았습니다.

2026-10-29 · Windows / Unity 6000.0.83f1 · 격리 실행 · 사용자 화면 조작 없음

**250**TC 통과 / 전체 250

**0**남은 실패

**8**수정한 문제군

**3271**네이티브 모델 검증 항목

일반 파일·Excel 표·게임 등록·Summary·Enum·로컬라이징·저장·CLI·Play 잠금을 기능·경계·거부 조건으로 검사했습니다. TC 수와 내부 검증 항목 수는 별개입니다.

TC 결과 CSV · 상세 JSON·소스 해시 · 현재 사용자 문서

## 수정 사항

| ID | 문제 | 수정 | 회귀 TC |
| --- | --- | --- | --- |
| BUG-01 | **큰 정수 코드 정밀도** Int64를 넘는 정수 텍스트를 double로 추론해 값이 반올림될 수 있었습니다. | 정수 텍스트가 Int64를 넘으면 string으로 보존합니다. | Long integer precision |
| BUG-02 | **Summary 스키마 검사** 대소문자 중복 및 생성 코드 예약 컬럼 이름 경고가 저장 검사와 일치하지 않았습니다. | 대소문자 무시 중복과 Read/Write/ToString을 검사합니다. | Case-insensitive duplicate column names |
| BUG-03 | **등록 API의 정의 시트 보호** 글로벌 Enum 파일과 관리 Summary를 직접 게임 데이터로 등록할 수 있었습니다. | API에서 정의·Summary·차트·없는 시트를 거부하고 메뉴에서도 Enum 정의를 제외합니다. | Global provider cannot become game data |
| BUG-04 | **글로벌 Enum 확장자** CSV 경로에 XLSX 바이트를 쓴 뒤 디코딩 오류가 발생했습니다. | 파일 생성 전에 .xlsx 확장자를 검사합니다. | Provider template rejects unsupported extension |
| BUG-05 | **잘못된 헤더의 즉시 경고** 예약어·잘못된 이름·중복 헤더가 데이터 셀의 형식 경고만큼 일관되게 표시되지 않았습니다. | 헤더·타입·데이터에 스키마 경고를 적용하고 9개 언어 메시지를 추가했습니다. | Duplicate header case |
| BUG-06 | **Summary 이름 충돌** 사용자 시트 summary가 있으면 관리 Summary 생성이 실패했습니다. | 대소문자 무시 이름 비교로 고유 관리 시트를 만듭니다. | Occupied lowercase summary name |
| BUG-07 | **Enum 이름 충돌** Element 뒤 element를 추가할 수 있어 유효하지 않은 정의를 만들었습니다. | 추가 단계에서 대소문자 무시 중복을 거부합니다. | Duplicate Enum identifier ignores case |
| BUG-08 | **CLI 입력 오류와 잘못된 예약** 잘못된 JSON·객체 형식에서 traceback이 발생하고 잘못된 timeout도 요청을 예약했습니다. | 구조화된 입력 오류, 양수·유한 timeout 및 크기 선검사, UTF-8 입출력을 적용했습니다. | Negative timeout does not enqueue |

## 검사 범위

| 영역 | TC | 결과 |
| --- | --- | --- |
| File creation | 23 | PASS |
| Excel table | 34 | PASS |
| Conversion | 19 | PASS |
| Summary | 19 | PASS |
| Local enums | 19 | PASS |
| Global enums | 9 | PASS |
| Persistence | 2 | PASS |
| Registration | 12 | PASS |
| Localization | 3 | PASS |
| Grid warnings | 8 | PASS |
| Worksheet names | 9 | PASS |
| Deterministic combinations | 24 | PASS |
| Global integration | 6 | PASS |
| Existing regression | 6 | PASS |
| Structured-reference regression | 4 | PASS |
| Spreadsheet regression | 1 | PASS |
| CLI | 19 | PASS |
| CLI input preflight | 14 | PASS |
| Play-mode protections | 6 | PASS |
| Generated runtime | 13 | PASS |

## 새 경고 화면

예약 컬럼 이름 Read와 정의되지 않은 Enum 값을 넣은 실제 영어 Unity 화면입니다. 원본 샘플 파일을 저장한 상태가 아니라 캡처용 편집 상태입니다.

## TC 상세

전체 영역File creationExcel tableConversionSummaryLocal enumsGlobal enumsPersistenceRegistrationLocalizationGrid warningsWorksheet namesDeterministic combinationsGlobal integrationExisting regressionStructured-reference regressionSpreadsheet regressionCLICLI input preflightPlay-mode protectionsGenerated runtime250 / 250

| ID | 영역·TC·절차 | 기대 결과 | 결과 |
| --- | --- | --- | --- |
| TC-001 | **game / Plain** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: game / Plain  원시 실행 결과 | File opens; game has Id:int and mandatory Summary; ordinary files stay blank. | PASS |
| TC-002 | **game / with spaces** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: game / with spaces  원시 실행 결과 | File opens; game has Id:int and mandatory Summary; ordinary files stay blank. | PASS |
| TC-003 | **game / 한국어** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: game / 한국어  원시 실행 결과 | File opens; game has Id:int and mandatory Summary; ordinary files stay blank. | PASS |
| TC-004 | **game / 日本語** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: game / 日本語  원시 실행 결과 | File opens; game has Id:int and mandatory Summary; ordinary files stay blank. | PASS |
| TC-005 | **game / éèç** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: game / éèç  원시 실행 결과 | File opens; game has Id:int and mandatory Summary; ordinary files stay blank. | PASS |
| TC-006 | **game / 001** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: game / 001  원시 실행 결과 | File opens; game has Id:int and mandatory Summary; ordinary files stay blank. | PASS |
| TC-007 | **xlsx / Plain** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: xlsx / Plain  원시 실행 결과 | File opens; game has Id:int and mandatory Summary; ordinary files stay blank. | PASS |
| TC-008 | **xlsx / with spaces** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: xlsx / with spaces  원시 실행 결과 | File opens; game has Id:int and mandatory Summary; ordinary files stay blank. | PASS |
| TC-009 | **xlsx / 한국어** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: xlsx / 한국어  원시 실행 결과 | File opens; game has Id:int and mandatory Summary; ordinary files stay blank. | PASS |
| TC-010 | **xlsx / 日本語** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: xlsx / 日本語  원시 실행 결과 | File opens; game has Id:int and mandatory Summary; ordinary files stay blank. | PASS |
| TC-011 | **xlsx / éèç** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: xlsx / éèç  원시 실행 결과 | File opens; game has Id:int and mandatory Summary; ordinary files stay blank. | PASS |
| TC-012 | **xlsx / 001** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: xlsx / 001  원시 실행 결과 | File opens; game has Id:int and mandatory Summary; ordinary files stay blank. | PASS |
| TC-013 | **csv / Plain** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: csv / Plain  원시 실행 결과 | File opens; game has Id:int and mandatory Summary; ordinary files stay blank. | PASS |
| TC-014 | **csv / with spaces** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: csv / with spaces  원시 실행 결과 | File opens; game has Id:int and mandatory Summary; ordinary files stay blank. | PASS |
| TC-015 | **csv / 한국어** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: csv / 한국어  원시 실행 결과 | File opens; game has Id:int and mandatory Summary; ordinary files stay blank. | PASS |
| TC-016 | **csv / 日本語** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: csv / 日本語  원시 실행 결과 | File opens; game has Id:int and mandatory Summary; ordinary files stay blank. | PASS |
| TC-017 | **csv / éèç** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: csv / éèç  원시 실행 결과 | File opens; game has Id:int and mandatory Summary; ordinary files stay blank. | PASS |
| TC-018 | **csv / 001** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: csv / 001  원시 실행 결과 | File opens; game has Id:int and mandatory Summary; ordinary files stay blank. | PASS |
| TC-019 | **Unsupported extension xls** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: Unsupported extension xls  원시 실행 결과 | Reject without creating file. | PASS |
| TC-020 | **Unsupported extension txt** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: Unsupported extension txt  원시 실행 결과 | Reject without creating file. | PASS |
| TC-021 | **Unsupported extension json** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: Unsupported extension json  원시 실행 결과 | Reject without creating file. | PASS |
| TC-022 | **Unsupported extension xlsm** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: Unsupported extension xlsm  원시 실행 결과 | Reject without creating file. | PASS |
| TC-023 | **Assets prefix and parent traversal** File creation  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC 전용 경로·파일명·확장자를 준비합니다. 2. WorkbookNewSource.Create를 실행합니다. 3. 생성 결과를 읽거나 거부 전후 파일 바이트를 비교합니다. 개별 조건: Assets prefix and parent traversal  원시 실행 결과 | Sibling AssetsOther and ../ are rejected. | PASS |
| TC-024 | **Create named table: Inventory** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Create named table: Inventory  원시 실행 결과 | Structured table survives save and reopening with data unchanged. | PASS |
| TC-025 | **Create named table: Inventory_2** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Create named table: Inventory_2  원시 실행 결과 | Structured table survives save and reopening with data unchanged. | PASS |
| TC-026 | **Create named table: 한글표** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Create named table: 한글표  원시 실행 결과 | Structured table survives save and reopening with data unchanged. | PASS |
| TC-027 | **Create named table: Éléments** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Create named table: Éléments  원시 실행 결과 | Structured table survives save and reopening with data unchanged. | PASS |
| TC-028 | **Create named table: 255 chars** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Create named table: 255 chars  원시 실행 결과 | Structured table survives save and reopening with data unchanged. | PASS |
| TC-029 | **Reject table name: 1Bad** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Reject table name: 1Bad  원시 실행 결과 | Reject without changing cells or table count. | PASS |
| TC-030 | **Reject table name: A1** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Reject table name: A1  원시 실행 결과 | Reject without changing cells or table count. | PASS |
| TC-031 | **Reject table name: R1C1** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Reject table name: R1C1  원시 실행 결과 | Reject without changing cells or table count. | PASS |
| TC-032 | **Reject table name: R** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Reject table name: R  원시 실행 결과 | Reject without changing cells or table count. | PASS |
| TC-033 | **Reject table name: C** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Reject table name: C  원시 실행 결과 | Reject without changing cells or table count. | PASS |
| TC-034 | **Reject table name: has space** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Reject table name: has space  원시 실행 결과 | Reject without changing cells or table count. | PASS |
| TC-035 | **Reject table name: has/slash** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Reject table name: has/slash  원시 실행 결과 | Reject without changing cells or table count. | PASS |
| TC-036 | **Reject table name: A_x0001_** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Reject table name: A_x0001_  원시 실행 결과 | Reject without changing cells or table count. | PASS |
| TC-037 | **Reject table name: 256 chars** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Reject table name: 256 chars  원시 실행 결과 | Reject without changing cells or table count. | PASS |
| TC-038 | **Reject range -1,0,1,0** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Reject range -1,0,1,0  원시 실행 결과 | No partial table metadata or cell edits. | PASS |
| TC-039 | **Reject range 0,-1,1,0** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Reject range 0,-1,1,0  원시 실행 결과 | No partial table metadata or cell edits. | PASS |
| TC-040 | **Reject range 0,0,0,0** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Reject range 0,0,0,0  원시 실행 결과 | No partial table metadata or cell edits. | PASS |
| TC-041 | **Reject range 2,0,1,0** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Reject range 2,0,1,0  원시 실행 결과 | No partial table metadata or cell edits. | PASS |
| TC-042 | **Reject range 0,2,1,1** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Reject range 0,2,1,1  원시 실행 결과 | No partial table metadata or cell edits. | PASS |
| TC-043 | **Reject range 0,0,1048576,0** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Reject range 0,0,1048576,0  원시 실행 결과 | No partial table metadata or cell edits. | PASS |
| TC-044 | **Reject range 0,0,1,16384** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Reject range 0,0,1,16384  원시 실행 결과 | No partial table metadata or cell edits. | PASS |
| TC-045 | **Reject range 0,0,1000,100** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Reject range 0,0,1000,100  원시 실행 결과 | No partial table metadata or cell edits. | PASS |
| TC-046 | **Blank and duplicate headers** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Blank and duplicate headers  원시 실행 결과 | Blank headers filled; duplicates deduplicated case-insensitively. | PASS |
| TC-047 | **Duplicate name across sheets** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Duplicate name across sheets  원시 실행 결과 | Workbook-wide case-insensitive names; no partial second table. | PASS |
| TC-048 | **Overlapping table** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Overlapping table  원시 실행 결과 | Existing table remains unchanged. | PASS |
| TC-049 | **Merged header range** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Merged header range  원시 실행 결과 | Merged cells prevent table creation without data loss. | PASS |
| TC-050 | **Formula header** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Formula header  원시 실행 결과 | Formula headers rejected without losing formula. | PASS |
| TC-051 | **Long header** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Long header  원시 실행 결과 | 256 character header rejected. | PASS |
| TC-052 | **Undo redo create** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Undo redo create  원시 실행 결과 | Single undo removes table; redo restores table and cells. | PASS |
| TC-053 | **Two nonoverlapping tables then convert one to range** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Two nonoverlapping tables then convert one to range  원시 실행 결과 | Only selected table metadata removed; data and second table preserved. | PASS |
| TC-054 | **CSV table creation** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: CSV table creation  원시 실행 결과 | CSV rejects structural metadata rather than silently discarding it. | PASS |
| TC-055 | **Infer 2147483647** Conversion  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 제목의 원본 텍스트·헤더·수식을 준비합니다. 2. Convert 또는 Infer를 호출합니다. 3. 추론 타입과 보존된 값 또는 거부 결과를 확인합니다. 개별 조건: Infer 2147483647  원시 실행 결과 | Infer Int without changing source text. | PASS |
| TC-056 | **Infer 2147483648** Conversion  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 제목의 원본 텍스트·헤더·수식을 준비합니다. 2. Convert 또는 Infer를 호출합니다. 3. 추론 타입과 보존된 값 또는 거부 결과를 확인합니다. 개별 조건: Infer 2147483648  원시 실행 결과 | Infer Long without changing source text. | PASS |
| TC-057 | **Infer 9223372036854775807** Conversion  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 제목의 원본 텍스트·헤더·수식을 준비합니다. 2. Convert 또는 Infer를 호출합니다. 3. 추론 타입과 보존된 값 또는 거부 결과를 확인합니다. 개별 조건: Infer 9223372036854775807  원시 실행 결과 | Infer Long without changing source text. | PASS |
| TC-058 | **Infer 9223372036854775808** Conversion  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 제목의 원본 텍스트·헤더·수식을 준비합니다. 2. Convert 또는 Infer를 호출합니다. 3. 추론 타입과 보존된 값 또는 거부 결과를 확인합니다. 개별 조건: Infer 9223372036854775808  원시 실행 결과 | Infer String without changing source text. | PASS |
| TC-059 | **Infer 1.5** Conversion  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 제목의 원본 텍스트·헤더·수식을 준비합니다. 2. Convert 또는 Infer를 호출합니다. 3. 추론 타입과 보존된 값 또는 거부 결과를 확인합니다. 개별 조건: Infer 1.5  원시 실행 결과 | Infer Double without changing source text. | PASS |
| TC-060 | **Infer 1e3** Conversion  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 제목의 원본 텍스트·헤더·수식을 준비합니다. 2. Convert 또는 Infer를 호출합니다. 3. 추론 타입과 보존된 값 또는 거부 결과를 확인합니다. 개별 조건: Infer 1e3  원시 실행 결과 | Infer Double without changing source text. | PASS |
| TC-061 | **Infer 001** Conversion  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 제목의 원본 텍스트·헤더·수식을 준비합니다. 2. Convert 또는 Infer를 호출합니다. 3. 추론 타입과 보존된 값 또는 거부 결과를 확인합니다. 개별 조건: Infer 001  원시 실행 결과 | Infer String without changing source text. | PASS |
| TC-062 | **Infer -001** Conversion  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 제목의 원본 텍스트·헤더·수식을 준비합니다. 2. Convert 또는 Infer를 호출합니다. 3. 추론 타입과 보존된 값 또는 거부 결과를 확인합니다. 개별 조건: Infer -001  원시 실행 결과 | Infer String without changing source text. | PASS |
| TC-063 | **Infer true** Conversion  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 제목의 원본 텍스트·헤더·수식을 준비합니다. 2. Convert 또는 Infer를 호출합니다. 3. 추론 타입과 보존된 값 또는 거부 결과를 확인합니다. 개별 조건: Infer true  원시 실행 결과 | Infer Bool without changing source text. | PASS |
| TC-064 | **Infer FALSE** Conversion  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 제목의 원본 텍스트·헤더·수식을 준비합니다. 2. Convert 또는 Infer를 호출합니다. 3. 추론 타입과 보존된 값 또는 거부 결과를 확인합니다. 개별 조건: Infer FALSE  원시 실행 결과 | Infer Bool without changing source text. | PASS |
| TC-065 | **Infer NaN** Conversion  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 제목의 원본 텍스트·헤더·수식을 준비합니다. 2. Convert 또는 Infer를 호출합니다. 3. 추론 타입과 보존된 값 또는 거부 결과를 확인합니다. 개별 조건: Infer NaN  원시 실행 결과 | Infer String without changing source text. | PASS |
| TC-066 | **Infer Infinity** Conversion  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 제목의 원본 텍스트·헤더·수식을 준비합니다. 2. Convert 또는 Infer를 호출합니다. 3. 추론 타입과 보존된 값 또는 거부 결과를 확인합니다. 개별 조건: Infer Infinity  원시 실행 결과 | Infer String without changing source text. | PASS |
| TC-067 | **Infer 2026-10-29** Conversion  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 제목의 원본 텍스트·헤더·수식을 준비합니다. 2. Convert 또는 Infer를 호출합니다. 3. 추론 타입과 보존된 값 또는 거부 결과를 확인합니다. 개별 조건: Infer 2026-10-29  원시 실행 결과 | Infer String without changing source text. | PASS |
| TC-068 | **Infer** Conversion  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 제목의 원본 텍스트·헤더·수식을 준비합니다. 2. Convert 또는 Infer를 호출합니다. 3. 추론 타입과 보존된 값 또는 거부 결과를 확인합니다. 개별 조건: Infer  원시 실행 결과 | Infer String without changing source text. | PASS |
| TC-069 | **Infer 한글** Conversion  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 제목의 원본 텍스트·헤더·수식을 준비합니다. 2. Convert 또는 Infer를 호출합니다. 3. 추론 타입과 보존된 값 또는 거부 결과를 확인합니다. 개별 조건: Infer 한글  원시 실행 결과 | Infer String without changing source text. | PASS |
| TC-070 | **Blank sheet and header-only sheet** Conversion  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 제목의 원본 텍스트·헤더·수식을 준비합니다. 2. Convert 또는 Infer를 호출합니다. 3. 추론 타입과 보존된 값 또는 거부 결과를 확인합니다. 개별 조건: Blank sheet and header-only sheet  원시 실행 결과 | Both rejected; no invented data rows. | PASS |
| TC-071 | **Duplicate reserved and Unicode headers** Conversion  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 제목의 원본 텍스트·헤더·수식을 준비합니다. 2. Convert 또는 Infer를 호출합니다. 3. 추론 타입과 보존된 값 또는 거부 결과를 확인합니다. 개별 조건: Duplicate reserved and Unicode headers  원시 실행 결과 | All fields survive with valid unique generated names. | PASS |
| TC-072 | **Long integer precision** Conversion  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 제목의 원본 텍스트·헤더·수식을 준비합니다. 2. Convert 또는 Infer를 호출합니다. 3. 추론 타입과 보존된 값 또는 거부 결과를 확인합니다. 개별 조건: Long integer precision  원시 실행 결과 | Integers beyond Int64 remain exact text rather than rounded double. | PASS |
| TC-073 | **Required Summary idempotence** Summary  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 데이터와 관리 Summary를 준비합니다. 2. 제목에 명시한 이름·행·타입·시트를 변경합니다. 3. 동기화·경고·Undo 또는 저장 거부/재열기를 기대 결과와 대조합니다. 개별 조건: Required Summary idempotence  원시 실행 결과 | Already compliant save/reopen stays clean. | PASS |
| TC-074 | **Source header/type add** Summary  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 데이터와 관리 Summary를 준비합니다. 2. 제목에 명시한 이름·행·타입·시트를 변경합니다. 3. 동기화·경고·Undo 또는 저장 거부/재열기를 기대 결과와 대조합니다. 개별 조건: Source header/type add  원시 실행 결과 | New header receives string and matching Summary row. | PASS |
| TC-075 | **Add from Summary** Summary  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 데이터와 관리 Summary를 준비합니다. 2. 제목에 명시한 이름·행·타입·시트를 변경합니다. 3. 동기화·경고·Undo 또는 저장 거부/재열기를 기대 결과와 대조합니다. 개별 조건: Add from Summary  원시 실행 결과 | New Summary row creates source column at matching position. | PASS |
| TC-076 | **Rename data sheet** Summary  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 데이터와 관리 Summary를 준비합니다. 2. 제목에 명시한 이름·행·타입·시트를 변경합니다. 3. 동기화·경고·Undo 또는 저장 거부/재열기를 기대 결과와 대조합니다. 개별 조건: Rename data sheet  원시 실행 결과 | Summary target names update and persist. | PASS |
| TC-077 | **Cannot delete mandatory Summary** Summary  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 데이터와 관리 Summary를 준비합니다. 2. 제목에 명시한 이름·행·타입·시트를 변경합니다. 3. 동기화·경고·Undo 또는 저장 거부/재열기를 기대 결과와 대조합니다. 개별 조건: Cannot delete mandatory Summary  원시 실행 결과 | Rejected operation preserves workbook. | PASS |
| TC-078 | **Corrupt Summary header** Summary  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 데이터와 관리 Summary를 준비합니다. 2. 제목에 명시한 이름·행·타입·시트를 변경합니다. 3. 동기화·경고·Undo 또는 저장 거부/재열기를 기대 결과와 대조합니다. 개별 조건: Corrupt Summary header  원시 실행 결과 | Save rejected and disk bytes remain intact. | PASS |
| TC-079 | **Invalid duplicate/type/identifier Power:int** Summary  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 데이터와 관리 Summary를 준비합니다. 2. 제목에 명시한 이름·행·타입·시트를 변경합니다. 3. 동기화·경고·Undo 또는 저장 거부/재열기를 기대 결과와 대조합니다. 개별 조건: Invalid duplicate/type/identifier Power:int  원시 실행 결과 | Warning and rejected save leave disk unchanged. | PASS |
| TC-080 | **Invalid duplicate/type/identifier Broken:nonsense** Summary  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 데이터와 관리 Summary를 준비합니다. 2. 제목에 명시한 이름·행·타입·시트를 변경합니다. 3. 동기화·경고·Undo 또는 저장 거부/재열기를 기대 결과와 대조합니다. 개별 조건: Invalid duplicate/type/identifier Broken:nonsense  원시 실행 결과 | Warning and rejected save leave disk unchanged. | PASS |
| TC-081 | **Invalid duplicate/type/identifier class:int** Summary  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 데이터와 관리 Summary를 준비합니다. 2. 제목에 명시한 이름·행·타입·시트를 변경합니다. 3. 동기화·경고·Undo 또는 저장 거부/재열기를 기대 결과와 대조합니다. 개별 조건: Invalid duplicate/type/identifier class:int  원시 실행 결과 | Warning and rejected save leave disk unchanged. | PASS |
| TC-082 | **Invalid duplicate/type/identifier Id:string** Summary  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 데이터와 관리 Summary를 준비합니다. 2. 제목에 명시한 이름·행·타입·시트를 변경합니다. 3. 동기화·경고·Undo 또는 저장 거부/재열기를 기대 결과와 대조합니다. 개별 조건: Invalid duplicate/type/identifier Id:string  원시 실행 결과 | Warning and rejected save leave disk unchanged. | PASS |
| TC-083 | **Occupied Summary name** Summary  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 데이터와 관리 Summary를 준비합니다. 2. 제목에 명시한 이름·행·타입·시트를 변경합니다. 3. 동기화·경고·Undo 또는 저장 거부/재열기를 기대 결과와 대조합니다. 개별 조건: Occupied Summary name  원시 실행 결과 | User sheet named Summary is preserved; managed Summary gets unique name. | PASS |
| TC-084 | **Required Summary rename and undo** Summary  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 데이터와 관리 Summary를 준비합니다. 2. 제목에 명시한 이름·행·타입·시트를 변경합니다. 3. 동기화·경고·Undo 또는 저장 거부/재열기를 기대 결과와 대조합니다. 개별 조건: Required Summary rename and undo  원시 실행 결과 | Managed Summary detected by headers after display-name change. | PASS |
| TC-085 | **New second data sheet** Summary  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 데이터와 관리 Summary를 준비합니다. 2. 제목에 명시한 이름·행·타입·시트를 변경합니다. 3. 동기화·경고·Undo 또는 저장 거부/재열기를 기대 결과와 대조합니다. 개별 조건: New second data sheet  원시 실행 결과 | Both table schemas present in one Summary. | PASS |
| TC-086 | **Case-insensitive duplicate column names** Summary  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 데이터와 관리 Summary를 준비합니다. 2. 제목에 명시한 이름·행·타입·시트를 변경합니다. 3. 동기화·경고·Undo 또는 저장 거부/재열기를 기대 결과와 대조합니다. 개별 조건: Case-insensitive duplicate column names  원시 실행 결과 | C# member names differing only by case are rejected consistently before saving. | PASS |
| TC-087 | **Create Rarity** Local enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 새 게임 문서에 Enum 정의를 준비합니다. 2. 제목의 이름·멤버·번호 조건을 적용합니다. 3. 타입 목록·발견 결과·값 경고·저장/거부 상태를 확인합니다. 개별 조건: Create Rarity  원시 실행 결과 | One consolidated definition sheet; popup contains Local type. | PASS |
| TC-088 | **Create Element** Local enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 새 게임 문서에 Enum 정의를 준비합니다. 2. 제목의 이름·멤버·번호 조건을 적용합니다. 3. 타입 목록·발견 결과·값 경고·저장/거부 상태를 확인합니다. 개별 조건: Create Element  원시 실행 결과 | One consolidated definition sheet; popup contains Local type. | PASS |
| TC-089 | **Create EnemyRole** Local enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 새 게임 문서에 Enum 정의를 준비합니다. 2. 제목의 이름·멤버·번호 조건을 적용합니다. 3. 타입 목록·발견 결과·값 경고·저장/거부 상태를 확인합니다. 개별 조건: Create EnemyRole  원시 실행 결과 | One consolidated definition sheet; popup contains Local type. | PASS |
| TC-090 | **Create Local** Local enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 새 게임 문서에 Enum 정의를 준비합니다. 2. 제목의 이름·멤버·번호 조건을 적용합니다. 3. 타입 목록·발견 결과·값 경고·저장/거부 상태를 확인합니다. 개별 조건: Create Local  원시 실행 결과 | One consolidated definition sheet; popup contains Local type. | PASS |
| TC-091 | **Reject reserved Enum name int** Local enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 새 게임 문서에 Enum 정의를 준비합니다. 2. 제목의 이름·멤버·번호 조건을 적용합니다. 3. 타입 목록·발견 결과·값 경고·저장/거부 상태를 확인합니다. 개별 조건: Reject reserved Enum name int  원시 실행 결과 | Reject without creating Enum data. | PASS |
| TC-092 | **Reject reserved Enum name class** Local enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 새 게임 문서에 Enum 정의를 준비합니다. 2. 제목의 이름·멤버·번호 조건을 적용합니다. 3. 타입 목록·발견 결과·값 경고·저장/거부 상태를 확인합니다. 개별 조건: Reject reserved Enum name class  원시 실행 결과 | Reject without creating Enum data. | PASS |
| TC-093 | **Reject reserved Enum name 1Bad** Local enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 새 게임 문서에 Enum 정의를 준비합니다. 2. 제목의 이름·멤버·번호 조건을 적용합니다. 3. 타입 목록·발견 결과·값 경고·저장/거부 상태를 확인합니다. 개별 조건: Reject reserved Enum name 1Bad  원시 실행 결과 | Reject without creating Enum data. | PASS |
| TC-094 | **Reject reserved Enum name Has Space** Local enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 새 게임 문서에 Enum 정의를 준비합니다. 2. 제목의 이름·멤버·번호 조건을 적용합니다. 3. 타입 목록·발견 결과·값 경고·저장/거부 상태를 확인합니다. 개별 조건: Reject reserved Enum name Has Space  원시 실행 결과 | Reject without creating Enum data. | PASS |
| TC-095 | **Automatic values and explicit values** Local enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 새 게임 문서에 Enum 정의를 준비합니다. 2. 제목의 이름·멤버·번호 조건을 적용합니다. 3. 타입 목록·발견 결과·값 경고·저장/거부 상태를 확인합니다. 개별 조건: Automatic values and explicit values  원시 실행 결과 | Omitted numbers start at zero, explicit number sets next automatic value; blank cells do not consume a number. | PASS |
| TC-096 | **Missing definition warnings** Local enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 새 게임 문서에 Enum 정의를 준비합니다. 2. 제목의 이름·멤버·번호 조건을 적용합니다. 3. 타입 목록·발견 결과·값 경고·저장/거부 상태를 확인합니다. 개별 조건: Missing definition warnings  원시 실행 결과 | Deleting an Enum definition marks dependent cells; Undo clears warnings. | PASS |
| TC-097 | **Invalid Enum member warning** Local enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 새 게임 문서에 Enum 정의를 준비합니다. 2. 제목의 이름·멤버·번호 조건을 적용합니다. 3. 타입 목록·발견 결과·값 경고·저장/거부 상태를 확인합니다. 개별 조건: Invalid Enum member warning  원시 실행 결과 | Popup values are valid; unknown text and undefined numbers warn. | PASS |
| TC-098 | **Create provider Shared** Global enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Create provider Shared  원시 실행 결과 | Provider namespace and definitions survive save/reopen. | PASS |
| TC-099 | **Create provider CommonEnums** Global enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Create provider CommonEnums  원시 실행 결과 | Provider namespace and definitions survive save/reopen. | PASS |
| TC-100 | **Reject namespace Local** Global enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Reject namespace Local  원시 실행 결과 | Invalid or reserved namespaces rejected without edit. | PASS |
| TC-101 | **Reject namespace local** Global enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Reject namespace local  원시 실행 결과 | Invalid or reserved namespaces rejected without edit. | PASS |
| TC-102 | **Reject namespace class** Global enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Reject namespace class  원시 실행 결과 | Invalid or reserved namespaces rejected without edit. | PASS |
| TC-103 | **Reject namespace Bad Space** Global enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Reject namespace Bad Space  원시 실행 결과 | Invalid or reserved namespaces rejected without edit. | PASS |
| TC-104 | **Reject namespace** Global enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Reject namespace  원시 실행 결과 | Invalid or reserved namespaces rejected without edit. | PASS |
| TC-105 | **Stale edit revision** Persistence  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Stale edit revision  원시 실행 결과 | Two sessions cannot silently overwrite the other's saved changes. | PASS |
| TC-106 | **Undo redo type plus Summary** Persistence  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Undo redo type plus Summary  원시 실행 결과 | One transaction restores source type and Summary together. | PASS |
| TC-107 | **Native XLSX register / code / binary / Summary / style** Registration  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 격리 프로젝트 Assets에 TC 전용 원본을 만들고 임포트합니다. 2. 제목의 등록·충돌·실패·해제 경로를 호출합니다. 3. 등록 상태, 원본 바이트, 생성 코드·바이너리를 기대 결과와 비교합니다. 개별 조건: Native XLSX register / code / binary / Summary / style  원시 실행 결과 | Original source identity preserved; code and matching encrypted binary created; Summary mandatory and header blue. | PASS |
| TC-108 | **Duplicate same-sheet registration** Registration  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 격리 프로젝트 Assets에 TC 전용 원본을 만들고 임포트합니다. 2. 제목의 등록·충돌·실패·해제 경로를 호출합니다. 3. 등록 상태, 원본 바이트, 생성 코드·바이너리를 기대 결과와 비교합니다. 개별 조건: Duplicate same-sheet registration  원시 실행 결과 | Reject without changing source or generating second registration. | PASS |
| TC-109 | **Two tables in one workbook** Registration  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 격리 프로젝트 Assets에 TC 전용 원본을 만들고 임포트합니다. 2. 제목의 등록·충돌·실패·해제 경로를 호출합니다. 3. 등록 상태, 원본 바이트, 생성 코드·바이너리를 기대 결과와 비교합니다. 개별 조건: Two tables in one workbook  원시 실행 결과 | Both sheets independently registered, styled, generated and represented in Summary. | PASS |
| TC-110 | **Generated table name conflict** Registration  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 격리 프로젝트 Assets에 TC 전용 원본을 만들고 임포트합니다. 2. 제목의 등록·충돌·실패·해제 경로를 호출합니다. 3. 등록 상태, 원본 바이트, 생성 코드·바이너리를 기대 결과와 비교합니다. 개별 조건: Generated table name conflict  원시 실행 결과 | Existing table outputs untouched; second source unchanged. | PASS |
| TC-111 | **External original rejected** Registration  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 격리 프로젝트 Assets에 TC 전용 원본을 만들고 임포트합니다. 2. 제목의 등록·충돌·실패·해제 경로를 호출합니다. 3. 등록 상태, 원본 바이트, 생성 코드·바이너리를 기대 결과와 비교합니다. 개별 조건: External original rejected  원시 실행 결과 | No external source mutation or output publication. | PASS |
| TC-112 | **Global provider cannot become game data** Registration  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 격리 프로젝트 Assets에 TC 전용 원본을 만들고 임포트합니다. 2. 제목의 등록·충돌·실패·해제 경로를 호출합니다. 3. 등록 상태, 원본 바이트, 생성 코드·바이너리를 기대 결과와 비교합니다. 개별 조건: Global provider cannot become game data  원시 실행 결과 | Definition source remains unchanged and no registration is created. | PASS |
| TC-113 | **Managed Summary cannot become game data** Registration  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 격리 프로젝트 Assets에 TC 전용 원본을 만들고 임포트합니다. 2. 제목의 등록·충돌·실패·해제 경로를 호출합니다. 3. 등록 상태, 원본 바이트, 생성 코드·바이너리를 기대 결과와 비교합니다. 개별 조건: Managed Summary cannot become game data  원시 실행 결과 | Summary content and managed identity stay unchanged. | PASS |
| TC-114 | **Local Enum definition cannot become game data** Registration  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 격리 프로젝트 Assets에 TC 전용 원본을 만들고 임포트합니다. 2. 제목의 등록·충돌·실패·해제 경로를 호출합니다. 3. 등록 상태, 원본 바이트, 생성 코드·바이너리를 기대 결과와 비교합니다. 개별 조건: Local Enum definition cannot become game data  원시 실행 결과 | Enum definition sheet remains intact. | PASS |
| TC-115 | **Nonexistent target sheet** Registration  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 격리 프로젝트 Assets에 TC 전용 원본을 만들고 임포트합니다. 2. 제목의 등록·충돌·실패·해제 경로를 호출합니다. 3. 등록 상태, 원본 바이트, 생성 코드·바이너리를 기대 결과와 비교합니다. 개별 조건: Nonexistent target sheet  원시 실행 결과 | Reject before mutation; no fallback to first worksheet. | PASS |
| TC-116 | **Existing output file collision** Registration  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 격리 프로젝트 Assets에 TC 전용 원본을 만들고 임포트합니다. 2. 제목의 등록·충돌·실패·해제 경로를 호출합니다. 3. 등록 상태, 원본 바이트, 생성 코드·바이너리를 기대 결과와 비교합니다. 개별 조건: Existing output file collision  원시 실행 결과 | Preflight rejects and retains source plus existing file. | PASS |
| TC-117 | **Unregister keeps source and outputs** Registration  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 격리 프로젝트 Assets에 TC 전용 원본을 만들고 임포트합니다. 2. 제목의 등록·충돌·실패·해제 경로를 호출합니다. 3. 등록 상태, 원본 바이트, 생성 코드·바이너리를 기대 결과와 비교합니다. 개별 조건: Unregister keeps source and outputs  원시 실행 결과 | Registration removed; editable workbook and generated artifacts retained. | PASS |
| TC-118 | **Failed generation rollback** Registration  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 격리 프로젝트 Assets에 TC 전용 원본을 만들고 임포트합니다. 2. 제목의 등록·충돌·실패·해제 경로를 호출합니다. 3. 등록 상태, 원본 바이트, 생성 코드·바이너리를 기대 결과와 비교합니다. 개별 조건: Failed generation rollback  원시 실행 결과 | Local namespace conflict after source rewrite restores original source, table registry and table outputs. | PASS |
| TC-119 | **Template has horizontal language columns** Localization  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Template has horizontal language columns  원시 실행 결과 | Id/korea/english/france header and keys in rows; no type row. | PASS |
| TC-120 | **Game-data sheet cannot become localization** Localization  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Game-data sheet cannot become localization  원시 실행 결과 | Existing source and game registration remain intact. | PASS |
| TC-121 | **Provider template rejects unsupported extension** Global enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Provider template rejects unsupported extension  원시 실행 결과 | Global provider creation requires XLSX; no CSV rewrite. | PASS |
| TC-122 | **Existing template destination protected** Global enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Existing template destination protected  원시 실행 결과 | Provider template cannot overwrite existing workbook. | PASS |
| TC-123 | **Existing template destination protected** Localization  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Existing template destination protected  원시 실행 결과 | Localization template cannot overwrite existing workbook. | PASS |
| TC-124 | **Invalid schema column Read** Grid warnings  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 게임 데이터 스키마를 준비합니다. 2. 제목의 잘못된 컬럼 이름을 적용합니다. 3. 헤더·타입·데이터 셀의 validation 결과를 확인합니다. 개별 조건: Invalid schema column Read  원시 실행 결과 | Column header/type/data cells visibly warn before save. | PASS |
| TC-125 | **Invalid schema column Write** Grid warnings  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 게임 데이터 스키마를 준비합니다. 2. 제목의 잘못된 컬럼 이름을 적용합니다. 3. 헤더·타입·데이터 셀의 validation 결과를 확인합니다. 개별 조건: Invalid schema column Write  원시 실행 결과 | Column header/type/data cells visibly warn before save. | PASS |
| TC-126 | **Invalid schema column ToString** Grid warnings  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 게임 데이터 스키마를 준비합니다. 2. 제목의 잘못된 컬럼 이름을 적용합니다. 3. 헤더·타입·데이터 셀의 validation 결과를 확인합니다. 개별 조건: Invalid schema column ToString  원시 실행 결과 | Column header/type/data cells visibly warn before save. | PASS |
| TC-127 | **Invalid schema column class** Grid warnings  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 게임 데이터 스키마를 준비합니다. 2. 제목의 잘못된 컬럼 이름을 적용합니다. 3. 헤더·타입·데이터 셀의 validation 결과를 확인합니다. 개별 조건: Invalid schema column class  원시 실행 결과 | Column header/type/data cells visibly warn before save. | PASS |
| TC-128 | **Invalid schema column Bad Name** Grid warnings  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 게임 데이터 스키마를 준비합니다. 2. 제목의 잘못된 컬럼 이름을 적용합니다. 3. 헤더·타입·데이터 셀의 validation 결과를 확인합니다. 개별 조건: Invalid schema column Bad Name  원시 실행 결과 | Column header/type/data cells visibly warn before save. | PASS |
| TC-129 | **Invalid schema column 1Bad** Grid warnings  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 게임 데이터 스키마를 준비합니다. 2. 제목의 잘못된 컬럼 이름을 적용합니다. 3. 헤더·타입·데이터 셀의 validation 결과를 확인합니다. 개별 조건: Invalid schema column 1Bad  원시 실행 결과 | Column header/type/data cells visibly warn before save. | PASS |
| TC-130 | **Invalid schema column** Grid warnings  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 게임 데이터 스키마를 준비합니다. 2. 제목의 잘못된 컬럼 이름을 적용합니다. 3. 헤더·타입·데이터 셀의 validation 결과를 확인합니다. 개별 조건: Invalid schema column  원시 실행 결과 | Column header/type/data cells visibly warn before save. | PASS |
| TC-131 | **Duplicate header case** Grid warnings  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 게임 데이터 스키마를 준비합니다. 2. 제목의 잘못된 컬럼 이름을 적용합니다. 3. 헤더·타입·데이터 셀의 validation 결과를 확인합니다. 개별 조건: Duplicate header case  원시 실행 결과 | Both ambiguous columns warn. | PASS |
| TC-132 | **Reserved generated member Read** Summary  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 데이터와 관리 Summary를 준비합니다. 2. 제목에 명시한 이름·행·타입·시트를 변경합니다. 3. 동기화·경고·Undo 또는 저장 거부/재열기를 기대 결과와 대조합니다. 개별 조건: Reserved generated member Read  원시 실행 결과 | Summary warning matches generated schema rejection. | PASS |
| TC-133 | **Reserved generated member Write** Summary  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 데이터와 관리 Summary를 준비합니다. 2. 제목에 명시한 이름·행·타입·시트를 변경합니다. 3. 동기화·경고·Undo 또는 저장 거부/재열기를 기대 결과와 대조합니다. 개별 조건: Reserved generated member Write  원시 실행 결과 | Summary warning matches generated schema rejection. | PASS |
| TC-134 | **Reserved generated member ToString** Summary  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 데이터와 관리 Summary를 준비합니다. 2. 제목에 명시한 이름·행·타입·시트를 변경합니다. 3. 동기화·경고·Undo 또는 저장 거부/재열기를 기대 결과와 대조합니다. 개별 조건: Reserved generated member ToString  원시 실행 결과 | Summary warning matches generated schema rejection. | PASS |
| TC-135 | **Exact 100000-cell table range** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Exact 100000-cell table range  원시 실행 결과 | Maximum supported area accepted; metadata and headers survive save. | PASS |
| TC-136 | **Occupied lowercase summary name** Summary  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 데이터와 관리 Summary를 준비합니다. 2. 제목에 명시한 이름·행·타입·시트를 변경합니다. 3. 동기화·경고·Undo 또는 저장 거부/재열기를 기대 결과와 대조합니다. 개별 조건: Occupied lowercase summary name  원시 실행 결과 | Case-insensitive existing sheet preserved; unique managed Summary created. | PASS |
| TC-137 | **Formula-dependent reorder rejected safely** Summary  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id:int 데이터와 관리 Summary를 준비합니다. 2. 제목에 명시한 이름·행·타입·시트를 변경합니다. 3. 동기화·경고·Undo 또는 저장 거부/재열기를 기대 결과와 대조합니다. 개별 조건: Formula-dependent reorder rejected safely  원시 실행 결과 | Source columns and formula remain unchanged; save blocks; Undo recovers. | PASS |
| TC-138 | **Body formula preserved through table creation** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Body formula preserved through table creation  원시 실행 결과 | Formula remains a formula after create/save/reopen. | PASS |
| TC-139 | **Default names skip occupied names** Excel table  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. TC별 새 XLSX·범위·헤더·기존 구조를 준비합니다. 2. 제목 조건의 CreateTable 또는 ConvertTableToRange를 호출합니다. 3. 기대 결과에 따라 표 메타데이터·값·재열기 또는 거부 시 상태 보존을 확인합니다. 개별 조건: Default names skip occupied names  원시 실행 결과 | Auto-generated names unique workbook-wide. | PASS |
| TC-140 | **Mixed oversized integer and decimal** Conversion  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 제목의 원본 텍스트·헤더·수식을 준비합니다. 2. Convert 또는 Infer를 호출합니다. 3. 추론 타입과 보존된 값 또는 거부 결과를 확인합니다. 개별 조건: Mixed oversized integer and decimal  원시 실행 결과 | Text preserved for entire column to avoid rounding integer identifiers. | PASS |
| TC-141 | **Invalid definition A = 1\|B = 1** Local enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 새 게임 문서에 Enum 정의를 준비합니다. 2. 제목의 이름·멤버·번호 조건을 적용합니다. 3. 타입 목록·발견 결과·값 경고·저장/거부 상태를 확인합니다. 개별 조건: Invalid definition A = 1\|B = 1  원시 실행 결과 | Discover rejects invalid names, duplicate values, overflow and formulas. | PASS |
| TC-142 | **Invalid definition A\|a** Local enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 새 게임 문서에 Enum 정의를 준비합니다. 2. 제목의 이름·멤버·번호 조건을 적용합니다. 3. 타입 목록·발견 결과·값 경고·저장/거부 상태를 확인합니다. 개별 조건: Invalid definition A\|a  원시 실행 결과 | Discover rejects invalid names, duplicate values, overflow and formulas. | PASS |
| TC-143 | **Invalid definition class** Local enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 새 게임 문서에 Enum 정의를 준비합니다. 2. 제목의 이름·멤버·번호 조건을 적용합니다. 3. 타입 목록·발견 결과·값 경고·저장/거부 상태를 확인합니다. 개별 조건: Invalid definition class  원시 실행 결과 | Discover rejects invalid names, duplicate values, overflow and formulas. | PASS |
| TC-144 | **Invalid definition A = 2147483648** Local enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 새 게임 문서에 Enum 정의를 준비합니다. 2. 제목의 이름·멤버·번호 조건을 적용합니다. 3. 타입 목록·발견 결과·값 경고·저장/거부 상태를 확인합니다. 개별 조건: Invalid definition A = 2147483648  원시 실행 결과 | Discover rejects invalid names, duplicate values, overflow and formulas. | PASS |
| TC-145 | **Invalid definition A = -2147483649** Local enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 새 게임 문서에 Enum 정의를 준비합니다. 2. 제목의 이름·멤버·번호 조건을 적용합니다. 3. 타입 목록·발견 결과·값 경고·저장/거부 상태를 확인합니다. 개별 조건: Invalid definition A = -2147483649  원시 실행 결과 | Discover rejects invalid names, duplicate values, overflow and formulas. | PASS |
| TC-146 | **Invalid definition A = no** Local enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 새 게임 문서에 Enum 정의를 준비합니다. 2. 제목의 이름·멤버·번호 조건을 적용합니다. 3. 타입 목록·발견 결과·값 경고·저장/거부 상태를 확인합니다. 개별 조건: Invalid definition A = no  원시 실행 결과 | Discover rejects invalid names, duplicate values, overflow and formulas. | PASS |
| TC-147 | **Invalid definition =1+1** Local enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 새 게임 문서에 Enum 정의를 준비합니다. 2. 제목의 이름·멤버·번호 조건을 적용합니다. 3. 타입 목록·발견 결과·값 경고·저장/거부 상태를 확인합니다. 개별 조건: Invalid definition =1+1  원시 실행 결과 | Discover rejects invalid names, duplicate values, overflow and formulas. | PASS |
| TC-148 | **Duplicate Enum identifier ignores case** Local enums  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 새 게임 문서에 Enum 정의를 준비합니다. 2. 제목의 이름·멤버·번호 조건을 적용합니다. 3. 타입 목록·발견 결과·값 경고·저장/거부 상태를 확인합니다. 개별 조건: Duplicate Enum identifier ignores case  원시 실행 결과 | Adding second case-variant name rejected without metadata changes. | PASS |
| TC-149 | **Reject** Worksheet names  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Reject  원시 실행 결과 | Invalid Excel sheet name rejected without editing workbook. | PASS |
| TC-150 | **Reject Has/Slash** Worksheet names  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Reject Has/Slash  원시 실행 결과 | Invalid Excel sheet name rejected without editing workbook. | PASS |
| TC-151 | **Reject Has:Colon** Worksheet names  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Reject Has:Colon  원시 실행 결과 | Invalid Excel sheet name rejected without editing workbook. | PASS |
| TC-152 | **Reject Has?Question** Worksheet names  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Reject Has?Question  원시 실행 결과 | Invalid Excel sheet name rejected without editing workbook. | PASS |
| TC-153 | **Reject Has*Star** Worksheet names  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Reject Has*Star  원시 실행 결과 | Invalid Excel sheet name rejected without editing workbook. | PASS |
| TC-154 | **Reject Has[Bracket]** Worksheet names  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Reject Has[Bracket]  원시 실행 결과 | Invalid Excel sheet name rejected without editing workbook. | PASS |
| TC-155 | **Reject 32 characters** Worksheet names  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Reject 32 characters  원시 실행 결과 | Invalid Excel sheet name rejected without editing workbook. | PASS |
| TC-156 | **Valid 31-character Unicode name** Worksheet names  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Valid 31-character Unicode name  원시 실행 결과 | Maximum-length name accepted and survives reopening. | PASS |
| TC-157 | **Case-insensitive duplicate** Worksheet names  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Case-insensitive duplicate  원시 실행 결과 | Existing data sheet not replaced by case variant. | PASS |
| TC-158 | **Summary reorder permutation 1** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 1  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-159 | **Summary reorder permutation 2** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 2  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-160 | **Summary reorder permutation 3** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 3  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-161 | **Summary reorder permutation 4** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 4  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-162 | **Summary reorder permutation 5** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 5  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-163 | **Summary reorder permutation 6** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 6  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-164 | **Summary reorder permutation 7** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 7  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-165 | **Summary reorder permutation 8** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 8  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-166 | **Summary reorder permutation 9** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 9  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-167 | **Summary reorder permutation 10** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 10  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-168 | **Summary reorder permutation 11** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 11  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-169 | **Summary reorder permutation 12** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 12  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-170 | **Summary reorder permutation 13** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 13  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-171 | **Summary reorder permutation 14** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 14  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-172 | **Summary reorder permutation 15** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 15  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-173 | **Summary reorder permutation 16** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 16  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-174 | **Summary reorder permutation 17** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 17  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-175 | **Summary reorder permutation 18** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 18  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-176 | **Summary reorder permutation 19** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 19  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-177 | **Summary reorder permutation 20** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 20  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-178 | **Summary reorder permutation 21** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 21  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-179 | **Summary reorder permutation 22** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 22  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-180 | **Summary reorder permutation 23** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 23  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-181 | **Summary reorder permutation 24** Deterministic combinations  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. Id,A,B,C,D와 식별 가능한 값 101,202,303,404를 만듭니다. 2. 제목의 순열 번호로 A/B/C/D의 가능한 24개 순서를 각각 적용합니다. 3. 저장·재열기 후 필드 이름별 값과 바이너리 생성을 확인합니다. 개별 조건: Summary reorder permutation 24  원시 실행 결과 | Column identity and values survive arbitrary schema reorder, save and reopen. | PASS |
| TC-182 | **One provider used by two registered consumers** Global integration  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 고유 GUID의 실제 제공 파일과 소비 게임 테이블을 만듭니다. 2. 제목의 연결·이동·이름 변경·삭제·복원 동작을 실행합니다. 3. 타입 식별자·바이너리·경고와 원본 보존을 비교합니다. 개별 조건: One provider used by two registered consumers  원시 실행 결과 | Both consumers use the same C# Enum type and valid generated binaries. | PASS |
| TC-183 | **Provider asset rename preserves GUID link** Global integration  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 고유 GUID의 실제 제공 파일과 소비 게임 테이블을 만듭니다. 2. 제목의 연결·이동·이름 변경·삭제·복원 동작을 실행합니다. 3. 타입 식별자·바이너리·경고와 원본 보존을 비교합니다. 개별 조건: Provider asset rename preserves GUID link  원시 실행 결과 | Consumer still resolves shared type and member after file move. | PASS |
| TC-184 | **Definition sheet rename preserves stable type** Global integration  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 고유 GUID의 실제 제공 파일과 소비 게임 테이블을 만듭니다. 2. 제목의 연결·이동·이름 변경·삭제·복원 동작을 실행합니다. 3. 타입 식별자·바이너리·경고와 원본 보존을 비교합니다. 개별 조건: Definition sheet rename preserves stable type  원시 실행 결과 | Display-name change keeps type ID and consumer data valid. | PASS |
| TC-185 | **Used definition cannot be removed** Global integration  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 고유 GUID의 실제 제공 파일과 소비 게임 테이블을 만듭니다. 2. 제목의 연결·이동·이름 변경·삭제·복원 동작을 실행합니다. 3. 타입 식별자·바이너리·경고와 원본 보존을 비교합니다. 개별 조건: Used definition cannot be removed  원시 실행 결과 | Provider validation rejects before saving and consumers stay valid. | PASS |
| TC-186 | **Disconnect then Undo** Global integration  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 고유 GUID의 실제 제공 파일과 소비 게임 테이블을 만듭니다. 2. 제목의 연결·이동·이름 변경·삭제·복원 동작을 실행합니다. 3. 타입 식별자·바이너리·경고와 원본 보존을 비교합니다. 개별 조건: Disconnect then Undo  원시 실행 결과 | Dependent values warn; save is blocked; Undo restores type resolution. | PASS |
| TC-187 | **Missing provider file and restoration** Global integration  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    1. 고유 GUID의 실제 제공 파일과 소비 게임 테이블을 만듭니다. 2. 제목의 연결·이동·이름 변경·삭제·복원 동작을 실행합니다. 3. 타입 식별자·바이너리·경고와 원본 보존을 비교합니다. 개별 조건: Missing provider file and restoration  원시 실행 결과 | Missing source warns without losing cells; restoring it clears warning. | PASS |
| TC-188 | **Source creation** Existing regression  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Source creation  원시 실행 결과 | Existing documented assertions pass on current native Unity sources. | PASS |
| TC-189 | **Workbook conversion** Existing regression  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Workbook conversion  원시 실행 결과 | Existing documented assertions pass on current native Unity sources. | PASS |
| TC-190 | **Summary and global schema** Existing regression  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Summary and global schema  원시 실행 결과 | Existing documented assertions pass on current native Unity sources. | PASS |
| TC-191 | **Custom enums compatibility** Existing regression  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Custom enums compatibility  원시 실행 결과 | Existing documented assertions pass on current native Unity sources. | PASS |
| TC-192 | **Consolidated enums** Existing regression  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Consolidated enums  원시 실행 결과 | Existing documented assertions pass on current native Unity sources. | PASS |
| TC-193 | **Cell value validation** Existing regression  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    Cell value validation  원시 실행 결과 | Existing documented assertions pass on current native Unity sources. | PASS |
| TC-194 | **clipboard.cross-sheet-whole-table** Structured-reference regression  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    clipboard.cross-sheet-whole-table  원시 실행 결과 | Existing structured-reference, formula and name-preservation checks pass. | PASS |
| TC-195 | **table.convert-calculated-column** Structured-reference regression  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    table.convert-calculated-column  원시 실행 결과 | Existing structured-reference, formula and name-preservation checks pass. | PASS |
| TC-196 | **table.convert-defined-names** Structured-reference regression  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    table.convert-defined-names  원시 실행 결과 | Existing structured-reference, formula and name-preservation checks pass. | PASS |
| TC-197 | **table.convert-cell-references** Structured-reference regression  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    table.convert-cell-references  원시 실행 결과 | Existing structured-reference, formula and name-preservation checks pass. | PASS |
| TC-198 | **General spreadsheet editing** Spreadsheet regression  조건·절차·근거    Fresh isolated fixture; saved source captured before rejection checks.    General spreadsheet editing  원시 실행 결과 | Existing search, edit, style and worksheet operations remain correct. | PASS |
| CLI-001 | **Discover CLI operations** CLI  조건·절차·근거    Isolated running Unity; fixture workbook; no desktop input    Discover CLI operations  원시 실행 결과 | Five supported operations returned as JSON | PASS |
| CLI-002 | **Inspect saved source** CLI  조건·절차·근거    Isolated running Unity; fixture workbook; no desktop input    Inspect saved source  원시 실행 결과 | Versioned schema, sheet names and matching revision | PASS |
| CLI-003 | **Constants/formula/Unicode/multiline write** CLI  조건·절차·근거    Isolated running Unity; fixture workbook; no desktop input    Constants/formula/Unicode/multiline write  원시 실행 결과 | Saved read returns SUM=5 and original Unicode text | PASS |
| CLI-004 | **Stale revision rejects** CLI  조건·절차·근거    Isolated running Unity; fixture workbook; no desktop input    Stale revision rejects  원시 실행 결과 | No disk overwrite | PASS |
| CLI-005 | **Mixed valid/invalid write is atomic** CLI  조건·절차·근거    Isolated running Unity; fixture workbook; no desktop input    Mixed valid/invalid write is atomic  원시 실행 결과 | No partial disk writes | PASS |
| CLI-006 | **Duplicate write target** CLI  조건·절차·근거    Isolated running Unity; fixture workbook; no desktop input    Duplicate write target  원시 실행 결과 | Reject repeated cell address | PASS |
| CLI-007 | **Unknown sheet** CLI  조건·절차·근거    Isolated running Unity; fixture workbook; no desktop input    Unknown sheet  원시 실행 결과 | Stable sheet-not-found response | PASS |
| CLI-008 | **Invalid read dimensions** CLI  조건·절차·근거    Isolated running Unity; fixture workbook; no desktop input    Invalid read dimensions  원시 실행 결과 | invalid-range response | PASS |
| CLI-009 | **Read limit exceeded** CLI  조건·절차·근거    Isolated running Unity; fixture workbook; no desktop input    Read limit exceeded  원시 실행 결과 | More than 10000 cells rejected | PASS |
| CLI-010 | **Exact 10000-cell read** CLI  조건·절차·근거    Isolated running Unity; fixture workbook; no desktop input    Exact 10000-cell read  원시 실행 결과 | Boundary read accepted | PASS |
| CLI-011 | **Project path escape** CLI  조건·절차·근거    Isolated running Unity; fixture workbook; no desktop input    Project path escape  원시 실행 결과 | Outside-project source rejected | PASS |
| CLI-012 | **Unknown operation** CLI  조건·절차·근거    Isolated running Unity; fixture workbook; no desktop input    Unknown operation  원시 실행 결과 | unsupported-operation response | PASS |
| CLI-013 | **Registered source inspect and binary validation** CLI  조건·절차·근거    Isolated running Unity; fixture workbook; no desktop input    Registered source inspect and binary validation  원시 실행 결과 | Game mode detected and generated binary matches | PASS |
| CLI-014 | **Invalid typed game write** CLI  조건·절차·근거    Isolated running Unity; fixture workbook; no desktop input    Invalid typed game write  원시 실행 결과 | Validation rejects without mutation | PASS |
| CLI-015 | **Valid game write republishes binary** CLI  조건·절차·근거    Isolated running Unity; fixture workbook; no desktop input    Valid game write republishes binary  원시 실행 결과 | Source and generated binary remain consistent | PASS |
| CLI-016 | **Unsaved editor draft conflict** CLI  조건·절차·근거    Isolated running Unity; fixture workbook; no desktop input    Unsaved editor draft conflict  원시 실행 결과 | CLI refuses to overwrite an open draft | PASS |
| CLI-017 | **Malformed JSON** CLI  조건·절차·근거    Isolated running Unity; fixture workbook; no desktop input    Malformed JSON  원시 실행 결과 | Structured rejection without Python traceback | PASS |
| CLI-018 | **Non-object JSON** CLI  조건·절차·근거    Isolated running Unity; fixture workbook; no desktop input    Non-object JSON  원시 실행 결과 | Structured invalid-request rejection | PASS |
| CLI-019 | **Negative timeout does not enqueue** CLI  조건·절차·근거    Isolated running Unity; fixture workbook; no desktop input    Negative timeout does not enqueue  원시 실행 결과 | Reject before writing queue file | PASS |
| PRE-001 | **Non-object or missing operation: null** CLI input preflight  조건·절차·근거    Valid isolated project; Unity need not run    Submit invalid input and compare queue directory before/after  원시 실행 결과 | invalid-request; no queued request; no traceback | PASS |
| PRE-002 | **Non-object or missing operation: []** CLI input preflight  조건·절차·근거    Valid isolated project; Unity need not run    Submit invalid input and compare queue directory before/after  원시 실행 결과 | invalid-request; no queued request; no traceback | PASS |
| PRE-003 | **Non-object or missing operation: 123** CLI input preflight  조건·절차·근거    Valid isolated project; Unity need not run    Submit invalid input and compare queue directory before/after  원시 실행 결과 | invalid-request; no queued request; no traceback | PASS |
| PRE-004 | **Non-object or missing operation: "text"** CLI input preflight  조건·절차·근거    Valid isolated project; Unity need not run    Submit invalid input and compare queue directory before/after  원시 실행 결과 | invalid-request; no queued request; no traceback | PASS |
| PRE-005 | **Non-object or missing operation: {"path":"x"}** CLI input preflight  조건·절차·근거    Valid isolated project; Unity need not run    Submit invalid input and compare queue directory before/after  원시 실행 결과 | invalid-request; no queued request; no traceback | PASS |
| PRE-006 | **Non-object or missing operation: {"operation":""}** CLI input preflight  조건·절차·근거    Valid isolated project; Unity need not run    Submit invalid input and compare queue directory before/after  원시 실행 결과 | invalid-request; no queued request; no traceback | PASS |
| PRE-007 | **Non-object or missing operation: {"operation":123}** CLI input preflight  조건·절차·근거    Valid isolated project; Unity need not run    Submit invalid input and compare queue directory before/after  원시 실행 결과 | invalid-request; no queued request; no traceback | PASS |
| PRE-008 | **Invalid timeout 0** CLI input preflight  조건·절차·근거    Valid isolated project; Unity need not run    Submit invalid input and compare queue directory before/after  원시 실행 결과 | invalid-timeout; no queued request; no traceback | PASS |
| PRE-009 | **Invalid timeout -1** CLI input preflight  조건·절차·근거    Valid isolated project; Unity need not run    Submit invalid input and compare queue directory before/after  원시 실행 결과 | invalid-timeout; no queued request; no traceback | PASS |
| PRE-010 | **Invalid timeout nan** CLI input preflight  조건·절차·근거    Valid isolated project; Unity need not run    Submit invalid input and compare queue directory before/after  원시 실행 결과 | invalid-timeout; no queued request; no traceback | PASS |
| PRE-011 | **Invalid timeout inf** CLI input preflight  조건·절차·근거    Valid isolated project; Unity need not run    Submit invalid input and compare queue directory before/after  원시 실행 결과 | invalid-timeout; no queued request; no traceback | PASS |
| PRE-012 | **Invalid timeout -inf** CLI input preflight  조건·절차·근거    Valid isolated project; Unity need not run    Submit invalid input and compare queue directory before/after  원시 실행 결과 | invalid-timeout; no queued request; no traceback | PASS |
| PRE-013 | **Oversized write payload** CLI input preflight  조건·절차·근거    Valid isolated project; Unity need not run    Submit invalid input and compare queue directory before/after  원시 실행 결과 | request-too-large; no queued request; no traceback | PASS |
| PRE-014 | **Missing request file** CLI input preflight  조건·절차·근거    Valid isolated project; Unity need not run    Submit invalid input and compare queue directory before/after  원시 실행 결과 | request-read-failed; no queued request; no traceback | PASS |
| PLAY-001 | **Registered source save blocked** Play-mode protections  조건·절차·근거    Isolated Unity 6000.0.83f1 Windows; actual Play mode; no desktop input    Registered source save blocked  원시 실행 결과 | Source bytes unchanged | PASS |
| PLAY-002 | **Registration blocked in Play** Play-mode protections  조건·절차·근거    Isolated Unity 6000.0.83f1 Windows; actual Play mode; no desktop input    Registration blocked in Play  원시 실행 결과 | CanRegister false and Register rejects | PASS |
| PLAY-003 | **Global provider save blocked** Play-mode protections  조건·절차·근거    Isolated Unity 6000.0.83f1 Windows; actual Play mode; no desktop input    Global provider save blocked  원시 실행 결과 | Provider bytes unchanged | PASS |
| PLAY-004 | **Viewer loaded during Play is locked** Play-mode protections  조건·절차·근거    Isolated Unity 6000.0.83f1 Windows; actual Play mode; no desktop input    Viewer loaded during Play is locked  원시 실행 결과 | PlayReadOnly true and Editable false without presenting a window | PASS |
| PLAY-005 | **Direct automation write respects Play lock** Play-mode protections  조건·절차·근거    Isolated Unity 6000.0.83f1 Windows; actual Play mode; no desktop input    Direct automation write respects Play lock  원시 실행 결과 | API write rejected before source mutation | PASS |
| PLAY-006 | **Ordinary spreadsheet remains editable** Play-mode protections  조건·절차·근거    Isolated Unity 6000.0.83f1 Windows; actual Play mode; no desktop input    Ordinary spreadsheet remains editable  원시 실행 결과 | Unregistered temporary workbook can save in Play | PASS |
| RUN-001 | **QA66be83435709** Generated runtime  조건·절차·근거    Fresh generated QA table compiled in isolated native Unity    Load generated C# table, query every Id, compare every typed property to saved source  원시 실행 결과 | Generated Load/GetData and all properties equal original typed source; binary and source unchanged | PASS |
| RUN-002 | **QA8ae116d0856b** Generated runtime  조건·절차·근거    Fresh generated QA table compiled in isolated native Unity    Load generated C# table, query every Id, compare every typed property to saved source  원시 실행 결과 | Generated Load/GetData and all properties equal original typed source; binary and source unchanged | PASS |
| RUN-003 | **QA21269110ce01** Generated runtime  조건·절차·근거    Fresh generated QA table compiled in isolated native Unity    Load generated C# table, query every Id, compare every typed property to saved source  원시 실행 결과 | Generated Load/GetData and all properties equal original typed source; binary and source unchanged | PASS |
| RUN-004 | **QA3355fe16a6a7** Generated runtime  조건·절차·근거    Fresh generated QA table compiled in isolated native Unity    Load generated C# table, query every Id, compare every typed property to saved source  원시 실행 결과 | Generated Load/GetData and all properties equal original typed source; binary and source unchanged | PASS |
| RUN-005 | **QAf0b0cfce50b0** Generated runtime  조건·절차·근거    Fresh generated QA table compiled in isolated native Unity    Load generated C# table, query every Id, compare every typed property to saved source  원시 실행 결과 | Generated Load/GetData and all properties equal original typed source; binary and source unchanged | PASS |
| RUN-006 | **QA27be24202e3f** Generated runtime  조건·절차·근거    Fresh generated QA table compiled in isolated native Unity    Load generated C# table, query every Id, compare every typed property to saved source  원시 실행 결과 | Generated Load/GetData and all properties equal original typed source; binary and source unchanged | PASS |
| RUN-007 | **QA60a4c98df264** Generated runtime  조건·절차·근거    Fresh generated QA table compiled in isolated native Unity    Load generated C# table, query every Id, compare every typed property to saved source  원시 실행 결과 | Generated Load/GetData and all properties equal original typed source; binary and source unchanged | PASS |
| RUN-008 | **QA9b33174864e2** Generated runtime  조건·절차·근거    Fresh generated QA table compiled in isolated native Unity    Load generated C# table, query every Id, compare every typed property to saved source  원시 실행 결과 | Generated Load/GetData and all properties equal original typed source; binary and source unchanged | PASS |
| RUN-009 | **QA555b44704268** Generated runtime  조건·절차·근거    Fresh generated QA table compiled in isolated native Unity    Load generated C# table, query every Id, compare every typed property to saved source  원시 실행 결과 | Generated Load/GetData and all properties equal original typed source; binary and source unchanged | PASS |
| RUN-010 | **QA2cc3f8100115** Generated runtime  조건·절차·근거    Fresh generated QA table compiled in isolated native Unity    Load generated C# table, query every Id, compare every typed property to saved source  원시 실행 결과 | Generated Load/GetData and all properties equal original typed source; binary and source unchanged | PASS |
| RUN-011 | **QA58d4d6c87d02** Generated runtime  조건·절차·근거    Fresh generated QA table compiled in isolated native Unity    Load generated C# table, query every Id, compare every typed property to saved source  원시 실행 결과 | Generated Load/GetData and all properties equal original typed source; binary and source unchanged | PASS |
| RUN-012 | **QAd014944008cf** Generated runtime  조건·절차·근거    Fresh generated QA table compiled in isolated native Unity    Load generated C# table, query every Id, compare every typed property to saved source  원시 실행 결과 | Generated Load/GetData and all properties equal original typed source; binary and source unchanged | PASS |
| RUN-013 | **QA96f1a2e7f49e** Generated runtime  조건·절차·근거    Fresh generated QA table compiled in isolated native Unity    Load generated C# table, query every Id, compare every typed property to saved source  원시 실행 결과 | Generated Load/GetData and all properties equal original typed source; binary and source unchanged | PASS |

## 검증 한계

- 유한한 기능·경계·거부 조건 TC입니다. 가능한 모든 XLSX 바이트 조합이나 모든 기능의 완전성을 증명하지 않습니다.

- 사용자 데스크톱 입력·마우스 포커스·메뉴 클릭의 수동 인수 검사는 수행하지 않았습니다.

- Windows Unity 6000.0.83f1만 검증했습니다. macOS/Linux/다른 Unity 버전 및 Excel·Google Sheets 간 픽셀·계산 완전 동등성은 미검증입니다.

- 강제 프로세스 종료·디스크 용량 부족·실제 전원 차단을 주입하지 않았습니다. 생성 충돌과 중간 생성 실패의 롤백은 검사했습니다.

- 네이티브 UI 캡처는 영어입니다. 9개 언어 문서 렌더링은 별도로 검사했으며 모든 언어의 Unity UI 배치는 인증하지 않았습니다.

- 시간과 출력 바이트는 일부 호출의 관측값이며 토큰 절감률·대규모 처리량 벤치마크는 아닙니다.

초기 실패와 TC 하네스 오류 로그를 보존했습니다. CSV 거부 예외 및 Local이라는 유효 Enum 이름에 대한 초기 기대 조건 2건은 TC 오류로 정정했으며 제품 버그 집계에서 제외했습니다. 하네스의 컴파일 정정도 제품 버그로 계산하지 않았습니다.

XERJ: 실패 — 서버 미기동으로 rg 사용. 스토어 업로드·Git 푸시는 수행하지 않았습니다.

## 원문과 편집 이력

[보존된 원문 열기](../assets/imports/Docs/Testing/2026-10-29/table-creation-qa/History/Before-Korean-TCs-2026-10-29/QA-Report.html)

- 원문 SHA-256: `c2e276aceaf08211bb4667300141c111c908e5c1ebfd01928176c5312606f673`
- 표시 날짜는 원본 파일의 수정 시각입니다. 작업 완료 시각은 원문에 있는 값을 기준으로 확인합니다.
