全部技能 / 基础工具与工作流 / gemini-history-analyzer
基础工具与工作流 · daymade/claude-code-skills

gemini-history-analyzer

Analyze Google Takeout exports of Gemini conversation history. Use when the user mentions Gemini takeout, Gemini export, Gemini history, Gemini conversation analysis, Google Takeout zip analysis, or drags a takeout zip into the project. Also use when the user asks to "analyze my Gemini data", "what did I talk to Gemini about", or wants to extract insights from Gemini chat logs.

风险提醒:蓝色 · 知晓即可AI 侦查报告
作者 daymadeGitHub daymade/claude-code-skills ↗Stars 1385许可 MIT(仓库根 LICENSE 文件;GitHub API spdx MIT;Copyright (c) 2025 daymade)commit d5c4678cb5
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 skill 仅作拆解与展示,安装使用风险自负,版权归原作者。

1实现原理 · 为什么它能做到

整条流水线由一份 SKILL.md 的 8 步指令 + 模型阅读构成,目录内没有任何脚本:抽取靠 shell,理解靠模型,汇总靠固定报告模板。

gemini-history-analyzer/SKILL.md
Extract, categorize, and analyze Google Takeout ZIP exports of Gemini Apps activity. The skill handles:
注:glob 核实该 skill 目录下只有 SKILL.md 一个文件(无 scripts/、无 references/、无 evals/)。后面的关键词搜索、分类、报告生成全部是「让 agent 用通用工具去做」,skill 只提供方法与纪律。

先判类型再选策略:抽样 3-5 个文件,用「说话人标签 / 内容形态 / 长度分布 / 文件命名」四个信号区分「会议转写」还是「提示-应答」,两类走不同的分析路线。

gemini-history-analyzer/SKILL.md
Before full analysis, sample 3-5 files to determine the **conversation type**:
注:这一节还给了两条分叉后的差异:会议转写走话题归类/说话人分析/决策追踪/用户画像;提示-应答走使用模式/能力评估/兴趣域映射。这是本 skill 相对「读完就总结」类做法的最大结构性差异——先做类型判定,避免用错分析框架。

抽取环节有明确的技术选型理由:macOS 自带 unzip 会静默损坏中文文件名,所以必须用 unar。

gemini-history-analyzer/SKILL.md
Google Takeout files contain Chinese/Unicode filenames. **macOS `unzip` corrupts these — always use `unar`.**
注:对应的 Critical Pitfalls 第 1 条把后果讲具体:『files become garbled paths, many fail to extract』。这是真实的工具链陷阱(zip 的非 UTF-8 标志位处理差异),不是泛泛建议。

先清点后阅读:用 find + sed/uniq 统计扩展名分布、列 txt 清单、按类型算体积,建完清单再决定读什么。

gemini-history-analyzer/SKILL.md
find <extract-dir> -type f | sed 's/.*\.//' | sort | uniq -c | sort -rn
注:Step 2 的三条命令分别对应「按扩展名计数 / 列全部 txt / 按大小排序取前 30」,然后才进入 Step 3 抽样。这个顺序保证不会在没摸清规模时就一头读进上下文。

关键词检索被明确定位为「第一步而不是答案」:必须回读命中处前后 10 行上下文再判定,并把命中分三类。

gemini-history-analyzer/SKILL.md
**Read surrounding context** (10 lines before/after each match) — keyword matching alone produces massive false positives. "Investment" can mean business strategy, "option" can mean UI choice, "fund" can mean insurance feature
注:命中三分类为 Definite hit / False positive / Ambiguous,然后只对 definite + ambiguous 全文重读,并有一句硬话:『Never stop at grep output — context verification is mandatory.』同节还把实测结论写进 Pitfalls 第 2 条:金融词表在真实分析中 80%+ 文件命中但全是假阳性。

PII 的处理方式是「标记但不誊抄」:发现简历/背调/联系人这类内容要写进报告的风险项,但绝不把内容抄进报告或 memory。

gemini-history-analyzer/SKILL.md
- File: <name>, Type: <resume/background-check/etc.>, Risk: <high/medium/low>
注:报告第 7 节的结构就是「只给文件、类型、风险等级」,并配一句『(Flag if detected — do NOT include the actual PII in the report)』。Pitfalls 第 4 条再现一次:『Resumes, background check forms, contact lists — these routinely appear in conversation history. Flag them, do NOT include their contents in reports.』

大文件分层读、超大集合并行读,都是为了守住上下文预算:单文件读首尾各 10%,100+ 文件派并行 sub-agent 每批 10-15 个。

gemini-history-analyzer/SKILL.md
For 100+ files, spawn parallel sub-agents to read and summarize in batches (10-15 files each). Merge results. One agent reading all files sequentially will exhaust context.
注:Pitfalls 第 5 条给出体感标尺:『A 63KB transcript is a 2-hour meeting. Don't read the whole thing unless it's flagged as highly relevant.』两条合起来构成一个「规模 → 读法」的决策规则。

输出结构固定为 7 节报告(概览/话题分布/关键发现/领域专项/值得注意的文档/有价值原话/PII 风险),可选再落 memory 文件。

gemini-history-analyzer/SKILL.md
# Gemini History Analysis Report
注:模板里连「假阳性多少条并举例说明是什么原因造成的」都写进了第 4 节(False positives: N (with examples of what caused them))——把 Step 5 的核查纪律固化进交付物结构。

可选产物 memory 文件有明确协议:遵循项目既有 memory 格式、带 originSessionId 溯源、更新 MEMORY.md 索引、不重复已有内容。

gemini-history-analyzer/SKILL.md
- Include `originSessionId` or source tag pointing back to the analysis
注:Step 7 还限定触发条件(用户明确要求 / 分析出可复用洞见 / 项目已有 memory 系统),并规定必须先看别的 memory 文件的 frontmatter 约定。这是把「写长期记忆」这件事的副作用显式管起来。

收尾清理需用户确认:分析完成后才 rm -rf 解包目录。

gemini-history-analyzer/SKILL.md
# Remove extracted files after analysis complete (user confirms)
注:注释里写明 user confirms,命令本身是 rm -rf <extract-dir>(Step 8)。这条既是隐私卫生(不留解包后的私人历史副本),也解释了为什么它是破坏性命令却仍被保留。

2核心能力

01解包 Google Takeout 的 Gemini Apps 导出(含中文/Unicode 文件名)
02先清点再细读:文件类型分布、txt 清单、按体积排序的建表
03对话类型判定(会议转写 vs 提示-应答)并据此切换分析框架
04话题分类与占比统计(含领域专项分析)
05带上下文核验的关键词检索(含假阳性分类与原因说明)
06PII/敏感内容识别与「只标记不誊抄」的报告化
07固定结构分析报告(7 节)+ 逐字引用金句
08可选的用户画像/反馈/项目上下文 memory 文件生成(含索引更新与溯源标记)

3外部依赖

类型依赖
cliunar(解包 Takeout ZIP,处理中文文件名)
packageHomebrew(仅在 unar 缺失时安装;命令带 2>/dev/null || true 容错)
clifind / sed / sort / uniq / du(清单与统计)
cligrep(领域关键词检索,随后必须人工回读上下文)
clirm(分析完成后清理解包目录,需用户确认)
api宿主 sub-agent 能力(100+ 文件时并行批处理)

4风险提醒 风险提醒:蓝色 · 知晓即可

风险提醒:蓝色 · 知晓即可
  • 被处理的是极敏感的个人历史数据。 — Takeout 包含个人助手对话、他人发来的会议记录、上传的文档与附件;skill 要求把这些内容读进模型上下文(并可能写入 memory)。是否允许某次会话把这些数据送进模型,取决于用户与宿主的边界,skill 自身不做数据分级。
  • 输入内容是可注入的不受信文本,且可沉淀为长期记忆。 — 转写中的第三方文本可直接对 agent 下指令;由于 skill 鼓励把洞见写进 memory/*.md,一次成功的注入可能跨会话生效。文档对这一点没有专门条款。
  • rm -rf 与 brew install 是真实 shell 动作。 — 清理步骤删除整棵解包目录(文档要求用户确认但无技术拦截;若 <extract-dir> 变量解析异常,影响面取决于传入路径);brew install unar 在缺失时会联网装包。
  • 无脚本意味着没有可验证性:正确性完全取决于模型这次表现。 — 分类、假阳性判定、画像提取都无法自证;同一份 Takeout 两次运行可能给出不同的话题占比与画像结论。与分析类 skill 共有的结构性风险。
  • 「用户画像」产物的敏感性高于普通分析报告。 — Step 7 建议生成 user-profile.md 并存入项目 memory——这是关于用户本人的推断性描述,一旦有误会被当作事实长期复用。
风险提醒:蓝色,知晓即可。按统一分档:该 skill 零脚本(目录内仅 SKILL.md),行为面全部是本地文件操作——解包、find/grep/du 统计、读文本、可选写 memory、必要时 rm -rf;无凭证读取(不碰 cookie/密钥/环境变量,也不需要任何账号,输入就是用户自己导出的 ZIP 文件)、无外部 API、无埋点、无第三方镜像。之所以不是绿色:全流程要跑真实 shell 命令(含 rm -rf 与条件性的 brew install unar 第三方包安装),且处理对象是高度隐私的个人历史数据。与同仓 local-conversation-history(蓝)分级口径一致——那一个同样是「读取本地隐私历史、无脚本无网络」。

5第二遍独立确认

  • [ok] 是否真的没有脚本(避免凭 description 臆测) — glob 结果:仅 SKILL.md。所有「处理」都是写在文档里让 agent 用通用 shell/工具执行的命令,非自带可执行文件。scripts_executed = []。
  • [discrepancy] spawn 命中是否等于进程创建 — 〔第二遍标注:扫描器误报,已澄清〕SKILL.md 原文为『spawn parallel sub-agents to read and summarize in batches』,指宿主的 sub-agent 能力;全文件无 child_process / subprocess / exec / eval。
  • [ok] brew install 是否被夸大成依赖 — 命令为 brew install unar 2>/dev/null || true,位于『Install unar if missing』注释下,失败被吞掉;SKILL.md 未把它列为前置条件(前置条件段落只说要 macOS 与 Takeout zip)。已在 external_deps 与 network_calls 中标为条件性、尽力而为。
  • [discrepancy] rm -rf 的危险性是否被如实标注 — 〔第二遍标注:第一遍低估,已加强〕Step 8 的清理命令确为 rm -rf <extract-dir>,作用是删除解包出来的整棵目录树。命令上方注释写了『(user confirms)』,但这是文档级约束、无技术强制;已在 file_writes 与 verdict.risks 中单列,并指出它同时是隐私卫生措施(不留私人历史副本)——两个动机都要讲,避免读者只看到「破坏性」。
  • [ok] PII 保护是否只是声明 — 报告第 7 节模板字段(File / Type / Risk)本身就是「不含内容」的结构;Pitfalls 4 条再次强调 do NOT include their contents;memory 段落要求 PII 摘要而非复制。三处一致,属可执行的结构性约束。
  • [ok] 关键词检索纪律是否与实测证据一致 — Step 5 的四步(设计词表 → grep 全部文件 → 回读前后 10 行 → 三分类后全文重读)与 Pitfalls 2 的实测结论(80%+ 命中全为假阳性)互相印证,报告第 4 节要求列出假阳性条数与原因——方法、证据、交付物三者闭环。
  • [ok] memory 写入是否有副作用管理 — Step 7 限定三个触发条件、要求遵循项目既有 frontmatter 约定、要带 originSessionId 溯源、要更新 MEMORY.md 索引、且『Never duplicate what's already in memory — update existing files instead』。副作用有明确协议。
  • [ok] 元数据(license/stars/last_push) — 取自同 repo 同 commit 的池内既有值(MIT、1385★、2026-09-09T12:33:29Z);本次未联网复核 gh。

6结论

  • 先判类型再分析,避免框架错配。
  • 反误报纪律是硬要求,且落实进交付物。
  • 隐私设计前置:PII 只标文件+类型+风险,不誊抄;memory 也只摘要。
  • 上下文经济被写进方法(首尾 10% 策略 + 并行 sub-agent 分批),能真的吃下大导出。
  • 坑是实测来的,带现象与数字,可直接复用。
  • 适合:适合刚做完 Google Takeout 导出、想知道「我这一年到底跟 Gemini 聊了些什么」的个人用户;也适合需要从一大堆对话记录里定位某个领域(金融/法务/人事)内容的研究型用法——关键词检索 + 上下文核验 + 假阳性说明这套流程正好解决「grep 出一堆无关命中」的问题。对需要输出一份可交付、结构固定的分析报告(7 节)的场景尤其省事。
    不适合:不适合想自动整理/重排对话记录的场景(它只分析不重组);不适合在无法接受把私人历史送进模型上下文的环境(无本地匿名化步骤);不适合需要确定性统计口径的场景(分类与占比由模型判断,不可复现);不适合非 Google Takeout 格式的聊天导出;也不适合期待一键出结论、不需要人工判断的用户——它要求 agent 回读上下文、人工归类假阳性,本身就偏重。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-09-15
    方式 A · 人下载镜像包下载 gemini-history-analyzer.tar.gz
    sha256: 16d58ad7768cadfe…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit d5c4678cb5;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库daymade / daymade/claude-code-skills
    Stars1385
    最近推送2026-09-09
    本 skill commitd5c4678cb5
    许可MIT(仓库根 LICENSE 文件;GitHub API spdx MIT;Copyright (c) 2025 daymade)
    本站信息
    收录日期2026-09-06
    分类基础工具与工作流
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    同分类邻近