eliteforge-java-service-generator について
EliteForge Java Service Generator は、Maven archetypeからEliteForgeのJavaサービスを作成するスキルです。入力検証、生成後の整合性確認、プロジェクト内のmakeターゲットによる初期化を定めています。
主な機能
- 01archetypeからJavaサービスを生成
- 02必須のプロジェクト識別子を検証
- 03技術選択をenableフラグに対応付け
- 04生成プロジェクトの整合性を確認
- 05プロジェクト内のmakeターゲットで初期化
活用シーン
- 01新しいEliteForge Javaサービスの作成
- 02生成したサービスプロジェクトの初期化
- 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.yamlreferences/enable-flags.mdmapping-rules.mdscripts/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に置き換えないでください。
必須入力(推測しないこと)
companyNameproductNameserviceName- 3 つすべてを次の正規表現で検証します:
^[a-z0-9]+(-[a-z0-9]+)*$ - 値が不足または無効な場合は、不足または無効な項目のみを確認してください。
ワークフロー(実行のたびに行う)
- 必須入力を収集して検証します。
- コマンドを組み立ててスクリプトを実行します:
python3 scripts/generate.py --company <companyName> --product <productName> --service <serviceName> [--desc "<projectDescription>"] [--tech "<tech stack text>"] [--enable enableX --enable enableY ...]
- ユーザーから技術スタックのテキストが指定された場合、技術スタックを
enableXXXに対応付けます:references/mapping-rules.mdを使用します。- ユーザーが明示したスイッチを
--enableで渡します。 - 正規のフラグ一覧として
references/enable-flags.mdを使用します。 - 判断に迷う場合は推測せず、確認してください。
- 結果を検証します:
- 出力フォルダーが存在すること:
app-<companyName>-<productName>-<serviceName>/ - そのフォルダー内に
pom.xmlが存在すること。
- 出力フォルダーが存在すること:
- プロジェクトルート(
<artifactId>/)で生成後の整合性を確認します:- Java パッケージが想定されるパッケージプレフィックスと一致することを確認します(
src/main/javaとsrc/test/javaを確認)。 - Maven モデル名が想定値と一致することを確認します(
pom.xmlの<name>を確認)。 pom.xmlのartifactIdが想定されるartifactIdと一致することを確認します。- 不一致がある場合は、想定値と実際の値を報告して停止します。
- Java パッケージが想定されるパッケージプレフィックスと一致することを確認します(
- ルートディレクトリー(
<artifactId>/)でmake installを実行してプロジェクトを初期化し、成功(終了コード0)を必須とします:- 例:
cd app-<companyName>-<productName>-<serviceName> && make install
- 例:
- 生成後のビルド/テスト/検証では、Maven コマンドを直接実行する代わりに、引き続きプロジェクトの
makeターゲット(例:make test、make build)を使用します。Maven コマンドが避けられない場合は、./mvnw ...のみを実行してください。 - 失敗した場合は、正確なエラーと実行したコマンド全体(失敗した
makeコマンドを含む)を返します。
座標ルール(スクリプトの動作)
groupId = cn.<companyName(with '-' -> '.')>.<productName(with '-' -> '.')>artifactId = app-<companyName>-<productName>-<serviceName>
事後確認で期待される値
expectedGroupId = groupIdexpectedArtifactId = artifactIdexpectedJavaPackagePrefix = <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
コメント
Markdown 対応