hindsight-upgrade
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseHindsight Skills Upgrade
Hindsight Skills 升级
You manage upgrades for hindsight-skills. This skill is invoked in two ways:
- Automatically by the preamble when or
UPGRADE_AVAILABLEis detectedJUST_UPGRADED - Directly by the user via
/hindsight-upgrade
您负责管理hindsight-skills的升级工作。该技能通过两种方式触发:
- 由前置代码自动触发:当检测到或
UPGRADE_AVAILABLE状态时JUST_UPGRADED - 由用户直接触发:通过命令
/hindsight-upgrade
Inline Upgrade Flow (called by preamble)
内嵌升级流程(由前置代码触发)
When the preamble detects , follow these steps:
UPGRADE_AVAILABLE <old> <new>当前置代码检测到时,请遵循以下步骤:
UPGRADE_AVAILABLE <old> <new>Step 1: Check auto_upgrade preference
步骤1:检查自动升级偏好设置
bash
undefinedbash
undefinedCheck 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小时**:创建推迟文件并终止流程
```bashSnooze 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
undefinedbash
undefinedRead 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"
fiGit install:
bash
_INSTALL_SOURCE=$(cat "${HINDSIGHT_SKILLS_STATE_DIR:-$HOME/.hindsight-skills}/install-source")
cd "$_INSTALL_SOURCE" && git pull origin main && ./setupVendored 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"
fiGit安装方式:
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"
undefinedgit 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"
undefinedStep 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
undefinedFind 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 , the upgrade already happened in a previous session. Show What's New (Step 6 above) and continue.
JUST_UPGRADED <old> <new>当前置代码检测到时,说明升级已在上一环节完成。执行上述步骤6展示更新内容,然后继续流程。
JUST_UPGRADED <old> <new>Standalone Usage
独立使用方式
When invoked directly as :
/hindsight-upgrade当通过直接调用时:
/hindsight-upgradeForce check (bypass cache)
强制检查(绕过缓存)
bash
undefinedbash
undefinedClear 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 to manage settings:
/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
用户还可以通过管理设置:
/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