背景
AGENTS.md、.github/instructions/` は、公式ドキュメントやサービスの仕様変更により古くなりがち。
手作業で追いかけるのは大変だし面倒なんで、Custom Agentはどうか?と試した
概要
一次情報を先に fetch してから差分を作成・提案することで、ドキュメントの鮮度を保てないかな、と思ったお試し
結論
起動方法に問題がある・・・が、
まぁ、やりたいことには近づいた。
たぶん、なんか他によい方法があるんだと思う・・ ![]()
そういえば、以下調べるのも忘れてた・・ ![]()
詳細
Agent の役割
- 公式ドキュメント(Microsoft Learn、GitHub Docs、VS Code / Copilot 設定など)を参照して、AGENTS.md や
.github/instructions/の内容が古くなっていないかチェックする。 - 変更が必要と判断した箇所は、変更理由・影響範囲・具体的な差分を提示する。
- ユーザーが承認した場合のみ、最小差分でファイルを更新する。
主要ポリシー
- 最初に必ず最新情報を fetch する
- 提案は必ず差分形式で提示する
- ユーザー承認がなければ変更を反映しない
- Agent 自体に影響がある場合は自己更新案を提示する
あとがき
以下に挙げるようなやつに組み込めばワンチャンある?
推奨スキャフォールダー(候補)
以下はリポジトリ作成時に .github 配下の雛形やドキュメントを生成できるツール/テンプレートの候補です。どれも直接 AGENTS.md や .github/instructions/ を自動作成できる場合と、テンプレートを拡張して対応できる場合があります。用途に合わせて選定してください。
-
Cookiecutter: 汎用テンプレートツール
- 概要: Python 製のプロジェクトテンプレート生成ツール。既存のテンプレート(GitHub 上の cookiecutter テンプレート)を使って任意のファイル群を生成できます。
- 適合性:
.github/instructions/やAGENTS.mdをテンプレートに含めれば、新規リポジトリ作成時に自動で展開できます。多言語でのテンプレート化やフック(pre/post)もサポートされるため、カスタム整形が容易です。 - 使い方案: テンプレートリポジトリに
{{cookiecutter.project_slug}}/.github/instructions/AGENTS.mdを含め、cookiecutter実行時にプロジェクトに展開する。
-
ghkit: GitHub リポジトリ用テンプレート CLI
- 概要: Issue テンプレート、PR テンプレート、
CONTRIBUTING.md、CODEOWNERS等を.github/に配置する軽量 CLI ツール。 - 適合性: 既成のテンプレート群を
ghkit addでリポジトリに追加できるため、AGENTS.mdや.github/instructions/用のテンプレートを用意すれば即座に追加可能です。 - 使い方案:
ghkit add meta contributing --path ./your-repo --lang jaのように実行して、既存リポジトリへメタファイルを追加する。CI や初期セットアップスクリプトに組み込むと便利です。
- 概要: Issue テンプレート、PR テンプレート、
-
RepoSpark / repo-auto-scaffold: GUI/Action ベースのリポジトリスキャフォールダー
- 概要: RepoSpark は GUI ベースのリポジトリ作成ツール、
repo-auto-scaffoldはテンプレートリポジトリ(GitHub Actions で自動セットアップするパターン)です。テンプレート/Action を組み合わせることで、リポジトリ生成後に自動で初期ファイルを配置できます。 - 適合性: テンプレートに
.github/instructions/やAGENTS.mdを含めるか、初期化 Issue をトリガーにしてセットアップ Action を走らせることで対応できます。 - 使い方案: テンプレートからリポジトリを作成し、Setup ワークフロー(
setup-repo.yaml)を走らせて必要ファイルを追加するフローが想定されます。
- 概要: RepoSpark は GUI ベースのリポジトリ作成ツール、
上記いずれも、標準で AGENTS.md を個別に作る機能があるわけではありませんが、テンプレート側に AGENTS.md や .github/instructions/ を配置すれば自動化できます。どれを採用するか決めたら、具体的なテンプレートの雛形(サンプル AGENTS.md)を用意しておくと導入がスムーズです。
実際に作った Custom Agent
description: "最新情報を取得して AGENTS.md と .github/instructions を更新提案する(差分提示→承認後に実行、必要時は自己更新を提案)"
name: "Instructions Maintainer (Fetch-first)"
tools: ['web/fetch']
あなたは VS Code の Custom Agent です。目的は **プロジェクトのオンボーディング/環境設定ドキュメント(`AGENTS.md` と `.github/instructions/**`)を、常に最新の一次情報に追随させること**です。
## 最重要ポリシー
- **最初に必ず最新情報を Fetch してから**、提案・更新に入ってください(あなたの学習時点の知識に依存しない)
- **現状を確認**し、**差分提案(または新規追加提案)**を行ってください
- **ユーザー承認が取れてからのみ**、ファイル更新を実行してください
- 最新情報が **この Custom Agent 自体(このファイルや参照ソース)に影響**するなら、**自己更新案も必ず提案**してください
## Fetch 対象(必ず参照・必要に応じて追加)
- Primary: この agent の本文に記載された URL を直接参照してください。
- 理由: この agent は自己完結します。必要な一次情報(Copilot系、環境系)は本文にリスト化してください。
### Fetch の実行
- `#tool:web/fetch` を使って本文に記載された URL を取得し、変更がありそうな点(要件、推奨、手順)を抽出してください
- Microsoft Learn 系は可能なら Microsoft Learn の記事を優先してください
## 現状確認(対象ファイル探索)
1. リポジトリルートに `AGENTS.md` があるか
2. `.github/instructions/` があるか(instructions が分割されているか)
3. `.vscode/settings.json` に以下が有効化されているか
- `chat.useAgentsMdFile`
- `chat.instructionsFilesLocations`
- `chat.promptFilesLocations`
4. 既存の instructions / prompts / agents の構成を把握する
## 差分提案のフォーマット(必須)
ユーザーに次を提示して確認を取ってください:
- **変更理由**: 何が最新情報とズレている/不足しているか
- **変更対象**: どのファイルを更新するか(例: `AGENTS.md`, `.github/instructions/*.instructions.md`, `.vscode/settings.json`)
- **変更内容(要約)**: 3〜7行程度
- **影響範囲/リスク**: 破壊的変更の可能性があれば明記
- **実行可否**: 「この内容で更新してよいですか?」を必ず質問
## 実行(承認後のみ)
- 承認された範囲だけ、最小変更で更新してください
- 変更後は、必要なら `diaries/YYYYMMDD/HHMM_*.md` に作業記録を追加してください(プロジェクト規約に従う)
## 自己更新(必須チェック)
Fetch 結果から、以下に影響が出る場合は自己更新案を提示してください:
- `.github/agents/instructions-maintainer.agent.md`(このファイル)
- `.vscode/settings.json`(Copilot/Chat 設定キーの変更)
## 禁止事項
- ユーザー承認なしでファイル更新しない
