Supermicro X11DPU/X10DRT-P BIOS Setup 操作。KVM スクリーンショット + キーストロークで BIOS メニューを操作する。BIOS 設定変更、確認、保存を行う。4-6号機 + 10号機対応。
run-with-dual-verify-in-pane
別の tmux ペインで動いている Claude Code インスタンスを、このセッションから tmux send-keys / capture-pane で駆動するオーケストレーション。
プランモード投入 → プラン再点検 (1 回目の検証) → ユーザ承認ゲート → auto mode 実装 → レポート未記載追記 → レポート矛盾再チェック (2 回目の検証) の定型フロー。長時間タスクをもう 1 体の claude に「ダブルチェック付きで」実行させ、要所だけ自分が監督したいときに使う。
含まれるファイル(1)
- SKILL.md13.0 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
run-with-dual-verify-in-pane スキル
このセッション (オーケストレータ) から、隣の tmux ペインで動く別の Claude Code を
tmux send-keys / capture-pane で操作し、プランニング → 実装 → レポート整備まで一気通貫で
駆動する。対象 claude が長時間タスク (例: TX1320 のフルセットアップ) を実行する間、自分は
状態を監視し、承認・質問・矛盾チェックなどの要所だけに介入する。
確立: 2026-06-19。TX1320 PVE ブリッジ構成 + RAID 初期化からのフルセットアップやり直しを、 右ペインの claude にプランモードで計画させ、2 段階の自己点検と人間承認ゲートを挟んで auto mode 実装させ、完了後にレポートの未記載追記 + 矛盾再チェックまで実行した手順を一般化。
大原則 (これだけは外さない)
- 入力は必ず 2 段階: ①
tmux send-keys -t <pane> -l "本文"でテキストだけ送る → ②capture-paneで入力欄に正しく入っているか目視 → ③tmux send-keys -t <pane> Enterで確定。 テキストと Enter を 1 回の send-keys に混ぜない (途中改行で誤送信する)。 - 送る前に必ず状態確認、送った後も必ず確認。盲打ちしない。対象ペインは人間が別途
操作している可能性もあるので、毎回
capture-paneで「今アイドルか」「入力欄に残骸はないか」を見る。 - 対象 claude のターン中に文字を送らない。生成中 (
esc to interrupt表示) に送ると 割り込み or キュー入りで壊れる。必ずアイドル復帰を待ってから送る。 - 判断が要る分岐 (プラン承認の可否など) は勝手に進めず人間に確認。本スキルの既定フローでも 「2 回目の承認」は必ず人間ゲート。
0. 対象ペインの特定
tmux list-panes -a -F "#{session_name}:#{window_index}.#{pane_index} #{pane_active} #{pane_current_command} #{pane_width}x#{pane_height} left=#{pane_left}"
pane_current_commandがclaudeのペインが対象。left=で左右、pane_activeで今フォーカスが どこか分かる。自分 (オーケストレータ) と対象を取り違えないこと。- 以降
<pane>はsession:window.pane形式 (例:pvese:0.1)。
1. ペイン状態の読み方 (capture-pane)
読み取りは Bash 禁止事項に触れない tmux capture-pane -t <pane> -p -S -<N> を使う
(末尾 N 行。フッターを見るなら -S -6 で十分、ダイアログ全文なら -S -30 等)。
フッター / 末尾行のマーカーで状態を判定する:
| 表示 | 意味 | 介入可否 |
|---|---|---|
esc to interrupt | 対象が生成中 (思考 or ツール実行) | 送信不可・待て |
· N shell · / ↓ to manage / N shell still running | 対象が自前のバックグラウンドシェル待ちでターンを yield | 送信不可・待て (シェル完了で自動再開) |
上記いずれも無し + ❯ の空入力欄 + (shift+tab to cycle) | 真にアイドル (入力待ち) | 送信可 |
Would you like to proceed? + 番号付き選択肢 | プラン承認ダイアログ | 選択操作 |
1. Yes ... 2. ... 3. Type something 等 | 質問 (AskUserQuestion) | 選択操作 |
1. Yes 2. Yes, and don't ask again 3. No 等 | 権限プロンプト (auto mode 外) | 選択 or 人間確認 |
⚠️
(shift+tab to cycle)は生成中でも表示される (... (shift+tab to cycle) · esc to interrupt)。 アイドル判定に単独で使わない。esc to interruptとshell系が両方とも無いことが真のアイドル条件。
⚠️ ゴーストサジェスト: 空の入力欄に薄字で過去の入力候補 (
❯ ::1 も許可に追加して等) が 出ることがある。これは未送信テキストではなくサジェスト。1 文字打つと消える。send-keys -lでテキストを送れば上書きされるので無視してよい。迷ったら 1 文字打って確認。
2. テキスト送信の作法
# ① テキストだけ送る (日本語 OK。-l = literal でキーシーケンス解釈を抑止)
tmux send-keys -t <pane> -l "送りたいプロンプト本文"
# ② 入力欄を確認
tmux capture-pane -t <pane> -p -S -4
# ③ 問題なければ Enter で確定
tmux send-keys -t <pane> Enter
# ④ 送信できたか (生成が始まったか) を確認
tmux capture-pane -t <pane> -p -S -4
- 複数行プロンプトは 1 行に畳む (改行をスペースに)。生の改行を送ると途中で確定する。 どうしても改行を保ちたいなら本文は 1 回で送らず工夫が要るが、基本は 1 行化で十分。
- 制御キーは
send-keys:Enter/Escape/BTab(= Shift+Tab) /Down/Up/Tab。
3. モード切替 (Shift+Tab = BTab)
BTab を 1 回送るごとにモードが循環する。送るたびに capture-pane -S -3 でフッターを確認:
auto mode on --BTab--> (通常 / ? for shortcuts) --BTab--> accept edits on --BTab--> plan mode on --BTab--> (auto mode on に戻る)
- 目標モードのフッター文字列 (
⏸ plan mode on等) が出るまで 1 回ずつ送って確認する。 循環順は版で変わりうるので回数を決め打ちせず、毎回確認。
4. ダイアログ操作 (承認 / 質問 / 権限)
- 選択肢は
❯が現在位置。Down/Upで移動しEnterで確定。番号直打ちよりDownで目的の行に❯を移動 →capture-paneで確認 →Enterが確実。 - プラン承認ダイアログ (
Would you like to proceed?):1. Yes, and use auto mode… 承認して auto 実行2. Yes, manually approve edits… 承認するが編集ごと確認4. Tell Claude what to change… 承認せずフィードバックを返す (これを選ぶと自由入力欄が開く)- → プランを「承認せず再点検させたい」ときは 4 を選んでフィードバック本文を送る。
- 質問ダイアログで自由記述したいときは
Type something.を選択 → 質問ダイアログが閉じ 通常の入力欄に戻るので、そこに回答をsend-keys -lで入力 → Enter。 (選択直後の capture ではUser declined to answer questionsと出るが、これは「定型選択肢を選ばず 自由入力に切り替えた」の意で正常。)
5. アイドル / 完了待ち (バックグラウンド監視)
対象がアイドル復帰 or ダイアログ停止するまで待つ監視スクリプトを tmp/<sid>/ に書いて
run_in_background: true で回す (.claude/ 配下は Bash 実行がブロックされるため skill 内には
置かず、下記を都度 tmp に展開する)。完了すると harness が自動で呼び戻す。
# tmp/<sid>/pane-wait.sh — 対象ペインが「真にアイドル」になるまで待つ
# usage: sh tmp/<sid>/pane-wait.sh <pane> [streak] [poll_secs] [max_secs]
# busy = 生成中(esc to interrupt) OR 自前のバックグラウンドシェル稼働中(N shell / to manage)
#!/bin/sh
set -u
PANE="${1:?usage: pane-wait.sh <pane> [streak] [poll] [max]}"
STREAK_TARGET="${2:-3}" # 連続アイドル確認回数 (誤検知防止)
POLL="${3:-15}" # ポーリング間隔秒
MAX="${4:-7200}" # 上限秒 (長時間タスクは大きめに)
elapsed=0; streak=0
while [ "$elapsed" -lt "$MAX" ]; do
snap=$(tmux capture-pane -t "$PANE" -p -S -6)
busy=0
printf '%s' "$snap" | grep -q "esc to interrupt" && busy=1
printf '%s' "$snap" | grep -q "to manage" && busy=1
printf '%s' "$snap" | grep -Eq "[0-9]+ shell" && busy=1
if [ "$busy" -eq 1 ]; then streak=0; else streak=$((streak+1)); fi
if [ "$streak" -ge "$STREAK_TARGET" ]; then echo "IDLE_OR_DIALOG"; exit 0; fi
sleep "$POLL"; elapsed=$((elapsed+POLL))
done
echo "TIMEOUT"; exit 0
- 監視が
IDLE_OR_DIALOGで返ったら 必ずcapture-pane -S -30で中身を見る。 「タスク完了 (空入力欄)」「承認/質問ダイアログ」「権限プロンプト」のどれかを判別してから次手を打つ。 - ダイアログ専用に待ちたい場合は
grep条件をkeep planning/Would you like to proceed/Type something等に変えた別スクリプトにする。 - ❗ 誤完了に注意: 対象が
sol-monitor等のバックグラウンドシェルを起動してターンを yield すると一瞬アイドルに見える。N shell/to manageを busy 扱いにしているのはこのため。 それでも疑わしいときは中身を読んで「完了サマリが出ているか」を確認する。
6. 既定オーケストレーションフロー (今回実施した手順)
「もう 1 体の claude にプランニングから実装・レポート整備まで任せ、要所を監督する」標準レシピ。
- (任意) 既存セッションを終了して作り直す: 対象が生成中なら
Escapeで中断 → アイドル確認 →send-keys -l "/exit"→capture-paneで候補にExit the CLIを確認 →Enter。シェルに戻ったらsend-keys -l "claude"→Enterで再起動。起動完了 (バナー + 入力欄) を確認。 - プランモードへ:
BTabを 1 回ずつ送り、⏸ plan mode onを確認 (§3)。 - メインプロンプト送信 (§2)。送信後
Considering…等で生成が始まったことを確認。 - 質問が出たら (§4): 定型選択肢で足りなければ
Type something→ 通常入力欄で回答 → Enter。 回答内容が要件を変えるなら勝手に決めず人間に確認。 - 1 回目の承認ダイアログ → 自己点検させる:
4. Tell Claude what to changeを選び、 「再度、計画に矛盾がないか確認してください」を送る (承認せずプランを磨かせる)。 - 2 回目の承認ダイアログ → 人間ゲート: プラン全文を
Readで読み (パスはフッターのPlanning: ~/.claude/plans/....md) 要約して人間に承認を求める。承認が出たら1. Yes, and use auto modeを確定。修正指示なら 4 でフィードバック。 - 実装を待つ (§5,
MAXを十分大きく)。長時間タスクは複数回 yield するのでN shellを busy 扱いした監視で「真の完了」だけ拾う。途中で質問/権限プロンプトで停止したら人間に取り次ぐ。 - 完了後: レポート未記載の追記: アイドル確認 → 「発見された事実でレポートに未記載の事項が ないか確認してください。追記する価値があるものは追記してください (価値判断は対象 claude に委ねる)」 を送る → 完了待ち。
- 最後: レポート矛盾の再チェック: 「再度、レポートに矛盾がないか確認してください」を送る → 完了待ち → 結果 (修正点) を人間に報告。
7. 進捗の見える化
各ステップ後に「何を送り、対象が今どの状態か」を人間に短く報告する。長時間待機に入る前に 「完了 or 停止で通知する」と伝えておく。停止 (質問/権限) を検知したらその画面の内容を引用して 人間の判断を仰ぐ。
落とし穴・既知の注意
- 送信のテキスト+Enter 混在で誤送信 → 必ず分離 (§2)。
(shift+tab to cycle)をアイドル指標に使う誤り →esc to interruptとshell系の不在で判定 (§1)。- バックグラウンドシェル yield を完了と誤判定 →
N shell/to manageを busy 扱い (§5)。 - ゴーストサジェストを未送信テキストと誤認 → 1 文字で消える/上書きされる (§1)。
.claude/配下のスクリプトをshで直接実行するとセンシティブパスでブロック → 監視スクリプトはtmp/<sid>/に Write して実行 (§5)。- モード循環の回数決め打ち → 版差で順序が変わる。毎回フッター確認 (§3)。
- 対象ペインを人間も触っている前提で、送信前後に必ず状態を読む。取り違え防止に §0 で
pane_active/left=を確認。
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
Dell ファームウェアダウンロード。Playwright で dl.dell.com から BIN を取得し firmimg.d7 を抽出する。
Mellanox SX6036 InfiniBand スイッチのシリアルコンソール操作。ステータス確認、show コマンド、IB 設定、FW 管理を行う。
iDRAC7 基本操作。SSH 経由で racadm コマンドを実行し、サーバ管理を行う。
iDRAC7 ファームウェアアップデート。段階的アップグレードパスに従い TFTP 経由で適用する。
Fujitsu iRMC S4 (TX1320 M3 等) の電源・BIOS・RAID 操作 + BIOS 設定リファレンス。Redfish (HTTPS + SECLEVEL=0) 経由の電源/ブート操作 + iRMC Web UI/KVM 経由の手動 BIOS/RAID 操作手順 + 全 BIOS 設定項目の網羅リファレンス (bios/)。training-tx1320 対応。