# 이 태스크를 실행하는 워크플로 둘, 그리고 그 방아쇠
#   ci-quality-gates.yml
#     on:
#       pull_request:
#       push:
#         branches: ["main"]
#       workflow_dispatch:
#     121:  jpa-candidate-evidence:
#     142:          :adapter:outbound:persistence-jpa:verifyJpaCandidateEvidence
#   jpa-r2-evidence.yml
#     on:
#       workflow_dispatch:
#     17:  jpa-r2-evidence:
#     45:          :adapter:outbound:persistence-jpa:verifyJpaPrimaryFoundationEvidence

# 게이트는 매니페스트 태스크를 거쳐 활성 카드의 준비도 태스크에 의존한다
    configuredActiveCards.each { String cardId, Object rawCard ->
        Map<String, Object> card = rawCard as Map<String, Object>
        if (cardId != 'jpa-primary-foundation') {
            dependsOn jpaEvidenceTaskAtPath(card['readiness-task'] as String)
        }

# 실제 태스크 그래프 (--dry-run 은 그래프의 모든 태스크를 SKIPPED 로 찍는다)
:adapter:outbound:persistence-jpa:postgresqlMigrationIntegrationTest SKIPPED
:adapter:outbound:persistence-jpa:generateJpaEvidenceManifests SKIPPED
:adapter:outbound:persistence-jpa:verifyJpaCandidateEvidence SKIPPED

# R2 집계 게이트가 매니페스트에서 이름으로 요구하는 카드 일곱
        [
                'jpa-observability-lifecycle',
                'jpa-security-baseline',
                'jpa-flyway-migration',
                'jpa-transaction-runtime',
                'jpa-aggregate-store',
                'jpa-query-model',
                'jpa-primary-foundation'
        ].each { String cardId ->
