GitHub fetch
fetch の実行は、すべてのGitHubタスクにおいて同じプロセスです。パース → 予測 → fetch または checkout。
手順
1. パース
URLまたはユーザーのテキストから owner/repo(およびIssue/PR番号が存在する場合はそれも)を解析します。
完了条件: owner/repo が特定された(またはユーザーに確認を求めた)。
2. 予測
checkout の前に判断します: このタスクでは複数ファイルの読み取りやリポジトリ全体の検索(Grep/Glob)が必要になりますか?
- いいえ → fetch ブランチ(手順3)。
- はい → checkout ブランチ(手順4)。
- タスクが途中で拡大した場合 → 2回目のアクセス前に再予測; 必要に応じてブランチを切り替えます。
完了条件: ブランチが選択され、記録された(fetch vs checkout)。
3. Fetch ブランチ
URLタイプに応じて GH-COMMANDS.md に従います。単一ファイルの場合: gh api repos/owner/repo/contents/path?ref=branch。
完了条件: 要求されたコンテンツが gh 経由で返された; checkout は開始されていない。
4. Checkout ブランチ
CHECKOUT.md に従います — ローカルパスを尋ね、リモートを確認し、承認があった場合のみクローンします。
完了条件: 検証済みのローカルパスが使用中、または既知の絶対パスで承認されたシャロークローン; そのツリーに対してRead/Grep/Globを実行可能。
到達手段
gh 経由(fetch ブランチ)または検証済みの checkout パスを通じてGitHubに到達します。gh がない、または認証されていない場合、WebFetchがフォールバックになります。
完了条件: すべてのアクセスが 予測 ゲートに従って fetch または checkout を経由した; WebFetchは真に gh が失敗した場合にのみ使用された。