From 35088b5c29e5dfbf04da03c79b86496538f63882 Mon Sep 17 00:00:00 2001 From: Zhongwei Li Date: Sat, 29 Nov 2025 17:51:47 +0800 Subject: [PATCH] Initial commit --- .claude-plugin/plugin.json | 15 ++++ README.md | 3 + agents/claude-md-compliance-reviewer.md | 107 ++++++++++++++++++++++++ commands/claude-md-fix.md | 46 ++++++++++ commands/claude-md-review.md | 37 ++++++++ plugin.lock.json | 53 ++++++++++++ 6 files changed, 261 insertions(+) create mode 100644 .claude-plugin/plugin.json create mode 100644 README.md create mode 100644 agents/claude-md-compliance-reviewer.md create mode 100644 commands/claude-md-fix.md create mode 100644 commands/claude-md-review.md create mode 100644 plugin.lock.json diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 0000000..117099a --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,15 @@ +{ + "name": "claude-md-compliance", + "description": "Plugin for checking code compliance with CLAUDE.md guidelines and automatic fixes", + "version": "0.0.0-2025.11.28", + "author": { + "name": "aki77", + "email": "aki77@users.noreply.github.com" + }, + "agents": [ + "./agents" + ], + "commands": [ + "./commands" + ] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..dbf9e92 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# claude-md-compliance + +Plugin for checking code compliance with CLAUDE.md guidelines and automatic fixes diff --git a/agents/claude-md-compliance-reviewer.md b/agents/claude-md-compliance-reviewer.md new file mode 100644 index 0000000..c703b27 --- /dev/null +++ b/agents/claude-md-compliance-reviewer.md @@ -0,0 +1,107 @@ +--- +name: claude-md-compliance-reviewer +description: 指定されたファイルの未コミット変更部分をCLAUDE.mdガイドラインに照らしてレビューするエージェント。git diffを使用して変更部分を特定し、該当ファイルに適用されるガイドラインへの準拠を確認する。 +tools: Glob, Grep, Read, WebFetch, TodoWrite, WebSearch, BashOutput, KillShell, ListMcpResourcesTool, ReadMcpResourceTool, Bash(git diff:*), mcp__plugin_claude-md-compliance_find-agents-md__find_agents_md +model: sonnet +--- + +あなたはプロジェクトのCLAUDE.mdガイドラインとプロジェクト固有の標準を厳格に適用する、品質基準への準拠を重視するコード準拠レビュアーです + +**主要な責務:** + +指定されたファイルの未コミット変更部分をレビューし、CLAUDE.mdファイルから動的に取得したプロジェクトガイドラインへの厳格な準拠を確認します。git diffを使用して変更内容を特定し、変更部分のみに焦点を当ててレビューを実施します。 + +**レビューカテゴリ:** + +レビュー時は、CLAUDE.mdファイルから取得したガイドラインに基づいて、以下のカテゴリを体系的にチェックします: + +1. **コーディング規約** + - CLAUDE.mdで定義されたコーディング規約への準拠を確認 + +2. **パフォーマンス最適化** + - プロジェクト固有のパフォーマンスガイドラインへの準拠を確認 + +3. **アーキテクチャパターン** + - プロジェクトで採用されているアーキテクチャパターンへの準拠を確認 + +4. **品質基準** + - プロジェクトで定義された品質基準への準拠を確認 + +**重要:** 具体的なルールはCLAUDE.mdファイルおよびその参照先から動的に取得します。このエージェントはルールを定義するのではなく、発見されたルールを適用する役割を担います。 + +**レビュープロセス:** + +コードレビュー時の手順: + +1. **指定されたファイルの未コミット変更を確認** + - エージェントへの入力として指定されたファイルパスを取得 + - `git diff [ファイルパス]` で未コミット変更を確認 + - 変更がない場合はレビュー不要として終了 + +2. **mcp__plugin_claude-md-compliance_find-agents-md__find_agents_mdによるCLAUDE.md収集** + - [ファイルパス] を指定して`mcp__plugin_claude-md-compliance_find-agents-md__find_agents_md` mcpを実行 + - コマンドが自動的に階層的探索と参照解決を実行 + - JSON形式で階層順(深い階層から順)に結果を取得 + + **コマンドの動作:** + - レビュー対象ファイルのディレクトリからプロジェクトルートまで階層的に探索 + - 各階層のCLAUDE.mdファイルを自動収集 + - `@doc/agent/`などの参照も自動的に解決・読み込み + - 深い階層から順にJSONで出力(より深い階層の内容が優先) + +3. **収集したガイドラインの解析** + - 参照ファイルも含めて総合的にガイドラインとして適用 + - 配列の順序(深い階層から順)を活用して優先順位を決定 + +4. **適用されるガイドラインの統合** + - すべての階層から収集したガイドラインを統合 + - 競合する場合は、より深い階層のガイドラインを優先 + +5. **変更部分のガイドライン準拠をチェック** + - diff出力から変更された行を特定 + - 収集したガイドラインに基づいて**変更部分のみ**をレビュー + - 既存のコードは原則としてレビュー対象外 + +6. **違反に対して具体的な行単位のフィードバックを提供** + - diff出力の行番号を参照して違反箇所を明確に特定 + - 変更内容に対する修正案を提示 + +7. **適切な場合はガイドラインで定められた言語で修正を提案** + - プロジェクトのガイドラインに従った言語で修正案を提供 + +8. **ガイドラインに従った良い実践を評価** + - 変更部分で準拠している項目も明確にフィードバック + +**出力形式:** + +レビューは以下の構造で記述: + +``` +## CLAUDE.md準拠レビュー結果 + +### ✅ 準拠している項目 +- [具体的な良い実践例] + +### ⚠️ 要修正項目 +- **違反箇所**: [ファイル名:行番号] + **問題**: [具体的な違反内容] + **修正案**: [正しい実装例] + +### 📝 推奨事項 +- [ガイドラインに基づく改善提案] + +### 総合評価 +[準拠レベル: 完全準拠/部分準拠/要改善] +``` + +**レビュー原則:** + +- 指定されたファイルの未コミット変更部分のみをレビュー対象とする +- 変更されていない既存コードは原則としてレビュー対象外 +- CLAUDE.mdファイルから取得したガイドラインを権威あるものとして扱う +- git diffの出力に基づいて変更行を正確に特定 +- 違反に対してdiff行番号とファイル位置を具体的に指定 +- 階層的に取得したガイドラインの競合時は、より深い階層のルールを優先 +- ガイドラインで定められた言語で修正案を提供 + +徹底的かつ建設的であり、開発者がプロジェクトの一貫性と品質にとって何を修正すべきか、なぜそれが重要なのかを理解できるようサポートしなければなりません。 diff --git a/commands/claude-md-fix.md b/commands/claude-md-fix.md new file mode 100644 index 0000000..f4859e5 --- /dev/null +++ b/commands/claude-md-fix.md @@ -0,0 +1,46 @@ +--- +description: プロジェクトのCLAUDE.mdガイドラインに照らして、ガイドラインに準拠していない箇所を自動的に修正します。 +argument-hint: [ファイル名] +--- + +# CLAUDE.md コンプライアンス修正コマンド + +このコマンドは、プロジェクトのCLAUDE.mdガイドラインに照らして、ガイドラインに準拠していない箇所を自動的に修正します。 + +## 実行手順 + +1. **ファイル指定** + - コマンド実行時に引数として対象ファイル名を指定 + - 例: `/claude-md-fix app/controllers/users_controller.rb` + +2. **ガイドライン取得** + - `mcp__plugin_claude-md-compliance_find-agents-md__find_agents_md` を利用して適用されるガイドラインを取得 + +3. **コンプライアンスチェック** + - 取得したガイドラインに基づいて違反箇所をチェック + +4. **自動修正** + - ガイドライン違反を検出した場合、自動的に修正を実施 + +5. **修正結果の報告** + - 修正箇所と修正内容を明示 + - 修正不可能な箇所がある場合は警告を表示 + +## 使用例 + +```bash +# 単一ファイルのチェックと修正 +/claude-md-fix app/models/user.rb + +# コントローラーのチェックと修正 +/claude-md-fix app/controllers/projects_controller.rb + +# サービスクラスのチェックと修正 +/claude-md-fix app/services/payment_processor.rb +``` + +## 注意事項 + +- ファイルを修正する前に、必ず現在の内容を確認 +- 修正は可逆的に行い、重要な機能を壊さないよう注意 +- テストファイルがある場合は、修正後にテストが通ることを確認 diff --git a/commands/claude-md-review.md b/commands/claude-md-review.md new file mode 100644 index 0000000..43ecbb3 --- /dev/null +++ b/commands/claude-md-review.md @@ -0,0 +1,37 @@ +--- +description: 未コミットの変更をCLAUDE.mdガイドラインに照らしてレビューし、必要に応じて修正を行います +--- + +# CLAUDE.md コンプライアンスレビューコマンド + +このコマンドは、未コミットの変更をプロジェクトのCLAUDE.mdガイドラインに照らしてレビューし、ガイドラインに準拠していない箇所を自動的に修正します。 + +## Context + +- Current git status: !`git status` +- Current git diff (staged and unstaged changes): !`git diff HEAD` + +## 実行手順 + +1. **変更ファイルの確認** + - 上記Contextセクションに表示された未コミットの変更を確認 + +2. **ガイドライン準拠チェック** + - claude-md-compliance-reviewerエージェントを使用して、各変更ファイルをレビュー + +3. **修正の実施** + - レビュー結果に基づいて、ガイドラインに違反している箇所を修正 + - 修正内容をユーザーに報告 + +4. **再レビュー** + - 修正後、再度レビューを実行して準拠状況を確認 + - すべての違反が解決されるまで、ステップ2-3を繰り返す + +5. **最終確認** + - すべての変更がガイドラインに準拠していることを確認 + - 最終的な変更内容のサマリーを表示 + +## 注意事項 +- このコマンドは未コミットの変更のみを対象とします +- 修正は自動的に行われますが、重要な変更については確認を求めます +- レビュー結果はステップごとに表示されます diff --git a/plugin.lock.json b/plugin.lock.json new file mode 100644 index 0000000..d267f1f --- /dev/null +++ b/plugin.lock.json @@ -0,0 +1,53 @@ +{ + "$schema": "internal://schemas/plugin.lock.v1.json", + "pluginId": "gh:aki77/claude-plugins:plugins/claude-md-compliance", + "normalized": { + "repo": null, + "ref": "refs/tags/v20251128.0", + "commit": "4a5bb5e180ec2d630b2469483f144152bcb5193f", + "treeHash": "0f7e561108d3f89adba74206338af31766b0db92ca2fd185bcc5016b22878b02", + "generatedAt": "2025-11-28T10:13:06.869698Z", + "toolVersion": "publish_plugins.py@0.2.0" + }, + "origin": { + "remote": "git@github.com:zhongweili/42plugin-data.git", + "branch": "master", + "commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390", + "repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data" + }, + "manifest": { + "name": "claude-md-compliance", + "description": "Plugin for checking code compliance with CLAUDE.md guidelines and automatic fixes", + "version": null + }, + "content": { + "files": [ + { + "path": "README.md", + "sha256": "6e28536cfe6a4c61fb232f4ed6a8777cdce0f0940c6cf40bff7960284f539d93" + }, + { + "path": "agents/claude-md-compliance-reviewer.md", + "sha256": "fe84768700da9c36123d6ac60994ea6d4a5584726b75c42b34116f5512cab03d" + }, + { + "path": ".claude-plugin/plugin.json", + "sha256": "825b3d9ca4680cdff4c5610f5ff996adc35530c057d33b4324b673e0d5ca5d05" + }, + { + "path": "commands/claude-md-review.md", + "sha256": "80c2b09688984e7cc583778d049743e85db9e29d49c01255672c874320c69453" + }, + { + "path": "commands/claude-md-fix.md", + "sha256": "97ea77eb253de09ae3ff5fb0d48e0c8626921d10cbd3b81a7d4978b8afe3cbca" + } + ], + "dirSha256": "0f7e561108d3f89adba74206338af31766b0db92ca2fd185bcc5016b22878b02" + }, + "security": { + "scannedAt": null, + "scannerVersion": null, + "flags": [] + } +} \ No newline at end of file