> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nora.my/llms.txt
> Use this file to discover all available pages before exploring further.

# nora feedback

> 트레이스에 thumbs와 교정 제출. CLI나 외부 앱에서

피드백이 답변이 좋다 나쁘다를 알리는 방법. 제출된 피드백 낱건이 신호가 됨. 클러스터에 합류하고 결국 개선의 씨앗이 될 수 있음.

`feedback` CLI가 **외부 앱**과 **배치 제출**을 위한 표면. 채팅 UI의 앱 내 thumbs도 밑에서 같은 엔드포인트를 씀.

## 명령

| 명령                              | 설명                           |
| ------------------------------- | ---------------------------- |
| `feedback describe <flow-slug>` | 외부 POST 용 URL·auth·본문 모양 출력. |
| `feedback list <trace-id>`      | 한 트레이스의 기존 피드백 낱건 나열.        |
| `feedback submit <trace-id>`    | CLI에서 피드백 낱건 삽입.             |

## `feedback describe`

```bash theme={null}
nora feedback describe support-agent
```

외부 피드백 POST를 위한 정확한 HTTP 계약을 출력:

* **URL** POST 할 엔드포인트.
* **Auth** 필요한 헤더나 서명 방식.
* **본문 모양** 필드, 타입, 필수인 것.
* **응답** 돌아올 것.

외부 앱 문서에 붙여 넣고 👍/👎 버튼을 이음.

기계가 소비할 버전은 `--json`을 붙임.

## `feedback list`

```bash theme={null}
nora feedback list tr_abc
```

한 트레이스의 모든 피드백 낱건. 이런 게 담김:

* `like` 또는 `dislike`.
* 코멘트(있다면).
* 외부 사용자 정보(제출 앱이 넘겼다면).
* 메타데이터 페이로드.
* 구조화 교정(있다면).
* 타임스탬프.

같은 실행에 대한 여러 의견을 모을 때 좋음.

## `feedback submit`

```bash theme={null}
nora feedback submit tr_abc \
  --dislike \
  --comment "잘못된 환불 정책 인용됨" \
  --external-user u_alice \
  --external-user-display-name "Alice Smith" \
  --correction '{"expected":"30일","actual":"14일"}' \
  --metadata '{"channel":"web-chat","urgency":"high"}'
```

플래그:

* `<trace-id>`(위치, 필수) 피드백을 붙일 트레이스.
* `--like` **또는** `--dislike`(정확히 하나, 필수).
* `--comment <text>` 사람용 노트.
* `--external-user <id>` 여러분 앱의 사용자 식별자.
* `--external-user-display-name <name>` 사람용 이름(UI 표시용).
* `--correction <json>` 구조화 수정("무엇이었어야 하는지").
* `--metadata <json>` 임의 태그/맥락.

## 레시피

### CSV에서 피드백 대량 임포트

CSV가 있다고 하면: `trace_id,verdict,comment,corrector_email`.

```bash theme={null}
while IFS=, read -r trace verdict comment corrector; do
  flag="--$verdict"   # --like 또는 --dislike
  nora feedback submit "$trace" \
    $flag \
    --comment "$comment" \
    --external-user "$corrector"
done < feedback-batch.csv
```

외부 시스템의 QA 리뷰 결과를 들여올 때 좋음.

### diff에서 교정 붙이기

QA 절차가 맞는 출력을 내놓으면 `--correction`으로 제출:

```bash theme={null}
nora feedback submit tr_abc \
  --dislike \
  --comment "교정 참고" \
  --correction '{"expected":"'"$(cat expected.txt | jq -Rs)"'"}'
```

이 트레이스가 데이터셋에 더해질 때 그 교정이 기대 출력이 됨.

### 여러 트레이스에 걸쳐 피드백 모으기

```bash theme={null}
for tr in $(nora traces list --flow support --status completed --json | jq -r '.[].id'); do
  count=$(nora feedback list "$tr" --json | jq 'length')
  [ "$count" -gt "0" ] && echo "$tr: 피드백 $count"
done
```

### 앱의 thumbs UI 잇기

```bash theme={null}
# 계약 가져오기
nora feedback describe support-agent

# 여러분 앱이 버튼 눌림에 피드백을 게시
# curl -X POST <url> -H "Authorization: ..." -d '{...}'
```

`--external-user` 값이 사용자 ID를 Nora에 직접 노출하지 않고도 시스템 사이 피드백을 귀속하게 함.

## Submit 뒤에 벌어지는 일

* 피드백 낱건이 트레이스에 저장됨.
* 큐에 신호가 생김([신호 개요](/ko/reliable/signals/overview) 참고).
* 비슷한 패턴이 있으면 신호가 기존 클러스터에 합류할 수 있음.
* 개선 플로우가 수정을 제안할 수 있음([신호에서 수정까지](/ko/reliable/signals/from-signal-to-fix) 참고).

더 할 건 없음. 피드백이 자동으로 개선 루프에 흘러 들어감.

## 피드백 고치기·지우기

CLI 로는 피드백이 바뀌지 않음. 고치기(오타 수정, 잘못 누른 thumbs 철회)는 앱을 씀. 제출한 리뷰어가 7일 안에 철회 가능.

## 관련

* [트레이스의 피드백](/ko/reliable/traces/feedback) 앱 쪽 개념.
* [신호 개요](/ko/reliable/signals/overview) 다음에 벌어지는 일.
* [`nora traces`](/ko/cli/traces) 피드백 붙일 트레이스 찾기.
