EvidenceCard
주장을 뒷받침하는 원문 발췌와 출처, 상태.
- 출시 화면에서 사용
개요
미리보기
Re: 9월 워크숍 일정 확정
Matches source“워크숍은 9월 18일 10시로 정했어요. 장소는 2층 회의실입니다.”
Gmail · Sep 12, 4:05 PM
Sentence this source supports9월 고객사 워크숍 일정을 조율했어요
예시
상태
원문 일치
Re: 9월 워크숍 일정 확정
Matches source“워크숍은 9월 18일 10시로 정했어요. 장소는 2층 회의실입니다.”
Gmail · Sep 12, 4:05 PM
Sentence this source supports
9월 고객사 워크숍 일정을 조율했어요
원문 열 수 없음 · 보관본
Re: 9월 워크숍 일정 확정
Source unavailable“워크숍은 9월 18일 10시로 정했어요. 장소는 2층 회의실입니다.”
This source can’t be opened now. The excerpt scanned earlier is kept.
Source unavailable · Gmail
Sentence this source supports
9월 고객사 워크숍 일정을 조율했어요
보관본 없음
Re: 9월 워크숍 일정 확정
Source unavailableThis source can’t be opened now. No excerpt was kept.
Source unavailable · Gmail
Sentence this source supports
9월 고객사 워크숍 일정을 조율했어요
검토 필요
Re: 9월 워크숍 일정 확정
Needs review“워크숍은 9월 18일 10시로 정했어요. 장소는 2층 회의실입니다.”
Source access is back. Review whether it still says the same thing.
Gmail · Sep 12, 4:05 PM
Sentence this source supports
9월 고객사 워크숍 일정을 조율했어요
검토 필요 · 원문 못 엶
Re: 9월 워크숍 일정 확정
Needs review“워크숍은 9월 18일 10시로 정했어요. 장소는 2층 회의실입니다.”
Source access is back. Review whether it still says the same thing.
Gmail · Sep 12, 4:05 PM
Sentence this source supports
9월 고객사 워크숍 일정을 조율했어요
다시 검토함(카드 = 원문 일치)
Re: 9월 워크숍 일정 확정
Matches source“워크숍은 9월 18일 10시로 정했어요. 장소는 2층 회의실입니다.”
Gmail · Sep 12, 4:05 PM
Sentence this source supports
9월 고객사 워크숍 일정을 조율했어요
쓰임 예
Google Calendar
고객사 워크숍 · Client workshop
Matches sourceGoogle Calendar · Sep 18, 10:00 AM
Sentence this source supports
9월 고객사 워크숍 일정을 조율했어요
이렇게 · 이렇게 하지 않기
- 이렇게 발췌는 원문 그대로 두고 요약하지 않는다. “이 원문이 뒷받침하는 문장”을 늘 함께 보인다.
- 이렇게 접근이 복구돼도 자동으로 “원문 일치”가 되지 않고 “검토 필요”로 간다. 같은 원문의 상태는 모든 화면에서 같아야 한다.
- 이렇게 하지 않기 원문을 열 수 없을 때 “다시 검토함으로 표시”를 비활성으로 남기지 않는다. 렌더하지 않는다. 일괄 “모두 검토함”을 두지 않는다.
토큰과 속성
| 이름 | 타입 | 기본값 | 설명 |
|---|---|---|---|
status? | 'verified' | 'source-unavailable' | 'needs-review' | 'reverified' | verified | 이 연결(원문 + 주장)의 상태. 저장소 값을 그대로 그린다. 다시 검토함은 원문 일치와 똑같이 보인다. |
title | string | Re: 9월 워크숍 일정 확정 | 원문 제목(메일 제목, 일정, 문서 이름). 번역하지 않는다. |
excerpt? | string | “워크숍은 9월 18일 10시로 정했어요. 장소는 2층 회의실입니다.” | 원문 그대로의 발췌. 요약하지 않는다. 비우면 없음. |
service? | 'gmail' | 'calendar' | 'drive' | 'slack' | 'notion' | gmail | 원문 서비스. |
date? | string | 2026-09-12T16:05 | 원문 날짜(ISO). |
supports? | string | 9월 고객사 워크숍 일정을 조율했어요 | 이 원문이 뒷받침하는 문장(불변 규칙 4). ClaimRow 안에서는 생략하면 그 주장을 쓴다. |
hasArchive? | boolean | true | 원문 열 수 없음일 때 예전에 읽은 보관본이 있는가. 없으면 발췌를 보이지 않는다. |
canOpen? | boolean | true | 지금 원문을 열 수 있는가. false면 “원문 열기”와 “다시 검토함으로 표시”를 렌더하지 않는다(비활성이 아님). |
onOpenSource? | () => void | — | “원문 열기” → SourcePreview(<1024에서는 ?source= push 화면). |
onReviewAgain? | () => void | — | 사용자만 할 수 있는 needs-review → reverified. 호출자가 저장소에 review-again 사건을 보낸다. 일괄 처리 없음. |
onAnnounce? | (message: string, politeness: 'polite' | 'assertive') => void | — | 공용 알림기(기본 announce()). 행동 후 “다시 검토함으로 표시했어요” polite. |
| 그 밖의 속성 | — | — | <article> 속성(id, aria-*)이 전달된다. |
접근성
키보드: 행동 버튼 Tab. ClaimRow에서 펼치면 카드 제목(tabindex=-1)이 초점을 받는다. “문장으로 돌아가기”·Esc → ClaimRow 근거 버튼.
- “다시 검토함으로 표시” 뒤 버튼이 사라지면 초점은 같은 버튼 → 카드 제목 → ClaimRow 근거 버튼 순서로 간다(resolveFocusChain). body로 떨어지지 않는다.
- 카드는 aria-describedby로 뒷받침 문장 줄을 잇는다. 상태 기계 사건은 사용자 행동일 때만 알린다.