[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은 현재 모드 유지 또는 적절히 선택