Retro 是一个从 AI 编程会话日志中提炼改进建议的技能,重点不在修改代码,而在于改善智能体所处的环境,让后续会话表现更好。它全程只读:不修改会话日志,也不直接改动任何配置,最终只输出一份编号的改进提案列表,由用户挑选要采纳的项。
用途
- 回顾当前会话,或最近若干条会话日志(默认 50 条父会话),总结反复出现的摩擦点与可优化环节。
- 将噪音很大的对话记录转化为结构化、可执行的改进项,并为每条附上一行原文证据(已脱敏)。
- 区分“缺少指引”“已有指引被忽略”“问题已修复”“超出本技能范围”等情况,避免对旧版本问题重复提议。
主要能力
- 会话选择:识别普通与压缩日志,把子代理日志归到父会话下,区分人工会话与自动运行,并报告各工具的会话数、子日志数、排除项和无法读取的文件。
- 信号提取:使用 jq(压缩的 Codex 日志先经 zstd 解压)从日志中抽取人工消息、用户在回合执行期间排队的输入、Bash 命令、工具错误等,并用 grep 快速定位纠正性表述。
- 并行分析:把文件列表轮转拆成约 7 批,交给子代理并行提取,再由主流程跨批去重并综合。
- 多维透镜:证据侧关注用户纠正、失败或重试的命令、跨会话重复的配置步骤、可沉淀为内容片段的时刻;环境侧关注文件导航难度、可自动化的检查、编码规范缺口、控制文件冗余、工具调用开销、无效指令、信息可及性。
- 提案输出:每条含提案内容、证据原文及来源(文件路径与行号或 SQLite 步骤索引)、加载版本或“版本未知”、处置结论、当前目标位置的对应段落,以及一句话理由。
使用方式
- 在支持技能机制的编程智能体中使用,触发后可指定要分析的会话数量或直接分析当前会话。
- 日志位置依工具而不同:Claude Code 位于 ~/.claude/projects/<slug>/.jsonl;Codex 位于 ~/.codex/sessions/<year>/<month>/<day>/rollout-.jsonl 及 .zst;Grok 位于 ~/.grok/sessions/<url-encoded cwd>/<id>/chat_history.jsonl;Antigravity CLI 的提示词在 ~/.gemini/antigravity-cli/history.jsonl,其余对话在其 SQLite 数据库。
- 压缩日志用 zstd -dc -- FILE 流式读取,若缺少 Zstandard 读取器需报告被排除的归档及覆盖不完整。
- 证据中的邮箱、API 密钥、令牌、密码等一律替换为 [REDACTED]。
- 最终以编号列表呈现,若环境支持选择界面则按目标位置分多轮多选,否则由用户在对话中按编号挑选。
适用场景
- 发现用户在多次会话中反复纠正同类问题,需要把口头纠正转为审查规则或自动检查。
- 某类错误本可由 linter、类型检查、测试或文件系统检查拦截,但仓库缺少相应护栏。
- 控制文件(CLAUDE.md/AGENTS.md)臃肿,需要精简并把规则移到编码规范或自动检查。
- 工具调用消耗过多上下文,需要定位并优化。
限制
- 只做分析与提案,不自动应用任何改动。
- 分析质量依赖日志可读性与格式兼容性;缺少解压工具时覆盖范围会不完整。
- 仅列出资料中提及的 Claude Code、Codex、Grok、Antigravity CLI 日志格式,其他工具的支持情况暂未提供。
- 具体的运行命令、安装步骤与配置细节暂未提供。