---
name: a10-maintenance-triage
description: >
  This skill should be used when the user asks "유지보수 건 검토해줘", "접수 수용여부 판단",
  "CSA10-XXX 검토안 만들어줘", "유지보수 → 개선으로 이관할까", "이 버그 고쳐도 타 고객 영향 없나",
  또는 CSA10/UBA/UAC/EO/BC10 티켓을 받아 수용여부 판단 → 수정안 검토까지 구조화된
  검토안을 산출하려 할 때. 유지보수 접수 → 수용 판단 → 수정안 → 이관 판단까지의
  표준 워크플로우를 제공한다.
version: 0.2.0
---

# 유지보수 접수 검토 (Maintenance Triage)

유지보수 접수건(오류/개선/문의)을 **수용여부 판단 → (수용 시) 수정안 검토** 2단계
프레임워크로 표준화한다. JIRA 조회는 `a10-jira` 스킬에 위임하고, 이 스킬은
**판단 로직·검토 산출물**을 담당한다.

## JIRA 프로젝트 분류 체계

### 유지보수 트랙 (이 스킬 주 대상)

| 코드 | 이름 | 주 고객 | 특징 |
|---|---|---|---|
| **CSA10** | Amaranth 10 통합 유지보수 | A10 전 고객 | 오류·문의·개선 접수 혼재 |
| **UBA** | Alpha 유지보수 | Bizbox Alpha 레거시 | 2017 단종 예정, 유지 한정 |
| **UAC** | Alpha Cloud 유지보수 | Alpha Cloud | Alpha 클라우드 호스팅 |
| **EO** | OmniEsol 통합 유지보수 | OmniEsol | - |

### 검수 트랙

| 코드 | 이름 | 용도 |
|---|---|---|
| **BC10** | Amaranth 10 통합 검수 | 릴리스 직전 통합 검수 단계 이슈 |

### 고도화 트랙 (유지보수에서 이관되는 대상)

| 코드 | 이름 | 이관 규칙 |
|---|---|---|
| **KLAGOP1** | Amaranth 10 통합 개발 | A10 신규 개발·대규모 개편 |
| **A10D** | Amaranth 10 통합 개발(고도화) | A10 **기능 고도화** — 유지보수에서 패키지 개선으로 확정된 건의 주 이관처 |
| **UCAIMP** | Alpha 패키지 고도화 | Alpha 패키지 개선 — UBA/UAC에서 이관 |

## 접수 유형 판정 (첫 관문)

### 판정 기준

| 입력 신호 | 유형 |
|---|---|
| JIRA 유형 `버그`, `시스템오류`, `검수버전오류`, `버그/개선` 중 기능 실패 명시 | **오류** |
| JIRA 유형 `개선`, `개선요청`, 요약에 `개선/추가/변경/지원 요청` | **개선** |
| JIRA 유형 `사용법문의`, `시스템문의`, `데이터요청/수정` | **문의·데이터 작업** (판단 보조트랙) |
| JIRA 유형 `UC` | **혼재** — 본문·댓글에서 오류/개선 구분 필요 |

> CSA10의 `UC` 유형은 "유지보수 콜(Use Case)" 의미로 오류·개선·문의가 섞여 있음.
> 본문의 `■ 접수 내용` 섹션으로 최종 판정.

## 1단계 · 수용여부 판단

### 오류 (Bug) 판단 체크리스트

4개 항목 모두 평가하여 **종합 판정**. 단일 항목 ❌만으로 기각하지 않음.

| # | 항목 | 질문 | 증거 요구 |
|---|---|---|---|
| ① | **오류 명백성** | 기능이 스펙/설계서대로 동작하지 않는가? | 재현 절차, 스펙 인용, 원격 재현 로그 |
| ② | **재현성** | 접수자 외 환경에서 재현 가능한가? | 운영Unit 원격 재현 / 개발자 로컬 재현 |
| ③ | **타 고객 영향(수정 시)** | 수정이 다른 고객 환경에 역기능을 유발할 가능성? | 영향 파일·API 목록, 공통 로직 여부 |
| ④ | **유사 이력** | 과거 동일/유사 케이스 해결 이력이 있는가? | 유사 JIRA 키 3건 이상, 해결 커밋 |

**판정 매트릭스**

| ① 명백 | ② 재현 | ③ 영향 낮음 | 판정 |
|---|---|---|---|
| ✅ | ✅ | ✅ | **즉시 수용** |
| ✅ | ✅ | 🔴 | **수용 — 회귀 테스트 계획 필수** |
| ✅ | 🟡 | - | **수용 조건부** — 재현 시나리오 보강 후 착수 |
| 🟡 | - | - | **보류** — 명세·요구사항 확정 선결 |
| ❌ | - | - | **기각 후보** — 사용자 오해/설정 미스 가능성, 고객사 재확인 |

### 개선 (Improvement) 판단 체크리스트

패키지 제품으로서의 수용성이 핵심. 5개 항목 평가.

| # | 항목 | 질문 | 평가 기준 |
|---|---|---|---|
| ① | **전 고객 유익성** | 모든 고객에게 도움이 되는 기능인가? 특정 고객 전용인가? | 일반화 가능성 · 업계 공통 요구 여부 |
| ② | **패키지 수용성** | 패키지 철학·UX 원칙과 정합하는가? 경쟁사 표준인가? | 제품 방향성과의 정합 |
| ③ | **접수 빈도** | 동일/유사 개선 요청이 과거에 몇 건 접수되었는가? | JIRA 유사 검색 결과 |
| ④ | **패키지 영향도** | 기존 기능 동작·설정·데이터 구조에 미치는 파급효과 | 변경 범위(모듈/공통/DB 스키마) |
| ⑤ | **대체 수단** | 기존 기능·설정으로 우회 가능한가? | 관리자 설정·커스텀 개발 가능성 |

**판정 매트릭스**

| ① 유익 | ② 정합 | ③ 빈도 | ④ 영향 | 판정 |
|---|---|---|---|---|
| 고 | 고 | ≥3건 | 저 | **수용 → A10D/UCAIMP 이관** |
| 고 | 고 | 1~2건 | 저 | **수용 후보 → 로드맵 검토** |
| 고 | 중 | - | 고 | **보류 → 기획 리뷰 의제** |
| 중 | - | - | - | **기각 또는 커스텀** — 고객사 단독 커스텀 개발 안내 |
| 저 | - | - | - | **기각** — 접수 의도 재확인 |

### 문의·데이터 작업

- `사용법문의`, `시스템문의` → **운영Unit FAQ 또는 기능 안내로 종결**. 소스 수정 없음.
- `데이터요청/수정` → **DBA·운영 담당 데이터 패치 영역**. 검토안 경량 버전만 작성.
- 문의가 "버그 의심"으로 판명되면 → 오류로 재분류 후 위 오류 체크리스트 적용.

## 2단계 · 수정안 검토 (수용 후)

### 오류 수정안 구성

1. **근본 원인 가설** (신뢰도 표기: 매우 높음/높음/중간/낮음)
   - 각 가설별 영향 파일, 의심 코드 섹션, 추가 조사 필요 항목
2. **수정 방향 후보** (가설별 1:1 대응)
   - 수정 범위: 해당 모듈 국소 / 공통 로직 / API 계약 변경
   - 회귀 리스크 평가 (낮음/중간/높음)
3. **선행 조사 액션** (checkbox 리스트)
   - DB 덤프, 로그 수집, 재현 환경 구축
4. **검수 체크리스트** (checkbox 리스트)
   - 회귀 시나리오, 고객사 검증, 릴리스 단계

### 개선 수정안 구성

1. **요구사항 명세**
   - 접수 요약, 유사 접수 목록, 일반화된 요구사항 재진술
2. **설계 옵션** (2~3안)
   - 옵션별 장단점, 구현 공수, 설정 UI 변경 여부
3. **패키지 영향도**
   - 기존 고객 마이그레이션, 설정 기본값 정책, 문서 개정 범위
4. **이관 대상 선정**
   - A10D / UCAIMP / KLAGOP1 중 선택 근거
5. **일정·우선순위 제안**
   - 다음 분기·차기 릴리스 후보 여부

## 이관 규칙 (유지보수 → 고도화)

유지보수 접수건이 **패키지 개선**으로 확정되면 다음 규칙으로 이관:

| 원 티켓 | 이관 대상 | 조건 |
|---|---|---|
| CSA10 (A10) | **A10D** | 기능 고도화·UX 개선 |
| CSA10 (A10) | **KLAGOP1** | 신규 모듈·대규모 개편 |
| UBA / UAC (Alpha) | **UCAIMP** | Alpha 패키지 개선 |
| UBA / UAC (Alpha) | - | Alpha는 2017 단종 예정 → **이관 지양**, 필수 보수만 |
| EO (OmniEsol) | - | 이관 대상 프로젝트 미정 → 사내 합의 후 처리 |

### 이관 절차

1. 원 티켓(CSA10/UBA/UAC)에 **이관 결정 댓글** 추가 + 상태 `보류/이관` 전이
2. 이관 대상 프로젝트(A10D/UCAIMP)에 **신규 티켓 생성** — Epic·Fix Version 배정
3. 원 티켓 ↔ 이관 티켓 JIRA `relates to`/`causes` 링크 걸기
4. **접수 고객사 회신** — "패키지 개선 이관 완료, 차기 릴리스 반영 예정" 안내
5. `_projects/`에 해당 이관 티켓의 PRJ 파일이 있다면 연결

## 산출물 저장 경로

### 개별 검토안

`{모듈}/유지보수/{YYYYMMDD}-{JIRA키}-검토안.md`

예시:
- `게시판/유지보수/20260420-CSA10-44921-검토안.md`
- `게시판/유지보수/20260420-CSA10-44945-검토안.md`

### 검토안 일괄 인덱스

`{모듈}/유지보수/_index.md` — 이 모듈에서 처리된 검토안 목록 (최신순).

```markdown
| 일자 | JIRA키 | 유형 | 판정 | 이관 | 링크 |
|------|--------|------|------|------|------|
| 2026-04-20 | CSA10-44921 | 오류 | 수용 | - | [검토안](20260420-CSA10-44921-검토안.md) |
| 2026-04-20 | CSA10-44945 | 오류 | 수용(조건부) | - | [검토안](20260420-CSA10-44945-검토안.md) |
```

## 진행 로그 & 자동 상태 전이 (v0.2.0)

각 검토안은 frontmatter `status` + 본문 `## 📊 진행 로그` 테이블로 생애주기를 추적한다.

### 상태 머신

```
수용 → 개발중 → 설계검수 → QA → 배포완료 → 처리완료
                                        └─ (수동)
보류 / 기각  (가지)
```

- 수용 → 개발중 → 설계검수 → QA → 배포완료: **자동** (`/a10-triage-status`)
- 배포완료 → 처리완료: **수동** (`/a10-triage-close`)
- 기각·보류 전이: 수동

### 브랜치 → 상태 매핑

| 브랜치 | 상태 |
|---|---|
| develop | 개발중 |
| devqa | 설계검수 |
| sqa | QA |
| master | 배포완료 |

### 지연 경고

수용 후 **7일** 이내 연관 커밋 0건 → `/a10-triage-status` 가 경고 리포트에 포함.

## .forge 연계 (v0.2.0)

진행 중 검토안(수용·개발중·설계검수·QA)은 `a10-forge-bridge` 에 의해
Workspace_a10 해당 모듈 레포의 `.forge/maintenance/` 로 경량 복제된다.
경량 템플릿: [`templates/lite-review.md`](templates/lite-review.md).

배포완료·처리완료·기각 건은 `.forge/` 에서 자동 제거된다.

## 실행 절차 (`/a10-triage` 커맨드 호출 시)

### 입력

- JIRA 키 하나 또는 여러 개 (예: `CSA10-44921`, `CSA10-44921,CSA10-44945`)
- 옵션: `--module <게시판|CRM|...>` (자동 추론 실패 시)

### 단계

1. **JIRA 원본 조회** — `a10-jira` 스킬 활용, `key in (...)` 애드혹 JQL로 description·comments·components·fixVersions·labels·assignee 획득
2. **접수 유형 판정** — 위 판정 기준 적용
3. **유사 이력 검색** — 같은 모듈 내 최근 1년 유사 요약/설명 키워드 검색 (3~5건)
4. **소스 연계 분석** (오류·대형 개선 한정)
   - Workspace_a10의 해당 모듈 레포에서 관련 파일·로직 식별
   - 과거 해결 커밋(동일 JIRA 키 패턴) git log 검색
5. **검토안 생성** — `templates/triage-review.md` 복제 후 섹션별 채움
6. **저장 + 인덱스 갱신** — `{모듈}/유지보수/` 저장 + `_index.md` 행 추가
7. **사용자에게 요약 보고** — 판정·신뢰도·다음 액션 3~5줄 + 검토안 파일 링크

## 사용 예시

```
/a10-triage CSA10-44921                     # 단일 건
/a10-triage CSA10-44921,CSA10-44945         # 복수 건
/a10-triage CSA10-44921 --module 게시판      # 모듈 수동 지정
/a10-triage --list-recent 게시판 30          # 게시판 모듈 최근 30일 미판정 접수 나열
```

## 치명적 주의

- **JIRA 이슈 상태 변경 금지** — `/a10-jira`는 조회 전용. 상태 전이·댓글은 PM이 JIRA UI에서 수동 처리
- **수용 판정 = 최종 결재 아님** — 검토안은 의사결정 지원 산출물. 실제 착수는 팀리더·PM 승인 후
- **고객사 회신 텍스트 자동 전송 금지** — 회신 초안은 검토안에 포함하되, 발송은 운영Unit 담당자가 수행
- **이관 JIRA 티켓 자동 생성 금지** — A10D/UCAIMP 이관은 PM이 JIRA에서 직접 처리. 검토안엔 "이관 권고" 문구만
- **추측 금지** — 소스 확인 없이 원인을 단정하지 말 것. 신뢰도를 항상 명시

## 연계 스킬

- `a10-jira-classifier` — JIRA 트랙 분류 (v0.2.0 신규)
- `a10-jira-query` — JIRA 조회
- `a10-git-daily` — 과거 해결 커밋 검색 + 3-way 조인
- `a10-daily-digest` — 일일보고 캐시 조회 (v0.2.0 신규)
- `a10-forge-bridge` — `.forge/` 주입 (v0.2.0 신규)
- `a10-task-manager` — `{모듈}/tasks/` 계층 관리
- `a10-history-manager` — 의사결정 기록

## 관련 파일

- 검토안 템플릿: [`templates/triage-review.md`](templates/triage-review.md)
- 커맨드: [`../../commands/a10-triage.md`](../../commands/a10-triage.md)
