실습 2 · 회의록 자동화 | 녹음부터 전송까지 AI 팀원에게
실습 1에서 만든 세컨드 브레인 위에서 회의 한 건을 통째로 AI 팀원에게 맡깁니다. 녹음, 정리, 용어 보정, 슬랙 전송, 노트 저장까지 자동화하는 실습입니다.
Overview
실습 1에서 AI 팀원의 세컨드 브레인을 만들었습니다. 이번엔 그 위에서 반복 업무 하나를 직접 자동화해 봅니다. 실제로 쓰는 회의록 자동화 스킬을 함께 만드는 실습입니다.
전사본만 건네면 AI가 회의록으로 정리하고, 용어와 이름을 바로잡고, 슬랙에 보내고, 노트로 저장합니다. 실습 1에서 만든 CLAUDE.md와 Skill이 그대로 기반입니다.
네 단계로 만듭니다.
- 데이터: 함께 일하는 사람·용어·채널을 노트로 정리한다
- 스킬: 정리와 전송을 한 번에 처리하는 Skill을 만든다
- 연동: 슬랙을 한 번 연결한다
- 녹음: 맥 단축어로 녹음부터 전달까지 자동화한다
STEP 1. 함께 일하는 사람·용어 데이터 만들기
AI 팀원이 회의록을 제대로 정리하려면 두 가지를 알아야 합니다. 함께 일하는 사람(이름·이메일·역할), 그리고 우리끼리 쓰는 용어입니다. 이 데이터를 노트로 만들어두면, AI가 회의록을 정리할 때마다 참고해 이름과 용어를 바로잡습니다.
세 개의 노트를 만듭니다. 모두 AI 팀원에게 지시문으로 맡기면 됩니다.
1. 연락처: 호칭으로 이메일 찾기
02-areas/calendar-contacts.md에 팀원을 정리합니다. 이 노트가 있으면 "Dana한테 보내줘"만으로 AI가 이메일을 찾습니다.
아래 지시문을 채팅 입력창에 붙여넣으세요.
02-areas/calendar-contacts.md 노트를 만들어줘. 함께 일하는 사람 목록이야.
호칭, 이메일, 소속, 역할 컬럼으로 표를 만들고 아래 사람을 넣어줘.
- Alex / alex@example.com / 프로덕트팀 / PM
- Dana / dana@example.com / 디자인팀 / 디자이너
- Ryan / ryan@example.com / 개발팀 / 프론트엔드
이후 사람이 늘면 "연락처에 Max 추가해줘, max@example.com"이라고만 하면 됩니다.
2. 용어 사전: 음성 인식 오류 보정
02-areas/meeting-terminology.md에 보정 규칙을 쌓습니다. 음성 인식이 자주 틀리는 단어("스프란트", "에이피아이")를 올바른 표현으로 이어줍니다.
02-areas/meeting-terminology.md 노트를 만들어줘. 음성 인식 오류 보정 사전이야.
원문 표현, 올바른 표현, 맥락 컬럼으로 표를 만들어줘. 처음엔 비어 있어도 돼.
처음엔 비어 있어도 됩니다. AI가 정리하다 모르는 용어를 물어보고, 확인한 결과를 이 노트에 자동으로 더합니다.
3. 슬랙 채널: 보낼 채널 목록
02-areas/slack-channels.md에 자주 쓰는 채널을 적어둡니다. 전송할 때 이 목록에서 고릅니다.
02-areas/slack-channels.md 노트를 만들어줘. 슬랙 채널 목록이야.
채널명, 용도 컬럼으로 표를 만들어줘.
이 데이터가 모두 노트라서 AI가 직접 읽고 씁니다. 따로 연동할 필요 없이, 확인한 용어가 사전에 쌓이고 다음 회의에 바로 반영됩니다.
calendar-contacts, meeting-terminology, slack-channels 세 노트가 만들어졌으면 OK입니다.
STEP 2. 회의록 스킬 만들기
STEP 1에서 만든 세 노트를 읽어 보정과 전송을 한 번에 처리하는 Skill을 만듭니다. 아래 지시문을 그대로 채팅 입력창에 붙여넣으면 AI가 스킬 파일을 만들어줍니다.
.claude/skills/format-meeting-send/SKILL.md 파일을 아래 내용으로 만들어줘.
---
name: format-meeting-send
description: Format pasted meeting text into structured meeting notes, send to a Slack channel, and save to the Second Brain. Use when the user wants to share a meeting summary to Slack after formatting raw meeting content.
allowed-tools: Bash, Read, Write, Edit
user-invocable: true
---
# Format Meeting Notes and Send to Slack
Format raw meeting text, correct terminology, send to Slack, and save to the Second Brain.
## Configuration
- Slack token is stored in `.env` as `SLACK_BOT_TOKEN`.
- Channel list is in `02-areas/slack-channels.md`.
## Workflow
### Step 1: Receive Text
Take everything after the skill invocation as raw meeting content.
If no text is provided, ask: "회의 내용을 붙여넣어 주세요."
Immediately reply "포맷 중입니다..." before any tool calls.
### Step 1.5: Read References (in parallel)
In a single message with multiple tool calls:
1. Read `02-areas/meeting-terminology.md`
2. Read `02-areas/calendar-contacts.md`
3. List folders: `ls 01-projects/ 02-areas/`
### Step 2: Format
Apply glossary corrections from the terminology file, then produce four outputs.
- Title: Korean, under 50 chars
- Uncertain terms: terms not in the glossary (NONE if there are none)
- Slack body (mrkdwn): bold with single `*` only (never `**`), bullet lists not tables,
section headers like `*1. 안건*`, items like `• 항목`
- Second Brain body (markdown): `## 1. 안건` headers, action-item table `| No | 항목 | 담당 | 기한 |`,
Korean, keep all details
### Step 3: Term Confirmation (if needed)
If uncertain terms exist, show the list and ask the user to confirm.
Apply corrections to both bodies, then append them to `02-areas/meeting-terminology.md`.
If none, skip to Step 4.
### Step 4: Confirm Title and Select Channel
Show the Slack-formatted preview, then ask for title confirmation and channel
selection from `02-areas/slack-channels.md`.
### Step 5: Send to Slack and Save to Second Brain
Read the token: `source .env && echo $SLACK_BOT_TOKEN`
Slack — Call 1 (parent message):
```bash
curl -s -X POST "https://slack.com/api/chat.postMessage" \
-H "Authorization: Bearer $SLACK_BOT_TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"channel":"{channel-id}","text":"*[회의록] {title}*\n> {내 이름}의 요청으로 AI가 작성했습니다."}'
```
Extract `ts` from the response, then Call 2 (thread reply):
```bash
curl -s -X POST "https://slack.com/api/chat.postMessage" \
-H "Authorization: Bearer $SLACK_BOT_TOKEN" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{"channel":"{channel-id}","thread_ts":"{ts}","text":"{slack body}"}'
```
Second Brain save (in parallel with Slack): match the content against project/area folders,
save to the matched folder or `03-resources/`, and generate frontmatter (title, date, tags,
aliases, description) before writing the file.
### Step 6: Confirm Result
Reply: "{channel}에 보내고, `{filepath}`에 저장했어요."
## Rules
- Reply "포맷 중입니다..." immediately, before any tool calls.
- Read references in parallel (Step 1.5).
- Do not stop between steps unless term confirmation is needed.
- The glossary is cumulative — save confirmed corrections to meeting-terminology.md.
- Send to Slack and save to the Second Brain in parallel.
- Keep all details; do not summarize content away.
- Slack mrkdwn only: single `*` for bold, no `**`, no tables.
- The title goes only in the parent message, never in the thread body.
.claude/skills/format-meeting-send/SKILL.md가 만들어졌으면 OK입니다.
STEP 3. 슬랙 연결
회의록을 슬랙에 보내려면 한 번만 연결하면 됩니다. 슬랙 앱을 만들고 토큰을 받아 AI에게 건네면 됩니다.
- api.slack.com/apps에 접속해 Create New App → From scratch를 고릅니다.
- 앱 이름(예: Meeting Bot)과 워크스페이스를 정합니다.
- 왼쪽 OAuth & Permissions로 들어가, Bot Token Scopes에 두 권한을 더합니다. -
chat:write(메시지 전송) -chat:write.public(초대 없이 공개 채널에 전송) - 상단 Install to Workspace를 누릅니다.
xoxb-로 시작하는 Bot User OAuth Token을 복사합니다.

복사한 토큰을 AI에게 건넵니다.
슬랙 토큰이야: xoxb-...
.env 파일에 SLACK_BOT_TOKEN으로 저장해줘.
이제부터 "슬랙에 보내줘"라고만 하면 됩니다. 공개 채널은 초대 없이 보내지고, 비공개 채널은 그 채널에서 /invite @Meeting Bot으로 앱을 초대하면 됩니다.
같은 회의록을 메일로도 보낼 수 있습니다. 구글 워크스페이스 CLI(gws)를 한 번 설치하고 인증해두면 "이메일도 보내줘"로 전송됩니다. 필요할 때 AI에게 "Gmail 전송도 붙여줘"라고 하면 설치부터 안내합니다.
토큰이 .env에 저장됐으면 OK입니다.
STEP 4. 맥 단축어로 녹음 자동화
맥 음성 메모 앱은 녹음이 끝나면 내용을 글로 자동 전사해줍니다. 그 전사본을 스킬에 넘기기까지, 녹음 시작과 전달을 단축어 두 개로 자동화합니다. 회의 때마다 손으로 하던 일이 탭 한 번으로 줄어듭니다.
단축어 1: 회의 녹음 시작
탭하면 지정한 폴더에 음성 메모 녹음이 시작됩니다.
- 맥에서 단축어 앱을 엽니다 (Spotlight에서 "단축어" 검색).
- + 버튼으로 새 단축어를 만들고, 이름을 Meeting Start로 정합니다.
- 오른쪽에서 음성 메모를 검색해, 새로운 음성 메모 녹음 생성 액션을 추가합니다.
- 액션의 폴더를 "회의 녹음" 같은 전용 폴더로 지정합니다.

회의 녹음이 다른 메모와 섞이지 않고 한 폴더에 모입니다.
단축어 2: 회의록 정리·전송
전사본을 복사한 뒤 탭하면, 클립보드 앞에 스킬 명령어를 붙여 Claude Code 앱을 엽니다.
- +로 새 단축어를 만들고, 이름을 Meeting Save&Send로 정합니다.
- 액션 네 개를 순서대로 추가합니다. 클립보드 가져오기 → 텍스트 → 클립보드에 복사 → 앱 열기.
먼저 클립보드 가져오기로 복사한 전사본을 가져옵니다. 다음 텍스트 액션에 아래 내용을 넣습니다. 이때 [클립보드]는 직접 타이핑하지 않습니다. 입력 필드를 탭해 변수 목록에서 클립보드를 고릅니다.
/format-meeting-send
[클립보드]
이어서 클립보드에 복사 액션의 입력을 텍스트로 설정하고, 마지막 앱 열기 액션에서 Claude를 고릅니다.

전사본을 복사하고 이 단축어를 탭하면 채팅에 붙여넣을 준비가 됩니다.
맥 단축어는 윈도우에서 안 됩니다. 녹음만 윈도우 녹음 앱으로 따로 하고, 전사한 텍스트를 Claude Code 채팅에 붙여넣으세요. 정리·전송 스킬은 그대로 동작합니다.
단축어 두 개(Meeting Start / Meeting Save&Send)가 만들어졌으면 OK입니다.
STEP 5. 테스트: 실제 회의에서 써보기
실제 회의에서 어떻게 쓰는지 흐름을 따라갑니다.
1. 녹음 시작
Spotlight나 Raycast에서 Meeting Start를 실행하면 녹음이 시작됩니다.

실행하면 음성 메모 앱이 열리고, 녹음이 회의 녹음 폴더에 바로 쌓입니다.

2. 전사본 전달
회의가 끝나면 음성 메모 앱에서 전사본 복사를 누르고, Meeting Save&Send를 실행합니다. Claude Code가 열리면 채팅에 붙여넣습니다(Cmd+V).


붙여넣으면 스킬 명령어가 이미 앞에 붙어 있습니다. Enter를 누르면 AI가 용어와 이름을 보정하고, 회의록을 슬랙용과 노트용으로 정리합니다.

3. 용어·내용 확인
AI가 포맷을 끝내면, 정리된 회의록 미리보기와 사전에 없는 용어를 표로 보여주며 확인을 요청합니다. 맞으면 그대로 두고, 틀린 곳이 있으면 고쳐서 알려주면 됩니다. 확인한 용어는 사전에 자동으로 쌓여 다음 회의부터는 묻지 않습니다.

4. 채널 선택
확인이 끝나면 어느 슬랙 채널에 보낼지 묻습니다. 채널을 고르면 슬랙 전송과 노트 저장이 동시에 끝나고, 같은 회의록이 세컨드 브레인의 알맞은 폴더에 저장됩니다.

슬랙에는 제목 메시지가 채널에 올라가고, 상세 내용은 그 스레드에 달립니다.

5. 커밋 & 머지
전송과 저장까지 끝났으면 마지막으로 메인 세컨드 브레인에 반영합니다. "작업한 내용 커밋하고 메인 세컨드 브레인에 반영해줘"라고 하면 AI가 커밋한 뒤 머지합니다.

메인 세컨드 브레인 폴더에 회의록 노트가 들어와 있으면 완료입니다.

슬랙에 회의록이 올라가고, 메인 세컨드 브레인 폴더에 노트가 반영됐으면 완성입니다.
회의마다 모르는 용어를 한 번 확인해주면 사전에 쌓입니다. 회의를 거듭할수록 AI가 묻는 횟수가 줄고 보정 정확도가 올라갑니다. 세컨드 브레인과 똑같이, 쓸수록 좋아지는 구조입니다.
마치며
회의록 한 건을 통째로 AI 팀원에게 넘겨봤습니다.
스킬 하나로 워크플로우를 자동화하는 과정은 생각보다 단순합니다. 데이터를 모으고, 절차를 스킬로 정리하고, 한 번 연결하면 됩니다. 회의록만이 아닙니다. 주간 보고, 자료 조사, 메일 정리처럼 절차가 반복되는 일은 같은 방식으로 자동화할 수 있습니다. 매번 똑같이 반복하는 일부터 하나씩 맡겨보세요.