Skip to content

wrap-up: 기본 스킵 + 트리거 조건부 실행으로 전환 #26

@devstefancho

Description

@devstefancho

배경

현재 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

  • SKILL.md 상단에 "기본은 스킵, 트리거 조건부 실행" 원칙 명시
  • 3가지 트리거 조건 + 저장 금지 항목 목록 박기
  • subagent 프롬프트에서 A/B/C/D 4분류 의무 제거, "해당 분류만 생성" 명시
  • "스킵" 도 유효 결과로 인식하는 사용자 메시지 포맷

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions