用途
open(/open)是一个会话上下文重定向技能,用于按需重新加载会话上下文并加载配套技能。会话启动时的上下文简报现已自动生成,钩子会输出一份紧凑简报(成果、最近工作的缩放层级、交接摘要),Claude 应在首次响应中直接据此行动,无需调用 /open。
主要能力
- 重新定向:在会话中途再次展示上下文。
- 技能加载:确保 bon/todoist-gtd 模式可用。
- 目录切换后重载:上下文是项目专属的,切换目录后上下文可能不同。
- 深入查看:需要完整交接内容或超出简报的完整 bon 层级结构时使用。
使用方式
前置条件
运行 /open 前需验证基础设施健康,静默失败会导致后续混乱。检查项包括:
- open-context.sh 是否存在:
[ -x ~/.claude/scripts/open-context.sh ],若损坏则运行 claude-doctor.sh。 - 脚本符号链接是否有效:
~/.claude/scripts/check-symlinks.sh,若损坏则修复符号链接。 - bon 是否可用:
command -v bon,安装命令为uv tool install ~/Repos/bon。
快速预检:[ -x ~/.claude/scripts/open-context.sh ] && echo "OK" || echo "BROKEN: open-context.sh missing"。若预检失败,应停止并诊断后再继续。
结构
前置条件 → 验证基础设施;门控 → 加载所需配套技能;收集 → 脚本输出;定向 → 综合重要信息;决策 → 用户选择方向;行动 → 从 Bon 抽取。
门控:加载配套技能
在综合之前,根据当前存在的内容加载技能,未加载前不继续:
- 存在 .bon/:加载 Skill(bon),作为默认追踪器。
- 既无 .bon/ 也无追踪器:跳过追踪器加载。
- 上下文中有 @Claude 条目或交接中有 Todoist:提供 Skill(todoist-gtd)。
- 用户对过去工作感到困惑:提供 Skill(garde) 进行祖先查找。
工作追踪器存在时为强制项。抽取模式(条目 → bon 工作 → bon 步骤)是发现偏差的地方。战术步骤持久化在 items.jsonl 中,强制串行执行,并能经受会话崩溃。Bon 是默认选项;todoist-gtd 是条件性的,仅在相关时提供,不默认加载。记忆是可选的,仅在用户对历史感到困惑时提供。
收集
模式:紧凑简报输出到 stdout,细节保存在磁盘。会话启动钩子输出综合简报,包含:正在推进的成果(来自 bon)、最近工作的缩放层级(当前动作及其战术步骤)、上次会话摘要(Done、Next、Gotchas)。
上下文文件是项目专属的。<encoded-cwd> 是工作目录,所有非字母数字字符替换为 -(例如 -Users-modha-Repos-trousse)。
深入上下文可读取源文件:项目理解 .bon/understanding.md;最新交接 ~/.claude/handoffs/<encoded-cwd>/;Bon 上下文 ~/.claude/.session-context/<encoded-cwd>/bon.txt;新闻 ~/.claude/.update-news。
计算路径:echo "$(pwd -P)" | sed 's/[^a-zA-Z0-9-]/-/g'。
若上下文文件缺失或过期,可重新生成:~/.claude/scripts/open-context.sh。
脚本失败处理:若脚本失败(退出码 127 表示文件未找到,或其他错误),应停止,不使用部分上下文;告知用户脚本失败通常意味着符号链接损坏;运行 check-symlinks.sh 诊断。
定向
根据通知指示读取文件后综合。计算编码路径后读取源文件:最新交接、追踪器上下文、相关新闻。
若 .bon/contributions/ 中有文件,先综合到 .bon/understanding.md 再继续:读取现有理解文档与所有贡献文件,重写(而非追加)理解文档,做出显著性判断,综合后删除贡献文件。
综合重要信息:交接(Done、Next、Gotchas)、追踪器层级(来自 bon.txt,直接展示给用户)、就绪工作(bon ready)、命令(若交接有 Commands 部分则提供运行)、范围不匹配(若交接 Next 与就绪条目不符则标记)。
关键:以文本输出,而非 Bash。展示追踪器层级或就绪工作时,在响应中以文本输出,不要通过 Bash 运行 bon list,因为 Claude Code 会将超过 10 行的工具输出折叠在 Ctrl+O 后,用户不可见。bon.txt 文件已包含格式化层级,读取后直接输出。
孤立本地交接:当 stdout 显示孤立的 .handoff* 文件时,告知用户这些文件对 /open 不可见,并提供将其移动到中央位置:mv .handoff* ~/.claude/handoffs/<encoded-path>/。
决策
用户选择方向,选项通常包括:继续交接中的 Next、从就绪工作(bon 条目)中选择、@Claude 收件箱条目、其他。
行动:抽取
抽取在所有实质性工作上触发,不仅是显式追踪器条目声明。
显式条目选择:用户选择工作条目后,读取条目、标记进行中(Bon 用 bon show <id>,bon 不追踪 in_progress),读取条目的标准(bon: brief.why/what/done),从标准分解为步骤,向用户展示分解并确认,然后带显式暂停点逐步推进。
延续短语:用户说“continue X”“keep going”“pick up where we left off”时,澄清范围(哪个条目?成果还是动作?),读取条目标准,分解为步骤,带显式暂停点推进。
外部简报:用户提供规格、简报或需求时,提取验收标准,从标准分解为步骤,向用户展示理解并确认,带显式暂停点推进。
模糊引用:用户说“the email thing”“that feature”等时,不要猜测,询问用户指的是哪个条目,澄清后执行完整抽取。
测试:若工作将超过 10 分钟,需要显式分解和暂停点。没有检查点,偏差会累积。完整抽取模式位于追踪器技能(bon)中,这就是门控加载重要的原因。
适用场景
- 会话中途需要再次查看上下文。
- 需要加载 bon/todoist-gtd 工作模式。
- 切换目录后需要重新获取项目专属上下文。
- 需要完整交接内容或完整 bon 层级结构。
限制
- 会话刚启动且能看到简报时不应使用,应直接据此定向。
- 不需要完整上下文的快速问题不应使用。
- 用户已给出明确方向时不应使用。
- 依赖 open-context.sh、符号链接、bon 等基础设施,任一损坏会导致失败。
- 上下文文件为项目专属,切换目录后可能缺失或过期。
- 追踪器层级等输出需以文本呈现,不能通过 Bash 运行 bon list,否则输出会被折叠不可见。
反模式
- 通过 Bash 运行 bon list 或 bd ready:输出被折叠,用户看不到;应读取上下文文件并以文本输出。
- 在“continue X”时跳过抽取:范围模糊;应始终读取条目并分解为步骤。
- 跳过追踪器技能加载:缺少工作流模式;应先门控加载 bon。
- 忽略脚本失败:部分上下文导致偏差;脚本失败时应停止并诊断。
- 猜测模糊引用:选错工作;应询问用户指的是哪个条目。