retrospective — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited retrospective (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
현재 대화 세션을 돌아보며 유의미한 정보를 추출하고, 적절한 위치에 기록을 남긴다. 다음 대화에서 LLM이 같은 실수를 반복하지 않거나, 더 나은 판단을 내릴 수 있도록 맥락을 축적하는 것이 핵심 목적이다.
현재 대화 전체를 읽으며 아래 항목을 추출한다. 여러 세션을 대상으로 하는 회고라면, 먼저 아래 "옵션: 범위 확장 → 다중 세션·주간 회고 워크플로우"로 세션을 분산 분석한 뒤 그 결과를 종합해 같은 항목을 추출한다.
추출 항목:
추출한 항목을 아래 4가지 카테고리로 분류하고, 각각 업데이트가 필요한지 판단한다. 업데이트 여부는 강제하지 않는다 — 유의미한 변경이 없으면 해당 항목은 건너뛴다.
| 카테고리 | 무엇을 추출하나 | 어디로 보내나 |
|---|---|---|
| 스킬/지침 개선 | 스킬이 놓친 케이스, 잘못된 절차 | 해당 SKILL.md 직접 수정 |
| 신규 스킬 추천 | 여러 번 반복한 다단계 작업 패턴 | 사용자에게 스킬화 제안 (동의 시 skill-creator로 연결) |
| 메모리 | 사용자 선호·피드백·프로젝트 맥락 | `memory-curator`에 위임 — 후보만 식별하고, 저장·중복판정은 memory-curator가 담당 |
| 볼트 (회사) | 업무 회고 — 의사결정·문제 해결·팀 맥락 | 회사 볼트 retrospective/YYYY-MM-DD.md |
| 볼트 (개인) | 회사 맥락 뺀 순수 기술 인사이트 | 개인 볼트 retrospective/YYYY-MM-DD.md |
| 문서화 공백 | 결정·구조·절차인데 어디에도 미기록 | 사용자에게 문서화 제안 (볼트 wiki·프로젝트 docs·README 등) |
| CLAUDE.md 지침 | 지속 적용할 규칙 | 계층 판단 후 적절한 CLAUDE.md / CLAUDE.local.md (아래 기준) |
카테고리별로 아래 기준을 충족할 때만 처리한다.
메모리 → `memory-curator`에 위임
memory-curator 기본 모드에 맡긴다 — 회고가 끝나면 memory-curator를 이어서 실행한다(또는 그 절차를 그대로 따른다).신규 스킬 추천 — 같은 다단계 작업을 반복했을 때
skill-creator로 넘긴다.문서화 공백 — 결정·구조·절차가 어디에도 안 적혔을 때
docs/README/CLAUDE.md, 일회성 작업 보고면 private/.볼트 (회사) — 업무 관련 기록, 나중에 사람이 다시 꺼내볼 가치가 있을 때
볼트 (개인) — 회사 맥락을 제거한 순수 기술 인사이트
스킬/지침 — 스킬이 다음에 같은 상황에서 다르게 행동해야 할 때
CLAUDE.md — 계층을 구분해서 반영한다 지침이 적용될 범위에 맞는 층을 고른다. 잘못된 층에 넣으면 너무 넓게(전역) 새거나 너무 좁게(디렉토리) 갇힌다.
| 층 | 파일 | 적용 범위 | 공유 | 언제 |
|---|---|---|---|---|
| 전역 | ~/.claude/CLAUDE.md | 모든 프로젝트·대화 | 개인 환경 | 보편 규칙. "항상 이렇게 해줘" |
| 프로젝트 | <repo>/CLAUDE.md | 그 레포 전체 | 팀 공유(git) | 그 프로젝트의 팀 규칙·구조 |
| 디렉토리 | <repo>/<subdir>/CLAUDE.md | 그 하위 트리 | 팀 공유(git) | 모노레포 하위 패키지 등 국소 규칙 |
| 개인 | <repo>/CLAUDE.local.md | 그 레포, 나만 | git 미추적 | 개인 지침 — 비공유 작업 방식·로컬 경로·개인 선호 |
CLAUDE.md(전역/프로젝트/디렉토리), 다른 팀원에게 강요하면 안 되는 나 개인만의 방식·로컬 환경이면 CLAUDE.local.md.업데이트 전, 아래 형식으로 회고 내용을 먼저 출력한다.
## 회고 요약 — YYYY-MM-DD
### 잘 된 것
- ...
### 개선이 필요했던 것
- 무엇이 문제였는지 + 왜 그랬는지
### 추천 업데이트
- [ ] [스킬] daily-standup: "다듬기 모드" 분기 추가
- [ ] [신규 스킬?] 같은 다단계 작업을 N회 반복 → 스킬화 제안 (skill-creator)
- [ ] [메모리→curator] 사용자 원본 존중 선호 (memory-curator로 위임)
- [ ] [볼트] 오늘 배운 GitHub 이슈 탐색 패턴 기록
- [ ] [문서화?] X 절차가 어디에도 미기록 → 볼트 wiki 제안
- [ ] [CLAUDE.local.md] 개인 로컬 경로/작업 방식 선호
- [ ] [CLAUDE.md] (변경 없음)각 항목마다 왜 업데이트가 필요한지 한 줄로 근거를 제시한다. 업데이트 불필요 항목은 "(변경 없음)"으로 명시한다.
추천 목록을 보여주고 사용자 확인을 받은 뒤 실행한다.
"위 항목들을 업데이트할까요? 빼거나 추가할 항목이 있으면 말씀해 주세요."
사용자가 전체 동의하거나 일부 선택하면 해당 항목만 실행한다.
업데이트 원칙:
memory-curator 기본 모드로 넘겨 저장·중복판정·MEMORY.md 인덱스 일치 검증을 일임한다. (중복 정리·전역 승격 후 메모리 삭제 같은 위생 작업도 memory-curator가 담당.)skill-creator로 연결, 문서화는 함께 제안한 귀착지에서 진행.retrospective/YYYY-MM-DD.md에 저장retrospective/YYYY-MM-DD.md에 저장 (회사 맥락 제거 후)업데이트한 파일 목록과 변경 내용을 간략히 보고한다.
기본은 현재 대화 세션만 분석한다. 사용자가 원하면 아래 추가 소스도 포함할 수 있다.
| 옵션 | 활성화 방법 | 추가 작업 |
|---|---|---|
| 오늘 git log | "git 커밋도 포함해줘" | 워크스페이스 하위 레포의 오늘 커밋 수집 |
| 오늘 전체 세션 | "오늘 전체 세션 다 봐줘" | 오늘자 세션 JSONL 모아 분석 (아래 워크플로우) |
| 주간/기간 회고 | "지난 주 회고", "최근 N일" | 기간 내 여러 프로젝트 세션 전체를 분산 분석 (아래 워크플로우) |
"지난 주", "이번 주", "최근 N일", "여러 세션" 같은 요청은 세션이 수십~수백 개라 현재 컨텍스트로 한 번에 읽을 수 없다. 아래 순서로 분산 처리한다.
1. 세션 수집 — 대상 기간의 실질 세션을 모은다. 세션 파일은 ~/.claude/projects/<인코딩된-경로>/*.jsonl 에 있다 (subagents/ 하위는 제외). daily-summary 스킬에 collect_jsonl.py 가 있으면 쓰고, 없으면 직접 수집한다:
# 기간 내 실질 세션을 날짜|줄수|경로로. mtime이 아니라 첫 timestamp로 날짜를 잡는다.
for f in $(find ~/.claude/projects -path "*subagents*" -prune -o -name "*.jsonl" -mtime -16 -print | grep -i <워크스페이스>); do
ts=$(grep -m1 -o '"timestamp":"[0-9-]*' "$f" | head -1 | sed 's/"timestamp":"//')
echo "$ts|$(wc -l < "$f")|$f"
done | awk -F'|' '$1 >= "<시작일>" && $2 > 20' | sort20줄 이하는 즉시 종료·취소된 빈 세션이니 제외한다. zsh에서 문자열 비교는[[ ]]또는awk로 한다.
2. 날짜별 병렬 분산 분석 — 날짜(또는 프로젝트) 단위로 묶어 서브에이전트(Explore 등)에 분배한다. 각 에이전트는 맡은 세션들에서 사용자 발화만 뽑아 회고 재료를 추출한다 (tool_result는 자동 제외됨):
jq -r 'select(.type=="user") | .message.content | if type=="string" then . elif type=="array" then (.[]|select(.type=="text")|.text) else empty end' <세션.jsonl>jsonl 전체를 읽지 말고 위 jq로 사용자 발화에 집중한다. assistant 출력은 결론만 일부 참고한다. 각 에이전트에 Step 1의 추출 항목과 "날짜별 마크다운" 출력 형식을 그대로 지시한다.
3. 실제 산출물 대조 — 각 레포 git log --since=<시작일> 으로 커밋/PR을 모아 교차 검증한다. 세션은 "왜/어떻게"(과정·피드백), git log는 "무엇을"(성과)을 보여준다.
4. 종합 — 에이전트 결과를 합쳐 반복되는 선호 패턴을 추린다. 주간 회고에서는 개별 사건보다 반복 패턴이 가장 큰 자산이다.
볼트 경로는 CLAUDE.md에 명시된 값을 사용한다.
retrospective/YYYY-MM-DD.md# 회고 — YYYY-MM-DD
## 잘 된 것
- ...
## 개선이 필요했던 것
- 문제 상황: ...
- 원인: ...
- 다음엔: ...
## 업데이트한 것
- [스킬] daily-standup — 다듬기 모드 분기 추가
- [메모리] feedback-original-content-respect.md 신규 생성retrospective/YYYY-MM-DD.md회사/팀/프로젝트명 없이 범용 기술 지식만 작성한다.
# 기술 인사이트 — YYYY-MM-DD
## 오늘 배운 것
- ...
## 재사용 가능한 절차/체크리스트
- ...synergyai-obsidian)에만 저장한다.CLAUDE.local.md로.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.