Agent skill

daily-work-logger

매일 아침 업무 시작 전 어제 작업 내역을 정리하여 Daily Note에 반영. 서브 에이전트 기반 병렬 처리로 메인 컨텍스트 절약. "어제 작업 정리해줘", "daily log", "업무 내역 정리" 등의 요청 시 자동 적용.

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/daily-work-logger

SKILL.md

Daily Work Logger Skill

개요

매일 아침 업무 시작 전 실행하여 어제 작성/수정된 문서들에서 업무 수행 관련 내용을 추출하고 해당 날짜의 Daily Note에 자동으로 반영하는 skill.

핵심 아키텍처

서브 에이전트 기반 병렬 처리로 메인 에이전트의 컨텍스트를 최소화합니다.

┌─────────────────────────────────────────────────────────────┐
│                    Main Agent (Orchestrator)                 │
│  - 날짜 결정 (Phase 1)                                        │
│  - 서브 에이전트 병렬 실행 (Phase 2)                            │
│  - 결과 수집 및 Daily Note 반영 (Phase 3)                      │
└─────────────────────────────────────────────────────────────┘
                              │
        ┌─────────────┬───────┼───────┬─────────────┐
        │             │       │       │             │
        ▼             ▼       ▼       ▼             ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ SubAgent 1  │ │ SubAgent 2  │ │ SubAgent 3  │ │ SubAgent 4  │
│ Vault Files │ │ CC Sessions │ │ Meeting     │ │ Learning    │
│ Analyzer    │ │ Analyzer    │ │ Notes       │ │ Extractor   │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
        │             │       │       │             │
        └─────────────┴───────┼───────┴─────────────┘
                              ▼
                   ┌─────────────────┐
                   │ Daily Note 반영  │
                   │ (Main Agent)    │
                   └─────────────────┘

인수 (Arguments)

인수 설명 기본값
날짜 분석할 날짜 (YYYY-MM-DD 형식) 어제 날짜

사용 예시:

  • /daily-work-logger - 어제 날짜 분석 및 반영
  • /daily-work-logger 2026-01-12 - 특정 날짜 분석 및 반영

경로 정보

항목 경로
vault ~/DocumentsLocal/msbaek_vault/
dailies ~/DocumentsLocal/msbaek_vault/notes/dailies/
미팅 노트 notes/dailies/YYYY-MM-DD-*.md
기술 문서 001-INBOX/, 003-RESOURCES/
Claude 세션 ~/.claude/projects/

실행 절차

Phase 1: 초기화 (메인 에이전트 - 순차)

  1. 날짜 결정 - 인수가 없으면 어제 날짜 사용
bash
TARGET_DATE="${1:-$(date -v-1d +%Y-%m-%d)}"
NEXT_DATE=$(date -j -f "%Y-%m-%d" -v+1d "$TARGET_DATE" +%Y-%m-%d)
echo "대상 날짜: $TARGET_DATE"
  1. Daily Note 경로 확인
bash
DAILY_NOTE="$HOME/DocumentsLocal/msbaek_vault/notes/dailies/${TARGET_DATE}.md"

Phase 2: 서브 에이전트 병렬 실행 ★

중요: 아래 4개의 Task를 단일 메시지에서 동시에 호출하여 병렬 실행합니다. 각 서브 에이전트는 분석 결과를 마크다운 형식의 텍스트로 반환합니다. 비용/속도 최적화를 위해 haiku 모델을 사용합니다.


SubAgent 1: Vault Files Analyzer

Task 호출 파라미터:

파라미터
description "Vault 파일 분석"
subagent_type "general-purpose"
model "haiku"

프롬프트 (TARGET_DATE, NEXT_DATE 치환 필요):

당신은 Obsidian Vault 파일 분석 전문가입니다. 코드를 작성하지 말고 분석만 수행하세요.

## 작업
{TARGET_DATE} 날짜에 생성/수정된 파일들을 분석하여 업무 관련 내용을 추출합니다.

## 경로
- Vault: ~/DocumentsLocal/msbaek_vault/
- 분석 대상 디렉토리: 001-INBOX/, 003-RESOURCES/, 000-SLIPBOX/, work-log/

## 실행 단계
1. Bash로 해당 날짜에 수정된 .md 파일 찾기 (macOS 호환):
   find ~/DocumentsLocal/msbaek_vault -name "*.md" -type f -exec stat -f "%Sm %N" -t "%Y-%m-%d" {} \; 2>/dev/null | grep "{TARGET_DATE}" | awk '{print $2}' | grep -v "notes/dailies/"

   **주의**: macOS BSD find는 `-newermt` 옵션이 다르게 동작하므로 `stat` + `grep` 조합 사용

2. 발견된 각 파일의 내용 읽기 (Read 도구 사용)

3. 업무 관련 내용 추출:
   - 기술 학습 내용
   - 문서 작성/수정 내용
   - 프로젝트 관련 작업

## 출력 형식 (마크다운으로 반환)
### Vault 문서 작업
- **[파일명]**: 작업 내용 요약 (1-2줄)

(파일이 없으면 "해당 날짜에 수정된 vault 문서 없음" 반환)

SubAgent 2: Claude Sessions Analyzer

Task 호출 파라미터:

파라미터
description "Claude 세션 분석"
subagent_type "general-purpose"
model "haiku"

프롬프트 (TARGET_DATE, NEXT_DATE 치환 필요):

당신은 Claude Code 세션 로그 분석 전문가입니다. 코드를 작성하지 말고 분석만 수행하세요.

## 작업
{TARGET_DATE} 날짜의 Claude Code 세션 로그를 분석하여 수행한 작업을 추출합니다.

## 경로
- Claude 프로젝트: ~/.claude/projects/

## 실행 단계
1. Bash로 해당 날짜 세션 로그 찾기 (macOS 호환):
   find ~/.claude/projects -name "*.jsonl" -type f -exec stat -f "%Sm %N" -t "%Y-%m-%d" {} \; 2>/dev/null | grep "{TARGET_DATE}" | awk '{print $2}'

   **주의**: macOS BSD find는 `-newermt` 옵션이 다르게 동작하므로 `stat` + `grep` 조합 사용

2. 각 세션 로그에서 추출할 정보 (Bash로 head -100 등으로 일부만 읽기):
   - 프로젝트 경로 (어떤 프로젝트에서 작업했는지) - 파일 경로에서 프로젝트명 추출
   - 주요 작업 내용 (코드 작성, 버그 수정, 리팩토링 등)
   - 사용자 요청 메시지 요약

3. JSONL 파일 분석 시 jq 사용:
   head -50 [파일] | jq -r 'select(.type=="user") | .message.content[:200]' 2>/dev/null

## 출력 형식 (마크다운으로 반환)
### Claude Code 작업
- **[프로젝트명]**: 수행 작업 요약
  - 세부 작업 1
  - 세부 작업 2

(세션이 없으면 "해당 날짜에 Claude Code 세션 없음" 반환)

SubAgent 3: Meeting Notes Analyzer

Task 호출 파라미터:

파라미터
description "미팅 노트 분석"
subagent_type "general-purpose"
model "haiku"

프롬프트 (TARGET_DATE 치환 필요):

당신은 미팅 노트 분석 전문가입니다. 코드를 작성하지 말고 분석만 수행하세요.

## 작업
{TARGET_DATE} 날짜의 미팅 노트를 분석하여 주요 내용을 추출합니다.

## 경로
- 미팅 노트 패턴: ~/DocumentsLocal/msbaek_vault/notes/dailies/{TARGET_DATE}-*.md

## 실행 단계
1. Bash로 미팅 노트 파일 찾기:
   ls ~/DocumentsLocal/msbaek_vault/notes/dailies/{TARGET_DATE}-*.md 2>/dev/null

2. 발견된 각 미팅 노트 파일 읽기 (Read 도구 사용)

3. 각 미팅 노트에서 추출:
   - 미팅 주제/제목 (파일명에서 추출)
   - 참석자 (있는 경우)
   - 주요 논의 사항
   - 결정 사항 / Action Items

## 출력 형식 (마크다운으로 반환)
### 미팅
- **[미팅 제목]**
  - 주요 논의: ...
  - 결정 사항: ...
  - Action Items: ...

(미팅 노트가 없으면 "해당 날짜에 미팅 노트 없음" 반환)

SubAgent 4: Learning Extractor

Task 호출 파라미터:

파라미터
description "학습 내용 추출"
subagent_type "general-purpose"
model "haiku"

프롬프트 (TARGET_DATE, NEXT_DATE 치환 필요):

당신은 학습 내용 추출 전문가입니다. 코드를 작성하지 말고 분석만 수행하세요.

## 작업
{TARGET_DATE} 날짜의 Claude Code 세션에서 학습 관련 내용을 추출합니다.

## 경로
- Claude 세션: ~/.claude/projects/

## 학습 감지 키워드
- 한국어: 배웠, 알게, 처음, 새로운, 이해, 몰랐
- 영어: TIL, learned, discovered, first time
- 질문 패턴: 뭐야, 어떻게, 왜, What, How, Why

## 실행 단계
1. Bash로 해당 날짜 세션 로그 찾기 (macOS 호환):
   find ~/.claude/projects -name "*.jsonl" -type f -exec stat -f "%Sm %N" -t "%Y-%m-%d" {} \; 2>/dev/null | grep "{TARGET_DATE}" | awk '{print $2}'

   **주의**: macOS BSD find는 `-newermt` 옵션이 다르게 동작하므로 `stat` + `grep` 조합 사용

2. 각 세션에서 학습 관련 대화 추출 (Bash로 일부만 읽기):
   head -100 [파일] | jq -r 'select(.type=="user") | .message.content // "" | select(test("뭐야|어떻게|왜|배웠|알게|TIL|learned"; "i"))' 2>/dev/null

3. 학습 내용 분류:
   - 기술/도구: 새 라이브러리, CLI, API
   - 개념: 프로그래밍 개념, 패턴, 원칙
   - 해결방법: 에러 해결, 문제 해결 기법

## 출력 형식 (마크다운으로 반환)
### 학습 기록

#### 기술/도구
- **[도구명]**: 설명 (1줄)

#### 개념
- **[개념명]**: 설명 (1줄)

#### 해결방법
- **[문제]**: 해결 방법 요약

(학습 내용 없으면 "해당 날짜에 특별한 학습 기록 없음" 반환)

Phase 3: 결과 통합 및 Daily Note 반영 (메인 에이전트)

  1. 4개 서브 에이전트 결과 수집

    • 각 Task 도구의 반환값을 수집
  2. Daily Note 확인

    • Read 도구로 기존 Daily Note 내용 확인
    • 파일이 없으면 기본 템플릿으로 생성
  3. 결과 통합하여 Daily Note에 반영

    Edit 또는 Write 도구를 사용하여 Daily Note에 다음 섹션 추가/업데이트:

markdown
## 작업 내역

{SubAgent 1 결과 - Vault 문서 작업}

{SubAgent 2 결과 - Claude Code 작업}

{SubAgent 3 결과 - 미팅}

{SubAgent 4 결과 - 학습 기록}
  1. 완료 메시지 출력
{TARGET_DATE} 작업 내역이 Daily Note에 반영되었습니다.

병렬 실행 핵심 원칙

  1. 단일 응답에서 4개 Task 동시 호출: 메인 에이전트는 Phase 2에서 하나의 응답에 4개의 Task 도구 호출을 포함해야 합니다.

  2. haiku 모델 사용: 비용과 속도 최적화를 위해 서브 에이전트는 haiku 모델을 사용합니다.

  3. 결과만 반환: 각 서브 에이전트는 마크다운 형식의 분석 결과 텍스트만 반환합니다.

  4. 메인 에이전트 역할 최소화:

    • Phase 1: 날짜 계산만 수행
    • Phase 2: Task 호출만 수행 (분석 로직 없음)
    • Phase 3: 결과 조합 및 파일 쓰기만 수행

컨텍스트 절약 효과

구분 기존 방식 서브 에이전트 방식
메인 에이전트 컨텍스트 모든 파일 내용 로드 최종 결과만 수신
병렬 처리 불가 4개 작업 동시 실행
실패 격리 전체 실패 개별 서브 에이전트만 재시도

에러 처리

  • 서브 에이전트 실패 시: 해당 섹션을 "분석 실패"로 표시하고 나머지 결과는 반영
  • Daily Note 없음: 기본 템플릿으로 새로 생성
  • 파일 없음: "해당 날짜에 [항목] 없음"으로 표시

관련 Skill

  • learning-tracker: 학습 내용 추출 (SubAgent 4로 사용됨, 독립 실행도 가능)
  • weekly-claude-analytics: 주간 종합 분석
  • project-time-tracker: 프로젝트별 시간 추적
  • usage-pattern-analyzer: 도구 사용 패턴 분석
  • obsidian-vault: vault 작업 기본 가이드

Didn't find tool you were looking for?

Be as detailed as possible for better results