본문으로 건너뛰기
cccskills
무료GitHub에 공개

mail-transcripts

Gmail AI transcript notifications → meeting Notes: URLs + mark read. Args: (none). Invoked standalone or as step 1 of /meeting wrap.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구Gmail
설치 방법 보기

포함된 파일(2)

  • SKILL.md4.0 KB
  • SETUP.md2.8 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Mail Transcripts

Setup: SETUP.md — Gmail label, OAuth scopes, and resolve_path() customization.

Usage

  • /mail-transcripts — Run the Gmail → vault sync once (no arguments).

When to run

CallerWhen
StandaloneWhenever you want to drain the AI-transcript inbox without wrapping meetings.
/meeting wrap <path>Step 1 — Before /cache-notes, so Notes: is filled from Gmail when Gemini emails beat manual paste.
/meeting wrap pending …Step 1 — Before discovering pending meetings, so newly linked or auto-created notes are included in the pending scan.

Gmail filter

Fixed query (do not change without updating this skill and the script):

label:🤖-ai-transcripts in:inbox

The label name includes the emoji 🤖 (robot). Ensure that label exists in Gmail and that transcript notifications are delivered into Inbox with that label applied.

Workflow

Step 1: Preconditions

  1. Confirm gws is installed and authenticated (gws auth status).
  2. Confirm Gmail OAuth includes read + modify message scopes (marking read uses users.messages.modify).

Step 2: Run the vault script

From the vault root, run:

python3 .scripts/gmail_ai_transcripts_to_meetings.py

Implementation lives in .scripts/gmail_ai_transcripts_to_meetings.py. The script:

  1. Lists messages matching the query (paginated up to maxResults in script — currently 100).
  2. For each message, decodes MIME parts, extracts https://docs.google.com/document/d/... URLs.
  3. Parses the subject line Notes: "Title" Mon DD, YYYY (supports curly " " Unicode quotes). A bare Meeting Summary for <recurring meeting> (no Notes: pattern) maps to that meeting using the email Date header.
  4. Resolves Meetings/**/*.md targets using title + date heuristics (daily standups → Meetings/Engineering/Scrum/YYYY-MM-DD.md, tech-leads → Meetings/Engineering/TechLeads/, interviews → Meetings/Interviews/, etc. — see script resolve_path()). Edit that function to match your own folder conventions.
  5. Updates existing notes: appends the Doc URL under Notes: if that document ID is not already present.
  6. Creates a minimal meeting stub if no file exists (Notes:, created:, # Title - YYYY-MM-DD) — agents may refine folder/title afterward.
  7. Marks each processed message read by removing the UNREAD label via gws gmail users messages modify.

Step 3: Report

Print a short summary: created paths, updated paths, noop (URL already in note), skip_no_doc (no Doc URL in body — still marked read if the script marks those), and any errors.

Important Notes

  • No Google Doc in email (e.g. narrative-only "Meeting Summary"): the script cannot set Notes:; it may still mark the thread read — adjust script behavior there if you want to leave unread for triage.
  • Wrong meeting matched: resolution is heuristic; fix resolve_path() in the script or move/rename the note in Obsidian.
  • Privacy: transcript emails stay in Gmail; the skill only links Docs into local vault files.
  • Do not duplicate mail-transcripts logic in other skills — call the script or point here.

Offer to commit

When /mail-transcripts is run standalone, offer /commit. When run inside /meeting wrap or /meeting wrap pending, the parent sequence commits once at the end (include any new/updated meeting files in that commit scope).

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Fetch & embed AI transcripts as Obsidian callouts. Args: <path>, all, refresh <path>. Prompts for URLs if empty.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

benoror/obsidianos_work1652026년 6월 11일 업데이트

commit

무료

Stage and commit with flexible intent parsing. Accepts file/folder scope, free-text description, amend, or any combination.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

benoror/obsidianos_work1652026년 6월 11일 업데이트

defuddle

무료

Extract clean markdown content from web pages using Defuddle CLI, removing clutter and navigation to save tokens. Use instead of WebFetch when the user provides a URL to read or analyze, for online documentation, articles, blog posts, or any standard web page.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

benoror/obsidianos_work1652026년 6월 11일 업데이트

Resolve and fill Participants frontmatter + link unlinked names in body. Args: <path>, all.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

benoror/obsidianos_work1652026년 6월 11일 업데이트

Extract action items as plain markdown bullets (with confirmation). Args: <path>. No args = run [/note-status pending --step=todos](../note-status/SKILL.md#pending-mode).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

benoror/obsidianos_work1652026년 6월 11일 업데이트

Create and edit JSON Canvas files (.canvas) with nodes, edges, groups, and connections. Use when working with .canvas files, creating visual canvases, mind maps, flowcharts, or when the user mentions Canvas files in Obsidian.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

benoror/obsidianos_work1652026년 6월 11일 업데이트

benoror의 스킬 모두 보기

이 스킬의 문제 신고