ariadne/agent-roadmap/phase/operator-experience/milestones/user-notification-delivery.md
2026-07-24 05:45:04 +09:00

4 KiB

Milestone: 사용자 알림 전달

위치

목표

분석 완료, 수정 승인 대기와 검증 실패처럼 사용자의 확인이나 조치가 필요한 상태를 권한 있는 사용자에게 중복 없이 알린다. 알림에는 민감한 오류 원문이나 비밀값을 넣지 않고, 권한 검증이 적용되는 Ariadne 상세 화면으로 연결한다.

상태

[스케치]

승격 조건

  • 첫 외부 알림 채널을 확정한다.
  • 조직·프로젝트 권한과 명시적 구독을 결합한 수신자 규칙을 구현 가능한 수준으로 고정한다.
  • 재시도·중복 방지와 민감 정보 제외 기준을 확정한다.
  • SDD 사용자 리뷰를 해결하고 gate를 통과한다.

구현 잠금

  • 상태: 잠금
  • SDD: 필요
  • SDD 문서: SDD.md
  • SDD 사유: 외부 전달, 조직별 수신 권한, 민감 정보 제외, 재시도와 중복 방지를 다룬다.
  • 잠금 해제 조건:
    • SDD 잠금이 해제되어 있다.
    • SDD 사용자 리뷰가 승인·해결되어 있다.
    • Acceptance Scenario가 Milestone 기능 Task와 연결되어 있다.
    • Evidence Map이 완료 시 검증 가능한 근거와 연결되어 있다.
  • 결정 필요:
    • [D01] 첫 외부 알림 채널

범위

  • 분석 완료, 수정 승인 대기와 검증 실패 알림 사건
  • 조직·프로젝트 권한과 명시적 구독 기반 수신자 선택
  • 알림 발송 대기열과 재시도 가능한 전달 이력
  • 민감 정보가 제거된 제목·요약과 Ariadne 상세 화면 연결
  • 동일 사건·채널·수신자의 중복 발송 방지
  • 첫 외부 알림 채널 어댑터

기능

Epic: [policy] 알림 대상과 내용

알림을 받을 권한이 있고 명시적으로 구독한 사용자에게 필요한 최소 내용만 전달한다.

  • [recipient-policy] 사건 시점의 조직·프로젝트 권한과 명시적 구독을 함께 검사해 수신자를 결정하고 권한을 잃은 사용자를 제외한다.
  • [safe-message] 오류 원문·비밀값·접속 정보를 제외한 제목과 요약을 만들고 권한 검증이 적용되는 상세 화면 주소만 포함한다.

Epic: [delivery] 멱등한 외부 전달

도메인 상태 변경과 외부 발송 사이의 유실과 중복을 방지한다.

  • [notification-outbox] 분석 완료, 승인 대기와 검증 실패 전이를 같은 트랜잭션의 발송 대기 사건으로 저장한다.
  • [channel-adapter] 선택한 첫 외부 채널로 발송하고 외부 식별자와 결과를 전달 이력에 기록한다.
  • [delivery-retry] 같은 사건·채널·수신자의 멱등 키를 사용하고 제한된 재시도 뒤 표준 실패를 보존한다.
  • [notification-smoke] 권한 변경, 구독 해제, 중복 사건, 일시 실패와 민감 정보 입력을 실제 채널에서 검증한다. 검증: 통합 검사와 알림 채널 field smoke가 통과한다.

완료 리뷰

  • 상태: 없음
  • 요청일: 없음
  • 완료 근거: 없음
  • 검토 항목: SDD gate, 수신 권한, 민감 정보 제외, 중복 방지와 채널 field smoke
  • agent-ui 상태 반영: 해당 없음
  • 리뷰 코멘트: 없음

범위 제외

  • 여러 외부 채널 동시 지원
  • 당직 호출과 장애 단계별 상향 통지
  • 알림 본문에 오류 원문 또는 실행 로그 첨부
  • 사용자 대신 승인·거부 수행

작업 컨텍스트

  • 관련 경로: internal/domain/, internal/integration/, internal/platform/database/
  • 표준선: 외부 알림은 최소 요약과 Ariadne 링크만 전달하고, 상세 정보 접근은 매 요청의 조직·프로젝트 권한으로 다시 검증한다.
  • 선행 작업: 오류와 수정 작업 운영 화면
  • 후속 작업: 병합 요청 전달
  • 확인 필요: USER_REVIEW.md