[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6RVNKA519HKESCSB1H5YDSC":3,"skill-same:01M6RVNKA519HKESCSB1H5YDSC":61},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":44,"ownerHtmlUrl":45,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":46,"install":47,"resources":60},"01M6RVNKA519HKESCSB1H5YDSC","finishing-a-development-branch",null,"当实现完成、所有测试通过、需要决定如何集成这份工作时使用","rzx007\u002FVykor","rzx007","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F22313722?v=4","01M6RVGB3GJ05PGEFHQ34TV6T0","Danovan","01M6RVGB7F20SDKPMEN9RS3N0N",3,"MIT","https:\u002F\u002Fgithub.com\u002Frzx007\u002FVykor\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ffinishing-a-development-branch\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[24,25,26,27,28,29],"finishing a development branch","development","branch","testing","workflow","git","2026-11-10 10:12:30",false,"---\nname: finishing-a-development-branch\ndescription: 当实现完成、所有测试通过、需要决定如何集成这份工作时使用\nversion: \"1.0.0\"\nlicense: MIT\nmetadata:\n  hermes:\n    tags: [git, workflow]\n---\n\n# 收尾一个开发分支\n\n## 概述\n\n**核心原则：** 验证测试 → 检测环境 → 展示选项 → 执行选择 → 清理。\n\n**开始时宣告：** \"我正在使用 finishing-a-development-branch 技能来收尾这份工作。\"\n\n## 步骤 1：验证测试\n\n运行项目的完整测试套件（`npm test` \u002F `cargo test` \u002F `pytest` \u002F `go test .\u002F...`）。\n\n**如果测试失败**，报告失败并停下——菜单是在测试全绿之后才出现的：\n\n```\n测试失败（\u003CN> 个）。完成之前必须先修：\n\n[展示失败详情]\n```\n\n**如果测试通过：** 继续步骤 2。\n\n## 步骤 2：检测环境\n\n```bash\nGIT_DIR=$(cd \"$(git rev-parse --git-dir)\" 2>\u002Fdev\u002Fnull && pwd -P)\nGIT_COMMON=$(cd \"$(git rev-parse --git-common-dir)\" 2>\u002Fdev\u002Fnull && pwd -P)\n# 现在就捕获 —— 此刻还在工作区里面。步骤 5 会切换目录，\n# 而清理（步骤 6）需要这个值\nWORKTREE_PATH=$(git rev-parse --show-toplevel)\n```\n\n这决定了展示哪种菜单、以及清理方式：\n\n| 状态 | 菜单 | 清理 |\n|------|------|------|\n| `GIT_DIR == GIT_COMMON`（普通仓库） | 标准 3 个选项 | 无 worktree 可清理 |\n| `GIT_DIR != GIT_COMMON`，命名分支 | 标准 3 个选项 | 按来源判断（见步骤 6） |\n| `GIT_DIR != GIT_COMMON`，分离 HEAD | 收敛为 2 个选项（不含合并） | 由外部管理——原地别动 |\n\n## 步骤 3：确定基础分支\n\n基础分支就是这份工作从哪儿分出来的那个——通常在计划里、对话里，或者分支的 upstream 里已经写明了。如果还不知道，就问：\"这个分支是从 \u003C你的最佳猜测> 分出来的，对吗？\"**合并之前先确认：合并到错误的基础分支，代价很高。**\n\n## 步骤 4：展示选项\n\n**普通仓库和命名分支 worktree——精确展示这 3 个选项：**\n\n```\n实现已完成。你想怎么做？\n\n1. 本地合并回 \u003Cbase-branch>\n2. 推送并创建 Pull Request\n3. 保留分支不动（我稍后自己处理）\n\n选哪个？\n```\n\n**分离 HEAD——精确展示这 2 个选项：**\n\n```\n实现已完成。你当前处于分离 HEAD（由外部管理的工作区）。\n\n1. 作为新分支推送并创建 Pull Request\n2. 保持原样（我稍后自己处理）\n\n选哪个？\n```\n\n**照原文展示菜单**——简洁，每个选项都来自上面的列表。**丢弃工作只在你的人类伙伴明确提出时才发生**（见下方\"如果你的人类伙伴要求丢弃这份工作\"）。等他们回答；集成与否是他们的决定。\n\n## 步骤 5：执行选择\n\n### 选项 1：本地合并\n\n```bash\n# 切到主仓库根目录，保证 CWD 安全\nMAIN_ROOT=$(git -C \"$(git rev-parse --git-common-dir)\u002F..\" rev-parse --show-toplevel)\ncd \"$MAIN_ROOT\"\n\n# 先合并 —— 在删除任何东西之前先验证合并成功\ngit checkout \u003Cbase-branch>\ngit pull\ngit merge \u003Cfeature-branch>\n\n# 在合并结果上验证测试\n\u003C测试命令>\n```\n\n如果测试在**合并结果**上失败：停下，把 worktree 和分支原地留着，去排查——什么都还没推送，所以这次合并是本地的、可恢复的。\n\n一旦合并结果全绿：清理 worktree（步骤 6），然后删除分支：\n\n```bash\ngit branch -d \u003Cfeature-branch>\n```\n\n### 选项 2：推送并创建 PR\n\n```bash\ngit push -u origin \u003Cfeature-branch>\n# 从分离 HEAD 出发时，在远端指定新分支名：\n# git push origin HEAD:refs\u002Fheads\u002F\u003Cnew-branch>\n```\n\n然后用**代码托管平台**（forge）的工具针对 \u003Cbase-branch> 创建 pull\u002Fmerge request——有 CLI 就用它，没有就用推送时大多数平台会打印出来的创建 URL——遵循仓库里已有的 PR 模板与约定（如果有），并把 URL 报告给你的人类伙伴。\n\n**保留 worktree**——你的人类伙伴要在那里根据 PR 反馈继续迭代。\n\n### 选项 3：保持原样\n\n报告：\"保留分支 \u003Cname>。工作树保留在 \u003Cpath>。\"\n\n### 如果你的人类伙伴要求丢弃这份工作\n\n**这条路只作为对\"明确要求把工作扔掉\"的响应而存在。** 先确认：\n\n```\n这将永久删除：\n- 分支 \u003Cname>\n- 所有 commit：\u003Ccommit 列表>\n- 位于 \u003Cpath> 的工作树\n\n输入 'discard' 以确认。\n```\n\n等待**这个精确的**确认词。收到之后：\n\n```bash\nMAIN_ROOT=$(git -C \"$(git rev-parse --git-common-dir)\u002F..\" rev-parse --show-toplevel)\ncd \"$MAIN_ROOT\"\n```\n\n然后清理 worktree（步骤 6），再强制删除分支：\n\n```bash\ngit branch -D \u003Cfeature-branch>\n```\n\n## 步骤 6：清理工作区\n\n**只对选项 1 和已确认的丢弃执行。** 选项 2 和 3 始终保留 worktree。两个调用方都已经切到主仓库根目录了——移除 worktree 必须从 worktree 外面执行——因此这里使用**步骤 2 里捕获的** `GIT_DIR` \u002F `GIT_COMMON` \u002F `WORKTREE_PATH`，也就是那次目录切换之前的值。\n\n> ⚠️ **不要在这里重新计算这些值。** 此刻 `git rev-parse --show-toplevel` 返回的是主仓库根目录，不是 worktree 路径 —— 溯源判断会永远匹配不上，清理会静默空转，随后分支删除还会因为 worktree 仍挂着而失败。\n\n**如果 `GIT_DIR == GIT_COMMON`：** 普通仓库，无 worktree 可清理。结束。\n\n**如果 `WORKTREE_PATH` 在 `.worktrees\u002F` 或 `worktrees\u002F` 之下：** 这是 Superpowers 创建的 worktree——我们负责清理：\n\n```bash\ngit worktree remove \"$WORKTREE_PATH\"\ngit worktree prune  # 自愈：清理任何过期的注册记录\n```\n\n**否则：** 这个工作区归宿主环境所有——原地别动。如果你的平台提供了工作区退出工具，用它。\n\n## 快速参考\n\n| 选项 | 合并 | 推送 | 保留工作树 | 清理分支 |\n|------|------|------|-----------|---------|\n| 1. 本地合并 | 是 | - | - | 是 |\n| 2. 创建 PR | - | 是 | 是 | - |\n| 3. 保持原样 | - | - | 是 | - |\n| 丢弃（仅在明确要求时） | - | - | - | 是（强制） |\n\n## 常见的合理化借口\n\n| 借口 | 现实 |\n|------|------|\n| \"测试这个会话早先通过过\" | 在**你即将集成的那棵树上**跑测试套件。一次绿色运行只能证明它当时跑的那棵树。 |\n| \"他们显然是想合并的\" | 集成是你人类伙伴的决定。把菜单摆出来，然后等。 |\n| \"他们看起来对这个功能收工了——我提议丢弃吧\" | 菜单就是原文那样，不多不少。丢弃只在你的人类伙伴用明确的话提出时才发生。 |\n| \"'嗯，删掉吧'算确认了\" | 只有输入 `discard` 这个词才授权删除。 |\n| \"PR 已经开了，worktree 现在是碍事的垃圾\" | PR 反馈要在那个 worktree 里修。它得留到工作落地为止。 |\n| \"另外那个 worktree 看着像过期的——我顺手也清了\" | 只清理 `.worktrees\u002F` 或 `worktrees\u002F` 之下的 worktree。其余的都属于宿主环境。 |\n| \"合并结果的失败大概是偶发的\" | 合并结果失败会让一切停下。在你排查期间，分支和 worktree 原地不动。 |\n| \"基础分支明显就是 main\" | 确认分叉点，或者直接问。合并到错误的基础分支，代价很高。 |\n| \"推送被拒了——force-push 一下就好\" | 推送被拒意味着远端动过了。去排查；只有在你人类伙伴明确要求时才 force-push。 |\n","# 收尾一个开发分支\n\n## 概述\n\n**核心原则：** 验证测试 → 检测环境 → 展示选项 → 执行选择 → 清理。\n\n**开始时宣告：** \"我正在使用 finishing-a-development-branch 技能来收尾这份工作。\"\n\n## 步骤 1：验证测试\n\n运行项目的完整测试套件（`npm test` \u002F `cargo test` \u002F `pytest` \u002F `go test .\u002F...`）。\n\n**如果测试失败**，报告失败并停下——菜单是在测试全绿之后才出现的：\n\n```\n测试失败（\u003CN> 个）。完成之前必须先修：\n\n[展示失败详情]\n```\n\n**如果测试通过：** 继续步骤 2。\n\n## 步骤 2：检测环境\n\n```bash\nGIT_DIR=$(cd \"$(git rev-parse --git-dir)\" 2>\u002Fdev\u002Fnull && pwd -P)\nGIT_COMMON=$(cd \"$(git rev-parse --git-common-dir)\" 2>\u002Fdev\u002Fnull && pwd -P)\n# 现在就捕获 —— 此刻还在工作区里面。步骤 5 会切换目录，\n# 而清理（步骤 6）需要这个值\nWORKTREE_PATH=$(git rev-parse --show-toplevel)\n```\n\n这决定了展示哪种菜单、以及清理方式：\n\n| 状态 | 菜单 | 清理 |\n|------|------|------|\n| `GIT_DIR == GIT_COMMON`（普通仓库） | 标准 3 个选项 | 无 worktree 可清理 |\n| `GIT_DIR != GIT_COMMON`，命名分支 | 标准 3 个选项 | 按来源判断（见步骤 6） |\n| `GIT_DIR != GIT_COMMON`，分离 HEAD | 收敛为 2 个选项（不含合并） | 由外部管理——原地别动 |\n\n## 步骤 3：确定基础分支\n\n基础分支就是这份工作从哪儿分出来的那个——通常在计划里、对话里，或者分支的 upstream 里已经写明了。如果还不知道，就问：\"这个分支是从 \u003C你的最佳猜测> 分出来的，对吗？\"**合并之前先确认：合并到错误的基础分支，代价很高。**\n\n## 步骤 4：展示选项\n\n**普通仓库和命名分支 worktree——精确展示这 3 个选项：**\n\n```\n实现已完成。你想怎么做？\n\n1. 本地合并回 \u003Cbase-branch>\n2. 推送并创建 Pull Request\n3. 保留分支不动（我稍后自己处理）\n\n选哪个？\n```\n\n**分离 HEAD——精确展示这 2 个选项：**\n\n```\n实现已完成。你当前处于分离 HEAD（由外部管理的工作区）。\n\n1. 作为新分支推送并创建 Pull Request\n2. 保持原样（我稍后自己处理）\n\n选哪个？\n```\n\n**照原文展示菜单**——简洁，每个选项都来自上面的列表。**丢弃工作只在你的人类伙伴明确提出时才发生**（见下方\"如果你的人类伙伴要求丢弃这份工作\"）。等他们回答；集成与否是他们的决定。\n\n## 步骤 5：执行选择\n\n### 选项 1：本地合并\n\n```bash\n# 切到主仓库根目录，保证 CWD 安全\nMAIN_ROOT=$(git -C \"$(git rev-parse --git-common-dir)\u002F..\" rev-parse --show-toplevel)\ncd \"$MAIN_ROOT\"\n\n# 先合并 —— 在删除任何东西之前先验证合并成功\ngit checkout \u003Cbase-branch>\ngit pull\ngit merge \u003Cfeature-branch>\n\n# 在合并结果上验证测试\n\u003C测试命令>\n```\n\n如果测试在**合并结果**上失败：停下，把 worktree 和分支原地留着，去排查——什么都还没推送，所以这次合并是本地的、可恢复的。\n\n一旦合并结果全绿：清理 worktree（步骤 6），然后删除分支：\n\n```bash\ngit branch -d \u003Cfeature-branch>\n```\n\n### 选项 2：推送并创建 PR\n\n```bash\ngit push -u origin \u003Cfeature-branch>\n# 从分离 HEAD 出发时，在远端指定新分支名：\n# git push origin HEAD:refs\u002Fheads\u002F\u003Cnew-branch>\n```\n\n然后用**代码托管平台**（forge）的工具针对 \u003Cbase-branch> 创建 pull\u002Fmerge request——有 CLI 就用它，没有就用推送时大多数平台会打印出来的创建 URL——遵循仓库里已有的 PR 模板与约定（如果有），并把 URL 报告给你的人类伙伴。\n\n**保留 worktree**——你的人类伙伴要在那里根据 PR 反馈继续迭代。\n\n### 选项 3：保持原样\n\n报告：\"保留分支 \u003Cname>。工作树保留在 \u003Cpath>。\"\n\n### 如果你的人类伙伴要求丢弃这份工作\n\n**这条路只作为对\"明确要求把工作扔掉\"的响应而存在。** 先确认：\n\n```\n这将永久删除：\n- 分支 \u003Cname>\n- 所有 commit：\u003Ccommit 列表>\n- 位于 \u003Cpath> 的工作树\n\n输入 'discard' 以确认。\n```\n\n等待**这个精确的**确认词。收到之后：\n\n```bash\nMAIN_ROOT=$(git -C \"$(git rev-parse --git-common-dir)\u002F..\" rev-parse --show-toplevel)\ncd \"$MAIN_ROOT\"\n```\n\n然后清理 worktree（步骤 6），再强制删除分支：\n\n```bash\ngit branch -D \u003Cfeature-branch>\n```\n\n## 步骤 6：清理工作区\n\n**只对选项 1 和已确认的丢弃执行。** 选项 2 和 3 始终保留 worktree。两个调用方都已经切到主仓库根目录了——移除 worktree 必须从 worktree 外面执行——因此这里使用**步骤 2 里捕获的** `GIT_DIR` \u002F `GIT_COMMON` \u002F `WORKTREE_PATH`，也就是那次目录切换之前的值。\n\n> ⚠️ **不要在这里重新计算这些值。** 此刻 `git rev-parse --show-toplevel` 返回的是主仓库根目录，不是 worktree 路径 —— 溯源判断会永远匹配不上，清理会静默空转，随后分支删除还会因为 worktree 仍挂着而失败。\n\n**如果 `GIT_DIR == GIT_COMMON`：** 普通仓库，无 worktree 可清理。结束。\n\n**如果 `WORKTREE_PATH` 在 `.worktrees\u002F` 或 `worktrees\u002F` 之下：** 这是 Superpowers 创建的 worktree——我们负责清理：\n\n```bash\ngit worktree remove \"$WORKTREE_PATH\"\ngit worktree prune  # 自愈：清理任何过期的注册记录\n```\n\n**否则：** 这个工作区归宿主环境所有——原地别动。如果你的平台提供了工作区退出工具，用它。\n\n## 快速参考\n\n| 选项 | 合并 | 推送 | 保留工作树 | 清理分支 |\n|------|------|------|-----------|---------|\n| 1. 本地合并 | 是 | - | - | 是 |\n| 2. 创建 PR | - | 是 | 是 | - |\n| 3. 保持原样 | - | - | 是 | - |\n| 丢弃（仅在明确要求时） | - | - | - | 是（强制） |\n\n## 常见的合理化借口\n\n| 借口 | 现实 |\n|------|------|\n| \"测试这个会话早先通过过\" | 在**你即将集成的那棵树上**跑测试套件。一次绿色运行只能证明它当时跑的那棵树。 |\n| \"他们显然是想合并的\" | 集成是你人类伙伴的决定。把菜单摆出来，然后等。 |\n| \"他们看起来对这个功能收工了——我提议丢弃吧\" | 菜单就是原文那样，不多不少。丢弃只在你的人类伙伴用明确的话提出时才发生。 |\n| \"'嗯，删掉吧'算确认了\" | 只有输入 `discard` 这个词才授权删除。 |\n| \"PR 已经开了，worktree 现在是碍事的垃圾\" | PR 反馈要在那个 worktree 里修。它得留到工作落地为止。 |\n| \"另外那个 worktree 看着像过期的——我顺手也清了\" | 只清理 `.worktrees\u002F` 或 `worktrees\u002F` 之下的 worktree。其余的都属于宿主环境。 |\n| \"合并结果的失败大概是偶发的\" | 合并结果失败会让一切停下。在你排查期间，分支和 worktree 原地不动。 |\n| \"基础分支明显就是 main\" | 确认分叉点，或者直接问。合并到错误的基础分支，代价很高。 |\n| \"推送被拒了——force-push 一下就好\" | 推送被拒意味着远端动过了。去排查；只有在你人类伙伴明确要求时才 force-push。 |\n",{"name":5,"license":15,"version":35,"metadata":36,"description":7},"1.0.0",{"hermes":37},{"tags":38},[29,28],"main","11fa3057bb1aff51d77b97648803dec2b2ea62d9",".agents\u002Fskills\u002Ffinishing-a-development-branch",2,"https:\u002F\u002Fgithub.com\u002Frzx007\u002FVykor","https:\u002F\u002Frzx007.github.io\u002FVykor\u002F","https:\u002F\u002Fgithub.com\u002Frzx007","2026-11-13 23:57:39",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add rzx007\u002FVykor --skill finishing-a-development-branch",{"tool":53,"command":54},"bunx","bunx skills add rzx007\u002FVykor --skill finishing-a-development-branch",{"tool":56,"command":57},"pnpm","pnpm dlx skills add rzx007\u002FVykor --skill finishing-a-development-branch","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Frzx007\u002FVykor\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ffinishing-a-development-branch\u002FSKILL.md",true,[],[62,80,92,114,125,138],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":76,"publishedAt":30},"01M6RVYYTPGG9WWWV4QAY0YEY3","writing-skills","当创建新技能、编辑现有技能或在部署前验证技能是否有效时使用","https:\u002F\u002Fgithub.com\u002Frzx007\u002FVykor\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fwriting-skills\u002FSKILL.md",[68,71],{"categoryNo":69,"categoryName":70,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":72,"categoryName":73,"taxonomyType":74,"taxonomyTypeDesc":75},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[77,78,79],"writing skills","writing","documentation",{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":88,"publishedAt":30},"01M6RVYE486HE8NQ2M4G5DNG63","writing-plans","当你有规格说明或需求用于多步骤任务时使用，在动手写代码之前","https:\u002F\u002Fgithub.com\u002Frzx007\u002FVykor\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fwriting-plans\u002FSKILL.md",[86,87],{"categoryNo":69,"categoryName":70,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":72,"categoryName":73,"taxonomyType":74,"taxonomyTypeDesc":75},[89,90,78,91,79],"plans","writing plans","planning",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":101,"publishedAt":30},"01M6RVY778PEDPWQ0DCM25QW3A","workflow-runner","在 Claude Code \u002F OpenClaw \u002F Cursor 中直接运行 agency-orchestrator YAML 工作流——无需 API key，使用当前会话的 LLM 作为执行引擎。当用户提供 .yaml 工作流文件或要求多角色协作完成任务时触发。","https:\u002F\u002Fgithub.com\u002Frzx007\u002FVykor\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fworkflow-runner\u002FSKILL.md",[98],{"categoryNo":99,"categoryName":100,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[102,103,28,104,105,106,107,108,109,110,111,112,113],"workflow runner","runner","协作","文件","agency","orchestrator","cursor","api","execution","yaml","code","openclaw",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":30},"01M6RVY4NR6RRPV174AB706A13","verification-before-completion","在宣称工作完成、已修复或测试通过之前使用，在提交或创建 PR 之前——必须运行验证命令并确认输出后才能声称成功；始终用证据支撑断言","https:\u002F\u002Fgithub.com\u002Frzx007\u002FVykor\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fverification-before-completion\u002FSKILL.md",[],[121,122,123,124,27],"verification before completion","verification","quality","pr",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":30},"01M6RVY1ZQ6ADVCZGBS371HD88","using-superpowers","在开始任何对话时使用——确立如何查找和使用技能，要求在任何响应（包括澄清性问题）之前调用 Skill 工具","https:\u002F\u002Fgithub.com\u002Frzx007\u002FVykor\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fusing-superpowers\u002FSKILL.md",[],[132,133,134,135,136,137],"superpowers","using superpowers","对话","Meta","工具","getting-started",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":144,"publishedAt":30},"01M6RVXJFEQ00P7XBQ8FBEKKJ2","using-git-worktrees","当需要开始与当前工作区隔离的功能开发，或在执行实现计划之前使用——通过原生工具或 git worktree 回退机制确保隔离工作区存在","https:\u002F\u002Fgithub.com\u002Frzx007\u002FVykor\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fusing-git-worktrees\u002FSKILL.md",[],[145,29,146,147,148,28,149,150,136],"using git worktrees","git worktrees","worktrees","Using git","worktree","git worktree"]