사용자의 피드백(고칠 점·승인·거절·"앞으로는 ~해")을 분류해 다음 작업에 자동으로 적용되게 저장하는 절차 — 이번 영상만 해당하면 FEEDBACK-ITEMS.md, 계속 지킬 규칙이면 memory/rules + INDEX, 일하는 순서면 스킬, 다시 생길 수 있는 사고면 tools/regressions.json. 사용자가 고칠 점을 말했을 때, 훅이 "[피드백 후보 …]"를 띄웠을 때, "기억해", "앞으로는", "규칙으로 저장해", "다음부터", "스킬에 넣어"라고 할 때, 확인 지점(✋)에서 승인·거절·수정을 받았을 때 사용한다.
Installs into .claude/skills of the current project.
Are you the author of Feedback Loop?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ssap-pa-feedback-loop)
---
name: feedback-loop
description: 사용자의 피드백(고칠 점·승인·거절·"앞으로는 ~해")을 분류해 다음 작업에 자동으로 적용되게 저장하는 절차 — 이번 영상만 해당하면 FEEDBACK-ITEMS.md, 계속 지킬 규칙이면 memory/rules + INDEX, 일하는 순서면 스킬, 다시 생길 수 있는 사고면 tools/regressions.json. 사용자가 고칠 점을 말했을 때, 훅이 "[피드백 후보 …]"를 띄웠을 때, "기억해", "앞으로는", "규칙으로 저장해", "다음부터", "스킬에 넣어"라고 할 때, 확인 지점(✋)에서 승인·거절·수정을 받았을 때 사용한다.
---
# 피드백 → 메모리·스킬 → 다음 작업에 적용
이 키트의 핵심. 피드백을 받았을 때 그 자리에서 고치기만 하면 다음 영상에서 같은 말을 또 해야 한다. 고친 뒤 **어디에 남길지**를 정해 저장해야 다음 세션이 처음부터 그 기준으로 일한다.
```
사용자 말 ──훅──> memory/inbox.jsonl (원문 보존)
│
├─ 이번 결과물만 ───────> videos/<slug>/FEEDBACK-ITEMS.md (그 영상 작업 때만 읽음)
├─ 앞으로 계속 ─────────> memory/rules/<이름>.md + INDEX.md (세션 시작 훅이 매번 목록을 넣음)
├─ 일하는 순서·단계 ────> .claude/skills/<스킬>/SKILL.md (그 작업을 할 때 읽음)
└─ 기계로 잡을 수 있는 사고 > tools/regressions.json (check_script.py·qa.py가 다시 검사)
```
## 1. 분류 — 하나씩 판단한다
받은 말을 문장 단위로 나눠 각각 정한다. 한 메시지에 여러 종류가 섞이는 게 보통이다.
| 신호 | 종류 | 저장 위치 |
|---|---|---|
| "이 장면", "여기", "V2 0:35", 특정 대사·특정 화면 | 이번 영상만 | `FEEDBACK-ITEMS.md` |
| "앞으로", "항상", "매번", "다음부터", "절대", 모든 영상에 통할 취향 | 지속 규칙 | `memory/rules/` |
| "오프닝은 마지막에 만들어", "먼저 ~하고 ~해" 같은 순서 | 작업 방식 | 스킬 본문 |
| 다시 틀리면 기계가 찾을 수 있는 실수(표기·코드·계획) | 재발 방지 | `tools/regressions.json` |
| 승인("좋아", "굳", "이걸로") | 기록 | `CLIPS.md` 해당 판에 승인 표시 |
- **애매하면 넓히지 않는다.** 이번 영상 한정인지 계속인지 모르면 `FEEDBACK-ITEMS.md`에 두고 사용자에게 "앞으로 모든 영상에 적용할까요?"를 한 줄로 묻는다. 한 번의 수정을 규칙으로 키우면 다음 영상을 엉뚱하게 망친다.
- **같은 지적이 두 번째로 나오면** 지속 규칙 후보다. 첫 번째 기록(FEEDBACK-ITEMS)을 근거로 붙여 규칙으로 올릴지 묻는다.
- 사용자가 직접 고친 글자(대사·제목·화면 값)는 그대로 둔다. 다시 다듬고 싶으면 제안만 한다.
- 사용자가 자유롭게 적은 답이 지시가 아니라 **그대로 쓸 문구**일 수 있다. 헷갈리면 확인한다.
## 2. 저장 — 형식
**FEEDBACK-ITEMS.md** (영상 폴더)
```markdown
- [ ] v2-w3 로고가 글자로 나옴 → 심볼 로고로 (2026-10-25, 판 v2-v3에서 받음)
- [x] v1-s4 배경 너무 어두움 → 밝기 0.78 (v1-v4 반영)
```
반영하면 `[x]`와 반영한 판을 적는다. 세션 시작 훅이 미반영 항목을 다시 알려 준다(전체 키트는 qa.py 직접 확인 목록도).
**지속 규칙** — `python tools/memory.py add <이름> --area <영역> --rule "<규칙>" --why "<이유: 실제로 있었던 일>" --how "<어떻게 적용>"`
- 영역: 대본·음성·화면·소스·배경음·제목·썸네일·업로드·작업 방식.
- `--why`에는 사용자가 한 말의 요지와 실제 사고를 적는다. 이유가 있어야 다음 세션이 예외 상황에서 올바르게 판단한다.
- 이미 비슷한 규칙이 있으면(`python tools/memory.py search <낱말>`) 새로 만들지 말고 그 파일을 고친다. 틀린 규칙은 지운다.
- 저장하면 `memory/INDEX.md`가 자동으로 다시 만들어진다(`reindex`).
**스킬** — 해당 단계 절에 규칙 한 줄과 "(사고: …)" 한 줄을 넣는다. 스킬은 순서와 단계만, 취향 규칙은 memory로.
**재발 목록** — `tools/regressions.json` `items`에 추가:
```json
{"id": "no-lowercase-en", "kind": "script", "pattern": "(?<![A-Za-z])[a-z]{2,}(?![A-Za-z])",
"symptom": "무엇이 잘못됐나(실제 사고)", "fix": "어떻게 고치나"}
```
kind: `script`(대본 정규식) · `code`(도구 파일에 다시 들어오면 안 되는 문자열, `files`·`forbid`) · `look`(사람이 프레임 시트로 확인할 항목). 정규식은 추가한 뒤 `python tools/check_script.py videos/<slug>`로 지금 대본에서 오경고가 없는지 본다.
## 3. 다음 작업에서 불러오는 방식
1. **세션 시작**: `hooks/session_start.py`가 `memory/INDEX.md` 목록, 현재 영상의 미반영 `FEEDBACK-ITEMS`, 분류 안 된 피드백 수를 맥락에 넣는다(새 세션·/clear·대화 요약 뒤마다).
2. **작업 시작 전**: 지금 단계(대본·화면·배경음…)와 관련된 규칙 파일을 INDEX에서 골라 **원문을 연다**. 목록만 보고 추측하지 않는다.
3. **결과물을 낼 때**: 적용한 규칙을 한 줄로 밝힌다("숫자 한글 표기·대문자 영어 규칙 적용"). 사용자가 규칙이 실제로 쓰였는지 확인할 수 있다.
4. **음성 만들기 전마다**: `python tools/check_script.py videos/<slug>`가 대본을 `regressions.json`으로 검사한다(전체 키트는 합본마다 `tools/qa.py`도) — 사람이 기억하지 못해도 기계가 막는다.
## 4. 마무리
- 훅이 띄운 피드백 후보는 처리 결과를 남긴다: `python tools/memory.py done <id> rule:<이름>` / `item:<slug>` / `skill:<스킬>` / `regression:<id>` / `ignore`.
- 저장한 곳을 사용자에게 한 줄로 알린다("앞으로 규칙으로 저장: memory/rules/number-reading.md").
- 남은 후보 확인: `python tools/memory.py inbox`.