分支 Management
- 作者仓库星标 46
- 许可证 MIT
- 作者仓库 Co-OmniSpec
分支与特性目录管理Skill(branch-management)
概览(职责与输入输出)
- 职责:统一管理基于“需求编号”的分支与特性目录创建/复用流程:
- 解析并验证需求编号(强制要求)
- 根据需求编号检查当前分支是否匹配
- 必要时创建新的特性分支与目录
- 典型调用方:
reverse-on-demand(按需反构阶段1)- 其他基于需求编号驱动的命令/Skill
- 输出变量:
REQUIREMENT_ID:需求编号BRANCH_MATCHES_REQUIREMENT:布尔值,当前分支是否匹配需求编号BRANCH_NAME:最终选定/创建的特性分支名称FEATURE_DIR:特性目录绝对路径(例如<REPO_ROOT>/changes/<short-name>/)TARGET_FILE:目标文件绝对路径(可选;本流程下允许为空)REPO_ROOT:仓库根目录(在调用本 Skill 前由调用方提供或通过前置步骤获取)
本 Skill 将分支与特性目录管理流程封装为可复用 Skill,可被 reverse-on-demand 等命令/Skill 调用。
输入与前置条件
- 输入:
- 用户输入文本(包含
$ARGUMENTS中的内容),其中需要有“需求编号”信息; - 调用方可选择是否需要本 Skill 帮助获取
REPO_ROOT。
- 用户输入文本(包含
- 前置条件:
- 需求编号是强制要求:如果未提供需求编号,本 Skill 必须给出中文错误并终止后续流程。
核心步骤(对应原命令文档)
步骤0(可选):获取环境信息(REPO_ROOT)
- 何时执行:
- 若调用方未明确提供
REPO_ROOT,且后续步骤需要使用绝对路径; - 若调用方已提供
REPO_ROOT,可以跳过。
- 若调用方未明确提供
- 操作(跨平台脚本):
- Linux:
bash scripts/bash/check-prerequisites.sh --paths-only --json - Windows:
pwsh scripts/powershell/check-prerequisites.ps1 --paths-only --json - 从 JSON 输出中解析
REPO_ROOT(必须为绝对路径)。
- Linux:
步骤1:解析与验证需求编号
- 解析:
- 从用户输入中解析“需求编号”,支持多种格式:
- 章节形式:
## 需求编号+ 下一行 ID(如TCF-123456) - 行内形式:
需求编号: TCF-123456、MR: TCF-123456、Requirement ID: BUG-123456、PR: TCF-123456等。
- 章节形式:
- 从用户输入中解析“需求编号”,支持多种格式:
- 验证:
REQUIREMENT_ID不为null,不为空字符串,去除首尾空白后非空;- 若验证失败:
- 用中文输出明确错误说明(需求编号是强制要求,并给出格式示例);
- 终止后续分支管理流程。
步骤2:检查当前分支是否匹配需求编号
- 逻辑:
- 当前分支名以
<REQUIREMENT_ID>-为前缀(不区分大小写)视为匹配; - 示例:
TCF-123456-feature-name、tcf-123456-fix-bug等。
- 当前分支名以
- 输出:
BRANCH_MATCHES_REQUIREMENT = true/false- 若为 true:默认复用当前分支。
步骤3:生成分支简短名称(仅在需要创建新分支时)
- 前提:
BRANCH_MATCHES_REQUIREMENT == false - 逻辑:
- 从功能描述中提取 2–4 个关键词,组合成简短英文/拼音短语(如
user-auth、fix-payment-bug); - 分支名格式:
<REQUIREMENT_ID>-<short-name>(如TCF-123456-user-auth)。 - 特性目录短名格式:
<short-name>(如rdma-sharepf-extend)。
- 从功能描述中提取 2–4 个关键词,组合成简短英文/拼音短语(如
步骤4:创建或复用特性分支与目录
- 首先检查是否已有可复用的分支/目录(按原文档优先级):
BRANCH_MATCHES_REQUIREMENT == true:复用当前分支,查找匹配目录;- 当前分支已是特性分支且目录存在:直接复用;
- 搜索
NNN-或需求编号前缀的目录并选择合适的一个。
- 若上述检查都未命中:
- 调用创建特性分支脚本(仓库根目录下):
- Linux:
scripts/bash/create-new-feature.sh --json --branch-name "<REQUIREMENT_ID>-<short-name>" --feature-dir "changes/<short-name>" - Windows:
scripts/powershell/create-new-feature.ps1 --json --branch-name "<REQUIREMENT_ID>-<short-name>" --feature-dir "changes/<short-name>"
- Linux:
- 从脚本 JSON 输出中解析得到:
BRANCH_NAMETARGET_FILE(可为空;不再要求由本流程创建spec.md)FEATURE_DIR(特性目录绝对路径)
FEATURE_DIR以脚本返回值为准;不得依赖TARGET_FILE反推目录路径。- 🔴 强制校验:
FEATURE_DIR必须匹配<REPO_ROOT>/changes/<short-name>/;若不匹配,立即报错并终止流程。
- 调用创建特性分支脚本(仓库根目录下):
步骤5:输出变量与终止条件
- 成功时,本 Skill 向调用方返回(或在上下文中设置)以下变量:
REQUIREMENT_IDBRANCH_MATCHES_REQUIREMENTBRANCH_NAMEFEATURE_DIRTARGET_FILE(若适用)REPO_ROOT(若在步骤0中获取)
- 终止条件:
- 需求编号验证失败;
- 其他脚本错误或路径解析错误(需用中文说明原因,并终止后续依赖步骤)。
参考说明
本 Skill 的详细逻辑已整合于上文步骤中;脚本参数、JSON 输出格式等以 create-new-feature 与 check-prerequisites 脚本的文档为准。执行本 Skill 时,AI Agent 应按上述步骤完成解析、校验与分支/目录创建或复用。
- 流狐分类
- 工程开发
- 作者声明 Agent
- 未找到明确声明;不据此推断已兼容或已测试
- 静态检查
- 94 / 100 · 启发式扫描,不代表运行安全
- 作者 / 版本 / 许可
- @ZTE-AICloud · MIT
- 流狐 Token 估算
- 低消耗
- 流狐接入估算
- 需简单配置
- 是否需要外部 API Key
- 未发现要求
- 检测到的系统要求
- Linux · Windows
- 底层运行要求
- 未声明
- 检测到的文件与系统行为
-
- 只读
- 允许写入 / 修改
- Shell 执行
- 检测到的网络行为
- 仅限本地
- 安装命令数
- 无(仅作为资料)
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
作者没有在当前 SKILL.md 中定义固定输出样例。 概览(职责与输入输出)
职责:统一管理基于“需求编号”的分支与特性目录创建/复用流程: 解析并验证需求编号(强制要求) 根据需求编号检查当前分支是否匹配
输入与前置条件
输入: 用户输入文本(包含 $ARGUMENTS 中的内容),其中需要有“需求编号”信息; 调用方可选择是否需要本 Skill 帮助获取 REPOROOT。
核心步骤(对应原命令文档)
核心步骤(对应原命令文档)
步骤0(可选):获取环境信息(REPOROOT)
何时执行: 若调用方未明确提供 REPOROOT,且后续步骤需要使用绝对路径; 若调用方已提供 REPOROOT,可以跳过。
步骤1:解析与验证需求编号
解析: 从用户输入中解析“需求编号”,支持多种格式: 章节形式: 需求编号 + 下一行 ID(如 TCF-123456)
步骤2:检查当前分支是否匹配需求编号
逻辑: 当前分支名以 <REQUIREMENTID>- 为前缀(不区分大小写)视为匹配; 示例:TCF-123456-feature-name、tcf-123456-fix-bug 等。
# 分支与特性目录管理Skill(branch-management)
## 概览(职责与输入输出)
- **职责**:统一管理基于“需求编号”的分支与特性目录创建/复用流程:
- 解析并验证需求编号(强制要求)
- 根据需求编号检查当前分支是否匹配
- 必要时创建新的特性分支与目录
- **典型调用方**:
- `reverse-on-demand`(按需反构阶段1)
- 其他基于需求编号驱动的命令/Skill
- **输出变量**:
- `REQUIREMENT_ID`:需求编号
- `BRANCH_MATCHES_REQUIREMENT`:布尔值,当前分支是否匹配需求编号
- `BRANCH_NAME`:最终选定/创建的特性分支名称
- `FEATURE_DIR`:特性目录绝对路径(例如 `<REPO_ROOT>/changes/<short-name>/`)
- `TARGET_FILE`:目标文件绝对路径(可选;本流程下允许为空)
- `REPO_ROOT`:仓库根目录(在调用本 Skill 前由调用方提供或通过前置步骤获取)
> 本 Skill 将分支与特性目录管理流程封装为可复用 Skill,可被 reverse-on-demand 等命令/Skill 调用。
## 输入与前置条件
- **输入**:
- 用户输入文本(包含 `$ARGUMENTS` 中的内容),其中需要有“需求编号”信息;
- 调用方可选择是否需要本 Skill 帮助获取 `REPO_ROOT`。
- **前置条件**:
- 需求编号是强制要求:如果未提供需求编号,本 Skill 必须给出中文错误并终止后续流程。
## 核心步骤(对应原命令文档)
### 步骤0(可选):获取环境信息(REPO_ROOT)
- 何时执行:
- 若调用方未明确提供 `REPO_ROOT`,且后续步骤需要使用绝对路径;
- 若调用方已提供 `REPO_ROOT`,可以跳过。
- 操作(跨平台脚本):
- Linux: `bash scripts/bash/check-prerequisites.sh --paths-only --json`
- Windows: `pwsh scripts/powershell/check-prerequisites.ps1 --paths-only --json`
- 从 JSON 输出中解析 `REPO_ROOT`(必须为绝对路径)。
### 步骤1:解析与验证需求编号
- **解析**:
- 从用户输入中解析“需求编号”,支持多种格式:
- 章节形式:`## 需求编号` + 下一行 ID(如 `TCF-123456`)
- 行内形式:`需求编号: TCF-123456`、`MR: TCF-123456`、`Requirement ID: BUG-123456`、`PR: TCF-123456` 等。
- **验证**:
- `REQUIREMENT_ID` 不为 `null`,不为空字符串,去除首尾空白后非空;
- 若验证失败:
- 用中文输出明确错误说明(需求编号是强制要求,并给出格式示例);
- 终止后续分支管理流程。
### 步骤2:检查当前分支是否匹配需求编号
- 逻辑:
- 当前分支名以 `<REQUIREMENT_ID>-` 为前缀(不区分大小写)视为匹配;
- 示例:`TCF-123456-feature-name`、`tcf-123456-fix-bug` 等。
- 输出:
- `BRANCH_MATCHES_REQUIREMENT = true/false`
- 若为 true:默认复用当前分支。
### 步骤3:生成分支简短名称(仅在需要创建新分支时)
- 前提:`BRANCH_MATCHES_REQUIREMENT == false`
- 逻辑:
- 从功能描述中提取 2–4 个关键词,组合成简短英文/拼音短语(如 `user-auth`、`fix-payment-bug`);
… 证据边界与执行链路
作者原文负责流程事实;流狐只索引当前章节、要点、文件与命令。
章节 -> 概览(职责与输入输出) → 输入与前置条件 → 核心步骤(对应原命令文档) → 步骤0(可选):获取环境信息(REPOROOT) → 步骤1:解析与验证需求编号 → 步骤2:检查当前分支是否匹配需求编号
要点 -> 职责 · 典型调用方 · 输出变量 · 输入 · 前置条件 · 解析 · 验证
文件/命令 -> reverse-on-demand · REQUIREMENTID · BRANCHMATCHESREQUIREMENT · BRANCHNAME · FEATUREDIR · <REPOROOT>/changes/<short-name>/ · TARGETFILE · REPOROOT
内容 SHA-256 -> 31fb346e8db0
原文结构
适用与边界
原文中的明确线索
reverse-on-demand、REQUIREMENTID、BRANCHMATCHESREQUIREMENT、BRANCHNAME、FEATUREDIR、<REPOROOT>/changes/<short-name>/、TARGETFILE、REPOROOT