# Session Compound

> 当用户要求复盘当前会话、分析近期多次任务的使用模式或提取可复用经验时使用，生成离线报告。

- Skill: `ben2pc/session-compound` (Agent Skill, multi-file: 14 files)
- Install (CLI): `npx skillmds@latest add ben2pc/session-compound`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ben2pc/session-compound/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: ben2pc (https://skillmd.com/u/ben2pc)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ben2pc/session-compound

---


# Session Compound

把会话记录转成可追溯的洞察，而不是机械地寻找更多规则。默认按用户目标生成一种报告；明确要求两种时分别生成：

- **单会话复盘**：理解当前任务的过程、执行健康度、独立评估和可选沉淀。
- **最近 30 天洞察**：从近期多次任务中识别稳定模式、反复摩擦和可验证的新做法。

两种模式分别分析当前运行时，不合并 Claude Code 与 Codex 的记录。报告写入本次调用专属的私有临时目录，不进入项目仓库。

## 入口门禁

用户明确说“复盘当前会话”或“最近 30 天洞察”时直接采用对应模式；复用当前对话中仍有效的选择。只有模式不明确时才用 `AskUserQuestion` 或 `request_user_input` 询问，不重复确认清楚的请求。

分析前确认能否创建独立内置代理，以及该代理是否支持对应评估协议的上下文与工具限制。不可用的阶段明确记录缺口，按所选执行路径降级为事实报告，不伪造独立评估或跨会话趋势，也不擅自改用外部代理。

先确认当前运行时：`CLAUDE_CODE_SESSION_ID` 表示 Claude Code，`CODEX_THREAD_ID` 表示 Codex。用户指定会话文件时，以指定文件和对应运行时为准。

选择模式后立即创建本次调用的私有工作目录，后续证据、结构化结果和报告全部写在其中：

```sh
umask 077
WORK_DIR="$(node <skill-dir>/scripts/insights-pipeline.mjs workspace)"
```

不要使用可预测的 `/tmp/session-compound-*.json` 文件名，也不要复用其他调用的工作目录。

## 共同证据边界

- 分析器只提取事实。非零退出保留在 `health.tool_failures`，`classification` 默认为 `unknown`；没有语义证据时不写成浪费。
- `health.skills` 同时保留显式与推断使用：`explicit_count`、`inferred_count`、`evidence_types`。同一用户轮次对同一 `SKILL.md` 的重复读取只算一个使用单元。
- `health.skill_catalog`、`health.workflow_rules`、`health.workflow_signals` 是当前能力、当前规则与中性事实。用它们回看历史时必须标记“按当前状态回看”，不能伪装成会话发生时的快照。
- `raw_for_compound.skill_usage_events`、`skill_timeline`、`review_syntheses` 和证据引用用于追溯，不直接等于结论。
- 缺失证据写成未知或合法空态，不用数字零冒充已确认事实。

## 共同写作与证据展示

两种报告都面向人类阅读，生成的正文跟随任务语言，使用自然、具体的表达；派遣时传入该语言。避免直接翻译英文分析术语、连续堆叠抽象名词，或用内部流程术语代替实际发生的行为；标题直接说明具体做法、问题或改进方向。技术标识只在精确追溯所必需时展示。

报告默认把证据引用转换为“第几轮、用户反馈、评审记录、工具失败记录”等可读位置。完整原始编号必须保留，但折叠到“查看依据”内，不占据正文。

## 共同结果与长期候选核对

两种模式都把建议分成三层：

1. **洞察**：不要求行动的事实解释或单次观察。
2. **值得尝试**：可低成本验证的新用法、工作方式或提示词，不修改长期资产。
3. **长期沉淀候选**：只有用户明确要求长期保持某种行为，或同类纠正、约束、流程出现在至少两个独立会话时才允许提出。单会话通常只能依赖前一种门禁。

主 Agent 在写出任何长期候选前必须完成**当前资产核对**：

1. 从证据中筛出满足长期门禁的初步候选，不因为工具非零退出或一般性建议制造候选。
2. 只检查与初步候选相关的当前 `AGENTS.md`、项目规则和现有规则、技能、测试、类型系统、静态检查或审查机制，以及适用的钩子，不做无界资产盘点。
3. 为每项记录 `已吸收 / 部分吸收 / 未吸收 / 未知`、对应文件或机制及证据引用。多会话模式把这份核对结果连同汇总输入交给最终洞察 Agent；最终洞察 Agent 没有工具，不能自行补做核对。
4. 已完整吸收的反馈不生成候选；部分吸收时只描述现有资产的具体缺口；未吸收时才选择合适载体；未知时写入证据限制，不用强制空数组掩盖未完成的核对。

一次性问题、没有行动权的外部问题和 `session-compound` 自身缺陷不生成长期候选。外部或缓存技能不可编辑，更新时会被覆盖，不产出编辑候选；本仓库可编辑的 in-repo `SKILL.md` 确有正文缺口时可以提出就地优化。能用符合技术栈的类型、静态检查、测试或持续集成更早拦截的问题优先选择工程机制，不增加长期上下文租金。已安装或频繁使用的能力只能提出新的具体用法，不能包装成尚未尝试的新功能。只有在已经确认存在“新增或安装技能”的真实候选后，才按需搜索生态；搜索只验证、复用或否决候选，不能反向制造建议。

共同条目遵循以下语义契约：

- `Observation`：`{ title, text, evidence_refs[] }`
- `Experiment`：`{ title, text, trial, success_signal, evidence_refs[] }`
- `DurableCandidate`：`{ name, type, text, why_durable, default_selected: false, evidence_refs[] }`
- 候选 `type` 只能是 `agent-context | existing-skill | new-skill | reviewer | mechanism`。
- 每项证据引用至少一条；不确定就不输出。报告渲染器使用 `scripts/contracts.mjs` 确定性校验完整字段，校验失败时修正结构化数据后重跑，不生成不完整报告。

模型不编辑模板、HTML、JavaScript 或样式；两种模式都通过固定渲染器生成报告。

## 按模式执行

- 单会话复盘：读取 `references/single-session.md`。
- 最近 30 天洞察：读取 `references/recent-insights.md`。

仅加载所选路径；用户明确要求两份时分别执行，以独立文件名保存并分别标注数据覆盖，不混成一份结论。

## 交付与人工确认

- 打开所选报告，并返回私有工作目录中的绝对路径；没有浏览器工具时使用系统默认打开命令。
- 报告生成即为合法完成；零建议、零候选不是错误。
- 复盘请求本身不授权安装技能或修改 `AGENTS.md`、项目规则、技能等长期资产。
- 洞察与值得尝试默认只留在报告里。只有用户明确选择长期候选并指定目标资产后，才交给相应能力；已有这项明确授权时直接转交，不重复确认同一候选：工程文档与 Agent 上下文交给 `documentation-management`，技能交给 `skill-creator`，新审查者交给 `reviewer-creator`。
- 候选应用属于新的实现动作，继续遵循当前仓库的需求、分支、验证和评审规则。

