이 제출물은 AX 해커톤 예선용 Codex 플러그인입니다.
대상 기업은 채널톡이고, 주제는 채널톡 ALF 같은 AI 상담에 FAQ, 환불정책, 배송정책, 상담원 이관 기준 문서를 넣기 전에 그 문서들이 AI 상담용 지식으로 적합한지 점검하는 것입니다.
이 플러그인은 단순히 위험 단어를 찾는 도구가 아닙니다. Codex가 고객 정책 문서와 플러그인 내부의 공식 기준 전문 txt를 함께 읽고 비교한 뒤, 고객에게 안내하기 전에 운영자 또는 법무가 검토해야 할 부분을 보고합니다.
핵심 원칙은 세 가지입니다.
- 최종 검토와 JSON 보고서는 Codex가 작성합니다.
- Python은 JSON 형식과 금지 표현만 검사합니다.
- 결과는 법률 자문이 아니라 AI 상담 투입 전 사전 점검입니다.
사용자는 정책 문서가 들어 있는 폴더를 지정하고 Skill을 호출합니다.
$channeltalk-policy-reviewer src/examples/mellow-shop 검토해줘
그러면 Codex는 SKILL.md의 작업 순서에 따라 아래처럼 움직입니다.
1. 입력 폴더의 문서를 읽음
2. FAQ, 환불정책, 배송정책, 상담원 이관 기준 문서를 구분함
3. 환불, 교환, 배송비, 취소 시점, 하자, 오배송, 배송 지연, 상담원 이관 조건 같은 정책 주장을 뽑음
4. 문서끼리 서로 다른 말을 하는지 확인함
5. topic-map.json을 보고 먼저 확인할 공식 기준 출처 ID를 고름
6. source-index.json에서 출처 ID의 전문 txt 경로와 메타데이터를 확인함
7. 전문 txt 안에서 관련 조항 또는 섹션을 직접 찾아 읽음
8. 고객 문구와 찾은 조항 또는 섹션을 함께 비교함
9. 운영자 또는 법무 검토가 필요한 항목을 Markdown/JSON으로 작성함
10. 필요한 경우 Python으로 결과 형식, 금지 표현, reference 파일 존재 여부만 검사함
예를 들어 고객 문서에 세일 상품은 무조건 환불 불가입니다라는 문장이 있으면, Codex는 이 문장을 세일 상품, 환불, 전면 제한, 예외 없음이라는 정책 주장으로 이해합니다. 그다음 topic-map.json에서 먼저 볼 공식 기준 출처 ID를 고르고, source-index.json에서 전문 txt 경로와 출처 메타데이터를 확인합니다. 이후 그 전문 안에서 청약철회, 환불, 하자, 표시 같은 관련 단어가 있는 조항이나 섹션을 찾아 읽습니다. 보고서에는 뭘 고쳐야 하는지, 확인한 기준 내용, 고객 문구와 연결되는 이유, 바로 고칠 문구를 함께 남깁니다.
권장 입력 폴더 구조는 다음과 같습니다.
customer-docs/
├── faq.md
├── refund-policy.md
├── shipping-policy.md
└── escalation-policy.md
문서 이름이 꼭 같을 필요는 없지만, 파일명이나 제목에서 역할을 알 수 있게 쓰는 것이 좋습니다.
| 문서 | 역할 |
|---|---|
| FAQ | 고객에게 자주 안내하는 답변 |
| 환불정책 | 환불, 교환, 하자, 오배송 처리 기준 |
| 배송정책 | 배송비, 취소 가능 시점, 배송 지연, 재배송 기준 |
| 상담원 이관 기준 | AI가 답하지 않고 사람에게 넘겨야 하는 상황 |
4개 문서 중 일부가 없어도 Skill은 바로 중단하지 않습니다. 있는 문서만 검토하고, 없는 문서는 보고서에 입력 보완 필요로 표시합니다.
4개 문서 외에 다른 문서가 있어도 됩니다. 예를 들어 coupon-policy.md, membership-policy.md, cs-macro.md가 있으면 Codex는 관련 정책 문구가 있을 때만 보조 근거로 참고합니다.
샘플 문서는 두 개가 있습니다.
src/examples/mellow-shop/
src/examples/urban-gadget/
기본 샘플을 검토하려면 아래처럼 입력합니다.
$channeltalk-policy-reviewer src/examples/mellow-shop 검토해줘
다른 샘플을 검토하려면 아래처럼 입력합니다.
$channeltalk-policy-reviewer src/examples/urban-gadget 검토해줘
여러 샘플을 한 번에 검토하려면 샘플들이 들어 있는 상위 폴더를 입력합니다.
$channeltalk-policy-reviewer src/examples 검토해줘
이 경우 src/examples/ 바로 아래의 mellow-shop, urban-gadget을 각각 독립적으로 검토하고 샘플별 결과 파일을 따로 작성합니다.
결과 파일 이름을 직접 지정하고 싶을 때만 아래처럼 입력합니다.
$channeltalk-policy-reviewer src/examples/mellow-shop 검토하고 reports/custom-report.md 와 reports/custom-findings.json 으로 작성해줘
직접 만든 문서를 검토할 때는 폴더 경로만 바꾸면 됩니다.
$channeltalk-policy-reviewer ./customer-docs/acme-shop 검토해줘
Codex는 기본적으로 입력 폴더 마지막 이름을 sample_id로 사용해 reports/ 안에 아래 두 파일을 작성합니다.
reports/{sample_id}-policy-readiness-report.md
reports/{sample_id}-policy-readiness-findings.json
예:
$channeltalk-policy-reviewer src/examples/mellow-shop 검토해줘
-> reports/mellow-shop-policy-readiness-report.md
-> reports/mellow-shop-policy-readiness-findings.json
$channeltalk-policy-reviewer src/examples/urban-gadget 검토해줘
-> reports/urban-gadget-policy-readiness-report.md
-> reports/urban-gadget-policy-readiness-findings.json
$channeltalk-policy-reviewer src/examples 검토해줘
-> reports/mellow-shop-policy-readiness-report.md
-> reports/mellow-shop-policy-readiness-findings.json
-> reports/urban-gadget-policy-readiness-report.md
-> reports/urban-gadget-policy-readiness-findings.json
{sample_id}-policy-readiness-report.md는 사람이 읽는 보고서입니다. 다음 내용을 한국어로 정리합니다.
- 문서 간 충돌
- 공식 기준 대비 검토 필요 항목
- 상담원 이관 기준 보완 항목
- 바로 고칠 문구
- AI 상담 적용 시 주의
- AI 상담 적용 전 회귀 테스트용 ALF 테스트 질문
요약과 건수는 짧은 표로 보여주고, 상세 finding은 큰 표 대신 카드형 bullet로 작성합니다. 4번 섹션 제목은 AI 상담 투입 전 수정 권장 항목이며, 운영자가 바로 고칠 수 있게 현재 문구, 결론, 바로 고칠 문구, 이유, AI 상담 주의 순서로 짧게 작성합니다. 개발자용 추적 정보는 필요한 경우 details로 접습니다.
보고서 본문에는 전체 공식 기준 참조 목록을 별도 섹션으로 다시 넣지 않습니다. 근거 추적은 각 S finding의 참조 기준 상세, JSON findings, reference metadata에 남깁니다.
### S-002. 오배송 배송비를 고객에게 부담시키는 문구
- 현재 문구: `shipping-policy.md:13`
- 결론: 오배송은 단순변심 반품과 분리해서 안내해야 합니다.
- 우선순위: 높음
- 관련 문서 충돌: C-003
- 바로 고칠 문구:
> 단순변심으로 인한 반품 배송비는 고객 부담입니다. 다만 오배송, 상품 하자, 구성품 누락이 의심되는 경우에는 주문번호와 사진을 접수한 뒤 상담원이 확인하여 회수 및 재배송 절차를 안내합니다.
#### 왜 고쳐야 하나
현재 문구는 고객 단순변심 반품과 오배송을 같은 기준으로 처리합니다.
#### AI 상담 적용 시 주의
오배송, 다른 상품 수령, 구성품 누락, 초기 불량 키워드가 나오면 배송비를 단정 안내하지 말고 상담원 확인으로 넘깁니다.
#### 공식 기준과의 연결
공식 기준은 단순변심 반품과 제품하자ㆍ오배송 상황의 비용 안내를 구분해서 확인하도록 연결됩니다.
<details>
<summary>참조 기준 상세</summary>
- topic-map 주제: `오배송 반품비 부담`
- 연결된 공식 출처 ID: `kr-ecommerce-consumer-protection-act`, `kr-product-info-notice-commerce`
**1. 전자상거래 등에서의 소비자보호에 관한 법률 / 제18조**
- 원문 위치: `full-text/ecommerce_consumer_protection_act.txt`
- 이 기준에서 확인한 내용:
- 단순변심성 청약철회와 표시ㆍ계약 내용 차이 상황의 반환 비용을 구분해서 확인해야 합니다.
- 비용 부담 주체를 모든 반품에 동일하게 안내하면 운영자 검토가 필요합니다.
- 원문 핵심 표현: `제17조제1항`, `제17조제3항`, `반환에 필요한 비용`
</details>문서 간 충돌 항목에 연결되는 공식 기준 검토 항목이 있으면 아래처럼 함께 표시합니다.
### C-003. 오배송 배송비 기준 충돌
- 관련 공식 기준 항목: S-0036번 우선 수정 액션은 파일별 우선순위를 붙여 정리합니다.
- `refund-policy.md` — 최우선: 세일 상품 예외와 개봉 후 하자 문구 수정
- `shipping-policy.md` — 최우선: 오배송 배송비와 배송 지연 문구 수정
- `escalation-policy.md` — 높음: 하자/오배송/분쟁 가능 문의 이관 기준 추가
- `faq.md` — 중간: 정책 문서와 충돌하는 FAQ 문구 정렬7번 ALF 테스트 질문 초안은 단순 참고 질문이 아니라 AI 상담 적용 전 회귀 테스트용 질문입니다. 정책 문서를 수정한 뒤 AI 상담이 잘못된 단정 답변을 하지 않는지 확인할 수 있도록 연결 항목, 테스트 질문, 기대 답변 방향 표로 작성합니다.
| 연결 항목 | 테스트 질문 | 기대 답변 방향 |
|-----------|-------------|----------------|
| S-001 / C-001 | 이벤트 상품을 받았는데 구성품이 빠졌어요. 교환이나 재발송이 되나요? | 이벤트 상품이라도 구성품 누락은 주문번호와 사진을 접수해 상담원이 확인한다고 안내 |{sample_id}-policy-readiness-findings.json은 구조화된 결과 파일입니다. 심사나 후속 검증을 위해 항목별로 type, severity, customer_evidence, standard_references, review_reason, recommended_rewrite 같은 필드를 담습니다.
공식 기준은 발췌문 요약만 보는 구조가 아닙니다. src/skills/channeltalk-policy-reviewer/references/public-standards/full-text/에 공식 기준 전문 txt를 두고, Codex가 필요한 조항 또는 섹션을 찾아 읽는 구조입니다.
각 전문 txt 파일에는 다음 메타데이터와 전문 본문을 포함합니다.
- 출처 문서명
- 공식 URL
- 기준일
- 확인일
- 전문 취득 방법
- 최신성 확인 필요 문구
- 공식 기준 전문 본문
topic-map.json은 정답지가 아니라 목차입니다. 고객 정책 문서에서 특정 주제가 발견되면 Codex가 어떤 공식 기준 출처를 먼저 확인해야 하는지 알려줍니다. 실제 전문 파일 경로와 출처 메타데이터는 source-index.json에서 확인합니다. 최종 비교는 Codex가 해당 전문 txt 안에서 관련 조항이나 섹션을 직접 찾아 읽은 뒤 수행합니다.
예시:
고객 문구:
오배송이어도 배송비는 고객 부담입니다.
topic-map 안내:
오배송 반품비 부담 주제이므로
kr-ecommerce-consumer-protection-act,
kr-consumer-dispute-resolution-standards 를 먼저 확인한다.
source-index 연결:
각 출처 ID의 full_text_file, 공식 URL, 기준일, 확인일을 확인한다.
보고서 출력:
고쳐야 할 정책 문구,
고객 문구와 기준 내용이 연결되는 이유,
바로 고칠 문구,
AI 상담 적용 시 주의,
AI 상담 적용 전 회귀 테스트 질문
근거 추적:
각 S finding의 details,
JSON findings의 standard_references,
reference metadata
보고서는 확정적 법률 판단처럼 보이는 표현을 쓰지 않습니다.
피해야 할 표현:
위법불법무효반드시 환불해야 함법적으로 문제 있음
사용하는 표현:
공식 기준 대비 검토 필요운영자 검토 필요운영자 또는 법무 검토 필요상담원 이관 기준 보완 권장AI 상담 답변 전 검토 권장
Python은 최종 판단을 하지 않습니다. 아래 스크립트는 Codex가 작성한 JSON 보고서가 정해진 형식인지, 금지 표현이 포함되어 있지 않은지만 확인합니다.
python src/tools/validate_findings.py reports/mellow-shop-policy-readiness-findings.json src/skills/channeltalk-policy-reviewer/templates/findings.schema.json
python src/tools/check_prohibited_terms.py reports/mellow-shop-policy-readiness-report.md src/skills/channeltalk-policy-reviewer/references/prohibited-language.md
python src/tools/check_reference_files.py src/skills/channeltalk-policy-reviewer/references/public-standards정상 결과 예시는 다음과 같습니다.
VALIDATION_OK: findings JSON shape is valid. No policy judgment was performed.
SCAN_OK: no prohibited terms found. No policy judgment was performed.
REFERENCE_CHECK_OK: all referenced full-text files exist. No policy judgment was performed.
현재 full-text/*.txt 파일에는 공식 기준 전문 txt가 들어 있습니다. 제출 전에는 source-index.json의 기준일, 확인일, 공식 URL이 실제 제출 기준과 맞는지 다시 확인해야 합니다.
src/examples/mellow-shop/은 기본 환불, 세일 상품, 오배송, 배송 지연, 상담원 이관 기준을 테스트하는 샘플입니다.
- 세일 상품은 무조건 환불 불가
- 오배송이어도 배송비는 고객 부담
- 배송 지연은 회사가 책임지지 않음
- FAQ와 배송정책의 취소 가능 시점 충돌
- 하자와 오배송 문의를 상담원에게 넘기지 않는 이관 기준
- 강한 불만과 법적 문의를 일반 매크로로 처리하는 이관 기준
src/examples/urban-gadget/은 이벤트 상품, 예약 상품, 구성품 누락, 부분 배송, 분쟁 가능 문의를 테스트하는 샘플입니다.
- 이벤트 상품은 어떤 경우에도 교환 및 환불 불가
- 예약 상품은 입고 일정이 변경되어도 취소 제한
- 잘못 배송된 상품도 회수 배송비와 재배송비 고객 부담
- 배송 지연에 대한 보상 불가와 회사 책임 제한
- 개봉 후 발견한 하자 처리 제외
- 구성품 누락, 초기 불량, 오배송, 분쟁 가능 문의의 상담원 이관 기준 부족
해커톤 제출 시 전체 플러그인 루트는 src 안에 있어야 합니다.
submission.zip
├── src/
│ ├── .codex-plugin/plugin.json
│ ├── skills/channeltalk-policy-reviewer/SKILL.md
│ ├── examples/mellow-shop/
│ ├── examples/urban-gadget/
│ └── tools/
├── reports/
│ ├── mellow-shop-policy-readiness-report.md
│ ├── mellow-shop-policy-readiness-findings.json
│ ├── urban-gadget-policy-readiness-report.md
│ └── urban-gadget-policy-readiness-findings.json
├── docs/
├── README.md
└── logs/
logs/에는 AI와 주고받은 대화 로그를 편집·발췌 없이 원본 그대로 넣어야 합니다.
채널톡 ALF 같은 AI 상담에 투입하려는 이커머스 운영자, CX 매니저, 정책 문서 관리자가 사용합니다. FAQ, 환불정책, 배송정책, 상담원 이관 기준을 AI 상담 지식으로 넣기 전에 문서 간 충돌과 공식 기준 대비 검토 필요 항목을 확인하는 상황에서 씁니다.
AI 상담은 입력된 지식 문서의 내용에 크게 의존합니다. 정책 문서끼리 말이 다르거나 예외 없이 단정적인 환불, 배송, 책임 제한 문구가 있으면 AI가 고객에게 부정확하거나 과도하게 단정적인 답변을 할 수 있습니다.
Codex Skill이 고객 정책 문서를 읽고 정책 주장을 추출합니다. 이후 문서 간 충돌을 찾고, topic-map.json을 통해 먼저 볼 공식 기준 출처 ID를 고릅니다. Codex는 source-index.json에서 해당 출처의 전문 파일과 메타데이터를 확인한 뒤, 전문 안에서 관련 조항 또는 섹션을 직접 찾아 읽습니다. 고객 문구와 비교해 고쳐야 할 정책 문구, 확인한 기준 내용, 고객 문구와 기준 내용이 연결되는 이유, 바로 고칠 문구를 샘플별 Markdown 보고서와 JSON으로 작성합니다. 여러 샘플이 들어 있는 상위 폴더를 입력하면 하위 샘플마다 별도 report/json을 생성합니다.
AI는 문서의 자연어 정책 주장을 해석하고, 여러 문서의 표현 차이를 비교하며, 공식 기준 전문 txt 안에서 관련 조항 또는 섹션을 찾아 고객 문구와 함께 읽어 검토 이유를 설명합니다. 단순 키워드 매칭이나 Python 판정 로직이 아니라 Codex의 문서 이해와 비교 능력을 Skill 작업 흐름으로 사용합니다.
샘플 이커머스 정책 문서에 의도적 충돌과 검토 필요 문구를 넣고, Codex가 Markdown 보고서와 JSON findings를 작성하도록 합니다. 이후 Python 보조 스크립트로 JSON 형식과 금지 표현 여부만 검사합니다. 최종 판단은 Codex가 수행하며, Python은 판단하지 않습니다.
이 플러그인은 법률 자문이나 적법성 판단을 제공하지 않습니다. 공식 기준 대비 운영 검토가 필요한 지점을 찾는 사전 점검 도구입니다. 공식 기준은 이후 변경될 수 있으므로 실제 운영 전 공식 URL에서 최신성을 확인해야 합니다.