Claude ec9ace9c54 docs: add native Japanese translation of ECC documentation (ja-JP)
Translate everything-claude-code repository to Japanese including:
- 17 root documentation files
- 60 agent documentation files
- 80 command documentation files
- 99 rule files across 18 language directories (common, angular, arkts, cpp, csharp, dart, fsharp, golang, java, kotlin, perl, php, python, ruby, rust, swift, typescript, web)
- 199 skill documentation files

Total: 455 files translated to Japanese with:
- Consistent terminology glossary applied throughout
- YAML field names preserved in English (name, description, etc.)
- Code blocks and examples untouched (comments translated)
- Markdown structure and relative links preserved
- Professional translation maintaining technical accuracy

This translation expands ECC accessibility to Japanese-speaking developers and teams.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-05-17 02:31:40 -04:00

11 KiB
Raw Blame History

name, description, origin
name description origin
quarkus-verification Quarkusプロジェクト検証ループビルド、静的分析、カバレッジ付きテスト、セキュリティスキャン、ネイティブコンパイル、本番環境またはPR前の差分レビュー。 ECC

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%以上に保つ
  • 依存関係を定期的にアップデート
  • 定期的にネイティブコンパイルテスト
  • パフォーマンストレンドを監視
  • 互換性破壊の変更を文書化
  • セキュリティスキャン結果をレビュー
  • 環境ごとに設定を検証