Skip to content
Back to skills

Super Pm Upgrade

ASecurity

Use when: 用户要求检查 super-pm 更新、升级完整 Git 安装或回退 Do NOT use when: 正在执行普通 PM 任务、仅需安装健康检查或用户没有要求升级

  • 71 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 27, 2026
data-aibashgit

Security analysis

A100/100

Scanned September 24, 2026

npx -y skills add konglong87/superPM --skill super-pm-upgrade --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Super Pm Upgrade?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Super Pm Upgrade
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/konglong87-super-pm-upgrade/badge)](https://www.skillsdirectory.com/skills/konglong87-super-pm-upgrade)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: super-pm-upgrade
description: |
  Use when: 用户要求检查 super-pm 更新、升级完整 Git 安装或回退
  Do NOT use when: 正在执行普通 PM 任务、仅需安装健康检查或用户没有要求升级
allowed-tools:
  - Read
  - Bash
  - AskUserQuestion
---

# 安全升级 super-pm

**绝不在用户的业务项目仓库中运行升级用 Git 命令。** 从已加载的本 SKILL.md 找到同目录的 `scripts/package-root.sh`,执行它获取技能包 Git 根目录。此脚本使用自身真实位置定位,不依赖当前工作目录。

```bash
PACK_ROOT="$(bash "<当前 super-pm-upgrade skill 的绝对目录>/scripts/package-root.sh")" || exit 2
printf 'super-pm package: %s\n' "$PACK_ROOT"
```

如果该命令失败,当前为复制安装或非 Git 安装;**停止 Git 升级流程**,根据安装方式使用 `npx skills update` 或平台自己的更新机制。不要退回 `git pull` 用户当前项目。

## 检查(只读,网络 fetch 除外)

每次调用 Bash 工具时重新设置绝对的 `PACK_ROOT`,或显式将命令的工作目录设为该包。以下所有 `git` 命令必须带 `-C "$PACK_ROOT"`:

```bash
PACK_ROOT="$(bash "<当前 skill 绝对目录>/scripts/package-root.sh")" || exit 2
git -C "$PACK_ROOT" status --short
git -C "$PACK_ROOT" branch --show-current
cat "$PACK_ROOT/VERSION"
git -C "$PACK_ROOT" fetch origin main --tags
git -C "$PACK_ROOT" log -1 --oneline HEAD
git -C "$PACK_ROOT" log -1 --oneline origin/main
```

比较当前 HEAD 与 `origin/main`。有未提交改动、非快进、未处在预期分支或远程不可用时停止并说明,不自动 stash、重置、切换分支或覆盖文件。用户仅要求“检查”时到此为止。

## 执行升级(需要用户明确确认)

告知用户目标提交、当前版本和影响后确认。确认前不运行以下命令:

```bash
PACK_ROOT="$(bash "<当前 skill 绝对目录>/scripts/package-root.sh")" || exit 2
OLD_COMMIT="$(git -C "$PACK_ROOT" rev-parse HEAD)"
test -z "$(git -C "$PACK_ROOT" status --porcelain)" || exit 1
git -C "$PACK_ROOT" merge --ff-only origin/main || exit 1
printf 'previous=%s\ncurrent=%s\n' "$OLD_COMMIT" "$(git -C "$PACK_ROOT" rev-parse HEAD)"
cat "$PACK_ROOT/VERSION"
```

只用快进合并,不创建新分支或 worktree。验证版本与实际技能清单,再报告升级结果;没有验证时不能说成功。记录 `OLD_COMMIT` 以便用户决定是否回退,但**不自动回退**。回退需要再次确认,并确保技能包工作区干净;不得改动业务项目。

## 交互与兜底

如环境无 AskUserQuestion,普通聊天一次只问一个问题并等待回答。用户拒绝升级时停止。复制安装、权限不足、网络失败或无法快进时解释原因和安全的手动路径,不静默忽略错误。

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…