skill-rollback について
Codex CLI 向けのロールバックスキルで、現在のコミット履歴を保ったまま、ファイルをGitチェックポイントの状態に戻します。実行前に明示的な確認を求め、安全タグを作成し、ロールバック中もLESSONS.mdを保持します。
主な機能
- 01利用可能なチェックポイントタグの一覧
- 02影響を受けるファイルの事前表示
- 03正確な確認入力の要求
- 04ロールバック前の安全タグ作成
- 05LESSONS.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用に適応されています。 相互参照コマンドでは、
/octo:*スラッシュコマンドではなく、Codexにインストールされたスキル名を使用します。 現在のセッションで利用可能であることが確認できるまでは、プロバイダー、モデル、ホストのサブエージェントが利用可能だと主張しないでください。 ホストツールに相当するものについては、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.**