隔离式 Git 工作区
为功能开发创建隔离工作区,并在开始实现前完成项目设置与基线测试。
技能要求先检测隔离状态并在创建工作树前征得同意,也要求验证项目本地目录是否被忽略;这些措施支持最小化范围和降低污染风险。扣分原因是会自动执行依赖安装、构建和测试,可能产生网络、文件和环境副作用;未说明敏感数据处理、完整回滚/清理流程或命令权限边界。
步骤顺序、子模块保护、原生工具优先和失败时询问用户均较清晰。扣分原因是依赖检测和测试命令较粗略,未覆盖缺少工具、非标准项目、多语言项目、分支冲突或工作树创建失败以外的异常;静态审查不能证明可运行,因此不超过10分。
触发场景明确:开始需要隔离的功能开发或执行计划前;同时说明已在工作树、子模块、用户拒绝和原生工具等分支。扣分原因是对非Git目录、复杂仓库布局、中文用户提示及不同平台命令的适配不足,非适用边界也不完整。
文档分层清楚,包含概览、步骤、快速参考、常见错误和红线;仓库上下文提供MIT许可、版本号及社区维护线索。扣分原因是该技能本身没有变更日志、明确维护责任、更新路径、参数契约或FAQ,且安装/依赖说明依赖仓库级文档。
在典型Git项目中,检测隔离、创建分支工作树、运行初始化和基线测试能够完成核心目标,输出格式也较直接。扣分原因是自动安装和测试策略可能需要人工调整,原生工具可用性无法静态验证,且没有该技能专属的代表性结果或对比证据;静态上限为7分。
命令、决策表和报告模板提供了可审计的静态依据,仓库还包含通用测试材料。扣分原因是提供的测试并非该技能路径的关键路径覆盖,未见独立复现记录或第三方执行证据;静态上限为5分。
- 执行npm install、pip install、poetry install或go mod download可能产生网络和供应链风险;应在受控环境中确认后运行。
- 技能要求在未忽略目录中修改.gitignore并提交,但未提供提交前的额外确认或回滚说明。
- 基线测试命令是概括性示例,可能不适用于非标准项目,失败诊断仍可能转移给用户。
- 发布者未通过FollowSkills企业注册验证,身份按未知处理。
这个 Skill 能做什么,适合哪些场景?
该技能用于在开始功能开发或执行实现计划前,确保工作发生在隔离环境中。它会先检测当前目录是否已经是 Git linked worktree 或子模块,再优先使用平台原生工作区工具。没有原生工具时,它会回退到手动 Git worktree,并执行适用的项目设置和基线测试。它适合需要保护当前分支、并希望在实现前确认测试基线的开发流程。
读取 Git 的工作区、公共 Git 目录、当前分支和超级项目路径,判断当前环境是否已经隔离;在普通仓库中请求创建工作区的许可;优先调用可用的平台原生 worktree 工具,否则验证项目本地 worktree 目录是否被忽略,并运行 git worktree add 创建新分支;根据 package.json、Cargo.toml、requirements.txt、pyproject.toml 或 go.mod 条件执行项目设置;根据项目类型运行 npm test、cargo test、pytest 或 go test ./...,最后报告工作区和测试基线状态。
- 需要在不影响当前分支的情况下开发新功能的个人开发者。
- 准备执行实现计划、希望每项工作从独立分支开始的团队。
- 需要在开始编码前确认现有测试状态的维护者。
- 使用支持原生隔离工作区工具的编码代理,并希望技能优先适配其运行环境的用户。
这个 Skill 有哪些优点和局限?
- 先检测现有 worktree 和子模块状态,避免重复创建隔离环境。
- 优先使用平台原生工具,并提供 Git worktree 回退路径。
- 会验证项目本地 worktree 目录是否被 Git 忽略。
- 在实现前执行项目设置和测试基线检查。
- 普通仓库中创建 worktree 需要用户同意。
- 测试失败时会要求报告并暂停后续流程,可能增加启动时间。
- 只明确覆盖 Node.js、Rust、Python 和 Go 的设置检测。
- 源材料没有提供该单独技能的行为测试结果或独立安装包。
如何安装这个 Skill?
该技能没有单独安装命令。它属于 obra/superpowers 集合,文件路径为 skills/using-git-worktrees/SKILL.md;应按照所用编码代理的安装方式安装整个 Superpowers 集合。README 明确说明不同 harness 需要分别安装。
如何使用这个 Skill?
在需要隔离的功能开发开始前,使用已安装 Superpowers 的编码代理开始任务,例如:“为这个功能创建隔离工作区,然后执行实现计划。”技能会先检测现有隔离状态;如果当前是普通仓库且没有既定偏好,会请求是否创建 worktree。具体触发语法未在源材料中规定。
这个 Skill 与同类方案有什么区别?
它在有原生工作区工具时优先使用原生机制;否则使用手动 Git worktree 作为回退方案。