从需求 → PRD 设计 → 技术方案设计 → API 接口开发 → AI Coding → Unit Test → 集成测试 → CI/Jenkins + Docker + K8S 自动部署 → UI 自动化测试验收
全流程自动化研发系统 · 中间研发节点支持人机协同 · 各研发角色岗位 Agents 配置指南
本系统是基于 OpenClaw(AI Agent 运行时框架) + Claude Code(智能编码助手) 构建的端到端研发自动化平台,实现了从需求分析到生产部署的全流程自动化。
| 模块名称 | 功能描述 | 关键技术 |
|---|---|---|
| Task Planner | 任务规划器,负责任务拆解和执行路径规划 | LLM 推理 + 规则引擎 |
| Agent Runtime | 智能体运行时环境,提供持续执行、工具调用、状态管理能力 | 异步事件循环 + 状态机 |
| Memory System | 长期记忆系统,存储用户偏好、历史任务、项目上下文 | 向量数据库 + 知识图谱 |
| Tool Executor | 工具执行器,支持文件操作、浏览器自动化、代码执行等 | Sandbox + Puppeteer |
| Plugin Framework | 插件框架,支持自定义技能和扩展功能 | 动态加载 + 热更新 |
由于系统需要获取系统级操作权限,请务必注意以下安全事项:
本系统模拟真实研发团队的组织架构,为每个关键岗位配置专用的 AI Agent。以下是各角色的详细职责说明和配置方法。
岗位角色: 产品经理 / 需求分析师
/plan-ceo-review
岗位角色: 系统架构师 / 技术负责人
/plan-eng-review
岗位角色: 后端开发工程师
/backend-dev
岗位角色: 前端开发工程师
/frontend-dev
岗位角色: 测试工程师 / 质量保障
/browse
岗位角色: DevOps 工程师 / SRE
/ship
岗位角色: 安全工程师
/security-scan
岗位角色: 资深工程师 / 代码审查员
/review
以下是各 Agent 的标准配置模板,保存在 .claude/commands/ 目录下:
# .claude/commands/product-owner.md
---
name: product-owner
description: 产品经理角色,负责需求分析和 PRD 文档生成
model: claude-sonnet-4-20250514
temperature: 0.7
max_tokens: 8000
---
# 角色设定
你是一位经验丰富的产品经理,擅长将模糊的业务需求转化为清晰的产品需求文档(PRD)。
## 工作流程
1. **需求收集**:与利益相关者沟通,收集原始需求
2. **需求分析**:识别核心痛点和业务目标
3. **用户故事**:编写 As a... I want... So that... 格式的用户故事
4. **PRD 输出**:生成包含以下内容的 PRD 文档:
- 产品愿景与目标
- 功能需求清单
- 非功能需求(性能、安全、可用性)
- 用户流程图
- 原型草图描述
- 验收标准
## 输出格式
请以 Markdown 格式输出 PRD 文档,并使用以下结构:
- 1. 产品概述
- 2. 目标用户
- 3. 功能需求
- 4. 技术约束
- 5. 成功指标
## 人机协同点
在以下节点需要人工确认:
- [ ] 需求优先级排序
- [ ] MVP 范围界定
- [ ] 关键业务流程确认
# .claude/commands/system-architect.md
---
name: system-architect
description: 系统架构师角色,负责技术方案设计
model: claude-opus-4-20250514
temperature: 0.5
max_tokens: 12000
---
# 角色设定
你是一位资深系统架构师,拥有 10+ 年大型分布式系统设计经验。
## 工作流程
1. **需求理解**:深入理解 PRD 中的功能和非功能需求
2. **技术选型**:根据需求选择合适的技术栈
3. **架构设计**:设计系统整体架构,包括:
- 微服务划分
- 数据流设计
- API 网关策略
- 缓存策略
- 数据库选型
4. **风险评估**:识别潜在的技术风险和应对方案
## 输出产物
- 系统架构图(Mermaid 格式)
- 技术栈选型说明
- 数据库 ER 图
- API 接口规范初稿
- 部署架构建议
## 人机协同点
在以下节点需要人工确认:
- [ ] 核心技术栈选择
- [ ] 微服务边界划分
- [ ] 关键技术方案评审
claude /plan-ceo-review "我们需要一个在线商城系统,支持用户注册、商品浏览、购物车、订单管理、支付功能"
请帮我分析这个需求的核心用户场景,并列出 MVP 版本应该包含的功能清单
请基于我们的讨论,生成完整的 PRD 文档,包括用户故事、功能需求、验收标准
在关键决策点进行人工确认:
docs/prd/online_mall_prd_v1.0.md - 产品需求文档docs/prd/user_stories.md - 用户故事清单docs/prd/acceptance_criteria.md - 验收标准claude /plan-eng-review "请基于 PRD 文档,设计在线商城系统的整体技术架构"
请设计后端微服务架构,包括:
- 用户服务、商品服务、订单服务、支付服务的划分
- 数据库选型(MySQL vs PostgreSQL)
- 缓存策略(Redis)
- 消息队列(RabbitMQ/Kafka)
- API 网关设计
请设计前端技术架构,包括:
- React/Vue/Angular 选型
- 状态管理方案(Redux/Zustand)
- 组件库选择(Ant Design/Material UI)
- 构建工具(Vite/Webpack)
- SSR/SSG策略
请用 Mermaid 语法生成系统架构图、数据流图、部署架构图
docs/architecture/backend_architecture.md - 后端架构设计docs/architecture/frontend_architecture.md - 前端架构设计docs/architecture/system_diagrams.md - 系统架构图集docs/architecture/database_schema.md - 数据库设计claude /api-design "请基于技术方案,设计完整的 RESTful API 接口规范"
请定义以下资源的 API 接口:
- User(用户)
- Product(商品)
- Cart(购物车)
- Order(订单)
- Payment(支付)
请生成符合 OpenAPI 3.0 规范的 YAML 文件,包含所有接口的请求/响应 schema
请基于 OpenAPI 规范生成 Mock Server 配置,用于前端并行开发
docs/api/openapi_spec.yaml - OpenAPI 3.0 规范文件docs/api/api_design_guide.md - API 设计规范文档mocks/server_config.json - Mock Server 配置docs/api/response_examples.md - 响应示例集claude /backend-dev "请基于 API 规范,实现用户服务和商品服务的后端代码"
请使用以下技术栈生成代码:
- 语言:Python 3.12 / Node.js 20
- 框架:FastAPI / Express
- ORM:SQLAlchemy / Prisma
- 测试:pytest / Jest
- 容器化:Docker
claude /frontend-dev "请基于 API 规范和设计稿,实现在线商城的前端页面"
请使用以下技术栈生成代码:
- 框架:React 18 + TypeScript
- 状态管理:Zustand
- UI 库:Ant Design
- 构建工具:Vite
- 测试:Vitest + React Testing Library
backend/src/ - 后端源代码frontend/src/ - 前端源代码backend/tests/ - 后端测试代码frontend/__tests__/ - 前端测试代码claude /tdd "请为已生成的代码编写全面的单元测试"
请为以下模块编写单元测试:
- Service 层业务逻辑
- Repository 层数据访问
- Controller 层 API 接口
- 覆盖率达到 90% 以上
请为以下组件编写单元测试:
- 页面组件渲染
- 用户交互逻辑
- 状态管理正确性
- 边界条件处理
cd backend && pytest --cov=src --cov-report=html
cd frontend && npm run test:coverage
backend/tests/unit/ - 后端单元测试文件frontend/__tests__/unit/ - 前端单元测试文件reports/coverage/backend/ - 后端覆盖率报告reports/coverage/frontend/ - 前端覆盖率报告claude /integration-test "请编写集成测试用例,验证服务间调用正常"
请测试以下场景:
- 用户注册 → 登录 → 浏览商品 → 加入购物车 → 下单 → 支付
- 异常流程:库存不足、支付失败、网络超时
claude /browse "请使用持久化 Chromium 浏览器进行端到端测试"
请执行以下 E2E 测试:
- 自动登录系统
- 完整购物流程
- 截屏记录关键步骤
- 检查 console 报错
- 验证交互逻辑
tests/integration/ - 集成测试文件tests/e2e/ - E2E 测试文件reports/e2e/screenshots/ - E2E 测试截图reports/e2e/video/ - E2E 测试录像本系统在关键决策节点设计了人机协同机制,确保 AI 自动化效率与人类专业判断的完美结合。
| 研发阶段 | 协同节点 | 人类职责 | AI 职责 |
|---|---|---|---|
| 需求分析 | MVP 范围界定 | 确定优先级和业务目标 | 整理需求、生成文档 |
| 架构设计 | 技术栈选型 | 最终决策和技术评审 | 提供方案对比和建议 |
| API 设计 | 接口规范评审 | 确认业务语义和边界 | 生成规范文档和 Mock |
| 代码开发 | 核心算法实现 | 审核关键逻辑正确性 | 生成基础代码和样板 |
| 测试验证 | 验收标准确认 | 定义业务验收标准 | 执行测试和生成报告 |
| 部署上线 | 发布审批 | 最终发布决策 | 自动化部署和回滚 |
# 1. AI 自动生成 PR
claude /ship "请将 feature/user-auth 分支合并到 main,并创建 Release"
# 2. 系统自动生成以下内容:
- Pull Request 描述
- 变更影响分析
- 测试覆盖率报告
- 性能基准对比
# 3. 人类审核者收到通知后:
- 查看代码变更 Diff
- 审查 AI 生成的测试报告
- 确认无重大风险
- 批准合并或提出修改意见
# 4. AI 根据反馈自动修复问题
claude /fix "请根据 Code Review 意见修复以下问题:..."
# .github/workflows/quality-gate.yml
quality_gates:
code_coverage:
min_percentage: 90
blocking: true
security_scan:
max_critical: 0
max_high: 0
blocking: true
performance_test:
max_response_time_ms: 200
blocking: false
human_review:
required_for:
- "database_schema_changes"
- "api_breaking_changes"
- "security_sensitive_code"
# 开启 Pair Programming 模式
claude --pair-programming
# 开发者描述需求
"我需要实现一个用户认证中间件,支持 JWT 和 Session 两种方式"
# AI 开始编写代码,开发者可以实时打断
claude: "正在生成 JWT 验证逻辑..."
developer: "等一下,我们需要先检查 token 是否在黑名单中"
claude: "明白,我会在验证前添加黑名单检查逻辑"
# 开发者可以随时接管
developer: "这部分我来写,你继续生成单元测试"
# 遇到 Bug 时
claude /debug "登录接口返回 500 错误,请帮我诊断"
# AI 自动执行以下操作:
1. 查看错误日志
2. 分析堆栈跟踪
3. 复现问题
4. 定位根因
5. 提出修复方案
# 人类确认修复方案
developer: "这个修复方案会影响性能,有没有更好的方案?"
claude: "理解,我可以提供另一种基于缓存的优化方案..."
// Jenkinsfile
pipeline {
agent any
options {
buildDiscarder(logRotator(numToKeepStr: '10'))
timeout(time: 1, unit: 'HOURS')
timestamps()
}
environment {
DOCKER_REGISTRY = 'registry.example.com'
K8S_CLUSTER = 'production'
APP_NAME = 'online-mall'
}
stages {
stage('Checkout') {
steps {
checkout scm
script {
env.GIT_COMMIT_SHORT = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim()
}
}
}
stage('Code Quality') {
parallel {
stage('Lint Backend') {
steps {
dir('backend') {
sh 'pip install flake8 mypy'
sh 'flake8 src/'
sh 'mypy src/'
}
}
}
stage('Lint Frontend') {
steps {
dir('frontend') {
sh 'npm ci'
sh 'npm run lint'
}
}
}
}
}
stage('Unit Tests') {
parallel {
stage('Backend Tests') {
steps {
dir('backend') {
sh 'pytest --cov=src --cov-report=xml --junitxml=pytest-report.xml'
}
}
post {
always {
junit 'backend/pytest-report.xml'
publishCoverage adapters: [coberturaAdapter('backend/coverage.xml')]
}
}
}
stage('Frontend Tests') {
steps {
dir('frontend') {
sh 'npm run test:coverage -- --reporters=default --reporters=jest-junit'
}
}
}
}
}
stage('Integration Tests') {
steps {
sh 'docker-compose -f docker-compose.test.yml up --abort-on-container-exit'
}
post {
always {
sh 'docker-compose -f docker-compose.test.yml down'
}
}
}
stage('Security Scan') {
steps {
sh 'trivy fs --severity CRITICAL,HIGH --exit-code 1 .'
sh 'sonar-scanner -Dsonar.projectKey=${APP_NAME}'
}
}
stage('Build Docker Images') {
steps {
script {
docker.build("${DOCKER_REGISTRY}/${APP_NAME}-backend:${GIT_COMMIT_SHORT}", 'backend')
docker.build("${DOCKER_REGISTRY}/${APP_NAME}-frontend:${GIT_COMMIT_SHORT}", 'frontend')
}
}
}
stage('Push to Registry') {
when {
branch 'main'
}
steps {
script {
docker.withRegistry("https://${DOCKER_REGISTRY}", 'docker-registry-credentials') {
docker.image("${DOCKER_REGISTRY}/${APP_NAME}-backend:${GIT_COMMIT_SHORT}").push()
docker.image("${DOCKER_REGISTRY}/${APP_NAME}-frontend:${GIT_COMMIT_SHORT}").push()
docker.image("${DOCKER_REGISTRY}/${APP_NAME}-backend:${GIT_COMMIT_SHORT}").push('latest')
docker.image("${DOCKER_REGISTRY}/${APP_NAME}-frontend:${GIT_COMMIT_SHORT}").push('latest')
}
}
}
}
stage('Deploy to K8S') {
when {
branch 'main'
}
steps {
script {
sh '''
kubectl config use-context ${K8S_CLUSTER}
envsubst < k8s/deployment.yaml | kubectl apply -f -
envsubst < k8s/service.yaml | kubectl apply -f -
envsubst < k8s/ingress.yaml | kubectl apply -f -
'''
}
}
}
stage('Smoke Tests') {
steps {
sh 'npm run test:smoke -- --base-url=https://mall.example.com'
}
}
stage('Notify') {
steps {
script {
if (currentBuild.result == 'SUCCESS') {
slackSend(color: 'good', message: "✅ 部署成功:${APP_NAME} v${GIT_COMMIT_SHORT}")
} else {
slackSend(color: 'danger', message: "❌ 部署失败:${APP_NAME} v${GIT_COMMIT_SHORT}")
}
}
}
}
}
post {
always {
cleanWs()
}
failure {
script {
sh 'kubectl rollout undo deployment/${APP_NAME}-backend'
sh 'kubectl rollout undo deployment/${APP_NAME}-frontend'
}
}
}
}
# backend/Dockerfile
FROM python:3.12-slim as builder
WORKDIR /app
# 安装依赖
COPY requirements.txt .
RUN pip install --no-cache-dir --user -r requirements.txt
# 构建阶段
FROM python:3.12-slim
WORKDIR /app
# 复制已安装的包
COPY --from=builder /root/.local /root/.local
# 复制源代码
COPY src/ ./src/
COPY tests/ ./tests/
# 环境变量
ENV PATH=/root/.local/bin:$PATH
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
# 健康检查
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD python -c "import requests; requests.get('http://localhost:8000/health')"
# 非 root 用户运行
RUN useradd -m -u 1000 appuser && chown -R appuser:appuser /app
USER appuser
EXPOSE 8000
CMD ["uvicorn", "src.main:app", "--host", "0.0.0.0", "--port", "8000"]
# frontend/Dockerfile
FROM node:20-alpine as builder
WORKDIR /app
# 复制 package 文件
COPY package*.json ./
RUN npm ci
# 复制源代码并构建
COPY . .
RUN npm run build
# 生产镜像
FROM nginx:alpine
# 复制构建产物
COPY --from=builder /app/dist /usr/share/nginx/html
# 复制 nginx 配置
COPY nginx.conf /etc/nginx/conf.d/default.conf
# 健康检查
HEALTHCHECK --interval=30s --timeout=5s --retries=3 \
CMD wget --quiet --tries=1 --spider http://localhost/ || exit 1
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
# docker-compose.yml
version: '3.8'
services:
backend:
build:
context: ./backend
dockerfile: Dockerfile
ports:
- "8000:8000"
environment:
- DATABASE_URL=postgresql://postgres:password@db:5432/mall
- REDIS_URL=redis://redis:6379
- ENVIRONMENT=development
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
volumes:
- ./backend/src:/app/src
- ./backend/tests:/app/tests
command: uvicorn src.main:app --reload --host 0.0.0.0 --port 8000
frontend:
build:
context: ./frontend
dockerfile: Dockerfile.dev
ports:
- "3000:3000"
environment:
- VITE_API_URL=http://localhost:8000
- NODE_ENV=development
volumes:
- ./frontend/src:/app/src
- ./frontend/public:/app/public
depends_on:
- backend
db:
image: postgres:15-alpine
environment:
- POSTGRES_DB=mall
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=password
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redis_data:/data
volumes:
postgres_data:
redis_data:
# k8s/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: online-mall-backend
namespace: production
labels:
app: online-mall
component: backend
spec:
replicas: 3
selector:
matchLabels:
app: online-mall
component: backend
template:
metadata:
labels:
app: online-mall
component: backend
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8000"
spec:
containers:
- name: backend
image: registry.example.com/online-mall-backend:${GIT_COMMIT}
ports:
- containerPort: 8000
name: http
env:
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: db-credentials
key: url
- name: REDIS_URL
value: "redis://redis-cluster:6379"
- name: ENVIRONMENT
value: "production"
resources:
requests:
memory: "512Mi"
cpu: "250m"
limits:
memory: "1Gi"
cpu: "500m"
livenessProbe:
httpGet:
path: /health
port: 8000
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 8000
initialDelaySeconds: 5
periodSeconds: 5
volumeMounts:
- name: logs
mountPath: /app/logs
volumes:
- name: logs
emptyDir: {}
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchLabels:
app: online-mall
component: backend
topologyKey: kubernetes.io/hostname
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: online-mall-frontend
namespace: production
labels:
app: online-mall
component: frontend
spec:
replicas: 3
selector:
matchLabels:
app: online-mall
component: frontend
template:
metadata:
labels:
app: online-mall
component: frontend
spec:
containers:
- name: frontend
image: registry.example.com/online-mall-frontend:${GIT_COMMIT}
ports:
- containerPort: 80
name: http
resources:
requests:
memory: "256Mi"
cpu: "100m"
limits:
memory: "512Mi"
cpu: "200m"
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 10
periodSeconds: 10
readinessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 5
periodSeconds: 5
# k8s/service.yaml
apiVersion: v1
kind: Service
metadata:
name: online-mall-backend
namespace: production
spec:
selector:
app: online-mall
component: backend
ports:
- port: 8000
targetPort: 8000
protocol: TCP
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
name: online-mall-frontend
namespace: production
spec:
selector:
app: online-mall
component: frontend
ports:
- port: 80
targetPort: 80
protocol: TCP
type: ClusterIP
---
# k8s/ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: online-mall-ingress
namespace: production
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/rate-limit: "100"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
tls:
- hosts:
- mall.example.com
secretName: mall-tls-secret
rules:
- host: mall.example.com
http:
paths:
- path: /api
pathType: Prefix
backend:
service:
name: online-mall-backend
port:
number: 8000
- path: /
pathType: Prefix
backend:
service:
name: online-mall-frontend
port:
number: 80
# kubesphere-pipeline.yaml
apiVersion: devops.kubesphere.io/v1alpha3
kind: Pipeline
metadata:
name: online-mall-pipeline
namespace: demo-project
spec:
pipelineConfig:
type: Jenkinsfile
jenkinsfile: |-
pipeline {
agent {
kubernetes {
yaml '''
kind: Pod
metadata:
name: maven-pod
spec:
containers:
- name: maven
image: maven:3.8-openjdk-17
command:
- cat
tty: true
- name: docker
image: docker:24-dind
securityContext:
privileged: true
- name: kubectl
image: bitnami/kubectl:latest
command:
- cat
tty: true
'''
}
}
stages {
stage('Build') {
steps {
container('maven') {
sh 'mvn clean package -DskipTests'
}
}
}
stage('Deploy') {
steps {
container('kubectl') {
sh 'kubectl apply -f k8s/'
}
}
}
}
}
triggers:
- cron:
cron: 'H 2 * * *' # 每天凌晨 2 点自动构建
- webhook:
github:
events:
- push
- pull_request
# monitoring/prometheus-config.yaml
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: online-mall-monitor
namespace: production
labels:
app: online-mall
spec:
selector:
matchLabels:
app: online-mall
endpoints:
- port: http
interval: 30s
path: /metrics
namespaceSelector:
matchNames:
- production
---
# 告警规则
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: online-mall-alerts
namespace: production
spec:
groups:
- name: online-mall.rules
rules:
- alert: HighErrorRate
expr: |
sum(rate(http_requests_total{job="online-mall",status=~"5.."}[5m]))
/ sum(rate(http_requests_total{job="online-mall"}[5m])) > 0.05
for: 5m
labels:
severity: critical
annotations:
summary: "高错误率告警"
description: "服务 {{ $labels.instance }} 错误率超过 5%"
- alert: HighLatency
expr: |
histogram_quantile(0.95,
sum(rate(http_request_duration_seconds_bucket{job="online-mall"}[5m]))
by (le, instance)) > 1
for: 5m
labels:
severity: warning
annotations:
summary: "高延迟告警"
description: "服务 {{ $labels.instance }} P95 延迟超过 1 秒"
- alert: PodCrashLooping
expr: |
rate(kube_pod_container_status_restarts_total{namespace="production"}[15m]) > 0
for: 5m
labels:
severity: critical
annotations:
summary: "Pod 频繁重启"
description: "Pod {{ $labels.pod }} 在频繁重启"
# 导入 Grafana Dashboard
# Dashboard ID: online-mall-overview
{
"dashboard": {
"title": "Online Mall 监控大盘",
"panels": [
{
"title": "QPS",
"targets": [
{
"expr": "sum(rate(http_requests_total{job=\"online-mall\"}[5m]))"
}
]
},
{
"title": "P95 延迟",
"targets": [
{
"expr": "histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket{job=\"online-mall\"}[5m])) by (le))"
}
]
},
{
"title": "错误率",
"targets": [
{
"expr": "sum(rate(http_requests_total{job=\"online-mall\",status=~\"5..\"}[5m])) / sum(rate(http_requests_total{job=\"online-mall\"}[5m]))"
}
]
},
{
"title": "Pod CPU 使用率",
"targets": [
{
"expr": "sum(rate(container_cpu_usage_seconds_total{namespace=\"production\",pod=~\"online-mall.*\"}[5m])) by (pod)"
}
]
},
{
"title": "Pod 内存使用率",
"targets": [
{
"expr": "sum(container_memory_usage_bytes{namespace=\"production\",pod=~\"online-mall.*\"}) by (pod)"
}
]
}
]
}
}
某电商公司需要在 2 周内上线一个最小可行产品(MVP)在线商城,支持用户注册登录、商品浏览、购物车、下单支付等核心功能。
| 时间 | 阶段 | 参与 Agents | 产出物 |
|---|---|---|---|
| Day 1 AM | 需求分析 | Product Owner Agent | PRD 文档、用户故事 |
| Day 1 PM | 架构设计 | System Architect Agent | 技术方案、架构图 |
| Day 2 AM | API 设计 | API Design Agent | OpenAPI 规范、Mock Server |
| Day 2 PM - Day 5 | 代码开发 | Backend + Frontend Agents | 完整源代码 |
| Day 6 | 测试 | QA + E2E Agents | 测试报告、Bug 清单 |
| Day 7 AM | 修复与优化 | All Agents | 修复后的代码 |
| Day 7 PM | 部署上线 | DevOps Agent | 生产环境运行系统 |
# === Day 1: 需求与架构 ===
# 启动 Product Owner Agent
claude /plan-ceo-review "创建一个在线商城 MVP,核心功能:用户注册登录、商品展示、购物车、下单支付"
# 生成 PRD
claude "请生成详细的 PRD 文档,包括用户故事和验收标准"
# 启动 Architect Agent
claude /plan-eng-review "基于 PRD,设计技术架构,要求:
- 后端:Python FastAPI + PostgreSQL
- 前端:React + TypeScript
- 部署:Docker + K8S
- 日活目标:10 万用户"
# === Day 2: API 设计 ===
# 生成 API 规范
claude /api-design "生成完整的 RESTful API 规范,包含用户、商品、购物车、订单、支付模块"
# 启动 Mock Server
claude "基于 OpenAPI 规范启动 Mock Server,供前端并行开发"
# === Day 2-5: 代码开发 ===
# 后端开发
claude /backend-dev "实现用户服务和商品服务,包含:
- JWT 认证
- CRUD 接口
- 数据验证
- 错误处理
- 日志记录"
# 前端开发
claude /frontend-dev "实现商城前端页面:
- 首页商品展示
- 商品详情页
- 购物车页面
- 结算页面
- 用户中心"
# === Day 6: 测试 ===
# 单元测试
claude /tdd "为所有服务编写单元测试,覆盖率要求 90%+"
# 集成测试
claude /integration-test "测试完整购物流程:注册→登录→浏览→加购→下单→支付"
# E2E 测试
claude /browse "使用浏览器自动化测试 UI 流程,截图记录关键步骤"
# === Day 7: 部署 ===
# 代码审查
claude /review "进行最终代码审查,检查安全性和性能问题"
# 安全扫描
claude /security-scan "进行全面的安全漏洞扫描"
# 部署上线
claude /ship "部署到生产环境,配置监控和告警"
| 指标 | 传统模式 | AI 自动化模式 | 提升倍数 |
|---|---|---|---|
| 需求到 PRD | 2-3 天 | 2-3 小时 | 8x |
| 技术方案设计 | 3-5 天 | 0.5-1 天 | 5x |
| 代码开发 | 2-4 周 | 3-5 天 | 4x |
| 测试用例编写 | 3-5 天 | 0.5-1 天 | 5x |
| 部署配置 | 2-3 天 | 2-3 小时 | 8x |
| 整体交付周期 | 6-8 周 | 1-2 周 | 4x |
A: 通过多层质量保障机制:
A: 采用人机协作模式:
A: Jenkins 流水线配置了自动回滚机制:
A: 建立技术债务管理机制:
A: 分阶段推进转型:
| 命令 | 功能描述 | 适用场景 |
|---|---|---|
/plan-ceo-review |
产品经理模式,需求分析和 PRD 生成 | 项目启动阶段 |
/plan-eng-review |
架构师模式,技术方案设计 | 架构设计阶段 |
/backend-dev |
后端开发模式,API 实现 | 后端编码阶段 |
/frontend-dev |
前端开发模式,UI 实现 | 前端编码阶段 |
/tdd |
测试驱动开发,生成单元测试 | 测试编写阶段 |
/integration-test |
集成测试,验证服务间调用 | 集成测试阶段 |
/browse |
浏览器自动化,E2E 测试 | UI 测试阶段 |
/review |
代码审查,质量检查 | Code Review 阶段 |
/security-scan |
安全扫描,漏洞检测 | 安全审计阶段 |
/ship |
发布工程师,自动化部署 | 部署上线阶段 |
/retro |
工程复盘,生成迭代报告 | 项目复盘阶段 |
/multi-plan |
多 Agent 协同规划 | 复杂任务拆解 |
project-root/
├── .claude/
│ ├── commands/
│ │ ├── product-owner.md
│ │ ├── system-architect.md
│ │ ├── backend-dev.md
│ │ ├── frontend-dev.md
│ │ ├── tdd.md
│ │ ├── integration-test.md
│ │ ├── browse.md
│ │ ├── review.md
│ │ ├── security-scan.md
│ │ └── ship.md
│ └── settings.json
├── docs/
│ ├── prd/
│ ├── architecture/
│ └── api/
├── backend/
│ ├── src/
│ ├── tests/
│ ├── Dockerfile
│ └── requirements.txt
├── frontend/
│ ├── src/
│ ├── __tests__/
│ ├── Dockerfile
│ └── package.json
├── tests/
│ ├── integration/
│ └── e2e/
├── k8s/
│ ├── deployment.yaml
│ ├── service.yaml
│ └── ingress.yaml
├── monitoring/
│ ├── prometheus-config.yaml
│ └── grafana-dashboard.json
├── Jenkinsfile
├── docker-compose.yml
└── README.md
文档版本: v1.0 | 最后更新: 2026 年 3 月 14 日
适用版本: OpenClaw v2026.3 + Claude Code v1.0
维护团队: AI Software Factory 研发团队
🚀 让 AI 成为你的超级研发助手,释放创造力,专注价值创新!