배경
현재 wrap-up 스킬은 세션 종료 시 무조건 실행하는 루틴 패턴을 유도한다. 실제 프로젝트에서 여러 차례 사용해 본 결과, 대부분의 output 이 다른 SSOT 와 중복되는 문제가 반복된다.
중복 분포 (일반 패턴)
| wrap-up 이 memory/plan 에 저장하려던 것 |
실제 SSOT |
| "작업 N 완료", "진행률 X%" |
task/todo 관리 파일 (자동 생성 가능) |
| "PR #N merged", "refactor Y 완료" |
git log / commit message |
| "아키텍처 X 채택", "전략 Y 결정" |
specs/ · ADR · design doc |
| "배포 전 수동 액션 목록" |
프로젝트의 runbook/docs/*.md |
| plan 파일 "완료" 마크 |
git log · task 상태로 추론 가능 |
더 심각한 문제 — Stale Decay
project 타입 memory 는 프로젝트 상태를 저장하려 하면 반드시 stale 된다. 예:
- 어제 "Phase 1 진행 중" 으로 저장한 memory → 오늘 Phase 2 끝난 상황에서 거짓말
- "현재 작업 branch: feature-X" → 머지 후 거짓말
- "Task N 남음" → 완료 뒤 치우지 않으면 거짓말
pick-up 류 재개 스킬은 memory 를 읽을 뿐 치우지 않으므로, 거짓말 memory 가 다음 세션의 잘못된 전제로 작동한다.
제안
1. 기본 행동을 "스킵" 으로
- 현재: 세션 종료 전
/wrap-up 호출 → 무조건 4분류(A/B/C/D) 템플릿 채움
- 변경: 3가지 트리거 중 하나라도 걸릴 때만 실행. 아니면 아무것도 하지 않고 종료.
2. 트리거 조건 (명시)
- T1 — 새 불변 규칙 포착: 사용자가 "앞으로 ~해" / "~하지 마" / "이 프로젝트에서는 ~" 같은 표현으로 durable feedback 을 표명한 경우
- T2 — stale memory 발견: 기존 memory 파일을 읽다가 현재 사실과 모순됨을 발견한 경우. 해당 파일 update/delete 만 수행.
- T3 — code/docs 에 없는 durable 결정: 세션 중에 내린 결정이 commit message · spec · task 문서 · CLAUDE.md 어디에도 반영되지 않은 경우에 한해 memory 승격.
세 조건 모두 해당하지 않으면 wrap-up 스킵이 정답. "스킵했음" 이라고 보고만 하고 종료.
3. Memory 에 저장 금지 항목 명시
SKILL.md 에 명시적으로 박기:
- ❌ 프로젝트 진행 상태 (current phase, 현재 branch, 남은 작업 수, 진행률) — 프로젝트의 task/todo 파일이 SSOT
- ❌ 전략/아키텍처 결정 —
specs/ · ADR · design doc 가 SSOT
- ❌ 배포 runbook · pending ops — 프로젝트의
docs/*.md 가 SSOT
- ❌ Plan 완료 마킹 — git log 로 추론 가능
- ✅ 사용자 feedback (불변 선호/규칙 — 예: "리뷰 산출물은 항상 X 디렉토리에")
- ✅ 프로젝트 불변 fact (외부 리소스 식별자 — 예: 배포 프로젝트 이름, DB id, production branch 이름)
- ✅ 외부 리소스 reference (예: Slack 채널 이름, Linear project key, dashboard URL)
4. 4분류 템플릿 의무 → 옵션
현재 프롬프트는 A(memory)/B(CLAUDE.md)/C(plan)/D(breadcrumb) 를 모두 채우도록 유도한다. 변경: 해당하는 분류만 생성. 불필요한 분류는 강제로 채우지 않는다.
5. 사용자-facing 메시지 변경
- 현재: "N items memory update, M items CLAUDE.md" 식으로 성과 과시
- 변경: "wrap-up 스킵됨 — 트리거 조건 미해당" 도 정상 결과로 보고
Acceptance
배경
현재
wrap-up스킬은 세션 종료 시 무조건 실행하는 루틴 패턴을 유도한다. 실제 프로젝트에서 여러 차례 사용해 본 결과, 대부분의 output 이 다른 SSOT 와 중복되는 문제가 반복된다.중복 분포 (일반 패턴)
git log/ commit messagespecs/· ADR · design docdocs/*.md더 심각한 문제 — Stale Decay
project 타입 memory 는 프로젝트 상태를 저장하려 하면 반드시 stale 된다. 예:
pick-up 류 재개 스킬은 memory 를 읽을 뿐 치우지 않으므로, 거짓말 memory 가 다음 세션의 잘못된 전제로 작동한다.
제안
1. 기본 행동을 "스킵" 으로
/wrap-up호출 → 무조건 4분류(A/B/C/D) 템플릿 채움2. 트리거 조건 (명시)
세 조건 모두 해당하지 않으면 wrap-up 스킵이 정답. "스킵했음" 이라고 보고만 하고 종료.
3. Memory 에 저장 금지 항목 명시
SKILL.md 에 명시적으로 박기:
specs/· ADR · design doc 가 SSOTdocs/*.md가 SSOT4. 4분류 템플릿 의무 → 옵션
현재 프롬프트는 A(memory)/B(CLAUDE.md)/C(plan)/D(breadcrumb) 를 모두 채우도록 유도한다. 변경: 해당하는 분류만 생성. 불필요한 분류는 강제로 채우지 않는다.
5. 사용자-facing 메시지 변경
Acceptance