Files
ExperionCrawler/.roo.md

3.5 KiB

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