{
  "issueId": "4203",
  "environment": "dev",
  "generatedAt": "2026-10-06T16:18:09+09:00",
  "sourceResult": "qa-results redacted from tracked output",
  "timings": {
    "issueId": "4203",
    "environment": "dev",
    "generatedAt": "2026-10-06T07:18:09.394Z",
    "exitStatus": 0,
    "timings": [
      {
        "name": "qa:run",
        "startedAt": "2026-10-06T07:14:02.840Z",
        "detail": {
          "issueId": "4203",
          "environment": "dev",
          "exitStatus": 0
        },
        "finishedAt": "2026-10-06T07:18:09.394Z",
        "durationMs": 246554,
        "status": "ok"
      },
      {
        "name": "prepare-results",
        "startedAt": "2026-10-06T07:14:02.841Z",
        "detail": {},
        "finishedAt": "2026-10-06T07:14:02.846Z",
        "durationMs": 5,
        "status": "ok"
      },
      {
        "name": "auth-refresh",
        "startedAt": "2026-10-06T07:14:02.846Z",
        "detail": {},
        "finishedAt": "2026-10-06T07:14:44.603Z",
        "durationMs": 41757,
        "status": "ok"
      },
      {
        "name": "auth-refresh:admin/dev/ADMIN",
        "startedAt": "2026-10-06T07:14:02.847Z",
        "detail": {
          "application": "admin",
          "role": "ADMIN",
          "businessRole": "ADMIN"
        },
        "finishedAt": "2026-10-06T07:14:15.132Z",
        "durationMs": 12285,
        "status": "ok"
      },
      {
        "name": "auth-refresh:admin/dev/TA",
        "startedAt": "2026-10-06T07:14:15.132Z",
        "detail": {
          "application": "admin",
          "role": "TA",
          "businessRole": "TA"
        },
        "finishedAt": "2026-10-06T07:14:24.598Z",
        "durationMs": 9466,
        "status": "ok"
      },
      {
        "name": "auth-refresh:admin/dev/CO",
        "startedAt": "2026-10-06T07:14:24.598Z",
        "detail": {
          "application": "admin",
          "role": "CO",
          "businessRole": "CO"
        },
        "finishedAt": "2026-10-06T07:14:34.495Z",
        "durationMs": 9897,
        "status": "ok"
      },
      {
        "name": "auth-refresh:admin/dev/BO",
        "startedAt": "2026-10-06T07:14:34.495Z",
        "detail": {
          "application": "admin",
          "role": "BO",
          "businessRole": "BO"
        },
        "finishedAt": "2026-10-06T07:14:44.602Z",
        "durationMs": 10107,
        "status": "ok"
      },
      {
        "name": "playwright",
        "startedAt": "2026-10-06T07:14:44.604Z",
        "detail": {
          "command": "npx playwright test qa/issues/4203/dev --trace retain-on-failure",
          "exitStatus": 0
        },
        "finishedAt": "2026-10-06T07:18:09.394Z",
        "durationMs": 204790,
        "status": "ok"
      }
    ]
  },
  "summary": {
    "status": "PASS",
    "passed": 11,
    "failed": 0,
    "skipped": 0,
    "blocked": 0,
    "flaky": 0,
    "durationMs": 204081
  },
  "rows": [
    {
      "title": "4203/dev/vendor-search-terminal-count.spec.ts / [4203][dev] QA checklist for #4203 / [ADMIN] 가맹점 관리 / 사업자등록번호·주민등록번호·연락처 검색",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 15284,
      "evidence": [
        "artifacts/screenshots/01-ADMIN-vendor-search.png",
        "artifacts/logs/01-ADMIN-vendor-search.md"
      ],
      "screenshots": [
        "artifacts/screenshots/01-ADMIN-vendor-search.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/01-ADMIN-vendor-search.md"
      ],
      "files": [],
      "role": "ADMIN - 가맹점 관리",
      "page": "[ADMIN] 가맹점 관리",
      "checklistItem": "사업자등록번호·주민등록번호·연락처 검색",
      "action": "ADMIN - 가맹점 관리 계정으로 [ADMIN] 가맹점 관리 항목을 확인",
      "expected": "ADMIN - 가맹점 관리 계정에서 [ADMIN] 가맹점 관리 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4203/dev/vendor-search-terminal-count.spec.ts / [4203][dev] QA checklist for #4203 / [TA] 가맹점 관리 / 사업자등록번호·주민등록번호·연락처 검색",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 19953,
      "evidence": [
        "artifacts/screenshots/02-TA-vendor-search.png",
        "artifacts/logs/02-TA-vendor-search.md"
      ],
      "screenshots": [
        "artifacts/screenshots/02-TA-vendor-search.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/02-TA-vendor-search.md"
      ],
      "files": [],
      "role": "TA - 가맹점 관리",
      "page": "[TA] 가맹점 관리",
      "checklistItem": "사업자등록번호·주민등록번호·연락처 검색",
      "action": "TA - 가맹점 관리 계정으로 [TA] 가맹점 관리 항목을 확인",
      "expected": "TA - 가맹점 관리 계정에서 [TA] 가맹점 관리 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4203/dev/vendor-search-terminal-count.spec.ts / [4203][dev] QA checklist for #4203 / [CO] 가맹점 관리 / 사업자등록번호·주민등록번호·연락처 검색",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 14771,
      "evidence": [
        "artifacts/screenshots/03-CO-vendor-search.png",
        "artifacts/logs/03-CO-vendor-search.md"
      ],
      "screenshots": [
        "artifacts/screenshots/03-CO-vendor-search.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/03-CO-vendor-search.md"
      ],
      "files": [],
      "role": "CO - 가맹점 관리",
      "page": "[CO] 가맹점 관리",
      "checklistItem": "사업자등록번호·주민등록번호·연락처 검색",
      "action": "CO - 가맹점 관리 계정으로 [CO] 가맹점 관리 항목을 확인",
      "expected": "CO - 가맹점 관리 계정에서 [CO] 가맹점 관리 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4203/dev/vendor-search-terminal-count.spec.ts / [4203][dev] QA checklist for #4203 / [BO] 가맹점 관리 / 사업자등록번호·주민등록번호·연락처 검색",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 16017,
      "evidence": [
        "artifacts/screenshots/04-BO-vendor-search.png",
        "artifacts/logs/04-BO-vendor-search.md"
      ],
      "screenshots": [
        "artifacts/screenshots/04-BO-vendor-search.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/04-BO-vendor-search.md"
      ],
      "files": [],
      "role": "BO - 가맹점 관리",
      "page": "[BO] 가맹점 관리",
      "checklistItem": "사업자등록번호·주민등록번호·연락처 검색",
      "action": "BO - 가맹점 관리 계정으로 [BO] 가맹점 관리 항목을 확인",
      "expected": "BO - 가맹점 관리 계정에서 [BO] 가맹점 관리 확인 결과가 체크리스트와 일치해야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4203/dev/vendor-search-terminal-count.spec.ts / [4203][dev] QA checklist for #4203 / [ADMIN] 영업점 관리 / 단말기 대수 목록·엑셀",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 22154,
      "evidence": [
        "artifacts/screenshots/05-ADMIN-branch-edit.png",
        "artifacts/screenshots/06-ADMIN-branch-list.png",
        "artifacts/logs/05-ADMIN-branch-terminal.md"
      ],
      "screenshots": [
        "artifacts/screenshots/05-ADMIN-branch-edit.png",
        "artifacts/screenshots/06-ADMIN-branch-list.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/05-ADMIN-branch-terminal.md"
      ],
      "files": [],
      "role": "ADMIN - 영업점 관리",
      "page": "[ADMIN] 영업점 관리",
      "checklistItem": "단말기 대수 목록·엑셀",
      "action": "ADMIN - 영업점 관리 계정으로 [ADMIN] 영업점 관리 엑셀 다운로드를 시도하고 화면 범위와 파일 범위를 비교",
      "expected": "ADMIN - 영업점 관리 계정으로 받은 엑셀 파일은 화면에 보이는 범위와 같아야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4203/dev/vendor-search-terminal-count.spec.ts / [4203][dev] QA checklist for #4203 / [TA] 영업점 관리 / 단말기 대수 목록·엑셀",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 19914,
      "evidence": [
        "artifacts/screenshots/07-TA-branch-edit.png",
        "artifacts/screenshots/08-TA-branch-list.png",
        "artifacts/logs/06-TA-branch-terminal.md"
      ],
      "screenshots": [
        "artifacts/screenshots/07-TA-branch-edit.png",
        "artifacts/screenshots/08-TA-branch-list.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/06-TA-branch-terminal.md"
      ],
      "files": [],
      "role": "TA - 영업점 관리",
      "page": "[TA] 영업점 관리",
      "checklistItem": "단말기 대수 목록·엑셀",
      "action": "TA - 영업점 관리 계정으로 [TA] 영업점 관리 엑셀 다운로드를 시도하고 화면 범위와 파일 범위를 비교",
      "expected": "TA - 영업점 관리 계정으로 받은 엑셀 파일은 화면에 보이는 범위와 같아야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4203/dev/vendor-search-terminal-count.spec.ts / [4203][dev] QA checklist for #4203 / [CO] 영업점 관리 / 단말기 대수 목록·엑셀",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 18203,
      "evidence": [
        "artifacts/screenshots/09-CO-branch-list.png",
        "artifacts/logs/07-CO-branch-terminal.md"
      ],
      "screenshots": [
        "artifacts/screenshots/09-CO-branch-list.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/07-CO-branch-terminal.md"
      ],
      "files": [],
      "role": "CO - 영업점 관리",
      "page": "[CO] 영업점 관리",
      "checklistItem": "단말기 대수 목록·엑셀",
      "action": "CO - 영업점 관리 계정으로 [CO] 영업점 관리 엑셀 다운로드를 시도하고 화면 범위와 파일 범위를 비교",
      "expected": "CO - 영업점 관리 계정으로 받은 엑셀 파일은 화면에 보이는 범위와 같아야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4203/dev/vendor-search-terminal-count.spec.ts / [4203][dev] QA checklist for #4203 / [BO] 영업점 관리 / 단말기 대수 목록·엑셀 권한 차단",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 12521,
      "evidence": [
        "artifacts/screenshots/10-BO-branch-list.png",
        "artifacts/screenshots/11-BO-branch-excel-denied.png",
        "artifacts/logs/08-BO-branch-terminal.md"
      ],
      "screenshots": [
        "artifacts/screenshots/10-BO-branch-list.png",
        "artifacts/screenshots/11-BO-branch-excel-denied.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/08-BO-branch-terminal.md"
      ],
      "files": [],
      "role": "BO - 영업점 관리",
      "page": "[BO] 영업점 관리",
      "checklistItem": "단말기 대수 목록·엑셀 권한 차단",
      "action": "BO - 영업점 관리 계정으로 [BO] 영업점 관리 엑셀 다운로드를 시도하고 화면 범위와 파일 범위를 비교",
      "expected": "BO - 영업점 관리 계정으로 받은 엑셀 파일은 화면에 보이는 범위와 같아야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4203/dev/vendor-search-terminal-count.spec.ts / [4203][dev] QA checklist for #4203 / [ADMIN] 법인 관리 / 단말기 대수 목록·엑셀",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 23752,
      "evidence": [
        "artifacts/screenshots/12-ADMIN-corporation-edit.png",
        "artifacts/screenshots/13-ADMIN-corporation-list.png",
        "artifacts/logs/09-ADMIN-corporation-terminal.md"
      ],
      "screenshots": [
        "artifacts/screenshots/12-ADMIN-corporation-edit.png",
        "artifacts/screenshots/13-ADMIN-corporation-list.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/09-ADMIN-corporation-terminal.md"
      ],
      "files": [],
      "role": "ADMIN - 법인 관리",
      "page": "[ADMIN] 법인 관리",
      "checklistItem": "단말기 대수 목록·엑셀",
      "action": "ADMIN - 법인 관리 계정으로 [ADMIN] 법인 관리 엑셀 다운로드를 시도하고 화면 범위와 파일 범위를 비교",
      "expected": "ADMIN - 법인 관리 계정으로 받은 엑셀 파일은 화면에 보이는 범위와 같아야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4203/dev/vendor-search-terminal-count.spec.ts / [4203][dev] QA checklist for #4203 / [TA] 법인 관리 / 단말기 대수 목록·엑셀",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 21844,
      "evidence": [
        "artifacts/screenshots/14-TA-corporation-edit.png",
        "artifacts/screenshots/15-TA-corporation-list.png",
        "artifacts/logs/10-TA-corporation-terminal.md"
      ],
      "screenshots": [
        "artifacts/screenshots/14-TA-corporation-edit.png",
        "artifacts/screenshots/15-TA-corporation-list.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/10-TA-corporation-terminal.md"
      ],
      "files": [],
      "role": "TA - 법인 관리",
      "page": "[TA] 법인 관리",
      "checklistItem": "단말기 대수 목록·엑셀",
      "action": "TA - 법인 관리 계정으로 [TA] 법인 관리 엑셀 다운로드를 시도하고 화면 범위와 파일 범위를 비교",
      "expected": "TA - 법인 관리 계정으로 받은 엑셀 파일은 화면에 보이는 범위와 같아야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4203/dev/vendor-search-terminal-count.spec.ts / [4203][dev] QA checklist for #4203 / [CO] 법인 관리 / 단말기 대수 목록·엑셀",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 18898,
      "evidence": [
        "artifacts/screenshots/16-CO-corporation-list.png",
        "artifacts/logs/11-CO-corporation-terminal.md"
      ],
      "screenshots": [
        "artifacts/screenshots/16-CO-corporation-list.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/11-CO-corporation-terminal.md"
      ],
      "files": [],
      "role": "CO - 법인 관리",
      "page": "[CO] 법인 관리",
      "checklistItem": "단말기 대수 목록·엑셀",
      "action": "CO - 법인 관리 계정으로 [CO] 법인 관리 엑셀 다운로드를 시도하고 화면 범위와 파일 범위를 비교",
      "expected": "CO - 법인 관리 계정으로 받은 엑셀 파일은 화면에 보이는 범위와 같아야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    }
  ]
}
