Files
ExperionCrawler/.roo.md
windpacer 77bdcf1f7f feat: ExperionCrawler IIoT OPC UA Data Bridge Infrastructure
Major project initialization and feature implementation:

**Core Features:**
- OPC UA client for Honeywell Experion HS R530 integration
- Real-time data streaming and history data retrieval
- Text-to-SQL query engine with TimeScaleDB
- JSON-based node configuration system
- SQLite database with migration support

**Architecture:**
- Clean architecture with Domain, Application, Infrastructure layers
- ASP.NET Core Web API frontend
- Web UI with real-time visualization
- PKI-based OPC UA authentication (TLS)

**Infrastructure Components:**
- ExperionOpcClient: OPC UA connection management
- ExperionRealtimeService: Real-time data streaming
- ExperionHistoryService: Historical data queries
- TextToSqlService: Natural language to SQL queries
- SqlValidator: SQL injection prevention

**Database:**
- TimescaleDB integration (recommended) or SQLite fallback
- Entity Framework Core with Extenstion methods
- OPCTag, KeyValue tables for data storage

**Security:**
- Certificate-based OPC UA endpoint security
- SSL/TLS encryption for database connections
- Output param binding injection prevention

**Testing:**
- Unit tests for TextToSqlService and SqlValidator
- Integration tests for Korean time range extraction

See REVIEW_REQUEST.md for detailed code review information.
2026-04-26 19:28:56 +09:00

3.0 KiB

🎯 PROJECT CONTEXT

  • 이름: ExperionCrawler
  • 스택: .NET 8 (C#), PostgreSQL (TimescaleDB), OPC UA
  • 아키텍처: Clean Architecture (src/Core, src/Infrastructure, src/Web)
  • 주요 DB:
    • 도커 컨테이너iiot-timescaledb 의 (localhost:5432/iiot_platform 테이블): 시계열 저장, Text-to-SQL

📋 MANDATORY WORKFLOW (최우선 준수)

  1. 시작 전 상태 파악: 프로젝트 루트의 todo.md를 먼저 읽고 이력/미완료 작업 확인
  2. Todo List 생성: 복잡도 ≥2 단계인 작업은 반드시 더 작은 단위로 todo list 를 만들것
  3. 'todo list'를 완료시 까지, 작은 단위 작업 완료시에는 다음 작은 단위 작업은 반드시 새 작업으로 작업할 것
  4. 수정전 백업: 파일을 수정할 시에는 반드시 파일명에 현재 날짜와 시간을 붙여서 /.rooBackup 폴더에 복사후 수정
  5. 안전한 파일 수정: apply_diff 사용 전 무조건 read_file로 현재 내용 검증. 정확한 검색/교체 블록만 사용
  6. 단계 완료 처리: 각 Todo 항목 완료 시 즉시 completed 표시

🔄 CONTEXT MANAGEMENT & TASK MIGRATION (핵심 규칙)

1. 이관 트리거 (하단 조건 중 하나라도 충족 시 즉시 중단)

  • 논리적 모듈/기능 단위 완료
  • 자가 평가 기준: 컨텍스트 누적 부하가 약 70% 이상으로 판단될 때

이관 실행 프로토콜

  • 현재 상태를 압축 요약하고 반드시 아래 형식으로 응답을 종료
  • 이관 신호 출력 후 추가 코딩/분석/설명 절대 금지.

3. 이관 직전 필수 저장 항목

이관 신호 출력 전 반드시:

  1. task_state.md 최신화 (미완료 파일 목록, 발견된 문제 전체)
  2. 다음 작업자(새 컨텍스트)를 위한 첫 문장 명시:

    "task_state.md를 읽고 [미완료 파일명]부터 이어서 분석하세요"

  3. 이관 후 첫 응답에서 task_state.md 확인 없이 작업 시작 금지

🧠 LARGE TASK ANTI-CORRUPTION RULES

대규모 작업 (파일 5개 이상 분석/수정) 필수 규칙

반드시 외부 파일을 진행 상태 저장소로 사용

  • 분석/수정 작업 시작 즉시 task_state.md 생성
  • 각 파일 처리 완료마다 즉시 결과를 task_state.md에 기록
  • 컨텍스트 압축/이관 발생 시 첫 번째 행동은 task_state.md 읽기
  • 기억(컨텍스트)을 절대 진실 소스로 사용 금지

task_state.md 형식

## 작업명:
## 시작시각:
## 전체 대상: [파일 목록]

### 완료된 파일
- [x] src/Core/xxx.cs → 문제없음
- [x] src/Infrastructure/yyy.cs → HIGH: DB연결 미해제

### 미완료 파일
- [ ] src/Web/zzz.cs

### 발견된 문제 누적
| 파일 | 심각도 | 내용 |
|------|--------|------|

🚫 COMMAND LOOP PREVENTION

  • 명령 실행 후 결과가 이전과 동일하면 → 재시도 금지, 원인 분석 먼저
  • --no-build 옵션은 빌드 완료 확인 후에만 사용
  • 테스트 0개 실행 시 → 테스트 프로젝트/필터 조건 재확인, 재실행 금지