ariadne/agent-roadmap/sdd/error-intelligence/analysis-target-selection/SDD.md
2026-07-24 05:45:04 +09:00

99 lines
4.5 KiB
Markdown

# SDD: 분석 대상 결정과 실행 스냅샷
## 위치
- Milestone: [Milestone 문서](../../../phase/error-intelligence/milestones/analysis-target-selection.md)
- Phase: [PHASE.md](../../../phase/error-intelligence/PHASE.md)
## 상태
[승인됨]
## SDD 잠금
- 상태: 해제
- 사용자 리뷰: 없음
- 잠금 항목:
- 없음
## 문제 / 비목표
- 문제: 설정 변경과 동시 실행 중에도 어떤 저장소·운영 환경을 왜 선택했는지 재현 가능해야 한다.
- 비목표:
- 추론 기반 대상 탐색
- 다중 저장소 수정
- 운영 환경 쓰기
## Source of Truth
| 영역 | 기준 | 메모 |
|------|------|------|
| Roadmap | [Milestone 문서](../../../phase/error-intelligence/milestones/analysis-target-selection.md) | 선택·스냅샷 기능 범위 |
| Code | `internal/platform/database/migrations/`, `internal/domain/remediation/` | 규칙과 실행 스냅샷 |
| External Provider | 저장소 기준 리비전 조회 경계 | 리비전 값만 스냅샷에 보존 |
| User Decision | 없음 | 일치·우선순위·실패 기준이 확정됨 |
## State Machine
| 상태 | 진입 조건 | 다음 상태 | 근거 |
|------|-----------|-----------|------|
| 선택 대기 | 오류 묶음이 분석 후보가 됨 | 대상 선택됨 | 첫 일치 활성 규칙과 유효한 연결 |
| 선택 대기 | 일치 규칙 또는 유효 대상이 없음 | 선택 실패 | `target_selection` 표준 실패 |
| 대상 선택됨 | 기준 리비전 확인 성공 | 실행 스냅샷 생성 | 수정 작업과 대상 이력 트랜잭션 |
| 대상 선택됨 | 기준 리비전 확인 실패 | 선택 실패 | 저장소 조회 실패 원인 |
## Interface Contract
- 계약 원문: 없음
- 입력:
- 조직·프로젝트·입력 출처와 오류 source 필드
- 활성 분석 대상 규칙
- 출력:
- 저장소 ID, 기준 리비전과 읽기 전용 운영 환경 ID 목록
- 선택 규칙 ID 또는 표준 실패
- 금지:
- LLM으로 규칙 순서 변경
- 실행 생성 뒤 대상 스냅샷 덮어쓰기
- 다른 조직·프로젝트 대상 연결
## Acceptance Scenarios
| ID | Milestone Task | Given | When | Then |
|----|----------------|-------|------|------|
| S01 | `match-rule` | 여러 활성 규칙이 일치함 | 대상을 선택함 | 숫자가 가장 낮은 우선순위의 첫 규칙이 선택됨 |
| S02 | `validate-target` | 규칙 대상이 비활성 또는 다른 프로젝트임 | 대상을 검증함 | 선택이 거부되고 분석이 시작되지 않음 |
| S03 | `no-target-failure` | 일치 규칙이 없음 | 선택을 수행함 | `target_selection` 실패가 사용자에게 보고 가능하게 저장됨 |
| S04 | `resolve-revision` | 저장소 기준 가지가 존재함 | 리비전을 조회함 | 불변 리비전 식별자가 반환됨 |
| S05 | `create-run` | 대상과 리비전이 유효함 | 수정 작업을 생성함 | 저장소·리비전·운영 환경 스냅샷이 한 번 저장됨 |
| S06 | `selection-tests` | 실행 생성 후 규칙이 변경됨 | 기존 실행을 조회함 | 원래 스냅샷이 유지되고 새 설정 영향이 없음 |
## Evidence Map
| Scenario | Required Evidence | `agent-task` 연결 | 완료 Evidence 기대 |
|----------|-------------------|------------------|---------------------------|
| S01 | 규칙 우선순위 단위 검사 | `agent-task/m-analysis-target-selection/...` | `match-rule` 완료 근거 |
| S02 | 조직·프로젝트 FK 및 상태 검사 | `agent-task/m-analysis-target-selection/...` | `validate-target` 완료 근거 |
| S03 | 표준 실패 저장 통합 검사 | `agent-task/m-analysis-target-selection/...` | `no-target-failure` 완료 근거 |
| S04 | 저장소 경계 리비전 검사 | `agent-task/m-analysis-target-selection/...` | `resolve-revision` 완료 근거 |
| S05 | 수정 작업 원자성 DB 검사 | `agent-task/m-analysis-target-selection/...` | `create-run` 완료 근거 |
| S06 | 스냅샷 불변성 통합 검사 | `agent-task/m-analysis-target-selection/...` | `selection-tests` 최종 검증 |
## Cross-repo Dependencies
- 없음
## Drift Check
- [x] Milestone 기능 Task와 Acceptance Scenario가 일치한다.
- [x] Evidence Map이 code-review와 `complete.log`에서 검증 가능하다.
- [x] 외부 계약 원문을 SDD에 복제하지 않았다.
- [x] 사용자 리뷰가 필요한 항목이 없다.
## 사용자 리뷰 이력
- 없음
## 작업 컨텍스트
- 표준선: 명시 규칙의 결정성과 실행 입력 revision 보존을 우선한다.
- 후속 SDD: [IOP 분석 실행 연동](../../remediation-automation/iop-analysis-orchestration/SDD.md)