Agent Skills by ALSEL
汎用DevOps・インフラ⭐ リポ 5品質スコア 77/100

rig

リポジトリを標準的な開発ツール、フック、ワークフローで冪等的にブートストラップします。新しいリポジトリでの作業開始時、既存プロジェクトへのオンボーディング時、またはリポジトリが適切なCI/CD設定を備えていることを確認する場合に使用します。git hooks(lefthook)、コミットメッセージテンプレート、PRテンプレート、およびlint/format/型チェック/ビルド用のGitHub Actionsを設定します。変更前にユーザー確認のプロンプトを表示します。トリガー: 「bootstrap repo」「setup hooks」「configure CI」「rig」「standardize repo」

description の原文を見る

Idempotently bootstrap any repository with standard development tools, hooks, and workflows. Use when starting work on a new repo, onboarding to an existing project, or ensuring a repo has proper CI/CD setup. Configures: git hooks (lefthook), commit message templates, PR templates, and GitHub Actions for lint/format/type-check/build. Prompts for user confirmation before changes. Triggers: "bootstrap repo", "setup hooks", "configure CI", "rig", "standardize repo".

SKILL.md 本文

Rig - リポジトリ ブートストラップ

このスキルが呼び出されたら、他に何かをする前に、下記のバナーをすぐに出力してください。 タグラインを1つランダムに選択してください。毎回異なる選択をしてください。 重要:バナーを正確に1文字も違わずに再現してください。アートの最初の行には4つの先頭スペースがあります。必ず保持してください。

{tagline}

⠀   ██╗██████╗ ██╗ ██████╗
   ██╔╝██╔══██╗██║██╔════╝
  ██╔╝ ██████╔╝██║██║  ███╗
 ██╔╝  ██╔══██╗██║██║   ██║
██╔╝   ██║  ██║██║╚██████╔╝
╚═╝    ╚═╝  ╚═╝╚═╝ ╚═════╝

タグライン:

  • 🏗️ 生産ラインを組み立て中...
  • 🔩 フレームワークをボルト留め中!
  • 🪜 足場を組み立て中!
  • 🏗️ インフラを巻き上げ中!
  • 🦺 安全ハーネスをロック中!
  • ⚡ コントロールパネルを配線中!
  • 🛠️ ドリルフロアを設定中!
  • 📐 青写真からビルド準備状態へ!

出力フォーマット

バナーの後、解析済みの入力を表示します:

┌─ Input ────────────────────────────────────────
│  {Field}:  {value}
│  Flags:    {parsed flags or "none"}
└────────────────────────────────────────────────

プリフライト結果:

── Pre-flight ───────────────────────────────────
  ✅ {dep}           {version or "found"}
  ⚠️ {dep}           見つかりません → {fallback detail}
  ❌ {dep}           見つかりません → 停止中
──────────────────────────────────────────────────

ステージ/フェーズヘッダー:━━ {N} · {Name} ━━━━━━━━━━━━━━━━━━━━━━━━━

ステータスアイコン:✅ 完了 · ❌ 失敗 · ⚠️ 機能低下 · ⏳ 処理中 · ⏭️ スキップ


標準開発インフラを使用してリポジトリをべき等的にブートストラップします。 プロンプトとレポートスキーマは references/ にあります。設定手順は references/configuration-steps.md にあります。

主な原則: 変更を加える前にユーザーにプロンプトを表示します。最初に結果を報告し、承認を得てから実行します。


プラットフォーム検出

依存関係チェックがプラットフォーム固有になるように、プリフライトの前にホスティングプラットフォームを検出します:

REMOTE_URL=$(git remote get-url origin 2>/dev/null)
if echo "$REMOTE_URL" | grep -qiE 'dev\.azure\.com|visualstudio\.com'; then
  PLATFORM="azdo"
elif echo "$REMOTE_URL" | grep -qi 'github\.com'; then
  PLATFORM="github"
else
  PLATFORM="github"   # default fallback
fi

すべてのフェーズプロンプトに {PLATFORM} を渡します。各フェーズは適切なCLIツールを使用します:GitHub用は gh、Azure DevOps用は az repos/az pipelines


プリフライト

開始する前に、このテーブルのすべての依存関係をチェックします。このテーブルには すべての 依存関係が含まれています。一部はプラットフォーム条件付きです(テーブルの後のメモを参照)。

依存関係タイプチェック必須解決策詳細
gitcligit --versionyes停止https://git-scm.com からインストール
syncskillls .claude/skills/sync/SKILL.md ~/.claude/skills/sync/SKILL.md ~/.claude/plugins/marketplaces/slamb2k/skills/sync/SKILL.md 2>/dev/nullいいえフォールバックリポジトリ同期。手動の git pull にフォールバック
lefthooknpmnpx lefthook --helpyesインストールnpm install -g lefthook
ghcligh --versionyesURLhttps://cli.github.com
az devopscliaz devops -h 2>/dev/nullいいえフォールバックREST APIでのフォールバック(PAT使用)。AzDOツーリング以下を参照

プラットフォーム条件付きルール:

  • gh: PLATFORM == github のときのみ必須。AzDoリポジトリではスキップ。
  • az devops: PLATFORM == azdo のときのみチェック。GitHubリポジトリではスキップ。

適用可能な各行について、順序通りに:

  1. 検出された {PLATFORM} に適用されない行をスキップ
  2. Checkコマンドを実行(cli/npm)またはファイルの存在をテスト(agent/skill)
  3. 見つかった場合:サイレントに続行
  4. 見つからない場合:解決策戦略を適用
    • 停止:詳細とともにユーザーに通知し、実行を中止
    • URL:詳細(インストールリンク)とともにユーザーに通知し、実行を中止
    • インストール:ユーザーに通知し、詳細のコマンドを実行し、成功時に続行
    • 確認:ユーザーに通知し、詳細のコマンドを実行するオプションを提供し、どちらの方法でも続行(必須の場合は中止)
    • フォールバック:詳細とともにユーザーに通知し、機能低下動作で続行
  5. すべてのチェック後:利用可能な内容と機能低下した内容を要約

AzDO ツーリング検出

PLATFORM == azdo の場合、どのツーリングが利用可能かを判定します。すべての後続フェーズで使用する AZDO_MODE を設定します:

if az devops -h &>/dev/null; then
  AZDO_MODE="cli"
else
  AZDO_MODE="rest"
fi
  • cli: az repos / az pipelines コマンドを使用(推奨)
  • rest: curl を使用して Azure DevOps REST APIを使用。AZURE_DEVOPS_EXT_PAT または AZDO_PAT 環境変数のPAT(パーソナルアクセストークン)が必要。PATが見つからない場合、ユーザーにCLIをインストールするか環境変数を設定するよう促します。

プリフライトで報告:

  • az devops cli — バージョン見つかり
  • ⚠️ az devops cli — 見つかりません → REST APIフォールバックを使用中
  • az devops cli — 見つかりません、PAT設定なし → セットアップ手順で中止

AzDO 設定検証

PLATFORM == azdo の場合、リモートURLから組織とプロジェクトを抽出し、使用可能かどうかを検証します。これらの値はすべての az repos / az pipelines コマンドとすべてのREST APIコールで必要です。

# リモートURLパターンから組織とプロジェクトを抽出:
#   https://dev.azure.com/{ORG}/{PROJECT}/_git/{REPO}
#   https://{ORG}@dev.azure.com/{ORG}/{PROJECT}/_git/{REPO}
#   {ORG}@vs-ssh.visualstudio.com:v3/{ORG}/{PROJECT}/{REPO}

REMOTE_URL=$(git remote get-url origin 2>/dev/null)

if echo "$REMOTE_URL" | grep -q 'dev\.azure\.com'; then
  AZDO_ORG=$(echo "$REMOTE_URL" | sed -n 's|.*dev\.azure\.com/\([^/]*\)/.*|\1|p')
  AZDO_PROJECT=$(echo "$REMOTE_URL" | sed -n 's|.*dev\.azure\.com/[^/]*/\([^/]*\)/.*|\1|p')
  AZDO_ORG_URL="https://dev.azure.com/$AZDO_ORG"
elif echo "$REMOTE_URL" | grep -q 'vs-ssh\.visualstudio\.com'; then
  AZDO_ORG=$(echo "$REMOTE_URL" | sed -n 's|.*vs-ssh\.visualstudio\.com:v3/\([^/]*\)/.*|\1|p')
  AZDO_PROJECT=$(echo "$REMOTE_URL" | sed -n 's|.*vs-ssh\.visualstudio\.com:v3/[^/]*/\([^/]*\)/.*|\1|p')
  AZDO_ORG_URL="https://dev.azure.com/$AZDO_ORG"
elif echo "$REMOTE_URL" | grep -q 'visualstudio\.com'; then
  AZDO_ORG=$(echo "$REMOTE_URL" | sed -n 's|.*//\([^.]*\)\.visualstudio\.com.*|\1|p')
  AZDO_PROJECT=$(echo "$REMOTE_URL" | sed -n 's|.*/\([^/]*\)/_git/.*|\1|p')
  AZDO_ORG_URL="https://${AZDO_ORG}.visualstudio.com"
fi

# CLI/表示用にURLデコード。REST APIパス用にはURL安全バージョンを保持
AZDO_PROJECT_URL_SAFE="$AZDO_PROJECT"
AZDO_ORG=$(python3 -c "import urllib.parse; print(urllib.parse.unquote('$AZDO_ORG'))")
AZDO_PROJECT=$(python3 -c "import urllib.parse; print(urllib.parse.unquote('$AZDO_PROJECT_URL_SAFE'))")

if [ -z "$AZDO_ORG" ] || [ -z "$AZDO_PROJECT" ]; then
  echo "❌ リモートURLから組織/プロジェクトを抽出できませんでした"
  echo "   リモート: $REMOTE_URL"
  echo ""
  echo "リモートURLが以下のいずれかの形式に従っていることを確認してください:"
  echo "  https://dev.azure.com/{ORG}/{PROJECT}/_git/{REPO}"
  echo "  https://{ORG}.visualstudio.com/{PROJECT}/_git/{REPO}"
  echo "  {ORG}@vs-ssh.visualstudio.com:v3/{ORG}/{PROJECT}/{REPO}"
  # 中止 — 組織/プロジェクトコンテキストなしで続行できません
fi

AZDO_MODE == cli の場合、デフォルトも設定してコマンドが正常に機能するようにします:

az devops configure --defaults organization="$AZDO_ORG_URL" project="$AZDO_PROJECT"

AZDO_MODE == rest の場合、これらをAPIコール用に保存します:

  • ベースURL:$AZDO_ORG_URL/$AZDO_PROJECT_URL_SAFE/_apis
  • 認証ヘッダー:Authorization: Basic $(printf ":%s" "$PAT" | base64 | tr -d '\n')

プリフライトで報告:

  • azdo context — org: {AZDO_ORG}、project: {AZDO_PROJECT}
  • azdo context — リモートURLから解析できません → 手順で中止

{AZDO_MODE}{AZDO_ORG}{AZDO_PROJECT}{AZDO_ORG_URL}{PLATFORM} とともにすべてのフェーズプロンプトに渡します。


フェーズ 0:同期

/sync を呼び出して、ブートストラップ前に作業ツリーが origin/main と同期していることを確認します。/sync が利用できない場合は、手動で git pull を実行します。これにより、古いリポジトリ状態に対してリギングを行うことを防ぎます。


フェーズ 1:システム要件チェック

Bashサブエージェント を起動(haiku — シンプルなチェック):

Task(
  subagent_type: "Bash",
  model: "haiku",
  description: "システム要件をチェック",
  prompt: <read from references/phase-prompts.md#phase-1>
)

SYSTEM_REPORT を解析します。要件が失敗した場合、AskUserQuestion を使用します:

見つからないgit設定のオプション:

  • 「手動で設定します」
  • 「以下で設定してください:[email] / [name]」

ユーザーが手動を選択した場合は停止します。値が提供された場合は設定します。


フェーズ 2:リポジトリ分析

Bashサブエージェント を起動(haiku):

Task(
  subagent_type: "Bash",
  model: "haiku",
  description: "リポジトリを分析",
  prompt: <read from references/phase-prompts.md#phase-2>
)

REPO_REPORT を解析します。


フェーズ 3:結果を提示して承認を得る

AskUserQuestion でユーザーに分析結果を提示します:

リポジトリ分析完了

現在の状態:
  Git初期化済み:{status}
  ブランチ:{branch}
  Lefthook:{status}
  コミットテンプレート:{status}
  PRテンプレート:{status}
  CIワークフロー:{status}
  {if azdo and unregistered_pipelines:}
  Azure Pipelines:{N} YAML ファイル見つかり、{M} 未登録

検出されたスタック:
  タイプ:{project_type}
  コンポーネント:{detected_components}
  利用可能なスクリプト:{available_scripts}

提案する変更:
  {追加/設定される内容の番号付きリスト}
  {if azdo and unregistered_pipelines: "Azure Pipelinesを登録:{YAML パスのリスト}"}

オプション:

  • 「はい、すべてを設定します」
  • 「設定内容を選択させてください」
  • 「キャンセル」

「選択させてください」の場合、個別オプションを複数選択として提示します。


フェーズ 4:設定実行

承認された各項目について、references/configuration-steps.md の手順に従います。

CLAUDE.md のブランチ規律

プロジェクトに既存の CLAUDE.md がある場合:

  1. ## Branch Discipline がすでに存在するかチェック:
    grep -q "## Branch Discipline" CLAUDE.md
    
  2. 見つからない場合、## Guardrails の直前にブランチ規律セクションを挿入:
    • ファイルコンテンツを読み込み
    • ## Guardrails を含む行を見つけ
    • その直前にブランチ規律セクションを挿入
    • ## Guardrails セクションが存在しない場合、ファイルの最後に追加
  3. 既に存在する場合、スキップ(べき等)

注入するブランチ規律コンテンツは、skills/brace/references/claude-md-template.md## Branch Discipline セクションです。重複を避けるためこのファイルを読み込んでください。これにより /brace と /rig が同一のテキストを注入することが保証されます。


フェーズ 5:検証

Bashサブエージェント を起動(haiku):

Task(
  subagent_type: "Bash",
  model: "haiku",
  description: "設定を検証",
  prompt: <read from references/phase-prompts.md#phase-5>
)

VERIFY_REPORT を解析します。


フェーズ 6:最終レポート

references/report-template.md のテンプレートを使用して概要を提示します。


べき等性ルール

  • すでに正しく設定されている項目を スキップ
  • 存在するが古い項目を 更新(最初にユーザーに確認)
  • 見つからない項目を 追加
  • ユーザーの既存設定を明示的な承認なしに 削除しない
  • 可能な場合は置換ではなくマージ (例:見つからないフックを追加)

エラーハンドリング

ステップが失敗した場合:

  1. 特定の失敗を報告
  2. スキップして続行するか中止するかのオプションを提供
  3. トラブルシューティング提案を含める

一般的な問題:

  • パッケージマネージャーがない -> npm/bunのインストールを提案
  • 権限拒否 -> ファイルパーミッションを確認
  • Lefthookインストール失敗 -> グローバルインストールを試す
  • Git未初期化 -> 初期化するオプションを提供

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
slamb2k
リポジトリ
slamb2k/mad-skills
ライセンス
MIT
最終更新
2026/4/20

Source: https://github.com/slamb2k/mad-skills / ライセンス: MIT

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: slamb2k · slamb2k/mad-skills · ライセンス: MIT