关于 hindsight-upgrade
用于管理 hindsight-skills 更新的技能,可由前置流程自动触发或手动调用。它检查升级偏好,处理 Git 或 vendored 安装,并展示已安装更新对应的变更日志。
主要功能
- 01处理前置流程触发和手动升级
- 02遵循自动升级和更新检查设置
- 03支持 Git 与 vendored 安装流程
- 04记录升级状态并清除检查标记
- 05展示新版对应的变更日志
适用场景
- 01收到更新提示后升级 hindsight-skills
- 02配置自动升级或更新检查
- 03查看升级后的变更
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ vectorize-io/ hindsight-skills --skill hindsight-upgrade安装后在 Claude Code 中输入/hindsight-upgrade确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
CHANGELOG.mdSKILL.md.tmplVERSIONbin/hindsight-confighindsight-update-check详细介绍
Hindsight Skills 升级
你负责管理 hindsight-skills 的升级。此技能会通过以下两种方式调用:
- 检测到
UPGRADE_AVAILABLE或JUST_UPGRADED时,由前置提示自动调用 - 用户通过
/hindsight-upgrade直接调用
内联升级流程(由前置提示调用)
当前置提示检测到 UPGRADE_AVAILABLE <old> <new> 时,请执行以下步骤:
步骤 1:检查 auto_upgrade 偏好设置
# Check if auto-upgrade is enabled
_HS_BIN_DIR=""
for _d in ~/.claude/skills ~/.codex/skills ~/.kiro/skills ~/.factory/skills; do
[ -x "$_d/hindsight-upgrade/bin/hindsight-config" ] && _HS_BIN_DIR="$_d/hindsight-upgrade/bin" && break
done
[ -n "$_HS_BIN_DIR" ] && _AUTO_UPGRADE=$("$_HS_BIN_DIR/hindsight-config" get auto_upgrade 2>/dev/null || echo "false")
echo "AUTO_UPGRADE: ${_AUTO_UPGRADE:-false}"
如果 AUTO_UPGRADE 为 true,跳过此步骤,转到步骤 2 并静默执行升级。
如果 AUTO_UPGRADE 为 false,使用 AskUserQuestion 询问:
hindsight-skills {new} 已推出(你当前使用的是 {old})。你想如何继续?
选项:
- 立即升级 — 安装更新并继续
- 始终自动升级 — 立即安装,并在未来自动升级
- 推迟 24 小时 — 明天提醒我
- 不再询问 — 永久禁用更新检查
处理每种响应:
- 立即升级:转到步骤 2
- 始终自动升级:运行
hindsight-config set auto_upgrade true,然后转到步骤 2 - 推迟 24 小时:写入推迟文件并停止
# Snooze for 24 hours
_HS_STATE_DIR="${HINDSIGHT_SKILLS_STATE_DIR:-$HOME/.hindsight-skills}"
echo "{new_version} $(date +%s)" > "$_HS_STATE_DIR/update-snoozed"
- 不再询问:运行
hindsight-config set update_check false并停止
步骤 2:检测安装类型
# Read the install source breadcrumb
_HS_STATE_DIR="${HINDSIGHT_SKILLS_STATE_DIR:-$HOME/.hindsight-skills}"
_INSTALL_SOURCE=""
[ -f "$_HS_STATE_DIR/install-source" ] && _INSTALL_SOURCE=$(cat "$_HS_STATE_DIR/install-source")
echo "INSTALL_SOURCE: ${_INSTALL_SOURCE:-not found}"
如果 INSTALL_SOURCE 为空或路径不存在,请告知用户:
我找不到 hindsight-skills 的安装位置。请从你的克隆目录重新运行设置:
cd /path/to/hindsight-skills && ./setup
然后停止。
步骤 3:保存旧版本
_HS_STATE_DIR="${HINDSIGHT_SKILLS_STATE_DIR:-$HOME/.hindsight-skills}"
_INSTALL_SOURCE=$(cat "$_HS_STATE_DIR/install-source")
_OLD_VERSION=$(cat "$_INSTALL_SOURCE/VERSION" 2>/dev/null | tr -d '[:space:]')
echo "OLD_VERSION: $_OLD_VERSION"
步骤 4:升级
检查安装源是否为 git 仓库:
_INSTALL_SOURCE=$(cat "${HINDSIGHT_SKILLS_STATE_DIR:-$HOME/.hindsight-skills}/install-source")
cd "$_INSTALL_SOURCE"
if [ -d .git ]; then
echo "INSTALL_TYPE: git"
else
echo "INSTALL_TYPE: vendored"
fi
Git 安装:
_INSTALL_SOURCE=$(cat "${HINDSIGHT_SKILLS_STATE_DIR:-$HOME/.hindsight-skills}/install-source")
cd "$_INSTALL_SOURCE" && git pull origin main && ./setup
附带安装(没有 .git 目录 — 下载或复制而来,并非克隆):
_INSTALL_SOURCE=$(cat "${HINDSIGHT_SKILLS_STATE_DIR:-$HOME/.hindsight-skills}/install-source")
_PARENT=$(dirname "$_INSTALL_SOURCE")
_NAME=$(basename "$_INSTALL_SOURCE")
cd "$_PARENT"
# Clone fresh, run setup, move into place
git clone https://github.com/vectorize-io/hindsight-skills.git "${_NAME}-upgrade-tmp"
cd "${_NAME}-upgrade-tmp" && ./setup
cd "$_PARENT"
rm -rf "$_NAME"
mv "${_NAME}-upgrade-tmp" "$_NAME"
步骤 5:写入标记并清除状态
_HS_STATE_DIR="${HINDSIGHT_SKILLS_STATE_DIR:-$HOME/.hindsight-skills}"
echo "$_OLD_VERSION" > "$_HS_STATE_DIR/just-upgraded-from"
rm -f "$_HS_STATE_DIR/last-update-check"
rm -f "$_HS_STATE_DIR/update-snoozed"
步骤 6:显示更新内容
读取已安装技能中的 CHANGELOG.md,并向用户展示旧版本到新版本之间的变更:
# Find the changelog
for _d in ~/.claude/skills ~/.codex/skills ~/.kiro/skills ~/.factory/skills; do
[ -f "$_d/hindsight-upgrade/CHANGELOG.md" ] && cat "$_d/hindsight-upgrade/CHANGELOG.md" && break
done
解析变更日志,只显示旧版本与新版本之间的章节。格式如下:
hindsight-skills 已升级:{old} → {new}
{相关变更日志条目}
然后继续处理用户原来的任务。
处理 JUST_UPGRADED
当前置提示检测到 JUST_UPGRADED <old> <new> 时,升级已在上一个会话中完成。显示更新内容(上方步骤 6),然后继续。
独立使用
直接通过 /hindsight-upgrade 调用时:
强制检查(绕过缓存)
# Clear cache and run check
_HS_STATE_DIR="${HINDSIGHT_SKILLS_STATE_DIR:-$HOME/.hindsight-skills}"
rm -f "$_HS_STATE_DIR/last-update-check"
rm -f "$_HS_STATE_DIR/update-snoozed"
# Find and run the update check
for _d in ~/.claude/skills ~/.codex/skills ~/.kiro/skills ~/.factory/skills; do
[ -x "$_d/hindsight-upgrade/bin/hindsight-update-check" ] && "$_d/hindsight-upgrade/bin/hindsight-update-check" && break
done
如果输出为 UPGRADE_AVAILABLE,请按照内联升级流程从步骤 1 开始执行。
如果输出为空,请告知用户:“hindsight-skills 已是最新版本(版本 {version})。”
如果输出为 JUST_UPGRADED,请显示更新内容。
配置管理
用户也可以使用 /hindsight-upgrade 管理设置:
- “启用自动升级” →
hindsight-config set auto_upgrade true - “禁用更新检查” →
hindsight-config set update_check false - “重新启用更新检查” →
hindsight-config set update_check true - “显示配置” →
hindsight-config list