pm-selfcheck
Use when: 需要检查super-pm skills健康状态、定期维护审计、验证元数据完整性 Do NOT use when: 正在使用某个功能skill、仅需执行产品管理任务
Use when: 需要检查super-pm更新、升级到新版本、回退到旧版本 Do NOT use when: 正常使用skill无需版本管理、首次安装而非升级
$ npx -y skills add konglong87/superPM --skill super-pm-upgrade --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/super-pm-upgradeContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when: 需要检查super-pm更新、升级到新版本、回退到旧版本 Do NOT use when: 正常使用skill无需版本管理、首次安装而非升级
name: super-pm-upgrade description: | Use when: 需要检查super-pm更新、升级到新版本、回退到旧版本 Do NOT use when: 正常使用skill无需版本管理、首次安装而非升级 allowed-tools: - Read - Write - Bash - AskUserQuestion
bash "$(dirname "${BASH_SOURCE[0]}")/../check-update.sh" 2>/dev/null || true
# 检测当前版本
if [ -f "VERSION" ]; then
CURRENT_VERSION=$(cat VERSION)
echo "📦 当前版本: $CURRENT_VERSION"
else
echo "⚠️ 未找到VERSION文件"
CURRENT_VERSION="unknown"
fi
# 检测Git仓库
if [ -d ".git" ]; then
echo "✅ Git仓库检测成功"
else
echo "❌ 未检测到Git仓库,无法升级"
exit 1
fi---
当流程要求与用户交互时:
1. 如果当前环境支持 AskUserQuestion,使用 AskUserQuestion(最佳体验)。 2. 如果当前环境不支持 AskUserQuestion,必须用普通聊天消息提出同样问题。 3. 一次只问一个问题。 4. 提问后必须停止当前回合,等待用户回答(STOP and WAIT)。 5. 不得在用户回答前生成文档、写入 docs。 6. 已有 docs 文件不能替代本轮用户回答。
---
使用 Read 工具读取 `VERSION` 文件。
记录当前版本到变量 `CURRENT_VERSION`
---
使用 Bash 工具执行:
# 获取远程仓库最新版本标签 git fetch --tags # 获取最新标签 LATEST_TAG=$(git tag --sort=-v:refname | head -n 1) echo "🏷️ 最新版本: $LATEST_TAG"
记录最新版本到变量 `LATEST_VERSION`
---
AI 对比 `CURRENT_VERSION` 和 `LATEST_VERSION`:
**如果当前版本 = 最新版本**:
> ✅ 您已在最新版本! > > 当前版本: {CURRENT_VERSION} > 最新版本: {LATEST_VERSION} > > 无需升级。
结束流程。
---
**如果当前版本 < 最新版本**:
> 🎉 发现新版本! > > 当前版本: {CURRENT_VERSION} > 最新版本: {LATEST_VERSION} > > 是否查看更新日志?
用户选择后,继续。
---
使用 Bash 工具:
# 查看最新版本的更新日志 git log --pretty=format:"- %s" $CURRENT_VERSION..$LATEST_TAG
显示更新内容:
> 📋 更新日志 ({LATEST_VERSION}): > > {更新内容}
询问用户:
> 是否升级到 {LATEST_VERSION}? > > A) 是的,立即升级(推荐) > B) 查看完整变更日志后再决定 > C) 暂不升级
---
如果用户选择升级:
使用 Bash 工具:
# 创建备份分支 BACKUP_BRANCH="backup/$(date +%Y%m%d_%H%M%S)" git checkout -b $BACKUP_BRANCH echo "✅ 已创建备份分支: $BACKUP_BRANCH"
---
# 切换到最新标签 git checkout $LATEST_TAG # 验证VERSION文件 NEW_VERSION=$(cat VERSION) echo "✅ 已切换到版本: $NEW_VERSION"
---
使用 Read 工具验证 `VERSION` 文件内容。
确认版本号已更新。
---
> ✅ 升级成功! > > 原版本: {CURRENT_VERSION} > 新版本: {LATEST_VERSION} > > 备份分支: {BACKUP_BRANCH} > > 如需回退,执行: > ```bash > git checkout {BACKUP_BRANCH} > ```
---
如果用户需要回退:
使用 Bash 工具:
# 列出所有备份分支 git branch | grep "backup/"
显示备份分支列表:
> 📂 可回退的版本: > > A) backup/20260325_154500 (v1.0.0) > B) backup/20260324_120000 (v0.9.0) > ...
---
使用 AskUserQuestion:
> 选择要回退的版本:
用户选择后,执行回退:
# 切换到备份分支
git checkout {BACKUP_BRANCH}
# 验证版本
cat VERSION---
确认版本号正确。
输出:
> ✅ 已回退到版本 {VERSION}
---
如果无法获取远程版本:
git fetch --tags 2>&1 if [ $? -ne 0 ]; then echo "❌ 无法连接到远程仓库" echo "请检查网络连接或稍后重试" fi
---
如果有未提交的更改:
git status --porcelain if [ $? -ne 0 ]; then echo "⚠️ 检测到未提交的更改" echo "" echo "建议先提交或暂存更改后再升级" echo "" echo "您可以选择:" echo "A) 暂存更改(git stash)" echo "B) 提交更改" echo "C) 放弃升级" fi
---
如果VERSION文件格式不正确:
if ! [[ "$CURRENT_VERSION" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then echo "⚠️ VERSION文件格式不正确: $CURRENT_VERSION" echo "期望格式: v1.0.0" fi
---
1. **备份重要**:升级前自动创建备份分支 2. **网络依赖**:需要访问Git远程仓库 3. **版本号格式**:遵循语义化版本(v1.0.0) 4. **回退支持**:任何时候都可以回退到旧版本 5. **Git依赖**:需要Git仓库环境
---
---
> ⚠️ 任何一项未通过 → 不要执行升级。
---
出现以下情况立即停止并回溯:
| 误区 | 正确做法 | |------|---------| | 使用"应该"、"大概"、"看起来"做结论 | 必须基于实际数据和验证 | | 未运行检查就声称已完成 | 先验证,再陈述 | | 跳过备份直接升级 | 先备份,再升级 |
---
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);已有明确结论只需验证单一假设且无需访谈