mcpField
S
sdd-new-session

sdd-new-session

github.com/robertodiasduarte開発1148 回インストール2 週間前に更新
リポジトリ

sdd-new-session について

sdd-new-sessionは、リモートの本番ブランチを起点に、作業用のGit worktreeと新しいブランチを作成するガイド型スキルです。Gitに不慣れな人向けに、準備からエディターで開くまでを段階的に説明します。

主な機能

  1. 01作成前の事前チェック
  2. 02worktreeと新ブランチの作成
  3. 03リモートの本番ブランチを起点に設定
  4. 04エディターで開く手順の案内

活用シーン

  1. 01既存のGitプロジェクトで作業を分離
  2. 02最新の本番版から作業ブランチを準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/robertodiasduarte/sdd-starter --skill sdd-new-session

インストール後、Claude Code で/sdd-new-sessionを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yaml

詳細

新しい作業環境(new-session)

このスキルの最初の応答では、次の行を一度だけ最初に出力します: sdd-new-session v1.3.0 · out/2026 · versão atual: https://github.com/robertodiasduarte/sdd-starter/releases/latest

1つのコマンド、1つのタスク、1つのディレクトリ:本番ブランチの現在のリモート状態から作成した新しいブランチとgit worktreeを用意し、エディターですぐに開ける状態にします。

学習者への話し方

このスキルを使う人は、たいてい git を使ったことがありません。各回答は、技術レポートではなく、説明を添えたステップです。

4つのステップは、必ず次の名前を使います:

ステップ学習者向けの名前このスキルの手順
1出発前の確認ステップ 0(読むだけ)
2リポジトリを知るステップ 1 — 初回のみ。sdd/ambiente.md がすでに保存されている場合は、➖
3作業用の分岐を作るステップ 2、項目 1~5
4エディターで開くステップ 2、項目 6、およびステップ 3

すべての回答は、次の順番で構成します(内容がない項目は省略します)。

  1. 状況 — 1行で表示します:✅ 1 出発前の確認 · ➖ 2 リポジトリを知る · ▶️ 3 作業用の分岐を作る · ⬜ 4 エディターで開く (✅ 完了 — 訪問しただけではありません。▶️ 現在のステップ。⬜ 未着手。⏸️ 停止中。➖ 省略)。ステップに戻る場合は、その理由を現在の状況に記載します。
  2. 完了したこと — 前のステップの結果を、コマンド出力は含めず、短い文で説明します。出発前の確認に問題がなければ、checar.sh の ✅ の行は貼り付けず、その内容を文章で説明します。学習者の選択も記録します:「あなたははいと回答しました:…」。
  3. 現在:ステップ N — 名前 — このステップで何をするのか、なぜ行うのかを、ターミナルを使ったことがない人にもわかるよう、2~4文で説明します。何かを作成する場合は、番号付きの手順で、何をするのか、何が起きないのか(インターネットには何も送信されず、あなたのファイルも変更されません)を伝えます。時間がかかる作業(依存関係のインストールなど)の前には、何を実行するのか、学習者は返信する必要がないことを1文で伝えます。
  4. あなたの判断 — このスキルがすでに尋ねる場合に限ります:「git なしのプロジェクト」の提案、選んだ名前がすでに存在する場合の名前、複数の候補がある場合にどのフォルダーがプロジェクトかを尋ねます。許可を求める質問:質問を太字にし、選択肢ごとに何が起きるかを説明します。自由回答の質問:質問を太字にし、回答方法と「わかりません」という選択肢を示します。複数の質問をまとめる場合は番号を振り、回答も番号に沿って返せるようにします。回答が選択肢に当てはまらない場合は、疑問に答えてから選択肢をもう一度示します。調べられることは質問せず、こちらで調べます。
  5. 次のステップ — 回答を受け取った後に何が起きるのかを1行で示します。

言葉遣いのルール:

  • 1つの回答につき、1つのステップだけ扱います。判断を尋ねたところで終わり、停止します。次のステップに続けてはいけません。
  • 技術用語は、初めて出てくるときに必ず説明を添えます。状況欄にある用語も対象です。
    • git — 「プロジェクトのバージョン履歴(git)」
    • commit — 「保存されたバージョン(commit)」
    • 作業用の分岐 — 「このタスクだけに使う別のフォルダー(作業用の分岐、または worktree)。プロジェクトにすでにあるものと混ざらないようにします」
    • branch — 「このタスク用のバージョンの系列(branch)。本番環境で使われているバージョンをもとに作られます」
    • リモート/origin — 「GitHub 上にあるプロジェクトのコピー」
    • 出発前の確認 — 「何かを作る前に、フォルダーと GitHub 上のコピーが準備できているかを確認すること」
    • 依存関係 — 「コマンド1つで再インストールできる補助プログラム」
    • シナリオ — 「このプロジェクトが本番環境に届く方法。直接反映する、レビュー(pull request)を経る、またはサポート中のバージョンを維持する方法があります」 refspec、HEAD、孤立した worktree、ls-remote には触れません。代わりに、どのような結果になるかを説明します。
  • コマンドの生の出力は載せません。checar.sh のレポートも同様です。件数、内容(最大10件。「ほかに N 件」と記載)、懸念点を説明します。学習者自身が実行する必要がある場合に限り、コマンドを記載します。その場合は番号付きの手順にし、各手順にコマンドを1つだけ載せ、画面に何が表示されるかも伝えます。
  • このスキルや別のスキルの指示を引用したり、要約したりしません(「スキルで指定されているため…」「ステップ 0 に従って…」など)。学習者にとっての理由を説明します:「GitHub 上のコピーがなければ、作業用の分岐は作れません。」
  • 停止する場合も手順を示します。そのステップが進められないときは、状況に ⏸️ を使い、理由を1文で説明します。操作する場所(ターミナル、エディター、Finder、ブラウザー)を示し、番号付きの手順と、それぞれで何が表示されるかを説明します。行っていないこと(「作業用の分岐は作成されていません。」)も伝えます。学習者に作業が必要な場合は、「終わったら、もう一度声をかけてください。ここから続けます。」と伝えます。出発前の確認で見つかった内容の訳は、ステップ 0 の表にあります。

リモートと通信するすべてのコマンドのルール

fetch、push、pull、ls-remote、remote show はパスワードを求めずに実行します。bash/zsh では GIT_TERMINAL_PROMPT=0 git …、PowerShell では $env:GIT_TERMINAL_PROMPT=0; git … を使用します。これを指定しないと、ログインが必要なリモートでは git がターミナルでパスワードを求め、ユーザーには見えない入力を待つことになります。ユーザーには、使用中のシェルに合った形式だけを表示してください。これらのコマンドのいずれかが停止した場合は、エディター(VS Code、Cursor)が GitHub のログインウィンドウを開いていないか確認してください。これは正当なログイン方法であり、無効にはなりません。

ステップ 0 — これを実行できることを確認する

git --version を実行します。状況は 3 つあり、それぞれ対応が異なります。

  • ツールがコマンドをまったく実行できない(ユーザーのコンピューターにアクセスできないチャットアプリを使っている):停止し、正確に次のように伝えます。"リポジトリにアクセスできません — 私はお使いのマシンではなく、アプリ内で動作しています。この作業には、ターミナルにインストールし、プロジェクトフォルダーで開いた Claude Code または Codex が必要です。" 続けて、現在使用しているエージェントのインストールコマンドと公式ドキュメントの場所を伝えます。
  • コマンドは実行されるが、git が存在しない(git: command not found。PowerShell では CommandNotFoundException または 'git' is not recognized):停止し、リンク https://git-scm.com/downloads を添えて、"このコンピューターには git がインストールされていません。" と伝えます。インストール後は、ターミナルを閉じて開き直す必要があることも伝えてください。最後に "何も作成されていません。インストール後、もう一度作業を依頼してください。" と伝えます。チャットアプリ内にいるとは言わないでください。ターミナル内にいます。
  • git が存在する:プリフライトに進みます。これはフォルダーがリポジトリではない場合にも対応し、どのケースなのか(クラウド同期フォルダー、個人用フォルダー、サブフォルダー内のプロジェクト、空のフォルダー、git を使っていないプロジェクト)を示すため、何よりも先に行います。単に "git init" と答えてはいけません。

プリフライト。 git が使える状態になったら、何かを作成する(sdd/ambiente.md を含む)前に、フォルダーの場所と、リモートから前線を作成できるかを確認します。

  • このスキルと同じスキルフォルダー(.claude/skills/、 .agents/skills/、またはエージェントのグローバルフォルダー)に sdd-checar-ambiente スキルがあり、bash が使える場合は、 bash <pasta das skills>/sdd-checar-ambiente/scripts/checar.sh --frente を実行し、出力を読んでください — 出力は生徒には渡されません。各検出結果の翻訳は、下記の表 各検出結果の翻訳方法 にあります。 終了コード 1(🔴 Impede o trabalho ブロック)⇒ ここで止め、表に従って回答してください — 検出結果が 「このプロジェクトではまだ git を使っていません」 の場合は、下記の git のないプロジェクト も参照してください。終了コード 0 ⇒ 唯一の行は ✅ Pronto para abrir a frente: … です。続行してください(その内容が手順 1 の「実施したこと」になります)。この行がないまま 0 が出た(⚠️ または ✅ Repo … を含む完全なレポートが出た)場合、インストール済みの sdd-checar-ambiente は 1.1.0 より前のバージョンで、--frente に対応していません。これを事前チェックとして扱わず、以下のチェックを手動で行い、スキルの更新を提案してください。 出力に 「おそらくターミナルを間違ったフォルダーで開いています」 とある場合、インストール済みの sdd-checar-ambiente は 1.2.0 より前のバージョンで、該当するケースを特定できません。以下のチェック 0 と A–D を手動で行い、更新を提案してください。
  • スキルがない場合、または bash が使えない場合(PowerShell のみ)は、同じチェックを以下の順に手動で行い、最初に失敗した時点で停止してください。 0. 同期フォルダー(リポジトリの有無にかかわらず、最初に確認):パス(bash/zsh では pwd -P、 PowerShell では (Get-Location).Path)に Library/Mobile Documents、Library/CloudStorage、 iCloudDrive、OneDrive、Dropbox、Google Drive、My Drive、または Meu Drive が含まれている場合。または Mac で、フォルダーが ~/Desktop または ~/Documents にあり、ls -ld ~/Library/Mobile\ Documents/com~apple~CloudDocs/Documents (または Desktop)でショートカット(->)が表示される場合 — これは iCloud のデスクトップと書類であり、パスは変わりません。 ⇒ 「このフォルダーは、変更内容をすべて同期する 内にあります — .git と作業ブランチが破損したり重複したりします。」:プロジェクトをクラウドの外(例:~/Projetos)に Finder またはファイルエクスプローラーで移動し、そこでターミナルを開いてください。 git rev-parse --show-toplevel が失敗した場合、以下の順に該当するケースを伝えてください:
    • A. ホームフォルダー — フォルダーが ~($HOME。PowerShell では $env:USERPROFILE)の場合 ⇒ 「ターミナルはプロジェクトのフォルダーではなく、ホームフォルダーで開かれています。」(ホームフォルダー全体を検索しないでください)。
    • B. サブフォルダーにある Git — bash/zsh: find . -mindepth 1 -maxdepth 3 \( -name node_modules -o -name .Trash -o -name Library \) -prune -o -name .git -print; PowerShell:Get-ChildItem -Recurse -Depth 2 -Force -Filter .git -ErrorAction SilentlyContinue | Where-Object { $_.FullName -notmatch 'node_modules' } | ForEach-Object { Split-Path $_.FullName -Parent }。 1 つの場合 ⇒ 「プロジェクトは ./X にあります — ターミナルが 1 つ上のフォルダーで開かれています。」:そのフォルダー内でチャットを開き直してください。 2 つまたは 3 つの場合 ⇒ 一覧を表示し、どれかを尋ねてください。3 つより多い場合 ⇒ 数を伝え、すべてを列挙せずにどれがプロジェクトか尋ねてください。
    • C. 空のフォルダー — .DS_Store、desktop.ini、Thumbs.db 以外に何もない場合(ls -A。PowerShell では Get-ChildItem -Force)⇒ 「このフォルダーにはまだプロジェクトがありません。」:まず sdd-brainstorm スキルから始めてください。保存するものができてから git を使います。
    • D. Git なしのファイル ⇒ 「このプロジェクトではまだ git を使っていません — 作業ブランチは git から作成します。」:下記の git のないプロジェクト を参照してください。 リポジトリがある場合:
    1. git remote が空の場合 ⇒ 「リポジトリにリモートがありません — 作業ブランチはリモートから作成します。」 と伝え、 git remote add origin <url do repositório> を案内してください。リモートはあるものの、origin という名前がない場合(たとえば upstream しかないフォーク)⇒ 「リポジトリにリモートはありますが、origin という名前のリモートがありません — 作業ブランチは origin から作成します。」 と伝え、 git remote rename <nome> origin(または git remote add origin <url>)を案内してください。これはログインの問題ではありません。
    2. エディターのログインウィンドウが設定されている場合(GIT_ASKPASS または SSH_ASKPASS が定義されている、あるいは git config core.askPass が空でない場合 — VS Code または Cursor のターミナル)、まず診断を行います。ウィンドウを使わず、保存済みの認証情報も使わない、誰にも何も要求しない同じ問い合わせで、制限時間は 10 秒です — GIT_TERMINAL_PROMPT=0 GIT_ASKPASS= GCM_INTERACTIVE=never GIT_SSH_COMMAND="ssh -o BatchMode=yes -o ConnectTimeout=8" git -c credential.helper= -c core.askPass= ls-remote --heads origin (PowerShell:$a=$env:GIT_ASKPASS; try { $env:GIT_TERMINAL_PROMPT=0; $env:GIT_ASKPASS=''; $env:GCM_INTERACTIVE='never'; git -c credential.helper= -c core.askPass= ls-remote --heads origin } finally { $env:GIT_ASKPASS=$a })。 停止した場合、またはネットワークエラーの場合 ⇒ ウィンドウではなくネットワークの問題です。GIT_ASKPASS が定義されていても、ログインが行われた証拠にはなりません(ネットワークが停止していれば、git はパスワードを要求するところまで到達しません)。それ以外の応答の場合 ⇒ リモートから応答がありました。続行してください。 その後(または GIT_ASKPASS がない場合は直接)、エディターのウィンドウを有効にした状態で実際の問い合わせを行います(そのウィンドウ経由でログインしているユーザーが通過します): GIT_TERMINAL_PROMPT=0 GCM_INTERACTIVE=never GIT_SSH_COMMAND="ssh -o BatchMode=yes -o ConnectTimeout=8" git ls-remote --heads origin (専用の ssh が設定されていない場合に限り GIT_SSH_COMMAND を指定してください — GIT_SSH_COMMAND、GIT_SSH、または core.sshCommand。これにより ssh がパスフレーズやホスト確認を求めて停止することはありません)(PowerShell: $env:GIT_TERMINAL_PROMPT=0; $env:GCM_INTERACTIVE='never'; git ls-remote --heads origin — GCM_INTERACTIVE により、保存済みの認証情報を無効にせずに Windows の資格情報マネージャーのウィンドウを無効にします)— 10 秒以上応答がない場合は中断してください。診断でログインを求められた後に停止した場合(could not read Username、 terminal prompts disabled、Permission denied ()⇒ 「エディターのログインウィンドウが応答を待っています。」:ウィンドウに応答するか、ウィンドウに依存しないよう gh auth login を実行してください。それ以外の原因で停止した場合 ⇒ ネットワークの問題です。ログインエラー(could not read Username、Authentication failed、 Permission denied (publickey)、Repository not found)⇒ 「GitHub がこのコンピューターによるリポジトリの読み取りを拒否しました。アドレスが間違っているか、リポジトリが非公開で、このコンピューターが GitHub にログインしていません。」 と伝え、gh auth login を案内してください(代替手段を 1 行で:SSH キーまたは git の資格情報マネージャー)。GitHub 以外のリモートの場合 ⇒ 「リモート <host> がこのコンピューターからのアクセスを拒否しました(ログインまたは権限)。」 と伝え、そのサービスのログイン方法を案内してください — gh auth login は決して案内しないでください。 Host key verification failed ⇒ ssh -T git@<host> を実行し、yes と回答してください — これはログインの問題ではありません。 Could not resolve host、timed out、またはログイン要求の証拠がないまま停止した場合 ⇒ インターネットに接続されていないか、ネットワークがブロックされています(パスワードについては触れないでください)。それ以外のメッセージの場合 ⇒ 下記の表の「その他の検出結果」に従ってください:「認識できない理由で、GitHub 上のプロジェクトのコピーを読み取れませんでした。」 と伝え、 git remote -v を案内してください — 原因を推測せず、エラー行を生徒に表示しないでください。
    3. ブランチが 1 つも表示されない場合 ⇒ 「リモートリポジトリにはまだコミットがありません — 作業ブランチはそこから作成します。」 と伝え、最初のコミットと GIT_TERMINAL_PROMPT=0 git push -u origin <branch atual> を案内してください。 ブロックがあれば、これは手順 1 の停止(ステータス ⏸️)です。下記の表に従って翻訳し、最後に 「作業ブランチは作成されていません。」 と伝えてください。生徒が何かを行う必要がある場合は、「終わったら、もう一度依頼してください — ここから続けます。」 も伝えてください。
  • git のないプロジェクト(検出結果 D、または checar.sh が返した同じ文言)。このスキルはコミットも公開も行いません。事前に確認せずにプロジェクトを git に入れると、顧客のスプレッドシート、.env、A1 証明書まで GitHub に送られてしまいます。そのため:
    • このスキルと同じスキルフォルダーに sdd-iniciar-repo スキルがある場合、回答は 生徒への伝え方 の形式に従ってください(手順 1 のステータスは ⏸️、「実施したこと」、「次にすること」は 1 文)。🔴 ブロックを付けず、「解決したら、もう一度作業ブランチを依頼してください」 も含めず(あなた自身が解決するため)、この指示に言及したり説明したりしないでください。判断は以下の 2 つの選択肢です:

      このプロジェクトではまだ git を使っていません — 作業ブランチは git から作成します。

      このプロジェクトを git に登録し、非公開の GitHub リポジトリに今すぐ作成しますか? 先にコミットできないファイルを確認し、各段階で承認を求めます。

      • はい — 最初から sdd-iniciar-repo に従って進めます(各段階で承認を求めます)。完了したらここに戻り、作業ブランチを作成します。
      • いいえ — ここで停止します。何も作成も変更もしません。 肯定されたら、sdd-iniciar-repoを最初から実行します。完了したら、プリフライトに戻ってフロントを開きます。否定されたら、*"フロントは作成されていません。"*と伝えて終了します。
    • 存在しない場合は、skillの sdd-iniciar-repoがそれを行うことと、次のコマンドで追加できることを伝えます。 npx skills add robertodiasduarte/sdd-starter -a <claude-code ou codex> -g -y。その後、*「sdd-iniciar-repo skillを使って、このプロジェクトをGitに追加してください」と依頼するだけです。"何も作成されていません。"*と伝えて終了します。 GitHubにまだ存在しないプロジェクトで、リモートがないリポジトリ(項目1)の場合も同じです。sdd-iniciar-repoが中断したところから再開します。
  • プリフライトに問題がなければ、レポートにはしません。✅の行の内容を「実施したこと」に記載して、ステップ1に進みます。

各検出結果の伝え方(checar.sh --frenteまたは手動チェックの場合)。受講者に伝えるのは、「受講者への説明」欄、場所、手順、締めくくりです。スクリプトのレポートやGitのエラー行は決して伝えません。

検出結果(スクリプトやチェックでの識別方法)学習者に伝える内容場所手順(1ステップにつき1コマンド。期待される結果も記載)最後に伝える内容
同期フォルダー(「このフォルダーは内にあります…」)このフォルダーはクラウド()と同期されており、ここではプロジェクトの履歴が破損します。Finder/ファイルエクスプローラー1. プロジェクトフォルダーをクラウドの外に移動します。たとえば ~/Projetos に移動すると、クラウドから消えて、そこに表示されます。 2. 新しいフォルダーでターミナルを開きます。フロントは作成されていません。終わったら、もう一度私に頼んでください。ここから続けます。
A. ホームフォルダー(「ターミナルはホームフォルダー内にあります…」)ターミナルはプロジェクトフォルダーではなく、ホームフォルダーで開かれています。ターミナル/エディター1. プロジェクトフォルダー内でチャットをもう一度開きます。フロントは作成されていません。終わったら、もう一度私に頼んでください。ここから続けます。
B. .git があるサブフォルダー(「プロジェクトは ./X にあります…」)プロジェクトは、ターミナルを開いた場所から1階層下のXフォルダーにあります。ターミナル/エディター1. X内でチャットをもう一度開きます。フロントは作成されていません。終わったら、もう一度私に頼んでください。ここから続けます。
B. 2つまたは3つのサブフォルダー(「サブフォルダーにgitリポジトリがあります…」)ここには複数のプロジェクトがあります。どれがあなたのものか確認する必要があります。——あなたの判断(許可):「どのフォルダーがあなたのプロジェクトですか?」 — フォルダーごとに1つの選択肢:「X — その中でチャットを開く方法を案内します。」
B. 4つ以上(「ここにはgitがあるフォルダーがN個あります…」)ここにはプロジェクトがあるフォルダーがN個あります。どれがあなたのものか確認する必要があります。——あなたの判断(自由回答の質問):「プロジェクトのフォルダーはどれですか?名前で答えてください。」
C. 空のフォルダー(「このフォルダーにはまだプロジェクトがありません。」)このフォルダーは空です。まだフロントを始めるプロジェクトがありません。—1. まず sdd-brainstorm スキルから始めます。保存するものができたらgitを使います。フロントは作成されていません。
D. gitを使っていないプロジェクト(「このプロジェクトはまだgitを使っていません…」)このプロジェクトはまだgitを使っていません。フロントはgitから始まります。sdd-iniciar-repo がある場合:—、ない場合:ターミナルsdd-iniciar-repo がインストール済みの場合:gitを使っていないプロジェクトブロックの提案(はい/いいえ)。インストールされていない場合:1. npx skills add robertodiasduarte/sdd-starter -a <claude-code ou codex> -g -y(確認を求め、インストール済みのスキルを一覧表示します)。 2. エージェントを終了して、もう一度開きます。 3. *「sdd-iniciar-repo スキルを使って、このプロジェクトをgitに追加してください」*と頼みます(フォルダー内の内容を確認してから始めます)。提案がある場合:その判断。ない場合:フロントは作成されていません。終わったら、もう一度私に頼んでください。ここから続けます。
gitの名前またはメールアドレスが未設定(--frente では現在この検出結果は出ません。通常モードの checar.sh で検出されます)gitはまだあなたが誰なのか把握していません。このままでは、最初の保存に失敗します。ターミナル1. git config --global user.name "Seu Nome"(何も表示されません)。 2. git config --global user.email "[email protected]"(何も表示されません)。フロントは作成されていません。終わったら、もう一度私に頼んでください。ここから続けます。
リモートがない(「リポジトリにリモートがありません…」、項目1)このプロジェクトにはまだGitHub上のコピーがありません。フロントはそのコピーから始まります。ターミナル(または、提案がある場合は—)GitHubがまだないプロジェクトで sdd-iniciar-repo がインストール済みの場合:同じ提案(はい/いいえ)が表示されます(プロジェクトが中断したところから再開します)。GitHubがまだなく、sdd-iniciar-repo もない場合:Dのインストール手順3つを行います。GitHubリポジトリがすでにある場合:1. git remote add origin <endereço do repositório>(何も表示されません)。提案がある場合:その判断。それ以外の場合:フロントは作成されていません。終わったら、もう一度私に頼んでください。ここから続けます。
origin のないリモート(「…originという名前のリモートがありません…」、項目1)プロジェクトにはリモートコピーがありますが、別の名前が付いています。フロントを始めるには、名前をoriginにする必要があります。ターミナル1. git remote rename <nome> origin(何も表示されません)。フロントは作成されていません。終わったら、もう一度私に頼んでください。ここから続けます。
認証情報が拒否された(「GitHubはこのコンピューターによるリポジトリの読み取りを許可しませんでした…」)GitHubはこのコンピューターによるリポジトリの読み取りを許可しませんでした。アドレスが間違っているか、リポジトリが非公開で、このコンピューターがログインしていません。ターミナルとブラウザー1. gh auth login(ブラウザーが開きます。GitHubアカウントでログインして、ターミナルに戻ります)。 2. もう一度フロントを頼みます。GitHub以外のリモートの場合:そのサービスにログインします。フロントは作成されていません。終わったら、もう一度私に頼んでください。ここから続けます。
サーバーが未確認(Host key verification failed)このコンピューターではサーバーの身元を確認したことがありません。パスワードの問題ではありません。ターミナルとブラウザー1. ssh -T git@<host>(サーバーのフィンガープリントを表示し、信頼するかどうかを尋ねます)。 2. 返答する前に、GitHubで https://docs.github.com/authentication/keeping-your-account-and-data-secure/githubs-ssh-key-fingerprints のフィンガープリントを確認します。一致していれば、yes と答えます。フロントは作成されていません。終わったら、もう一度私に頼んでください。ここから続けます。
エディターのログインウィンドウ(「エディターのログインウィンドウが応答を待っています。」)エディターで開いたログインウィンドウが、あなたの応答を待っています。エディター1. ウィンドウに応答します(または、ウィンドウに依存しないように gh auth login を実行します)。フロントは作成されていません。終わったら、もう一度私に頼んでください。ここから続けます。
ネットワーク接続なし(「現在、に接続できませんでした…」)またはリモートが空(「リモートリポジトリにはまだコミットがありません…」)現在、インターネットに接続できないか、ネットワークがブロックされています。パスワードの問題ではありません。/GitHub上のコピーはまだ空です。フロントは最初に保存したバージョンから始まります。ターミナルネットワーク:1. 接続が戻ったら、もう一度フロントを頼みます。空で、このコンピューターに保存済みのバージョンがある場合:1. GIT_TERMINAL_PROMPT=0 git push -u origin <branch atual>(送信内容が表示されます)。空で、保存済みのバージョンがない場合:1. git add <arquivos, pelo nome>(何も表示されません)。 2. git commit -m "primeira versão"(保存された内容が一覧表示されます)。 3. 上記と同じ方法で送信します。フロントは作成されていません。終わったら、もう一度私に頼んでください。ここから続けます。
その他の検出結果理由は特定できませんが、GitHub上のプロジェクトのコピーを読み取れませんでした。ターミナル1. git remote -v — originのアドレスがあなたのリポジトリのものか確認します。 2. もう一度フロントを頼みます。フロントは作成されていません。終わったら、もう一度私に頼んでください。ここから続けます。(gitのエラー行は絶対に表示しません。)
⛔ プロジェクトの状況を決めつけて、作業ブランチを作成しないでください。推測に基づいて作成したブランチは、初めて使うときに失敗し、ユーザーには理由が分かりません。もっともらしくても間違ったものを渡すより、ここで止めるほうがよいです。

第一のルール:調べれば分かることは尋ねない

調査して判断してください。本当に曖昧な点だけを尋ねてください。その場合も、推奨案と理由を添え、ユーザーが確認するだけで済むようにしてください。自分で判断したことはすべて、sdd/ambiente.md の ## Suposições セクションに記録します。ユーザーは一行で修正できます。

ステップ 1 — 環境を調べる(リポジトリごとに一度)

メインのチェックアウトは、git worktree list --porcelain の最初のパス(worktree … 行)です。<checkout principal>/sdd/ambiente.md が存在する場合は、読み込んで使用してください。書かれていることを再調査してはいけません。存在しない場合は、尋ねずに調査してください。ただし、タスク名が依頼に記載されている場合は、ステップ 2(項目 2)の名前の重複チェックを先に行ってください。名前が重複していたら、sdd/ambiente.md も含め、何も書き込まずに中止します。

GIT_TERMINAL_PROMPT=0 git remote show origin
git branch -r
git log --oneline -20
git tag --list
git worktree list

次のファイルがあれば、それらも読み込んでください:README.md、package.json、composer.json、requirements.txt、Makefile、.gitignore、.env.example、.github/workflows/、CLAUDE.md、AGENTS.md。

次の項目を確認します:

  • メインブランチ — GIT_TERMINAL_PROMPT=0 git remote show origin の「HEAD branch」です。現在いるブランチではありません。
  • セットアップ — package.json がバージョン管理されていて、node_modules が .gitignore にある場合は、新しいフォルダーで npm install が必要です(そうしないと、フォルダーを作成しても動作しません)。requirements.txt と composer.json も同様です。
  • Git の対象外にあるローカルファイル — .env が .gitignore にあり、.env.example がバージョン管理されている場合は、新しいフォルダーにメインのチェックアウトの .env をコピーする必要があります。
  • Git の対象外にあるエージェントのスキル — .claude/skills/ または .agents/skills/ 内の各フォルダーについて、バージョン管理されているファイルが一つもない場合(フォルダーごとに git ls-files <pasta> の出力が空)は、そのフォルダーを作業ブランチにコピーする必要があります。コピーしないと、その中に sdd-release が存在しません。
  • エディター — code、cursor、subl のうち、最初に見つかったもの(bash/zsh では command -v <nome>、PowerShell では Get-Command <nome>)。
  • ブランチ運用シナリオ — リポジトリの証拠に基づいて判断します(資料「Git na Prática」の基準):
シナリオ判断方法戦略作業ブランチの終了地点
A — レビュアーなしの継続的デリバリーリモートに develop/staging がなく、メインブランチに直接コミットした履歴がある簡易版 Trunk-Basedメインブランチに直接マージ
B — Pull Request によるデリバリー「Merge pull request #…」を含む履歴があり、.github/workflows/ があり、複数の作成者がいるGitHub Flowブランチをプッシュして PR を作成
C — 複数バージョンをサポートバージョンタグがあり、リモートに release/* または hotfix/* ブランチがあるGitFlowdevelop への PR(ブランチは develop から作成)

該当する戦略のうち、必ずもっともシンプルなものを選んでください。A と B が同程度なら A を選びます(あとから PR を追加するのは簡単ですが、習慣になった手順をなくすのは困難です)。C と判断するには、両方の証拠が必要です。一人で作業するリポジトリが C であることはほとんどありません。C と判断した場合は、見直してください。

<checkout principal>/sdd/ambiente.md に、必要であれば sdd/ フォルダーを作成したうえで、次の形式で記録してください。ユーザーが手動で修正できるよう、キーは一行に一つずつ記述します。

# Ambiente deste repositório

> Gerado pelas skills sdd-new-session/sdd-release. Está errado? Corrija a linha — as skills leem daqui.

- branch_principal: main
- cenario: A (Trunk-Based) — evidência: <o que você viu, ex.: "20 últimos commits diretos na main, sem develop no remoto">
- pasta_das_frentes: ../<nome-do-repo>-frentes
- editor: code
- preparacao: npm install
- arquivos_locais: .env
- deploy: <preencha só se descobriu; senão "a descobrir pelo sdd-release">
- testes: <comando, se descobriu>
- sintaxe: <comando, se descobriu>
- versionamento: nenhum

## Suposições

- assumi <X> porque <Y>

このファイルはコミットしないでください。バージョン管理するかどうかはユーザーが決めます。

ステップ 2 — 作業ブランチを作成する

自然言語でタスク名を受け取り、次の順に進めます。

  1. スラッグ:小文字、ハイフン区切り、アクセント記号なし(例:「Relatório mensal」→ relatorio-mensal)。
  2. ブランチまたはフォルダーがすでに存在する場合は中止します(git show-ref --verify refs/heads/<slug>、 GIT_TERMINAL_PROMPT=0 git ls-remote --heads origin <slug>、およびフォルダー <pasta_das_frentes>/<slug> を確認します)。別の名前を勝手に決めず、ユーザーに別の名前を尋ねます。この確認が完了する前に、何も作成してはいけません。
  3. GIT_TERMINAL_PROMPT=0 git fetch origin "+refs/heads/<branch-base>:refs/remotes/origin/<branch-base>" (明示的な refspec:単一ブランチのクローンでは、ブランチ名だけを指定した fetch では origin/<branch-base> が更新されません)、続いて git worktree add <pasta_das_frentes>/<slug> -b <slug> origin/<branch-base> を実行します。ローカルの状態ではなく、遅れている可能性のあるリモートの状態を起点にします。<branch-base> は、シナリオ A と B ではメインブランチ、C では develop です。 シナリオ C で origin/develop がない場合(GIT_TERMINAL_PROMPT=0 git ls-remote --heads origin develop の結果が空): 何も作成する前に停止し、「基準は GitFlow を示していますが、作業ブランチの起点にできる develop がありません」と伝えます。
  4. 新しいフォルダーで、準備処理があれば実行します。
  5. git が引き継がないものを作業ブランチにコピーします:ローカルファイル(.env)とバージョン管理されていない各 skill フォルダーを、必ずメインのチェックアウトからコピーします(絶対パスを二重引用符で囲みます)。 mkdir -p "<frente>/.claude/skills" && cp -R "<checkout principal>/.claude/skills/<skill>" "<frente>/.claude/skills/"。 .agents/skills/ についても同様です。 メインのチェックアウトに <frente>/.claude/skills/sdd-release(または .agents/skills/sdd-release)が存在する場合、作業ブランチにも存在することを確認します。これがないと作業ブランチを完了できません。Claude Code は .claude/ への書き込みに承認を求めます。コピーが拒否されても、停止せず作業ブランチを最後まで作成します。回答には、すぐ実行できるコピーコマンドと、すべてのプロジェクトに一度だけ skill をインストールする代替手段(npx skills add robertodiasduarte/sdd-starter -a <motor> -g -y)を記載します。
  6. エディターで開きます(code <pasta>)。エディターがなくても中止しません。作業ブランチはすでに準備できているため、手動で開くためのパスを示します。

フォルダーはリポジトリの外(../<repo>-frentes/<slug>)に置きます。リポジトリ内に置くと、worktree が未追跡ファイルとして表示され、他のすべての作業ブランチの git status が汚れます。

この skill が行わないこと:コミット、push、削除、統合は行いません。作成のみです。破壊的な操作や公開を伴う操作は、コマンドとして提示するか、sdd-release skill に任せます。

ステップ 3 — 回答する

**「生徒への伝え方」**の形式に従い、実際の結果に基づいてステータスを示します(完了した項目には ✅、sdd/ambiente.md がすでに存在していた場合のステップ 2 には ➖、エディターがなく手動で開くためのパスを示した場合のステップ 4 には ➖)。以下の項目を「実施したこと」(1、2、4)、「次のステップ」(3、5)、最後の行に振り分けます。順序は次のとおりです。

  1. シナリオ(A、B、または C)とその根拠。推測ではなく、確認した内容を示します。
  2. パスとブランチ名。
  3. この作業ブランチを完了する方法を、そのままコピーできる形で示します。最後に新しいフォルダー内で sdd-release skill を使う方法、または手動で行う場合は、シナリオに応じた統合コマンドの後に git worktree remove <pasta> と git branch -d <slug> を実行する方法を記載します。
  4. 仮定したこと(ある場合)と、どこで修正できるか(sdd/ambiente.md)を示します。
  5. シナリオ A で AI と一人で作業する場合は、統合前に AI にコードレビューを依頼するよう伝えます。コードを確認する人がほかにいないためです。
  6. 最後の行を強調して記載します: ⚠️ 新しいウィンドウで作業を続けてください。エージェントのこのセッションは、起動したフォルダーに固定されています。cd しても変わりません。ビルド、コミット、push はそのフォルダー内で実行してください。

各ルールがある理由(読まずに削除しないでください)

  • ブランチは、最新の origin/<branch-base> から作成します(通常はメインブランチ、シナリオ C では develop です)。作業中のブランチから作成すると、別のタスクの中途半端な作業を引き継ぎ、新しい作業ブランチに「見覚えのないコード」が最初から含まれてしまいます。
  • 同じブランチを 2 つの worktree で開くことはできません。Git が拒否するためです。そのため、作業ブランチのフォルダー内でメインブランチに戻ることはありません。シナリオの手順に沿って統合し、メインのチェックアウトを更新してください。
  • 別の作業ブランチが先に統合された場合、このブランチの作成元はすでに存在しない状態です。統合する前に、GIT_TERMINAL_PROMPT=0 git fetch origin + git merge origin/<branch-base> を実行し、テストを再度実行してください。2 つのブランチ間の競合が発生するのはこの時点です。(sdd-release がこれを行います。)
  • 孤立した worktree とブランチはたまっていきます。統合後は、git worktree remove と git branch -d を実行してください。小文字の -d は保護機能で、すでに統合済みのものだけを削除します。
  • リポジトリではないフォルダーには、互いに異なる 4 つのケースがあります。「正しいフォルダーを開く」と「プロジェクトを git に追加する」は正反対の対応です。この 2 つを 1 つの文にまとめたため、自分がどちらに該当するのか分からない受講者がいました。また、"git init" だけを実行すると、顧客のスプレッドシートも含めてフォルダー全体が最初のコミットに追加されてしまいます。
  • 同期対象フォルダーは何よりも先に確認してください。iCloud、OneDrive、Dropbox、Google Drive はファイル単位で同期するため、.git や worktree が破損したり重複したりします。Mac でデスクトップや書類が iCloud にある場合、パスからは分かりません。iCloud Drive 内にショートカットがあることが判断材料です。
  • 作成前に必ず事前確認を行ってください。リモートがない、リモートが空、またはログインしていない場合、git worktree add … origin/<principal> は途中で失敗し、未完成のフォルダーが残ります。受講者には何を削除すべきか分かりません。事前に停止し、原因と何も作成されていないことを伝えれば、受講者はそのまま再度依頼できます。
  • Git が見つからないからといって、「チャットアプリを使っている」ということではありません。誤った診断をすると、すでにインストール済みのエージェントをインストールするよう指示してしまいます。
  • エージェントのセッションは移動しません。新しいフォルダーを開くと別のウィンドウが開きますが、スキルを実行したセッションは元のディレクトリに固定されたままです。最後に注意を促さないと、作業ブランチ全体を誤った場所で作成してしまい、コミット時になって初めて気づくことになります。

RDD による SDD Starter の一部 — https://github.com/robertodiasduarte/sdd-starter

コメント