用途
本技能用于处理"非精确位置"的定位问题:当用户提到的目录、仓库或书签与当前相关位置不一致,或者属于不熟悉的命名位置时,用它来找到正确的目标位置并继续任务。首先判断当前工作目录是否已经符合用户请求;如果符合,就留在原地继续处理。
主要能力
当需要切换到其他位置时,技能按以下流程工作:
- 将 LOCATION 设为用户给出的位置名称,运行
bm get LOCATION。 - 如果
bm get LOCATION恰好返回一条路径,直接使用该结果。 - 否则运行
bm list --porcelain。每条记录为bookmark<TAB>path,分隔符是字面量制表符;需把 bookmark 和 path 解析为独立字段,以便保留含空格的路径。 - 回退匹配按以下顺序排序:精确书签名;精确路径基名;LOCATION 作为路径组成部分;上下文相关的书签名。优先基名匹配而非路径组成部分匹配,例如
foo应选择/Users/toni/foo,而不是/Users/toni/src/foo/design-system。对于相关名称,要依据任务含义判断:backend-repo比frontend-for-backend更适用于后端工作。不要仅凭子串匹配做选择。 - 如果某一条路径明显是最佳匹配,就选中它。如果仍有多条路径看似合理,逐个检查其任务相关性:检查其目录、仓库状态和远端(当适用时),并在存在时阅读 README.md 或 AGENTS.md。如果某个候选明显相关则继续;否则展示候选并请用户选择。
- 如果没有任何匹配,告知用户已尝试的内容,并请其提供书签名或路径。不要搜索整个磁盘。
- 从选中的路径执行后续所有操作。支持时设置工具的 cwd;否则使用
cd -- "$path" && ...。 - 在该位置继续用户的任务。不要只报告路径或要求用户自己切换目录。
使用方式
依赖 bm 命令进行书签查询与列出。通过 bm get LOCATION 获取唯一路径,通过 bm list --porcelain 获取全部书签清单。路径选定后,用设置 cwd 或 cd -- "$path" && ... 的方式在该路径下继续执行。
适用场景
适用于用户以非精确方式指代某个目录、仓库或书签的场景,尤其是位置名称不熟悉、需要借助书签来定位的情况。
完成标准
用户的任务从选定的相关路径开始运行。如果选择仍不明确,则在展示候选并询问用户后停止。
限制
仅在"非精确位置"场景使用。不应搜索整个磁盘;没有匹配时应请用户提供书签名或路径。多候选无法确定时应询问用户,而不是自行猜测。