mcpField
C
coding-standards

coding-standards

ローカル
github.com/corbat-tech開発ツール517 週間前に更新

coding-standards について

coding-standards(Corbat)は、コーディングエージェントにチーム規約、技術スタック別プロファイル、検証フィードバックを提供します。単独またはマルチエージェントの開発ワークフローで、アーキテクチャ、品質、安全性の基準を統一したいチーム向けです。

主な機能

  1. 01プロジェクトの技術スタックを検出してプロファイルを適用
  2. 02アーキテクチャとコード品質のルールを提示
  3. 03セキュリティを意識したチェック
  4. 04設定済みの基準に照らしたコード検証
  5. 05.corbat.jsonによるルールのカスタマイズ

活用シーン

  1. 01新規プロジェクトの規約設定
  2. 02マルチエージェント開発での基準共有
  3. 03コードレビュー基準に沿った変更の確認
  4. 04レガシーコードのモダナイズ支援

MCP 対応

Corbatはコーディングツール向けのMCPサーバーで、MCPクライアントに規約コンテキストと検証機能を提供します。プロジェクトの技術スタックを検出して適切なルールとフィードバックを返し、AIの生成結果自体は変更しません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"corbat-tech-coding-standards": {
"command": "npx",
"args": [
"-y",
"@corbat-tech/coding-standards-mcp"
]
}
}
}
起動コマンドnpx -y @corbat-tech/coding-standards-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@corbat-tech/coding-standards-mcp1.0.3

ツール

5

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
taskstringはい実装する内容(例:「決済サービスを作成」、「ログインの不具合を修正」)
project_dirstringいいえ自動検出に使用するプロジェクトディレクトリ(任意)

詳細

CORBAT MCP

AI コーディングエージェント向けポリシーおよび品質エンジン

エージェントを活用したソフトウェア開発のための、共通の標準、コンテキスト、検証ゲート。

npm version CI Coverage License: MIT MCP


Cursor VS Code Windsurf JetBrains Zed Claude

MCP 対応のコーディングツールとマルチエージェントのワークフロー向けに設計されています。互換性に関する注意事項をご覧ください。

⚡ 30 秒で試せます — 以下の設定を追加して、コーディングを始めるだけです。


問題点

AI が生成したコードはローカルでは動作しても、チーム固有のレビュー基準を満たさないことがよくあります。

Corbat なしCorbat あり
50 行を超えるメソッドメソッドあたり最大 20 行
依存性注入なしインターフェースを使った適切な DI
throw new Error('failed')コンテキストを含むカスタム例外
テストがない、または最小限テストを含み、TDD アプローチを採用
巨大なクラス、関心事の混在SOLID 原則、クリーンなレイヤー構成
ローカルでは動作明示的なチェックを備え、レビュー可能な実装

Corbat は、実装前にエージェントへチームの標準を提示し、レビューや引き継ぎの前に検証ツールを提供することで支援します。


クイックスタート

1. MCP 設定に追加します:

{
  "mcpServers": {
    "corbat": {
      "command": "npx",
      "args": ["-y", "@corbat-tech/coding-standards-mcp"]
    }
  }
}

2. 設定ファイルの場所:

ツール場所
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Windsurf~/.codeium/windsurf/mcp_config.json
JetBrainsSettings → AI Assistant → MCP
Claude Desktop~/.config/Claude/claude_desktop_config.json
Claude Codeclaude mcp add corbat -- npx -y @corbat-tech/coding-standards-mcp

MCP 対応の一般的なツールについては、セットアップガイドをご覧ください。

3. 完了です。 Corbat は技術スタックを自動検出し、対応する標準を返します。

オーバーヘッドはゼロ。 Corbat はローカルで動作し、技術スタックの検出に約 50ms 追加されるだけです。その後は AI 向けのコンテキストとして機能します。

完全にカスタマイズ可能。 ルールが気に入らない場合は、.corbat.json で上書きできます。カスタマイズへ移動 →


動作を見る

You: "Create a user registration service"

Corbat なしの場合、次のようになります。

class UserService {
  private users: Map<string, User> = new Map();

  register(name: string, email: string, password: string) {
    if (!name || !email || !password) throw new Error('Invalid input');
    const user = { id: crypto.randomUUID(), name, email, password };
    this.users.set(user.id, user);
    return user;
  }
}
// ✗ Hardcoded storage  ✗ Password in plain text  ✗ Generic error  ✗ No tests

Corbat ありの場合、次のようになります。

// Domain
interface UserRepository {
  save(user: User): Promise<void>;
  findByEmail(email: string): Promise<User | null>;
}

class EmailAlreadyExistsError extends Error {
  constructor(email: string) {
    super(`Email already registered: ${email}`);
  }
}

// Application
class RegisterUserUseCase {
  constructor(
    private readonly repository: UserRepository,
    private readonly hasher: PasswordHasher
  ) {}

  async execute(input: RegisterUserInput): Promise<User> {
    const existing = await this.repository.findByEmail(input.email);
    if (existing) throw new EmailAlreadyExistsError(input.email);

    const user = User.create({
      ...input,
      password: await this.hasher.hash(input.password)
    });
    await this.repository.save(user);
    return user;
  }
}
// ✓ Repository interface  ✓ Password hashing  ✓ Custom error  ✓ Testable
// Test included
describe('RegisterUserUseCase', () => {
  const repository = { save: vi.fn(), findByEmail: vi.fn() };
  const hasher = { hash: vi.fn() };
  const useCase = new RegisterUserUseCase(repository, hasher);

  beforeEach(() => vi.clearAllMocks());

  it('should hash password before saving', async () => {
    repository.findByEmail.mockResolvedValue(null);
    hasher.hash.mockResolvedValue('hashed_password');

    await useCase.execute({ name: 'John', email: '[email protected]', password: 'secret' });

    expect(hasher.hash).toHaveBeenCalledWith('secret');
    expect(repository.save).toHaveBeenCalledWith(
      expect.objectContaining({ password: 'hashed_password' })
    );
  });

  it('should reject duplicate emails', async () => {
    repository.findByEmail.mockResolvedValue({ id: '1', email: '[email protected]' });

    await expect(
      useCase.execute({ name: 'John', email: '[email protected]', password: 'secret' })
    ).rejects.toThrow(EmailAlreadyExistsError);
  });
});

これは、引き継ぎの前にエージェントへ検討を促す構成の例です。


Corbat が提供するもの

Corbat は、生成前のガードレールと、反復作業中の検証チェックを提供します。

コード品質
ルール重要な理由
メソッドあたり最大 20 行読みやすく、テスト可能で、単一の目的を持つ関数
クラスあたり最大 200 行単一責任の原則
意味のある名前data、info、temp、x は使わない
マジックナンバーを使わない説明的な名前を持つ定数を使用
アーキテクチャ
ルール重要な理由
依存関係にはインターフェースを使用するテスト可能なコードになり、簡単にモックできます
レイヤーを分離するドメインロジックをインフラストラクチャから切り離せます
ヘキサゴナル/クリーンアーキテクチャのパターンフレームワークに依存しないビジネスルールを実現できます
エラー処理
ルール重要な理由
カスタム例外UserNotFoundError と Error('not found') の違いです
エラーコンテキストエラーに ID、値、状態を含めます
空の catch を使わないすべてのエラーを処理するか、伝播させます
セキュリティを重視したチェック
ルール重要な理由
入力検証境界で不正なデータを拒否します
シークレットをハードコードしない環境変数のみを使用します
パラメーター化クエリSQL インジェクションを防ぎます
出力エンコーディングXSS を防ぎます

ベンチマーク結果 v3.0

Corbat を6つの言語で15のシナリオにわたって評価しました。主要なベンチマークレポートの結果は一様ではないため、正直に読み取る必要があります。元の集計スコアでは、Corbat が勝ったのは15シナリオ中1つでした。一方、別の価値分析では、コードの簡潔さと保守性において、より優れた結果が示されました。

データが裏付けること

最も強く確認された傾向は、Corbat のガイドに沿った出力が、より短く、要点を絞ったものになることが多い点です。

シナリオCorbat ありCorbat なしこれが意味すること
Kotlin コルーチン236行1,923行同じ機能を、保守対象を8分の1にして実現
Java ヘキサゴナル623行2,740行過剰な記述なしでクリーンアーキテクチャを実現
Go クリーンアーキテクチャ459行2,012行Java 風の Go ではなく、慣用的な Go
TypeScript NestJS395行1,554行適切なパターンを、適切な規模で実現

これは、あらゆるケースで品質が向上すると主張するには不十分です。一部のワークフローでは、標準に関するコンテキストによって過剰なコード生成を抑えられることを示す証拠です。

価値指標

価値レポートでは、同じデータセットを効率性と保守性を重視する形で再評価しています。

指標結果これが意味すること
コード削減率67%保守、レビュー、デバッグの対象が減ります
セキュリティチェック100%ベンチマークのパターンチェックで問題は検出されませんでした
保守性93%で優位理解や変更が容易です
アーキテクチャ効率87%で優位コード行数あたりのパターンが優れています
認知負荷-59%新しい開発者のオンボーディングを迅速化します

📊 価値分析の詳細

セキュリティ:ベンチマークのパターン検出結果はありません

OWASP Top 10 のカテゴリを参考にしたパターンチェックを使って、すべてのシナリオを分析しました。これは、SAST、DAST、依存関係スキャン、手動レビュー、脅威モデリングに代わるものではありません。

  • SQL/NoSQL インジェクションのパターンは検出されませんでした
  • XSS のパターンは検出されませんでした
  • ハードコードされた認証情報は検出されませんでした
  • 境界に入力検証のパターンが存在しました
  • ベンチマークのサンプルでは、エラーメッセージからスタックトレースが漏えいしていませんでした
テストした言語とパターン
言語シナリオパターン
☕ Java5Spring Boot、DDD 集約、ヘキサゴナル、Kafka イベント、Saga
📘 TypeScript4Express REST、NestJS クリーンアーキテクチャ、React コンポーネント、Next.js フルスタック
🐍 Python2FastAPI CRUD、リポジトリパターン
🐹 Go2HTTP ハンドラー、クリーンアーキテクチャ
🦀 Rust1リポジトリトレイトを使った Axum
🟣 Kotlin1コルーチン+ストラテジーパターン

📖 ベンチマークの全手法 · 価値分析


組み込みプロファイル

Corbat は技術スタックを自動検出し、適切な標準を適用します。

プロファイル技術スタック提供内容
java-spring-backendJava 21 + Spring Boot 3ヘキサゴナルアーキテクチャ + DDD、カバレッジ 80% 以上の TDD
kotlin-springKotlin + Spring Boot 3コルーチン、Kotest + MockK
nodejsNode.js + TypeScriptクリーンアーキテクチャ、Vitest
nextjsNext.js 14+App Router のパターン、Server Components
reactReact 18+フック、Testing Library、アクセシブルなコンポーネント
vueVue 3.5+Composition API、Vitest
angularAngular 19+スタンドアロンコンポーネント、Jest
pythonPython + FastAPI非同期パターン、pytest
goGo 1.22+慣用的な Go、テーブル駆動テスト
rustRust + Axum所有権パターン、proptest
csharp-dotnetC# 12 + ASP.NET Core 8クリーンアーキテクチャ + CQRS、xUnit
flutterDart 3 + FlutterBLoC/Riverpod、ウィジェットテスト

自動検出: Corbat は pom.xml、package.json、go.mod、Cargo.toml などを読み取ります。


Corbat を使う場面

使用例Corbat が役立つ理由
新しいプロジェクトを始める初日から適切なアーキテクチャを採用できます
複数のエージェントによる開発計画、実装、レビュー、セキュリティの各エージェントが同じポリシーコンテキストを共有します
経験レベルがさまざまなチーム標準を明確にし、繰り返し適用できます
厳格なコードレビュー基準エージェントが引き渡し前にレビュー基準に照らして検証できます
規制対象の業界セキュリティとドキュメントの一貫性を保てます
レガシーシステムのモダナイズ新しいコードに最新のパターンを適用できます
Corbat が必要ない場合
  • 品質が重要ではない簡易プロトタイプ
  • 使い捨ての一度限りのスクリプト
  • あえて失敗を経験したい学習用プロジェクト

カスタマイズ

オプション 1:対話型セットアップ
npx corbat-init

技術スタックを検出し、適切なデフォルト値を設定した .corbat.json を生成します。

オプション 2:手動設定

プロジェクトのルートに .corbat.json を作成します。

{
  "profile": "java-spring-backend",
  "architecture": {
    "pattern": "hexagonal",
    "layers": ["domain", "application", "infrastructure", "api"]
  },
  "quality": {
    "maxMethodLines": 20,
    "maxClassLines": 200,
    "minCoverage": 80
  },
  "rules": {
    "always": [
      "Use records for DTOs",
      "Prefer Optional over null"
    ],
    "never": [
      "Use field injection",
      "Catch generic Exception"
    ]
  }
}
オプション 3:テンプレートを使用する

Java、Python、Node.js、React、Go、Rust などの**すぐに使える 14 種類のテンプレートを参照**できます。


仕組み

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│ Your Prompt │────▶│ Corbat MCP  │────▶│ AI + Rules  │
└─────────────┘     └──────┬──────┘     └─────────────┘
                          │
           ┌──────────────┼──────────────┐
           ▼              ▼              ▼
    ┌────────────┐ ┌────────────┐ ┌────────────┐
    │ 1. Detect  │ │ 2. Load    │ │ 3. Inject  │
    │   Stack    │ │  Profile   │ │ Guardrails │
    └────────────┘ └────────────┘ └────────────┘
     pom.xml        hexagonal      max 20 lines
     package.json   + DDD          + interfaces
     go.mod         + SOLID        + custom errors

Corbat は AI の出力を変更しません。コンテキスト、標準、プロファイル、検証フィードバックを提供し、エージェントがレビューの期待に沿えるようにします。

重要: 実際のコード品質は、モデル、ホストツール、プロンプト、リポジトリのコンテキスト、テスト、人によるレビューによって異なります。Corbat はポリシーと検証のレイヤーとして利用し、本番環境での利用に耐えられることを保証するものとは見なさないでください。


ドキュメント

リソース説明
セットアップガイド主要な MCP 互換ツールのインストール手順
テンプレートすぐに使える .corbat.json の設定
互換性対応する AI ツールの全一覧
ベンチマーク分析15 のシナリオの詳細な結果
マルチエージェントアーキテクチャCorbat を計画/レビュー/セキュリティ/リリースエージェントのワークフローに組み込む方法
セキュリティモデルローカル実行モデル、脅威モデル、レポート
API リファレンスツール、プロンプト、設定オプション

エージェントの出力をレビューしやすくしましょう。

MCP の設定に追加するだけで完了です。

{ "mcpServers": { "corbat": { "command": "npx", "args": ["-y", "@corbat-tech/coding-standards-mcp"] }}}

Corbat を、共有の標準コンテキストとローカルな品質ゲートとしてご利用ください。


corbat-tech によって開発

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。