关于 skill-rollback
面向 Codex CLI 的回滚技能,可将文件恢复到 Git 检查点,同时保留当前提交历史。执行前要求明确确认、创建安全标签,并在回滚时保留 LESSONS.md。
主要功能
- 01列出可用的检查点标签
- 02预览回滚影响的文件
- 03要求准确输入确认内容
- 04创建回滚前安全标签
- 05保留 LESSONS.md
适用场景
- 01选择恢复点前查看检查点
- 02确认受影响变更后恢复文件
- 03回滚期间保留累积经验
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ nyldn/ claude-octopus --skill skill-rollback安装后在 Claude Code 中输入/skill-rollback确认已加载。
附带文件agents/openai.yaml
详细介绍
宿主:Codex CLI — 此技能专为 Claude Code 设计,并已适配 Codex。 交叉引用命令在 Codex 中使用已安装的技能名称,而不是
/octo:*斜杠命令。 使用当前 Codex 会话中的 Shell 和子 Agent 工具。除非当前会话已提供相应功能,否则不要声称某个提供方、模型或宿主子 Agent 可用。 有关宿主工具的对应项,请参阅skills/blocks/codex-host-adapter.md。
检查点回滚
安全地回滚到之前的检查点,同时保留经验教训。
核心原则: 列出检查点 → 明确确认 → 创建安全备份 → 恢复 → 保留经验教训。
子命令检测
解析用户请求以确定模式:
| 用户请求 | 模式 | 操作 |
|---|---|---|
list、show checkpoints、无参数 | LIST | 显示可用检查点 |
octo-checkpoint-* 标签名称 | ROLLBACK | 回滚到指定检查点 |
模式:LIST(默认)
步骤 1:获取可用检查点
# List all octo checkpoints with dates
git tag -l "octo-checkpoint-*" --sort=-creatordate --format='%(refname:short)|%(creatordate:short)|%(contents:subject)'
步骤 2:呈现检查点表格
## Available Checkpoints
| Tag | Created | Description |
|-----|---------|-------------|
| octo-checkpoint-post-discover-20260203-143022 | 2026-02-03 | After Discover phase |
| octo-checkpoint-post-define-20260203-150145 | 2026-02-03 | After Define phase |
Usage: `/octo:rollback <tag-name>`
如果没有找到检查点:
No checkpoints found. Checkpoints are created automatically after each Octopus phase.
To create a manual checkpoint:
git tag -a octo-checkpoint-manual-$(date +%Y%m%d-%H%M%S) -m "Manual checkpoint"
模式:ROLLBACK
步骤 1:验证检查点是否存在
# Check if tag exists
git tag -l "$CHECKPOINT_TAG" | grep -q . || echo "TAG_NOT_FOUND"
如果未找到标签:
Checkpoint '$CHECKPOINT_TAG' not found.
Available checkpoints:
[show list output]
停止。不要继续。
步骤 2:显示受影响的内容
# Get list of files that will be changed
git diff --name-status HEAD $CHECKPOINT_TAG
清楚地呈现:
## Rollback Preview
**Rolling back to:** `octo-checkpoint-post-discover-20260203-143022`
**Created:** 2026-02-03 14:30:22
**Description:** After Discover phase
### Files That Will Be Changed
| Status | File |
|--------|------|
| M | src/auth/login.ts |
| D | src/auth/oauth.ts |
| A | src/legacy/old-auth.ts |
Legend: M=Modified, D=Deleted, A=Added (relative to current state)
### Protected Files (Will NOT be changed)
- `.octo/LESSONS.md` - Lessons are always preserved
步骤 3:要求明确确认(必需)
To confirm this rollback, type ROLLBACK exactly.
Any other input will cancel.
等待准确确认:ROLLBACK
重要: 未收到明确的“ROLLBACK”确认时,不要继续。
步骤 4:创建安全检查点
执行任何回滚前,先创建回滚前检查点:
# Generate timestamp
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
# Create safety checkpoint
git tag -a "octo-checkpoint-pre-rollback-$TIMESTAMP" -m "Safety checkpoint before rollback to $CHECKPOINT_TAG"
报告:
Created safety checkpoint: octo-checkpoint-pre-rollback-$TIMESTAMP
You can return to current state with:
/octo:rollback octo-checkpoint-pre-rollback-$TIMESTAMP
步骤 5:保留 LESSONS.md
# Save current LESSONS.md if it exists
if [ -f ".octo/LESSONS.md" ]; then
cp .octo/LESSONS.md /tmp/LESSONS_PRESERVED.md
LESSONS_PRESERVED=true
fi
步骤 6:执行回滚
# Restore files from checkpoint (does NOT move HEAD)
git checkout $CHECKPOINT_TAG -- .
# Restore preserved LESSONS.md
if [ "$LESSONS_PRESERVED" = "true" ]; then
cp /tmp/LESSONS_PRESERVED.md .octo/LESSONS.md
fi
重要: 此操作使用 git checkout <tag> -- .,它会:
- 将所有文件恢复到检查点状态
- 不会移动 HEAD 或更改分支
- 保留当前提交历史
- 允许立即提交恢复后的状态
步骤 7:更新 STATE.md(如果存在)
if [ -f ".octo/STATE.md" ]; then
# Append rollback entry to history
echo "" >> .octo/STATE.md
echo "## Rollback - $(date '+%Y-%m-%d %H:%M')" >> .octo/STATE.md
echo "" >> .octo/STATE.md
echo "- **Target:** $CHECKPOINT_TAG" >> .octo/STATE.md
echo "- **Safety checkpoint:** octo-checkpoint-pre-rollback-$TIMESTAMP" >> .octo/STATE.md
echo "- **Reason:** User requested rollback" >> .octo/STATE.md
fi
步骤 8:报告成功
Rollback Complete
**Restored to:** `$CHECKPOINT_TAG`
**Files restored:** N files
**LESSONS.md:** Preserved (not rolled back)
**Safety checkpoint created:** `octo-checkpoint-pre-rollback-$TIMESTAMP`
### Next Steps
1. Review the restored files
2. Commit the rollback if satisfied:
```bash
git add -A && git commit -m "chore: rollback to $CHECKPOINT_TAG"
- 或返回到之前的状态:
/octo:rollback octo-checkpoint-pre-rollback-$TIMESTAMP
## Safety Measures
| Measure | Implementation |
|---------|----------------|
| **Always create safety checkpoint** | Pre-rollback tag created BEFORE any file changes |
| **Preserve LESSONS.md** | Copy before rollback, restore after |
| **Require explicit confirmation** | Must type "ROLLBACK" exactly |
| **Show affected files first** | Preview before confirmation |
| **No history modification** | Uses checkout, not reset |
## Red Flags - Never Do
| Action | Why It's Dangerous |
|--------|-------------------|
| Rollback without confirmation | Loses work unexpectedly |
| Skip safety checkpoint | No recovery path |
| Rollback LESSONS.md | Loses accumulated knowledge |
| Use `git reset --hard` | Destroys commit history |
| Force push after rollback | Affects collaborators |
| Delete checkpoint tags | Removes recovery points |
## Checkpoint Tag Format
All Octopus checkpoints follow this format:
octo-checkpoint-{type}-{timestamp}
其中:
- type:post-discover、post-define、post-develop、post-deliver、pre-rollback、manual
- timestamp:YYYYMMDD-HHMMSS
Examples:
- `octo-checkpoint-post-discover-20260203-143022`
- `octo-checkpoint-post-define-20260203-150145`
- `octo-checkpoint-pre-rollback-20260203-161530`
- `octo-checkpoint-manual-20260203-170000`
## Quick Reference
| Command | Action |
|---------|--------|
| `/octo:rollback` | List available checkpoints |
| `/octo:rollback list` | List available checkpoints |
| `/octo:rollback <tag>` | Rollback to specific checkpoint |
## The Bottom Line
回滚 → 已收到确认且已创建安全检查点 否则 → 未执行
**Show preview. Require "ROLLBACK". Create safety tag. Preserve lessons. Execute safely.**
评论
支持 Markdown