はじめに
Xとかを見ていると、Clade Code の話をよく見かけるようになり。
VSCodeで、GitHub Copilotを使っているけど、CLIは使っていなかったなー。と思い。
Clade CodeのCLIを使おうと思ったら、無料プランでは使え無さそう。(違ったらすみません)
うーん、とりあえず、CLIの感じに慣れたいだけだから、GitHub Copilot は?とみると。
無料プランがある!
ということで、ちょっと使ってみた。ので、記憶の定着のためにも残しておこうかと。
インストール
WinGetでインストール
作業フォルダを作成して、起動
C:\dev\copilot
のフォルダを作って、コマンドプロンプトで、「copilot」コマンドを実行
C:\dev\copilot>copilot
いい感じに起動。
2番目のYesを選択。
エージェントのスキルを作ってみる
Gemini に色々教わりながら作ってみる。
準備
必要なものは、「SKILL.md」
Geminiに以下サンプルを貰う。
---
name: file-validator
description: 指定されたファイルが空(Empty)ではないか、また論理的な不整合がないかをローカル環境でチェックするスキルです。
commands:
- exec: cmd.exe /c .github\copilot\skills\my-validator\validate.bat $1
triggers:
- "このファイルの中身が空(Empty)になっていないかチェックして"
- "プログラムの論理チェックを実行して"
- "validate.bat を実行して"
---
# ファイル論理バリデータ
## 使い方
Copilotはこのスキルを使って、指定されたファイルの簡易バリデーションをWindowsのコマンドプロンプト環境で実行します。
@echo off
chcp 65001 > nul
setlocal enabledelayedexpansion
REM 引数チェック
if "%~1"=="" (
echo エラー: 検証するファイルパスが指定されていません。
exit /b 1
)
set "FILE_PATH=%~1"
REM ファイルの存在チェック
if not exist "!FILE_PATH!" (
echo エラー: ファイル '!FILE_PATH!' が見つかりません。
exit /b 1
)
echo === バリデーションを開始します: !FILE_PATH! ===
REM 1. 空白・Emptyチェック (ファイルサイズが0バイトか確認)
for %%I in ("!FILE_PATH!") do set "FILE_SIZE=%%~zI"
if "!FILE_SIZE!"=="0" (
echo [NG] エラー: ファイルが空(Empty)です!記述が不足しています。
exit /b 1
)
REM 2. 簡易的な論理バグチェック(テスト用:特定の文字列を検索)
findstr /C:"ArrayIndexOutOfBoundsException" "!FILE_PATH!" > nul
if !errorlevel! equ 0 (
echo [NG] 警告: コード内に配列のインデックス範囲外エラーの可能性を検知しました。
exit /b 1
)
echo [OK] 基本的なチェックをクリアしました!
exit /b 0
「.copilot\skills」の中に「my-validator」というフォルダを作って、ファイルを配置
.copilot\skills\my-validator\SKILL.md
.copilot\skills\my-validator\validate.bat
認識するか確認
/skills を実行
おお!!出てきた。
/skills list を実行
おお、出てきている!
スキルが使われるか確認
「test_empty.txt」の空ファイルを作る。
「test_empty.txt が空(Empty)になっていないかチェックして」 を実行
おお!!!使われている!
カスタムエージェントを作ってみる!
パターン1
Geminiに指示してもらいながら。
準備
「AGENT.md」を作る!
---
name: code-auditor
description: プロジェクトのコード品質、空ファイル、論理バグなどの監査を専門に行う品質管理エージェントです。
skills:
- file-validator
---
# 品質監査エージェント (Code Auditor Agent)
## ペルソナと役割
- あなたは経験豊富なリード品質管理エンジニア(QA)です。
- コードの論理的な不整合や、設定の不備、空ファイルなどのリスクに対して厳しく、かつ具体的なアドバイスを行います。
## 振る舞い・言語ルール
- **ユーザーへの問いかけ、エラーの報告、提案など、すべての会話は必ず「日本語」で行ってください。**
- 内部のスクリプトやエラーメッセージが英語であっても、ユーザーにはそれを日本語に翻訳・要約して伝えてください。
- ユーザーから引数(ファイルパス)が提示されていない場合は、「検証するファイルを指定してください」と**日本語で**選択肢を提示してください。
以下に配置する!
.copilot\agents\code-auditor\AGENT.md
認識しているか確認
/agents を実行!
おおー出てきた!
動かしてみる
「プロジェクト内のこのソースコード(またはファイル)に問題がないか、あなたの持っているスキルを使って厳しく監査してみて」
おお!!反応した!
「test_empty.txt を調べて」
おお!!いいかんじ!
パターン2
公式の手順に従うと、CLIからもできる。
「.copilot\agents\code-auditor2.agent.md」
にファイルが出来上がる。
なるほど。
MCPサーバを使ってみる!
せっかくなので、アトラシアン の コンフルエンス をいじれるようにしてみようかと。
アトラシアン公式のMCPサーバは?
を見ると、
で、
atlassian側の手順は?
認証方法は、
Depending on your setup, a secure browser-based OAuth 2.1 flow is triggered, or API token authentication is used.
とあるから、「a secure browser-based OAuth 2.1 flow is triggered」もしくは、「API token」
copilot側の手順は?
なるほど、「/mcp add」すればよい。
認証法はどっちにしようか。
「a secure browser-based OAuth 2.1 flow is triggered」
と
「API token」
「a secure browser-based OAuth 2.1 flow is triggered」は、いわゆる、ブラウザが立ち上がって認証するやつかな?
「API token」は、ブラウザを立ち上げずに認証する方法かな?
とりあえず、使いたいだけだから、「a secure browser-based OAuth 2.1 flow is triggered」が良いかな。
とりあえずCopilotに追加してみる。
こんな感じ。
Server Nameは、適当です。
HTTPかSSEかは、
HTTP または SSE: リモート MCP サーバーに接続します。 HTTP は、Streamable HTTP トランスポートを使用します。 SSE では、従来の HTTP と Server-Sent イベント トランスポートが使用されます。これは MCP 仕様では非推奨ですが、下位互換性のために引き続きサポートされています。
とあるので、HTTPが良いのかな?
で、追加したら、ブラウザが立ち上がって認証完了!
「.copilot\mcp-config.json」が作られているので、中身を見てみると。
{
"mcpServers": {
"atlassian-rovo-mcp": {
"type": "http",
"url": "https://mcp.atlassian.com/v1/mcp",
"headers": {},
"tools": [
"*"
]
}
}
}
使ってみる
以前作ったコンフルエンス上のTODOリストを取得してみる。
「コンフルエンスからTODOリストを取得してみて」
このあと、URLを渡したら、取得してくれた!
MCPのURLが更新されている?
を見ると、URLが以下の感じ。
https://mcp.atlassian.com/v1/mcp/authv2
変更して試しても、ちゃんと動いた。
振り返り
面白いなーって感じ。
ちなみに、色々と躓いたりしていたけど振り返ってみると、ちゃんとドキュメントを読んで進めていれば一直線だったかも。
急がば回れの精神で、ちゃんとドキュメントを理解しないとなーって思った今日この頃。
ついつい、読むのがめんどくさくて、摘み読みしちゃうけど、バックボーンの知識が無いものに対して行うと、自分の場合、回り道になってしまうことを改めて理解。

















