# 260210-23.21-enforced-outliner-mode

> **주제**: 편집창 내 계층형 번호 리스트 강제 적용 및 삭제 방지
> **Task ID**: TC-9

---

## 1. 개요
사용자가 일반적인 문서 편집 방식이 아닌, 무조건 숫자로 시작하는 **계층형 아웃라이너(Outliner)** 형식으로만 문서를 작성하도록 제한함. 

## 2. 상세 요구사항
- **자동 시작**: 새로운 문서를 편집하거나 빈 줄을 만들 때 무조건 `1. ` (Ordered List)로 시작함.
- **삭제 불가**: `Backspace` 등을 눌러 숫자를 지우고 일반 문단(Paragraph)이나 불렛(`•`)으로 돌아가는 기능을 차단함.
- **변환 제한**: 툴바나 단축키를 통해 리스트 형식을 변경하는 것을 금지함.

## 3. 기술적 구현 방안

### 3.1. Tiptap Extension 커스텀
- `OrderedList` 및 `ListItem` 익스텐션을 확장하여 `backspace` 핸들러를 수정함.
- 리스트의 첫 번째 항목에서 숫자를 지우려고 할 때 이를 무시하도록 처리.

### 3.2. 에디터 설정 (ReflectEditor.tsx)
- 에디터 초기화 시 내용이 비어있으면 기본값으로 `<ol><li><p></p></li></ol>` 구조를 강제 삽입.
- `EditorContent`의 `onUpdate` 등에서 구조가 파괴되었는지 검사하여 복구하는 로직 검토.

### 3.3. CSS 보완
- 현재 `globals.css`에 이미 적용된 계층형 번호 스타일을 에디터 내에서도 동일하게 강화하여 시각적 직관성 부여.

## 4. 진행 계획
- [ ] `ReflectEditor.tsx` 내 Tiptap 설정 변경 및 커스텀 핸들러 추가.
- [ ] 첫 줄 리스트 삭제 방지 로직 구현.
- [ ] 빈 문서 시작 시 리스트 강제 생성 로직 추가.
