跳转至

SOP:新功能从需求到上线

一份能照着跑的实操手册。从需求池到生产环境。


阶段 1:需求收敛 (PM)

1. Notion 调研页 / 钉钉群 / 微信原料
2. Claude Code 跑 czerp-pm/notion-research-distill 提炼
3. 跑 user-story-author 按模板写故事草稿
4. (UI 类)跑 figma-to-axure 出原型
5. PM 自审 → 评审会过审
6. pingcode-sync 上传到 CZKB 故事根目录 + CZPRD 需求池

完成标志:PingCode 上有完整故事页 + 原型链接,关联 CZPRD-X。


阶段 2:计划会拆任务 (PM + Dev + QA + Tech Lead)

1. 评审故事完整性(按 user-story.md 自检 Checklist)
2. Tech Lead 决定是否需要拆子任务 / 跨服务协调
3. 估点(故事点斐波那契 1/2/3/5/8/13)
4. 分配 Dev / QA
5. 在 PingCode CZPRJ 创建 Sprint issue 关联 CZKB 故事
6. QA 当场或会后 24h 内起 testplan-author 测试计划

完成标志:CZPRJ-Sprint 中有 issue,CZTST 中有计划。


阶段 3:开发实现 (Dev)

3.1 拉故事 + 起 OpenSpec

# 在 czerp-api 或对应仓库
cd ~/Documents/CZERP/czerp-api
git checkout -b feature/oms-export-multi-currency-CZPRJ-1024 develop

# Claude Code 中
/user-story-impl CZPRJ-1024
/openspec-new oms-export-multi-currency
# 编辑 proposal.md / tasks.md(按 spec-change.md 模板)

3.2 推敲方案

/brainstorming     # Superpowers — 仅在方案不明时

如果需要选型 / 涉及新中间件,写 design.md 留档。

3.3 TDD 实现

/test-driven-development   # Superpowers

按 验收标准 一条条写失败测试 → 实现 → 测试通过。期间按需引用 czerp-backend/ 各 skill。

3.4 自查 + PR

/pre-pr-review       # czerp 特有
/code-review         # 内置命令,通用检查
/pr-describe         # 生成 PR 描述

git push -u origin feature/oms-export-multi-currency-CZPRJ-1024
# Gitee 上创建 PR,把 /pr-describe 输出贴进去

完成标志:PR 已创建,关联 CZPRJ-1024。


阶段 4:PR Review + 合并 (Gitee + 开发组长)

1. Gitee Go 流水线自动跑(当前仅一个 Maven 编译 stage,mvn package -Dmaven.test.skip=true,跳单测;无 lint/sonar/评审门禁,失败仅飞书/钉钉通知)
2. AI 自动评审(Qodo PR-Agent)在自建 GitLab 对 czerp-demo 试点中,尚未覆盖 Gitee 主仓;主仓暂靠本地 /review、/code-review 自检
3. 开发组长人工复核(主仓当前的实际合并把关)
4. Approve → 合并到 develop

完成标志:PR merged,develop 触发 Jenkins。


阶段 5:CI 构建 + 部署 dev (Jenkins + GitOps)

1. Jenkins 拉代码 / mvn build / docker build / push 镜像
2. Jenkins 直接 commit + push 到 czerp-gitops(main,改 overlays/dev/patch-deployment.yaml 的 image tag)
3. ArgoCD AutoSync → k8s 更新 Pod(业务多为 Recreate;无 PR 人审门,推送后立即自动同步)
4. Pod 健康 → dev 环境就绪

develop 触发 Jenkins → dev 环境(分支映射:develop→dev、release/test→test、release/uat→uat)。

完成标志:dev 环境的 OMS 跑新版本,监控正常。


阶段 6:开发 dev 验证 (Dev)

1. 跑核心 验收标准 在 dev 环境
2. 截图 / 日志保留作为证据
3. 在 PingCode CZPRJ 评论 "dev 验证通过,附证据"
4. 通知 QA 接手

阶段 7:QA 测试 (QA)

1. 拉故事 + 用例
2. 手工跑 P0/P1 用例(dev 环境——故事在 sprint 内位于 dev;test/uat 回归在 T-1 批量提测后,见 03_release)
3. 跑 ai-driven-regression smoke
4. 全部通过 → 在 CZPRJ 评论"测试通过"
5. 有缺陷 → defect-submission → 缺陷库 → 关联开发
   → 开发修复 → 重新走 PR → 再回归

完成标志:CZTST 上测试报告通过,无 Blocker / Critical 缺陷。


阶段 8:上线 uat 准生产验收 (Ops + Dev + PM)

当前无独立 prod 环境,以 uat 作准生产验收;prod 上线为未来规划。

1. PM 决定上线时间窗口
2. 把 release/test 合并到 release/uat → Jenkins 构建 uat 镜像
3. Jenkins 直接 push czerp-gitops(main,改 overlays/uat 镜像 tag),ArgoCD AutoSync 自动同步(无 PR 人审门)
4. 公告钉钉群
5. 同步后跑 uat smoke
6. 5 分钟 / 15 分钟 / 1 小时 / 24 小时观察指标

完成标志:uat 监控正常,PingCode CZPRD 状态置"已上线"。


阶段 9:闭环 (Dev + Tech Lead)

1. openspec archive oms-export-multi-currency
2. PingCode CZPRJ issue 关闭
3. PingCode CZKB 故事页加"已上线"标签
4. Sprint Review 上演示
5. Sprint Retro 复盘

时间预算(典型 5 故事点 / 3 人天的故事)

阶段 估算
需求收敛 + 评审 0.5 - 2 天
计划会拆任务 0.5 小时
开发实现 1.5 天
PR + Review 0.5 天
dev 验证 0.25 天
QA 测试 0.5 - 1 天
上线 + 观察 0.5 - 1 天
总计 3.5 - 6 天

失败回退

任何一个阶段失败:

失败点 回退
OpenSpec proposal 被打回 修正后重新评审,不进入实现
PR review 被打回 修复 → 重新提 commit → 再 review
dev 验证未过 回到实现阶段
QA 测试有 Blocker 关联开发优先修,本故事不进入上线
uat 上线异常 立即回滚 ArgoCD 到上一版(并同步改回 gitops 镜像 tag),再调查根因

回退没有羞耻成本 — 错误尽早暴露 + 修复才是健康节奏。