[CONTENT_MANAGEMENT_RULES]
1. 작업 시작 시 반드시 Todo List를 작성하세요. 각 항목은 독립 실행 가능해야 합니다.
2. 단일 응답에서 다음 중 하나라도 만족하면 작업을 중단하고 이관 신호를 생성하세요:
   - 처리 파일 수 ≥ 5개
   - 코드 변경/생성 라인 수 ≥ 200줄
   - 논리적 모듈 단위 완료
3. 이관 시 반드시 아래 형식으로 응답을 종료하세요:
   [TASK_MIGRATION]
   ✅ 완료: [목록]
   📦 현재 상태: [요약]
   🎯 다음 하위작업 지시문: [명확한 프롬프트]
   [/TASK_MIGRATION]
4. 이관 신호 이후에는 추가 코딩/분석을 중단하고 사용자의 계속 지시를 기다리세요.
[/CONTENT_MANAGEMENT_RULES]

# Roo 작업 시작 가이드

## 작업 시작 시 필수 절차

1. **`CLAUDE.md` 파일 반드시 읽기**
   - 프로젝트 루트의 `CLAUDE.md` 파일을 먼저 읽어서 이전 작업 이력 확인
   - 완료된 작업, 현재 진행 중인 작업, 알려진 문제점 파악
   - 최근 작업 내용을 바탕으로 현재 작업과 충돌하지 않도록 주의

2. **todo 목록 생성**
   - 복잡한 작업은 반드시 `update_todo_list` 도구로 todo 목록 생성
   - 각 단계별로 명확한 목표 설정

3. **파일 수정 시 주의**
   - `apply_diff` 도구는 정확한 검색/교체 블록 사용
   - `read_file` 도구로 정확한 내용 확인 후 수정

## 데이터베이스 연결 정보

### docker container : iiot-timescaledb (주요 목적 DB)
- **Host**: localhost
- **Port**: 5432
- **Database**: iiot_platform
- **Username**: postgres
- **Password**: postgres
- **용도**: TimescaleDB 확장, 시계열 데이터 저장, Text-to-SQL 기능

### Experion DB (데이터 소스)
- **Host**: localhost
- **Port**: 5432
- **Database**: postgres
- **Username**: postgres
- **Password**: postgres
- **용도**: Experion HS R530 메타데이터 조회

## 프로젝트 개요

- **이름**: ExperionCrawler
- **기술 스택**: .NET 8 (C#), PostgreSQL, OPC UA
- **주요 기능**:
  - Experion HS R530 DCS 시스템에서 실시간 데이터 크롤링
  - OPC UA Client로 Experion HS R530 연결
  - OPC UA Server로 외부 시스템 연결 지원
  - 데이터 PostgreSQL DB 저장
  - CSV 내보내기 기능
  - Text-to-SQL 기능 (TimescaleDB)

## 디렉토리 구조

```
src/
├── Core/
│   ├── Application/ (DTOs, Services, Interfaces)
│   └── Domain/ (Entities)
├── Infrastructure/ (Certificates, Csv, Database, OpcUa)
└── Web/ (Controllers, Program.cs, wwwroot)
```

## 작업 규칙

- 복잡한 작업은 항상 todo 목록 먼저 생성
- 각 단계 시작 전 todo 목록 확인
- 단계 완료 후 즉시 completed 표시
- 코드 수정 전 반드시 `read_file`으로 현재 내용 확인

## 컨텍스트 관리

### 컨텍스트 캐시 최적화
- 컨텍스트 캐시가 70%를 넘으면 작업중이던 정보를 새로운 하위작업에게 넘기고 시작
- 정보의 질 저하를 방지하기 위해 컨텍스트 압축 수행
- 단일 항목 작업 중에도 컨텍스트가 가득차면 하위작업으로 분할

### 작업 분할 원칙
1. 모든 새로운 작업을 시작하기 전 todo list 생성 (`update_todo_list` 도구 사용)
2. 단일 항목 작업 중 컨텍스트 캐시 70% 초과 시:
   - 현재 작업 상태를 하위작업에게 명확히 전달
   - 하위작업에서 이어받아 작업 진행
   - 완료 후 상위 작업에 결과 보고
3. 하위작업은 `new_task` 도구로 생성하고 mode은 현재 모드 유지 또는 적절히 선택
