sdd-checar-ambiente について
リポジトリ環境が仕様駆動開発(SDD)に対応しているかを確認する読み取り専用スキルです。ファイルや設定を変更せず、所定の簡潔な形式で問題点と対処法を報告します。
主な機能
- 01リポジトリとブランチの確認
- 02Git の識別情報とリモートの確認
- 03エージェントとプロジェクトツールの検出
- 04ワークツリーと依存関係の診断
- 05コミット済み秘密情報の確認
活用シーン
- 01SDD 作業開始前の前提条件確認
- 02Git やリモートアクセスの問題特定
- 03不足している依存関係や環境ファイルの発見
- 04コミット済み認証情報や秘密鍵の検出
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ robertodiasduarte/ sdd-starter --skill sdd-checar-ambienteインストール後、Claude Code で/sdd-checar-ambienteを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlscripts/checar.shtests/test_checar.py詳細
環境の確認
**ここで SDD を使って作業できる環境が整っていますか?**という質問に、何も変更せず、修正すべき点を数秒で回答します。
実行方法
bash が使える場合(macOS、Linux、または Windows の Git Bash)、プロジェクトフォルダー内で、このスキルに付属するスクリプトを実行します。
bash <pasta desta skill>/scripts/checar.sh
そして、スクリプトの出力をそのまま回答してください。前後に文章を添えたり、確認した内容や未確認の内容についてコメントしたり、翻訳したりしないでください。スクリプトが以下のチェックをすべて実行し、適切な形式でレポートを出力します。形式はあなたが決めるものではありません。(このスキルのフォルダーは、この SKILL.md を含む .claude/skills/sdd-checar-ambiente/ または .agents/skills/sdd-checar-ambiente/ です。プロジェクト内、またはエージェントのグローバルフォルダーにあります。)
bash が使えない場合(PowerShell のみ)、以下のチェックを手動で行い、スクリプトと同じ形式で回答してください。項目がある場合に限り、🔴 データが露出しています、🔴 作業を妨げています、⚠️ 修正をおすすめします の各ブロックを表示し、最後に ✅ 準備完了: repo …(問題がある場合は ✅ Repo …)の行を記載します。チェックに合格した項目や該当しない項目は、この行以外では触れません。✅ の行の末尾には、このスキルの識別情報を記載します。
sdd-checar-ambiente v1.2.0 · out/2026 · 最新バージョン: https://github.com/robertodiasduarte/sdd-starter/releases/latest
(スクリプトがこのファイルのバージョンを読み取り、自動で記載します。)
ルール
- 読み取り専用です。 インストール、設定、修正、ファイルの作成はしないでください。コマンドを提示し、何を許可するかを確認したうえでユーザーが実行します。ネットワークへのアクセスは、どちらも読み取り専用です。リポジトリが公開されているかを確認するため、GitHub に匿名で最大 3 秒の問い合わせを行います(失敗しても、そのことには触れません)。また、認証情報とネットワークがリモートに到達できるか、およびリポジトリにコミットがあるかを確認するため、パスワードを要求しない
ls-remoteを最大 10 秒実行します(エディターのログインウィンドウが表示されている場合は、ウィンドウも認証情報も使わずに 2 回目のls-remoteを並行して実行することで、ログインウィンドウが応答待ちなのか、ネットワークが停止しているのかを切り分けられます)。 - git にターミナルでパスワードを要求させないでください。 エージェントが、誰にも見えない入力を待ち続けることになります。リモートに接続するすべてのコマンドは、bash/zsh では
GIT_TERMINAL_PROMPT=0 git …、PowerShell では$env:GIT_TERMINAL_PROMPT=0; git …として実行します。エディターのログインウィンドウ(VS Code、Cursor)は無効にしません。そのウィンドウから GitHub にログイン済みなら、ウィンドウがなくてもリモートに到達できます。 - 問題をでっち上げないでください。 バージョン管理されている
.env.exampleがなければ、.envがないことを問題にしないでください。package.jsonがなければ、node_modulesや npm について触れないでください。フォルダーに.envがなければ、.gitignoreについて触れないでください。リポジトリが公開されていること自体は問題ではありません。公開証明書を含む.pemは秘密情報ではありません。誤検知をすると、ほかの警告まで無視されるようになります。 - 分類ではなく、影響の大きさで並べてください。 作業を妨げるものを、不便なだけのものより先に記載します。
- 質問せず、調べてください。 以下の項目はすべて、コマンドを実行して確認できます。
- どのシェルでも動作します。
gitコマンドは bash、zsh、PowerShell で同じです。プログラムが存在するかどうかを確認するには、bash/zsh ではcommand -v <nome>、PowerShell ではGet-Command <nome>を使用します。
確認する項目(以下の順)
1. 現在の場所
- まず、フォルダーは同期されていますか? パスに
Library/Mobile Documents、iCloudDrive、Library/CloudStorage、OneDrive、Dropbox、Google Drive、My Drive、Meu Driveが含まれている場合、または Mac で デスクトップと書類を iCloud に保存していて、フォルダーが~/Desktopまたは~/Documentsにあり、~/Library/Mobile Documents/com~apple~CloudDocs/Desktop(またはDocuments)がショートカット(シンボリックリンク)の場合は、パス自体は変わりません。同期されている場合 ⇒ これだけが確認結果です。プロジェクトをクラウドの外に移動してください (同期によって.gitやフロントエンドが破損または重複することがあります)。ほかの確認には進まないでください。 git rev-parse --show-toplevel— git リポジトリですか? いいえの場合、これが最も重要な確認結果です。次の順に、どのケースかを伝えてください。- フォルダーが個人用(
~)または/⇒ ターミナルはプロジェクト内にありません(個人用フォルダーをスキャンしないでください)。 - 3 階層以内のサブフォルダー(
node_modulesを除く)に.gitがある ⇒「プロジェクトは./Xにあります」:そこを開いてください(2〜3 件なら列挙し、3 件を超える場合は件数を伝えてどれか確認してください)。 - システムファイル(
.DS_Store、desktop.ini、Thumbs.db)だけ、または何もない ⇒ まだプロジェクトがありません。sdd-brainstormから始めてください。 - ファイルはあるが
.gitがない ⇒「このプロジェクトはまだ git を使っていません」:スキルsdd-iniciar-repoで git と GitHub のプライベートリポジトリに登録できます。単に「git init」とだけ答えないでください。事前に確認せず公開すると、顧客のスプレッドシートや証明書まで一緒に公開されるおそれがあります。
- フォルダーが個人用(
- フォルダー、現在のブランチ(
git branch --show-current)、コミットされていない変更の有無(git status --short)。
2. 利用可能なエージェント
claude --versionとcodex --version— 存在するもののバージョンをそれぞれ記録してください。- 現在このスキルを実行しているのがどちらか。
3. Git が使用可能か
git --version。git config user.nameとgit config user.email。両方設定されていないと、最初のコミットは何をすればよいか明確でないメッセージとともに失敗します。解決するコマンド:git config --global user.name "Seu Nome"とgit config --global user.email "[email protected]"。git remote -v— リモートはありますか?そのメインブランチはどれですか(GIT_TERMINAL_PROMPT=0 git remote show originの "HEAD branch" 行)?- リモートは応答しますか?
git ls-remote --heads originをGIT_TERMINAL_PROMPT=0で実行します(PowerShell:$env:GIT_TERMINAL_PROMPT=0; git ls-remote --heads origin)。タイムアウトは 10 秒に設定してください。結果を確認します:- ブランチが一覧表示される ⇒ 問題ありません。
- 何も表示されず、エラーもない ⇒ リモートリポジトリにはまだコミットがありません(⚠️)。最初のコミット後、
GIT_TERMINAL_PROMPT=0 git push -u origin <branch atual>を実行してください。 could not read Username、Authentication failed、Permission denied (publickey)、Repository not found⇒ 🔴 認証情報:GitHub では、「アドレスが間違っているか、このコンピューターがログインしていないプライベートリポジトリです」。コマンドはgh auth loginです(ghがない場合は https://cli.github.com からインストールしてください)。代替手段は 1 行で:SSH キーまたは git の認証情報マネージャー。Host key verification failed⇒ 🔴 このコンピューターは SSH でサーバーの身元を確認したことがありません:ssh -T git@<host>を実行してyesと答えてください。ログインの問題ではありません。Could not resolve host、timed out、Failed to connect、または 10 秒経っても応答がない ⇒ ⚠️ インターネットに接続されていないか、ネットワークがブロックされています。パスワードやログインの問題だとは言わないでください。- 応答が止まり、エディターのログインウィンドウが設定されている(
GIT_ASKPASS/SSH_ASKPASSが定義されているか、core.askPassが設定されている)⇒GIT_ASKPASSだけではログインが必要だとは判断できません(ネットワークが停止していると、git はパスワードを要求しません)。ウィンドウを使わず、保存された認証情報も使わないようにして、同じく 10 秒でタイムアウトする次のコマンドを再実行してください:GIT_TERMINAL_PROMPT=0 GIT_ASKPASS= git -c credential.helper= -c core.askPass= ls-remote --heads origin。 ログインを求められた(could not read Username、terminal prompts disabled、Permission denied ()⇒ 🔴 エディターのログインウィンドウが応答待ちです。ウィンドウに応答するか、gh auth loginを実行してください。再び応答が止まるか、ネットワークエラーが発生する ⇒ ⚠️ インターネットに接続されていないか、ネットワークがブロックされています。 4. 作業ブランチ(worktree)
git worktree list— 1行目はメインのチェックアウトで、作業ブランチではありません。開いている作業ブランチは、それ以降の行です。メインのチェックアウトのみの場合は「開いている作業ブランチはありません」とします。ここで「作業ブランチが1つ開いています」と言うのは、存在しない状態を表しています。- 孤立した worktree: 一覧で
prunableと表示されているエントリー、またはフォルダーがすでに存在しないエントリー(誰かが手動でフォルダーを削除した場合)です。コマンド:git worktree prune。 - すでに統合済みなのに開いたままの作業ブランチ: メインのチェックアウトでもメインブランチ自体でもない worktree のブランチで、メインブランチにすでに含まれており(
git branch --merged origin/<principal>)、かつ独自のコミットがある(git reflog show <branch>にcommitのエントリーがある)ものです。独自のコミットがないままメインブランチに含まれているブランチは、新しく開かれた作業ブランチであり、統合済みではありません。削除を提案しないでください。統合済みブランチのコマンド:git worktree remove <pasta>の後にgit branch -d <branch>。 - メインのチェックアウト(
git worktree list --porcelainの1行目)にsdd/ambiente.mdがある場合は、それを読んでください。メインブランチと作業ブランチの保存場所が記載されています。メインのチェックアウトで未追跡のsdd/があっても、それはこのファイルのためなので、問題ではありません。
5. プロジェクトのツール
package.jsonがあり、node_modulesがない場合はnpm installが必要です(これがないと、プロジェクトの最初のコマンドが別の原因に見えるエラーで失敗します)。composer.jsonがあり、vendor/がない場合も同様です。どちらも🔴です。requirements.txtがあり、フォルダー内に仮想環境がない場合は⚠️です。依存関係が外部にインストールされている可能性があります。.env.exampleがバージョン管理されていて、.envがない場合は、ローカル設定が不足しています(例をコピーして値を入力します)。- PATH 上のエディター:
code、cursor、subl(この順)。エディターがなくても問題ありません — 🔴にも⚠️にも該当しません。ある場合は✅の概要に記載します。
6. 顧客データと秘密情報(オフィスのコンピューターには顧客データとA1証明書があります)
- すでに git に保存されている場合(
git ls-files):.envまたは.env.*(.env.exampleと.env.sampleを除く)、.pfx、.p12、およびPRIVATE KEYを含む.pem(git grep --cached -l "PRIVATE KEY" -- '*.pem')。それぞれ🔴データ露出として、コマンドgit rm --cached "<arquivo>" && echo "<arquivo>" >> .gitignoreと、実際に保護するための措置を記載します。.envの場合はパスワードを変更し、.pfx/.p12の場合は認証局に証明書を失効してもらって新しいものを発行し、.pemの場合は新しい鍵を生成します。git から削除しても、履歴からは消えないことを伝えてください。 - 公開リポジトリ:
originが GitHub の場合は、ログインせずにhttps://api.github.com/repos/<dono>/<repo>を確認します(200 = 公開、プライベートの場合は404)。またはgh repo view --json visibilityを実行します。公開であることは✅の概要にのみ記載します(「repo x(GitHubで公開)」)。データが露出している場合は、その項目でファイルがすでにインターネット上にあることを伝えます。 .gitignoreに含まれていない.env: フォルダー内に.envがあり、追跡されておらず、git check-ignore -q .envが失敗する場合は⚠️です。echo ".env" >> .gitignoreを実行します。ignore-scriptsが設定されていない npm:package.jsonがあり、npm が存在し、npm config get ignore-scriptsがtrueでない場合は⚠️です。npm config set ignore-scripts trueを実行し、インストールスクリプトに依存するパッケージがある場合はnpm rebuild <pacote> --ignore-scripts=falseで再ビルドできることを伝えます。
新しい作業ブランチの事前チェック。 sdd-new-session スキルは bash <pasta desta skill>/scripts/checar.sh --frente を実行します。チェック対象は git、リポジトリ、リモート、およびリモートへのアクセスのみです。問題が見つかると🔴になり、スクリプトは終了コード1で終了し、最後の行は「何も作成されませんでした。解決したら、もう一度作業ブランチを依頼してください。」となります。問題がなければ、終了コード0で ✅ Pronto para abrir a frente: … の1行を出力します。
顧客データを含む次のコミットをブロックするアラームには、sdd-higiene-dado スキルを使います(許可を得てインストールします)。このスキルは診断のみを行います。
報告方法
長い報告は不要です。これを実行する人は問題を解決したいのであって、読むことが目的ではありません。次の4つのブロックをこの順番で示してください。空のブロックは省略します。
- 🔴 データの漏えい — パスワード、証明書、秘密鍵がすでに git に保存されています。各項目に、コマンドと保護するための対策(パスワードの変更、証明書の失効など)を記載します。
- 🔴 作業を妨げる問題 — 同期フォルダー、git リポジトリではない(該当する場合も記載)、git のユーザー情報が未設定、依存関係が不足しています。各項目に、解決するための正確なコマンドをそのままコピーできる形で記載します。
- ⚠️ 修正するとよい点 —
.envが.gitignoreの対象外、npm にignore-scriptsが設定されていない(これらを先に記載)、孤立した worktree、統合済みのフロントがまだ開いている、.envがない。 - ✅ 1行の要約。このスキルの識別情報で締めくくります。例:
✅ 準備完了:repo meu-app、branch main、作業中のフロント2件、Claude Code 2.1 · sdd-checar-ambiente v1.2.0 · out/2026 · 最新版:https://github.com/robertodiasduarte/sdd-starter/releases/latest
すべて問題なければ、回答全体を**✅の行だけ**にしてください。その前後に文章を加えないでください。「すべて問題ありません」や、確認した項目の一覧、サポートの申し出も不要です。健全な環境に段落は必要ありません。詳細が必要な人は尋ねます。
例
問題なし:
✅ Pronto: repo meu-app, branch main, nenhuma frente aberta, Claude Code 2.1 · sdd-checar-ambiente v1.2.0 · out/2026 · versão atual: https://github.com/robertodiasduarte/sdd-starter/releases/latest
公開リポジトリの git に A1 証明書が保存されている場合:
🔴 Dado exposto
- O certificado digital certificados/empresa.pfx está salvo no git. Este repositório é público: o arquivo já está na internet.
git rm --cached "certificados/empresa.pfx" && echo "certificados/empresa.pfx" >> .gitignore
Depois, revogue o certificado com a autoridade certificadora e emita outro.
✅ Repo meu-app (público no GitHub), branch main, nenhuma frente aberta, Claude Code 2.1 · sdd-checar-ambiente v1.2.0 · out/2026 · versão atual: https://github.com/robertodiasduarte/sdd-starter/releases/latest
問題が2つある場合:
🔴 Impede o trabalho
- O git não tem e-mail configurado — o primeiro commit vai falhar.
git config --global user.email "[email protected]"
⚠️ Vale arrumar
- A frente ../meu-app-frentes/relatorio-mensal já foi integrada na main e continua aberta.
git worktree remove ../meu-app-frentes/relatorio-mensal
git branch -d relatorio-mensal
✅ Repo meu-app, branch main, 1 frente aberta, Claude Code 2.1 · sdd-checar-ambiente v1.2.0 · out/2026 · versão atual: https://github.com/robertodiasduarte/sdd-starter/releases/latest
RDD による SDD Starter の一部 — https://github.com/robertodiasduarte/sdd-starter