pm-selfcheck
Use when: 需要检查super-pm skills健康状态、定期维护审计、验证元数据完整性 Do NOT use when: 正在使用某个功能skill、仅需执行产品管理任务
Use when: 风险管控完成后准备上线发布、需要制定上线检查清单与回滚方案、正式发版流程 Do NOT use when: 上线流程已标准化且由运维自动化执行、仅需简单发布无需检查清单
$ npx -y skills add konglong87/superPM --skill pm-release --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/pm-releaseContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when: 风险管控完成后准备上线发布、需要制定上线检查清单与回滚方案、正式发版流程 Do NOT use when: 上线流程已标准化且由运维自动化执行、仅需简单发布无需检查清单
name: pm-release description: | Use when: 风险管控完成后准备上线发布、需要制定上线检查清单与回滚方案、正式发版流程 Do NOT use when: 上线流程已标准化且由运维自动化执行、仅需简单发布无需检查清单 allowed-tools: - Agent - Read - Write - AskUserQuestion - Bash
bash "$(dirname "${BASH_SOURCE[0]}")/../../check-update.sh" 2>/dev/null || true
mkdir -p docs/04-风控管理
echo "🚀 上线执行方案制定工具已启动"---
当流程要求与用户交互时:
1. 如果当前环境支持 AskUserQuestion,使用 AskUserQuestion(最佳体验)。 2. 如果当前环境不支持 AskUserQuestion,必须用普通聊天消息提出同样问题。 3. 一次只问一个问题。 4. 提问后必须停止当前回合,等待用户回答(STOP and WAIT)。 5. 不得在用户回答前生成文档、写入 docs。 6. 已有 docs 文件不能替代本轮用户回答。
---
使用 AskUserQuestion:
> 📦 上线策略选择 > > 选择本次上线的方式: > > A) 全量发布(一次性上线所有用户) > B) 灰度发布(逐步放开用户比例) > C) 蓝绿部署(新旧版本并行) > D) 金丝雀发布(小流量验证)
继续询问:
> 🌍 环境部署策略 > > 需要在哪些环境部署? > > A) 仅生产环境 > B) 测试环境 → 生产环境 > C) 开发环境 → 测试环境 → 预发布环境 → 生产环境 > D) 自定义环境流程
使用 AskUserQuestion:
> ✅ 上线检查项 > > 必须检查哪些项目?(可多选) > > A) 功能测试(核心功能验证) > B) 性能测试(压力测试、容量验证) > C) 安全检查(漏洞扫描、权限验证) > D) 兼容性测试(多端、多浏览器) > E) 数据备份(数据库、配置文件) > F) 监控告警(日志、指标、告警规则) > G) 文档完备(用户手册、运维文档) > H) 全部检查
使用 AskUserQuestion:
> ⏰ 发布时间窗口 > > 选择合适的发布时间: > > A) 工作日白天(便于快速响应问题) > B) 工作日夜间(用户量少,影响小) > C) 周末夜间(最低峰时段) > D) 根据业务特点灵活选择
继续询问:
> 📅 发布节奏 > > 发布频率是? > > A) 单次发布(一次性完成) > B) 分阶段发布(多个版本逐步上线) > C) 持续发布(多次迭代,持续优化)
使用 AskUserQuestion:
> 🔙 回滚触发条件 > > 什么情况下需要回滚? > > A) 严重Bug导致功能不可用 > B) 性能严重下降(响应时间、错误率) > C) 用户投诉激增 > D) 数据异常(关键指标暴跌) > E) 以上全部情况
继续询问:
> ⏱️ 回滚时间要求 > > 从决定回滚到完成回滚,最长可接受时间: > > A) 5分钟内(快速回滚) > B) 15分钟内(标准回滚) > C) 30分钟内(慢速回滚) > D) 1小时内(可接受)
使用 AskUserQuestion:
> 📢 上线通知对象 > > 需要通知哪些人?(可多选) > > A) 内部团队(产品、研发、测试、运营) > B) 管理层(项目发起人、部门负责人) > C) 外部用户(发布公告、更新日志) > D) 合作伙伴(第三方服务、渠道方) > E) 客服团队(提前准备FAQ)
使用 Write 工具生成 `docs/04-风控管理/上线执行方案.md`。
---
利用 Agent 工具并行执行独立子任务,大幅缩短总执行时间。
当步骤1-3的用户信息收集完成后,以下两个任务可以并行执行:
| 子任务 | 说明 | |--------|------| | 检查清单编排 | 基于上线策略和检查项,自动生成完整上线检查清单 | | 回滚方案设计 | 根据回滚触发条件和时间要求,输出回滚操作步骤 |
在步骤6生成文档前,使用 Agent 工具激活子任务并行执行。
| 维度 | V1.1.0(串行) | V2.0.0(Subagent并行) | 节省 | |------|---------------|----------------------|------| | 检查清单 | 用户逐一确认检查项 | Agent并行生成完整清单 | 约3轮交互 | | 回滚方案 | 依次询问回滚细节 | Agent自动输出回滚步骤 | 约2轮交互 | | 通知机制设计 | 逐个问询通知对象 | Agent并行编排通知方案 | 约2轮交互 | | 总交互轮次 | 约12-15轮 | 约6-8轮 | 减少50%+ | | 耗时估算 | 12-18分钟 | 6-9分钟 | 节省约8分钟 |
---
上线执行方案 → `docs/04-风控管理/上线执行方案.md`
---
# 上线执行方案 ## 一、上线概况 - **上线策略**: [从步骤1提取] - **环境部署**: [从步骤1提取] - **发布时间**: [从步骤3提取] - **回滚要求**: [从步骤4提取] - **生成时间**: [当前时间] --- ## 二、上线策略 ### 2.1 发布方式 **策略**: [从步骤1提取] **选择理由**: - [说明为什么选择此策略] - [适用的场景] ### 2.2 灰度发布计划(如适用) **阶段划分**: - **阶段1**: 1% 用户(内部用户、白名单) - **阶段2**: 10% 用户(观察期:24小时) - **阶段3**: 50% 用户(观察期:12小时) - **阶段4**: 100% 用户(全量发布) **观察指标**: - 错误率 < 1% - 平均响应时间 < 500ms - 用户投诉数 < 5起/小时 ### 2.3 蓝绿部署方案(如适用) **环境准备**: - Blue环境:当前生产版本 - Green环境:新版本 **切换流程**: 1. 部署Green环境 2. 健康检查通过 3. 切换流量到Green 4. Blue环境待命(可快速回滚) --- ## 三、上线检查清单 ### 3.1 功能测试 | 检查项 | 验收标准 | 负责人 | 状态 | |--------|---------|--------|------| | 核心功能验证 | 所有P0功能正常 | 测试负责人 | ⏳ 待测试 | | 边界条件测试 | 异常情况处理正确 | 测试负责人 | ⏳ 待测试 | | 兼容性测试 | 主流浏览器、设备正常 | 测试负责人 | ⏳ 待测试 | | 回归测试 | 无严重Bug | 测试负责人 | ⏳ 待测试 | ### 3.2 性能测试 | 检查项 | 验收标准 | 负责人 | 状态 | |--------|---------|--------|------| | 压力测试 | 支持[XX]并发用户 | 性能工程师 | ⏳ 待测试 | | 容量验证 | CPU < 70%,内存 < 80% | 运维工程师 | ⏳ 待验证 | | 响应时间 | 平均 < 500ms,P99 < 2s | 性能工程师 | ⏳ 待测试 | | 数据库性能 | 慢查询 < 1% | DBA | ⏳ 待验证 | ### 3.3 安全检查 | 检查项 | 验收标准 | 负责人 | 状态 | |--------|---------|--------|------| | 漏洞扫描 | 无高危漏洞 | 安全工程师 | ⏳ 待扫描 | | 权限验证 | 越权访问测试通过 | 安全工程师 | ⏳ 待验证 | | 数据加密 | 敏感数据加密存储 | 研发负责人 | ⏳ 待确认 | | 日志脱敏 | 日志中无明文敏感信息 | 研发负责人 | ⏳ 待确认 | ### 3.4 数据备份 | 检查项 | 验收标准 | 负责人 | 状态 | |--------|---------|--------|------| | 数据库备份 | 全量备份完成 | DBA | ⏳ 待备份 | | 配置文件备份 | 配置已备份到Git | 运维工程师 | ⏳ 待备份 | | 回滚脚本准备 | 回滚脚本验证通过 | 研发负责人 | ⏳ 待准备 | ### 3.5 监控告警 | 检查项 | 验收标准 | 负责人 | 状态 | |--------|---------|--------|------| | 日志监控 | 日志正常输出 | 运维工程师 | ⏳ 待验证 | | 指标监控 | Grafana面板配置完成 | 运维工程师 | ⏳ 待配置 | | 告警规则 | 关键指标告警配置完成 | 运维工程师 | ⏳ 待配置 | | 值班人员 | 上线期间有人值班 | 项目经理 | ⏳ 待安排 | ### 3.6 文档完备 | 检查项 | 验收标准 | 负责人 | 状态 | |--------|---------|--------|------| | 用户手册 | 更新用户操作文档 | 产品负责人 | ⏳ 待完成 | | 运维文档 | 更新部署、配置文档 | 运维工程师 | ⏳ 待完成 | | API文档 | 更新接口文档 | 研发负责人 | ⏳ 待完成 | | 更新日志 | CHANGELOG已更新 | 产品负责人 | ⏳ 待完成 | --- ## 四、发布时间规划 ### 4.1 发布时间窗口 **发布日期**: [YYYY-MM-DD] **发布时间**: [HH:MM] **预计时长**: [XX]小时 **选择理由**: - [为什么选择这个时间] - [用户访问低峰期/业务低峰期] ### 4.2 发布时间线 | 时间 | 任务 | 负责人 | 预计时长 | |------|------|--------|---------| | T-2h | 最终检查清单确认 | 项目经理 | 30分钟 | | T-1h | 团队就位,最后一次同步 | 项目经理 | 15分钟 | | T-0 | 开始上线 | 运维工程师 | - | | T+0.5h | 环境部署、配置更新 | 运维工程师 | 30分钟 | | T+1h | 功能验证(冒烟测试) | 测试负责人 | 30分钟 | | T+1.5h | 监控指标观察 | 运维工程师 | 30分钟 | | T+2h | 发布通知 | 产品负责人 | 15分钟 | | T+4h | 灰度放开至10%(如适用) | 运维工程师 | - | | T+24h | 全量发布完成 | 项目经理 | - | --- ## 五、回滚方案 ### 5.1 回滚触发条件 **立即回滚**(红色预警): - ✅ 严重Bug导致核心功能不可用 - ✅ 错误率 > 5% - ✅ 响应时间 > 5s - ✅ 数据丢失或损坏 **评估后回滚**(黄色预警): - ⚠️ 性能下降明显(响应时间 > 1s) - ⚠️ 用户投诉 > 10起/小时 - ⚠️ 关键指标下降 > 20% ### 5.2 回滚流程
发现问题 → 评估严重程度 → 决定是否回滚 ↓ 通知相关人员(项目经理、技术负责人) ↓ 执行回滚操作 ↓ 验证回滚成功 ↓ 复盘分析
### 5.3 回滚操作步骤 #### 方式1:代码回滚 ```bash # 1. 切换到稳定版本分支 git checkout [稳定版本tag] # 2. 重新构建 npm run build # 3. 部署 kubectl set image deployment/app app=[新镜像] # 4. 验证 curl -I https://app.example.com/health
# 1. 停止应用写入 kubectl scale deployment/app --replicas=0 # 2. 恢复数据库 mysql -u root -p < /backup/backup_YYYYMMDD.sql # 3. 验证数据完整性 mysql -u root -p -e "SELECT COUNT(*) FROM users;" # 4. 重启应用 kubectl scale deployment/app --replicas=3
# 1. 恢复配置文件 kubectl rollout undo deployment/app # 2. 验证配置 kubectl get configmap app-config -o yaml # 3. 重启应用 kubectl rollout restart deployment/app
**目标**: [从步骤4提取]
**快速回滚清单**:
---
**通知时间**: 上线前[XX]小时
**通知对象**:
Repo: konglong87/superPM
Use when: 需要检查super-pm skills健康状态、定期维护审计、验证元数据完整性 Do NOT use when: 正在使用某个功能skill、仅需执行产品管理任务
Use when: 需要创意方案、探索产品方向、发散思维、本质问题分析 用户说"我想做一个XX""帮我规划XX产品""帮我设计一下需求" 用户给出新产品方向,但尚未完成本轮 brainstorm 交互确认 新产品从0到1的第一步 Do NOT use when: 用户明确说"跳过 brainstorm /…
Use when: 有初步需求清单需要细化细节、需明确需求场景和边界条件、需求描述模糊需要结构化 Do NOT use when: 需求已足够详细可直达开发、仅需快速立项无需深入
Use when: 需要持续监控竞品动态、建立竞品情报预警、定期输出竞品监控月报、追踪竞品版本/定价/功能/舆情/融资异动 Do NOT use when: 仅需一次性竞品调研(用 pm-market / pm-search --type=competitor);产品尚无明确竞品
Use when: 已完成 /pm-brainstorm 后,需要系统化收集需求、验证产品想法真伪、分析用户痛点 用户明确要求"需求调研""需求验证""验证痛点""分析用户痛点" 用户明确选择跳过 brainstorm,直接进入需求调研 Do NOT auto-select when:…
Use when: 需要设计用户访谈/用户调研方案、编写访谈提纲、规划样本与招募、制定访谈执行与分析方法 Do NOT use when: 仅做案头需求调研(用 pm-demand);已有明确结论只需验证单一假设且无需访谈