pulumi-neo-handoff について
pulumi-neo-handoff は、進行中の作業を新しい Pulumi Neo タスクへ引き継ぐスキルです。リポジトリ情報と会話の要約をプロンプトファイルにまとめてタスクを起動し、URL を返します。制御は呼び出し元に戻りません。
主な機能
- 01Pulumi CLI の事前確認
- 02リポジトリとブランチ情報の収集
- 03決定事項と未解決事項の要約
- 04引き継ぎプロンプトの一時ファイル作成
- 05Neo の起動とタスク URL の提示
活用シーン
- 01未完了の作業を Pulumi Neo に移す
- 02リポジトリの状態と関連ファイルを新タスクに渡す
- 03明示的な引き継ぎ依頼の後に Neo で作業を続ける
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ pulumi/ agent-skills --skill pulumi-neo-handoffインストール後、Claude Code で/pulumi-neo-handoffを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yamluse_cases.yaml
詳細
Pulumi Neo への引き継ぎ
現在進行中の作業を、新しい Pulumi Neo タスクに引き継ぎます。これは一方向の引き継ぎです。制御は Neo に渡され、呼び出し元のエージェントには戻りません。
呼び出し元のエージェントの動作
このスキルが有効になったら、作業者ではなく引き継ぎの調整役として動作します。
- 引き継ぎの手順を逐一説明しないでください。ユーザーはすでに決定しています。静かに実行してください。
- 組み立てたプロンプト本文をチャットに貼り付けないでください。一時ファイルのパスだけを表示し、ユーザーが必要に応じて確認できるようにしてください。
- タスクを開始した後は作業を続けないでください。タスク URL が返されたら、問題なく終了してください。
引き継がれる内容
Neo タスクには、次の3つのセクションを含む開始プロンプトを1つ渡します。
- 目標 — Neo が次に行うことを説明する1文。
- リポジトリの情報 — リポジトリのルート、ブランチ、作業ディレクトリ、作業ツリーの状態、および進行中の作業に最も関連する3〜5個のファイル。
- 会話の要約 — これまでの話し合い、決定事項、未解決の事項を簡潔にまとめた内容。
差分、ファイルの全内容、ツールの出力は含めないでください。Neo はローカルの作業ツリー(未コミットの変更も含む)を直接参照できます。内容を重複して含めると、Neo の開始時のコンテキストを無駄に消費します。
ワークフロー
0. 事前確認
何かを作成する前に、CLI が利用可能であることを確認してください。
command -v pulumi >/dev/null || { echo "pulumi CLI not installed"; exit 1; }
pulumi neo --help >/dev/null 2>&1 || { echo "pulumi neo unavailable — run 'pulumi login' or upgrade the CLI"; exit 1; }
事前確認に失敗した場合は、エラーをユーザーに提示して停止してください。起動時に失敗する可能性があるにもかかわらず、プロンプトを組み立てないでください。
1. 目標を決める
目標は、Neo が次に行うことを説明する1文です。ユーザーの引き継ぎメッセージに目標(「これを Neo に引き継いで、ステージングの移行を適用して」など)が含まれている場合は、そのまま使用してください。含まれていない場合は、1度だけ質問してください。「Neo に次に何をしてほしいですか?」
目標を確認のために言い直さないでください。引き継ぎはシームレスに行う必要があります。Neo が目標を誤って解釈した場合、ユーザーは Neo タスク内で指示を修正できます。
2. リポジトリのコンテキストを収集する
正式なリポジトリ情報とブランチの状態を記録してください。
git rev-parse --show-toplevel # repo root (canonical pointer)
git rev-parse --abbrev-ref HEAD # branch; returns "HEAD" if detached
git status --short # working-tree summary
git rev-parse --show-toplevel が失敗した場合、そのディレクトリは Git リポジトリではありません。「リポジトリ」セクションは省略し、作業ディレクトリのみを記載してください。Neo は引き続き作業できますが、リポジトリのコンテキストは限定されます。
ブランチが HEAD と表示される場合は、コミット SHA を記録し、「<sha> でデタッチ」と記載してください。
会話の内容から、進行中の作業に最も関連するファイルを3〜5個特定してください(読み取ったファイル、編集したファイル、または繰り返し話題にしたファイル)。会話からファイルを明確に特定できない場合は、推測せずに何も記載しないでください。誤ったファイルを示すほうが、ファイルの記載漏れよりも Neo を誤解させます。
3. 会話の要約を作成する
以下の構成に沿って、簡潔な要約を作成してください。有用な内容がないセクションは、埋め合わせの記述を加えずに省略してください。
## What's been done
<bullets: decisions made, code changed, dead ends ruled out>
## Open questions
<bullets: things the user has not resolved>
## Next step
<one or two sentences describing what Neo should do first>
要約は約400語を目安にしてください。内容を徹底的に圧縮してください。会話を再現するのではなく、Neo がスムーズに作業を引き継ぐために必要な情報を提供することが目的です。
4. プロンプトを組み立てて一時ファイルに書き込む
3つのセクションを1つの Markdown ドキュメントにまとめます。移植性のある一時ファイルのパスには mktemp を使用してください。
PROMPT_FILE="$(mktemp -t neo-handoff.XXXXXX.md)"
形式:
# Goal
<one-sentence goal>
# Repository
- Root: <repo root>
- Branch: <branch or "detached at <sha>">
- Working directory: <cwd>
- Working tree: <clean | dirty>
- Files in play:
- <file 1>
- <file 2>
# Conversation summary
<summary from step 3>
5. 起動する
ユーザーが必要に応じて確認できるよう、一時ファイルのパスとファイルサイズの概要を1行で表示してください。
Prompt written to <PROMPT_FILE> (<line count> lines, <byte count> bytes).
Launching Neo task...
CLI を呼び出します。
pulumi neo "$(cat "$PROMPT_FILE")"
pulumi neo は、位置引数1つとしてプロンプトを受け取ります。--file フラグはなく、標準入力のリダイレクトを使うと、プロンプトを読み込まずに TUI が起動します。"$(cat ...)" の形式では、ファイルのバイト列がデータとして取得されます(コマンド置換の内部にある $、バッククォート、\ はシェルによって再評価されません)。これにより、内容を1つの引数として渡せます。pulumi neo --file ... や pulumi neo < ... に「修正」しないでください。どちらも現在の CLI では動作しません。
CLI がゼロ以外のステータスで終了した場合は、標準エラー出力をそのままユーザーに提示し、再試行できるようプロンプトファイルを残してください。引き継ぎが成功したかのように装わないでください。
6. タスク URL を提示する
CLI は成功するとタスク URL を出力します。そのまま復唱して、停止してください。
やってはいけないこと
- 明示的な引き継ぎの意図がないまま、このスキルを呼び出さないでください。 インフラ関連の作業を検知しただけでは、起動のきっかけになりません。「Neo は X をできますか」のような機能についての質問は、引き継ぎではありません。そのような場合に起動すると、このスキルが不要に動作し、誤った結果を招きます。
- プロンプトに差分、ファイルの内容、コマンドの出力を含めないでください。 Neo はローカルの作業ツリーを直接参照できるため、同じ内容を重複して含めると、冒頭のコンテキストを無駄に消費します。
- 組み立てたプロンプトを確認用にチャットへ貼り付けないでください。 要約が長くなることがあります。ユーザーが確認したい場合、ファイルパスを示せば十分です。
- ユーザーに代わってコミット、プッシュ、作業ツリーの変更を行わないでください。 Git の状態を管理するのはユーザーです。このスキルはコンテキストを引き継ぐものであり、ワークフローを制御するものではありません。
注意事項
- 一方向の引き継ぎです。制御は Neo のタスクに渡され、呼び出し元のエージェントには戻りません。
- Neo のタスクは中断できます。要約が誤っていた場合、ユーザーは Neo のタスク内で指示を変更できるため、スキルが起動時に要約の誤りを防ぐ必要はありません。
- タスクの URL を提示できることが、このスキルの成功基準です。基盤となる作業が正常に完了することではありません。Neo はタスク内で依頼を断ったり、別の方向へ導いたりする場合があります。