cs
고객 문의/장애 신고를 받아 코드베이스에서 원인을 추적하고 대응 방안을 제시합니다.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Menü
고객 문의/장애 신고를 받아 코드베이스에서 원인을 추적하고 대응 방안을 제시합니다.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Basierend auf der SOC-Berufsklassifikation
지정 디렉터리의 문서를 심층 분석하여 지식을 추출하고, 기존 문서 갱신 + 신규 문서 생성으로 프로젝트 지식 베이스에 반영합니다.
기술 의사결정 기록 (Architecture Decision Record). 중요한 기술적 결정의 맥락, 대안, 근거를 구조화하여 기록합니다.
현재 디렉터리의 내용을 분석하여 어떤 목적의 폴더인지 파악
슬랙/메일/메신저로 받은 업무 요청 메시지를 분석하여 의도, 핵심 내용, 판단, 액션 플랜, 대응 가이드를 정리합니다.
비즈니스 규칙, 도메인 규칙, 상태 전이 규칙을 하나의 문서로 관리합니다. 변경 이력이 누적됩니다.
열린 질문, 문제 해결, 기술 의사결정, 아이디어 발산을 구조화합니다. 회의록이나 메모 파일 경로를 인자로 전달하거나 직접 질문하세요.
| name | cs |
| description | 고객 문의/장애 신고를 받아 코드베이스에서 원인을 추적하고 대응 방안을 제시합니다. |
| when_to_use | 고객 문의 들어왔어, 장애 신고, 안 된다고 한다, 원인 추적해줘. 고객사 정보 기록은 customer-profile. |
| allowed-tools | Read, Write, Glob, Grep, Bash |
외부-가시 문서:
rules/external-doc.md10원칙 준수. 고객 응대 메시지와 영향 설명은 고객에 노출. 내부 경로, 테이블명, 상수 금지, What > How, 정량과 절대 표기, 추측/확정 구분.
수행 단계:
핵심 원칙: CS는 속도가 생명. "코드를 다 읽어보겠습니다"가 아니라 가장 가능성 높은 원인부터 빠르게 좁혀가는 순서로 진행.
톤: 침착한 온콜 엔지니어. 고객 응대 메시지는 정중하게.
| 데이터 | 경로 | 필수/선택 | 부재 시 동작 |
|---|---|---|---|
| 프로젝트 컨텍스트 | CLAUDE.md | 선택 | 일반 SW 가정으로 진행, [프로젝트 규칙 미확인] 태그 |
| 봇 인덱스 | bot/INDEX.md 또는 .local.claude/ONBOARDING.md | 선택 | 디렉터리 Glob 으로 fallback |
| 비즈니스 규칙 | .local.claude/biz-rules.md | 선택 | Tier 1(도메인 무관) 점검만 수행 |
| 모듈 상세 | .local.claude/modules/{name}.md | 선택 | 코드 Grep 직접 fallback |
| 고객 프로필 | .local.claude/customers/{name}.md | 선택 | 고객사 맥락 부재. 일반 응대 가이드만 적용 |
| 계약/환경 설정 | .local.claude/contracts/, application-*-{env}.yml | 선택 | 환경별 특수성 반영 불가, [환경 확인 필요] 태그 |
| CS 이력 | .local.claude/cs/ | 선택 | 반복 이슈 패턴 감지 불가. 단일 케이스로 처리 |
| DDL/스키마 | **/ddl/*.sql | 선택 | DB 검증 수동, 코드 Grep 으로 fallback |
다음 파일이 존재하면 우선 read 하여 회사, 제품, 고객, 도메인, 외부 연동 정보를 파악:
CLAUDE.md (자동 로드, 기술 스택, 고객사, 외부 연동, 금지 사항)bot/INDEX.md 또는 .local.claude/INDEX.md (사실 카탈로그).local.claude/customers/*.md (고객사 특이사항과 설정 차이, 있을 시).local.claude/biz-rules.md (도메인 규칙, 있을 시)이 파일들이 없으면 일반 트러블슈팅 절차만 수행. 도메인 특화 진단은 사용자 입력에 의존.
CS 유형:
실제 코드를 직접 탐색하여 원인을 추적한다. 이것이 일반적인 트러블슈팅 가이드와의 차이.
| 탐색 대상 | 방법 | 용도 |
|---|---|---|
| URL에서 Controller | Grep으로 URL 패턴 검색 | 증상에서 코드 진입점 특정 |
| Controller에서 Service | Read로 Controller 코드 확인 | 호출되는 서비스 메서드 특정 |
| Service에서 Mapper | Read로 Service 코드 확인 | 실행되는 SQL 특정 |
| Mapper XML에서 SQL | Read로 XML 확인 | SQL 조건/로직 확인 |
| 모듈 분석 문서 | modules/{name}.md | 서비스 카탈로그, 테이블, 이벤트 연동 |
| 이벤트 흐름 | bot/INDEX.md 또는 .local.claude/ONBOARDING.md | 모듈 간 연동 문제 추적 |
| 설정/프로파일 | CLAUDE.md | 고객사별 설정 차이, 프로파일 오버라이드 |
| 비즈니스 규칙 | .local.claude/biz-rules.md | 상태 전이와 도메인 점검 카테고리 (4절). 격리, 정합성 등 위반 여부 |
| 고객사 프로필 | .local.claude/customers/{고객사}.md | 고객사 특이사항, 과거 이슈 이력, 설정 차이 |
| 테이블 DDL | .local.claude/ddl/*.md | 컬럼 정의 확인. 데이터 이상 CS에서 SQL 검증 |
| 인프라/배포 | .local.claude/INFRASTRUCTURE.md | 서버 정보, 포트, 배포 절차. 배포 후 장애 추적 |
| 팀 멤버 | .local.claude/team.md | git author를 담당자로 매핑, 변경자 확인 |
| 이전 CS 이력 | .local.claude/cs/, projects/*/cs/ | 유사 CS 사례 검색, 이전 해결 방법 재활용 |
| 지식 캡처 이력 | .local.claude/learn/*.md | 관련 도메인 지식이 기록되어 있는지 확인 |
| PMD 룰셋 | .local.claude/pmd/ | 코드 품질 관련 CS 시 참조 |
파일 경로가 제공된 경우 ($ARGUMENTS):
파일 경로가 없는 경우: 직접 증상을 설명받아 바로 시작.
증상 파악 후 긴급도에 따라 분석 순서가 달라진다:
| 긴급도 | 기준 | 분석 순서 |
|---|---|---|
| 긴급 (업무 중단) | 고객사 현업이 업무를 못 하는 상태 | 워크어라운드 먼저, 원인 추적은 후순위. 1단계 후 바로 5단계(즉시 대응), 이후 2~4단계 |
| 높음 (우회 가능) | 문제는 있지만 다른 방법으로 업무 가능 | 정상 순서 (1, 1-1, 2, 3, 4, 5, 6단계 순) |
| 보통/낮음 | 불편하지만 업무 영향 적음 | 정상 순서, 풀 분석 |
긴급 CS에서는 "왜"보다 "어떻게 우회할지"가 먼저. 원인 분석은 워크어라운드 제공 후 진행.
1) 문제 검증: 이게 진짜 풀어야 할 문제인가?
2) 접근 방식 검증: 이 방법이 맞나?
3) 스코프 방어: "이 버그 고치는 김에 저것도 봐주세요"가 들어오면: 원래 CS 범위 안인지 확인. 별개 증상이면 "별도 CS로 분리합니다" 제안.
1)에서 "문제가 아님" 또는 "부산물"이면 근본 방향을 먼저 제시. 2)에서 더 단순한 방법이 있으면 그것을 먼저 제시. 코드 추적은 1)과 2)를 배제한 뒤에 진입.
4) 장애 판별: 비중 확인 결과 대다수가 영향받는 상황(장애)이면, 아래 원칙 적용:
입력(고객 보고, 슬랙 메시지, 에러 로그 등)에서 핵심 정보를 추출:
| 항목 | 설명 | 없으면 |
|---|---|---|
| 증상 | 무엇이 안 되는가 | 필수. 없으면 질문 |
| 화면/URL | 어느 화면에서 발생하는가 | 이걸 알면 코드 진입점을 바로 특정 가능 |
| 고객/테넌트 | 어느 고객, 어느 테넌트인가 (격리 키, 있는 프로젝트만) | 고객별 설정 차이 확인에 필요 |
| 재현 조건 | 항상? 특정 조건에서만? | 간헐적이면 데이터/타이밍 문제 의심 |
| 에러 메시지 | 화면 에러, 콘솔 에러, 서버 로그 | 있으면 원인 특정 속도 크게 향상 |
| 발생 시점 | 언제부터? 배포 후? 갑자기? | 배포 직후면 최근 변경 코드 확인 |
빠진 정보가 있으면 질문 (최대 3개, 가장 추적에 도움되는 것부터):
**CS 분석을 위해 확인이 필요합니다**
1. [질문] (이유: [이걸 알면 원인을 어떻게 좁힐 수 있는지])
코드 추적 전에 같은 문제가 이전에도 있었는지 확인한다. 이전 해결 방법을 재활용할 수 있다.
# 이전 CS 분석 파일에서 유사 키워드 검색
grep -rl "증상 키워드" .local.claude/cs/ .local.claude/projects/*/cs/ 2>/dev/null
# 지식 캡처 이력에서 관련 정보 검색
grep -rl "관련 키워드" .local.claude/learn/ 2>/dev/null
유사 사례 판단 기준:
| 상황 | 판단 | 다음 행동 |
|---|---|---|
| 동일 증상의 이전 CS 발견 | 재발. 이전 근본 수정이 불완전했을 가능성 | 이전 CS의 원인과 해결 방법을 참조하여 추적 범위 좁히기 |
| 유사하지만 다른 모듈/고객사 | 패턴. 공통 원인(공통 모듈, 설정) 의심 | 이전 해결 방법이 이번에도 적용 가능한지 확인 |
| 이전 사례 없음 | 신규. 처음부터 추적 | 다음 단계 진행 |
발생 시점 분석:
코드 추적 전에 먼저 배포와의 연관성을 확인한다. "배포 후에 갑자기 안 된다"면 최근 변경이 원인일 가능성이 높다.
# 최근 develop 머지 확인 (배포 기준)
git log --merges --oneline -10 develop
# 의심 모듈/경로의 최근 변경 + 변경자
git log --oneline -10 -- {의심경로}
# 예: git log --oneline -10 -- modules/orders/
# 특정 파일의 최근 변경자와 내용 요약
git log --format="%h %an %ad %s" --date=short -5 -- {파일경로}
# 최근 N일 내 변경된 파일 목록
git log --since="3 days ago" --name-only --oneline
배포 연관성 판단 기준:
| 상황 | 판단 | 다음 행동 |
|---|---|---|
| 발생 시점과 최근 머지 시점이 일치 | 배포 기인 가능성 높음 | 해당 PR/커밋의 변경 내용 집중 확인 |
| 의심 파일에 최근 변경 있음 | 변경 코드 diff 확인 | git diff {커밋}~1 {커밋} -- {파일} |
| 특정 고객사에서만 발생 + 최근 배포 없음 | 데이터/설정 문제 의심 | 고객사 프로필, 프로파일 설정 확인 |
| 오래전부터 발생 | 기존 버그 또는 데이터 누적 문제 | 코드 추적으로 전환 |
변경자 확인: team.md 와 대조하여 해당 변경을 한 팀원을 특정한다. 맥락 확인이 필요하면 직접 물어볼 수 있음.
[1M 활용] 서브 분할 없이 메인에서 직접 다중 파일 동시 로드 후 교차:
- 로드:
.local.claude/modules/{의심모듈}.md,.local.claude/biz-rules.md4절,.local.claude/customers/{고객사}.md,.local.claude/ddl/{관련테이블}.md, 의심 Controller, Service, Mapper 파일- 교차: {modules 의 이벤트 흐름 vs 증상이 가리키는 체인}, {biz-rules 도메인 경계 조건 vs 재현 조건}, {customers 커스터마이징 vs DDL 제약, 고객사별 차이가 증상 원인인지 탐지}
증상에서 코드까지 Outside-In으로 추적. 증상 (화면/URL)에서 출발해 순서대로:
추적 시 확인 포인트:
.local.claude/biz-rules.md 의 도메인 경계 조건 자동 활용: 격리 키, 상태 전이, 승인 연동, 정합성 등)/biz-rules 로 도메인 카테고리를 채울 것 권장가능한 원인을 우선순위순으로 제시:
### 의심 원인 (가능성 높은 순)
#### 1순위: [원인]
**근거**: [코드의 어느 부분에서 이 문제가 발생할 수 있는지]
**파일**: `{경로}:{라인 범위}`
**확인 방법**: [이 원인이 맞는지 확인하는 방법]
- SQL 직접 실행해서 데이터 확인
- 로그에서 특정 패턴 검색
- 특정 조건으로 재현 시도
#### 2순위: [원인]
...
즉시 대응과 근본 수정을 구분:
### 대응 방안
#### 즉시 대응 (워크어라운드)
고객이 당장 업무를 할 수 있게 하는 임시 조치.
- [방법]: ...
- [리스크]: 이 워크어라운드의 부작용
- [기한]: 근본 수정 전까지
#### 근본 수정
원인을 제대로 해결하는 코드 수정. 가능하면 2개 이상의 수정 방안을 제시.
| 구분 | 방안 A ((추천)) | 방안 B |
|------|----------------|--------|
| 수정 내용 | ... | ... |
| 수정 파일 | `{경로}` | `{경로}` |
| 장점 | ... | ... |
| 단점 | ... | ... |
| 영향 범위 | ... | ... |
| 소요 시간 | ... | ... |
수정 방법이 하나뿐이면 단일안 + 대안이 없는 이유 명시.
비기술적 대안(프로세스 변경, 설정 조정, 데이터 패치 등)도 유효하면 포함.
#### [OK] 해결 확인 방법
이 CS가 해결되었다고 판단하는 기준:
- [확인 방법]: (예: "해당 화면에서 목록이 정상 조회됨", "에러 로그 미발생")
- [확인 환경]: (예: "개발 환경에서 해당 테넌트/계정으로 재현 테스트")
[메타인지] 고객 응대 메시지 초안 작성 직전, 의심 원인 Top 3 에 대해:
- 근거 재점검 (파일:라인 인용이 실제 재현 조건을 설명하는가 vs 일반 가설인가)
- 전제 검증 (격리 키, 상태 코드, 권한 체크 중 어느 것이 진짜 누락되었는지 코드로 확인됐는가)
- 반대 증거 ("왜 다른 고객사에서는 발생 안 하나? 왜 지금까지 발견 안 됐나? 최근 배포 변경이 진짜 원인인가?")
고객에게 보낼 수 있는 메시지 초안:
### 고객 응대 메시지 (초안)
#### 원인 파악 중일 때
> 안녕하세요, [고객사]님.
> 말씀해주신 [증상 요약] 현상을 확인하고 있습니다.
> 현재 원인을 파악 중이며, [예상 시간] 내로 진행 상황을 안내드리겠습니다.
> 불편을 드려 죄송합니다.
#### 원인 파악 완료 + 수정 예정일 때
> 안녕하세요, [고객사]님.
> 말씀해주신 [증상 요약] 현상의 원인을 확인했습니다.
> [원인을 비기술적으로 설명].
> [즉시 워크어라운드가 있으면: 우선 [워크어라운드]로 업무 진행 부탁드리며,]
> 수정은 [예상 일정]까지 완료하여 적용할 예정입니다.
> 추가 문의사항이 있으시면 말씀해주세요.
#### 설정/사용법 문제였을 때
> 안녕하세요, [고객사]님.
> 확인 결과, [설정/사용법 설명]으로 해결 가능한 사항이었습니다.
> [구체적 안내: 어디서 무엇을 하면 되는지].
> 혹시 동일한 현상이 다시 발생하면 말씀해주세요.
## CS 분석: [증상 요약]
**고객/테넌트**: [이름] (격리 키: [코드, 있으면])
**신고 채널**: 슬랙 / 전화 / 이메일 / 티켓
**긴급도**: 긴급(업무 중단) / 높음(우회 가능) / 보통 / 낮음
### 증상 정리
| 항목 | 내용 |
|------|------|
| 증상 | |
| 화면/URL | |
| 재현 조건 | |
| 에러 메시지 | |
| 발생 시점 | |
### 이전 유사 사례
이전 CS에서 동일/유사한 증상이 있었는지, 있었다면 당시 원인과 해결 방법.
- 재발: 이전 CS 파일 경로 + 당시 해결 방법 + 이번에 다른 점
- 신규: "이전 사례 없음"
### 배포/변경 이력
최근 배포와의 연관성, 의심 파일의 최근 변경자 및 커밋.
### 코드 추적 경로
URL, Controller, Service, Mapper 순서로 추적한 경로.
### 의심 원인 (가능성 높은 순)
#### 1순위: ...
#### 2순위: ...
### 대응 방안
#### 즉시 대응 (워크어라운드)
#### 근본 수정
### 고객 응대 메시지 (초안)
### 재발 방지
이 문제가 다시 발생하지 않도록 할 구체적 조치. 해당하는 것만 기재:
- [ ] 코드 수정 후 유사 케이스도 함께 점검 (같은 패턴이 다른 모듈에도 있는지)
- [ ] biz-rules.md에 규칙 추가 (`/biz-rules`로 기록)
- [ ] 고객사 프로필에 이번 CS 이력 추가 (`/customer-profile`)
- [ ] learn 이력에 알게 된 사실 기록 (`/learn`)
- [ ] 코드 리뷰 시 체크 포인트 추가 (review 스킬 참조)
- [ ] 모니터링/알림 추가 필요 여부
코드 추적 전에 빠르게 의심할 수 있는 패턴:
| 증상 | 빈출 원인 | 확인 방법 |
|---|---|---|
| "저장이 안 돼요" | 필수값 누락, 권한 부족, 중복 키 | 브라우저 콘솔 + 서버 로그 |
| "목록이 안 보여요" | 격리 키 조건 누락, 상태 코드 필터, 권한 (biz-rules.md 도메인 경계 점검 자동 활용) | SQL 직접 실행 |
| "화면이 안 떠요" | JS 에러, 템플릿 오류, 메뉴 권한 | 브라우저 콘솔 + 서버 에러 로그 |
| "느려요" | N+1 쿼리, 인덱스 미적용, 대량 데이터 풀스캔 | slow query 로그, 실행계획 |
| "알림이 안 와요" | 스케줄러 미실행, RPC 연결 실패, 외부 연동 서버 다운 | 스케줄러 로그, 연동 상태 |
| "로그인이 안 돼요" | JWT/세션 만료, 비밀번호 오류 제한, IP 블록, 계정 잠금 | 사용자 계정 테이블 상태, 인증 로그, 시스템 로그 |
| "메뉴가 안 보여요" | 모듈 권한 미부여, 메뉴 권한 설정 | 권한 테이블 (메뉴, 모듈) 체크 |
| "숫자가 맞지 않아요" | 집계 쿼리 조건 불일치, 동시성, 이벤트 누락 | SQL 조건 비교, 이벤트 로그 |
| "엑셀 다운로드 오류" | 대량 데이터 OOM, 타임아웃 | 서버 메모리 로그, 데이터 건수 |
| "파일 업로드 안 됨" | 용량 제한, 확장자 제한, 스토리지 풀 | 서버 로그, 스토리지 상태 |
코드만으로 원인 특정이 어려울 때, 사용자에게 실행 가능한 SQL 쿼리 (프로젝트 DB 문법) 와 함께 DB 조회를 요청한다.
요청이 필요한 상황:
요청 형식:
**DB 확인 요청**: 원인 특정을 위해 아래 쿼리 결과가 필요합니다.
1. [확인 목적]
```sql
SELECT ... FROM ... WHERE {격리 키 컬럼} = '{테넌트/계정 코드}' AND ...
결과를 붙여주시면 분석을 계속하겠습니다.
**제약:**
- 쿼리는 SELECT만 (INSERT/UPDATE/DELETE 절대 불가)
- 격리 키 (있는 프로젝트) 조건 반드시 포함
- 민감 데이터(비밀번호, 개인정보) 조회 금지
**결과 축적:**
사용자가 제공한 DB 정보 중 재활용 가치가 있는 것은 파일로 저장한다.
| 데이터 유형 | 저장 위치 | 조건 |
|------------|----------|------|
| 테이블 DDL/컬럼 구조 | `.local.claude/ddl/{테이블명}.md` | 기존 DDL 문서에 없는 테이블 |
| 공통 코드 테이블 값 | `.local.claude/biz-rules.md` 에 반영 | 기존 규칙에 없는 코드그룹 |
| 인덱스/제약조건 정보 | 해당 DDL 파일에 추가 | 성능 관련 분석에서 확인한 것 |
- 이미 문서에 있는 정보는 중복 저장하지 않음
- 저장 시 출처(날짜, 어떤 CS에서 확인했는지) 간단히 기록
- 고객사별로 다른 값은 고객사 표시 포함
## 파일 저장
Frontmatter (CONTRACT 7-2절 표준): `category: cs, retention: 30d, harvest_targets: [customers/*.md]`
CS 분석 결과를 반드시 마크다운 파일로 저장한다.
### 프로젝트 연관 판단
1. 증상이 특정 프로젝트/기능과 관련되면 해당 프로젝트
2. `ls .local.claude/projects/`로 기존 프로젝트 확인
3. 해당 없으면 독립 저장
### 저장 경로
- 프로젝트 관련이면 `.local.claude/projects/{project-name}/cs/YYYY-MM-DD-{증상요약}.md`
- 독립적이면 `.local.claude/cs/YYYY-MM-DD-{증상요약}.md`
- 디렉터리 없으면 `mkdir -p`로 생성
### 저장 시점
- 원인 분석 + 대응 방안 제시 완료 시 저장
- 저장 후 파일 경로 안내
### 고객사 프로필 자동 업데이트
CS 분석 완료 후, 해당 고객사 프로필에 이번 CS 이력을 자동 추가한다:
1. 고객사가 특정되면 `.local.claude/customers/{고객사}.md` 파일을 Read
2. CS 히스토리 섹션에 한 줄 추가: `- YYYY-MM-DD: [증상 요약] / 원인: [원인] / 해결: [해결 상태]`
3. 파일이 없으면 "고객사 프로필이 없습니다. `/customer-profile`로 생성하시겠습니까?" 안내
## 다른 스킬과의 경계
| 질문 | 담당 | 이 스킬에서 |
|------|------|-----------|
| 고객 문의/장애의 코드 원인 추적, 즉시 대응, 고객 응대 초안 | **이 스킬** | 핵심. 원인 추적 SSOT |
| 고객사 특성과 이력의 장기 누적 관리 | /customer-profile | CS 이력 한 줄 추가만. 프로필 관리는 위임 |
| 근본 수정을 버그 이슈로 등록 | /issue | CS 분석 경로 전달만. 이슈 작성은 위임 |
| 고객 응대 메시지를 수신자에 맞게 가공과 전달 | /draft | 초안 제공만. 수신자 맞춤 가공은 위임 |
## 다음 스킬 연결
분석 완료 후 안내:
- 고객사 담당에게 결과를 전달해야 하면 `/draft` (CS 분석 파일 경로 전달, 고객 응대 메시지를 수신자에 맞게 가공)
- 요청이 `/analyze-request`에서 넘어온 경우 `/draft` 호출 시 같은 thread 유지
- 버그 이슈 생성이 필요하면 `/issue` (CS 분석 파일 경로 전달)
- 근본 수정이 크면 `/todo` (수정 사항을 개발 작업 목록으로)
## 제약조건
- **외부-가시 문서 공통 원칙 준수**: `rules/external-doc.md` (가독성 5 + 정직성 5). 고객 응대 메시지와 영향 설명은 외부 독자가 읽으므로 10원칙 공통 적용.
- **추측하지 않고 코드를 직접 확인한다.** "아마 이 부분일 겁니다"가 아니라 "이 파일 N번째 줄에서 이 조건이 문제일 수 있습니다" 수준으로.
- 의심 원인은 반드시 **확인 방법**과 함께 제시. 개발자가 바로 검증할 수 있게.
- 고객 응대 메시지는 **비기술적 언어**로. "NULL 포인터 예외"가 아니라 "특정 조건에서 데이터 처리 과정에 오류".
- 즉시 대응과 근본 수정을 반드시 분리. 긴급할 때 워크어라운드로 먼저 대응하고, 근본 수정은 별도 일정.
- 고객사별 설정 차이(`application-{env}_{customer}.yml`)를 고려. 한 고객사에서만 발생하면 프로파일 차이 의심.
- 수정이 필요하면 영향 범위를 반드시 명시. CS 수정이 다른 기능을 깨뜨리면 안 됨.
- 근본 수정이 크면 `/todo` 스킬로 연결하여 작업 목록 생성 제안.
- 근본 수정은 가능하면 복수안(2~3개)으로 제시하고 트레이드오프를 비교. 비기술적 대안(프로세스 변경, 설정 조정 등)도 고려 (CLAUDE.md '문제 해결 방안 제시 원칙' 참조).
- 근본 수정이 당장 어려우면 "불가"로 끝내지 않고, 스코프 조정/단계적 실행 등 실행 가능한 대안을 도출한다.
## 검증 시나리오
공통 3블록(빈 / 부분 / 풀 데이터)은 **CONTRACT 6-1절** 참조.
### 이 스킬의 고유 실패 시나리오
**[데이터 결함]** 배포 이력과 실제 증상 시간 불일치
- 신호: 배포 로그에는 특정 시점 변경 없으나, 고객 증상 발생 시점이 그 사이에 위치
- 대응: 양쪽을 기술한다. "배포 이력: 증상 시점 전후 변경 없음 / 고객 보고: 해당 시각 이상 발생"으로 적고, 인프라와 외부 의존을 원인 후보로 추가
**[도메인 특수성]** 고객사 프로필 없는 1회성 CS
- 신호: `customers/{name}.md` 부재 + 단발성 문의(반복, 계약 이력 없음)
- 대응: 일반 응대 템플릿만 출력, 프로필 생성 제안은 생략