stage-cicd
Skill2 starsChanged 5 months agoMITView on GitHub
防护网与CI/CD——流水线、自动化、质量门控。阶段子工作流,可独立使用。
- Reads credentials
In this repository26 other files it gives its agents.
- AGENTS.mdAGENTS.md
- code-reviewSkill
- design-reviewSkill
- main-workflowSkill
- okrSkill
- pr-faqSkill
- release-checklistSkill
- release-reviewSkill
- requirement-clarificationSkill
- requirement-reviewSkill
- retro-meetingSkill
- retro-reviewSkill
- six-pagerSkill
- software-project-governanceSkill
- stage-architectureSkill
- stage-developmentSkill
- stage-infraSkill
- stage-initiationSkill
- stage-maintenanceSkill
- stage-operationsSkill
- stage-releaseSkill
- stage-researchSkill
- stage-selectionSkill
- stage-testingSkill
- tech-reviewSkill
- test-reviewSkill
The file
Files
防护网与 CI/CD — 子工作流
本文件定义"防护网与 CI/CD"阶段的独立子工作流。用户可单独加载本文件执行 CI/CD 配置阶段。
阶段目标
建立持续集成和持续部署的自动化防护网。本阶段的核心产出是"稳定的 CI 流水线"——每次代码变更自动触发构建、测试和校验,质量门禁自动生效。
AI 编程场景特有风险
在 AI 辅助编程项目中,CI/CD 阶段存在以下特有风险:
| 风险 | 说明 | 缓解方向 |
| AI 配置过于复杂 | AI 倾向于生成"完备"的 CI 流水线——多阶段并行、矩阵构建、多平台测试,导致 CI 执行时间过长、维护成本高、失败排查困难 | CI 配置必须从最简单的能用的版本开始;新增步骤必须有"当前需要"的理由 |
| 门禁可被绕过 | AI 可能生成看似完整的门禁配置,但实际存在绕过路径(条件跳过、允许手动合并不检查、规则配置过松) | 门禁规则必须逐个验证:尝试绕过(故意违规提交)确认门禁确实拒绝 |
| 缓存策略不当 | AI 可能缓存过于激进(使用了过时的依赖、构建产物未清理)或缓存不足(每次都从零构建、CI 耗时过长) | 缓存策略必须有明确的失效条件;缓存命中率监控;定期全量构建验证 |
| 密钥和敏感信息泄露 | AI 可能在 CI 配置中硬编码密钥、在日志中打印敏感信息、或将 .env 文件暴露给 CI 日志 | CI 配置必须经过密钥扫描;敏感变量必须使用 CI secrets manager;CI 日志禁止打印环境变量 |
| CI 漂移 | AI 在不同会话中修改 CI 配置时逐渐偏离原始设计意图,累积矛盾和不一致(同一份 CI 配置中同时存在 3 种不同风格) | CI 配置修改必须保持风格一致;重大修改必须在 commit message 中说明原因 |
| 门禁指标被优化而非质量被提升 | AI 可能通过编写无意义的测试来达成覆盖率阈值、调低告警灵敏度来减少告警、或拆分大函数来降低复杂度指标——优化了数字但没有提升实际质量 | 门禁指标必须定期审计有效性——覆盖率增长但缺陷发现率不增长 = 门禁被游戏化;审计结果记录到 evidence-log |
独立使用时的目标锚定
当本子工作流被独立加载(非通过
main-workflow.md总入口加载)时,MUST 在执行阶段活动前完成:
- 目标确认:读取
.governance/plan-tracker.md,确认项目立项时定义的量化成功标准 - 偏离检查:对照成功标准,确认 CI/CD 覆盖范围与项目质量目标一致。如发现偏离,MUST 先记录到
.governance/decision-log.md再继续 - 质量底线:质量门禁必须覆盖核心路径且不可被绕过(参考 profile 质量要求)
进入条件
- 测试阶段已完成(G7 通过)
- 有基础 CI 配置(G4 阶段已建立)
活动清单
1. CI 流水线强化
| 活动 | 描述 | 交互边界 | 企业实践 |
| 补全测试步骤 | 单元测试 + 集成测试 + 回归测试全部纳入 CI | 自动执行 | [Google] CI 必须覆盖所有测试类型——不在 CI 里的测试等于不存在 |
| 补全静态分析 | lint + type check + 代码规范检查 + 安全扫描 | 自动执行 | [Google] 静态分析在 CI 中零容忍——警告即错误 |
| 配置构建缓存 | 加速 CI 执行:依赖缓存、构建产物缓存、测试结果缓存 | 自动执行 | [ByteDance] CI 速度 = 开发效率——慢 CI 会让开发者绕过它 |
| 配置并行执行 | 可并行的步骤拆分并行(lint 和 test 同时跑),缩短反馈时间 | 自动执行 | [Google] 快速反馈是 CI 的核心价值——超过 10 分钟的 CI 会被绕过 |
| 验证 CI 稳定性 | 最近 5 次运行成功率 ≥ 80%;失败原因分类(代码问题 vs CI 环境问题) | 需 CI 环境执行 | [Google SRE] CI 失败必须有明确分类——是代码烂还是 CI 烂 |
2. 质量门禁配置
| 活动 | 描述 | 交互边界 | 企业实践 |
| 定义门禁规则 | 覆盖率阈值、lint 零容忍、安全扫描无高危、依赖无已知漏洞 | 自动执行 → 需用户确认 | [华为 IPD] 门禁规则量化——每个规则有具体数字而非"尽量好" |
| 门禁生效验证 | 每个门禁规则逐个验证:尝试违规提交 → 确认被拒绝 | 自动执行:生成违规测试 → 需 CI 环境执行 | [华为蓝军] 门禁不是"配置了就生效"——要故意违规验证 |
| 配置失败通知 | 门禁不通过时通知相关人员(提交者 + reviewer) | 需用户输入:通知渠道 | [Google] 失败通知必须即时且信息充分——让提交者能自行修复 |
| 配置门禁绕过策略 | 紧急情况下的门禁绕过流程:谁可以绕过、需要什么审批、事后必须补什么 | 需用户确认 | [Amazon] 门禁可以被绕过但必须有记录——每次绕过都是一次事后审计 |
3. 自动化测试套件
| 活动 | 描述 | 交互边界 | 企业实践 |
| 核心路径自动化 | 核心功能路径的自动化测试,覆盖关键业务场景 | 自动执行 | [Google] 核心路径覆盖率必须 100%——用户最常用的路径不能手动测 |
| 回归测试套件 | 每次变更自动运行的回归测试,覆盖已修复的 bug | 自动执行 | [Google] 每个已修复的 bug 必须有对应的回归测试——同一个 bug 不会出现两次 |
| 覆盖率报告 | 自动生成并作为门禁依据;区分行覆盖率和分支覆盖率 | 自动执行 | [Google] 覆盖率报告自动生成并在 CI 中可见;覆盖率下降 = 门禁失败 |
| 不稳定测试管理 | 标记并隔离 flaky tests(不稳定测试),防止其阻塞 CI 但不让其丢失 | 自动执行 | [Google] flaky test 自动重试 N 次后隔离,但保留修复任务 |
4. 部署流程文档化
| 活动 | 描述 | 交互边界 | 企业实践 |
| 编写部署文档 | 部署步骤、环境要求、回滚方案、常见问题 | 自动执行 | [Amazon] 部署文档必须由实际执行过的命令生成——能跑出来的才写进去 |
| 部署自动化 | 部署脚本或 CI 部署步骤,一键部署 | 自动执行 | [Google SRE] 部署必须是可编程的——手动步骤是事故的温床 |
| 验证部署可执行 | 在测试环境中实际执行一次部署流程,确认文档步骤可执行 | 需 CI 环境执行 | [Amazon] 不在测试环境跑过的部署文档不叫文档——叫草稿 |
| 环境差异文档化 | 开发/测试/生产环境的差异显式列出(配置、数据、权限) | 自动执行 | [Google SRE] 环境差异必须显式可见——"生产环境不一样"不是意外发现 |
5. 持续监控与告警接入
| 活动 | 描述 | 交互边界 | 企业实践 |
| 接入关键监控指标 | 错误率、延迟(P50/P95/P99)、可用性、资源使用率接入监控系统 | 自动执行 | [Google SRE] 4 大黄金信号是监控的最低配置——缺一不可 |
| 配置告警规则 | 定义告警阈值、通知渠道、告警升级路径(warning→critical→page) | 需用户确认:阈值和通知渠道 | [Google SRE] 告警必须有明确的严重级别和升级路径——不是所有告警都需要半夜叫醒人 |
| 部署后自动验证 | 每次部署后自动执行冒烟测试和关键路径验证,确认服务正常 | 自动执行 | [Amazon] 部署后自动验证——不靠"应该没问题" |
| 定义自动回滚条件 | 错误率超阈值、延迟超阈值、关键路径验证失败 → 自动触发回滚 | 需用户确认:回滚阈值 | [Google SRE] 自动化回滚比手动回滚快 10 倍——人工判断是回滚延迟的根本原因 |
产出物标准
| 产出物 | 格式要求 | 质量标准 | 企业实践来源 |
| CI 配置 | 流水线定义文件 + 门禁规则文件 | 稳定运行(成功率 ≥ 80%);门禁不可绕过(已通过违规测试验证) | [Google] + [华为] |
| 质量门禁 | 门禁规则文件 + 绕过流程文档 | 每个规则可量化判定;绕过有记录和审计 | [华为 IPD] + [Amazon] |
| 自动化测试套件 | 覆盖核心功能路径 + 已修复 bug 的回归测试 | 核心路径覆盖率 100%;flaky tests 已隔离 | [Google] |
| 部署文档 | 步骤可执行 + 环境差异说明 | 在测试环境验证通过;有具体命令和验证方式 | [Amazon] + [Google SRE] |
退出条件
- CI 流水线稳定运行(最近 5 次成功率 ≥ 80%)
- 自动化测试覆盖核心路径(核心路径覆盖率 = 100%)
- 质量门禁生效(每个门禁规则通过违规测试验证)
- 部署流程已文档化且在测试环境验证通过
- CI 平均反馈时间 ≤ 10 分钟
Gate 映射
本阶段对应 G8 — 防护网就绪。
| Gate 检查项 | 对应活动 | 判定标准 | 自动化判定 |
| CI 流水线是否稳定运行? | CI 流水线强化 | 最近 5 次运行成功率 ≥ 80% | 可自动:解析 CI 运行记录 |
| 自动化测试是否覆盖核心路径? | 自动化测试套件 | 核心路径列表与设计文档功能模块对应,覆盖率 ≥ 阈值 | 可自动:覆盖率报告解析 + 功能模块对照 |
| 质量门禁是否生效? | 质量门禁配置 | 每个门禁规则通过违规测试验证,不可绕过 | 半自动:规则文件存在可自动;绕过验证需人工确认 |
| 部署流程是否文档化且可执行? | 部署流程文档化 | 部署文档在测试环境验证通过,步骤可执行 | 半自动:文档存在可自动;可执行性需验证记录 |
| CI 反馈时间是否可接受? | CI 流水线强化 | 平均反馈时间 ≤ 10 分钟 | 可自动:解析 CI 执行时间 |
| flaky tests 是否已管理? | 自动化测试套件 | 不稳定测试已标记隔离,有修复任务 | 可自动:检查 flaky test 标签 + 关联任务 |
企业实践溯源
本子工作流的设计参考了以下企业实践,每条实践已映射到具体活动步骤:
| 企业 | 核心实践 | 映射到本工作流 |
| CI 覆盖所有测试类型 + 零容忍静态分析 | CI 流水线强化→lint/type check/安全扫描全部纳入 CI | |
| 快速反馈(≤10 分钟) | CI 流水线强化→并行执行;退出条件→CI 反馈时间 ≤10 分钟 | |
| 100% 核心路径覆盖 + 回归测试保底 | 自动化测试套件→核心路径覆盖率 100%;每个 bug 有回归测试 | |
| Flaky test 隔离 | 自动化测试套件→不稳定测试标记隔离,不阻塞 CI | |
| Google SRE | 部署可编程 + 环境差异显式化 | 部署流程文档化→部署必须自动化;环境差异文档化 |
| Amazon | 门禁绕过有记录和审计 | 质量门禁配置→紧急绕过流程 + 事后审计 |
| Amazon | 实际执行过的才写进文档 | 部署流程文档化→在测试环境验证通过后才算文档完成 |
| 华为 | IPD 门控量化评分 | 质量门禁配置→每个规则有具体数字,不可模糊通过 |
| 华为 | 蓝军验证(门禁违规测试) | 质量门禁配置→故意违规确认门禁确实拒绝 |
| ByteDance | CI 速度 = 开发效率 | CI 流水线强化→缓存 + 并行;慢 CI = 被绕过的 CI |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

