mcpField
E
eliteforge-java-service-generator

eliteforge-java-service-generator

github.com/cloudsen開発46 回インストール
リポジトリ

eliteforge-java-service-generator について

EliteForge Java Service Generator は、Maven archetypeからEliteForgeのJavaサービスを作成するスキルです。入力検証、生成後の整合性確認、プロジェクト内のmakeターゲットによる初期化を定めています。

主な機能

  1. 01archetypeからJavaサービスを生成
  2. 02必須のプロジェクト識別子を検証
  3. 03技術選択をenableフラグに対応付け
  4. 04生成プロジェクトの整合性を確認
  5. 05プロジェクト内のmakeターゲットで初期化

活用シーン

  1. 01新しいEliteForge Javaサービスの作成
  2. 02生成したサービスプロジェクトの初期化
  3. 03生成されたパッケージ名とMavenメタデータの検証

インストール

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

$npx skills add https://github.com/cloudsen/eliteforge-skills --skill eliteforge-java-service-generator

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

同梱ファイル

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

agents/
openai.yaml
references/
enable-flags.md
mapping-rules.md
scripts/
generate.py

詳細

EliteForge Java サービスジェネレーター(Maven Archetype)

目的

scripts/generate.py を実行して新しい EliteForge Java サービスを作成し、プロジェクト内部の make コマンドでプロジェクトのビルドと初期化を行います。

前提条件

  • python3、make、JDK、およびネットワーク接続(archetype のダウンロード用)が必要です。

ビルドコマンドのポリシー(必ず遵守)

  • 生成したプロジェクトのルートでは、ビルド/初期化/検証タスクにプロジェクト内部の make ターゲットを使用してください。
  • 生成したプロジェクト内でシステムの Maven コマンドを実行しないでください(例:mvn clean install、mvn test)。
  • 生成したプロジェクト内で Maven コマンドが明示的に必要な場合は、プロジェクトのラッパーのみを使用してください:./mvnw ...。
  • コマンド例や実行手順で、./mvnw をシステムの mvn に置き換えないでください。

必須入力(推測しないこと)

  • companyName
  • productName
  • serviceName
  • 3 つすべてを次の正規表現で検証します:^[a-z0-9]+(-[a-z0-9]+)*$
  • 値が不足または無効な場合は、不足または無効な項目のみを確認してください。

ワークフロー(実行のたびに行う)

  1. 必須入力を収集して検証します。
  2. コマンドを組み立ててスクリプトを実行します:
    • python3 scripts/generate.py --company <companyName> --product <productName> --service <serviceName> [--desc "<projectDescription>"] [--tech "<tech stack text>"] [--enable enableX --enable enableY ...]
  3. ユーザーから技術スタックのテキストが指定された場合、技術スタックを enableXXX に対応付けます:
    • references/mapping-rules.md を使用します。
    • ユーザーが明示したスイッチを --enable で渡します。
    • 正規のフラグ一覧として references/enable-flags.md を使用します。
    • 判断に迷う場合は推測せず、確認してください。
  4. 結果を検証します:
    • 出力フォルダーが存在すること:app-<companyName>-<productName>-<serviceName>/
    • そのフォルダー内に pom.xml が存在すること。
  5. プロジェクトルート(<artifactId>/)で生成後の整合性を確認します:
    • Java パッケージが想定されるパッケージプレフィックスと一致することを確認します(src/main/java と src/test/java を確認)。
    • Maven モデル名が想定値と一致することを確認します(pom.xml の <name> を確認)。
    • pom.xml の artifactId が想定される artifactId と一致することを確認します。
    • 不一致がある場合は、想定値と実際の値を報告して停止します。
  6. ルートディレクトリー(<artifactId>/)で make install を実行してプロジェクトを初期化し、成功(終了コード 0)を必須とします:
    • 例:cd app-<companyName>-<productName>-<serviceName> && make install
  7. 生成後のビルド/テスト/検証では、Maven コマンドを直接実行する代わりに、引き続きプロジェクトの make ターゲット(例:make test、make build)を使用します。Maven コマンドが避けられない場合は、./mvnw ... のみを実行してください。
  8. 失敗した場合は、正確なエラーと実行したコマンド全体(失敗した make コマンドを含む)を返します。

座標ルール(スクリプトの動作)

  • groupId = cn.<companyName(with '-' -> '.')>.<productName(with '-' -> '.')>
  • artifactId = app-<companyName>-<productName>-<serviceName>

事後確認で期待される値

  • expectedGroupId = groupId
  • expectedArtifactId = artifactId
  • expectedJavaPackagePrefix = <expectedGroupId>.<serviceName(with '-' -> '.')>
  • expectedMavenModelName = expectedArtifactId(ユーザーが別の命名規則を明示的に要求しない限り)

簡単な例

  • 最小構成:
    • python3 scripts/generate.py --company cisdigital --product cap --service cache-center --desc "CAP 缓存中心"
  • 生成後の初期化(必須):
    • cd app-cisdigital-cap-cache-center && make install
  • 技術スタック+明示的な上書き:
    • python3 scripts/generate.py --company cisdigital --product cap --service cache-center --tech "mysql redisson lombok mapstruct" --enable enableJacksonDatatypeJsr310

コメント