# [micro] 계산기 보험나이 stale 표시 제거 (CALC_STALEAGE_FIX)

## allowed_resources
```yaml
allowed_resources:
  paths:
    - "src/pages/Calculators.tsx"
    - "src/pages/__tests__/**"
    - "memory/reports/**"
  forbidden_paths:
    - "server/**"
    - "extension/**"
    - ".github/**"
  commands:
    - "npx vitest"
    - "npx tsc"
    - "git"
  merge_policy: "tiered"
  ttl_hours: 6
```

## 대상
- 리포: `/home/jay/projects/InsuRo`
- 브랜치: **`task/task-2807-calcage-dev6`** (PR #112, 이미 push됨 — 이 브랜치에 이어서 커밋. 새 PR/새 브랜치 금지)
- 파일: **`src/pages/Calculators.tsx` 1곳** + 테스트

## 문제 (Gemini medium, 실제 버그)
`calcInsuranceAge` (Calculators.tsx ~L137):
```js
const calcInsuranceAge = useCallback(() => {
  const result = calcInsuranceAgeFrom(birthDate, new Date());
  if (!result) return;              // ← 무효 입력 시 이전 값이 화면에 잔존
  setInsuranceAge(result);
}, [birthDate]);
```
유효한 나이를 한번 계산한 뒤 **미래날짜 등 무효 입력**으로 재계산하면 이전 `insuranceAge`가 안 지워지고 그대로 표시됨.

## 수정
```js
const calcInsuranceAge = useCallback(() => {
  const result = calcInsuranceAgeFrom(birthDate, new Date());
  if (!result) {
    setInsuranceAge(null);          // 무효 입력 → 이전 결과 명시적 제거
    return;
  }
  setInsuranceAge(result);
}, [birthDate]);
```
- 이 패턴이 같은 파일 다른 계산기와 일관되는지 확인(daysDiff/bmi 도 무효 시 이전값 유지 문제 있으면 **보고만** 하고 이 task 에선 보험나이만 수정 — 범위 확대 금지).

## 테스트 추가 (필수)
- 유효 입력 → 나이 표시 → 무효 입력(미래날짜) 재계산 → **`insuranceAge`가 null 로 초기화**됨을 검증하는 케이스 1건 이상.
- 기존 `Calculators.insuranceAge.test.ts` 22건 **회귀 0**.

## 검증
```bash
cd /home/jay/projects/InsuRo
npx vitest run src/pages/__tests__/Calculators.insuranceAge.test.ts   # 기존 22 + 신규, 전부 green
```

## 완료
- `src/pages/` 밖 변경 0 (`git diff --stat` 증명)
- `git push origin task/task-2807-calcage-dev6` (PR #112 자동 반영, 새 PR 금지)
- `memory/reports/` 기록 + **ANU callback** (UTF-8 ≤3900 bytes, envelope 만)

## 금지
- 범위 확대(다른 계산기 수정) 금지 — 보험나이만
- 새 PR/브랜치 생성 금지 · rebase/force-push 금지 (일반 커밋+push)
- 테스트 skip·assertion 완화 금지
