작업 이력 — 2026-06-17
기획 (planner)
표준답변 수집·큐레이션 강화 정본화 — docs/STANDARD-ANSWER-CURATION.md 신규
표준답변(hp_standard_answer)의 분류·승인·중복·선순환·KPI 정책을 단일 정본으로 정의. ADMIN-PLAN §4-3·HP-SCHEMA §3-3·REQUIREMENTS FR-1/5/7과 정합, 충돌 항목은 §8에 명시.
- 분류 체계 — scope(common/service) +
topic_id/service_id(FK, slug 아님) + tags. 002 마이그레이션이hp_topic/hp_service를 id PK로 실체화한 것에 맞춰 id FK를 정본으로 결정(slug는 운영자 정정 가능해 불안정). - 승인 워크플로 —
status(1/-1 soft-delete)와approval_status(draft/reviewing/approved/rejected/archived) 분리. 모든 수집 진입점은draft진입, 챗봇은approved만 사용(FR-1 AC-1.2). agent=제안·분류·검토착수, 승인=developer/admin. - 중복 감지·병합 — 저장 전 질문 유사도(P1 LIKE 자카드≥0.6 → P1후반 cosine≥0.85/0.92). 병합 시 채택수 합산·출처 보존·
merged_into_id기록. - 수집 선순환 — PMS QaEvalCard·suggestions·미커버 전환·자료추출 4진입점 → draft → approved → 채택(usage_count) 환류. 커버리지 갭(미커버↑+표준답변↓)을 보강 방향타로.
- 커버리지 KPI — 표준답변 수·승인율·승인대기·채택률·미커버 수·커버리지 갭·중복 의심·신선도.
발견한 정본 불일치 (현행화 대기)
- 8-A 카탈로그 시드 불일치: 002 실데이터(
login/enrollment/payment/refund/...;step/lms-general/lms-mixed/lms-private/lms-public-security/lms-global) ↔ ADMIN-PLAN §4-3-1 문서(domain/seo/...;lms-refund/-public/-security/-hybrid). T1 확정 후 ADMIN-PLAN 현행화 필요. 본 문서 §2-2가 잠정 정본. - 8-B
hp_standard_answer컬럼 미실체화: ADMIN-PLAN §4-3-4가 계획한 scope/topic/service_tag/approval_status/tags가 002에 미반영, 현POST /standard-answers코드도 미수용. ADMIN-PLAN의topic VARCHAR/service_tag를topic_id/service_idINT로 정정 권고. - 8-C 승인 워크플로 미구현:
PATCH /:id/approve미존재, status 1/-1뿐. - ADMIN-PLAN §4-3 머리에 본 정본으로의 상호참조·현행화 대기 주석 추가.
후속 핸드오프
- dba: 003 마이그레이션 —
hp_standard_answer에 scope/topic_id/service_id/tags/approval_status/approved_by·at/rejection_reason/merged_into_id/source_uncovered_id/embedding 보강 + 인덱스. ⚠ 운영 DB MySQL 5.6.51 →tags는 LONGTEXT, ENUM은 가능. 버전 타깃 확정. - api:
POST /standard-answers분류 수용·draft 강제·similar[]동봉,GET분류 필터,PATCH /:id/transition(상태 전이),/check-duplicate,/:id/merge, 챗봇 매칭approved필터. suggestions 분류 추론(T6). - admin: 목록 분류·승인상태 필터 실데이터 연동, 상세 분류 셀렉터·승인/반려·중복 경고 패널, 승인대기 배지, KPI 카드.
- pms: QaEvalCard 저장 시 선택적 분류 입력 + "승인 후 사용" 안내.
- privacy-officer: 비공개 출처 파생 표준답변의 P2 노출 가드(출처 마스킹, FR-10, T8).
- 미정 TODO 8건(T1~T8): 카탈로그 정본·중복 임계 튜닝·승인본 수정 규칙·다중 출처·채택 구분 집계·suggestions 추론·법령 토픽·비공개 가드.
배포
16:41 — malgn-helper-admin → Cloudflare Pages
목록 페이지 페이지네이션 통일 + standard-answers 삭제 패널 버그픽스. admin 단일 레포 배포(api/pms/mng 무관, api는 prod가 이미 limit/offset 지원).
- 변경(7파일):
components/admin/Pagination.vue신규(AdminPagination) ·components/admin/DataTable.vue#footer슬롯 추가(비파괴) ·pages/qa-evals.vue·standard-answers.vue·images.vue서버 limit/offset 페이지네이션 ·pages/accounts.vue자체 페이저 → AdminPagination 통일 ·pages/audit-logs.vue클라이언트 임시 페이징 ·standard-answers.vueconfirmDelete 비교를 null 대입 앞으로 이동(삭제 패널 버그픽스) - 커밋/배포:
5d0e5dd→ origin/main. Cloudflare Pages aliashttps://cc55dd94.malgn-helper-admin.pages.dev, buildIde513ed5a-85f1-4dc6-a1d0-752d78fd6899 - 검증: prod root 200 · SSR 셸
/qa-evals·/standard-answers·/images·/accounts·/audit-logs전부 200 · 빌드 산출Pagination-BoUy2Q0a.mjs+ 5개 라우트 청크 포함 · 클라이언트 Pagination 청크(/_nuxt/G2xIz5Qz.js) 200 · prodlatest.jsonbuildId == 로컬 빌드(라이브 일치). 런타임 페이저 동작은 인증 필요 → SSR 셸 200 + 빌드까지 검증 범위.
봇 서비스별 구분 — DB + malgn-helper-api(Workers) + malgn-helper-admin(Pages)
봇을 솔루션(서비스)별로 구분 관리. 설계 정본 BOTS-PLAN.md. 봇 1개 = 서비스 1개(service_id nullable=공통), 서비스 목록은 hp_service 카탈로그 정본에서 동적 로드(하드코딩 SERVICE_OPTS 제거 → 슬러그 불일치 8-A 해소). 자료(material) 연결은 연기(/materials 백엔드 부재).
- DB(선적용):
malgn-helper-api/migrations/004_bots.sql—hp_bot(statusTINYINT 소프트삭제 +bot_statusENUM 라이프사이클 분리, JSON=LONGTEXT, FK 미설정). 운영 PMS(221.143.42.213) 적용·검증: 시드 3건(공통봇 service_id NULL · LMS 일반 lms-general · 공공 보안 lms-public-security/draft). - api
460016d(Version7dedeed5-5e63-4e55-b11c-ef4db4e42bff):/admin/botsCRUD(GET developer / POST·PATCH·DELETE admin, 소프트삭제 status=-1, BotDto camelCase + serviceName 조인). 검증: 무인증GET /admin/bots→ 401, 루트 200. - admin
705665e(aliashttps://06aa3612.malgn-helper-admin.pages.dev):use-bots.tslocalStorage→API(serviceId 단일+공통),bots/index.vue서비스별 그룹핑+동적 필터,bots/[id].vue서비스 구분 드롭다운,use-admin-menu.ts봇 메뉴 roles=admin,developer. 검증: prod/bots200 + 봇 라우트 청크. - QA: api↔admin 계약 23필드·파라미터 전수 일치, service_id 공통·소프트삭제·JSON·권한 정합, 빌드 3종 통과(블로커 0). 런타임 CRUD는 인증 세션 필요로 미검증.
- 후속:
hp_bot_source자료 연결(materials API 이후), 봇 챗 파이프라인 런타임 사용(Phase 2), 봇별escalation_thresholdvs 전역confidence_threshold우선순위 정책.
배포 로그 (시각별)
배포 시각·커밋 로그(워크스페이스
deploy.sh기록, helper repo에서 이관). 위 서술과 동일 배포의 시각 상세 + mng 이슈보드 이식 배포 포함.
12:07 — malgn-helper-admin → Cloudflare Pages
- 커밋:
9488a74(신규 커밋: yes) - 메시지: feat(standard-answers): 003 큐레이션 API 연동 — 분류 필터/배지·승인 전이·중복 경고·승인대기 사이드바 배지
12:49 — malgn-helper-mng → Cloudflare Pages
- 커밋:
21509d4(신규 커밋: yes) - 메시지: feat(mng): noti-mng 기능 이식 — 이슈 게시판·로그인/회원가입·참여자·주간작업·홈 최근이슈
- 인증: HMAC 쿠키 세션(helper_mng_session) + PBKDF2, 첫 가입자 자동 admin
- 이슈 게시판: 정책/이슈/공지/논의 + 마크다운 + 이미지 업로드(R2) + 답글
- 참여자 관리(가입 승인·등급), 계정(프로필/비번)
- 주간 작업(/weekly, helper WBS 티어 매핑), no-cache 미들웨어
- 게이트: 새 기능만 로그인(/issues,/members,/account,/uploads). 문서·이력·대시보드는 공개·프리렌더 유지
- 맑은오피스 SSO 제외. DB: member/issue/issue_comment 추가, R2 FILES 바인딩
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
12:55 — malgn-helper-mng → Cloudflare Pages
- 커밋:
8ee7c2c(신규 커밋: yes) - 메시지: chore(mng): GNB에서 현황판 메뉴·GitHub 링크 제거
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
16:41 — malgn-helper-admin → Cloudflare Pages
- 커밋:
5d0e5dd(신규 커밋: yes) - 메시지: feat(admin): 목록 페이지 페이지네이션(AdminPagination) + standard-answers 삭제 패널 버그픽스
17:59 — malgn-helper-api → Cloudflare Workers
- 커밋:
460016d(신규 커밋: yes) - 메시지: feat(bots): hp_bot 스키마(004) + /admin/bots CRUD (서비스별 구분·공통봇)
17:59 — malgn-helper-admin → Cloudflare Pages
- 커밋:
705665e(신규 커밋: yes) - 메시지: feat(bots): 서비스별 봇 화면 API 연동(그룹핑·서비스 구분·메뉴 게이트)