Home›VS Code / Dev Env›VS Code Agents WindowでWorktree作成直後の初回ターンを固定化する
VS Code Agents WindowでWorktree作成直後の初回ターンを固定化する

VS Code Agents WindowでWorktree作成直後の初回ターンを固定化するStandardizing the Initial Turn After Worktree Creation in VS Code Agents Window

元記事を読むRead original articleqiita.com(新しいタブで開きます)(opens in a new tab)
AI2 点サマリSummary highlight
  • VS Code Agents WindowのsessionStart hookで、新しいGit worktreeを判定し、初回ターンへ初期化指示を自動注入する方法を解説する。
  • 固定Skillの手入力を省き、開始時の動作を統一したい開発者に役立つ。

VS Code Agents Window can use a sessionStart hook to detect a new linked Git worktree and inject a fixed initialization turn, helping developers start consistently.

本ページの本文と要約は AI による自動生成です。日本語版と英語版は言語ごとに独立して生成されるため、表現や詳しさが異なる場合があります。正確性は元記事 (qiita.com) をご確認ください。The body and summaries are AI-generated independently for each language, so wording and detail may differ. Verify accuracy at the original source (qiita.com).

要約と収集メタデータに基づく AI 解説。元記事全文の転載・翻訳ではありません。AI explainer based on the summaries and collected metadata, not a copy or translation of the full source article.

sessionStart

VS Code Agents WindowのsessionStart hookを使い、新しいlinked Git worktreeの作成直後に初期化指示を自動注入する方法が示されている。最初に/worktree-initのような固定Skillを手入力せず、セッション開始時の初回ターンを統一できる。

hooksの設定

まず、%USERPROFILE%\.copilot\hooks\を作成する。続いて同じ場所にworktree-init.jsonを置き、PowerShellから$HOME配下の.copilot/hooks/worktree-init.ps1を呼び出すよう設定する。呼び出しにはJoin-Pathが使われる。この設定により、新しいCopilotセッションが始まるとworktree-init.ps1が実行される。

worktreeの判定

worktree-init.ps1では、Console.In.ReadToEnd()によって入力を読み取る。event.sourceの値がnewかどうかを確認し、event.cwdを文字列として扱う。さらにgitDirとcommonDirをTrim()した値で比較し、新しいlinked Git worktreeを判定する構成となっている。初回ターンへ指示を渡す前に、hook側で最小限のGit確認を行う。

初回ターン

自動注入される指示では、このターンが新しいlinked Git worktree作成直後の初期化ターンであることを明示する。ユーザーが最初に送信したテキストはセッションまたはworktreeのラベルにすぎず、タスク要求として解釈しないよう求める。あわせて、ファイルの変更、作成、削除、整形、移動を行わないことも指定される。これにより、ラベル入力を作業指示と誤認せず、初回の振る舞いを固定できる。

VS Code Agents Window

VS Code Agents Window can standardize the initial turn immediately after creating a new linked Git worktree. Using a sessionStart hook removes the need to enter a fixed Skill such as /worktree-init manually and helps make session startup behavior consistent.

sessionStart hook

First, create the directory %USERPROFILE%\.copilot\hooks\. In that directory, create %USERPROFILE%\.copilot\hooks\worktree-init.json.

The configuration assigns a PowerShell command that invokes the script through & (Join-Path $HOME '.copilot/hooks/worktree-init.ps1'). With this setting in place, worktree-init.ps1 is called whenever a new Copilot session starts.

This provides the automation point for checking the session and supplying the intended initialization behavior without requiring the user to submit the fixed Skill as the first input.

New linked Git worktree

Next, create %USERPROFILE%\.copilot\hooks\worktree-init.ps1. The script reads its input with [Console]::In.ReadToEnd() and checks session information, including event.source and event.cwd.

The shown logic tests whether event.source is new. It also compares the trimmed values of gitDir and commonDir as part of determining whether the session follows the creation of a new linked Git worktree.

The hook therefore performs the relevant Git verification at session startup rather than relying on the user’s first submitted text to initiate that check.

Fixed initialization turn

When the hook identifies the relevant situation, it injects a fixed initialization instruction into the first turn. That instruction establishes that the turn immediately follows creation of a new linked Git worktree.

It also defines the user’s first submitted text as only the session or worktree label, not as a task request. The instruction states that the hook has already completed the minimum Git verification and directs the agent not to modify, create, delete, format, or move any files.

The result is a consistent initial turn for newly created linked Git worktrees, with the startup instruction supplied automatically by the sessionStart hook.

ポコとTECHガイドPoko & TECH Guide

ポコと当サイトのTECHガイドが、記事の要約と収集した情報から読みどころを語るAI生成の対話です。Poko and TECH Dashboard's own TECH Guide discuss the article's highlights in an AI-generated conversation based on its summary and collected source details.

  1. ポコPokosessionStart hookで、どうやって新しいGit worktreeだと見分けるの?How does the sessionStart hook tell that it’s a new Git worktree?
  2. TECHガイドTECH Guide新規セッション時にPowerShellを呼び、Gitのディレクトリ情報を照合します。対象なら固定の初期化指示を初回ターンへ差し込みます。On a new session, it runs PowerShell and compares Git directory information. If it matches the target case, it injects a fixed initialization instruction as the first turn.
  3. ポコPokoじゃあ、毎回「/worktree-init」って入力していた開発者が、同じ流れで始めやすくなるんだね?So developers who used to type “/worktree-init” each time can start with the same flow automatically?
  4. TECHガイドTECH Guideうん。固定Skillの手入力を省き、新しいlinked Git worktreeでの開始時の動作をそろえる方法として紹介されています。Yes. It removes the need to enter that fixed Skill manually and keeps startup behavior consistent for a new linked Git worktree.
  5. ポコPoko新しいworktreeを見つけたら、最初の入力を作業依頼にせず、初期化から始める仕組みなんだね。Got it: when it finds a new worktree, it treats the first input as setup context rather than a task request.
  6. TECHガイドTECH Guideそう。ただし対象は新しいlinked Git worktreeの新規セッションで、初期化指示ではファイルを変更しないよう定めています。Right. But it targets new sessions for newly linked Git worktrees, and the initialization instruction explicitly says not to modify any files.
記事情報・収集記録Article details & collection record
出典Source
Qiita VSCodeコミュニティCommunity
公開日時 (JST)Published (JST)
収集日時 (JST)Collected (JST)
配信形式Format
ブログBlog
原文言語Source language
JA
重要度の位置づけImportance in this lane
InfoInformational(VS Code / Dev Env 58件中、同等以上 58件)(58 of 58 VS Code / Dev Env entries are equal or higher)
出典の平均重要度(掲載直近 30 件・最大 30 件)Source average (last 30 listed, up to 30)
1.7 / 31=情報 · 2=中 · 3=高1=Info · 2=Medium · 3=High
情報の寿命Half-life
中期 (チュートリアル)Medium-term (tutorial)

🔷VS Code / Dev Env の他の記事More from VS Code / Dev Envもっと見る →View more →

ページ上部へScroll to top