GitHub Copilotからeverything-claude-codeを使いたい人生だったので試してみた
はじめに
Anthropicハッカソン優勝者がClaudeCodeの設定集としてeverything-claude-codeをGitHubで公開し、この設定集はかなり注目を浴びています。実際に使いたいなぁと思い、READMEをのぞいたところ、Claude Code, Codex, Cursor, OpenCode, Geminiは対応していると記載がありましたが、GitHub Copilotの文字がどこにも見当たりませんでした(涙)。社内ではGitHub Copilotを使用しており、何とかして使えないかトライしてみました。
環境準備
everything-claude-codeのリポジトリにあるagents、 rules、 skills、 commandsフォルダを自身のプロジェクトフォルダにある.githubフォルダにコピーします(.githubフォルダが無い場合は新規で作成してください)。
<プロジェクトフォルダ>
├── .github
│ ├── agents/
│ ├── commands/
│ ├── rules/
│ ├── skills/
│ └── copilot-instructions.md
│
...
copilot-instructions.mdには、Pythonのルールと先ほど追加したagents、 rules、 skills、 commandsフォルダの説明を記載し、チャットの内容に応じて適切な設定が使用されるようにしました。
あなたは「Everything Claude Code」の設計思想に基づいた、自律的でパフォーマンスが最適化されたAIエージェントです。
以下の agents / rules / skills / commands のうち、回答に必要な内容のみを読み込み、ユーザの質問に日本語で答えて下さい。
## 言語ごとのルール
### Python
- パッケージマネージャーとしてuvを使用すること。
- Pythonスクリプトを実行する際は、必ず `uv run python <script_name>.py` 形式を使用すること。
- 依存関係が必要な場合は、事前に `uv add <package>` を実行すること。
- 明示的な指示がない限り、`pip` や `venv` モジュールを直接呼び出さないこと。
## agents / rules / skills / commands ディレクトリ構成と概要
{agents / rules / skills / commands ディレクトリ構成を記載する}
skillsを試してみる:TDDによる実装
everything-claude-codeには、tdd-workflowというテスト駆動開発のフローを記載したskillsがあるので試してみます。
プロジェクトフォルダでVSCodeを開き、GitHub Copilotのチャットで以下のプロンプトを入力します。
TDDでoutput_examples/python_rock_paper_scissorsにコンピュータとじゃんけんするプログラムをPythonで作ってください。
作成したゲームはmain.pyから実行できるようにしてください。
回答としては、以下のmain.py、test_main.pyが出力されました。
import random
def play_rps():
choices = ["rock", "paper", "scissors"]
player = input("Choose rock, paper, or scissors: ").strip().lower()
if player not in choices:
print("Invalid choice. Please select rock, paper, or scissors.")
return
computer = random.choice(choices)
print(f"Computer chose: {computer}")
if player == computer:
print("It's a draw!")
elif (
(player == "rock" and computer == "scissors") or
(player == "scissors" and computer == "paper") or
(player == "paper" and computer == "rock")
):
print("You win!")
else:
print("You lose!")
if __name__ == "__main__":
play_rps()
"""
User Journey: Rock-Paper-Scissors Game
As a player, I want to play rock-paper-scissors against the computer, so that I can enjoy a simple game and see if I win, lose, or draw.
"""
def test_player_wins(monkeypatch, capsys):
# Player: rock, Computer: scissors
inputs = iter(["rock"])
monkeypatch.setattr("builtins.input", lambda _: next(inputs))
monkeypatch.setattr("random.choice", lambda x: "scissors")
from main import play_rps
play_rps()
out = capsys.readouterr().out
assert "You win!" in out
def test_player_loses(monkeypatch, capsys):
# Player: paper, Computer: scissors
inputs = iter(["paper"])
monkeypatch.setattr("builtins.input", lambda _: next(inputs))
monkeypatch.setattr("random.choice", lambda x: "scissors")
from main import play_rps
play_rps()
out = capsys.readouterr().out
assert "You lose!" in out
def test_draw(monkeypatch, capsys):
# Player: scissors, Computer: scissors
inputs = iter(["scissors"])
monkeypatch.setattr("builtins.input", lambda _: next(inputs))
monkeypatch.setattr("random.choice", lambda x: "scissors")
from main import play_rps
play_rps()
out = capsys.readouterr().out
assert "It's a draw!" in out
def test_invalid_input(monkeypatch, capsys):
# Player: invalid input
inputs = iter(["lizard"])
monkeypatch.setattr("builtins.input", lambda _: next(inputs))
from main import play_rps
play_rps()
out = capsys.readouterr().out
assert "Invalid choice" in out
簡単なじゃんけんプログラムのコード生成ではありますが、tdd-workflowのSkillsにより以下のTDDワークフローにしたがってコードを生成できました。
- ユーザージャーニーを定義
- 必要なテストケース(勝ち・負け・引き分け・不正入力)を test_main.py に実装
- main.py に最小限のじゃんけんロジックを実装
- テスト(pytest)を実行し、すべてGREEN(合格)であることを確認
agentsを試してみる:実装計画の作成
skillsでじゃんけんのコードを作成した際はいきなり実装から始めましたが、本来は計画を立ててから実装すべきです。ここでは実装計画を立てるagentsとしてplannerを試します。
プロジェクトフォルダでVSCodeを開き、GitHub Copilotのチャット画面を開きます。チャットの赤枠のところをクリックすると、先ほど追加したagentsの一覧が表示されるので、plannerを選択します。
plannerを選択した状態で、下記のプロンプトを入力すると、リバーシの実装計画を答えてくれます。
Pythonでリバーシの実装計画を立ててください。先手が自分、後手がコンピュータとし、コンピュータは最も多くの駒がとれる場所に置く振る舞いとしてください。
実際に答えてくれた実装計画は以下のようになります。
# Implementation Plan: Pythonリバーシ(オセロ)対戦プログラム
## Overview
Pythonでリバーシ(オセロ)を実装します。先手はユーザー、後手はコンピュータ。コンピュータは「最も多くの駒が取れる場所」に石を置く戦略を採用します。CLIでの対戦を想定します。
## Requirements
- 8x8のリバーシ盤面
- 先手(黒)はユーザー、後手(白)はコンピュータ
- ユーザーは座標入力で手を指定
- コンピュータは合法手のうち最も多く駒が取れる手を選択
- 合法手がない場合はパス
- ゲーム終了時に勝敗表示
## Architecture Changes
- 新規作成: `reversi.py` — ゲーム本体、盤面管理、ユーザー・AIロジック
- 新規作成: `test_reversi.py` — 主要ロジックのユニットテスト
## Implementation Steps
### Phase 1: ゲーム基盤と盤面ロジック
1. **盤面クラスの作成** (File: reversi.py)
- Action: 8x8盤面の初期化、石の配置、合法手判定、石の反転処理
- Why: ゲームの根幹となるため
- Dependencies: なし
- Risk: 低
2. **合法手探索ロジック** (File: reversi.py)
- Action: 指定プレイヤーの合法手リストを返す関数
- Why: パス判定やAI手選択に必要
- Dependencies: Step 1
- Risk: 低
3. **石の反転処理** (File: reversi.py)
- Action: 指定手で石を置いた際の反転処理
- Why: ルール実装の要
- Dependencies: Step 1
- Risk: 低
### Phase 2: ユーザー・AIインターフェース
4. **CLI入出力の実装** (File: reversi.py)
- Action: 盤面表示、ユーザー入力受付、エラー処理
- Why: ユーザーが操作できるようにするため
- Dependencies: Step 1, 2, 3
- Risk: 低
5. **AI手選択ロジック** (File: reversi.py)
- Action: 合法手のうち最も多く石が取れる手を選択
- Why: 要件通りのAI実装
- Dependencies: Step 2, 3
- Risk: 低
6. **パス・終了判定** (File: reversi.py)
- Action: 合法手がなければパス、両者パスで終了
- Why: ゲーム進行のため
- Dependencies: Step 2, 4, 5
- Risk: 低
7. **勝敗判定・結果表示** (File: reversi.py)
- Action: 石数カウントし勝敗表示
- Why: ゲームの締めくくり
- Dependencies: Step 6
- Risk: 低
### Phase 3: テスト・リファクタ
8. **ユニットテスト作成** (File: test_reversi.py)
- Action: 盤面初期化、合法手判定、反転処理、AI手選択のテスト
- Why: バグ防止・品質担保
- Dependencies: Step 1-5
- Risk: 低
## Testing Strategy
- ユニットテスト: 盤面初期化、合法手判定、石の反転、AI手選択
- 手動テスト: CLIでの対戦、パス・終了・勝敗判定
## Risks & Mitigations
- **Risk**: 合法手判定・反転処理のバグ
- Mitigation: ユニットテストで検証
- **Risk**: 入力ミスによるクラッシュ
- Mitigation: 入力バリデーション・例外処理
## Success Criteria
- [ ] CLIでユーザーvsコンピュータのリバーシが遊べる
- [ ] AIは常に最も多く石が取れる手を選ぶ
- [ ] 合法手がない場合はパスできる
- [ ] 勝敗が正しく表示される
- [ ] 主要ロジックにユニットテストがある
プロンプトに記載したコンピュータの振る舞いも考慮してリバーシの実装計画を出してくれました。
さいごに
今回はeverything-claude-codeのagents、 rules、 skills、 commandsを.githubフォルダにコピーすることで、部分的にGitHub Copilotからでも利用できないかを試してみました。
skillsとagentsを実際に試してみて、GitHub Copilotからでも使用できそうなことがわかりました。ただ、もちろんですが使用できない機能もあります。hooksなんかはClaude Codeで使用する前提となっているので、ただ単にフォルダをコピペするだけでは使用できないです。どうしてもhooksを使用したい場合はCopilot用に書き換えるなどの対応が必要にはなりそうですが、skillsとagentsなどは気軽に試せるかなと思います。
GitHub Copilotであっても興味があれば試してみるのもいいかもしれないですね。
Discussion