SuperAPI AI 工具集

task-to-pr

编程与开发

查看项目

更新于 10-16 22:42

技能介绍

用途

task-to-pr 是一个将需求端到端推进到代码交付的技能。它覆盖从理解任务、规划、实现、验证、提交、自审、推送分支到创建拉取请求的完整链路。

该技能定位为通用起步技能(generic starter skill)。在真实项目中,应先运行 setup-task-to-pr 进行配置,使本技能能够被本地命令和交付规则充实后再使用。

不适用场景

  • 纯代码审查:应使用 review-pr。
  • 仅提交已完成的既定工作:应使用 commit。
  • 仅对已完成功能做浏览器测试:应使用 test-feature。
  • 用户要求为仓库搭建工作流:应使用 setup-task-to-pr。

交付契约

在打开或标记 PR 就绪之前,需满足以下条件:

  • 需求与假设已被记录。
  • 可能涉及的文件与归属边界已被理解。
  • 非平凡工作有简短计划。
  • 实现覆盖正常路径、重要的异常路径与恢复状态。
  • 相关验证通道已运行,或每条跳过的通道都有记录的原因。
  • 涉及用户可见行为时,具备功能验证证据。
  • 当浏览器/移动端集成行为发生变化时,持久 E2E 覆盖已新增,或已带有理由地有意跳过。
  • 仅暂存和提交任务范围内的文件。
  • 分支适合审查。
  • PR 正文说明问题、变更、测试、边界情况、兼容性、风险与回滚。

使用方式(七个阶段)

第一阶段:理解

阅读用户需求、关联工单、issue、计划或分支上下文。编辑前先检查仓库说明文件,使用如下方式检索:

rg --files -g 'AGENTS.md' -g 'CLAUDE.md' -g 'CONTRIBUTING*' -g 'README*' -g 'docs/**'

若存在项目本地技能,优先阅读相关本地版本:

find .agents/skills .claude/skills .codex/skills -maxdepth 3 -name SKILL.md 2>/dev/null | sort

使用 rg、rg --files 与有针对性的文件阅读来检查可能入口。记录起点:

git status --short
git branch --show-current
git rev-parse --short HEAD

若工作区不干净,需显式跟踪任务范围内被触及的文件,绝不依赖宽泛暂存。仅当歧义会改变实现或造成安全风险时,才提出一个聚焦的问题;否则陈述假设并继续。

第二阶段:规划

对非平凡工作,在项目用于笔记、任务产物或临时文档的位置创建一份简明计划。若不存在此类约定,将计划保留在对话中,或仅在仓库已使用 notes/ 时创建 notes/<slug>-plan.md。

计划应包含:需求与假设;可能变更的文件;实现顺序;计划运行的验证通道(lint、format、typecheck/compile、unit、integration、E2E、build/package、security、accessibility、performance、feature validation 或项目特定检查);功能验证决策;持久 E2E 决策;兼容性与风险说明。

不要对微小编辑过度规划。微小工作可将计划直接放在 PR 正文中。

第三阶段:实现

遵循最具体的项目说明与本地技能指引。保持写入范围狭窄。优先复用既有模式、辅助函数、测试夹具与框架约定。编辑过程中在可用时运行窄范围检查。若工作区存在无关变更,保留一份被触及文件清单。若实现过程暴露出过时说明或缺失工具,在适当情况下于同一变更中修补最窄的持久层。

第四阶段:验证

针对被触及面与风险等级运行最小且有意义的验证。将 lint、typecheck/compile、单元测试、集成测试、E2E 测试、build/package 检查、安全检查、可访问性检查与功能验证视为相互独立的验证通道。

优先使用项目已配置的命令。若项目尚未配置,可探测可能的命令:

npm run
pnpm run
yarn run
npm run test
npm run lint
npm run typecheck
npm run build
pnpm test
pnpm lint
yarn test
pytest
go test ./...
cargo test
mvn test
./gradlew test

在本地 task-to-pr 技能替换之前,使用如下默认验证矩阵:

  • 纯文档:若有则运行文档 lint 或链接检查;否则运行 git diff --check。
  • 格式化/配置:formatter/lint 检查加窄范围配置验证命令。
  • 纯逻辑:lint、typecheck/compile、聚焦单元测试。
  • 共享包/库:lint、typecheck/compile、聚焦单元测试,可行时对受影响消费方做 compile/typecheck。
  • UI 组件或页面:lint、typecheck/compile、可用时单元/组件测试,对可见行为做功能验证。
  • API 路由/服务:lint、typecheck/compile、聚焦单元测试、集成或契约测试。
  • 数据库/模式/迁移:迁移生成/验证、集成测试、回滚或兼容性说明。
  • 认证、权限、计费或安全:聚焦单元与集成测试、功能验证、安全审查说明、负路径检查。
  • 移动应用:lint/typecheck/compile、聚焦单元测试、已配置时做模拟器/设备检查。
  • 桌面应用:compile/package 检查加项目桌面冒烟或集成检查。
  • 依赖/构建工具:install/lockfile 验证、lint/typecheck/build 或可行时的 CI 等效检查。

对每条相关通道,记录:运行的命令;范围(聚焦、特定包/应用或全量套件);结果(通过、失败、部分、阻塞或跳过);命令产生产物时的证据路径;任何跳过或阻塞通道的原因。

除非本地技能或用户明确许可,不要运行昂贵、易抖动、破坏性、影响生产或对外可见的命令。当必需通道不安全或不可用时,记录确切阻塞点与剩余风险。

对于用户可见行为,使用 test-feature 或已配置的对应面测试技能。它应演练真实流程、捕获证据并产出验证报告。在功能验证之后,当行为需要持久回归覆盖时,使用 automate-e2e-tests。仅在具备记录理由时才跳过 E2E,例如已有覆盖、下层测试更合适、无用户可见行为或缺少安全基础设施。

第五阶段:提交与审查

审查差异:

git status --short
git diff -- <task-scoped-files>

若项目期望功能分支,则创建或切换到任务分支。使用 commit 进行范围化提交。若不可用,仅暂存明确的任务文件:

git add <file-1> <file-2>
git commit -m "feat: <summary>"

当变更非平凡、涉及安全或横切多个模块时,使用 review-pr 进行自审。除非用户明确授权确切操作,绝不使用 git add .、git add -A、强制推送、破坏性重置或单方面解决冲突。

第六阶段:拉取请求

仅当项目策略允许时才推送分支:

git push -u origin <branch>

若本地工具有则使用其打开 PR,常见方式:

gh pr create

默认 PR 正文结构:

## Problem

## Requirement

## Changes

## Testing

## Edge Cases

## Compatibility

## Risk and Rollback

## Self-Review

包含验证报告、截图、视频、测试输出或其他证据的链接或路径。

第七阶段:CI 跟进

若在打开或更新 PR 后具备 CI 访问权限:使用项目的 PR 工具或 CI 面板检查必需检查项状态。若检查通过,在收尾中记录。若检查失败,将每个失败归类为产品、测试、环境、依赖、权限或无关的既有失败。修复本任务引入的产品或测试失败,然后在推送更新前本地重跑最窄的相关命令。未经用户批准,不要追查大范围易抖动套件、基础设施、权限或无关失败。记录确切的失败检查与下一步行动。

收尾

报告内容包括:PR URL 或分支名;提交 SHA;已运行命令与结果;适用时的功能验证报告路径;E2E 覆盖是新增、更新、已覆盖、跳过还是阻塞;剩余风险。

来源与自我改进

本技能为 Supatest AI supa-skills task-to-pr v1.0.2 的通用起步版本。需在每个项目中运行 setup-task-to-pr 以创建本地增强版本。若该工作流在真实使用中遗漏了必需的验证关卡、PR 规则、CI 行为或交付产物,应在关闭前修补本技能或已配置的项目本地版本。