mcpField
K
kratos-skills

kratos-skills

github.com/lwx-cloud開発367 回インストール37 週間前に更新
リポジトリ

kratos-skills について

go-kratos マイクロサービスフレームワークを使う開発者や AI エージェント向けのリファレンススキルです。アーキテクチャ、API、インフラ、信頼性、オブザーバビリティ、セキュリティのガイドを分野別に提供します。

主な機能

  1. 01レイヤードアーキテクチャの指針
  2. 02Protobuf API とトランスポートを解説
  3. 03Wire による依存性注入を説明
  4. 04信頼性とオブザーバビリティのパターン
  5. 05トラブルシューティングとベストプラクティス

活用シーン

  1. 01REST または gRPC サービスの作成
  2. 02Service、Biz、Data 層の構成
  3. 03ミドルウェア、レート制限、サーキットブレーカーの追加
  4. 04設定やコード生成の問題の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/lwx-cloud/kratos-skills --skill kratos-skills

インストール後、Claude Code で/kratos-skillsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
README_CN.md
best-practices/
overview.md
getting-started/
claude-code-guide.md
references/
auth-patterns.md
cli-guide.md
circuit-breaker-patterns.md
api-patterns.md
architecture-patterns.md
encoding-patterns.md
metadata-patterns.md
config-patterns.md
logging-patterns.md
ratelimit-patterns.md
error-patterns.md
middleware-patterns.md
ent-patterns.md
openapi-guide.md
metrics-patterns.md
recovery-patterns.md
tracing-patterns.md
registry-patterns.md
validate-patterns.md
transport-patterns.md
selector-patterns.md
troubleshooting/
common-issues.md

詳細

AI エージェント向け Kratos スキル

このスキルでは、go-kratos マイクロサービスフレームワークに関する包括的な知識を提供します。開発者が本番環境に対応できるサービスを構築できるよう支援する AI エージェント向けに最適化されています。

🎯 このスキルを使用するタイミング

go-kratos を使用する際に、このスキルを呼び出してください。

  • サービスの作成:REST API、gRPC サービス、またはマイクロサービスアーキテクチャ
  • レイヤードアーキテクチャ:DDD を用いた Service → Biz → Data レイヤーの実装
  • 依存性注入:コンパイル時 DI に Wire を使用
  • 本番環境向けの強化:サーキットブレーカー、レート制限、ミドルウェア
  • デバッグ:エラーの理解、設定の修正、問題の解決
  • 学習:kratos のパターンとベストプラクティスの理解

📚 ナレッジ構成

一度にすべてを読むのではなく、必要に応じて特定のガイドを読み込んでください。

クイックスタート

リンク:Kratos 公式ドキュメント 内容:インストール、プロジェクトの作成、基本的なコマンド、Hello World のサンプル

パターンガイド
API とトランスポート
ファイル読み込むタイミング
references/api-patterns.mdProtobuf API の定義、HTTP/gRPC コードの生成
references/transport-patterns.mdHTTP/gRPC サーバー/クライアントの設定
references/encoding-patterns.mdカスタムシリアライズ、コンテンツネゴシエーション
references/openapi-guide.mdOpenAPI/Swagger ドキュメントの生成
アーキテクチャと設計
ファイル読み込むタイミング
references/architecture-patterns.mdDDD レイヤー、リポジトリパターン、Wire DI
references/error-patterns.mdエラーの定義、アサーション、proto エラー
references/middleware-patterns.mdカスタムミドルウェア、リクエストのフィルタリング
インフラストラクチャ
ファイル読み込むタイミング
references/config-patterns.md設定の読み込み、ホットリロード、設定センター
references/registry-patterns.mdサービスディスカバリー(etcd、consul、nacos、k8s)
references/selector-patterns.mdロードバランシング(P2C、WRR、ランダム)
レジリエンスと信頼性
ファイル読み込むタイミング
references/circuit-breaker-patterns.mdフォールトトレランス、SRE サーキットブレーカー
references/ratelimit-patterns.mdトークンバケット、BBR レート制限
references/recovery-patterns.mdパニックリカバリー、スタックトレースのログ記録
オブザーバビリティ
ファイル読み込むタイミング
references/logging-patterns.md構造化ログ、Zap/Logrus アダプター
references/metrics-patterns.mdPrometheus メトリクスの収集
references/tracing-patterns.mdOpenTelemetry、Jaeger/Zipkin トレーシング
references/metadata-patterns.mdコンテキストの伝播、トレース ID
セキュリティとバリデーション
ファイル読み込むタイミング
references/auth-patterns.mdJWT 認証、クレーム、トークン生成
references/validate-patterns.mdProto フィールドのバリデーション、protoc-gen-validate
データとツール
ファイル読み込むタイミング
references/ent-patterns.mdEnt ORM の統合、スキーマ設計
references/cli-guide.mdkratos CLI、コード生成コマンド
参考リソース
ファイル読み込むタイミング
best-practices/overview.md本番環境へのデプロイ、コードレビューのチェックリスト
troubleshooting/common-issues.mdエラーのデバッグ、protoc/wire の問題
getting-started/claude-code-guide.mdClaude Code との統合、高度な機能

🚀 一般的なワークフロー

新しいサービスの作成
  1. プロジェクトを作成する:kratos new <project-name>
  2. API を定義する:google.api.http アノテーションを含む .proto を作成します
  3. コードを生成する:kratos proto client api/demo/v1/demo.proto
  4. サービスを生成する:kratos proto server api/demo/v1/demo.proto -t internal/service
  5. 各レイヤーを実装する:Biz ロジックは internal/biz/、データアクセスは internal/data/ に記述します
  6. Wire を設定する:provider セットを使って cmd/server/wire.go を更新します
  7. 実行する:go generate ./... && kratos run

詳細:references/api-patterns.md

レイヤードアーキテクチャの実装
  1. internal/biz/ にインターフェースを定義します(biz レイヤー)
  2. internal/data/ にリポジトリーを実装します(data レイヤー)
  3. internal/biz/ にユースケースを記述します(biz レイヤー)
  4. internal/service/ にハンドラーを実装します(service レイヤー)
  5. ProviderSets を作成します:data.ProviderSet、biz.ProviderSet、service.ProviderSet
  6. cmd/server/wire.go で各レイヤーを Wire で接続します

詳細:references/architecture-patterns.md

ミドルウェアの追加
http.Middleware(
    recovery.Recovery(),           // 1. Catch panics first
    validate.Validator(),          // 2. Validate requests
    jwt.Server(keyFunc),           // 3. Authentication
    ratelimit.Server(limiter),     // 4. Rate limiting
    logging.Server(logger),        // 5. Logging
)

詳細:references/middleware-patterns.md

サービスディスカバリーの設定
// Server-side
reg := etcd.New(client)
app := kratos.New(kratos.Registrar(reg))

// Client-side
dis := etcd.New(client)
conn, _ := grpc.DialInsecure(
    context.Background(),
    grpc.WithEndpoint("discovery:///service-name"),
    grpc.WithDiscovery(dis),
)

詳細:references/registry-patterns.md

⚡ 主要な原則

✅ 必ず守ること
  • レイヤーの分離:Service(API)→ Biz(Business)→ Data(Persistence)
  • 依存性逆転:インターフェースは biz に、実装は data に配置します
  • Protobuf を優先する:API とエラーは .proto ファイルで定義します
  • Wire によるインジェクション:コンパイル時 DI を使い、グローバル状態は使用しません
  • コンテキストの伝播:すべてのレイヤーで ctx context.Context を渡します
  • インターフェースベースの設計:実装ではなく、インターフェースに対してプログラミングします
  • エラーコード:コード、理由、メッセージ、メタデータを含む構造化エラーを使用します
❌ 決してしないこと
  • サービスハンドラーにビジネスロジックを記述する(レイヤードアーキテクチャに反します)
  • インターフェースの定義を省略し、具象型を直接使用する
  • 依存関係にグローバル変数を使用する
  • HTTP ハンドラーを手動で定義する(proto から生成されたコードを使用します)
  • 設定値をハードコードする
  • 検証を省略する、または err != nil の確認を忘れる
  • 生成された .pb.go ファイルを変更する

📖 段階的な学習ガイド

🟢 kratos を初めて使いますか?
  1. 公式クイックスタート - CLI をインストールし、最初のプロジェクトを作成します
  2. references/architecture-patterns.md - Service → Biz → Data の構成を理解します
  3. references/api-patterns.md - Protobuf API の定義方法を学びます
🟡 本番サービスを構築していますか?
  1. best-practices/overview.md - 本番環境向けチェックリスト
  2. references/circuit-breaker-patterns.md + references/ratelimit-patterns.md - 耐障害性を高めます
  3. references/registry-patterns.md - サービスディスカバリー
  4. troubleshooting/common-issues.md - よくある問題を回避します
🔵 機能を拡張しますか?
  1. getting-started/claude-code-guide.md - Claude Code の高度な機能
  2. Kratos のサンプル - サンプルプロジェクト

🔗 Kratos エコシステム

プロジェクト目的
kratosフレームワークのコア、CLI ツール
kratos-layout公式プロジェクトテンプレート
contrib設定、レジストリ、ログ、メトリクス用のプラグイン
aegis可用性アルゴリズム
gatewayAPI ゲートウェイ
examplesサンプルコード

📝 バージョン互換性

  • 対象バージョン:kratos v2.0.0+
  • Go バージョン:Go 1.19 以降を推奨
  • Protoc:3.0+

クイック呼び出し:/kratos-skills を使用するか、「kratos で [タスク] を行うにはどうすればよいですか?」と尋ねてください。

コメント