## 📌 배경 및 목적 * 2026-08-14 아키텍처 리뷰 보고서 P0 항목 해결 * 현재 `internal/gabiactl/reconcile.go`의 `Plan` 단계에서 로컬 `state.json`의 ID 존재 여부만으로 `Noop` 판정을 내려, 콘솔 등에서 리소스가 수동 삭제된 경우 감지하지 못하는 False No-op 결함을 방지합니다. ## 🛠️ 작업 내용 - [ ] `reconcile.go`의 `Plan()` 단계에서 `provider.ObserveRecorded`를 호출하여 원격 실제 리소스 존재 여부 확인 - [ ] 원격 리소스 부재 시 `FindByIdentity`를 거쳐 `Create` 또는 `Adopt` 플랜으로 자동 수렴(True Level-triggered Reconciliation) - [ ] Unknown 상태/모호성 발생 시 Fail-closed 정책 준수 - [ ] `internal/gabiactl/gabiactl_test.go` 및 `reconcile_test.go` 단위 테스트 작성 ## ✅ 인수 조건 (DoD) - 로컬 state에 ID가 기록되어 있어도, 원격 클라우드에서 리소스 삭제 후 `gabiactl apply` 실행 시 정상적으로 감지하고 재생성함 - `go test ./internal/gabiactl/...` 전체 통과
📌 배경 및 목적
internal/gabiactl/reconcile.go의Plan단계에서 로컬state.json의 ID 존재 여부만으로Noop판정을 내려, 콘솔 등에서 리소스가 수동 삭제된 경우 감지하지 못하는 False No-op 결함을 방지합니다.🛠️ 작업 내용
reconcile.go의Plan()단계에서provider.ObserveRecorded를 호출하여 원격 실제 리소스 존재 여부 확인FindByIdentity를 거쳐Create또는Adopt플랜으로 자동 수렴(True Level-triggered Reconciliation)internal/gabiactl/gabiactl_test.go및reconcile_test.go단위 테스트 작성✅ 인수 조건 (DoD)
gabiactl apply실행 시 정상적으로 감지하고 재생성함go test ./internal/gabiactl/...전체 통과