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

granola-sync

Pull fresh meetings from Granola (summaries, transcripts, participants) into an Obsidian vault over the official API. Incremental and idempotent by note id and updated_at, so re-runs make no duplicates. Triggers: "/granola-sync", "pull granola", "refresh meetings".

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

연동 도구TelegramObsidian
설치 방법 보기

포함된 파일(1)

  • SKILL.md4.9 KB

SKILL.md(원문)

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

OBJECTIVE: Incrementally pull fresh meetings/calls from Granola into the vault (summary + full transcript + participants + a calendar match), on demand. Idempotent: the script downloads only what is new or changed (state.json: note id → updated_at).

CONTEXT:

  • Transport: the official Granola public API https://public-api.granola.ai/v1 (List Notes / Get Note ?include=transcript; page_size <= 30; 5 rps). Key: %WORKDIR%\secrets\granola.env (account owner.calendar@example.com, Workspace2, scopes personal+public, created 2026-07-02).
  • ⛔ The MCP transport is NO LONGER used for syncing (browser OAuth, it dies after ~10 days) — only for interactive questions, and only if re-authorized.
  • Engine (all the logic lives there, this skill is a thin wrapper): $IMPORTS_ROOT/granola/granola_pull.py. The same script does both backfill and increment.
  • Home for notes: $OBSIDIAN_VAULT/04-Projects/granola-meetings/ (auto_generated: true — never hand-edit, they get overwritten). Raw JSON: _imports\granola\raw\. Nightly task log: _imports\granola\pull.log.
  • ⚠️ Granola does NOT start recording by itself: it records only when a human opens the note or clicks the notification. "The app is running" is not "it is recording".

STEPS:

  1. BACKUP FIRST ([[vault-backup-rule]]): python $IMPORTS_ROOT/vault_backup.py BEFORE running anything.
  2. Run it: python $IMPORTS_ROOT/granola/granola_pull.py (options: --dry to count without writing, --limit N to cap).
  3. Read the stdout counters: DONE new=X updated=Y errors=Z state_total=N. errors>0 → look into it; usually network or 429 (the script retries by itself).
  4. If new>0 — report the list of fresh meetings (titles/dates from the state or the new files).
  5. Distill (if new>0): python $IMPORTS_ROOT/granola/call_distill.py — it breaks each new call into Commitments/Facts/Objections/Alpha with quotes → 04-Projects\granola-meetings\_distilled\ + commitments.jsonl. Counters: DONE distilled=M commitments=C errors=Z. (The nightly twin is the "Granola Call Distill" task at 03:50; it also eats the Fireflies raw files.)
  6. The RAG reindex picks it up overnight ([[reindex-routine]]); after the FIRST big backfill, run python $IMPORTS_ROOT/brain_embed_update.py manually. ⚠️ _distilled is not in the curated index yet (04-Projects is the evidence layer) — closed by task RUSL-1 (layer: essence).

CONSTRAINTS:

  • Windows cp1252: do not print non-ASCII to stdout (the script is already ASCII-only).
  • INCREMENTAL ONLY — never delete state.json (it would re-download everything).
  • Provenance: origin: mixed, authored_by: hybrid — NOT #anton-original (someone else's speech).
  • Tier-2: nothing goes outside; API reads and vault writes only.
  • A 401/403 from the API means the key was revoked: create a new one in the Granola desktop app (Settings → Connectors → Personal API keys, scopes Personal+Public) and update granola.env. I can do this myself through computer-use (verified 2026-07-02).

OUTPUT: the new/updated/errors counters + the period; if empty, "no new meetings". Finish with an "In plain words" recap.

RELATION (do not duplicate): the Fireflies rail (auto-recording, real speaker names) = skill [[fireflies-sync]]; access and history = memory [[granola-mcp-integration]]; the architecture decision = the vault note decision-granola-extraction-official-api; the post-call follow-up SOP = memory [[call-followup-group-sop]] (a separate pipeline); the FAAA sync goes the other way (finished follow-ups out of Telegram).

<!--kit-footer-->

Like this skill? It is one of 100 in second-brain-starter-kit: the second brain we built for ourselves and run every day at Palo Alto AI Research Lab. Install the whole set with npx skills add tonydzi/second-brain-starter-kit. Everything is open source and free, so take what you need.

Flagships worth a look on their own: secondop-panel (a second opinion from a panel of external models), claude-memory-tidy (stop your agent's memory from rotting), telegram-mcp-kit (your own Telegram over MCP in about 15 minutes).

Author: Anton Dziatkovskii, Palo Alto AI Research Lab. Telegram @tonydzi - WhatsApp +1 341 222 9178 - X @Tony_Stef_

Engineers: want to test-drive this setup? Message me. I hand out free starter seeds to engineers who test and report back, and custom skill requests are welcome.

리뷰

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

댓글

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

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

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

0 / 1,000자

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

같은 저장소의 스킬

03

무료

Run an autonomous consensus round between agent peers on several machines: they negotiate a decision over a shared channel and execute it without a human relaying messages. Use when multiple machines must agree on a change. Triggers: "/03", "work it out among yourselves", "find consensus". Wakes the human only for irreversible actions or a deadlock.

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

tonydzi/second-brain-starter-kit92026년 10월 20일 업데이트

1

무료

Recover a session after a hard crash (app died, machine rebooted, context lost mid-work): replay the turn-state ledger for the last requests, files and decisions, run a green/red health ping over the system map, file sync and MCP connectors, then rebuild the previous session history for pickup. Triggers: "/1", "resume after crash", "wake".

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

tonydzi/second-brain-starter-kit92026년 10월 20일 업데이트

agenda

무료

Show the operator's day: today's calendar plus what needs them personally (leads due, people awaiting a reply, deadlines), pulled from Calendar and Telegram and ranked. Read-only: sends and commits nothing. Triggers: "/agenda", "what's on today", "my agenda".

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

tonydzi/second-brain-starter-kit92026년 10월 20일 업데이트

ai-slop

무료

Rewrite machine-written text so it reads like a busy human wrote it: cut 50-70%, break the even rhythm, drop AI-tell words and filler, keep facts and protected terms. Use before publishing any post, reply or email drafted by a model. Triggers: /ai-slop, /slop, humanize, anti-slop, make it shorter and alive.

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

tonydzi/second-brain-starter-kit92026년 10월 20일 업데이트

Decision protocol for strategic work: recall the knowledge vault, run a gap analysis, emit a deep-research prompt for external tools, then synthesize the returned reports into a decision memo. Use before any new product, feature, market, pricing, GTM or architecture call, where local recall alone is not enough. Triggers: "/alfa-search-recall-deepresearch", "alpha protocol", "R+DR".

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

tonydzi/second-brain-starter-kit92026년 10월 20일 업데이트

- КРЕДИТ АВТОРУ ИДЕИ: совет из комментария (TG @ClawRus / @ClawInga, комменты под постами Антона в FB, треды и issue на… Триггеры: “/alpha-credit“, “/credit“, “кто нам это посоветовал“, “запиши совет“, “поблагодари советчиков“, “кому мы должны спасибо“, “кредит автору“, “чей это был совет“, “credit the author“

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

tonydzi/second-brain-starter-kit92026년 10월 20일 업데이트

tonydzi의 스킬 모두 보기

이 스킬의 문제 신고