Source profileQuality 73/100Review permissions

affaan-m/ECC/docs/ja-JP/skills/quarkus-verification/SKILL.md

quarkus-verification

Use it for testing and documentation tasks; the detail page covers purpose, installation, and practical steps.

Source repository stars
234,327
Declared platforms
0
Static risk flags
2
Last source update
2026-07-27
Source checked
2026-07-28

Decision brief

What it does—and where it fits

PR、メジャー変更後、および本番前に実行します。

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/affaan-m/ECC --skill "docs/ja-JP/skills/quarkus-verification"
    Safe inspection promptEditorial

    Inspect the Agent Skill "quarkus-verification" from https://github.com/affaan-m/ECC/blob/4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38/docs/ja-JP/skills/quarkus-verification/SKILL.md at commit 4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Phase 1: Build

      Review the “Phase 1: Build” section in the pinned source before continuing.

      Review and apply the “Phase 1: Build” source section.
    2. 02

      Phase 2: Static Analysis

      未使用のインポートまたは変数

      未使用のインポートまたは変数複雑なメソッド(高い環状複雑度)潜在的なnullポインター逆参照
    3. 03

      Phase 3: Tests + Coverage

      Review the “Phase 3: Tests + Coverage” section in the pinned source before continuing.

      Review and apply the “Phase 3: Tests + Coverage” source section.
    4. 04

      Phase 4: Security Scanning

      CVEについて target/dependency-check-report.html を確認。

      CVEについて target/dependency-check-report.html を確認。
    5. 05

      Phase 5: Native Compilation

      GraalVM ネイティブイメージ互換性テスト:

      GraalVM ネイティブイメージ互換性テスト:

    Permission review

    Static risk signals and limitations

    Network access

    medium · line 39

    The documentation includes network, browsing, or remote request actions.

    Dsonar.host.url=http://localhost:9000 \

    Runs scripts

    medium · line 183

    The documentation asks the agent to run terminal commands or scripts.

    docker run -t owasp/zap2docker-stable zap-api-scan.py \

    Network access

    medium · line 184

    The documentation includes network, browsing, or remote request actions.

    t http://localhost:8080/q/openapi \

    Runs scripts

    medium · line 313

    The documentation asks the agent to run terminal commands or scripts.

    docker run -p 8080:8080 myorg/my-quarkus-app:1.0.0

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score73/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars234,327SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    affaan-m/ECC
    Skill path
    docs/ja-JP/skills/quarkus-verification/SKILL.md
    Commit
    4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38
    License
    MIT
    Collected
    2026-07-28
    Default branch
    main
    View the original SKILL.md

    Quarkus Verification Loop

    PR、メジャー変更後、および本番前に実行します。

    When to Activate

    • Quarkusサービスのプルリクエスト開始前
    • メジャーリファクタリングまたは依存関係アップグレード後
    • ステージング本番環境前のプリデプロイメント検証
    • フル ビルド → リント → テスト → セキュリティスキャン → ネイティブコンパイルパイプライン実行
    • テストカバレッジが閾値を満たす(80%以上)ことを検証
    • ネイティブイメージ互換性テスト

    Phase 1: Build

    # Maven
    mvn clean verify -DskipTests
    
    # Gradle
    ./gradlew clean assemble -x test
    

    ビルド失敗時は停止してコンパイルエラーを修正します。

    Phase 2: Static Analysis

    Checkstyle, PMD, SpotBugs (Maven)

    mvn checkstyle:check pmd:check spotbugs:check
    

    SonarQube (if configured)

    mvn sonar:sonar \
      -Dsonar.projectKey=my-quarkus-project \
      -Dsonar.host.url=http://localhost:9000 \
      -Dsonar.login=${SONAR_TOKEN}
    

    Common Issues to Address

    • 未使用のインポートまたは変数
    • 複雑なメソッド(高い環状複雑度)
    • 潜在的なnullポインター逆参照
    • SpotBugsでフラグが立つセキュリティ問題

    Phase 3: Tests + Coverage

    # 全テスト実行
    mvn clean test
    
    # カバレッジレポート生成
    mvn jacoco:report
    
    # カバレッジ閾値を強制(80%)
    mvn jacoco:check
    
    # またはGradleで
    ./gradlew test jacocoTestReport jacocoTestCoverageVerification
    

    Test Categories

    Unit Tests

    モック化された依存関係でサービスロジックテスト:

    @ExtendWith(MockitoExtension.class)
    class UserServiceTest {
      @Mock UserRepository userRepository;
      @InjectMocks UserService userService;
    
      @Test
      void createUser_validInput_returnsUser() {
        var dto = new CreateUserDto("Alice", "alice@example.com");
    
        // Panacheのpersist()はvoid — doNothing + verifyを使用
        doNothing().when(userRepository).persist(any(User.class));
    
        User result = userService.create(dto);
    
        assertThat(result.name).isEqualTo("Alice");
        verify(userRepository).persist(any(User.class));
      }
    }
    

    Integration Tests

    実データベース(Testcontainers)でテスト:

    @QuarkusTest
    @QuarkusTestResource(PostgresTestResource.class)
    class UserRepositoryIntegrationTest {
    
      @Inject
      UserRepository userRepository;
    
      @Test
      @Transactional
      void findByEmail_existingUser_returnsUser() {
        User user = new User();
        user.name = "Alice";
        user.email = "alice@example.com";
        userRepository.persist(user);
    
        Optional<User> found = userRepository.findByEmail("alice@example.com");
    
        assertThat(found).isPresent();
        assertThat(found.get().name).isEqualTo("Alice");
      }
    }
    

    API Tests

    REST Assured でRESTエンドポイントテスト:

    @QuarkusTest
    class UserResourceTest {
    
      @Test
      void createUser_validInput_returns201() {
        given()
            .contentType(ContentType.JSON)
            .body("""
                {"name": "Alice", "email": "alice@example.com"}
                """)
            .when().post("/api/users")
            .then()
            .statusCode(201)
            .body("name", equalTo("Alice"));
      }
    
      @Test
      void createUser_invalidEmail_returns400() {
        given()
            .contentType(ContentType.JSON)
            .body("""
                {"name": "Alice", "email": "invalid"}
                """)
            .when().post("/api/users")
            .then()
            .statusCode(400);
      }
    }
    

    Coverage Report

    詳細なカバレッジに対してtarget/site/jacoco/index.htmlを確認:

    • 全行カバレッジ(目標:80%以上)
    • ブランチカバレッジ(目標:70%以上)
    • カバレッジされていない重要パスを特定

    Phase 4: Security Scanning

    Dependency Vulnerabilities (Maven)

    mvn org.owasp:dependency-check-maven:check
    

    CVEについて target/dependency-check-report.html を確認。

    Quarkus Security Audit

    # 脆弱な拡張機能をチェック
    mvn quarkus:audit
    
    # 全拡張機能をリスト
    mvn quarkus:list-extensions
    

    OWASP ZAP (API Security Testing)

    docker run -t owasp/zap2docker-stable zap-api-scan.py \
      -t http://localhost:8080/q/openapi \
      -f openapi
    

    Common Security Checks

    • 全シークレットが環境変数(コード内ではない)
    • 全エンドポイントの入力検証
    • 認証/認可設定済み
    • CORS適切に設定
    • セキュリティヘッダー設定
    • BCryptでパスワードハッシュ化
    • SQLインジェクション保護(パラメータ化クエリ)
    • 公開エンドポイントのレート制限

    Phase 5: Native Compilation

    GraalVM ネイティブイメージ互換性テスト:

    # ネイティブ実行ファイルビルド
    mvn package -Dnative
    
    # またはコンテナで
    mvn package -Dnative -Dquarkus.native.container-build=true
    
    # ネイティブ実行ファイルテスト
    ./target/*-runner
    
    # 基本スモークテスト実行
    curl http://localhost:8080/q/health/live
    curl http://localhost:8080/q/health/ready
    

    Native Image Troubleshooting

    一般的な問題:

    • Reflection: 動的クラスのリフレクション設定追加
    • Resources: quarkus.native.resources.includesでリソース含める
    • JNI: ネイティブライブラリ使用時JNIクラス登録

    リフレクション設定例:

    @RegisterForReflection(targets = {MyDynamicClass.class})
    public class ReflectionConfiguration {}
    

    Phase 6: Performance Testing

    Load Testing with K6

    // load-test.js
    import http from 'k6/http';
    import { check } from 'k6';
    
    export const options = {
      stages: [
        { duration: '30s', target: 50 },
        { duration: '1m', target: 100 },
        { duration: '30s', target: 0 },
      ],
    };
    
    export default function () {
      const res = http.get('http://localhost:8080/api/markets');
      check(res, {
        'status is 200': (r) => r.status === 200,
        'response time < 200ms': (r) => r.timings.duration < 200,
      });
    }
    

    実行:

    k6 run load-test.js
    

    Metrics to Monitor

    • レスポンスタイム(p50、p95、p99)
    • スループット(リクエスト/秒)
    • エラー率
    • メモリ使用量
    • CPU使用量

    Phase 7: Health Checks

    # Liveness
    curl http://localhost:8080/q/health/live
    
    # Readiness
    curl http://localhost:8080/q/health/ready
    
    # 全ヘルスチェック
    curl http://localhost:8080/q/health
    
    # メトリクス(有効な場合)
    curl http://localhost:8080/q/metrics
    

    期待されるレスポンス:

    {
      "status": "UP",
      "checks": [
        {
          "name": "Database connection",
          "status": "UP"
        }
      ]
    }
    

    Phase 8: Container Image Build

    # コンテナイメージビルド
    mvn package -Dquarkus.container-image.build=true
    
    # または特定のレジストリで
    mvn package \
      -Dquarkus.container-image.build=true \
      -Dquarkus.container-image.registry=docker.io \
      -Dquarkus.container-image.group=myorg \
      -Dquarkus.container-image.tag=1.0.0
    
    # コンテナテスト
    docker run -p 8080:8080 myorg/my-quarkus-app:1.0.0
    

    Container Security Scan

    # Trivy
    trivy image myorg/my-quarkus-app:1.0.0
    
    # Grype
    grype myorg/my-quarkus-app:1.0.0
    

    Phase 9: Configuration Validation

    # 全設定プロパティをチェック
    mvn quarkus:info
    
    # 全設定ソースをリスト
    curl http://localhost:8080/q/dev/io.quarkus.quarkus-vertx-http/config
    

    Environment-Specific Checks

    • データベースURLが環境ごとに設定
    • シークレットが外部化(Vault、環境変数)
    • ロギングレベルが適切
    • CORS origins が正しく設定
    • レート制限を設定
    • モニタリング/トレーシング有効化

    Phase 10: Documentation Review

    • OpenAPI/Swaggerドキュメント最新(/q/swagger-ui
    • READMEにセットアップ説明有り
    • APIの変更が文書化
    • 互換性破壊の変更にマイグレーションガイド
    • 設定プロパティが文書化

    OpenAPI spec生成:

    curl http://localhost:8080/q/openapi -o openapi.json
    

    Verification Checklist

    Code Quality

    • ビルドが警告なしで成功
    • 静的分析がクリーン(高/中レベル問題なし)
    • コードがチーム規則に従う
    • PRにコメント・TODOなし

    Testing

    • 全テスト成功
    • コードカバレッジ ≥ 80%
    • 実データベースでの統合テスト
    • セキュリティテスト成功
    • パフォーマンスが許容範囲内

    Security

    • 依存関係の脆弱性なし
    • 認証/認可テスト済み
    • 入力検証が完全
    • シークレットがソースコードに無い
    • セキュリティヘッダー設定済み

    Deployment

    • ネイティブコンパイル成功
    • コンテナイメージビルド成功
    • ヘルスチェック正しく動作
    • ターゲット環境の設定が有効

    Native Image

    • ネイティブ実行ファイルビルド成功
    • ネイティブテスト成功
    • 起動時間 < 100ms
    • メモリフットプリント許容範囲

    Automated Verification Script

    #!/bin/bash
    set -e
    
    echo "=== Phase 1: Build ==="
    mvn clean verify -DskipTests
    
    echo "=== Phase 2: Static Analysis ==="
    mvn checkstyle:check pmd:check spotbugs:check
    
    echo "=== Phase 3: Tests + Coverage ==="
    mvn test jacoco:report jacoco:check
    
    echo "=== Phase 4: Security Scan ==="
    mvn org.owasp:dependency-check-maven:check
    
    echo "=== Phase 5: Native Compilation ==="
    mvn package -Dnative -Dquarkus.native.container-build=true
    
    echo "=== All Phases Complete ==="
    echo "Review reports:"
    echo "  - Coverage: target/site/jacoco/index.html"
    echo "  - Security: target/dependency-check-report.html"
    echo "  - Native: target/*-runner"
    

    CI/CD Integration

    GitHub Actions Example

    name: Verification
    
    on: [push, pull_request]
    
    jobs:
      verify:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v3
    
          - name: Set up JDK 21
            uses: actions/setup-java@v3
            with:
              java-version: '21'
              distribution: 'temurin'
    
          - name: Cache Maven packages
            uses: actions/cache@v3
            with:
              path: ~/.m2
              key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
    
          - name: Build
            run: mvn clean verify -DskipTests
    
          - name: Test with Coverage
            run: mvn test jacoco:report jacoco:check
    
          - name: Security Scan
            run: mvn org.owasp:dependency-check-maven:check
    
          - name: Upload Coverage
            uses: codecov/codecov-action@v3
            with:
              files: target/site/jacoco/jacoco.xml
    

    Best Practices

    • 全PRの前に検証ループ実行
    • CI/CDパイプラインで自動化
    • 問題は即座に修正、債務を溜めない
    • カバレッジを80%以上に保つ
    • 依存関係を定期的にアップデート
    • 定期的にネイティブコンパイルテスト
    • パフォーマンストレンドを監視
    • 互換性破壊の変更を文書化
    • セキュリティスキャン結果をレビュー
    • 環境ごとに設定を検証

    Alternatives

    Compare before choosing