提交推送与PR创建技能
完成提交、推送并创建或更新Pull Request,可自动处理分支、PR描述和后续持续跟进。
证据表明技能详细说明了安全实践:避免使用git add -A和git add .以避免意外暂存敏感文件;明确要求用户确认('询问用户'章节和分支创建决策);对存在PR状态未知的情况要求重新检查而非假设;要求使用临时文件传递PR正文防止空内容;对分支冲突等情况要求向用户展示输出而非自动解决。没有发现恶意行为或过度越权。扣分原因:发布者身份未经验证(信任与安全维度扣分),隐私和数据处理未在技能中直接披露(需参考PRIVACY.md),权限和确认机制虽多但未完全涵盖所有外部效果(如网络访问和依赖项安全)。
证据显示技能步骤详细且自洽,有多个条件分支处理异常情况(如detached HEAD、fork checkout、fetch失败等),并明确指示如何处理非零退出状态。提供了多个参考文件(branch-creation、pr-description-writing、stack-submit)以支持关键路径。未发现明显矛盾或错误。扣分原因:静态审查无法执行验证,技能涉及许多外部命令(git, gh)和网络依赖,其实际可靠性未经测试;没有包含针对该技能本身的测试套件或CI覆盖。
技能明确描述了使用场景('Commit, push, and open a PR')和模式(description-only, description-update, full workflow),以及参数(mode:pipeline, archive, branding, babysit)。边界清晰:当用户只想要描述时不执行完整流程。触发性描述明确。环境适配度:技能主要依赖git和gh CLI,以及GitHub平台;对于中国大陆用户,GitHub和gh可能无法直接访问,但技能本身是本地运行的,不依赖海外服务作为核心功能。扣分原因:未明确说明非GitHub环境(如GitLab)的不适用性;触发条件虽明确但依赖用户意图理解,可能引起误触发;未提供中文支持说明,但技能本身是英文的,对中文用户可能有语言障碍(但FollowSkills服务中文用户,此处需注意)。
技能文档结构清晰,有明确的步骤和模式,包含参数说明,引用了参考文件。有描述-说明分离,逐步深入。提供了使用示例(通过描述中的示例)。存在已知限制的披露(如对非零退出状态视为未知而非无PR)。许可证信息来自仓库MIT许可,版本信息在package.json中(3.21.4),但技能本身无版本或变更日志。扣分原因:技能没有独立的版本号和变更日志,依赖仓库级版本;未提供故障排除部分,尽管错误处理详细;维护责任未在技能内明确(仅在README和SECURITY.md中),更新路径依赖整个仓库的更新机制。
基于文档,技能似乎能够完成其核心任务:创建提交、推送、打开PR,并提供了详细指导确保结果正确(如避免git add -A,使用--body-file)。描述中说明输出是PR URL和正文。边际价值:节省了手动操作的时间,并提供一致的PR描述撰写指导。扣分原因:静态审查无法验证实际输出是否直接可用;技能的复杂度高,可能需要调整;替代方案(直接使用git命令)成本不高,技能的边际价值有限但存在。
证据主要来自技能文档本身和仓库元数据(CI, 测试存在),但未发现针对该技能的实际执行测试。CI和测试存在但可能不覆盖技能的关键路径。没有第三方验证记录。声明的主要好处('使每个工程单元更容易')在文档中阐述,但没有独立验证。扣分原因:静态审查无法执行技能;几乎没有独立的可验证证据,只有仓库中的测试存在但可能不针对该技能。
- 发布者身份未经验证,请谨慎安装和使用。
- 技能依赖GitHub的gh CLI和网络,中国大陆用户可能需要代理或替代方案。
- 技能未直接披露隐私数据处理细节,请查阅PRIVACY.md。
- 技能功能强大,可能自动执行提交、推送等操作,请确保在可信环境中使用并理解其行为。
这个 Skill 能做什么,适合哪些场景?
该技能自动化了从本地更改到打开Pull Request的完整Git工作流:检测分支状态、创建特性分支、提交更改、推送,并生成或更新PR描述。它还能处理PR堆栈(stack)、教学文档归档,并在PR创建后自动启动持续跟进(babysitting)直到合并就绪。技能支持多种AI编程工具(Claude Code、Codex、Cursor等),并遵循不同的交互模式(完整流程、仅描述、描述更新)。
运行Git命令(git rev-parse、git status、git branch、git log、git rev-parse --abbrev-ref origin/HEAD)收集仓库上下文;检查现有开放PR(gh pr list);自动创建特性分支(检出新分支);根据规范确定提交和PR标题风格;暂存并提交更改(避免使用git add -A);推送分支(git push -u origin HEAD);生成PR标题和正文,包括价值优先的框架、证据决策和概念教学部分;通过gh pr create或gh pr edit应用PR;可选地将教学文档写入<root>/explainers/;并通过ce-babysit-pr启动PR跟踪。
- 开发者完成了本地更改,希望快速提交、推送并打开PR,无需记住各个Git命令。
- 开发者在已有开放PR的分支上工作,希望推送新提交并更新PR描述。
- 用户希望仅基于给定的PR编号或URL生成PR描述,而不进行任何提交或推送。
- 团队使用PR堆栈管理多个相关逻辑更改,希望自动创建和提交整个堆栈。
- 开发者希望PR合并前由ce-babysit-pr持续监控CI和评审反馈。
这个 Skill 有哪些优点和局限?
- 自动化完整的Git工作流,减少手动步骤和错误。
- 智能处理复杂场景:分离的HEAD、默认分支提交、分叉PR、多所有者同名分支。
- 生成价值优先的PR描述,并可选择添加证据和概念教学部分。
- 与PR后自动跟踪集成,使PR向合并推进。
- 跨多个AI工具(Claude Code、Codex、Cursor等)工作。
- 需要Git和GitHub CLI(gh)已安装并认证。
- 非常复杂,有大量模式和配置选项,可能难以完全掌握。
- 严重依赖GitHub;对GitLab或其他平台的适用性未列出。
- 在未使用兼容插件安装的平台上可能无法正常工作。
- 测试套件在README中未提及;可靠性主要靠文档保证。
如何安装这个 Skill?
由于此技能是Compound Engineering插件的一部分,请按照README中的插件安装说明操作。例如,在Claude Code中:在聊天中输入/plugin marketplace add EveryInc/compound-engineering-plugin,然后输入/plugin install compound-engineering。对于Codex CLI:运行codex plugin marketplace add EveryInc/compound-engineering-plugin,然后运行codex plugin add compound-engineering@compound-engineering-plugin。安装后,技能位于skills/ce-commit-push-pr/SKILL.md。
如何使用这个 Skill?
在支持该插件的AI编程工具中,通过自然语言触发,例如“提交并推送,然后打开PR”。技能会自动处理分支和提交逻辑。对于仅描述流程,可提供PR网址或编号,如“为PR #123写一份描述”。若要跳过PR后自动跟踪,可添加babysit:off;若要强制启用,可使用babysit:continuous或babysit:checkpoint。
这个 Skill 与同类方案有什么区别?
此技能作为Compound Engineering插件的一部分,与插件中的其他技能(如ce-commit、ce-babysit-pr)有明确的区别。它专注于端到端的提交、推送和PR创建,而ce-commit仅处理提交,ce-babysit-pr则在PR创建后负责监控。标准Git工作流或GitHub CLI命令可视为替代方案,但此技能通过自动化上下文决策和集成提供了更全面的解决方案。