mcpField
W
walkthrough

walkthrough

github.com/command-center-ai开发172 次安装20 周前更新
代码仓库

关于 walkthrough

通过本地运行的 Command Center,为 Git 差异生成并打开代码讲解。适合审查分支、提交或工作区改动的开发者,并支持指定版本范围和文件过滤。

主要功能

  1. 01根据 Git 差异生成代码讲解
  2. 02支持版本范围和工作区改动
  3. 03使用 glob 模式筛选变更文件
  4. 04在浏览器中打开生成的讲解

适用场景

  1. 01审查分支改动
  2. 02讲解一段提交范围
  3. 03将讲解限制在指定文件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/command-center-ai/skills --skill walkthrough

安装后在 Claude Code 中输入/walkthrough确认已加载。

附带文件cc-skill-lib.mjsrun.mjs

详细介绍

演练

通过本地运行的 Command Center 生成代码演练,然后打开它。

适用场景

用户请求对当前分支、拉取请求、提交范围进行演练,或要求“解释差异”。例如:

  • “带我了解这个分支。”
  • “带我看看从 main 以来的变更。”
  • “为 HEAD~5..HEAD 生成演练。”

如果此 Agent 是在 Command Center 内运行,那么其中有单独的演练工具或技能。请勿将此技能与那个混淆。此技能用于生成整个差异的演练。另一个工具用于针对任意代码片段生成演练,例如差异、Bug 的数据流、登录流程、代码库中某个方法的所有用法等。

调用方法

运行 run.mjs — 它与此 SKILL.md 位于同一目录。运行器会处理所有工作:检测安装、启动后端、检查身份验证/模型/工作区、生成演练并打开浏览器。

node <SKILL_DIR>/run.mjs [from..to] [--files=PATTERN[,PATTERN...]]

<SKILL_DIR> 是 skills CLI 安装此技能的位置。常见位置:

界面路径
Claude Code,项目本地./.claude/skills/walkthrough
Claude Code,全局(-g)~/.claude/skills/walkthrough
其他任何 Agent./.agents/skills/walkthrough

如果你从磁盘加载此 SKILL.md,运行器就在同级目录 — 将其替换为该目录。

两个参数都是可选的。默认情况下,演练会涵盖解析后范围的整个差异。

引用范围 — [from..to]:

  • 省略 → 默认为 merge-base(HEAD, <base>)..HEAD,其中 <base> 是 origin/HEAD 的符号引用;如果不可用,则依次回退到 origin/main / origin/master / main / master。
  • 传入任何 git 能识别的内容:SHA、分支、HEAD~3..HEAD 等。
  • 特殊标记:WORKING_TREE(未提交的变更)和 STAGED(暂存区)。示例:HEAD..WORKING_TREE。

便捷标志(等同于上面的引用范围标记):

  • --working-tree → 比较当前工作树与基准的合并基点(包括未提交的编辑)。
  • --staged → HEAD..STAGED(仅包含已执行 git add 的内容)。
  • --port=<port> → 与指定端口上的 Command Center 后端通信。适用于同时运行多个 CC 实例(开发环境),或运行器无法自动发现正确实例的情况。

文件筛选器 — --files=PATTERN[,PATTERN...]:

  • 以逗号分隔、相对于仓库的 glob 模式。* 匹配非斜杠字符;** 可跨目录匹配。
  • 在模式前加 ! 可排除匹配项。如果只传入排除项,隐式包含模式为 **(“除这些之外的所有内容”)。
  • 运行器会在本地根据 git diff --name-only from..to 展开模式,并将具体文件列表发送到后端。

示例 — 选择最符合用户意图的命令:

用户意图命令
整个分支与基准比较(默认)(无参数)
昨天的提交$(git log --since="2 days ago" --until="1 day ago" --format=%H | tail -1)..HEAD
最近 3 次提交HEAD~3..HEAD
整个分支,但跳过测试--files=!**/*.test.*,!**/*.spec.*,!**/__tests__/**
仅包含 src/ 中的 TS 文件--files=src/**/*.ts
昨天的提交,不包含测试<sha>..HEAD --files=!**/*.test.*
未提交的编辑--working-tree
未提交的编辑,仅包含 src/--working-tree --files=src/**/*.ts
仅包含已暂存的内容--staged

解读输出

运行器会在 stdout 上每行打印一个 JSON 对象。每行都有一个 kind 字段:

  • kind: "status" — 进度更新;向用户显示一条简短说明。
  • kind: "result" — 最终成功;运行器已打开演练。告知用户已打开,并附上 url 中的 URL。
  • kind: "error" — 最终失败;使用 code 和 message 字段告知用户出了什么问题。代码是稳定的枚举值(not-installed、not-running、not-logged-in、no-model、quota、no-workspace、backend-too-old、generation-failed 等);message 已是用户所用的语言。
  • kind: "action-required" — 用户必须先执行某项操作,然后才能重新运行(例如安装应用、登录、配置模型)。显示 message,并在存在 url 时一并显示。

始终原样显示运行器的 message,不要改写。运行器生成的面向用户的字符串为英文;后端生成的字符串已本地化。

非零退出代码

运行器成功时退出码为 0,失败时返回一个较小的固定整数(每种失败类型对应一个代码,详见项目 README)。不要解析退出码;应根据上述结构化的 kind / code 字段进行分支处理。

评论

支持 Markdown