# Classification Reference
> 메모리 추출 / advice 발급 시 분류 기준.
> Claude 가 새 항목을 만들 때 이 정의를 따라 태깅한다.
> 사용자 override 가 있으면 그것이 항상 우선.
---
## Severity (advice 한정)
| `info` | 단순 알림. 행동 요구 없음 | "이 디렉토리에서 새 패턴을 시도 중" |
| `suggest` | 개선 제안. 안 따라도 무방 | "이 함수, 더 짧게 쓸 수 있어" |
| `warn` | 잠재 문제. 봐야 함 | "여기 cleanup 누락 가능 — 메모리 leak 위험" |
| `block` | 작동 안 함. 즉시 조치 필요 | "이 import 잘못됨 — 빌드 실패" |
**규칙:**
- 의심 시 한 단계 낮게. 코드의 sanity check 가 근거 약하면 다운그레이드한다.
- `block` 은 빌드/타입/import/syntax 같은 **확정 실패 신호**가 텍스트에 있을 때만.
- `warn` 은 누락/유출/오류/위험 같은 **명시적 문제 신호**가 있을 때만.
---
## Priority (memory)
| `constraint` | 절대 규칙. 어기면 안 됨 | "Devist 는 Rust 만 쓴다", "OpenAI API 사용 금지" |
| `strong` | 강한 선호. 거의 항상 적용 | "함수 컴포넌트 over 클래스 컴포넌트" |
| `preference` | 약한 선호. 상황 따라 | "주석은 짧게 쓰는 편을 선호" |
| `info` | 단순 사실 / 컨텍스트 | "alice 가 화요일에 라이브러리 X 시도" |
**규칙:**
- **초창기엔 보수적으로**: 의심 시 더 낮은 priority.
- `constraint` 는 사용자가 **명시적으로** 표현했을 때만 (예: "절대", "MUST", "NEVER", "금지").
- 일반적인 기술 의견은 `strong` 또는 `preference`.
- 단발성/관찰 사실은 `info`.
- 사용자가 직접 작성한 메모리 (`source = 'user'`) 는 기본 `preference` 부터.
- Asurada 가 추출한 메모리 (`source = 'asurada'`) 는 기본 `info` 부터.
---
## Scope (memory)
| `user` | 사용자 본인에 관한 사실 (모든 프로젝트 공통) | "alice 는 한국어 응답 선호", "alice 는 반말 톤 선호" |
| `project` | 특정 프로젝트에 한정 | "Devist 는 Rust 사용", "WC-Core 는 영상 도메인 포함" |
| `tech` | 기술 / 도메인 지식 (사용자 무관, 기술 매칭 시 적용) | "useEffect 는 cleanup 함수 반환 필요", "Rust 바이너리는 rustls 선호" |
**규칙:**
- 텍스트가 **프로젝트명을 직접 언급** → `project`
- **기술/프레임워크 키워드만** 있고 사용자/프로젝트 언급 없음 → `tech`
- 사용자 본인 / 작업 흐름 언급 → `user`
- 의심 시 `user` (가장 보수적, 모든 프로젝트에 적용되지만 사용자 본인 한정)
---
## 초창기 운영 원칙
- 사용자가 분류를 자주 수정할 것을 기대.
- 사용자 override 는 학습 신호로 기록되며, **자동 분류 향상의 근거**가 된다.
- 사용자가 수정한 분류는 자동으로 다시 바뀌지 않는다 (`source` 가 user 로 격상되며 보호됨).
- 시간이 지나 패턴이 정착하면 사용자 개입은 자연 감소.
---
## 한 줄 요약
> 의심 시 더 약하게, 더 좁게. 사용자 결정은 항상 옳다.