关于 session-to-skill
session-to-skill 引导 Agent 从 Entire 会话历史中提炼聚焦、可复用的技能草稿。它先明确目标并核实历史依据,再提供草稿,未经批准不会写入文件。
主要功能
- 01明确要复用的行为
- 02搜索 Entire 历史记录
- 03提取持久的工作流经验
- 04起草精简的 SKILL.md
- 05写入文件前征求批准
适用场景
- 01将重复任务流程整理为技能
- 02把指定的 Entire 会话转成可复用草稿
- 03确认来源后汇总相关会话
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ entireio/ skills --skill session-to-skill安装后在 Claude Code 中输入/session-to-skill确认已加载。
详细介绍
将会话转化为技能
使用此技能,帮助用户将 Entire 会话历史转化为聚焦的技能草稿。
目标不是机械地转换整个转录内容,而是将会话和检查点视为素材,然后提取用户希望重复使用的工作流。
响应格式
首次响应此技能调用时,以以下一行开头:
Entire Session To Skill:
然后空一行,再给出内容。
- 此标题仅用于本次调用的首次响应。同一次调用中的后续轮次不要重新输出此标题。
- 错误或提前退出时(例如未安装 Entire、当前目录不是 git 仓库、未找到相关会话,或用户尚未说明希望复用什么行为),不要添加此标题。
规则
- 首先确定技能应涵盖的可复用行为。如果用户尚未说明技能应帮助完成什么,请先提出问题,再读取转录内容。
- 使用 Entire 历史记录作为依据。优先使用
entire search、entire session current、会话元数据文件和entire checkpoint explain,而不是要求用户粘贴旧转录内容。 - 技能草稿应聚焦于未来的行为,而不是回顾会话。保留持久适用的工作流、仓库约定、用户的纠正意见、命令、验证步骤以及应避免的事项。
- 如果可能有多个相关会话,请总结重复出现的工作流模式,推荐一组来源,并在展开转录内容前征求用户确认。
- 除非用户明确批准目标路径,否则不要写入、安装或覆盖技能文件。默认情况下,直接在响应中提供
SKILL.md草稿。 - 生成的技能中不要包含机密、私密凭据、原始日志或不必要的转录细节。
工作流
1. 明确技能目标
如果用户给出了明确的目标,请继续。示例:
- “将我的博客发布工作流转化为技能”
- “根据会话 019 制作一个技能……”
- “我总是在起草发布说明;把它变成可复用的流程”
如果目标含糊,请询问:
What should this skill help you do repeatedly?
如果用户指定了技能名称,请使用该名称。否则,根据目标推断一个简短的连字符式名称,并在写入文件前与用户确认。
2. 推断重复模式
如果用户提供了检查点 ID,请跳到检查点扩展部分。
如果用户提供了会话 ID,请从以下位置读取匹配的会话元数据:
.git/entire-sessions/<session-id>.json
如果用户描述了重复的工作流,但没有提供会话或检查点,请使用目标相关词语搜索 Entire 历史记录:
entire search "<workflow terms>" --json
如果用户提供了仓库、分支、作者或日期筛选条件,请使用这些条件:
entire search "<workflow terms>" --json --repo owner/name --branch branch-name --author "Name" --date month
仔细解读搜索结果:
- 如果
entire search返回有效 JSON,且"total": 0或results数组为空,请不要将其称为身份验证失败。说明没有找到索引匹配项,然后回退到本地会话元数据。 - 只有当命令输出明确说明需要身份验证、登录或凭据时,才表示需要身份验证。
- 如果搜索因其他原因失败,请简要报告错误,并在有本地会话元数据时回退到该元数据。
回退到本地数据时,请检查 .git/entire-sessions/*.json,并根据 last_prompt、description、files_touched、started_at、last_interaction_time、agent_type 以及用户的工作流相关词语进行匹配。
查看排名靠前的结果,并先推断重复的工作流模式,再展示原始会话选项。先说明模式,而不是 ID。
请展示:
- 你认为用户想要记录的重复工作流
- 你建议使用的最有力来源集合
- 每个来源的作用,用通俗语言说明,例如“核心工作流”“图像处理”“验证”或“文案编辑模式”
- 你计划忽略的会话,以及忽略原因,例如仅包含元数据、重复或一次性任务
会话 ID 和检查点 ID 应作为辅助细节,而不是主要决策依据。请用户确认模式和来源集合后,再展开详细对话记录。
示例:
I found a repeated workflow: publishing blog posts in entire.io from drafts, using repo-specific front matter, slugged asset folders, user-provided images, and website checks.
I recommend using the strongest matching sessions as source material:
- core workflow: <session-id>
- image handling: <session-id>
- validation mechanics: <session-id>
I will ignore metadata-only or one-off edit sessions unless you want them included. Should I continue with this source set?
3. 阅读源材料
对于检查点,运行:
entire checkpoint explain --checkpoint <checkpoint-id> --full --no-pager
如果完整输出失败,而用户想了解更多细节,请回退到:
entire checkpoint explain --checkpoint <checkpoint-id> --raw-transcript --no-pager
对于活动或当前会话,优先使用:
entire session current
如果已安装的 Entire CLI 尚不支持单数形式的 session 命令组,请直接使用会话元数据回退方案:检查 .git/entire-sessions/*.json,根据 last_interaction_time、started_at、agent_type 或用户指定的 Agent 选择相关会话,然后提取 transcript_path。
读取原始对话记录时,请提取相关对话和工具调用行,但不要将其原样全部输出给用户:
grep -E '"type":"(message|function_call|user|assistant)"' <transcript_path> | cut -c1-2000
对于较大的对话记录,请先检查最初的提示词和最终状态:
grep -E '"type":"(message|function_call|user|assistant)"' <transcript_path> | head -40 | cut -c1-2000
grep -E '"type":"(message|function_call|user|assistant)"' <transcript_path> | tail -160 | cut -c1-2000
如果会话元数据列出了已修改的文件,只检查理解持久约定所需的文件。除非技能目标要求,否则避免广泛探索仓库。
4. 提取持久经验
起草前,请私下确定:
- 未来技能应实现的重复目标
- 应触发该技能的条件
- 未来的 Agent 应询问哪些必要输入
- 特定于仓库的路径、文件格式、前置元数据、命名规则或资源放置位置
- 能够证明工作流有效的命令和检查
- 会话中的用户更正和偏好
- 应避免的失败方法或行为
- 属于一次性内容、不应纳入技能的部分
如果选择了多个会话,只整合重复出现或明显可复用的经验。不要对相互矛盾的指示取平均值;如果会话间存在分歧,请询问用户如何选择。
5. 起草技能
创建一份完整的 SKILL.md 草稿,并包含必需的前置元数据:
---
name: <hyphen-case-skill-name>
description: Use when <specific trigger and task>.
---
正文应包括:
- 简短的用途说明
- 清晰的规则或约束
- 分步工作流
- 仅在属于可复用行为时提供的准确命令
- 预期输出和验证步骤
- 失败处理方式或需要询问用户的情况
保持技能简洁。除非对未来使用至关重要,否则不要加入会话回顾、完整对话摘录、检查点 ID 或实现说明。
6. 交付并提供安装选项
除非用户已明确给出写入路径,否则先展示 SKILL.md 草稿。
展示草稿后,询问用户是否要全局安装。建议使用跨 Agent 路径:
~/.agents/skills/<skill-name>/SKILL.md
使用以下安装提示格式:
Do you want me to install this skill globally?
Recommended:
- Cross-agent: ~/.agents/skills/<skill-name>/SKILL.md
Other options:
- Codex only: ~/.codex/skills/<skill-name>/SKILL.md
- Write to a repo-local draft: skills/<skill-name>/SKILL.md
- Leave as draft only
只有在用户选择目标位置后才能写入文件。如果目标位置已存在,先询问用户是否覆盖。
除非用户明确要求开发环境链接安装,否则不要创建符号链接。如果用户要求创建符号链接,请在创建前说明源路径和目标路径。
写入技能文件后,总结:
- 文件写入位置
- 为其提供信息的会话或检查点
- 任何假设或待解决的问题