guardfile について
guardfile は、渡されたリポジトリのファイルから DCO、CLA、changesets、sign-off の4種類の貢献ルールを確認します。入力内容だけを使い、証拠となるパス、不足項目、全体の完了状態をレポートします。
主な機能
- 01DCO、CLA、changesets、sign-off を検出
- 02ファイルパスまたは内容でルールを判定
- 03重複のない証拠パスを順序付きで表示
- 04適用済みと不足のルールを報告
- 05入力をローカルで検証
活用シーン
- 01リリース前に貢献要件を確認
- 02リポジトリファイルのルール根拠を点検
- 03不足している DCO、CLA、changeset、sign-off を特定
MCP 対応
MCP サーバーは `extract_guardrails` ツールを公開します。リポジトリ相対パスとファイル内容を受け取り、検出したルール、証拠、不足項目、完了状態を返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| files | array | はい | 調査するリポジトリファイル(1 つ以上) |
詳細
guardfile
リポジトリでは、コミットへの署名、ライセンス条項への同意、変更セットの追加など、さまざまな貢献ルールを設けていると主張できます。しかし、それぞれのルールを実際に適用するファイルを示せなければ、その主張には意味がありません。guardfile は、そのファイルを示します。リポジトリのファイルを渡すと、実際に存在するルールと、それぞれの根拠を確認できるレポートを返します。
固定ルールに基づいて、次の 4 つのルールを検出します。
- DCO — ベース名が大文字小文字を問わず正確に
DCOであるファイル、または Developer Certificate of Origin に言及するコンテンツ。 - CLA — ベース名が大文字小文字を問わず
CLAで始まるファイル(CLA.mdなど)、または Contributor License Agreement に言及するコンテンツ。 - changesets —
.changeset/を含むパス、/.changesetで終わるパス、正確に.changesetであるパス、または@changesets/スコープに言及するコンテンツ。 - sign-off —
Signed-off-by:行を含むコンテンツ。コロンもルールの一部です。Signed-off-byへの言及だけでは該当しません。
コンテンツの照合では大文字と小文字を区別しません。レポートには各ルールについて、該当したパスをソートして記載します。同じファイルがパスとコンテンツの両方によって同じルールに該当しても、各パスは一度だけ記載されます。4 つの判定に加えて、レポートには該当数、不足しているルールの名前(固定順序 dco、cla、changeset、signoff)、および 4 つすべてが該当する場合にのみ true となる complete フラグが含まれます。
不正な入力(ファイルリストがない、または空である、オブジェクトではないエントリ、パスがない、空である、または重複している、コンテンツがない、または文字列ではない)は、該当するパスを示す検証エラーになります(例:files[1].content must be a string)。部分的なレポートは生成されません。処理は純粋かつローカルで行われます。ネットワークや設定は不要で、渡された入力以外のファイルを読み取ることもありません。
CLI
npx @reneturcios/guardfile extract --input args.json
npx @reneturcios/guardfile --version
args.json には引数オブジェクト全体が含まれます。
{
"files": [
{ "path": "DCO", "content": "Developer Certificate of Origin\n\nVersion 1.1" },
{ "path": "docs/contributing.md", "content": "Please add a Signed-off-by: line." },
{ "path": ".changeset/bright-foxes-jump.md", "content": "---\n\"pkg\": patch\n---\n" }
]
}
レポートは JSON として出力されます。
{
"guardrails": {
"dco": { "present": true, "evidence": ["DCO"] },
"cla": { "present": false, "evidence": [] },
"changeset": { "present": true, "evidence": [".changeset/bright-foxes-jump.md"] },
"signoff": { "present": true, "evidence": ["docs/contributing.md"] }
},
"present_count": 3,
"missing": ["cla"],
"complete": false
}
終了コード:成功時は 0、実行時エラー(読み取れない入力ファイルや無効な入力を含む)では 1、使用方法のエラーでは 2 です。
MCP server
npx -y @reneturcios/guardfile mcp
MCP クライアントの設定:
{
"mcpServers": {
"guardfile": {
"command": "npx",
"args": ["-y", "@reneturcios/guardfile", "mcp"]
}
}
}
ツール
extract_guardrails— リポジトリのファイルから貢献ルールを抽出します。files(配列、必須、1 件以上)—{path, content}オブジェクトとして指定するリポジトリのファイル。pathはリポジトリ相対パスで、セット内で一意である必要があります。contentはファイルのコンテンツで、空でもかまいません。
{guardrails, present_count, missing, complete} を返します。
Docker
docker run -i ghcr.io/cloudcorprecords/guardfile
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/guardfile extract --input /w/args.json
開発
npm install
npm run build # tsc -> dist/
npm test # tsx --test test/*.test.ts (pure local, no network)
npm run dev # run the CLI from source
ライセンス
MIT — Copyright (c) 2026 Rene Turcios
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。