set-up-project について
エージェントのワークフローに必要なリポジトリのファイルや規約を設定・監査するスキルです。現状調査、ユーザー確認、設定の書き込みを順に進め、プロジェクト設定がグローバルな安全ルールを弱めていないか確認します。
主な機能
- 01リポジトリのガイダンスファイル作成
- 02課題管理とトリアージラベルの設定
- 03ドメイン文書の配置設定
- 04リリース手順の記録
- 05ハーネスファイルとグローバルルールの照合
活用シーン
- 01エージェントスキル向けのリポジトリ準備
- 02課題管理とリリース慣行の統一
- 03安全ルールを弱めるプロジェクト設定の検出
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ yahyabedirhan/ skills --skill set-up-projectインストール後、Claude Code で/set-up-projectを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents-md.mddomain.mdissue-tracker-github.mdissue-tracker-gitlab.mdissue-tracker-local.mdLICENSE.mattpocockreleasing.mdtriage-labels.mdagents/openai.yamlreferences/project-files.md詳細
プロジェクトをセットアップする
スキルが前提とする、リポジトリごとの設定を作成し、監査します。
- ルールファイル:すべてのハーネスが読み込む
AGENTS.mdです。CLAUDE.mdは、1 行だけの@AGENTS.mdにするか、AGENTS.mdへのシンボリックリンクにします。CLAUDE.mdが存在する場合、Claude Code はプロジェクトのAGENTS.mdを読み飛ばします。このどちらの形式でも、Claude Code に渡されるテキストは同じです。 - イシュートラッカー:イシューを管理する場所です。デフォルトは GitHub ですが、ローカルの Markdown もそのまま使えます。
- トリアージラベル:5 つの標準的なトリアージロールに使う文字列です。
- ドメインドキュメント:
GLOSSARY.mdと ADR の保存場所、およびそれらを読み込む側のルールです。 - リリースライフサイクル:
docs/agents/releasing.mdで、プロジェクトのバージョンをリリースする方法を説明します。リリース担当者全員が同じ手順に従えるようにします。ワークステーションのリポジトリにユーザー共通のリリースルールがある場合は、そこから開始します。 - フォルダー標準:orchestrating/folder-standard.md の
.gitignoreの行です。 - 許可のみのプロジェクト権限:グローバルルールはマシンの安全柵であり、プロジェクト独自のハーネスファイルは利便性を加えるだけです。監査では、グローバルルールを弱めるプロジェクトファイルをすべて検出します。
現状を調査して、見つかった内容を提示し、ユーザーの確認を得てから書き込みます。再実行すると監査になります。
手順
1. マシンを確認する
このスキルと同じ場所にインストールされている set-up-machine スキルから、検証スクリプト python3 <set-up-machine skill>/scripts/verify.py を実行します。成功時の終了コードは 0 です。終了コードが 0 でない場合は、まず set-up-machine スキルを実行してから、ここに戻ってください。検証スクリプトの終了コードが 0 になれば完了です。
2. 調査する
現在のリポジトリを調べ、初期状態を把握します。存在するファイルを読み、決めつけないでください。
git remote -vと.git/config:GitHub リポジトリですか?どのリポジトリですか?- リポジトリのルートにある
AGENTS.mdとCLAUDE.md:どちらかが存在しますか?どちらかに## Agent skillsまたは## Environment defaultsセクションがすでにありますか? - リポジトリのルートにある
GLOSSARY.mdとGLOSSARY-MAP.md、およびリポジトリ内のCONTEXT.mdやCONTEXT-MAP.md:スキルが現在は読み込まない、ドメインドキュメントの旧名称です。 docs/adr/と、src/*/docs/adr/ディレクトリがあるかどうかdocs/agents/:このスキルが以前に生成したファイルがすでにありますか?.efforts/:ローカル Markdown のイシュートラッカーがすでに使われている目印です。docs/assets/:フォルダー標準における旧画像フォルダーです。triageスキルがインストールされていますか?このスキルの隣にtriageスキルのフォルダーがあるか、利用可能なスキルにtriageが含まれていれば、インストール済みです。これにより、セクション B を実行するかどうかが決まります。- モノレポの兆候:
pnpm-workspace.yaml、package.jsonのworkspacesフィールド、または独自のsrc/を持つ、内容のあるpackages/*。これらが存在するのは、真に大規模な複数パッケージのリポジトリに限られます。存在しない場合は単一コンテキストであり、ほとんどのリポジトリが該当します。 - 現在のプロジェクトのリリース方法:
CHANGELOG.md、バージョンを記載したファイル、タグ、gh release listで表示される GitHub リリース、レジストリに公開するもの、AGENTS.mdや他のドキュメントに記載されたリリース手順を探します。"private": trueの設定がないpackage.json、Homebrew cask、リリースワークフローは、それぞれレジストリに公開します。これらの兆候をもとに、セクション E を実行するかどうかを判断します。 - ユーザー共通のリリースルール:ポインター
~/.config/agents/source.mdにワークステーションのリポジトリが指定されている場合、<path-to-workstation-repo>/setup/releasing.mdがあれば読み込みます。ポインターまたはファイルがない場合は、シードテンプレートのみを出発点にします。 - プロジェクト独自のドキュメントで、ロール用スキルの名前として必要とされているツール。たとえば、
docs/worktrees.mdに記載された worktree ツールや、スクリプトが前提とするセッションホストなどです。これにより、セクション D を実行するかどうかが決まります。
3. 調査結果を提示して質問する
存在するものと不足しているものを要約します。その後、セクションを順番に進めます。1つのセクションにつき回答を1つ受け取ってから、次へ進みます。
各セクションの冒頭では、ユーザーが一言で承諾できるよう、推奨する回答を提示します。選択肢によって結果が実際に分かれる場合に限り、1行で説明します。調査で結論が出ている場合は、そのセクションを省略します。
triage がインストールされていない場合はセクション B を、モノレポがなく、古い CONTEXT.md または CONTEXT-MAP.md もない場合はセクション C を、プロジェクトで役割に対応するツールが指定されていない場合はセクション D を、プロジェクトがリリースしたことがなく、リリースを示す兆候もない場合はセクション E を省略します。
セクション A:イシュートラッカー
説明:このリポジトリでイシューを管理する場所が「イシュートラッカー」です。
to-tickets、triage、to-specなどのスキルは、そこからイシューを読み書きします。gh issue createを呼び出すのか、.efforts/配下に Markdown ファイルを書くのか、あるいは別のワークフローに従うのかを、それらのスキルが把握できるようにする必要があります。このリポジトリで実際に作業を追跡している場所を選びます。
デフォルトでは、これらのスキルは GitHub 向けに設計されています。git remote が GitHub を指している場合は、GitHub を提案します。git remote が GitLab(gitlab.com またはセルフホストのホスト)を指している場合は、GitLab を提案します。
それ以外の場合、またはユーザーが別のトラッカーを希望する場合は、次の選択肢を提示します。
- GitHub:イシューはリポジトリの GitHub Issues で管理し、
ghCLI を使います。 - GitLab:イシューはリポジトリの GitLab Issues で管理し、
glabCLI を使います。 - ローカル Markdown:イシューはこのリポジトリの
.efforts/<effort>/配下のファイルとして管理します。個人プロジェクトやリモートのないリポジトリに適しています。 - その他(Jira や Linear など):ユーザーにワークフローを1段落で説明してもらい、自由記述の文章として記録します。
選択内容は docs/agents/issue-tracker.md に記録します。GitHub と GitLab のテンプレートには、「PR を要望受付の窓口にする」フラグがあり、デフォルトではオフです。オフのままにして、この点は持ち出さないでください。外部からの PR を triage キューに入れたいユーザーは、後からファイル内のフラグを切り替えられます。
セクション B:triage のラベル語彙
調査の結果、triage スキルがインストールされていないと分かった場合、このセクション全体を省略します。インストールされていないスキルにはラベルが不要なためです。
インストールされている場合は、次の質問を1つだけします。
triage のデフォルトラベルを使い続けますか?推奨する回答は はい です。
デフォルトは、名前と同じ文字列をラベルとする5つの標準的な役割です。needs-triage、needs-info、ready-for-agent、ready-for-human、wontfix です。はいの場合は、そのまま記述します。ユーザーが「いいえ」と答えた場合に限り(通常は、トラッカーですでに needs-triage に対して bug:triage など別の名前を使っている場合)、triage が重複ラベルを作成するのではなく、既存のラベルを適用するように、上書きするラベル名を確認します。
セクション C:ドメイン文書
デフォルトは単一コンテキストとします。これは、リポジトリのルートに GLOSSARY.md を1つ、docs/adr/ を1つ置く構成です。
ほとんどすべてのリポジトリに適しているため、質問せずにこの構成を記述します。
マルチコンテキスト(ルートに GLOSSARY-MAP.md を置き、コンテキストごとの GLOSSARY.md を参照する構成)は、調査でモノレポの兆候が見つかった場合に限って提示します。そのうえで、どちらの構成にするか確認します。
調査で古い CONTEXT.md または CONTEXT-MAP.md が見つかった場合は、履歴を引き継ぐため、それぞれを git mv で名前変更することを提案します。git mv CONTEXT.md GLOSSARY.md、git mv CONTEXT-MAP.md GLOSSARY-MAP.md、およびコンテキストごとの各 CONTEXT.md についても同様です。新しい名前のファイルがすでに存在する場合、git mv は失敗します。その場合は、古いファイルの内容を新しいファイルに統合することを提案し、内容が食い違う箇所ではどちらを優先するか尋ねます。また、マップ内のリンクと、古いファイル名を記載しているその他のファイルを更新することも提案します。AGENTS.md と docs/agents/domain.md のドラフトでは、すでに新しい名前が使われています。
調査で docs/assets/ フォルダーが見つかった場合は、各トピックを git mv で移動することを提案します。方法は ../orchestrating/folder-standard.md の「古いレイアウトからの移行」に記載されています。プロジェクトが配布または表示する画像は assets/images/<topic>/ に、スクリーンショットは assets/screenshots/<topic>/ に移動し、それらへの相対リンクも更新します。
セクション D:プロジェクト環境のデフォルト
何も推奨しません。
調査でプロジェクトが特定の役割に必要とするツールが見つかった場合に限り、確認してください。その場合は、そのツールの ## Environment defaults の行を提案します。この行は、このプロジェクトにおいてユーザーのグローバルな行より優先されます。agents-md.md > 「Environment defaults」に、ここに記載できる内容が書かれています。
セクション E:リリースライフサイクル
releasing.md をもとに docs/agents/releasing.md を作成することを推奨します。ユーザー共通のリリースルールを適用し、調査で判明した内容、つまりリリースに含まれるもの、リリースの順序、各手順の担当者を記載します。
ページは短くし、各手順を1〜2行にまとめます。
バージョンルール、変更履歴の形式、タグとリリースノートの書式など、共通ルールにすでに記載されている内容は省きます。また、コマンド、インストール手順、プロジェクトがまだ使用していないレジストリの計画も省きます。
プロジェクトのやり方が共通ルールに記載されていない場合は、プロジェクトのやり方を維持し、その旨を明記します。
両者に相違がある場合は、両方を示し、このプロジェクトでどちらに従うかを確認します。
リリース手順がすでに別のドキュメントに記載されている場合は、docs/agents/releasing.md への移動を提案し、元の場所には参照を残します。
4. 確認して書き込む
次のドラフトをユーザーに提示します。
AGENTS.md:新規作成する場合は agents-md.md をもとに作成します。既存のものがある場合は、## Agent skillsブロックと追加する## Environment defaultsの各行を加え、既存のCLAUDE.mdの各行を移しますCLAUDE.md:@AGENTS.mdの1行のみ、または既存のAGENTS.mdへのシンボリックリンクはそのままにします。CLAUDE.mdが存在すると Claude Code はプロジェクトのAGENTS.mdを読み込まず、どちらの形式でも同じ内容が適用されます.gitignore:.scratch/と.claude/worktrees/。それぞれ不足している場合に限り追加しますdocs/agents/issue-tracker.mdとdocs/agents/domain.mdの内容、triageがインストールされている場合はdocs/agents/triage-labels.mdの内容、セクション E を実行した場合はdocs/agents/releasing.mdの内容- セクション C で提案した場合は、既存の
CONTEXT.mdまたはCONTEXT-MAP.mdの名前変更または統合と、それらを参照するファイルへの編集 - 提案した場合は、
docs/assets/からの各移動と、その移動に伴うリンクの更新
ユーザーに編集してもらった後、すべての変更について一度だけ承認を得ます。その後、次の内容を書き込みます。
-
AGENTS.mdを編集し、CLAUDE.mdは決して編集しません。## Agent skillsブロックがすでにある場合は、重複を追加せず、その内容をブロック内で更新し、周囲にあるユーザーの編集は維持します。### Triage labelsサブブロックはtriageがインストールされ、セクション B を実行した場合に限り含めます。### Releasesサブブロックはセクション E を実行した場合に限り含めます。 -
@AGENTS.mdの1行を含むCLAUDE.md、またはAGENTS.mdへのシンボリックリンクはそのままにし、不足している.gitignoreの行を追加します。 -
このスキルフォルダー内のシードテンプレートを出発点として、次のドキュメントファイルを作成します。
- issue-tracker-github.md:GitHub の課題トラッカー
- issue-tracker-gitlab.md:GitLab の課題トラッカー
- issue-tracker-local.md:ローカル Markdown の課題トラッカー
- triage-labels.md:ラベルのマッピング。
triageがインストールされている場合に限り作成します - domain.md:ドメインドキュメントの利用ルールと構成
- releasing.md:リリースライフサイクル。セクション E を実行した場合に限り作成します
「その他」の課題トラッカーについては、ユーザーの説明をもとに
docs/agents/issue-tracker.mdを一から作成します。すべての
docs/agents/issue-tracker.mdに、テンプレートの## Title prefixesセクションを含めます。これにより、各スキルが同じ形式で課題にタイトルを付けられます。その意味リストには、プロジェクトの未解決課題のタイトルにすでに使われている領域を選び、それぞれの領域が対象とする内容を1行ずつ記載します。 -
承認された既存の
CONTEXT.mdまたはCONTEXT-MAP.mdの名前変更や統合を実行し、それを参照していたファイルを更新します。 -
承認された
docs/assets/からの移動を実行し、対象へのリンクを更新します。
承認された変更をすべて実施したら完了です。
5. 監査
このマシンでセットアップされているかどうかにかかわらず、プロジェクトが保持するすべてのハーネスファイルをルートから順に確認し、set-up-machine の rules.json と照合します。.claude/settings.jsonとsettings.local.json、.cursor/cli.json、opencode.jsonまたはopencode.jsoncと.opencode/、.codex/config.toml` が対象です。references/project-files.md には、各ハーネスでプロジェクトファイルがグローバルルールにどのような影響を与えられるか、また各項目をどう判断するかが記載されています。各指摘は次のように報告します。
weakens:いずれかのハーネスで、マシンに設定された状態ではグローバルルールが適用されなくなっています。どのルールが、なぜ適用されなくなるかを説明し、修正案を提示します。項目を削除するか、プロジェクト独自のコマンドに範囲を絞ります。ファイルはプロジェクトのものなので、ユーザーの承認を得てから変更します。overlaps:ルールが有効なまま、そのコマンドを対象とする許可設定があります。範囲を絞ることを提案します。extra:プロジェクトの拒否または確認要求の設定です。gap:判断できない内容です。それぞれを明記します。
リポジトリ内に残っている古い CONTEXT.md または CONTEXT-MAP.md もすべて報告し、Section C が提案するそれぞれの改名先を示します。## Title prefixes セクションがない docs/agents/issue-tracker.md があれば報告し、ステップ 3 で作成するセクションを提案します。リリースの兆候があるのに docs/agents/releasing.md がないプロジェクト、およびユーザーの共有リリースルールと食い違う docs/agents/releasing.md があれば報告し、Section E で更新する内容を提案します。
weakens がなければ監査に合格です。合格するか、ユーザーが weakens の項目を残すことを選択した時点で完了です。その場合、監査は不合格のままであり、レポートには該当する項目を記載します。
6. 完了
セットアップが完了したこと、監査で見つかった内容、今後どのスキルがこれらのファイルを参照するかをユーザーに伝えます。後から AGENTS.md と docs/agents/*.md を直接編集できることも伝えます。このスキルを再実行すると、プロジェクトを再監査し、共有リリースルールが変わった場合はリリースページを更新し、ユーザーの希望に応じて課題トラッカーを切り替えます。コミットはユーザー、またはこのスキルを呼び出したスキルに任せます。