데일리 미팅 업데이트
대화형 인터뷰를 통해 데일리 스탠드업/미팅 업데이트를 생성합니다. 도구가 구성되어 있다고 가정하지 말고, 먼저 물어보세요.
워크플로우
시작
│
▼
┌──────────────────────────────────────────────────────────┐
│ 1단계: 통합 감지 및 제안 │
│ • 확인: Claude Code 히스토리? gh CLI? jira CLI? │
│ • Claude Code → 어제의 세션 다이제스트 가져오기 │
│ → 사용자가 multiSelect로 관련 항목 선택 │
│ • GitHub/Jira → 사용자에게 물어보고, 승인되면 가져오기 │
│ • 인터뷰 전에 데이터를 지금 가져오기 │
├──────────────────────────────────────────────────────────┤
│ 2단계: 인사이트를 곁들인 인터뷰 │
│ • 가져온 데이터를 컨텍스트로 보여주기 │
│ • 어제: "PR #123을 병합하셨네요, 그 외에 다른 작업은?" │
│ • 오늘: 오늘 무엇을 작업할 예정인가요? │
│ • 블로커: 막히는 사항이 있나요? │
│ • 주제: 미팅 마지막에 논의할 사항이 있나요? │
├──────────────────────────────────────────────────────────┤
│ 3단계: 업데이트 생성 │
│ • 인터뷰 답변 + 도구 데이터 결합 │
│ • 깔끔한 Markdown으로 포맷 │
│ • 사용자에게 제시 │
└──────────────────────────────────────────────────────────┘
1단계: 통합 감지 및 제안
1단계: 자동 감지
사용 가능한 통합을 자동으로 확인합니다(오류는 숨기고, 사용자에게 보여주지 않음):
| 통합 | 감지 방법 |
|---|---|
| Claude Code 히스토리 | ~/.claude/projects 디렉토리가 존재하고 .jsonl 파일 있음 |
| GitHub CLI | gh auth status 성공 |
| Jira CLI | jira 명령어 존재 |
| Atlassian MCP | mcp__atlassian__* 도구 사용 가능 |
| Git | Git 저장소 내부에 있음 |
2단계: GitHub/Jira 통합 제안 (사용 가능한 경우)
Claude Code 사용자: 이 단계의 모든 질문에는
AskUserQuestionTool도구를 사용하세요.
GitHub/Git:
만약 HAS_GH 또는 HAS_GIT이 true인 경우:
"GitHub/Git이 구성되어 있는 것을 감지했습니다. 최근 활동(커밋, PR, 리뷰)을 가져올까요?"
옵션:
- "네, 정보를 가져와 주세요"
- "아니요, 직접 모두 입력할게요"
네라고 답한 경우:
"어떤 저장소/프로젝트를 확인할까요?"
옵션:
- "현재 디렉토리만" (git 저장소 안에 있는 경우)
- "저장소 목록을 알려줄게요" → 사용자가 목록 제공
Jira:
만약 HAS_JIRA_CLI 또는 HAS_ATLASSIAN_MCP가 true인 경우:
"Jira가 구성되어 있는 것을 감지했습니다. 티켓을 가져올까요?"
옵션:
- "네, 내 티켓을 가져와 주세요"
- "아니요, 직접 모두 입력할게요"
3단계: GitHub/Jira 데이터 가져오기 (승인된 경우)
GitHub/Git — 승인된 각 저장소에 대해:
- 사용자가 어제 이후로 한 커밋
- 사용자가 열거나 병합한 PR
- 사용자가 한 리뷰
Jira — 사용자에게 할당되고 최근 24시간 내에 업데이트된 티켓
핵심 인사이트: 결과를 저장하여 2단계 인터뷰에서 컨텍스트로 사용합니다.
4단계: Claude Code 히스토리 제공
이 통합은 Claude Code로 작업한 모든 것을 캡처합니다. git이나 Jira에 없는 작업을 기억하는 데 유용합니다.
감지:
ls ~/.claude/projects/*/*.jsonl 2>/dev/null | head -1
Claude Code 히스토리가 존재하면, 물어보세요:
"Claude Code 세션 히스토리에서 어제 작업 내용을 가져올 수 있습니다. git/Jira에 없는 작업(리서치, 디버깅, 기획 등)을 기억하는 데 도움이 됩니다. 확인할까요?"
옵션:
- "네, Claude Code 세션을 가져와 주세요"
- "아니요, 필요한 정보는 모두 있습니다"
네라고 답한 경우, 다이제스트 스크립트 실행:
python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --format json
그런 다음 multiSelect로 세션 제시:
multiSelect: true와 함께 AskUserQuestionTool을 사용하여 사용자가 관련 항목을 선택하도록 합니다:
"다음은 어제의 Claude Code 세션입니다. 스탠드업에 관련된 항목을 선택하세요:"
옵션 (multiSelect):
- "인증 버그 수정 (backend-api)"
- "OAuth 플로우 구현 (backend-api)"
- "홈페이지 스타일 업데이트 (frontend-app)"
- "결제 제공업체 리서치 (docs)"
핵심 인사이트: 사용자가 작업 관련 세션만 선택합니다. 개인 프로젝트나 실험은 제외할 수 있습니다.
다음의 경우 다이제스트 스크립트를 실행하지 마세요:
- 사용자가 Claude Code 히스토리에 대해 명시적으로 "아니요"라고 말한 경우
- 사용자가 직접 모두 입력하겠다고 말한 경우
~/.claude/projects디렉토리가 존재하지 않는 경우
다이제스트 스크립트가 실패한 경우:
- 대체: Claude Code 통합을 조용히 건너뛰고 인터뷰를 진행
- 일반적인 문제: Python이 설치되지 않음, 어제 세션 없음, 권한 오류
- 스탠드업 흐름을 차단하지 마세요. 스크립트는 필수가 아닌 보조 도구입니다.
2단계: 인사이트를 곁들인 인터뷰
Claude Code 사용자: 인터뷰를 진행하려면
AskUserQuestionTool도구를 사용하세요. 구조화된 옵션으로 더 나은 사용자 경험을 제공합니다.
가져온 데이터를 컨텍스트로 사용하여 질문을 더 스마트하게 만듭니다.
질문 1: 어제
데이터를 가져온 경우, 먼저 보여주세요:
"다음은 활동에서 찾은 내용입니다:
- PR #123 병합: 로그인 타임아웃 수정
- backend-api에서 3개의 커밋
- PR #456 리뷰 (승인)
제가 놓친 다른 작업이 어제 있었나요?"
데이터를 가져오지 않은 경우:
"어제/마지막 스탠드업 이후에 무엇을 작업했나요?"
사용자 응답이 모호하면 후속 질문:
- "X에 대해 더 자세히 알려주시겠어요?"
- "특정 완료한 작업이 있나요?"
질문 2: 오늘
"오늘은 무엇을 작업할 예정인가요?"
옵션:
- [텍스트 입력 - 사용자가 자유롭게 입력]
Jira 데이터를 가져온 경우, 제안할 수 있습니다:
"할당된 티켓이 있습니다:
- PROJ-123: OAuth 플로우 구현 (진행 중)
- PROJ-456: 결제 버그 수정 (할당됨)
오늘 이 중에서 작업할 것이 있나요?"
질문 3: 블로커
"막히는 사항이나 장애물이 있나요?"
옵션:
- "블로커 없음"
- "네, 블로커가 있습니다" → 세부사항 후속 질문
질문 4: 논의 주제
"데일리 미팅 마지막에 논의하고 싶은 주제가 있나요?"
옵션:
- "아니요, 논의할 내용 없음"
- "네" → 세부사항 후속 질문
주제 예시:
- 의견이 필요한 기술적 결정
- 다른 팀과의 협업 정렬
- 우선순위에 대한 질문
- 팀에 전달할 공지사항이나 정보
3단계: 업데이트 생성
모든 정보를 깔끔한 Markdown으로 결합:
# 데일리 업데이트 - [날짜]
## 어제
- [인터뷰 항목]
- [가져온 경우 GitHub/Jira 항목]
## 오늘
- [인터뷰 항목]
## 블로커
- [블로커 또는 "블로커 없음"]
## PR 및 리뷰 (GitHub에서 가져온 경우)
- [연 PR]
- [병합된 PR]
- [완료한 리뷰]
## Jira (Jira에서 가져온 경우)
- [업데이트된 티켓]
## 논의 주제
- [주제 또는 "없음"]
---
*링크:*
- [PR 링크]
- [티켓 링크]
핵심 원칙
- 인터뷰가 기본 — 도구는 보조 수단이며, 인간의 컨텍스트를 대체하지 않습니다.
- 접근 전 동의 — 통합에서 데이터를 가져오기 전에 항상 물어보세요.
- 컨텍스트 인식 질문 — 인터뷰 중 가져온 데이터를 보여줘서 기억을 자극합니다 ("PR #123을 병합하셨네요, 다른 작업은?")
빠른 참조
| 단계 | 작업 | 도구 |
|---|---|---|
| 1. 감지 및 제안 | gh/jira/claude 히스토리 확인, 사용자에게 물어보기, 데이터 가져오기 | Bash (자동), AskUserQuestionTool* |
| 2. 인터뷰 | 인사이트와 함께 4가지 질문 | AskUserQuestionTool* |
| 3. 생성 | Markdown 포맷 | 텍스트 출력 |
*Claude Code 전용: 구조화된 질문에 AskUserQuestionTool 도구 사용.
Claude Code 다이제스트 스크립트
# 어제 세션을 JSON으로 가져오기
python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --format json
# 오늘 세션 가져오기
python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --date today --format json
# 특정 프로젝트로 필터링
python3 ~/.claude/skills/daily-meeting-update/scripts/claude_digest.py --project ~/my-app --format json
예시 세션
Claude: "데일리 업데이트를 준비할게요! GitHub이 구성되어 있는 것을 감지했습니다. 최근 활동을 가져올까요?"
사용자: "네"
Claude: "어떤 저장소를 확인할까요?"
사용자: "backend-api와 frontend-app"
[Claude가 GitHub 데이터를 자동으로 가져옴]
Claude: "어제의 Claude Code 세션 히스토리도 가져올 수 있습니다. 확인할까요?"
사용자: "네"
[Claude가 다이제스트 스크립트를 실행, 5개의 세션을 가져옴]
Claude: "다음은 어제의 Claude Code 세션입니다. 스탠드업에 관련된 항목을 선택하세요:"
☑ 인증 타임아웃 버그 수정 (backend-api)
☑ OAuth 플로우 구현 (backend-api)
☐ 개인 블로그 업데이트 (blog) - [사용자가 개인 프로젝트 체크 해제]
☑ 결제 제공업체 리서치 (docs)
☐ 테스트 실패 디버깅 (experiments)
사용자: [3개의 관련 항목 선택]
Claude: "활동에서 찾은 내용입니다:
- PR #120 병합: 로그인 타임아웃 수정
- PR #125 오픈: feat: OAuth 플로우 추가
- PR #123 리뷰 (승인), PR #456 리뷰 (변경 요청)
- backend-api에서 5개의 커밋
- [Claude Code] 인증 타임아웃 버그 수정
- [Claude Code] OAuth 플로우 구현
- [Claude Code] 결제 제공업체 리서치
제가 놓친 다른 작업이 어제 있었나요?"
사용자: "아니요, 모두 다뤘습니다"
Claude: "오늘은 무엇을 작업할 예정인가요?"
사용자: "OAuth 기능을 계속하고 스테이징에 배포할 예정입니다"
Claude: "블로커가 있나요?"
사용자: "없습니다"
Claude: "데일리 마지막에 논의할 주제가 있나요?"
사용자: "네, 새 결제 모듈의 아키텍처에 대해 논의하고 싶습니다"
[Claude가 업데이트 생성]
출력 예시
# 데일리 업데이트 - 2026-01-22
## 어제
- 인증 기능 작업
- 결제 제공업체 리서치
- PR #120 병합 (fix: 로그인 타임아웃)
- PR #125 오픈 (feat: OAuth 플로우 추가)
## 오늘
- OAuth 기능 계속
- 스테이징에 배포
## 블로커
- 블로커 없음
## PR 및 리뷰
- **오픈:** PR #125 - feat: OAuth 플로우 추가
- **병합:** PR #120 - fix: 로그인 타임아웃
- **리뷰:** PR #123 (승인), PR #456 (변경 요청)
## 논의 주제
- 새 결제 모듈의 아키텍처
---
*링크:*
- https://github.com/org/repo/pull/125
- https://github.com/org/repo/pull/120
안티 패턴
| 피해야 할 것 | 이유 (전문 지식) | 대신 |
|---|---|---|
| 묻지 않고 gh/jira 실행 | 사용자가 개인 저장소를 보고 있거나 노출하고 싶지 않은 민감한 프로젝트 컨텍스트에 있을 수 있음 | 항상 먼저 물어보고 사용자가 저장소를 선택하게 함 |
| 현재 디렉토리가 유일한 프로젝트라고 가정 | 개발자는 종종 2-5개의 저장소를 동시에 작업함 (프론트엔드, 백엔드, 인프라) | "어떤 프로젝트를 작업 중인가요?"라고 물어보기 |
| 도구 데이터만으로 인터뷰 생략 | 도구는 무슨 일이 일어났는지는 캡처하지만, 왜(WHY)와 컨텍스트(리서치, 미팅, 기획)는 놓침 | 인터뷰가 기본, 도구는 보조 |
| 4가지 질문 전에 업데이트 생성 | 사용자가 내러티브를 바꾸는 중요한 블로커나 논의 주제를 가질 수 있음 | 인터뷰 완료 후 생성 |
| 원시 커밋 메시지 포함 | 커밋 메시지는 종종 암호화되어 있음 ("fix", "wip") | 사람이 읽을 수 있는 결과로 요약 |
| 인터뷰 후 데이터 요청 | 인터뷰 중 인사이트를 보여주면 질문이 더 스마트해짐 ("PR #123을 병합하셨네요, 다른 작업은?") | 먼저 데이터를 가져온 후 컨텍스트로 인터뷰 |
절대 하지 말아야 할 것
- 절대 도구가 구성되어 있다고 가정하지 마세요 — 많은 개발자가 gh는 설치했지만 인증하지 않았거나, jira CLI가 잘못된 인스턴스를 가리키고 있을 수 있습니다.
- 절대 "논의 주제" 질문을 건너뛰지 마세요 — 이는 종종 스탠드업에서 가장 가치 있는 부분이며 도구로는 캡처할 수 없습니다.
- 절대 15개 이상의 항목을 생성하지 마세요 — 스탠드업은 읽는 데 2분 미만이어야 합니다. 긴 업데이트는 청중의 주의를 잃습니다.
- 절대 컨텍스트 없이 티켓/PR 번호만 포함하지 마세요 — "PROJ-123"은 아무 의미가 없습니다. 항상 제목이나 요약을 포함하세요.
- 절대 사용자가 명시적으로 승인하지 않은 저장소에서 데이터를 가져오지 마세요 — 다른 저장소를 볼 수 있더라도 경계를 존중하세요.