Community생산성 & 협업github.com

meeting-minutes (회의록 생성)

회의 녹음(m4a, mp3, wav, mp4 등)을 사용자의 컴퓨터에서 직접 회의록으로 변환합니다. Whisper가 음성을 텍스트로 변환하고, pyannote가 화자를 분리하며, 에이전트가 화자 레이블이 지정된 전사본을 바탕으로 회의록을 작성합니다. 오디오가 컴퓨터를 떠나지 않습니다.

meeting-minutes (회의록 생성)란 무엇인가요?

이 스킬은 사용자가 제공한 회의 녹음 파일을 로컬 환경에서 완전히 처리하여 신뢰할 수 있는 회의록을 생성합니다. Whisper 모델로 음성을 텍스트로 변환(Transcription)하고, pyannote 라이브러리로 화자 분리(Diarization)를 수행한 후, 화자 레이블이 포함된 전사본을 기반으로 에이전트가 회의록을 작성합니다. 모든 처리 과정은 사용자의 컴퓨터에서 이루어지므로 오디오 데이터가 외부로 유출되지 않습니다. 이 스킬은 Claude Code, Cursor, Codex 등 다양한 AI 에이전트 플랫폼에서 사용할 수 있으며, 사용자가 회의록, 요약, 전사본, 화자 식별 또는 '누가 무엇을 말했는지'를 요청할 때 적합합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/space-enthusiast/meeting-minutes-skill/tree/HEAD/skills/meeting-minutes

Installed? Explore more 생산성 & 협업 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

회의록 (Meeting Minutes)

회의에 참석하지 못한 사람도 신뢰할 수 있는 회의록을 생성합니다. 모든 발언은 녹음 파일로 추적 가능하며, 각 화자 레이블은 그 확실성에 대해 정직하게 표시됩니다.

녹음 파일이 진실의 원천(Source of Truth)입니다. 전사본(Transcript)은 증거이며, 회의록은 그 증거에 대한 해석입니다. 회의 봇이나 참석자가 작성한 메모는 부차적인 자료로, 교차 검증 목적으로만 사용합니다.

작동 모드 (Operating modes)

이 스킬을 로드한다고 해서 전체 실행이 승인되는 것은 아닙니다. 요청에 가장 적합한 최소 모드를 선택하세요.

  • 안내 모드 (Guidance mode): 전사 방법, 특정 기기에 적합한 모델, 화자 레이블이 잘못된 이유, 기존 전사본을 읽는 방법 등에 대한 질문에 답변합니다. 관련 파일에서 정보를 찾아 답하며, 아무것도 설치하거나 파일을 생성하지 않습니다.
  • 전사 모드 (Transcript mode): 사용자가 텍스트만을 원합니다. 설정(setup), 전사(transcription), 그리고 (거절하지 않은 경우) 화자 분리(speaker separation)를 실행합니다. 화자 레이블이 지정된 전사본이 생성된 후 중단됩니다.
  • 회의록 모드 (Minutes mode): 사용자가 회의록을 원합니다. 모든 단계를 실행하고 "출력물(Outputs)"에 나열된 파일을 작성합니다.

요청이 두 가지 이상의 모드에 해당할 수 있다면, 아무것도 설치하기 전에 짧은 질문을 하나 하세요.

플랫폼 용어 (Platform terminology)

이 스킬은 특정 에이전트에 종속되지 않습니다.

  • Shell은 플랫폼이 사용자 컴퓨터에서 명령어를 실행하는 데 사용하는 것입니다.
  • Background run은 플랫폼이 긴 명령을 시작하고 종료 시 알림을 받는 방식입니다. 이것이 없으면 명령을 포그라운드에서 실행하고 사용자에게 예상 시간을 알려줍니다.
  • **환경 (Environment)**은 이 스킬이 한 번 생성한 후 재사용하는 Python 환경입니다. <python>은 그 인터프리터입니다.
  • **참조 스크립트 (Reference script)**는 이 파일들에 있는 코드 블록입니다. <out>/work/에 저장하고 <python>으로 실행합니다. 이것은 테스트된 시작점이지 고정된 계약이 아닙니다: 기기, 라이브러리 버전, 또는 요청에 따라 필요하면 이를 조정하고 무엇을 변경했는지 설명합니다.

원칙 (Principles)

  1. 오디오는 로컬에 유지됩니다. 녹음 파일이나 그 일부를 원격 서비스에 업로드하지 마십시오. 전사(transcription)와 화자 분리(speaker separation)는 이 컴퓨터에서 실행됩니다.
  2. 텍스트가 어디로 가는지 투명하게 알리십시오. 전사본은 텍스트이며, 회의록을 작성하는 에이전트가 이를 읽습니다. 그 에이전트가 클라우드 모델이라면 텍스트가 해당 제공자에게 전송됩니다. 회의가 민감할 수 있는 경우 첫 실행 전에 한 번 이 사실을 알리십시오.
  3. 오직 말해진 내용만. 회의록은 전사본이 뒷받침하는 내용만 포함합니다. 지어낸 소유자, 날짜, 숫자 또는 결정은 없습니다.
  4. 정직한 화자 레이블. 숫자는 증거가 있을 때만 이름이 됩니다. 추측은 추측으로 표시됩니다.
  5. 한 번에 하나의 무거운 작업, 낮은 우선순위로. 음성 모델은 전체 머신을 사용합니다. 전사(transcription)와 화자 분리(speaker separation)를 동시에 실행하지 마십시오. 느려도 괜찮습니다. 사용자는 여전히 이 컴퓨터에서 작업해야 합니다.
  6. 설치 전에 물어보고, 비밀번호를 절대 처리하지 마십시오. 프로그램을 설치하기 전에 명령어를 보여주십시오. 사용자가 로그인하고, 모델 이용 약관에 동의하며, 토큰을 저장합니다. 대화 중에 비밀번호나 토큰을 요구하지 마십시오.
  7. 인식 오류는 예상됩니다. 이름, 숫자, 전문 용어가 취약점입니다. 매끄럽게 수정하는 대신 중요한 것은 검증하십시오.

설정 값 (Setup values)

첫 번째 단계 전에 이 값들을 확인하십시오. 사용자에게 직접 알 수 없는 것만 물어보십시오.

  • 스킬 디렉토리: 이 SKILL.md가 포함된 절대 경로.
  • 녹음 파일: 오디오 또는 비디오 파일의 절대 경로.
  • 출력 디렉토리 <out>: 기본값은 녹음 파일 옆에 새 폴더로, 녹음 파일 이름에 -minutes를 붙여서 만듭니다. 사용자가 다른 위치를 지정하거나 녹음 파일이 작업 파일이 속하지 않는 동기화/공유 폴더에 있을 경우 다른 장소를 사용합니다.
  • 언어: 물어보거나 모델이 자동 감지하도록 합니다.
  • 참석자: 이름, 알고 있다면 팀이나 역할. 화자에게 이름을 붙이고 회의록 헤더에 필요합니다. 사용자가 모르는 경우 번호가 매겨진 화자로 진행합니다.
  • 제목, 날짜와 시간, 목적: 헤더용입니다. 사용자 또는 파일명과 메타데이터에서 가져오고, 추측으로 생성하지 마십시오.

출력물 (Outputs)

모든 경로는 <out> 내부에 있습니다.

파일작성 시점내용
transcript.json2단계단어 수준 타임스탬프가 포함된 세그먼트. 이후 절대 수정되지 않음
transcript.txt2단계동일한 텍스트, 세그먼트당 타임스탬프가 포함된 한 줄. 수정되지 않은 기록
diarization.json3단계누가 언제 말했는지, 화자는 1번부터 번호 매겨짐
speakers.json4단계화자 번호와 이름 매핑, 불확실성 표시 포함
corrections.tsv4단계반복되는 인식 오류와 그 수정 사항
transcript-speakers.txt4단계화자 레이블이 지정되고 수정된 전사본. 회의록의 기초
minutes.md5단계회의록. 화자 레이블이 지정된 전사본이 부록으로 포함됨
work/전체실행된 참조 스크립트와 로그

워크플로우 (Workflow)

단계참고 문서결과
1. 설정 (Setup)SETUP.md작동하는 환경, GPU 또는 CPU 결정, 화자 분리 여부 결정
2. 전사 (Transcription)TRANSCRIPTION.mdtranscript.json, transcript.txt
3. 화자 분리 (Speaker separation)DIARIZATION.mddiarization.json
4. 화자 및 수정 (Speakers and corrections)SPEAKERS.mdspeakers.json, corrections.tsv, transcript-speakers.txt
5. 회의록 (Minutes)MINUTES.mdminutes.md

1단계는 컴퓨터당 한 번 수행되며, 이후 실행에서는 검증만 합니다. 2단계와 3단계는 시간이 오래 걸리므로 백그라운드 실행을 사용하고 종료 시 계속 진행합니다. 3단계는 사용자가 일회성 모델 접근을 거부할 경우 건너뜁니다. 나머지 작업은 이름 없이도 계속 작동합니다.

각 단계의 결과를 확인한 후 다음 단계를 시작하십시오. 각 파일은 "확인 (Check)" 섹션으로 끝납니다.

사용자에게 보고 (Reporting to the user)

실행이 종료되면 사용자에게 다음을 알리십시오:

  • minutes.md의 위치;
  • 확인된 화자 이름과 추측에 불과한 화자 이름;
  • 기본값에서 건너뛰거나 변경된 사항과 그 이유;
  • 이번 실행의 알려진 약점 (불명확한 이름이나 숫자, 겹치는 음성, 음질이 좋지 않은 구간).

안티패턴 (Anti-patterns)

  • 녹음 파일이 있을 때 회의 봇이 작성한 메모를 요약하는 것. 이러한 메모는 회의의 일부 구간을 생략하고 모든 목소리를 하나로 합칩니다.
  • "시간을 절약"하기 위해 전사(transcription)와 화자 분리(speaker separation)를 동시에 실행하는 것. 둘 다 느려지고 GPU 메모리가 고갈될 수 있습니다.
  • 음성 모델에 참석자 이름 목록을 힌트로 제공하는 것. 그러면 모델이 조용한 구간에 그 이름들을 적어 넣고 실제 발화를 놓칠 수 있습니다.
  • 이름이 "어울린다"는 이유로 화자 이름을 지정하는 것. 공유된 회의록에서 잘못된 귀속 한 번은 "화자 3"이라는 레이블 열 개보다 더 큰 피해를 줍니다.
  • 문장을 다시 작성하여 전사본을 수정하는 것. 반복되는 잘못 들은 단어는 corrections.tsv를 통해 수정하고, 표현 자체는 그대로 둡니다.
  • 아무도 언급하지 않은 소유자와 날짜가 있는 액션 아이템을 작성하는 것.
  • 결과를 열어보지 않고 성공을 보고하는 것. 전사본의 첫 부분과 마지막 부분을 읽고 화자 수와 참석자 수를 비교하십시오.

관련 스킬