# task-2997 — InsuRo UI 정보구조·용어 정정 (소범위 · 되돌리기 쉬운 것만)

**레벨**: Lv.1 (UI 메타데이터·문구) · **팀**: dev5-team (마르둑) · **회장 승인 완료** (2026-08-22)

## ★ 범위를 일부러 좁혔다 — 읽고 시작하라
task-2994 전수점검이 찾은 문제 중 **메뉴 분류·용어·문구만** 고친다.
**화면 신설·입력방식 변경은 이 태스크가 아니다.** 별도 태스크로 분리했다.

이유(ANU·Codex 합의): 2026-08-22 하루에 이미 프로덕션 DDL 2회·프론트 배포 3회·PR 4건 머지가 있었다.
GitHub 승인 강제(Ruleset)는 아직 꺼져 있다. **오늘 추가 변경은 작고 되돌리기 쉬운 것으로 제한**한다.

---

## 고칠 것 4건 (전부 회장님이 직접 발견)

### ① `신규설계 비교` 섹션 분류 오류
```
현재: src/config/routes.ts  {path:"/new-design-comparison", section:"분석&도구"}
문제: 특정 고객의 기존 계약을 전제로 하는 기능인데 범용 도구 섹션에 있다.
      고객 증권분석(고객관리)에서 분석한 뒤 비교하려면 상단 탭을 바꿔 이동해야 해 맥락이 끊긴다.
조치: section 을 "고객관리" 로 변경
```
**판정 기준**(다른 항목에도 적용): 특정 고객 전제 → 고객관리 / 고객 무관 범용 → 분석&도구 / 데이터 등록·관리 → 관리자

### ② 용어 불일치 — "견적" vs "설계"
```
현재: 같은 화면에서 제목은 "신규설계 비교", 입력 라벨은 "신규 견적 JSON (coverages)"
문제: 설계사 실무에서 견적과 설계는 다른 말이다.
조치: 화면 내 "견적" 표현을 "설계" 로 통일. 단 실제로 견적을 뜻하는 곳이 있으면 두고 보고하라.
```

### ③ `약관 업로드` 가 설계사 메뉴에 노출
```
현재: {path:"/tools/policy-terms-upload", title:"약관 업로드", section:"분석&도구"}
실측: POST /api/insuro/policy-terms/upload = 상품 지식 DB 적재
      (보험사·상품명·상품코드·약관버전 입력) → 시스템에 상품을 등록하는 관리 작업
조치: section 을 "관리자" 로 변경
```
★ 주의: `고객 증권분석` 화면의 약관 PDF 첨부(`POST /api/insuro/analyze-policy`)는 **별개 기능**이다.
그건 특정 고객 분석용이므로 **건드리지 말 것.**

### ④ `약관 업로드` 화면 설명이 모순
```
현재: "약관 PDF를 업로드하면 담보 조항을 정독하여 판별축을 확보합니다.
       이후 보장분석 화면에서 증권과 함께 첨부하면 기존 담보 자동 매칭에 활용됩니다."
문제: 여기 올려놓고 또 첨부하라는 뜻으로 읽혀 같은 파일을 두 번 올리는 것처럼 보인다.
조치: 두 경로의 관계를 정확히 쓴다. 이 화면은 **상품 지식을 시스템에 등록**하는 곳이고,
      고객별 분석 시의 약관 첨부와는 **다른 작업**임이 드러나게 한다.
      문구는 봇이 작성하되, 사실과 다른 주장을 넣지 말 것. 확신이 없으면 ANU 에 보고하라.
```

---

## 이 태스크가 **하지 않는** 것 (별도 분리)
- **`신규설계 비교` 입력 방식 개선** — 현재 JSON 직접 입력이라 설계사가 쓸 수 없다.
  가입제안서·약관 PDF 업로드 UI 신설이 필요한데, **제안서 파싱 엔진과 붙여야 해서 규모가 크다.**
  이건 `복합설계 워크벤치 상부`에 해당하며 별도 태스크로 잡는다. **여기서 손대지 말 것.**
- task-2994 가 찾은 나머지 항목 — 후속 묶음으로 처리한다.

## 검증
1. 변경 전 `routes.ts` 의 해당 3개 라우트 원문을 기록한다(대조 근거).
2. 변경 후 section 값이 의도대로 바뀌었는지 확인한다.
3. **실브라우저로 사이드바를 열어** 각 항목이 옳은 섹션에 나타나는지 확인하고 스크린샷 첨부.
   ★ 사이드바는 스크롤이 필요할 수 있다. 목록 전체를 확인하라(2026-08-21 ANU 가 스크롤을 놓쳐
   "메뉴에 없다"고 오판한 사례가 있다).
4. `약관 업로드` 가 **관리자에게만** 보이는지, 비관리자에게는 안 보이는지 확인한다.
   (task-2996 의 라우터 가드가 이미 배포됐으므로 그것과 충돌하지 않아야 한다)
5. `npm run build` EXIT=0 · `npx vitest run` 회귀 유지(base 재측정 기준선. 명세 수치 아님).

## 범위 · 금지
**수정 허용**: `src/config/routes.ts` · `src/pages/NewDesignComparison.tsx` · `src/pages/PolicyTermsUpload.tsx` · 관련 테스트

**금지**:
- **화면 구조·입력 방식 변경** (JSON → PDF 업로드 등). 이 태스크는 분류와 문구만 다룬다
- `src/App.tsx` · `ContextSubMenu.tsx` — task-2996 결과물, 방금 배포됨
- `src/pages/PolicyAnalysis.tsx` — PR #215 가 이 파일에서 충돌 중
- `server/**` · `supabase/**`
- 사실과 다른 설명 문구 작성

## allowed_resources

```yaml
allowed_resources:
  paths:
    - "src/config/routes.ts"
    - "src/pages/NewDesignComparison.tsx"
    - "src/pages/PolicyTermsUpload.tsx"
    - "src/pages/__tests__/**"
    - "tests/**"
    - "e2e/**"
    - "memory/reports/task-2997.md"
  forbidden_paths:
    - "src/App.tsx"
    - "src/components/navigation/ContextSubMenu.tsx"
    - "src/pages/PolicyAnalysis.tsx"
    - "server/**"
    - "supabase/**"
    - "ops/**"
    - "scripts/**"
    - ".github/**"
  commands:
    - "npm run build"
    - "npx vitest run"
    - "npx playwright test"
  merge_policy: "tiered"
  ttl_hours: 48
```

## 운영 계약
- `origin/main` 기준 `git pull --ff-only` 후 시작
- ★ `gh` 호출 시 `GH_TOKEN="$BOT_GITHUB_TOKEN"` 주입 필수 (회장 개인 PAT 금지 — 감사기록 오염)
- 워크플로우 `/home/jay/workspace/prompts/DIRECT-WORKFLOW.md` · QC `/home/jay/workspace/teams/shared/QC-RULES.md`
- `WORKSPACE_ROOT=/home/jay/workspace` · `CHAT_ID=6937032012` · 수집자 key `ANU_KEY=c119085addb0f8b7`
- 완료 경로는 `finish-task.sh` 실행이 유일하다. 수동 `.done` 금지.
- **명세와 실측이 다르면 임의 판단하지 말고 ANU 에 보고하라.**

## 완료 조건
4건 반영 · 실브라우저 사이드바 스크린샷 · 관리자 전용 노출 확인 · 빌드 0 · 회귀 유지 · 화면구조 무변경

## 보고
**PR 생성까지가 범위다. 머지는 ANU 가 한다. 직접 머지하지 말 것.**
`memory/reports/task-2997.md` 작성 후 표준 완료 콜백 등록. 콜백 프롬프트 **UTF-8 3900 bytes 이하**.

## goal_assertions (auto-generated)
- `npm run build`
- `npx vitest run`
