Session Compound
把会话记录转成可追溯的洞察,而不是机械地寻找更多规则。默认按用户目标生成一种报告;明确要求两种时分别生成:
- 单会话复盘:理解当前任务的过程、执行健康度、独立评估和可选沉淀。
- 最近 30 天洞察:从近期多次任务中识别稳定模式、反复摩擦和可验证的新做法。
两种模式分别分析当前运行时,不合并 Claude Code 与 Codex 的记录。报告写入本次调用专属的私有临时目录,不进入项目仓库。
入口门禁
用户明确说“复盘当前会话”或“最近 30 天洞察”时直接采用对应模式;复用当前对话中仍有效的选择。只有模式不明确时才用 AskUserQuestion 或 request_user_input 询问,不重复确认清楚的请求。
分析前确认能否创建独立内置代理,以及该代理是否支持对应评估协议的上下文与工具限制。不可用的阶段明确记录缺口,按所选执行路径降级为事实报告,不伪造独立评估或跨会话趋势,也不擅自改用外部代理。
先确认当前运行时:CLAUDE_CODE_SESSION_ID 表示 Claude Code,CODEX_THREAD_ID 表示 Codex。用户指定会话文件时,以指定文件和对应运行时为准。
选择模式后立即创建本次调用的私有工作目录,后续证据、结构化结果和报告全部写在其中:
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和证据引用用于追溯,不直接等于结论。- 缺失证据写成未知或合法空态,不用数字零冒充已确认事实。
共同写作与证据展示
两种报告都面向人类阅读,生成的正文跟随任务语言,使用自然、具体的表达;派遣时传入该语言。避免直接翻译英文分析术语、连续堆叠抽象名词,或用内部流程术语代替实际发生的行为;标题直接说明具体做法、问题或改进方向。技术标识只在精确追溯所必需时展示。
报告默认把证据引用转换为“第几轮、用户反馈、评审记录、工具失败记录”等可读位置。完整原始编号必须保留,但折叠到“查看依据”内,不占据正文。
共同结果与长期候选核对
两种模式都把建议分成三层:
- 洞察:不要求行动的事实解释或单次观察。
- 值得尝试:可低成本验证的新用法、工作方式或提示词,不修改长期资产。
- 长期沉淀候选:只有用户明确要求长期保持某种行为,或同类纠正、约束、流程出现在至少两个独立会话时才允许提出。单会话通常只能依赖前一种门禁。
主 Agent 在写出任何长期候选前必须完成当前资产核对:
- 从证据中筛出满足长期门禁的初步候选,不因为工具非零退出或一般性建议制造候选。
- 只检查与初步候选相关的当前
AGENTS.md、项目规则和现有规则、技能、测试、类型系统、静态检查或审查机制,以及适用的钩子,不做无界资产盘点。 - 为每项记录
已吸收 / 部分吸收 / 未吸收 / 未知、对应文件或机制及证据引用。多会话模式把这份核对结果连同汇总输入交给最终洞察 Agent;最终洞察 Agent 没有工具,不能自行补做核对。 - 已完整吸收的反馈不生成候选;部分吸收时只描述现有资产的具体缺口;未吸收时才选择合适载体;未知时写入证据限制,不用强制空数组掩盖未完成的核对。
一次性问题、没有行动权的外部问题和 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。 - 候选应用属于新的实现动作,继续遵循当前仓库的需求、分支、验证和评审规则。