dotfiles/claude/skills/code-to-rollback-sql/SKILL.md
指定されたコード(メソッド、関数)を解析し、INSERT/UPDATE/DELETEされるテーブル・カラムを洗い出し、agent-memoryに記憶し、ロールバック用SQLを生成する。「このコードで作成されるデータを解析してロールバックSQLを作って」「@ファイルパス#行番号 のデータ変更を調べてSQL生成して」「このメソッドのロールバックSQLを作成」などのリクエストでトリガー。
npx skillsauth add octkp/dotfiles code-to-rollback-sqlInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
指定されたコードを解析し、3つのフェーズでロールバックSQLを生成するスキル。 このスキルはオーケストレーターとして機能し、各フェーズはサブエージェント(Task tool)で実行する。
@src/xba/packages/xbacore/classes/task/5min.php#L123-161)使用ツール: Task tool (subagent_type: db-change-analyzer)
このプロジェクト専用の特化エージェントを使用。mk1フレームワーク(FuelPHPベース)のパターンを理解している。
description: "コード解析とデータ変更洗い出し"
subagent_type: "db-change-analyzer"
prompt: |
指定されたコード [ファイルパス:行番号] を解析し、以下を特定してください:
1. このコードが呼び出すメソッド・関数を特定
2. 各メソッドでINSERT/UPDATE/DELETEされるテーブルを特定
3. 変更されるカラムを一覧化
4. 外部キー制約(ON DELETE CASCADE等)を確認
5. 結果をテーブル形式でまとめる
出力形式:
| テーブル | 操作 | 主要カラム |
|---------|------|-----------|
| table_name | INSERT/UPDATE/DELETE | column1, column2, ... |
Phase 1完了後: AskUserQuestionで確認を取る
質問: 「解析結果を確認してください。この内容を記憶に保存しますか?」
選択肢:
- はい、記憶に保存する
- いいえ、Phase 3に進む(記憶をスキップ)
- 修正が必要
使用ツール: Task tool (subagent_type: general-purpose)
description: "解析結果をメモリに保存"
subagent_type: "general-purpose"
prompt: |
agent-memoryスキルを使用して、以下の解析結果を保存してください:
[Phase 1の解析結果をここに渡す]
保存要件:
- 保存先: .claude/skills/agent-memory/memories/ 配下の適切なカテゴリ
- ファイル名: 解析対象に基づいて命名
- frontmatter: summary, created, tags, related を設定
保存が完了したらファイルパスを報告してください。
Phase 2完了後: AskUserQuestionで確認を取る
質問: 「記憶に保存しました。ロールバックSQLを生成しますか?」
選択肢:
- はい、SQLを生成する
- いいえ、ここで終了
使用ツール: Task tool (subagent_type: general-purpose)
description: "ロールバックSQL生成"
subagent_type: "general-purpose"
prompt: |
sql-generatorスキルを使用して、以下のテーブルをロールバックするSQLを作成してください:
[Phase 1で特定したテーブル一覧と操作]
要件:
- 外部キー制約を考慮した削除順序
- 変数設定(SET v.xxx)による柔軟なID指定
- 確認用SELECT文を含める
- ON DELETE CASCADEがある場合は親テーブル削除のみで可
出力先: .claude/skills/sql-generator/sqls/xba/ または bamanager/
生成が完了したらファイルパスを報告してください。
Phase 3完了後: 生成されたSQLファイルのパスを報告
各フェーズ間でコンテキストを渡す際は、前フェーズの結果を次フェーズのpromptに含める:
Phase 1 結果 → Phase 2 promptに含める → Phase 2 結果 → Phase 3 promptに含める
ユーザー: @src/xba/packages/xbacore/classes/task/5min.php#L123-161 のデータ変更を解析してロールバックSQLを作成して
Claude(オーケストレーター):
1. Task tool (db-change-analyzer) でコード解析 → 結果取得
2. 解析結果を表示 → AskUserQuestion で確認
3. Task tool (general-purpose) で記憶保存 → 結果取得
4. 記憶完了を表示 → AskUserQuestion で確認
5. Task tool (general-purpose) でSQL生成 → 結果取得
6. 完了報告(SQLファイルパス)
| Phase | エージェント | 特化内容 | |-------|-------------|---------| | 1 | db-change-analyzer | mk1フレームワークのDB操作パターンを理解 | | 2 | general-purpose | agent-memoryスキルを使用 | | 3 | general-purpose | sql-generatorスキルを使用 |
documentation
base リポジトリ(~/base)の主要ディレクトリ(dotfiles / home / local / scripts / docs)の README.md と、リポジトリ直下の README.md を、実際のファイル構成に合わせて更新・新規作成するスキル。各ディレクトリの中身を実際に走査して内容を導出するので、設定追加・ディレクトリ移動のあとに走らせると README が現状と一致する。「READMEを更新して」「READMEを作り直して」「base のドキュメントを整える」「/base-readme」などのリクエストで使用。
development
旧 badev-knowledge-base リポの docs/{苗字}/ 配下を、許可リストの現役メンバー 4 人 (takano / tokita / yukioka / ushiroyama) に絞って ba2-workspace/docs/ に同期するスキル。旧リポを source of truth として、衝突時は新リポ側を旧リポで上書きする。コミット・プッシュは行わず、git add までで停止する。「badev-knowledge-base から同期して」「旧リポのナレッジを取り込んで」「badev-knowledge-sync を走らせて」「旧 docs を同期」などのリクエストでトリガー。
documentation
チケット番号(BAX-XXXX)を伝えるだけで、ba2-ticket-knowledge-logger が記録したナレッジドキュメント(README.md / LOG.md / PLAN.md)を全ユーザー・全カテゴリ横断で自動検索して読み込み、要約して提示するスキル。別セッションで過去の調査・実装内容を読み直したいときに使う。「BAX-10987」「BAX-10325のナレッジ読んで」「前に調べたBAX-XXXXの記録」「BAX-XXXXの続きをやりたい」「BAX-XXXX読み直して」などのリクエストでトリガー。
tools
チケット番号(BAX-XXXX)とカテゴリ(調査/実装/その他)を指定して、会話ログとまとめファイルを記録し、JIRAチケットにもコメントとしてナレッジを投稿するスキル。「BAX-10325の調査を記録」「実装にチケット作成」「会話ログを保存」などのリクエストで使用。