hindsight-upgrade

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Hindsight Skills Upgrade

Hindsight Skills 升级

You manage upgrades for hindsight-skills. This skill is invoked in two ways:
  1. Automatically by the preamble when
    UPGRADE_AVAILABLE
    or
    JUST_UPGRADED
    is detected
  2. Directly by the user via
    /hindsight-upgrade

您负责管理hindsight-skills的升级工作。该技能通过两种方式触发:
  1. 由前置代码自动触发:当检测到
    UPGRADE_AVAILABLE
    或
    JUST_UPGRADED
    状态时
  2. 由用户直接触发:通过
    /hindsight-upgrade
    命令

Inline Upgrade Flow (called by preamble)

内嵌升级流程(由前置代码触发)

When the preamble detects
UPGRADE_AVAILABLE <old> <new>
, follow these steps:
当前置代码检测到
UPGRADE_AVAILABLE <old> <new>
时,请遵循以下步骤:

Step 1: Check auto_upgrade preference

步骤1:检查自动升级偏好设置

bash
undefined
bash
undefined

Check if auto-upgrade is enabled

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}"

If `AUTO_UPGRADE` is `true`, skip to Step 2 and proceed with the upgrade silently.

If `AUTO_UPGRADE` is `false`, use `AskUserQuestion` to ask:

> hindsight-skills **{new}** is available (you have **{old}**). How would you like to proceed?

Options:
- **Upgrade now** — Install the update and continue
- **Always auto-upgrade** — Install now and auto-upgrade in the future
- **Snooze 24h** — Remind me tomorrow
- **Never ask** — Disable update checks permanently

Handle each response:
- **Upgrade now**: proceed to Step 2
- **Always auto-upgrade**: run `hindsight-config set auto_upgrade true`, then proceed to Step 2
- **Snooze 24h**: write snooze file and stop

```bash
_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小时**:创建推迟文件并终止流程

```bash

Snooze for 24 hours

Snooze for 24 hours

_HS_STATE_DIR="${HINDSIGHT_SKILLS_STATE_DIR:-$HOME/.hindsight-skills}" echo "{new_version} $(date +%s)" > "$_HS_STATE_DIR/update-snoozed"

- **Never ask**: run `hindsight-config set update_check false` and stop
_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`并终止流程

Step 2: Detect install type

步骤2:检测安装类型

bash
undefined
bash
undefined

Read the install source breadcrumb

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}"

If `INSTALL_SOURCE` is empty or the path doesn't exist, tell the user:

> I can't find the hindsight-skills installation. Please re-run setup from your clone:
> ```
> cd /path/to/hindsight-skills && ./setup
> ```

And stop.
_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
> ```

并终止流程。

Step 3: Save old version

步骤3:保存旧版本信息

bash
_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"
bash
_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"

Step 4: Upgrade

步骤4:执行升级

Check if the install source is a git repo:
bash
_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:
bash
_INSTALL_SOURCE=$(cat "${HINDSIGHT_SKILLS_STATE_DIR:-$HOME/.hindsight-skills}/install-source")
cd "$_INSTALL_SOURCE" && git pull origin main && ./setup
Vendored install (no .git directory — downloaded/copied, not cloned):
bash
_INSTALL_SOURCE=$(cat "${HINDSIGHT_SKILLS_STATE_DIR:-$HOME/.hindsight-skills}/install-source")
_PARENT=$(dirname "$_INSTALL_SOURCE")
_NAME=$(basename "$_INSTALL_SOURCE")
cd "$_PARENT"
检查安装源是否为Git仓库:
bash
_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安装方式:
bash
_INSTALL_SOURCE=$(cat "${HINDSIGHT_SKILLS_STATE_DIR:-$HOME/.hindsight-skills}/install-source")
cd "$_INSTALL_SOURCE" && git pull origin main && ./setup
独立包安装方式(无.git目录 — 下载/复制而非克隆):
bash
_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

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"
undefined
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"
undefined

Step 5: Write marker and clear state

步骤5:写入标记并清除状态

bash
_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"
bash
_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"

Step 6: Show What's New

步骤6:展示更新内容

Read the CHANGELOG.md from the installed skill and show the user what changed between their old version and the new version:
bash
undefined
读取已安装技能的CHANGELOG.md文件,向用户展示旧版本与新版本之间的变更:
bash
undefined

Find the changelog

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

Parse the changelog and display only the sections between the old and new versions. Format as:

> **hindsight-skills upgraded: {old} → {new}**
>
> {relevant changelog entries}

Then continue with the user's original task.

---
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}**
>
> {相关变更日志条目}

之后继续处理用户的原始任务。

---

Handling JUST_UPGRADED

处理JUST_UPGRADED状态

When the preamble detects
JUST_UPGRADED <old> <new>
, the upgrade already happened in a previous session. Show What's New (Step 6 above) and continue.

当前置代码检测到
JUST_UPGRADED <old> <new>
时,说明升级已在上一环节完成。执行上述步骤6展示更新内容,然后继续流程。

Standalone Usage

独立使用方式

When invoked directly as
/hindsight-upgrade
:
当通过
/hindsight-upgrade
直接调用时:

Force check (bypass cache)

强制检查(绕过缓存)

bash
undefined
bash
undefined

Clear cache and run check

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"
_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

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

If the output is `UPGRADE_AVAILABLE`, follow the Inline Upgrade Flow from Step 1.

If the output is empty, tell the user: "hindsight-skills is up to date (version {version})."

If the output is `JUST_UPGRADED`, show What's New.
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`,展示更新内容。

Config management

配置管理

Users can also use
/hindsight-upgrade
to manage settings:
  • "enable auto-upgrade" →
    hindsight-config set auto_upgrade true
  • "disable update checks" →
    hindsight-config set update_check false
  • "re-enable update checks" →
    hindsight-config set update_check true
  • "show config" →
    hindsight-config list
用户还可以通过
/hindsight-upgrade
管理设置:
  • "enable auto-upgrade" →
    hindsight-config set auto_upgrade true
  • "disable update checks" →
    hindsight-config set update_check false
  • "re-enable update checks" →
    hindsight-config set update_check true
  • "show config" →
    hindsight-config list