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.
3.0 KiB
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 (최우선 준수)
- 시작 전 상태 파악: 프로젝트 루트의
todo.md를 먼저 읽고 이력/미완료 작업 확인 - Todo List 생성: 복잡도 ≥2 단계인 작업은 반드시 더 작은 단위로
todo list를 만들것 - 'todo list'를 완료시 까지, 작은 단위 작업 완료시에는 다음 작은 단위 작업은 반드시 새 작업으로 작업할 것
- 수정전 백업: 파일을 수정할 시에는 반드시 파일명에 현재 날짜와 시간을 붙여서 /.rooBackup 폴더에 복사후 수정
- 안전한 파일 수정:
apply_diff사용 전 무조건read_file로 현재 내용 검증. 정확한 검색/교체 블록만 사용 - 단계 완료 처리: 각 Todo 항목 완료 시 즉시
completed표시
🔄 CONTEXT MANAGEMENT & TASK MIGRATION (핵심 규칙)
1. 이관 트리거 (하단 조건 중 하나라도 충족 시 즉시 중단)
- 논리적 모듈/기능 단위 완료
- 자가 평가 기준: 컨텍스트 누적 부하가 약 70% 이상으로 판단될 때
이관 실행 프로토콜
- 현재 상태를 압축 요약하고 반드시 아래 형식으로 응답을 종료
- 이관 신호 출력 후 추가 코딩/분석/설명 절대 금지.
3. 이관 직전 필수 저장 항목
이관 신호 출력 전 반드시:
task_state.md최신화 (미완료 파일 목록, 발견된 문제 전체)- 다음 작업자(새 컨텍스트)를 위한 첫 문장 명시:
"task_state.md를 읽고 [미완료 파일명]부터 이어서 분석하세요"
- 이관 후 첫 응답에서 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개 실행 시 → 테스트 프로젝트/필터 조건 재확인, 재실행 금지