关于 pre-session-end
用于结束 Claude Code 会话的技能,可整理可复用经验并检查仅限项目的权限。应用技能或设置更改前,会先征求确认。
主要功能
- 01分析会话经验
- 02提出技能、命令和 Agent 候选项
- 03比较项目与全局权限
- 04应用更改前征求批准
- 05生成会话结束摘要
适用场景
- 01回顾已完成的 Claude Code 会话
- 02将重复工作流整理为技能提案
- 03查找仅限项目的权限
- 04在会话结束时记录获准的更改
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ gjkim42/ kanon-repo --skill pre-session-end安装后在 Claude Code 中输入/pre-session-end确认已加载。
详细介绍
会话结束前技能
在结束 Claude Code 会话前运行此技能,以记录经验并传播有用的设置。
何时激活
- 用户表示:“完成了”“准备收尾”“结束会话”“再见”“就这样”“我做完了”
- 已完成重要工作,且未明确要求继续
- 用户明确调用
/pre-session-end
工作流
步骤 0:英语纠正
在进行其他步骤之前,提供用户本次会话中原始提示词的纠正版或更自然的表达。
格式:
## English Correction
**Original:** [user's original prompt]
**Corrected:** [corrected/more natural version]
[If changes are significant, add brief explanation of what was changed and why]
- 仅在需要纠正时包含此部分
- 重点关注语法、措辞和自然表达
- 说明应简洁
步骤 1:分析会话中的可学习模式
回顾聊天记录并识别:
技能候选项
可转化为可复用技能的模式:
- 重复的工作流(例如,“提交前总是运行测试”)
- 行之有效的问题解决方法
- 多次应用的领域专属知识
- 始终如一地采用的代码模式或架构
命令候选项
可转化为斜杠命令的操作:
- 反复执行的多步骤流程
- 工具常见的参数组合
- 项目专属工作流
Agent 候选项
专门的任务模式:
- 涉及多个工具的复杂操作
- 需要特定专业知识或上下文的任务
- 重复出现的分析或审查模式
步骤 2:向用户展示提取出的经验
对于每个候选项,向用户展示:
**Potential Skill: [name]**
- Pattern observed: [description]
- Would save: [how it helps]
- Proposed location: ~/.claude/skills/learned/[name].md
Create this skill? [Yes/No/Edit]
步骤 3:将项目权限传播到全局
- 读取项目设置:
.claude/settings.local.json - 读取全局设置:
~/.claude/settings.json - 找出项目设置中存在、但全局设置中没有的权限
对于仅在项目设置中找到的每项权限:
对权限进行分类:
- 通用工具权限:
Bash(git:*)、Bash(npm:*)、Bash(docker:*)→ 通常适合全局使用 - 领域专属网站权限:
WebFetch(domain:docs.example.com)→ 询问用户是否也适用于其他场景 - 项目专属路径:包含项目目录路径 → 跳过(不可移植)
- MCP 服务权限:
mcp__*→ 询问用户(可能仅适用于当前项目)
有选择地展示:
**Permission found in project settings:**
`Bash(helm template:*)`
This permission allows: Running helm template commands
Currently: Project-only
Recommendation: [Useful globally / Project-specific]
Propagate to global settings? [Yes/No]
步骤 4:应用已批准的更改
- 对于已批准的技能:在
~/.claude/skills/learned/中创建文件 - 对于已批准的权限:更新
~/.claude/settings.json - 报告已应用的内容
步骤 5:会话摘要
提供简要摘要:
## Session Wrap-Up Complete
**Learnings captured:**
- [X] Created skill: skill-name
- [X] Created command: command-name
- [ ] Skipped: pattern-name (user declined)
**Permissions propagated:**
- [X] Bash(helm:*) → global
- [ ] WebFetch(domain:internal.corp) → kept project-only
**Ready to end session.**
重要说明
- 切勿自动应用:每项更改都必须先获得用户确认
- 保留现有内容:未经明确批准,不要覆盖现有技能或设置
- 有选择地提出建议:只提出真正有用的模式,不要罗列每个重复操作
- 说明价值:对于每项建议,解释为何值得保存
评论
支持 Markdown