{
 "no": 86,
 "version": "2026-10-08.1",
 "id": "RC-086",
 "role": "CS 답변 담당",
 "task": "고객 문의 답변에 시간이 많이 들어요",
 "deliverables": [
  "정책 기반 답변 2안"
 ],
 "tier": "processor",
 "tierLabel": "역할 전용 계산(서버 실행)",
 "processorTitle": "정책 매칭·SLA 대기열",
 "slots": [
  {
   "key": "d1",
   "name": "정책·FAQ",
   "required": true,
   "fields": [
    {
     "header": "정책 ID",
     "type": "id",
     "required": true,
     "rule": "식별자: 비어 있지 않은 값"
    },
    {
     "header": "문의 유형",
     "type": "text",
     "required": true,
     "rule": "글자"
    },
    {
     "header": "적용 주문 상태",
     "type": "text",
     "required": true,
     "rule": "글자"
    },
    {
     "header": "최대 경과일",
     "type": "number",
     "required": true,
     "rule": "숫자"
    },
    {
     "header": "처리 기준",
     "type": "text",
     "required": true,
     "rule": "글자"
    },
    {
     "header": "에스컬레이션 필요 여부",
     "type": "bool",
     "required": true,
     "rule": "예/아니오"
    },
    {
     "header": "개정일",
     "type": "date",
     "required": true,
     "rule": "날짜 YYYY-MM-DD"
    }
   ],
   "primary": null,
   "dupPolicy": "block",
   "purpose": "핵심 데이터"
  },
  {
   "key": "d2",
   "name": "주문·문의",
   "required": true,
   "fields": [
    {
     "header": "문의 ID",
     "type": "id",
     "required": true,
     "rule": "식별자: 비어 있지 않은 값"
    },
    {
     "header": "접수 일시",
     "type": "datetime",
     "required": true,
     "rule": "일시 YYYY-MM-DD HH:mm"
    },
    {
     "header": "주문일",
     "type": "date",
     "required": true,
     "rule": "날짜 YYYY-MM-DD"
    },
    {
     "header": "상품",
     "type": "text",
     "required": true,
     "rule": "글자"
    },
    {
     "header": "주문 상태",
     "type": "text",
     "required": true,
     "rule": "글자"
    },
    {
     "header": "문의 유형",
     "type": "text",
     "required": true,
     "rule": "글자"
    },
    {
     "header": "문의 내용",
     "type": "text",
     "required": true,
     "rule": "글자"
    }
   ],
   "primary": "문의 ID",
   "dupPolicy": "block",
   "purpose": "보조 데이터(연결하면 관계·근거가 늘어남)"
  },
  {
   "key": "d3",
   "name": "처리 결과(실제)",
   "required": false,
   "fields": [
    {
     "header": "문의 ID",
     "type": "id",
     "required": true,
     "rule": "식별자: 비어 있지 않은 값"
    },
    {
     "header": "첫 응답 일시",
     "type": "datetime",
     "required": true,
     "soft": true,
     "rule": "일시 YYYY-MM-DD HH:mm"
    },
    {
     "header": "처리 완료 일시",
     "type": "datetime",
     "required": true,
     "soft": true,
     "rule": "일시 YYYY-MM-DD HH:mm"
    },
    {
     "header": "처리 결과",
     "type": "enum",
     "required": true,
     "values": [
      "해결",
      "미해결",
      "이관"
     ],
     "soft": true,
     "rule": "허용 값 중 하나: 해결, 미해결, 이관"
    },
    {
     "header": "재문의 여부",
     "type": "bool",
     "required": true,
     "soft": true,
     "rule": "예/아니오"
    },
    {
     "header": "환불 금액",
     "type": "money",
     "required": true,
     "soft": true,
     "rule": "금액: 숫자(쉼표·\"원\" 허용), 통화는 별도 열"
    },
    {
     "header": "통화",
     "type": "text",
     "required": true,
     "soft": true,
     "rule": "글자"
    },
    {
     "header": "적용 정책 ID",
     "type": "id",
     "required": true,
     "soft": true,
     "rule": "식별자: 비어 있지 않은 값"
    },
    {
     "header": "기록 출처",
     "type": "text",
     "required": true,
     "soft": true,
     "rule": "글자"
    }
   ],
   "primary": "문의 ID",
   "dupPolicy": "warn",
   "purpose": "보조 데이터(연결하면 관계·근거가 늘어남)"
  }
 ],
 "relationships": [
  {
   "from": {
    "slot": "d3",
    "field": "문의 ID"
   },
   "to": {
    "slot": "d2",
    "field": "문의 ID"
   }
  }
 ],
 "params": [
  {
   "key": "as_of",
   "label": "기준 시각",
   "type": "datetime",
   "required": true,
   "description": "SLA 계산 기준 시각(YYYY-MM-DD HH:mm). 경과일은 이 날짜와 주문일로 계산합니다."
  },
  {
   "key": "sla_hours",
   "label": "응답 기한(시간)",
   "type": "number",
   "required": false,
   "default": 24,
   "description": "접수 시각 + 이 시간 = 응답 기한"
  },
  {
   "key": "currency",
   "label": "환불 통화",
   "type": "text",
   "required": false,
   "default": "KRW",
   "description": "처리 결과를 연결했을 때 환불 금액 통화가 다르면 지표에서 제외"
  },
  {
   "key": "resolution_sla_hours",
   "label": "처리 기한(시간, 선택)",
   "type": "number",
   "required": false,
   "description": "처리 결과를 연결했을 때 처리 완료 기한 준수를 계산(응답 기한과 별도)"
  }
 ],
 "inputs": [
  {
   "key": "situation",
   "label": "상황 설명",
   "required": false
  },
  {
   "key": "material",
   "label": "붙여넣을 자료",
   "required": false
  }
 ],
 "checks": {
  "server": [
   "정책 ID별 최신 개정만 사용(이전 개정은 대체됨 표시, 같은 개정일 다른 내용은 충돌로 제외), 기준일 이후 개정은 미적용",
   "문의 유형·적용 주문 상태·최대 경과일(주문일 기준)로 정책 매칭",
   "해당 정책 없음·기간 경과·복수 정책·정책상 에스컬레이션 필요 → 담당자 대기열",
   "응답 기한 = 접수 시각 + SLA 시간, 남은 시간·초과 표시",
   "(선택) 실제 처리 결과: 1차 해결률·재문의율·이관율, 응답 기한 준수(첫 응답 일시 기준)와 처리 기한 준수(처리 완료 기준)를 따로, 처리·첫 응답 시간 중앙값·환불 합계, 적용 정책과 매칭 정책 불일치 표시, 출처·형식 문제가 있는 기록은 지표에서 제외"
  ],
  "client": [
   "정책 문구에 근거한 답변 초안(정책 ID 인용)"
  ],
  "professional": [
   "예외 처리·보상 결정(담당자)",
   "고객 발송(사용자)"
  ]
 },
 "outputs": [
  {
   "key": "replies",
   "label": "정책 근거 답변 2안(정책 ID)",
   "kind": "table",
   "columns": [
    "문의 ID",
    "답변 초안",
    "정책 ID"
   ],
   "min": 1,
   "evidence": "required",
   "ref": {
    "column": "문의 ID",
    "set": "matched"
   }
  },
  {
   "key": "escalation_note",
   "label": "에스컬레이션 표시",
   "kind": "text",
   "evidence": "required"
  }
 ],
 "acceptance": [
  "판단 기준 반영: 정책 조건 충족",
  "판단 기준 반영: 개정일 최신",
  "문의 날짜가 정책 기한 안인지 밖인지 먼저 계산합니다",
  "정책에 없는 보상이나 예외를 약속하는 문장이 없는지 확인합니다",
  "기한을 넘긴 경우 예외 허용 여부는 [운영자 결정 필요]로 남깁니다",
  "모든 결과 항목에 근거 source_id(이 작업의 스냅샷 안) 표시",
  "확인 필요 사항과 다음 행동을 분리"
 ],
 "handoff": {
  "reviewer": "요청자 본인",
  "note": "요청자가 검토·승인합니다. 승인은 사용자의 검토 기록이며 전문가 승인이 아닙니다."
 },
 "followup": [
  {
   "id": "review",
   "label": "답변 초안 검토",
   "owner": "CS 담당자"
  },
  {
   "id": "escalate",
   "label": "에스컬레이션 건 담당자 배정",
   "owner": "CS 담당자"
  },
  {
   "id": "send",
   "label": "고객 응답(사용자가 직접)",
   "owner": "CS 담당자"
  },
  {
   "id": "policy",
   "label": "정책 공백 보완",
   "owner": "정책 담당자"
  }
 ],
 "sampleNotice": "예시 데이터입니다. 실존하는 사람·회사·거래가 아니며 체험과 형식 확인용입니다.",
 "sample_params": {
  "as_of": "2026-10-08 12:00",
  "sla_hours": 24
 }
}
