用途
Pre-Merge 是一个在生产环境合并变更之前使用的综合验证工作流技能。它适用于以下场景:为评审创建拉取请求、即将把代码合并到 main/生产分支、需要系统性的验证清单、希望在代码评审前发现潜在问题。
主要能力
该技能按阶段提供验证清单:
提交前验证(Pre-Commit)
- 类型检查通过(语言对应命令:tsc --noEmit、mypy 等)
- 代码检查无错误(ESLint、Pylint 等)
- 本地所有现有测试通过
- 代码中无遗留 console.log/debug 语句
- 代码符合项目风格指南
- 无被注释掉的代码块
PR 前验证(Pre-PR)
- 为面向用户的变更添加 changeset(若使用 changesets)
- PR 描述完整,包含变更摘要、相关工单引用(ENG-XXX、HEL-XXX、JIRA-XXX 等)、UI 变更截图(桌面、平板、移动端)、破坏性变更说明、迁移指南、新功能测试、文档更新
- 安全清单(若涉及 API 变更):受保护路由需要认证、实现授权检查、使用 schema 进行输入校验(Zod、Pydantic 等)、日志中无敏感数据、无 SQL 注入、无 XSS 漏洞、考虑限流
- 数据库变更(若涉及 schema 变更):创建迁移文件、在本地和预发数据库测试迁移、提供回滚迁移、无破坏性变更时提供迁移指南、记录 schema 变更
- UI 变更:包含桌面(1920x1080)、平板(768x1024)、移动(375x667)截图,验证响应式行为、无障碍性(键盘导航、屏幕阅读器)、加载状态和错误状态
合并前验证(Pre-Merge)
- CI/CD 检查:所有 CI 检查通过、至少一位评审者批准、变更文件无 TypeScript 错误、与目标分支无合并冲突、构建成功且无警告
- 功能验证:数据库迁移成功运行、现有功能无回归、性能基准在可接受范围、关键路径完成手动测试
- 文档:更新 CHANGELOG.md、API 文档、README、提供迁移指南
使用方式
技能提供按语言划分的命令示例:
TypeScript/JavaScript:npx tsc --noEmit、npm run lint、npm test
Python:mypy src/、pylint src/、pytest
Go:gofmt -l .、golangci-lint run、go test ./...
还提供 PR 描述模板,包含 Summary、Related Tickets、Changes、Testing、Screenshots、Breaking Changes、Migration Guide、Performance Impact、Security Considerations、Rollback Plan、Deployment Notes 等章节。
技能提供快速验证脚本示例(pre-commit.sh),涵盖 JavaScript/TypeScript 与 Python 版本,并说明使用 chmod +x 使其可执行。
自动化方面,提供 Git Hooks 配置:使用 Husky(JavaScript/TypeScript)通过 npm install --save-dev husky、npx husky install、npx husky add 设置提交前检查;使用 pre-commit(Python)创建 .pre-commit-config.yaml 并运行 pre-commit install。
适用场景
适合在功能开发完成、准备提交或合并代码时使用,帮助团队在代码评审前系统性地发现类型错误、检查错误、测试失败、安全问题、迁移风险和文档缺失。
限制
技能本身是清单与流程指引,具体项目是否使用 changesets、Husky、pre-commit 等工具需依据项目实际情况;命令示例需按项目技术栈调整。未提供关于该技能收费、价格或平台支持范围的信息。