[{"data":1,"prerenderedAt":3088},["ShallowReactive",2],{"doc:\u002Fstandard-answer-curation":3},{"id":4,"title":5,"body":6,"description":1072,"extension":3081,"meta":3082,"navigation":3083,"path":3084,"seo":3085,"stem":3086,"__hash__":3087},"docs\u002FSTANDARD-ANSWER-CURATION.md","표준답변 수집·큐레이션 강화 — 도메인 기획·정책 정본",{"type":7,"value":8,"toc":3032},"minimark",[9,13,60,63,68,73,88,117,124,128,185,192,324,336,338,342,349,358,477,545,591,599,627,630,686,726,755,777,832,836,885,887,891,895,902,918,980,984,1059,1063,1073,1191,1195,1245,1247,1251,1255,1262,1267,1326,1335,1353,1357,1360,1429,1433,1453,1455,1459,1462,1478,1484,1488,1535,1539,1572,1576,1605,1609,1630,1632,1636,1643,1785,1792,1799,1801,1805,1809,1911,1915,2116,2118,2122,2241,2250,2252,2256,2263,2267,2321,2326,2504,2507,2537,2567,2571,2735,2739,2808,2812,2830,2834,2843,2845,2849,2994,2996,3000],[10,11,5],"h1",{"id":12},"표준답변-수집큐레이션-강화-도메인-기획정책-정본",[14,15,16,30,53],"blockquote",{},[17,18,19,20,24,25,29],"p",{},"최초 작성 — 2026-06-17 · 기획자(planner) · ",[21,22,23],"code",{},"malgn-helper-admin"," 표준답변 자산의 ",[26,27,28],"strong",{},"수집·분류·승인·중복·선순환·KPI","를 정의하는 정본",[17,31,32,33,38,39,43,44,48,49],{},"상위 정본: ",[34,35,37],"a",{"href":36},".\u002FREQUIREMENTS","REQUIREMENTS.md"," FR-1\u002FFR-5\u002FFR-7 · ",[34,40,42],{"href":41},".\u002FADMIN-PLAN","ADMIN-PLAN.md"," §4-3 · ",[34,45,47],{"href":46},".\u002FHP-SCHEMA","HP-SCHEMA.md"," §3-3 · ",[34,50,52],{"href":51},".\u002FROADMAP","ROADMAP.md",[17,54,55,56,59],{},"이 문서는 위 정본들과 충돌 시 ",[26,57,58],{},"표준답변 큐레이션 영역에 한해 정본","이다. 충돌 항목은 §8(정합·현행화)에 명시하고 해당 문서를 갱신하도록 넘긴다.",[61,62],"hr",{},[64,65,67],"h2",{"id":66},"_1-개요","1. 개요",[69,70,72],"h3",{"id":71},"_1-1-목적","1-1. 목적",[17,74,75,76,79,80,83,84,87],{},"표준답변(",[21,77,78],{},"hp_standard_answer",")은 ",[26,81,82],{},"챗봇 응답의 1순위 소스","(FR-1)이자 P1 상담사 보조의 핵심 자산이다. 현재 테이블은 수집(저장) 기능만 있고 ",[26,85,86],{},"분류·승인 단계·중복 감지가 없어"," 다음 문제가 있다.",[89,90,91,103,114],"ul",{},[92,93,94,95,98,99,102],"li",{},"분류가 없어 ",[21,96,97],{},"scope\u002Ftopic\u002Fservice_tag"," 기반 매칭(FR-1 AC-1.3)이 불가능 — 같은 ",[21,100,101],{},"topic=환불","이라도 서비스별로 답변이 다른데 구분 못 함.",[92,104,105,106,109,110,113],{},"승인 단계가 없어 ",[21,107,108],{},"approved","만 응답에 쓴다(FR-1 AC-1.2)는 규칙을 실행할 수 없음 — 현재 ",[21,111,112],{},"status"," 1\u002F-1뿐.",[92,115,116],{},"중복 감지가 없어 유사 질문 표준답변이 난립 → 일관성(NFR-2) 위협.",[17,118,119,120,123],{},"이 문서는 위 3대 공백을 메우는 ",[26,121,122],{},"분류 체계 · 승인 워크플로 · 중복\u002F병합 · 수집 선순환 · 커버리지 KPI","를 정의하고, 실제 구현(DDL·코드·인덱스)을 dba\u002Fapi\u002Fadmin\u002Fpms에 넘길 요구사항으로 분해한다.",[69,125,127],{"id":126},"_1-2-범위","1-2. 범위",[129,130,131,144],"table",{},[132,133,134],"thead",{},[135,136,137,141],"tr",{},[138,139,140],"th",{},"포함",[138,142,143],{},"제외",[145,146,147,158,169,177],"tbody",{},[135,148,149,155],{},[150,151,152,154],"td",{},[21,153,78],{}," 분류·승인·중복 컬럼 정책",[150,156,157],{},"챗봇 응답 파이프라인 자체(FR-1 매칭 알고리즘 상세)",[135,159,160,163],{},[150,161,162],{},"수집 진입점 4종의 데이터 흐름",[150,164,165,166,168],{},"OpenSearch 인덱싱 설계(자료 측, ",[34,167,42],{"href":41}," §4-2)",[135,170,171,174],{},[150,172,173],{},"미커버 질문→후보 전환, 채택 피드백 선순환",[150,175,176],{},"챗 로그·에스컬레이션 테이블 자체 스펙(Phase 2 §4-5·4-6)",[135,178,179,182],{},[150,180,181],{},"커버리지 KPI 정의",[150,183,184],{},"실제 DDL\u002F마이그레이션 작성(dba 후속)",[69,186,188,189,191],{"id":187},"_1-3-권한-역할별-admin-planmd-2-1-준수","1-3. 권한 (역할별, ",[34,190,42],{"href":41}," §2-1 준수)",[129,193,194,217],{},[132,195,196],{},[135,197,198,201,207,212],{},[138,199,200],{},"액션",[138,202,204],{"align":203},"center",[21,205,206],{},"admin",[138,208,209],{"align":203},[21,210,211],{},"developer",[138,213,214],{"align":203},[21,215,216],{},"agent",[145,218,219,235,246,262,284,298,310],{},[135,220,221,228,231,233],{},[150,222,223,224,227],{},"표준답변 제안(작성·",[21,225,226],{},"draft"," 저장)",[150,229,230],{"align":203},"✅",[150,232,230],{"align":203},[150,234,230],{"align":203},[135,236,237,240,242,244],{},[150,238,239],{},"분류 지정(scope\u002Ftopic\u002Fservice\u002Ftags)",[150,241,230],{"align":203},[150,243,230],{"align":203},[150,245,230],{"align":203},[135,247,248,255,257,259],{},[150,249,250,251,254],{},"검토 착수(",[21,252,253],{},"draft→reviewing",")",[150,256,230],{"align":203},[150,258,230],{"align":203},[150,260,261],{"align":203},"✅(자기 제안)",[135,263,264,277,279,281],{},[150,265,266,269,270,273,274,254],{},[26,267,268],{},"승인\u002F반려","(",[21,271,272],{},"→approved","\u002F",[21,275,276],{},"→rejected",[150,278,230],{"align":203},[150,280,230],{"align":203},[150,282,283],{"align":203},"❌",[135,285,286,292,294,296],{},[150,287,288,289,254],{},"보관(",[21,290,291],{},"approved→archived",[150,293,230],{"align":203},[150,295,230],{"align":203},[150,297,283],{"align":203},[135,299,300,303,305,307],{},[150,301,302],{},"병합(중복 통합)",[150,304,230],{"align":203},[150,306,230],{"align":203},[150,308,309],{"align":203},"❌(제안만)",[135,311,312,318,320,322],{},[150,313,314,315,254],{},"영구 삭제(",[21,316,317],{},"status=-1",[150,319,230],{"align":203},[150,321,230],{"align":203},[150,323,283],{"align":203},[14,325,326],{},[17,327,328,329,332,333,335],{},"핵심 분리: ",[26,330,331],{},"agent는 제안·분류까지, 승인은 admin\u002Fdeveloper","(FR-5 AC-5.1). 챗봇은 ",[21,334,108],{},"만 사용(FR-1 AC-1.2).",[61,337],{},[64,339,341],{"id":340},"_2-분류-체계","2. 분류 체계",[69,343,345,346,348],{"id":344},"_2-1-분류-축-정본-admin-planmd-4-3-1-계승","2-1. 분류 축 (정본 — ",[34,347,42],{"href":41}," §4-3-1 계승)",[17,350,75,351,353,354,357],{},[21,352,78],{},", Q&A)은 ",[26,355,356],{},"2축(scope·topic) + service + 자유 태그","로 분류한다.",[129,359,360,376],{},[132,361,362],{},[135,363,364,367,370,373],{},[138,365,366],{},"축",[138,368,369],{},"컬럼(목표)",[138,371,372],{},"카탈로그",[138,374,375],{},"의미",[145,377,378,403,432,459],{},[135,379,380,385,390,393],{},[150,381,382],{},[26,383,384],{},"scope",[150,386,387],{},[21,388,389],{},"scope ENUM('common','service')",[150,391,392],{},"(고정)",[150,394,395,398,399,402],{},[21,396,397],{},"common","=어떤 솔루션이든 동일 \u002F ",[21,400,401],{},"service","=특정 솔루션 전용",[135,404,405,410,419,425],{},[150,406,407],{},[26,408,409],{},"topic",[150,411,412,415,416,254],{},[21,413,414],{},"topic_id INT"," (FK→",[21,417,418],{},"hp_topic.id",[150,420,421,424],{},[21,422,423],{},"hp_topic","(24토픽)",[150,426,427,428],{},"주제 — 검색·필터·자동 추천 키. 정본: ",[34,429,431],{"href":430},".\u002FTOPIC-CATALOG","TOPIC-CATALOG.md",[135,433,434,438,446,452],{},[150,435,436],{},[26,437,401],{},[150,439,440,415,443,254],{},[21,441,442],{},"service_id INT NULL",[21,444,445],{},"hp_service.id",[150,447,448,451],{},[21,449,450],{},"hp_service","(7서비스)",[150,453,454,455,458],{},"어느 서비스(LMS 패밀리)의 답변인지. ",[21,456,457],{},"scope=common","이면 NULL",[135,460,461,466,471,474],{},[150,462,463],{},[26,464,465],{},"tags",[150,467,468],{},[21,469,470],{},"tags JSON DEFAULT '[]'",[150,472,473],{},"(자유)",[150,475,476],{},"운영자 큐레이션 자유 태그",[14,478,479,520],{},[17,480,481,484,485,488,489,492,493,497,498,501,502,505,506,508,509,273,512,515,516,519],{},[26,482,483],{},"안내글은 분류 축이 아니라 별도 테이블"," — 직원 작성 공지·안내(\"표준 안내답변\")는 ",[21,486,487],{},"hp_standard_answer.answer_type"," 컬럼이 아니라 **별도 테이블 ",[21,490,491],{},"hp_announce","**로 관리한다(2026-06-18 결정, ",[34,494,496],{"href":495},".\u002FPMS-INQUIRY-HARVEST","PMS-INQUIRY-HARVEST.md"," §5-3). 이전 ",[21,499,500],{},"answer_type ENUM('qa','announce')"," 권고는 ",[26,503,504],{},"폐기",". ",[21,507,491],{},"는 위 분류 축(scope\u002Ftopic_id\u002Fservice_id\u002Ftags)과 승인 워크플로(§3)를 공유하되 질문 컬럼이 없고 유효기간(",[21,510,511],{},"valid_from",[21,513,514],{},"valid_to",")을 가진다. admin에서 ",[26,517,518],{},"별도 메뉴","로 분리한다(§9-C).",[17,521,522,525,526,528,529,531,532,535,536,528,538,540,541,544],{},[26,523,524],{},"카탈로그 정본",": ",[21,527,450],{}," = ",[34,530,496],{"href":495}," §4-2의 ",[26,533,534],{},"7서비스","(OTT·범용·글로벌·공공·유지보수·환급·독립). ",[21,537,423],{},[34,539,431],{"href":430},"의 ",[26,542,543],{},"24토픽","(common 20 + service 4). 002 시드(서비스 6종·토픽 10종)는 목업 — 재시드 대상.",[14,546,547],{},[17,548,549,560,561,564,565,273,567,569,570,579,580,583,584,590],{},[26,550,551,552,555,556,559],{},"결정 — FK는 ",[21,553,554],{},"slug","가 아니라 ",[21,557,558],{},"id","로 연계한다."," ADMIN-PLAN §4-3-4는 ",[21,562,563],{},"topic VARCHAR(50)","(slug 매칭)을 제안했으나, 002 마이그레이션이 ",[21,566,423],{},[21,568,450],{},"를 ",[26,571,572,574,575,578],{},[21,573,558],{}," PK + ",[21,576,577],{},"(scope,slug)"," UNIQUE","로 이미 실체화했다(",[21,581,582],{},"migrations\u002F002_admin_console.sql","). slug는 운영자가 정정할 수 있어(catalog.vue 편집) 불안정하므로 ",[26,585,586,589],{},[21,587,588],{},"*_id"," FK를 정본","으로 한다. 단 FK 제약은 걸지 않는다(HP-SCHEMA §1 원칙 — 애플리케이션 레벨 검증). 응답·로그에는 slug를 조인해 노출.",[69,592,594,595,598],{"id":593},"_2-2-카탈로그-정합-정본-확정-2026-06-18","2-2. 카탈로그 정합 — ",[26,596,597],{},"정본 확정"," (2026-06-18)",[14,600,601],{},[17,602,603,606,607,609,610,540,612,614,615,617,618,531,620,622,623,626],{},[26,604,605],{},"확정"," — ",[21,608,423],{}," 토픽 정본은 ",[34,611,431],{"href":430},[26,613,543],{},"(common 20 + service 4)으로 확정됐다(2022~2026 PMS 문의 실데이터 기반). ",[21,616,450],{},"는 ",[34,619,496],{"href":495},[26,621,534],{},". 아래 002\u002FADMIN-PLAN 시드 비교는 ",[26,624,625],{},"재시드 전 이력(historical)"," 으로 보존하며, 정본은 위 두 문서다. T1·T7 해소(§7-2).",[17,628,629],{},"002 마이그레이션의 실제 시드와 ADMIN-PLAN §4-3-1 문서가 달랐다(아래는 재시드 대상 이력).",[17,631,632,637,638,641,642,645,646,649,650,653,654,657,658,661,662,665,666,669,670,674,675,678,679,682,683],{},[26,633,634,636],{},[21,635,423],{}," 시드 (002 실데이터)"," — CS 도메인 중심:\n",[21,639,640],{},"login","(로그인\u002F계정) · ",[21,643,644],{},"enrollment","(수강신청) · ",[21,647,648],{},"payment","(결제\u002F비용) · ",[21,651,652],{},"refund","(환불\u002F취소) · ",[21,655,656],{},"certificate","(수료증\u002F자격증) · ",[21,659,660],{},"content","(콘텐츠\u002F학습) · ",[21,663,664],{},"schedule","(일정\u002F기간) · ",[21,667,668],{},"technical","(시스템 오류) ",[671,672,673],"span",{},"이상 common"," · ",[21,676,677],{},"step","(STEP 전용) · ",[21,680,681],{},"lms-global","(글로벌 LMS) ",[671,684,685],{},"이상 service",[17,687,688,691,692,273,695,273,698,273,701,273,704,706,707,674,709,273,712,273,715,273,718,273,721,706,724],{},[26,689,690],{},"ADMIN-PLAN §4-3-1 문서 토픽"," — IT 일반 중심:\n",[21,693,694],{},"domain",[21,696,697],{},"seo",[21,699,700],{},"it-general",[21,702,703],{},"account",[21,705,648],{}," ",[671,708,397],{},[21,710,711],{},"feature",[21,713,714],{},"legal",[21,716,717],{},"policy",[21,719,720],{},"pricing",[21,722,723],{},"integration",[671,725,401],{},[17,727,728,732,733,735,736,739,740,743,744,747,748,751,752,754],{},[26,729,730,636],{},[21,731,450],{},":\n",[21,734,677],{},"(STEP 온라인) · ",[21,737,738],{},"lms-general","(범용 LMS) · ",[21,741,742],{},"lms-mixed","(혼합 LMS) · ",[21,745,746],{},"lms-private","(민간 인증) · ",[21,749,750],{},"lms-public-security","(공공 보안) · ",[21,753,681],{},"(글로벌)",[17,756,757,760,761,273,763,273,766,273,769,273,772,273,775],{},[26,758,759],{},"ADMIN-PLAN §4-3-1 문서 서비스"," (LMS 패밀리 6종):\n",[21,762,738],{},[21,764,765],{},"lms-refund",[21,767,768],{},"lms-public",[21,770,771],{},"lms-security",[21,773,774],{},"lms-hybrid",[21,776,681],{},[14,778,779,793,804],{},[17,780,781,784,785,788,789,792],{},[26,782,783],{},"기획 판단",": 실데이터(002)는 ",[26,786,787],{},"실제 CS 문의 도메인","(로그인·수강·환불·수료증)에 맞춰 시드된 것으로, ",[26,790,791],{},"고객 문의 분류에 더 적합","하다(PROJECT-INQUIRY-ANALYSIS의 실제 문의 분포와 정합 검토 필요). ADMIN-PLAN 문서값은 초기 기획 시 IT\u002F법령 관점 예시였다.",[17,794,795,803],{},[26,796,797,798,273,800,802],{},"권고 — ",[21,799,423],{},[21,801,450],{}," 정본은 \"002 시드 + 운영자 catalog.vue 편집본\"으로 하고, ADMIN-PLAN §4-3-1 표를 002 시드값으로 현행화","한다. 단 다음은 보완 검토:",[89,805,806,826],{},[92,807,808,809,811,812,814,815,273,817,273,819,821,822,825],{},"환급 LMS(",[21,810,765],{},")·혼합(",[21,813,774],{},")은 ADMIN-PLAN의 핵심 도메인 근거(고용보험법·복합 룰)였는데 002 시드엔 ",[21,816,742],{},[21,818,746],{},[21,820,750],{},"로 재명명됨 → ",[26,823,824],{},"명칭 통일 결정 필요","(§8-A).",[92,827,828,829,831],{},"법령·약관(",[21,830,714],{},") 토픽은 002 시드에 누락 — 서비스별 법령 답변 분류가 필요하면 추가.",[69,833,835],{"id":834},"_2-3-매칭-규칙-fr-1-ac-13-챗봇추천-시-적용-phase-2-동작","2-3. 매칭 규칙 (FR-1 AC-1.3 — 챗봇\u002F추천 시 적용, Phase 2 동작)",[837,838,839,848,858,863,873,882],"ol",{},[92,840,841,842,844,845,847],{},"질문 → LLM이 ",[21,843,384],{}," + ",[21,846,409],{}," 추론",[92,849,850,853,854,857],{},[21,851,852],{},"scope=service","이면 사용자가 쓰는 서비스(",[21,855,856],{},"service_id",")로 필터",[92,859,860,862],{},[21,861,457],{},"이면 service 무관 매칭",[92,864,865,866,868,869,872],{},"동점 시 ",[21,867,465],{}," 매치 수 + ",[21,870,871],{},"usage_count","(채택수) 우선",[92,874,875,881],{},[26,876,877,880],{},[21,878,879],{},"approval_status=approved","만 후보","(FR-1 AC-1.2)",[92,883,884],{},"매칭 N개를 LLM 컨텍스트에 첨부 + 출처 인용(FR-2)",[61,886],{},[64,888,890],{"id":889},"_3-상태-모델전이-승인-워크플로","3. 상태 모델·전이 (승인 워크플로)",[69,892,894],{"id":893},"_3-1-현재-목표","3-1. 현재 → 목표",[17,896,897,898,901],{},"현재 ",[21,899,900],{},"hp_standard_answer.status","는 **1(활성)\u002F-1(삭제)**뿐이다. 이걸 승인 단계로 쓸 수 없다(저장 즉시 활성=무검증 답변이 챗봇에 노출 위험).",[17,903,904,914,915,917],{},[26,905,906,907,909,910,913],{},"결정 — ",[21,908,112],{},"(soft-delete)와 ",[21,911,912],{},"approval_status","(승인 단계)를 분리","한다. HP-SCHEMA §1-2의 \"모든 테이블 ",[21,916,112],{}," 1\u002F-1 통일\" 원칙을 유지하면서, 승인은 별도 컬럼으로.",[129,919,920,933],{},[132,921,922],{},[135,923,924,927,930],{},[138,925,926],{},"컬럼",[138,928,929],{},"값",[138,931,932],{},"책임",[145,934,935,955],{},[135,936,937,942,952],{},[150,938,939,941],{},[21,940,112],{}," TINYINT",[150,943,944,947,948,951],{},[21,945,946],{},"1","=활성행 \u002F ",[21,949,950],{},"-1","=삭제(soft)",[150,953,954],{},"행 존재 여부 (전 테이블 공통)",[135,956,957,962,977],{},[150,958,959,961],{},[21,960,912],{}," ENUM",[150,963,964,273,966,273,969,273,971,273,974],{},[21,965,226],{},[21,967,968],{},"reviewing",[21,970,108],{},[21,972,973],{},"rejected",[21,975,976],{},"archived",[150,978,979],{},"큐레이션 라이프사이클",[69,981,983],{"id":982},"_3-2-상태-정의","3-2. 상태 정의",[129,985,986,998],{},[132,987,988],{},[135,989,990,993,995],{},[138,991,992],{},"상태",[138,994,375],{},[138,996,997],{},"챗봇 사용",[145,999,1000,1011,1022,1034,1048],{},[135,1001,1002,1006,1009],{},[150,1003,1004],{},[21,1005,226],{},[150,1007,1008],{},"초안 — 제안·후보 저장 직후 기본값",[150,1010,283],{},[135,1012,1013,1017,1020],{},[150,1014,1015],{},[21,1016,968],{},[150,1018,1019],{},"검토 착수 — 담당자가 검수 중",[150,1021,283],{},[135,1023,1024,1028,1031],{},[150,1025,1026],{},[21,1027,108],{},[150,1029,1030],{},"승인 — 검증 완료",[150,1032,1033],{},"✅ (1순위 소스)",[135,1035,1036,1040,1046],{},[150,1037,1038],{},[21,1039,973],{},[150,1041,1042,1043,1045],{},"반려 — 부적합(사유 기록). 재작업하면 ",[21,1044,226],{},"로",[150,1047,283],{},[135,1049,1050,1054,1057],{},[150,1051,1052],{},[21,1053,976],{},[150,1055,1056],{},"보관 — 과거 승인본이 신규본으로 대체\u002F노후화",[150,1058,283],{},[69,1060,1062],{"id":1061},"_3-3-전이-다이어그램","3-3. 전이 다이어그램",[1064,1065,1070],"pre",{"className":1066,"code":1068,"language":1069},[1067],"language-text","                ┌──────────────────────────────────────────┐\n                │                                          │\n  [신규 제안]   ▼                                          │ (재작업)\n   ────────► draft ──(검토 착수)──► reviewing ──(승인)──► approved\n                │  ▲                    │                    │\n                │  └──(반려·재작업)──────┤                    │ (대체·노후)\n                │                       │                    ▼\n                └──────(반려)──────────►└──► rejected     archived\n                                                              │\n                                          (복원: archived → reviewing)\n","text",[21,1071,1068],{"__ignoreMap":1072},"",[129,1074,1075,1088],{},[132,1076,1077],{},[135,1078,1079,1082,1085],{},[138,1080,1081],{},"전이",[138,1083,1084],{},"트리거",[138,1086,1087],{},"권한",[145,1089,1090,1103,1115,1128,1143,1156,1167,1179],{},[135,1091,1092,1097,1100],{},[150,1093,1094],{},[21,1095,1096],{},"(신규)→draft",[150,1098,1099],{},"제안 저장(POST)",[150,1101,1102],{},"agent\u002Fdeveloper\u002Fadmin",[135,1104,1105,1109,1112],{},[150,1106,1107],{},[21,1108,253],{},[150,1110,1111],{},"\"검토 착수\"",[150,1113,1114],{},"agent(자기 제안)\u002Fdeveloper\u002Fadmin",[135,1116,1117,1122,1125],{},[150,1118,1119],{},[21,1120,1121],{},"reviewing→approved",[150,1123,1124],{},"\"승인\"",[150,1126,1127],{},"developer\u002Fadmin",[135,1129,1130,1138,1141],{},[150,1131,1132,674,1135],{},[21,1133,1134],{},"reviewing→rejected",[21,1136,1137],{},"draft→rejected",[150,1139,1140],{},"\"반려\"(사유 필수)",[150,1142,1127],{},[135,1144,1145,1150,1153],{},[150,1146,1147],{},[21,1148,1149],{},"rejected→draft",[150,1151,1152],{},"\"재작업\"",[150,1154,1155],{},"제안자\u002Fdeveloper\u002Fadmin",[135,1157,1158,1162,1165],{},[150,1159,1160],{},[21,1161,291],{},[150,1163,1164],{},"\"보관\"(대체·노후)",[150,1166,1127],{},[135,1168,1169,1174,1177],{},[150,1170,1171],{},[21,1172,1173],{},"archived→reviewing",[150,1175,1176],{},"\"복원\"",[150,1178,1127],{},[135,1180,1181,1186,1189],{},[150,1182,1183],{},[21,1184,1185],{},"*→status=-1",[150,1187,1188],{},"\"영구 삭제\"(soft)",[150,1190,1127],{},[69,1192,1194],{"id":1193},"_3-4-정책-결정","3-4. 정책 결정",[89,1196,1197,1206,1215],{},[92,1198,1199,1205],{},[26,1200,1201,1202,1204],{},"PMS·suggestions 경유 저장은 항상 ",[21,1203,226],{},"로 진입."," 무검증 답변이 챗봇에 직행하지 않게 함(FR-1 AC-1.2 보장).",[92,1207,1208,269,1211,1214],{},[26,1209,1210],{},"반려는 사유 필수",[21,1212,1213],{},"rejection_reason",") — 재작업 신호.",[92,1216,1217,1222,1223,1225,1226,1229,1230,1232,1233,1235,1236,1244],{},[26,1218,1219,1221],{},[21,1220,108],{}," 1건 수정 시",": 경미한 오타는 ",[21,1224,108],{}," 유지 + ",[21,1227,1228],{},"updated_at"," 갱신. 의미 변경은 새 row append(HP-SCHEMA §1-6 버전 보존 원칙)로 신규본을 ",[21,1231,968],{},"에 두고 구본을 ",[21,1234,976],{}," 권고. → ",[26,1237,1238,1239,1243],{},"세부 규칙은 ",[34,1240,1242],{"href":1241},".\u002FSTANDARD-ANSWER-QUALITY#6-approved-%EC%88%98%EC%A0%95%EB%B2%84%EC%A0%84-%EA%B7%9C%EC%B9%99","STANDARD-ANSWER-QUALITY.md §6","으로 해소 (2026-06-23)",".",[61,1246],{},[64,1248,1250],{"id":1249},"_4-중복-감지병합","4. 중복 감지·병합",[69,1252,1254],{"id":1253},"_4-1-저장-전-유사-탐지","4-1. 저장 전 유사 탐지",[17,1256,1257,1258,1261],{},"표준답변 저장(제안) 시 ",[26,1259,1260],{},"질문 유사도","로 기존 항목과 중복을 탐지해 운영자에게 경고한다. 난립을 막아 일관성(NFR-2)을 지킨다.",[17,1263,1264],{},[26,1265,1266],{},"탐지 기준 (단계적 도입)",[129,1268,1269,1285],{},[132,1270,1271],{},[135,1272,1273,1276,1279,1282],{},[138,1274,1275],{},"단계",[138,1277,1278],{},"방법",[138,1280,1281],{},"임계",[138,1283,1284],{},"적용 시점",[145,1286,1287,1310],{},[135,1288,1289,1294,1300,1307],{},[150,1290,1291],{},[26,1292,1293],{},"P1 (MVP)",[150,1295,1296,1299],{},[21,1297,1298],{},"question"," LIKE\u002F정규화 토큰 겹침 (한국어 짧은 키워드)",[150,1301,1302,1303,1306],{},"토큰 자카드 ≥ 0.6 또는 동일 ",[21,1304,1305],{},"topic_id","+키워드 다수 일치",[150,1308,1309],{},"검색 인프라(OpenSearch) 전",[135,1311,1312,1317,1320,1323],{},[150,1313,1314],{},[26,1315,1316],{},"P1 후반",[150,1318,1319],{},"임베딩 cosine 유사도 (자료 인덱싱과 동일 임베딩 파이프라인 재사용)",[150,1321,1322],{},"cosine ≥ 0.85 → \"중복 가능\" 경고 \u002F ≥ 0.92 → 병합 강력 권고",[150,1324,1325],{},"OpenSearch 셋업 후",[14,1327,1328],{},[17,1329,1330,1331,1334],{},"임계값(0.85\u002F0.92)은 초기 가정 — 운영 데이터로 튜닝(§7 미정). 미커버 질문 클러스터링 임계(cosine ≥ 0.8, ADMIN-PLAN §4-5-1)와 ",[26,1332,1333],{},"별개 값","임에 유의(중복 판정은 더 엄격).",[17,1336,1337,1340,1341,1344,1345,1348,1349,1352],{},[26,1338,1339],{},"동작",": 저장 직전 ",[21,1342,1343],{},"POST \u002Fstandard-answers\u002Fcheck-duplicate","(또는 저장 응답에 ",[21,1346,1347],{},"similar[]"," 동봉) → 유사 후보 top N(점수·label·scope\u002Ftopic) 표시 → 운영자가 ",[26,1350,1351],{},"(a) 그래도 신규 저장 \u002F (b) 기존 항목 편집으로 이동 \u002F (c) 병합"," 선택.",[69,1354,1356],{"id":1355},"_4-2-병합-정책","4-2. 병합 정책",[17,1358,1359],{},"두 표준답변을 하나로 통합할 때:",[89,1361,1362,1374,1386,1423],{},[92,1363,1364,1367,1368,1370,1371,1373],{},[26,1365,1366],{},"생존 row(primary)",": 운영자가 선택(보통 ",[21,1369,108],{},"·",[21,1372,871],{}," 높은 쪽).",[92,1375,1376,525,1379,1381,1382,1385],{},[26,1377,1378],{},"흡수 row(secondary)",[21,1380,317],{},"(soft delete) + ",[21,1383,1384],{},"merged_into_id","에 primary id 기록(역추적·되돌리기).",[92,1387,1388,732,1391],{},[26,1389,1390],{},"보존 항목",[89,1392,1393,1398,1412,1417],{},[92,1394,1395,1397],{},[21,1396,871],{},"(채택수): primary += secondary (합산) — 채택 신호 손실 방지.",[92,1399,1400,1401,1370,1404,1407,1408,1411],{},"출처(",[21,1402,1403],{},"source_post_id",[21,1405,1406],{},"source_axis","): primary가 NULL이면 secondary 값 승계. 다중 출처는 ",[21,1409,1410],{},"source_refs JSON","에 누적(미정 — §7).",[92,1413,1414,1416],{},[21,1415,465],{},": 합집합.",[92,1418,1419,1422],{},[21,1420,1421],{},"last_used_at",": 더 최근 값.",[92,1424,1425,1428],{},[26,1426,1427],{},"병합은 developer\u002Fadmin만."," agent는 중복 의심 \"병합 제안\"만(메모) — Phase 2 정교화.",[69,1430,1432],{"id":1431},"_4-3-미커버-질문-클러스터링과의-관계","4-3. 미커버 질문 클러스터링과의 관계",[89,1434,1435,1446],{},[92,1436,1437,1438,1441,1442,1445],{},"중복 감지(§4-1)는 ",[26,1439,1440],{},"표준답변 ↔ 표준답변"," 간. 미커버 클러스터링(ADMIN-PLAN §4-5-1)은 ",[26,1443,1444],{},"미커버질문 ↔ 미커버질문"," 간. 동일 임베딩 인프라를 쓰되 목적·임계가 다르다.",[92,1447,1448,1449,1452],{},"미커버 질문을 표준답변 후보로 전환(§5-1)할 때는 ",[26,1450,1451],{},"기존 표준답변과의 중복(§4-1)도 함께 검사"," — 이미 답이 있는데 미커버로 잘못 분류된 경우를 거른다.",[61,1454],{},[64,1456,1458],{"id":1457},"_5-수집-선순환-자산-환류","5. 수집 선순환 (자산 환류)",[17,1460,1461],{},"표준답변은 4개 진입점에서 수집되고, 사용 피드백이 다시 우선순위·후보로 환류한다(FR-7).",[14,1463,1464],{},[17,1465,1466,1469,1470,79,1472,1474,1475,1477],{},[26,1467,1468],{},"PMS 대량 수집 파이프라인","(기간·프로젝트 스캔 → 서비스 자동배정 → 안내글\u002FQ&A 분기 → 토픽 분류 → ",[21,1471,226],{},[34,1473,496],{"href":495},"가 정본이다. 그 파이프라인의 출력(",[21,1476,226],{},")이 아래 진입점 ①(PMS)과 동급으로 본 큐레이션 워크플로에 합류한다.",[1064,1479,1482],{"className":1480,"code":1481,"language":1069},[1067],"                    ┌─────────────────────────────────────────────┐\n                    │                                             │\n  ① PMS QaEvalCard  │   ② suggestions      ③ 미커버 질문 큐        │  ④ 자료(materials)\n  \"표준답변 저장\"   │   (LLM 후보추출)     (uncovered→후보)        │   에서 추출\n        │           │        │                    │               │        │\n        ▼           ▼        ▼                    ▼               ▼        ▼\n   ┌──────────────────────────────────────────────────────────────────────────┐\n   │  hp_standard_answer  (draft → reviewing → approved)                       │\n   └──────────────────────────────────────────────────────────────────────────┘\n        │ approved                                          ▲\n        ▼                                                   │ 채택수↑ → 우선순위·후보 추천\n  챗봇\u002F추천 응답 ── 사용(usage_count++) · 채택(\u002Fuse) ───────┘\n        │\n        └─ 답 못함(is_unknown \u002F confidence\u003C0.5) → 미커버 큐(③로 환류)\n",[21,1483,1481],{"__ignoreMap":1072},[69,1485,1487],{"id":1486},"_5-1-미커버-질문-표준답변-후보-전환-fr-7-ac-72","5-1. 미커버 질문 → 표준답변 후보 전환 (FR-7 AC-7.2)",[89,1489,1490,1505,1512,1532],{},[92,1491,1492,1493,1496,1497,1500,1501,1504],{},"챗봇이 ",[21,1494,1495],{},"is_unknown"," 또는 ",[21,1498,1499],{},"confidence\u003C0.5","로 분기한 질문 → ",[21,1502,1503],{},"hp_uncovered_question","에 누적·클러스터링(cosine≥0.8).",[92,1506,1507,1508,1511],{},"같은 의미 ",[26,1509,1510],{},"주 3건 이상","이면 후보 큐 등록 + Slack 알림(ADMIN-PLAN §9 기본값).",[92,1513,1514,1517,1518,1521,1522,844,1524,1527,1528,1531],{},[21,1515,1516],{},"POST \u002Funcovered\u002F:id\u002Fdraft-sa","로 표준답변 ",[26,1519,1520],{},"초안 생성","(챗봇 응답 로직 재사용 — ADMIN-PLAN §4-5-2). 생성된 초안은 ",[21,1523,226],{},[21,1525,1526],{},"source_uncovered_id"," 기록 + 미커버 추정 분류(",[21,1529,1530],{},"estimated_scope\u002Ftopic\u002Fservice",")를 초기 분류로 승계.",[92,1533,1534],{},"저장 시 §4-1 중복 검사 동반.",[69,1536,1538],{"id":1537},"_5-2-채택-피드백-우선순위-fr-7-ac-71","5-2. 채택 피드백 → 우선순위 (FR-7 AC-7.1)",[89,1540,1541,1557,1563],{},[92,1542,1543,1546,1547,1370,1550,1552,1553,1556],{},[21,1544,1545],{},"POST \u002Fstandard-answers\u002F:id\u002Fuse","로 ",[21,1548,1549],{},"usage_count++",[21,1551,1421],{}," 갱신(이미 구현, ",[21,1554,1555],{},"requireServiceToken",").",[92,1558,1559,1560,1562],{},"매칭 동점 시 ",[21,1561,871],{}," 우선(§2-3). 자주 채택된 답변이 상위 노출.",[92,1564,1565,1568,1569,1571],{},[26,1566,1567],{},"P1 상담사 채택 신호",": AI 추천 답변(FR-6)을 상담사가 \"채택\"하면 그 근거 표준답변의 ",[21,1570,871],{},"도 환류(Phase 1에서 선순환 시작). → 채택\u002F수정\u002F거절 구분 집계는 미정(§7).",[69,1573,1575],{"id":1574},"_5-3-suggestionsllm-후보-추출","5-3. suggestions(LLM 후보 추출)",[89,1577,1578,1594],{},[92,1579,1580,1583,1584,1587,1588,1591,1592,1556],{},[21,1581,1582],{},"POST \u002Fpms\u002Fprojects\u002F:id\u002Fstandard-answer-suggestions","가 직원 응답(비공개 제외)에서 반복 패턴을 추출(이미 구현). 결과는 저장 전 후보일 뿐 → 운영자가 ",[21,1585,1586],{},"standard-answers\u002Fsuggestions"," 화면에서 검토 후 ",[21,1589,1590],{},"POST \u002Fstandard-answers","(=",[21,1593,226],{},[92,1595,1596,1597,1600,1601,1604],{},"추출 후보에 ",[26,1598,1599],{},"분류(scope\u002Ftopic\u002Fservice) 자동 추론 필드 추가"," 권고 — 현재 suggestions 응답은 ",[21,1602,1603],{},"label\u002Fquestion\u002Fanswer\u002Ffrequency","만 반환(§6-B api 요구).",[69,1606,1608],{"id":1607},"_5-4-pms-qaevalcard-표준답변으로-저장-d축-템플릿","5-4. PMS QaEvalCard \"표준답변으로 저장\" (D축 템플릿)",[89,1610,1611,1617,1624],{},[92,1612,1613,1614,1244],{},"D축 답변 템플릿 6종(짧은\u002F긴\u002F친절\u002F비즈니스\u002FFAQ\u002F단계별) 중 선택분을 저장 → ",[21,1615,1616],{},"source_axis='D'",[92,1618,1619,1620,1623],{},"이미지 경로는 절대 URL 정규화 완료(",[21,1621,1622],{},"PMS_ASSET_BASE",", 2026-06 적용).",[92,1625,1626,1627,1629],{},"저장 시 분류 미지정이면 ",[21,1628,226],{}," + 분류 NULL → 운영자가 admin에서 분류·승인.",[61,1631],{},[64,1633,1635],{"id":1634},"_6-커버리지-kpi","6. 커버리지 KPI",[17,1637,1638,1639,1642],{},"도메인(topic\u002Fservice)별 표준답변 자산의 건강도를 측정. admin 홈(§4-1)·",[21,1640,1641],{},"\u002Fanalytics\u002Fquality","에 노출.",[129,1644,1645,1658],{},[132,1646,1647],{},[135,1648,1649,1652,1655],{},[138,1650,1651],{},"KPI",[138,1653,1654],{},"정의",[138,1656,1657],{},"산식",[145,1659,1660,1676,1691,1707,1722,1740,1753,1769],{},[135,1661,1662,1667,1670],{},[150,1663,1664],{},[26,1665,1666],{},"표준답변 수",[150,1668,1669],{},"scope\u002Ftopic\u002Fservice별 활성 건수",[150,1671,1672,1675],{},[21,1673,1674],{},"COUNT(status=1)"," group by 분류",[135,1677,1678,1683,1686],{},[150,1679,1680],{},[26,1681,1682],{},"승인율",[150,1684,1685],{},"승인된 비율",[150,1687,1688],{},[21,1689,1690],{},"approved \u002F (draft+reviewing+approved+rejected)",[135,1692,1693,1698,1701],{},[150,1694,1695],{},[26,1696,1697],{},"승인 대기",[150,1699,1700],{},"검토 필요 큐 깊이",[150,1702,1703,1706],{},[21,1704,1705],{},"COUNT(approval_status IN (draft,reviewing))"," (사이드바 배지 — ADMIN-PLAN §3-2 그룹2.1)",[135,1708,1709,1714,1717],{},[150,1710,1711],{},[26,1712,1713],{},"채택률(사용률)",[150,1715,1716],{},"승인본 중 실제 채택된 비율",[150,1718,1719],{},[21,1720,1721],{},"COUNT(usage_count>0 AND approved) \u002F COUNT(approved)",[135,1723,1724,1729,1732],{},[150,1725,1726],{},[26,1727,1728],{},"미커버 수",[150,1730,1731],{},"도메인별 답 못한 질문 누적",[150,1733,1734,1736,1737],{},[21,1735,1503],{}," group by ",[21,1738,1739],{},"estimated_topic",[135,1741,1742,1747,1750],{},[150,1743,1744],{},[26,1745,1746],{},"커버리지 갭",[150,1748,1749],{},"미커버↑ + 표준답변↓ 인 도메인",[150,1751,1752],{},"미커버 수 \u002F (표준답변 수 + 1) 내림차순 → 보강 우선순위",[135,1754,1755,1760,1763],{},[150,1756,1757],{},[26,1758,1759],{},"중복 의심 수",[150,1761,1762],{},"병합 검토 대상",[150,1764,1765,1768],{},[21,1766,1767],{},"similar"," cosine≥0.85 페어 수",[135,1770,1771,1776,1779],{},[150,1772,1773],{},[26,1774,1775],{},"신선도",[150,1777,1778],{},"오래 안 쓰인 승인본",[150,1780,1781,1784],{},[21,1782,1783],{},"approved AND last_used_at \u003C now-180d"," → 재검토·archive 후보",[14,1786,1787],{},[17,1788,1789,1791],{},[26,1790,1746],{},"이 핵심 운영 지표 — \"미커버는 많은데 표준답변이 적은 도메인\"을 자료·표준답변 보강 1순위로 노출(수집 선순환의 방향타).",[17,1793,1794,1795,1798],{},"KPI는 Phase 1에서 표준답변·미커버 수집이 시작되면 계산 가능하나, ",[26,1796,1797],{},"채택률·미커버 수는 Phase 2 챗봇 가동 후 실데이터","가 채워진다(ROADMAP Phase 구분 유지).",[61,1800],{},[64,1802,1804],{"id":1803},"_7-정책-결정-사항-미정-todo","7. 정책 결정 사항 \u002F 미정 TODO",[69,1806,1808],{"id":1807},"_7-1-결정-이-문서로-확정","7-1. 결정 (이 문서로 확정)",[129,1810,1811,1821],{},[132,1812,1813],{},[135,1814,1815,1818],{},[138,1816,1817],{},"결정",[138,1819,1820],{},"근거",[145,1822,1823,1839,1855,1870,1881,1889,1900],{},[135,1824,1825,1833],{},[150,1826,1827,1828,273,1830,1832],{},"분류 FK는 ",[21,1829,1305],{},[21,1831,856],{},"(INT)로 연계, slug는 표시·로그용",[150,1834,1835,1836,1838],{},"002가 ",[21,1837,558],{}," PK로 카탈로그를 실체화. slug는 운영자가 정정 가능해 불안정",[135,1840,1841,1852],{},[150,1842,1843,1845,1846,1848,1849],{},[21,1844,112],{},"(1\u002F-1 soft-delete)와 ",[21,1847,912],{},"(5단계) ",[26,1850,1851],{},"분리",[150,1853,1854],{},"HP-SCHEMA §1-2 원칙 유지 + 무검증 답변 챗봇 노출 방지(FR-1 AC-1.2)",[135,1856,1857,1867],{},[150,1858,1859,1860,1863,1864,1866],{},"상태 = ",[21,1861,1862],{},"draft\u002Freviewing\u002Fapproved\u002Frejected\u002Farchived",", 챗봇은 ",[21,1865,108],{},"만",[150,1868,1869],{},"FR-5 AC-5.1·FR-1 AC-1.2",[135,1871,1872,1878],{},[150,1873,1874,1875,1877],{},"모든 수집 진입점(PMS·suggestions·uncovered·자료)은 ",[21,1876,226],{},"로 진입",[150,1879,1880],{},"검토 게이트 강제",[135,1882,1883,1886],{},[150,1884,1885],{},"agent는 제안·분류·검토착수까지, 승인은 developer\u002Fadmin",[150,1887,1888],{},"ADMIN-PLAN §2-1",[135,1890,1891,1897],{},[150,1892,1893,1894,1896],{},"중복 병합 시 채택수 합산·출처 보존·",[21,1895,1384],{}," 기록",[150,1898,1899],{},"채택 신호·역추적 손실 방지",[135,1901,1902,1908],{},[150,1903,1904,1905,1907],{},"반려는 ",[21,1906,1213],{}," 필수",[150,1909,1910],{},"재작업 신호",[69,1912,1914],{"id":1913},"_7-2-미정-todo-추가-합의결정-필요","7-2. 미정 TODO (추가 합의·결정 필요)",[129,1916,1917,1933],{},[132,1918,1919],{},[135,1920,1921,1924,1927,1930],{},[138,1922,1923],{},"#",[138,1925,1926],{},"항목",[138,1928,1929],{},"누가 결정",[138,1931,1932],{},"영향",[145,1934,1935,1970,1987,2013,2032,2049,2063,2102],{},[135,1936,1937,1943,1964,1967],{},[150,1938,1939],{},[1940,1941,1942],"del",{},"T1",[150,1944,1945,1948,1949,525,1952,1954,1955,1957,1958,1960,1961,1963],{},[26,1946,1947],{},"카탈로그 정본 확정"," → ",[26,1950,1951],{},"해소(2026-06-18)",[21,1953,450],{}," 7서비스(",[34,1956,496],{"href":495}," §4-2) + ",[21,1959,423],{}," 24토픽(",[34,1962,431],{"href":430},"). 남은 것은 dba 재시드 실행뿐",[150,1965,1966],{},"(완료)",[150,1968,1969],{},"§2-2, ADMIN-PLAN 현행화",[135,1971,1972,1975,1981,1984],{},[150,1973,1974],{},"T2",[150,1976,1977,1980],{},[26,1978,1979],{},"중복 임계값","(LIKE 자카드 0.6 \u002F cosine 0.85·0.92) 운영 튜닝",[150,1982,1983],{},"api+QA, 운영 데이터",[150,1985,1986],{},"§4-1",[135,1988,1989,1994,2008,2010],{},[150,1990,1991],{},[1940,1992,1993],{},"T3",[150,1995,1996,1948,2002,2005,2006],{},[1940,1997,1998,2001],{},[26,1999,2000],{},"승인본 수정 시 새 row append vs in-place"," 세부 규칙",[26,2003,2004],{},"해소(2026-06-23)",": 오타 수정 = in-place(동일 row, reviewing 경유 재승인) \u002F 의미 변경 = new row append + 구본 즉시 archive(원자적 트랜잭션). 상세: ",[34,2007,1242],{"href":1241},[150,2009,1966],{},[150,2011,2012],{},"§3-4",[135,2014,2015,2018,2026,2029],{},[150,2016,2017],{},"T4",[150,2019,2020,269,2023,2025],{},[26,2021,2022],{},"다중 출처 보존",[21,2024,1410],{},") 도입 여부",[150,2027,2028],{},"dba+기획",[150,2030,2031],{},"§4-2",[135,2033,2034,2037,2043,2046],{},[150,2035,2036],{},"T5",[150,2038,2039,2042],{},[26,2040,2041],{},"채택\u002F수정\u002F거절 구분 집계","(P1 상담사 피드백) 스키마",[150,2044,2045],{},"기획+dba",[150,2047,2048],{},"§5-2 KPI 채택률",[135,2050,2051,2054,2057,2060],{},[150,2052,2053],{},"T6",[150,2055,2056],{},"suggestions 응답에 분류 자동 추론 포함 여부",[150,2058,2059],{},"api",[150,2061,2062],{},"§5-3",[135,2064,2065,2070,2097,2099],{},[150,2066,2067],{},[1940,2068,2069],{},"T7",[150,2071,2072,2074,2075,2078,2079,2081,2082,2085,2086,2089,2090,2093,2094,2096],{},[21,2073,714],{},"(법령) 토픽 → ",[26,2076,2077],{},"해소",": 별도 ",[21,2080,714],{}," 토픽 ",[26,2083,2084],{},"미채택",". 법령 문의는 service 토픽 ",[21,2087,2088],{},"refund-employment-insurance","(고용보험법)·",[21,2091,2092],{},"public-procurement","(공공 조달·약관)로 수용(",[34,2095,431],{"href":430}," §6 T-A)",[150,2098,1966],{},[150,2100,2101],{},"§2-2",[135,2103,2104,2107,2110,2113],{},[150,2105,2106],{},"T8",[150,2108,2109],{},"비공개 출처 표준답변의 P2 노출 가드(출처 마스킹) — 개인정보보호관리자 협의",[150,2111,2112],{},"privacy-officer",[150,2114,2115],{},"§8-D",[61,2117],{},[64,2119,2121],{"id":2120},"_8-정합현행화-다른-정본과의-충돌","8. 정합·현행화 (다른 정본과의 충돌)",[129,2123,2124,2137],{},[132,2125,2126],{},[135,2127,2128,2131,2134],{},[138,2129,2130],{},"ID",[138,2132,2133],{},"충돌",[138,2135,2136],{},"현행화 방향",[145,2138,2139,2170,2208,2225],{},[135,2140,2141,2146,2163],{},[150,2142,2143],{},[26,2144,2145],{},"8-A",[150,2147,2148,273,2150,2152,2153,525,2156,2158,2159,1960,2161,254],{},[21,2149,423],{},[21,2151,450],{}," 시드 불일치 → ",[26,2154,2155],{},"정본 확정(2026-06-18)",[21,2157,450],{}," 7서비스(HARVEST §4-2) + ",[21,2160,423],{},[34,2162,431],{"href":430},[150,2164,2165,2166,2169],{},"dba 재시드 실행 후 ",[26,2167,2168],{},"ADMIN-PLAN §4-3-1 토픽·서비스 표를 정본값으로 현행화","(T-C\u002FT-A)",[135,2171,2172,2177,2192],{},[150,2173,2174],{},[26,2175,2176],{},"8-B",[150,2178,2179,706,2181,2184,2185,2188,2189,2191],{},[21,2180,78],{},[26,2182,2183],{},"컬럼 미실체화"," — ADMIN-PLAN §4-3-4가 ",[21,2186,2187],{},"scope\u002Ftopic\u002Fservice_tag\u002Fapproval_status\u002Ftags\u002Fapproved_by\u002Fapproved_at"," 추가 계획했으나 002에 미반영. 현 코드(",[21,2190,1590],{},")도 분류·승인 미수용",[150,2193,2194,2195,2198,2199,2201,2202,2198,2205,2207],{},"dba 003 마이그레이션 + api 수집 엔드포인트 확장(§6). ADMIN-PLAN §4-3-4의 ",[21,2196,2197],{},"topic VARCHAR","→",[21,2200,414],{},", ",[21,2203,2204],{},"service_tag",[21,2206,856],{},"로 정정",[135,2209,2210,2215,2222],{},[150,2211,2212],{},[26,2213,2214],{},"8-C",[150,2216,2217,2218,2221],{},"승인 워크플로 미구현 — ",[21,2219,2220],{},"PATCH \u002F:id\u002Fapprove"," 미존재(ADMIN-PLAN §4-3-5 계획). 현 PATCH는 label\u002Fquestion\u002Fanswer만",[150,2223,2224],{},"api에 승인 전이 엔드포인트 추가(§6-B)",[135,2226,2227,2232,2235],{},[150,2228,2229],{},[26,2230,2231],{},"8-D",[150,2233,2234],{},"비공개 출처 표준답변 — 비공개 댓글에서 파생된 답변이 P2 고객 챗봇에 출처 노출되면 안 됨(FR-10)",[150,2236,2237,2238,2240],{},"privacy-officer 협의(T8). 표준답변 본문은 일반화돼 있어도 ",[21,2239,1403],{}," 역추적·인용 표기 시 가드 필요",[14,2242,2243],{},[17,2244,2245,2246,2249],{},"§8-A·8-B는 ",[26,2247,2248],{},"dba\u002Fapi 후속 작업이 진행되면 ADMIN-PLAN·HP-SCHEMA 정본도 함께 갱신","해야 한다(임의 단정 금지 — T1 확정 후).",[61,2251],{},[64,2253,2255],{"id":2254},"_9-연결점-후속-작업-요구사항","9. 연결점 — 후속 작업 요구사항",[17,2257,2258,2259,2262],{},"실제 DDL·코드·인덱스는 dba\u002Fapi\u002Fadmin\u002Fpms가 만든다. 아래는 ",[26,2260,2261],{},"요구사항","이다.",[69,2264,2266],{"id":2265},"_9-a-dba-스키마-요구사항-003-마이그레이션-후보","9-A. DBA — 스키마 요구사항 (003 마이그레이션 후보)",[14,2268,2269],{},[17,2270,2271,2274,2275,2277,2278,2281,2282,2288,2289,2291,2292,2294,2295,2297,2298,844,2301,273,2304,273,2307,273,2309,2311,2312,2314,2315,2317,2318,2320],{},[26,2272,2273],{},"추가(2026-06-18)",": 안내글은 ",[21,2276,78],{},"에 ",[21,2279,2280],{},"answer_type"," 컬럼을 더하지 않고 ",[26,2283,2284,2285,2287],{},"별도 테이블 ",[21,2286,491],{},"로 신설","한다(004 후보, ",[34,2290,496],{"href":495}," §5-3·§9-A). ",[21,2293,491],{},"는 아래 분류·승인 컬럼 셋(scope\u002Ftopic_id\u002Fservice_id\u002Ftags\u002Fapproval_status\u002Fapproved_*\u002Fusage_count\u002F...)을 ",[21,2296,78],{},"와 ",[26,2299,2300],{},"동형으로 공유",[21,2302,2303],{},"title",[21,2305,2306],{},"body",[21,2308,511],{},[21,2310,514],{},"(질문 컬럼 없음). ",[21,2313,423],{},"(24토픽)·",[21,2316,450],{},"(7서비스) 재시드도 병행(",[34,2319,431],{"href":430}," §4).",[17,2322,2323,2325],{},[21,2324,78],{}," 컬럼 보강 (모두 NULL 허용\u002FDEFAULT로 기존 데이터 무영향):",[129,2327,2328,2340],{},[132,2329,2330],{},[135,2331,2332,2334,2337],{},[138,2333,926],{},[138,2335,2336],{},"타입(제안)",[138,2338,2339],{},"비고",[145,2341,2342,2356,2373,2390,2409,2423,2438,2452,2465,2478,2491],{},[135,2343,2344,2348,2353],{},[150,2345,2346],{},[21,2347,384],{},[150,2349,2350],{},[21,2351,2352],{},"ENUM('common','service') NOT NULL DEFAULT 'service'",[150,2354,2355],{},"§2-1",[135,2357,2358,2362,2367],{},[150,2359,2360],{},[21,2361,1305],{},[150,2363,2364],{},[21,2365,2366],{},"INT NULL",[150,2368,2369,2370,2372],{},"FK 없음, ",[21,2371,418],{}," 애플리케이션 검증",[135,2374,2375,2379,2383],{},[150,2376,2377],{},[21,2378,856],{},[150,2380,2381],{},[21,2382,2366],{},[150,2384,2385,2387,2388],{},[21,2386,852],{},"일 때만 의미, ",[21,2389,445],{},[135,2391,2392,2396,2406],{},[150,2393,2394],{},[21,2395,465],{},[150,2397,2398,2401,2402,2405],{},[21,2399,2400],{},"JSON DEFAULT ('[]')"," (MySQL 8) \u002F ",[21,2403,2404],{},"LONGTEXT"," (5.6 호환)",[150,2407,2408],{},"운영 DB 버전 확인 필요(메모리: 실서버 5.6.51)",[135,2410,2411,2415,2420],{},[150,2412,2413],{},[21,2414,912],{},[150,2416,2417],{},[21,2418,2419],{},"ENUM('draft','reviewing','approved','rejected','archived') NOT NULL DEFAULT 'draft'",[150,2421,2422],{},"§3-2",[135,2424,2425,2430,2435],{},[150,2426,2427],{},[21,2428,2429],{},"approved_by",[150,2431,2432],{},[21,2433,2434],{},"VARCHAR(100) NULL",[150,2436,2437],{},"직원 이메일",[135,2439,2440,2445,2450],{},[150,2441,2442],{},[21,2443,2444],{},"approved_at",[150,2446,2447],{},[21,2448,2449],{},"DATETIME NULL",[150,2451],{},[135,2453,2454,2458,2463],{},[150,2455,2456],{},[21,2457,1213],{},[150,2459,2460],{},[21,2461,2462],{},"VARCHAR(255) NULL",[150,2464,2012],{},[135,2466,2467,2471,2475],{},[150,2468,2469],{},[21,2470,1384],{},[150,2472,2473],{},[21,2474,2366],{},[150,2476,2477],{},"병합 흡수 시 primary id(§4-2)",[135,2479,2480,2484,2488],{},[150,2481,2482],{},[21,2483,1526],{},[150,2485,2486],{},[21,2487,2366],{},[150,2489,2490],{},"미커버 전환 출처(§5-1)",[135,2492,2493,2498,2501],{},[150,2494,2495],{},[21,2496,2497],{},"embedding",[150,2499,2500],{},"(OpenSearch 색인 또는 컬럼)",[150,2502,2503],{},"중복 cosine·매칭(§4-1·2-3) — 자료 임베딩과 동일 파이프라인",[17,2505,2506],{},"인덱스:",[89,2508,2509,2518,2524,2530],{},[92,2510,2511,2514,2515,2517],{},[21,2512,2513],{},"idx_approval (approval_status, status)"," — 승인 대기 큐·챗봇 ",[21,2516,108],{}," 필터",[92,2519,2520,2523],{},[21,2521,2522],{},"idx_scope_topic (scope, topic_id, service_id, status)"," — 분류 매칭(§2-3)",[92,2525,2526,2529],{},[21,2527,2528],{},"idx_merged (merged_into_id)"," — 병합 역추적",[92,2531,2532,2533,2536],{},"기존 ",[21,2534,2535],{},"FULLTEXT idx_qa","는 한국어 ngram parser 미설정 상태(코드가 LIKE 사용 중) → ngram 파서 도입 또는 OpenSearch 이관 결정(T2 관련)",[14,2538,2539],{},[17,2540,2541,2542,2545,2546,2549,2550,2553,2554,2557,2558,617,2560,2562,2563,2566],{},"⚠ ",[26,2543,2544],{},"운영 DB는 MySQL 5.6.51","(메모리 ",[21,2547,2548],{},"prod-db-host","). ",[21,2551,2552],{},"JSON"," 타입·",[21,2555,2556],{},"DEFAULT (expr)"," 미지원 → ",[21,2559,465],{},[21,2561,2404],{},"(JSON 직렬화, HP-SCHEMA §1-4 원칙) 권고. ",[21,2564,2565],{},"ENUM"," 추가는 5.6 OK. dba가 버전 타깃 확정.",[69,2568,2570],{"id":2569},"_9-b-api-엔드포인트-변경-요구사항","9-B. API — 엔드포인트 변경 요구사항",[129,2572,2573,2586],{},[132,2574,2575],{},[135,2576,2577,2580,2583],{},[138,2578,2579],{},"엔드포인트",[138,2581,2582],{},"변경",[138,2584,2585],{},"가드",[145,2587,2588,2613,2630,2652,2663,2677,2689,2705,2717],{},[135,2589,2590,2594,2608],{},[150,2591,2592],{},[21,2593,1590],{},[150,2595,2596,2597,2600,2601,2604,2605,2607],{},"body에 ",[21,2598,2599],{},"scope\u002FtopicId\u002FserviceId\u002Ftags"," 수용 + 항상 ",[21,2602,2603],{},"approval_status='draft'"," 저장 + 응답에 ",[21,2606,1347],{},"(중복 후보) 동봉",[150,2609,2610,2612],{},[21,2611,1555],{},"(현행)",[135,2614,2615,2620,2627],{},[150,2616,2617],{},[21,2618,2619],{},"GET \u002Fstandard-answers",[150,2621,2622,2623,2626],{},"필터 ",[21,2624,2625],{},"?scope=&topicId=&serviceId=&approvalStatus=&search="," + 응답에 topic\u002Fservice slug 조인",[150,2628,2629],{},"developer↑",[135,2631,2632,2637,2649],{},[150,2633,2634],{},[21,2635,2636],{},"PATCH \u002Fstandard-answers\u002F:id\u002Ftransition",[150,2638,2639,2640,2643,2644,1370,2647,1896],{},"상태 전이(",[21,2641,2642],{},"reviewing\u002Fapproved\u002Frejected\u002Farchived",") — 전이 유효성·권한 검증, ",[21,2645,2646],{},"approved_by\u002Fat",[21,2648,1213],{},[150,2650,2651],{},"approve\u002Freject\u002Farchive = developer↑",[135,2653,2654,2658,2661],{},[150,2655,2656],{},[21,2657,1343],{},[150,2659,2660],{},"질문 유사도 top N 반환(§4-1)",[150,2662,2629],{},[135,2664,2665,2670,2675],{},[150,2666,2667],{},[21,2668,2669],{},"POST \u002Fstandard-answers\u002F:id\u002Fmerge",[150,2671,2672,2673,254],{},"secondary→primary 병합(채택수 합산·출처 보존·",[21,2674,1384],{},[150,2676,2629],{},[135,2678,2679,2683,2686],{},[150,2680,2681],{},[21,2682,1545],{},[150,2684,2685],{},"(현행 유지) usage_count++",[150,2687,2688],{},"serviceToken",[135,2690,2691,2696,2703],{},[150,2692,2693],{},[21,2694,2695],{},"POST \u002Fpms\u002F...\u002Fstandard-answer-suggestions",[150,2697,2698,2699,2702],{},"후보에 ",[21,2700,2701],{},"scope\u002Ftopic\u002Fservice"," 자동 추론 필드 추가(T6)",[150,2704,2688],{},[135,2706,2707,2711,2714],{},[150,2708,2709],{},[21,2710,1516],{},[150,2712,2713],{},"미커버→draft 표준답변, 분류 승계 + 중복 검사(§5-1)",[150,2715,2716],{},"developer↑ (Phase 2)",[135,2718,2719,2726,2732],{},[150,2720,2721,2722,2725],{},"챗봇 매칭(",[21,2723,2724],{},"GET \u002Fstandard-answers\u002Fmatch"," 등)",[150,2727,2728,2731],{},[21,2729,2730],{},"approval_status='approved'"," AND scope\u002Ftopic\u002Fservice 필터(§2-3)",[150,2733,2734],{},"serviceToken (Phase 2)",[69,2736,2738],{"id":2737},"_9-c-admin-화면-요구사항","9-C. ADMIN — 화면 요구사항",[89,2740,2741,2751,2765,2774,2795,2801],{},[92,2742,2743,2746,2747,2750],{},[21,2744,2745],{},"\u002Fstandard-answers"," 목록: scope\u002Ftopic\u002Fservice\u002F승인상태 필터 컬럼·배지(ADMIN-PLAN §4-3-2 목업대로) + ",[26,2748,2749],{},"실데이터 분류 연동","(현재 분류 컬럼 미존재).",[92,2752,2753,2754,273,2756,2758,2759,2762,2763,1556],{},"상세·편집: 분류 셀렉터(",[21,2755,423],{},[21,2757,450],{}," 카탈로그 연동) + 승인\u002F반려 버튼(권한 분기) + 반려 사유 입력 + ",[26,2760,2761],{},"중복 경고 패널","(저장 시 ",[21,2764,1347],{},[92,2766,2767,2770,2771,2773],{},[21,2768,2769],{},"\u002Fstandard-answers\u002Fsuggestions",": 후보 검토 → ",[21,2772,226],{}," 저장(분류 자동 추론값 프리필).",[92,2775,2776,2782,2783,2785,2786,2297,2788,2791,2792,2794],{},[26,2777,2778,2779],{},"표준 안내답변 별도 메뉴 ",[21,2780,2781],{},"\u002Fannounces","(2026-06-18): ",[21,2784,491],{}," 전용 목록·상세·승인. Q&A ",[21,2787,2745],{},[26,2789,2790],{},"분리된 IA 메뉴","(탭 아님). 안내글 전용 필드(",[21,2793,2303],{},"·유효기간) 노출. 토픽\u002F서비스 분류·승인 워크플로는 동일 UX 공유.",[92,2796,2797,2798,2800],{},"홈\u002F",[21,2799,1641],{},": §6 KPI 카드(커버리지 갭·승인율·채택률).",[92,2802,2803,2804,2807],{},"사이드바 배지 \"승인 대기 N\"(ADMIN-PLAN §3-2 그룹2.1)을 ",[21,2805,2806],{},"approval_status IN(draft,reviewing)"," 카운트로.",[69,2809,2811],{"id":2810},"_9-d-pms-요구사항","9-D. PMS — 요구사항",[89,2813,2814,2827],{},[92,2815,2816,2819,2820,2823,2824,2826],{},[21,2817,2818],{},"QaEvalCard"," \"표준답변으로 저장\" 시 ",[26,2821,2822],{},"선택적 분류 입력","(scope\u002Ftopic) 추가 또는 미지정 허용(admin에서 후분류). 저장은 항상 ",[21,2825,226],{},"임을 UI에 명시(\"승인 후 챗봇이 사용\").",[92,2828,2829],{},"suggestions 후보 카드에 분류 추론값 표시(T6 반영 시).",[69,2831,2833],{"id":2832},"_9-e-privacy-officer-협의-요구사항","9-E. PRIVACY-OFFICER — 협의 요구사항",[89,2835,2836],{},[92,2837,2838,2839,2842],{},"비공개 출처(",[21,2840,2841],{},"tb_post_comment.private_yn='Y'",")에서 파생한 표준답변의 P2 노출 가드(T8\u002F§8-D): 본문 일반화 검증 + 출처 역추적·인용 표기 시 마스킹 정책. FR-10·HP-SCHEMA §7 정합.",[61,2844],{},[64,2846,2848],{"id":2847},"_10-현재-구현-상태-2026-06-17-기준","10. 현재 구현 상태 (2026-06-17 기준)",[129,2850,2851,2860],{},[132,2852,2853],{},[135,2854,2855,2858],{},[138,2856,2857],{},"영역",[138,2859,992],{},[145,2861,2862,2875,2885,2893,2904,2912,2934,2944,2955,2965,2975,2986],{},[135,2863,2864,2869],{},[150,2865,2866,2868],{},[21,2867,78],{}," 수집(저장)",[150,2870,2871,2872,2874],{},"✅ ",[21,2873,1590],{}," (분류·승인 컬럼 없이 label\u002Fquestion\u002Fanswer\u002F출처만)",[135,2876,2877,2880],{},[150,2878,2879],{},"이미지 절대 URL 정규화",[150,2881,2871,2882,2884],{},[21,2883,1622],{}," 적용",[135,2886,2887,2890],{},[150,2888,2889],{},"목록·검색·수정·삭제",[150,2891,2892],{},"✅ LIKE 검색·PATCH(본문만)·soft delete",[135,2894,2895,2901],{},[150,2896,2897,2898,254],{},"채택수(",[21,2899,2900],{},"\u002Fuse",[150,2902,2903],{},"✅ 구현(Phase 2 챗봇 호출 대기)",[135,2905,2906,2909],{},[150,2907,2908],{},"suggestions(LLM 후보)",[150,2910,2911],{},"✅ 구현(분류 추론 없음)",[135,2913,2914,2921],{},[150,2915,2916,2917,273,2919,254],{},"카탈로그(",[21,2918,423],{},[21,2920,450],{},[150,2922,2923,2924,525,2926,1960,2928,2930,2931,2933],{},"✅ 002 + CRUD 엔드포인트 + catalog.vue 실연동. ",[26,2925,597],{},[21,2927,423],{},[34,2929,431],{"href":430},")·",[21,2932,450],{}," 7서비스(HARVEST §4-2) — ⏳ dba 재시드 대기",[135,2935,2936,2941],{},[150,2937,2938,2939,254],{},"표준 안내답변(",[21,2940,491],{},[150,2942,2943],{},"⏳ 신규 테이블·메뉴 대기(004, HARVEST §5-3)",[135,2945,2946,2952],{},[150,2947,2948,2951],{},[26,2949,2950],{},"분류 연계","(topic_id\u002Fservice_id)",[150,2953,2954],{},"❌ 컬럼·연계 없음(§9-A·9-B)",[135,2956,2957,2962],{},[150,2958,2959],{},[26,2960,2961],{},"승인 워크플로",[150,2963,2964],{},"❌ approval_status·전이 엔드포인트 없음",[135,2966,2967,2972],{},[150,2968,2969],{},[26,2970,2971],{},"중복 감지·병합",[150,2973,2974],{},"❌ 미구현",[135,2976,2977,2980],{},[150,2978,2979],{},"미커버→후보 전환",[150,2981,2982,2983,2985],{},"⏳ Phase 2 대기(",[21,2984,1503],{}," 미생성)",[135,2987,2988,2991],{},[150,2989,2990],{},"커버리지 KPI",[150,2992,2993],{},"⏳ 분류 연계 후 부분 가능, 채택률·미커버는 Phase 2",[61,2995],{},[64,2997,2999],{"id":2998},"_11-알려진-한계후속","11. 알려진 한계·후속",[89,3001,3002,3013,3019,3025],{},[92,3003,3004,525,3007,3009,3010,3012],{},[26,3005,3006],{},"MySQL 5.6 제약",[21,3008,2552],{}," 타입·표현식 DEFAULT 미지원 → ",[21,3011,465],{},"는 LONGTEXT, FULLTEXT 한국어는 ngram 미설정. OpenSearch 이관이 근본 해법(자료 인덱싱과 동기).",[92,3014,3015,3018],{},[26,3016,3017],{},"임베딩 의존",": 중복 cosine·분류 자동 추론은 OpenSearch\u002F임베딩 셋업(Phase 1 후반) 후에야 정밀. 그 전까지 LIKE·토큰 기반 MVP.",[92,3020,3021,3024],{},[26,3022,3023],{},"Phase 경계",": 미커버→후보·채택률 KPI는 Phase 2 챗봇 가동 후 실데이터. P1에서는 PMS·suggestions·상담사 채택 신호로 선순환을 먼저 시작한다(ROADMAP Phase 구분 유지).",[92,3026,3027,3028,3031],{},"본 문서 확정 항목 중 카탈로그(T1)·중복 임계(T2)는 운영 데이터로 재튜닝 — 결정 시 ",[21,3029,3030],{},"docs\u002Fhistory\u002F","에 누적.",{"title":1072,"searchDepth":3033,"depth":3033,"links":3034},3,[3035,3042,3049,3055,3060,3066,3067,3071,3072,3079,3080],{"id":66,"depth":3036,"text":67,"children":3037},2,[3038,3039,3040],{"id":71,"depth":3033,"text":72},{"id":126,"depth":3033,"text":127},{"id":187,"depth":3033,"text":3041},"1-3. 권한 (역할별, ADMIN-PLAN.md §2-1 준수)",{"id":340,"depth":3036,"text":341,"children":3043},[3044,3046,3048],{"id":344,"depth":3033,"text":3045},"2-1. 분류 축 (정본 — ADMIN-PLAN.md §4-3-1 계승)",{"id":593,"depth":3033,"text":3047},"2-2. 카탈로그 정합 — 정본 확정 (2026-06-18)",{"id":834,"depth":3033,"text":835},{"id":889,"depth":3036,"text":890,"children":3050},[3051,3052,3053,3054],{"id":893,"depth":3033,"text":894},{"id":982,"depth":3033,"text":983},{"id":1061,"depth":3033,"text":1062},{"id":1193,"depth":3033,"text":1194},{"id":1249,"depth":3036,"text":1250,"children":3056},[3057,3058,3059],{"id":1253,"depth":3033,"text":1254},{"id":1355,"depth":3033,"text":1356},{"id":1431,"depth":3033,"text":1432},{"id":1457,"depth":3036,"text":1458,"children":3061},[3062,3063,3064,3065],{"id":1486,"depth":3033,"text":1487},{"id":1537,"depth":3033,"text":1538},{"id":1574,"depth":3033,"text":1575},{"id":1607,"depth":3033,"text":1608},{"id":1634,"depth":3036,"text":1635},{"id":1803,"depth":3036,"text":1804,"children":3068},[3069,3070],{"id":1807,"depth":3033,"text":1808},{"id":1913,"depth":3033,"text":1914},{"id":2120,"depth":3036,"text":2121},{"id":2254,"depth":3036,"text":2255,"children":3073},[3074,3075,3076,3077,3078],{"id":2265,"depth":3033,"text":2266},{"id":2569,"depth":3033,"text":2570},{"id":2737,"depth":3033,"text":2738},{"id":2810,"depth":3033,"text":2811},{"id":2832,"depth":3033,"text":2833},{"id":2847,"depth":3036,"text":2848},{"id":2998,"depth":3036,"text":2999},"md",{},true,"\u002Fstandard-answer-curation",{"title":5,"description":1072},"STANDARD-ANSWER-CURATION","Ysz3CCfGvPU2d-53f_STuwEiJg_VhuB8JcLaDew3ixE",1783932938625]