Dotfiles weekly-newsletter

install
source · Clone the upstream repo
git clone https://github.com/msbaek/dotfiles
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/msbaek/dotfiles "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/weekly-newsletter" ~/.claude/skills/msbaek-dotfiles-weekly-newsletter && rm -rf "$T"
manifest: .claude/skills/weekly-newsletter/SKILL.md
source content

Weekly Newsletter Skill

개요

매주 토요일 오전 실행하여 기술적, 리더십적으로 외부 공유할 만한 내용을 뉴스레터로 작성하는 skill.

핵심 아키텍처

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

┌─────────────────────────────────────────────────────────────┐
│                    Main Agent (Orchestrator)                 │
│  - 날짜 범위 계산 (Phase 1)                                    │
│  - 서브 에이전트 병렬 실행 (Phase 2)                            │
│  - 결과 통합 및 뉴스레터 작성 (Phase 3)                         │
└─────────────────────────────────────────────────────────────┘
                              │
              ┌───────────────┼───────────────┐
              │               │               │
              ▼               ▼               ▼
    ┌─────────────┐  ┌─────────────┐  ┌─────────────┐
    │ SubAgent 1  │  │ SubAgent 2  │  │ SubAgent 3  │
    │ Daily Notes │  │ Coffee-time │  │ Weekly Docs │
    │ Analyzer    │  │ Analyzer    │  │ Analyzer    │
    └─────────────┘  └─────────────┘  └─────────────┘
         │               │               │
         └───────────────┼───────────────┘
                         ▼
              ┌─────────────────┐
              │ 뉴스레터 작성    │
              │ (Main Agent)    │
              └─────────────────┘

인수 (Arguments)

인수설명기본값
주차분석할 주차 (YYYY-WXX 형식)금주

사용 예시:

  • /weekly-newsletter
    - 금주 뉴스레터 생성
  • /weekly-newsletter 2026-W03
    - 2026년 3주차 뉴스레터 생성

주차 정의

중요: 이 스킬에서 주(week)는 토요일~금요일 기준입니다.

주차시작일 (토)종료일 (금)
2026-W012025-12-272026-01-02
2026-W022026-01-032026-01-09
2026-W032026-01-102026-01-16

실행 시점

  • 실행: 매주 토요일 오전 (또는 필요 시)
  • 대상 기간: 해당 주 토요일 ~ 금요일 (7일간)
  • 출력:
    newsletters/YYYY-WXX-newsletter.md

경로 정보

항목경로
vault
$VAULT_ROOT/
coffee-time
$VAULT_ROOT/coffee-time
dailies
$VAULT_ROOT/notes/dailies/
newsletters
$VAULT_ROOT/newsletters/
사용자 프로필
~/git/aboutme/AI-PROFILE.md

입력 소스

소스경로담당 서브 에이전트
Daily Notes
notes/dailies/
(토~금)
SubAgent 1
coffee-time
coffee-time/
(해당 주)
SubAgent 2
주간 작성 문서vault 전체 (해당 주 수정)SubAgent 3

실행 절차

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

  1. 주차 결정 및 날짜 범위 계산
# 인수로 주차가 주어진 경우
if [ -n "$1" ]; then
  WEEK_NUM="$1"  # 예: 2026-W03
else
  # 금주 계산 (ISO 주차 기준)
  WEEK_NUM=$(date +%G-W%V)
fi

# ISO 주차의 월요일 구하기
ISO_MONDAY=$(date -j -f "%G-W%V-%u" "${WEEK_NUM}-1" +%Y-%m-%d 2>/dev/null)

# 토요일 = ISO 월요일 - 2일 (주의 시작)
SATURDAY=$(date -j -v-2d -f "%Y-%m-%d" "$ISO_MONDAY" +%Y-%m-%d)

# 금요일 = 토요일 + 6일 (주의 끝)
FRIDAY=$(date -j -v+6d -f "%Y-%m-%d" "$SATURDAY" +%Y-%m-%d)

# 다음날 (검색 종료 경계)
NEXT_DAY=$(date -j -v+1d -f "%Y-%m-%d" "$FRIDAY" +%Y-%m-%d)

echo "주차: $WEEK_NUM"
echo "대상 기간: $SATURDAY (토) ~ $FRIDAY (금)"

예시:

  • 2026-W03
    → ISO 월요일: 2026-01-13 → 토요일: 2026-01-11 → 금요일: 2026-01-17
    • 수정: 실제로는 2026-01-10 (토) ~ 2026-01-16 (금)

참고: macOS

date
명령어 사용. GNU date와 문법이 다름.

  1. 출력 경로 확인
OUTPUT_FILE="$VAULT_ROOT/newsletters/${WEEK_NUM}-newsletter.md"

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

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


SubAgent 1: Daily Notes Analyzer

Task 호출 파라미터:

파라미터
description"Daily Notes 분석"
subagent_type"general-purpose"
model"sonnet"

프롬프트 (SATURDAY, FRIDAY, NEXT_DAY 치환 필요):

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

## 작업
{SATURDAY} (토) ~ {FRIDAY} (금) 기간의 Daily Notes를 분석하여 주간 업무 하이라이트를 추출합니다.

## 경로
- Daily Notes: $VAULT_ROOT/notes/dailies/

## 실행 단계
1. Bash로 해당 주 Daily Notes 찾기 (macOS 호환):
   find $VAULT_ROOT/notes/dailies -name "*.md" -type f \
     -exec stat -f "%Sm %N" -t "%Y-%m-%d" {} \; 2>/dev/null | \
     awk -v start="{SATURDAY}" -v end="{FRIDAY}" '$1 >= start && $1 <= end {print $2}'

2. 각 Daily Note 읽기 (Read 도구 사용)

3. 추출할 내용:
   - 주요 업무 하이라이트
   - 기술 학습 내용
   - 해결한 문제들
   - 외부 공유에 적합한 인사이트

## 필터링 기준
**포함**: 기술 트렌드, 학습 방법론, 팀 운영 인사이트
**제외**: 내부 업무 세부사항, 개인 일정, 고객/파트너 정보

## 출력 형식 (마크다운으로 반환)
### 주간 업무 하이라이트
- **[날짜]**: 주요 작업 및 성과
- **[날짜]**: 주요 작업 및 성과

### 기술 학습
- 학습 내용 1
- 학습 내용 2

(Daily Notes가 없으면 "해당 주에 Daily Notes 없음" 반환)

SubAgent 2: Coffee-time Analyzer

Task 호출 파라미터:

파라미터
description"Coffee-time 분석"
subagent_type"general-purpose"
model"sonnet"

프롬프트 (SATURDAY, FRIDAY, NEXT_DAY 치환 필요):

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

## 작업
{SATURDAY} (토) ~ {FRIDAY} (금) 기간의 coffee-time 노트를 분석하여 핵심 인사이트를 추출합니다.

## 경로
- Coffee-time: $VAULT_ROOT/coffee-time/

## 파일명 패턴
- `YYYY. M. DD. 커피타임.md`
- 예: `2026. 1. 14. 커피타임.md`

## 실행 단계
1. Bash로 해당 주 coffee-time 노트 찾기 (macOS 호환):
   find $VAULT_ROOT/coffee-time -name "*.md" -type f \
     -exec stat -f "%Sm %N" -t "%Y-%m-%d" {} \; 2>/dev/null | \
     awk -v start="{SATURDAY}" -v end="{FRIDAY}" '$1 >= start && $1 <= end {print $2}'

2. 각 커피타임 노트 읽기 (Read 도구 사용)

3. 추출할 내용:
   - 기술 인사이트 (트렌드, 도구, 방법론)
   - 리더십/팀 운영 토론
   - 업계 동향 분석
   - 핵심 인용문/교훈

## 출력 형식 (마크다운으로 반환)
### 커피타임 하이라이트

#### [날짜] - [주제]
- 핵심 논의: ...
- 주요 인사이트: ...
- 교훈: ...

#### [날짜] - [주제] (있는 경우)
- 핵심 논의: ...

(커피타임 노트가 없으면 "해당 주에 커피타임 노트 없음" 반환)

SubAgent 3: Weekly Documents Analyzer

Task 호출 파라미터:

파라미터
description"주간 문서 분석"
subagent_type"general-purpose"
model"sonnet"

프롬프트 (SATURDAY, FRIDAY, NEXT_DAY 치환 필요):

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

## 작업
{SATURDAY} (토) ~ {FRIDAY} (금) 기간에 생성/수정된 기술 문서들을 분석하여 외부 공유 적합 내용을 추출합니다.

## 경로
- Vault: $VAULT_ROOT/
- 분석 대상: 001-INBOX/, 003-RESOURCES/, 000-SLIPBOX/

## 실행 단계
1. Bash로 해당 주에 수정된 .md 파일 찾기 (macOS 호환):
   find $VAULT_ROOT \( -path "*/001-INBOX/*" -o -path "*/003-RESOURCES/*" -o -path "*/000-SLIPBOX/*" \) \
     -name "*.md" -type f -exec stat -f "%Sm %N" -t "%Y-%m-%d" {} \; 2>/dev/null | \
     awk -v start="{SATURDAY}" -v end="{FRIDAY}" '$1 >= start && $1 <= end {print $2}'

2. 발견된 파일 중 중요 문서 읽기 (Read 도구 사용, 최대 10개)

3. 분류 기준:
   - 기술 트렌드 (AI, 아키텍처, 개발 방법론)
   - 리더십/조직 인사이트
   - 학습 방법론
   - 업계 동향

## 필터링 기준
**포함**: SDD, AI 코딩 도구, 새로운 아키텍처 패턴, 효과적인 매니저 특징, AI 활용 학습법
**제외**: 내부 업무 세부사항, 회사 고유 프로세스, 개인 일정, 고객/파트너 정보

## 출력 형식 (마크다운으로 반환)
### 기술 트렌드
- **[문서명]**: 핵심 내용 요약 (2-3줄)

### 리더십 & 조직 인사이트
- **[문서명]**: 핵심 내용 요약

### 학습 방법론
- **[문서명]**: 핵심 내용 요약

(수정된 문서가 없으면 "해당 주에 수정된 기술 문서 없음" 반환)

Phase 3: 결과 통합 및 뉴스레터 작성 (메인 에이전트)

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

    • 각 Task 도구의 반환값을 수집
  2. 사용자 프로필 읽기

    • Read 도구로
      ~/git/aboutme/AI-PROFILE.md
      확인
    • 톤앤매너 조정에 활용
  3. 뉴스레터 작성

    Write 도구를 사용하여

    newsletters/{WEEK_NUM}-newsletter.md
    생성:

---
id: {WEEK_NUM}-newsletter
aliases:
  - {YEAR}년 {WEEK}주차 뉴스레터
tags:
  - newsletter
  - weekly-digest
created_at: {TODAY}
period: {SATURDAY} ~ {FRIDAY}
---

# Weekly Digest - {YEAR}년 {WEEK}주차

> "핵심 인용문" - 출처

**기간**: {SATURDAY_DISPLAY} (토) ~ {FRIDAY_DISPLAY} (금)

---

## 이번 주 커피타임 하이라이트

{SubAgent 2 결과 - 커피타임 분석}

---

## 기술 트렌드

{SubAgent 3 결과 - 기술 트렌드 부분}

---

## 리더십 & 조직 인사이트

{SubAgent 3 결과 - 리더십 부분}
{SubAgent 2 결과 - 리더십 관련 내용}

---

## 주간 업무 하이라이트

{SubAgent 1 결과}

---

## 이번 주 핵심 교훈

1. 교훈 1 (위 내용에서 추출)
2. 교훈 2
3. 교훈 3

---

## 다음 주 포커스

- [ ] 포커스 영역 1
- [ ] 포커스 영역 2

---

## Related Notes

- [[관련 노트 1]]
- [[관련 노트 2]]
  1. 완료 메시지 출력
{WEEK_NUM} 뉴스레터가 생성되었습니다: newsletters/{WEEK_NUM}-newsletter.md

병렬 실행 핵심 원칙

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

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

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

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

    • Phase 1: 날짜 계산만 수행
    • Phase 2: Task 호출만 수행 (분석 로직 없음)
    • Phase 3: 결과 조합 및 뉴스레터 작성만 수행

컨텍스트 절약 효과

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

뉴스레터 톤앤매너

  1. CTO 관점의 Weekly Digest
  2. 점진적 개선(Incremental) 관점 반영
  3. TDD/Clean Code 철학과 연결
  4. 실용적 인사이트 중심
  5. 핵심 인용문으로 섹션 강조
  6. 다음 주 포커스 섹션으로 연속성 제공

외부 공유 적합성 필터링

포함 (외부 공유 적합):

분류예시
기술 트렌드SDD, AI 코딩 도구, 새로운 아키텍처 패턴
리더십 인사이트효과적인 매니저 특징, 팀 운영 노하우
학습 방법론조각 지식 전략, AI 활용 학습법
업계 동향 분석하이프 사이클, 재본스 역설

제외:

분류이유
내부 업무 세부사항민감한 비즈니스 정보
회사 고유 프로세스내부 전용
개인 일정/TODO공유 부적합
고객/파트너 정보기밀 사항

에러 처리

  • 서브 에이전트 실패 시: 해당 섹션을 "분석 실패"로 표시하고 나머지 결과는 반영
  • newsletters 폴더 없음: 자동 생성
  • 파일 없음: "해당 주에 [항목] 없음"으로 표시

검증 체크리스트

  • 해당 주(토~금) 날짜 범위 정확한지
  • coffee-time 해당 주 노트 모두 포함 여부
  • dailies 내용 반영 여부
  • 외부 공유 부적합 내용 제외 여부
  • 마크다운 포맷 정상 렌더링
  • Related Notes 링크 정확성
  • 주차 번호(Week Number) 정확한지

의존 관계

daily-work-logger (매일)
        ↓
    dailies/YYYY-MM-DD.md
        ↓
weekly-newsletter (토요일) ← 이 skill
        ↓
    newsletters/YYYY-WXX-newsletter.md

관련 Skill

  • daily-work-logger
    : 매일 업무 내역 정리 (이 skill의 입력 소스)
  • obsidian-vault
    : vault 작업 기본 가이드