CtrlK
BlogDocsLog inGet started
Tessl Logo

workspace-navigator

猫猫可编程导航 Workspace 面板:operator说模糊意图,猫猫找到路径,自动打开文件/目录。 Use when: operator说"打开日志""看看代码""打开设计图""帮我打开那个文档"等模糊指令。 Not for: 打开 localhost 前端页面(用 browser-preview)、纯代码编写(不涉及展示给operator看)。 Output: Hub 右侧 Workspace 面板自动打开并导航到目标文件/目录。

72

Quality

88%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Workspace Navigator

operator说"帮我打开XXX"时,你要自己找到路径,然后用 cat_cafe_workspace_navigate 让 Hub 右面板自动导航到那里。operator不会给你精确路径——这是你的活。

核心工作流(三步走)

Step 1: 意图解析 — operator想看什么?
  "帮我打开日志" → 日志文件/目录
  "看看 F131 的设计图" → F131 相关的 .pen 文件
  "打开那个 discussion" → 讨论文档

Step 2: 路径搜索 — 用你的工具找到精确路径
  用 glob/grep/read 找到文件的相对路径(相对于 worktree 根目录)

Step 3: 调 typed MCP — 让 Hub 前端导航
  cat_cafe_workspace_navigate({
    path: "找到的相对路径",
    action: "open",
    worktreeId: "目标worktree",
    threadId: "当前 threadId(有就传)"
  })

Step 2 详解:意图→路径匹配策略

这是本 skill 的核心硬实力。不同意图用不同搜索策略

场景速查表

operator说的搜索策略示例命令
"打开日志" / "看日志"快捷方式:右侧状态面板底部「运行日志 → 查看日志」按钮。也可用 cat_cafe_workspace_navigate按钮会自动打开最新 .log 文件
"看审计日志"审计日志在 packages/api/data/audit/glob("packages/api/data/audit/**")
"打开 F131 的文档"Feature 文档在 docs/features/glob("docs/features/F131*")
"看看 F131 的设计图"Pencil 设计文件glob("**/*F131*.pen")glob("designs/*F131*")
"打开那个 discussion"讨论文档在 feature-discussions/glob("feature-discussions/*")
"看看 chatStore"源码文件名搜索glob("**/*chatStore*")
"打开 BACKLOG"已知位置直接用 docs/ROADMAP.md
"看看 plans"计划目录直接用 feature-specs/
"打开那个 skill"Skill 文档glob("cat-cafe-skills/*/SKILL.md")
"看看 spec" + 上下文从对话上下文推断是哪个 Feature推断 Feature ID → glob("docs/features/Fxxx*")

搜索策略优先级

  1. 已知位置直达 — 日志、BACKLOG、SOP 等有固定位置的,不需要搜
  2. Feature ID 匹配 — operator提到 F 编号,直接 glob("**/F{num}*")
  3. 文件名 glob — operator提到文件名关键词,glob("**/*关键词*")
  4. 内容 grep — operator描述的是文件内容而非文件名,用 grep("内容关键词")
  5. 目录浏览 — 不确定时先 reveal 目录,让operator自己挑

多结果处理

如果搜索返回多个匹配

  • ≤ 3 个:列出让operator选,或者按上下文判断最可能的那个打开
  • > 3 个:缩小搜索范围(加更多关键词),或者 reveal 到父目录让operator浏览

路径格式要求

  • 必须是相对路径(相对于 worktree 根目录),不要传绝对路径
  • 例:packages/api/data/logs/api/2026-03-21.log,不是 /home/user/.../2026-03-21.log
  • 目录路径末尾带不带 / 都行

Step 3 详解:调用 cat_cafe_workspace_navigate

工具参数

参数必填说明
path目标文件或目录的相对路径
actionreveal(展开目录树到目标,默认)或 open(打开文件查看器)
worktreeId指定在哪个 worktree 里导航。API 需要此字段来解析路径
threadId建议传当前 thread ID,用于防止多 tab 串扰。传了只有对应 tab 响应

action 选择

目标用什么 action效果
目录(如 packages/api/data/logs/reveal展开文件树到该目录,不打开任何文件
文件(如 docs/features/F131-workspace-navigator.mdopen打开文件查看器显示文件内容
不确定reveal安全默认——展开到那里让operator自己看

调用示例

场景调用
打开日志目录cat_cafe_workspace_navigate({ path: "packages/api/data/logs/api/", action: "reveal", worktreeId: "cat-cafe-runtime" })
打开 Feature 文档cat_cafe_workspace_navigate({ path: "docs/features/F131-workspace-navigator.md", action: "open", worktreeId: "cat-cafe" })
打开到某一行cat_cafe_workspace_navigate({ path: "packages/web/src/stores/chatStore.ts", action: "open", worktreeId: "cat-cafe", line: 1273 })

如果 MCP 工具不可用,先说明工具面缺失并按 F223 追踪;不要把手写第一方 curl localhost 当主路径。

什么时候主动用

  • operator说"帮我打开XXX" → 立刻搜索 + 导航,不要只回复路径让operator自己找
  • operator说"一起看看这个日志" → 打开日志目录
  • 讨论 Feature 时提到 spec → 主动打开 spec 文档
  • Debug 时提到某个文件 → 主动打开让operator和你一起看
  • operator说"看看设计图" → 找到 .pen 文件并打开

面板快捷入口(F130)

右侧状态面板底部有内置快捷按钮,不需要走 cat_cafe_workspace_navigate

按钮位置效果
运行日志 → 查看日志右侧状态面板,AuditExplorerPanel 下方自动展开到 packages/api/data/logs/api/ 并打开最新 .log 文件

operator说"看日志"时,告诉operator点右侧面板的按钮比你调工具更快。你也可以用 cat_cafe_workspace_navigate 代替。

不要做的事

  • 不要只回复路径让operator自己去点 — 你的价值是「帮operator打开」,不是「告诉operator路径」
  • 不要问operator要精确路径 — 你自己能搜到,这是你的活
  • 不要和 browser-preview 混淆 — workspace-navigator 打开文件/目录;browser-preview 打开 localhost 网页
  • 不要传绝对路径 — API 只接受相对路径
  • 不要瞎猜路径不验证 — 先 glob/grep 确认文件存在,再调 API

和其他 skill 的区别

Skill关注点
workspace-navigator(本 skill)帮operator在 Hub Workspace 面板打开文件/目录
browser-preview在 Hub Browser 面板预览 localhost 前端页面
tdd写代码的测试驱动纪律
quality-gate开发完成后的自检

常见问题

现象原因修法
右侧无反应Hub/API 没跑 / 路径不存在 / MCP callback 未配置检查工具返回错误;确认路径存在
打开了错误的文件glob 匹配到了多个,选了错的列出所有匹配让operator确认
worktree 切换失败worktreeId 不存在查看当前 Workspace worktree 列表或改传正确 worktreeId
面板没自动打开Socket 连接可能断了刷新 Hub 页面重试
Repository
zts212653/clowder-ai
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.