{
  "issueId": "4077",
  "environment": "dev",
  "generatedAt": "2026-09-01T15:11:52+09:00",
  "sourceResult": "qa-results redacted from tracked output",
  "timings": {
    "issueId": "4077",
    "environment": "dev",
    "generatedAt": "2026-09-01T05:59:20.839Z",
    "exitStatus": 1,
    "timings": [
      {
        "name": "qa:run",
        "startedAt": "2026-09-01T05:57:33.222Z",
        "detail": {
          "issueId": "4077",
          "environment": "dev",
          "exitStatus": 1
        },
        "finishedAt": "2026-09-01T05:59:20.838Z",
        "durationMs": 107616,
        "status": "failed"
      },
      {
        "name": "prepare-results",
        "startedAt": "2026-09-01T05:57:33.223Z",
        "detail": {},
        "finishedAt": "2026-09-01T05:57:33.233Z",
        "durationMs": 10,
        "status": "ok"
      },
      {
        "name": "auth-refresh",
        "startedAt": "2026-09-01T05:57:33.233Z",
        "detail": {},
        "finishedAt": "2026-09-01T05:57:54.208Z",
        "durationMs": 20975,
        "status": "ok"
      },
      {
        "name": "auth-refresh:admin/dev/ADMIN",
        "startedAt": "2026-09-01T05:57:33.233Z",
        "detail": {
          "application": "admin",
          "role": "ADMIN",
          "businessRole": "ADMIN"
        },
        "finishedAt": "2026-09-01T05:57:43.330Z",
        "durationMs": 10097,
        "status": "ok"
      },
      {
        "name": "auth-refresh:admin/dev/TA",
        "startedAt": "2026-09-01T05:57:33.238Z",
        "detail": {
          "application": "admin",
          "role": "TA",
          "businessRole": "TA"
        },
        "finishedAt": "2026-09-01T05:57:45.854Z",
        "durationMs": 12616,
        "status": "ok"
      },
      {
        "name": "auth-refresh:admin/dev/CO",
        "startedAt": "2026-09-01T05:57:43.330Z",
        "detail": {
          "application": "admin",
          "role": "CO",
          "businessRole": "CO"
        },
        "finishedAt": "2026-09-01T05:57:53.176Z",
        "durationMs": 9846,
        "status": "ok"
      },
      {
        "name": "auth-refresh:admin/dev/BO",
        "startedAt": "2026-09-01T05:57:45.854Z",
        "detail": {
          "application": "admin",
          "role": "BO",
          "businessRole": "BO"
        },
        "finishedAt": "2026-09-01T05:57:54.208Z",
        "durationMs": 8354,
        "status": "ok"
      },
      {
        "name": "playwright",
        "startedAt": "2026-09-01T05:57:54.208Z",
        "detail": {
          "command": "npx playwright test qa/issues/4077/dev --trace on",
          "exitStatus": 1
        },
        "finishedAt": "2026-09-01T05:59:20.838Z",
        "durationMs": 86630,
        "status": "failed"
      }
    ]
  },
  "summary": {
    "status": "BLOCKED",
    "passed": 3,
    "failed": 0,
    "skipped": 0,
    "blocked": 1,
    "flaky": 0,
    "durationMs": 85276
  },
  "rows": [
    {
      "title": "4077/dev/pg-mid-linked-vendors.spec.ts / [4077][dev] [QA] TID/MID 수기·ISP 연동가맹점 표기 검증 / [ADMIN] TID/MID 관리 (결제망 연동 PG MID) / [ADMIN] role / TID/MID 관리 (결제망 연동 PG MID) / 수기, ISP 유형 데이터의 연동가맹점 표기 확인",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 34984,
      "evidence": [
        "artifacts/screenshots/01-TID-MID-관리-결제망-연동-PG-MID-ADMIN-keyin-linked-vendors.png",
        "artifacts/screenshots/02-TID-MID-관리-결제망-연동-PG-MID-ADMIN-isp-linked-vendors.png",
        "artifacts/logs/01-TID-MID-관리-결제망-연동-PG-MID-ADMIN-linked-vendors.md"
      ],
      "screenshots": [
        "artifacts/screenshots/01-TID-MID-관리-결제망-연동-PG-MID-ADMIN-keyin-linked-vendors.png",
        "artifacts/screenshots/02-TID-MID-관리-결제망-연동-PG-MID-ADMIN-isp-linked-vendors.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/01-TID-MID-관리-결제망-연동-PG-MID-ADMIN-linked-vendors.md"
      ],
      "files": [],
      "role": "ADMIN",
      "page": "TID/MID 관리 (결제망 연동 PG MID)",
      "checklistItem": "수기, ISP 유형 데이터의 연동가맹점 표기 확인",
      "action": "ADMIN 기본 계정으로 TID/MID 관리 (결제망 연동 PG MID)에 진입해 정상 수기·ISP MID를 조회하고 API linkedVendors의 가맹점 코드·이름을 연동가맹점 컬럼과 대조",
      "expected": "연동가맹점 컬럼이 표시되고 권한 범위의 수기·ISP MID마다 API linkedVendors의 가맹점 코드와 이름이 빠짐없이 표시되어야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4077/dev/pg-mid-linked-vendors.spec.ts / [4077][dev] [QA] TID/MID 수기·ISP 연동가맹점 표기 검증 / [TA] TID/MID 관리 (결제망 연동 PG MID) / [TA] role / TID/MID 관리 (결제망 연동 PG MID) / 수기, ISP 유형 데이터의 연동가맹점 표기 확인",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 16202,
      "evidence": [
        "artifacts/screenshots/03-TID-MID-관리-결제망-연동-PG-MID-TA-keyin-linked-vendors.png",
        "artifacts/screenshots/04-TID-MID-관리-결제망-연동-PG-MID-TA-isp-linked-vendors.png",
        "artifacts/logs/02-TID-MID-관리-결제망-연동-PG-MID-TA-linked-vendors.md"
      ],
      "screenshots": [
        "artifacts/screenshots/03-TID-MID-관리-결제망-연동-PG-MID-TA-keyin-linked-vendors.png",
        "artifacts/screenshots/04-TID-MID-관리-결제망-연동-PG-MID-TA-isp-linked-vendors.png"
      ],
      "traces": [],
      "logs": [
        "artifacts/logs/02-TID-MID-관리-결제망-연동-PG-MID-TA-linked-vendors.md"
      ],
      "files": [],
      "role": "TA",
      "page": "TID/MID 관리 (결제망 연동 PG MID)",
      "checklistItem": "수기, ISP 유형 데이터의 연동가맹점 표기 확인",
      "action": "TA 기본 계정으로 TID/MID 관리 (결제망 연동 PG MID)에 진입해 정상 수기·ISP MID를 조회하고 API linkedVendors의 가맹점 코드·이름을 연동가맹점 컬럼과 대조",
      "expected": "연동가맹점 컬럼이 표시되고 권한 범위의 수기·ISP MID마다 API linkedVendors의 가맹점 코드와 이름이 빠짐없이 표시되어야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4077/dev/pg-mid-linked-vendors.spec.ts / [4077][dev] [QA] TID/MID 수기·ISP 연동가맹점 표기 검증 / [CO] TID/MID 관리 (결제망 연동 PG MID) / [CO] role / TID/MID 관리 (결제망 연동 PG MID) / 수기, ISP 유형 데이터의 연동가맹점 표기 확인",
      "status": "PASS",
      "statusText": "통과",
      "durationMs": 15174,
      "evidence": [
        "artifacts/screenshots/05-TID-MID-관리-결제망-연동-PG-MID-CO-keyin-linked-vendors.png",
        "artifacts/screenshots/06-TID-MID-관리-결제망-연동-PG-MID-CO-isp-linked-vendors.png",
        "artifacts/logs/03-TID-MID-관리-결제망-연동-PG-MID-CO-linked-vendors.md",
        "artifacts/traces/01-TID-MID-관리-결제망-연동-PG-MID-CO-linked-vendors-trace.zip"
      ],
      "screenshots": [
        "artifacts/screenshots/05-TID-MID-관리-결제망-연동-PG-MID-CO-keyin-linked-vendors.png",
        "artifacts/screenshots/06-TID-MID-관리-결제망-연동-PG-MID-CO-isp-linked-vendors.png"
      ],
      "traces": [
        "artifacts/traces/01-TID-MID-관리-결제망-연동-PG-MID-CO-linked-vendors-trace.zip"
      ],
      "logs": [
        "artifacts/logs/03-TID-MID-관리-결제망-연동-PG-MID-CO-linked-vendors.md"
      ],
      "files": [],
      "role": "CO",
      "page": "TID/MID 관리 (결제망 연동 PG MID)",
      "checklistItem": "수기, ISP 유형 데이터의 연동가맹점 표기 확인",
      "action": "CO 기본 계정으로 TID/MID 관리 (결제망 연동 PG MID)에 진입해 정상 수기·ISP MID를 조회하고 API linkedVendors의 가맹점 코드·이름을 연동가맹점 컬럼과 대조",
      "expected": "연동가맹점 컬럼이 표시되고 권한 범위의 수기·ISP MID마다 API linkedVendors의 가맹점 코드와 이름이 빠짐없이 표시되어야 합니다.",
      "actual": "기대한 동작과 일치했습니다.",
      "error": "",
      "failureCategory": "none",
      "failureCategoryText": "문제 없음",
      "reproduction": {
        "required": false,
        "reason": "정상 확인된 항목입니다.",
        "debugCommand": "",
        "notifyMessage": "",
        "manualSteps": []
      }
    },
    {
      "title": "4077/dev/pg-mid-linked-vendors.spec.ts / [4077][dev] [QA] TID/MID 수기·ISP 연동가맹점 표기 검증 / [BO] TID/MID 관리 (결제망 연동 PG MID) / [BO] role / TID/MID 관리 (결제망 연동 PG MID) / 수기, ISP 유형 데이터의 연동가맹점 표기 확인",
      "status": "BLOCKED",
      "statusText": "확인 불가",
      "durationMs": 17889,
      "evidence": [
        "artifacts/screenshots/07-TID-MID-관리-결제망-연동-PG-MID-BO-keyin-api-403.png",
        "artifacts/screenshots/08-TID-MID-관리-결제망-연동-PG-MID-BO-isp-api-403.png",
        "artifacts/logs/04-TID-MID-관리-결제망-연동-PG-MID-BO-linked-vendors.md",
        "artifacts/traces/02-TID-MID-관리-결제망-연동-PG-MID-BO-linked-vendors-trace.zip",
        "artifacts/logs/05-error-context.md"
      ],
      "screenshots": [
        "artifacts/screenshots/07-TID-MID-관리-결제망-연동-PG-MID-BO-keyin-api-403.png",
        "artifacts/screenshots/08-TID-MID-관리-결제망-연동-PG-MID-BO-isp-api-403.png"
      ],
      "traces": [
        "artifacts/traces/02-TID-MID-관리-결제망-연동-PG-MID-BO-linked-vendors-trace.zip"
      ],
      "logs": [
        "artifacts/logs/04-TID-MID-관리-결제망-연동-PG-MID-BO-linked-vendors.md",
        "artifacts/logs/05-error-context.md"
      ],
      "files": [],
      "role": "BO",
      "page": "TID/MID 관리 (결제망 연동 PG MID)",
      "checklistItem": "수기, ISP 유형 데이터의 연동가맹점 표기 확인",
      "action": "BO 기본 계정으로 TID/MID 관리 (결제망 연동 PG MID)에 진입해 정상 수기·ISP MID를 조회하고 API linkedVendors의 가맹점 코드·이름을 연동가맹점 컬럼과 대조",
      "expected": "연동가맹점 컬럼이 표시되고 권한 범위의 수기·ISP MID마다 API linkedVendors의 가맹점 코드와 이름이 빠짐없이 표시되어야 합니다.",
      "actual": "확인을 끝내지 못했습니다: Error: BLOCKED: BO 조회 범위에서 수기(API 403)·ISP(API 403) 연동가맹점 행 표기를 확인할 수 없습니다.",
      "error": "Error: BLOCKED: BO 조회 범위에서 수기(API 403)·ISP(API 403) 연동가맹점 행 표기를 확인할 수 없습니다.",
      "failureCategory": "permission",
      "failureCategoryText": "권한/접근 제한",
      "reproduction": {
        "required": true,
        "reason": "로그인은 완료됐지만 대상 화면에서 권한 제한 문구가 표시되어 체크리스트 범위를 확인하지 못했습니다.",
        "debugCommand": "npm run qa:debug -- --issue \"4077\" --env \"dev\" --role \"BO\" --case \"수기, ISP 유형 데이터의 연동가맹점 표기 확인\"",
        "notifyMessage": "[QA 확인 요청] BO / TID/MID 관리 (결제망 연동 PG MID) / 수기, ISP 유형 데이터의 연동가맹점 표기 확인: 권한/접근 제한 상태입니다. npm run qa:debug -- --issue \"4077\" --env \"dev\" --role \"BO\" --case \"수기, ISP 유형 데이터의 연동가맹점 표기 확인\" 로 동일 계정과 항목을 다시 열어 확인하세요.",
        "manualSteps": [
          "작업자가 위 명령을 실행하면 대상 계정의 로그인 세션을 새로 만든 뒤 브라우저가 열립니다.",
          "브라우저에서 자동화가 멈춘 화면, 현재 URL, 화면 문구, 다운로드 알림 또는 문서보관함 상태를 확인합니다.",
          "확인한 화면과 필요한 조치 내용을 Redmine/GitHub QA 이슈에 남깁니다."
        ]
      }
    }
  ]
}
